From 1b687a82a65d4dba9ac94c7c58ff361018954629 Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Tue, 24 Jun 2025 12:44:28 -0400 Subject: [PATCH 01/34] Update stdlib docs output to match main (#7593) * Update sim test output to match main * Update stdlib docs --- .../functions/std-appearance-hexString.md | 6 +++--- docs/kcl-std/functions/std-offsetPlane.md | 8 ++++---- .../functions/std-sketch-bezierCurve.md | 2 +- docs/kcl-std/functions/std-sketch-loft.md | 6 +++--- docs/kcl-std/functions/std-sketch-sweep.md | 4 ++-- docs/kcl-std/functions/std-solid-chamfer.md | 2 +- docs/kcl-std/functions/std-solid-hollow.md | 2 +- .../functions/std-solid-patternLinear3d.md | 4 ++-- .../functions/std-solid-patternTransform.md | 6 +++--- docs/kcl-std/functions/std-solid-shell.md | 6 +++--- .../kcl-std/functions/std-transform-rotate.md | 2 +- docs/kcl-std/functions/std-transform-scale.md | 4 ++-- .../functions/std-transform-translate.md | 2 +- .../screenshots/ball-joint-rod-end.png | Bin 85382 -> 85463 bytes public/kcl-samples/screenshots/spool.png | Bin 158272 -> 158258 bytes .../kcl-samples/screenshots/utility-sink.png | Bin 0 -> 77354 bytes .../ball-joint-rod-end/rendered_model.png | Bin 85382 -> 85463 bytes .../execution_error.snap | 2 +- ...t_example_fn_std-appearance-hexString1.png | Bin 56283 -> 56157 bytes ...t_example_fn_std-appearance-hexString2.png | Bin 194986 -> 194970 bytes ...t_example_fn_std-appearance-hexString3.png | Bin 195350 -> 195574 bytes ...erial_test_example_fn_std-offsetPlane0.png | Bin 103241 -> 103233 bytes ...erial_test_example_fn_std-offsetPlane1.png | Bin 72324 -> 72325 bytes ...erial_test_example_fn_std-offsetPlane2.png | Bin 92983 -> 92992 bytes ...erial_test_example_fn_std-offsetPlane3.png | Bin 86568 -> 86570 bytes ...est_example_fn_std-sketch-bezierCurve1.png | Bin 27504 -> 27517 bytes ...erial_test_example_fn_std-sketch-loft0.png | Bin 80189 -> 80176 bytes ...erial_test_example_fn_std-sketch-loft1.png | Bin 135192 -> 135190 bytes ...erial_test_example_fn_std-sketch-loft2.png | Bin 135192 -> 135190 bytes ...rial_test_example_fn_std-sketch-sweep2.png | Bin 90488 -> 90464 bytes ...rial_test_example_fn_std-sketch-sweep3.png | Bin 59847 -> 59841 bytes ...ial_test_example_fn_std-solid-chamfer0.png | Bin 44510 -> 44013 bytes ...rial_test_example_fn_std-solid-hollow2.png | Bin 73821 -> 73820 bytes ..._example_fn_std-solid-patternLinear3d2.png | Bin 65058 -> 65086 bytes ..._example_fn_std-solid-patternLinear3d3.png | Bin 53404 -> 53403 bytes ...example_fn_std-solid-patternTransform2.png | Bin 85244 -> 85243 bytes ...example_fn_std-solid-patternTransform3.png | Bin 29674 -> 29687 bytes ...example_fn_std-solid-patternTransform4.png | Bin 238363 -> 237457 bytes ...erial_test_example_fn_std-solid-shell4.png | Bin 89178 -> 89180 bytes ...erial_test_example_fn_std-solid-shell5.png | Bin 55332 -> 55329 bytes ...erial_test_example_fn_std-solid-shell6.png | Bin 57493 -> 57490 bytes ..._test_example_fn_std-transform-rotate5.png | Bin 70972 -> 71023 bytes ...l_test_example_fn_std-transform-scale0.png | Bin 54437 -> 53864 bytes ...l_test_example_fn_std-transform-scale2.png | Bin 81535 -> 81574 bytes ...st_example_fn_std-transform-translate2.png | Bin 90412 -> 90319 bytes .../subtract_regression12/rendered_model.png | Bin 61106 -> 61104 bytes 46 files changed, 28 insertions(+), 28 deletions(-) diff --git a/docs/kcl-std/functions/std-appearance-hexString.md b/docs/kcl-std/functions/std-appearance-hexString.md index dfcb93f4e..b7daf59e3 100644 --- a/docs/kcl-std/functions/std-appearance-hexString.md +++ b/docs/kcl-std/functions/std-appearance-hexString.md @@ -60,7 +60,7 @@ map( ``` -![Rendered example of appearance::hexString 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADboklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1UEV1111VVX/Ye45pprHvxiL/Zir33NNdc8mP8Hrrnmmgfz/8g111zz4GuuuebB/D9wzTXXPPiaa6558DXXXPNg/h+45pprHnzNNdc8mP8nrrnmmgdfc801D+b/gWuuuebB11xzzYNf7MVe7LX5f+Caa6558DXXXPNg/h+55pprHsz/E9dcc82DX+zFXuy1+X/gmmuuefA111zzYK666qqrrvqPQuWqq6666qp/s2uuuebBr/3ar/1eL/7iL/7aL/ZiL/ba9913360Av/Vbv/XdP/qjP/o5/B9zzTXXPPi1X/u13+t1Xud13vuaa6558H333XcrwG/91m9994/+6I9+Dv/HXHPNNQ9+7dd+7fd6p3d6p8++7777buWZfvRHf/Rzfuu3fuu7+T/kmmuuefBrv/Zrv9c111zz4Nd5ndd5b57pt37rt777t37rt77nH/7hH36b/0OuueaaB7/2a7/2e73O67zOe19zzTUPvu+++24F+Id/+Iff/q3f+q3v+Yd/+Iff5v+Qa6655sGv/dqv/V7v9E7v9Nn33Xffrddcc82D77vvvlt/67d+67t/+7d/+3vuu+++W/k/5Jprrnnwa7/2a7/XO73TO332fffdd+s111zz4Pvuu+/W3/7t3/6eH/mRH/ls/o+55pprHvyO7/iOn/06r/M673XffffdCvAP//APv/0P//APv/Nbv/Vb383/MS/2Yi/22h/xER/x3bZ9zTXXPPi+++679R/+4R9++7d+67e+5x/+4R9+m/9j3vEd3/Gz3umd3umz77vvvluvueaaB9933323/sM//MNv/9Zv/db3/MM//MNv83/INddc8+DXfu3Xfq93eqd3+uz77rvv1muuuebB9913362/9Vu/9d3/8A//8Dv/8A//8NtcddVVV131b4Ee9KAHcdVVV1111YvuxV7sxV77xV7sxV7rnd7pnT6bZ7r77rP83M/9LgBv8RavyfXXn+G+++679bd+67e++0d/9Ec/h//FXuzFXuy1X+zFXuy13umd3umzeaa77zvHz/3G7wHwge/yNgDcd999t/7W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P3OG+/3Ij/zIZ//2b//299x333238l/ommuuefBrv/Zrv9c7vdM7fTbPdPfeJX7pcX/PLz7+H7hn7xIvzI+9zwdy/c4x3uqjP4K77jvL83P9mTO8+Wu+Fh/4dm/P/X7kR37ks3/7t3/7e+67775b+S90zTXXPPi1X/u13+t1Xud13vuaa655MMA9h3v8zb138CtP+wf+5uydXCYQAgESAEhI8Amv8Pq84YMew+d809fz87/z2zwnA/ABb/+OfODbvxP3+4d/+Iff/vqv//r3ue+++27lv9A111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bZ7pbC75nfFOfmJ8GlKgECiQBBKKQBJISMGr6xo+gIfx87/9G3zON3wNz+3lXuzF+awP+2iuP3MNAPfdd9+tX//1X/8+//AP//Db/Be65pprHvxiL/Zir/06r/M67/ViL/Zir80zHXTiaScK924G924G9zMAxoAxYAykzXWHyZvemvzF3/8NH/wZn8ADXX/Ntbz567whH/jO7wHAfffdd+vXf/3Xv88//MM//Db/ha655poHv9iLvdhrv87rvM57vdiLvdhr80x73R63b9zObRu38Tc7f0OSNDfSSXMjnaSTdJKZpJN0kk6++o6vBuAV3vwVeKCXe4mX47M+5rO4/prrue+++279+q//+vf5h3/4h9/mqquuuuoq9KAHPYirrrrqqquuuOaaax782q/92u/1Tu/0Tp8N8K3f+iN827f9KPf75m/+XF7u5V6MT/qkJ/J3f7eHzTMZADAAYF7yJXd4iZfY5t3f/WYe6L777rv1t37rt777R3/0Rz+H/2bXXHPNg1/7tV/7vd7pnd7pswHuvvcsP/frv8O3/eCPAwLgm7/4M3i5l3gsX/T9v80v/fETAfOcDMB1J7d5k1d+FG/ySo/mulPb3O++++679bd+67e++7d/+7e/57777ruV/2av8zqv897v+I7v+FnXXHPNgwH+4h+ewLf92E/zF497Avf7gHd4az7wHd6a7/i1P+A7fv0PATAPIC67/sQx3vTlXoz3f/1X43733Xffrb/1W7/13b/927/9Pffdd9+t/De75pprHvzhH/7h3/ViL/Zirw1w94WL/Pyf/AXf9su/zgO97MMfyjd/xAfyl0+7lQ/51u/l+bn+xHHe7OVeijd/uZfi+hPHud99991364/+6I9+zm/9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h9/+uq/7uvc+e/bsM/g/4pprrnnwa7/2a7/Xi7/4i7/2i73Yi702z+VHfuRHPvtHf/RHP4errrrqqqv+JehBD3oQV1111VVXvWiuueaaB7/2a7/2e11zzTUPvu+++2797d/+7e+57777buX/sNd5ndd57zNnzjzommuuefB9991362//9m9/z3333Xcr/4e9zuu8znufOXPmQddcc82D77vvvlt/+7d/+3vuu+++W/k/6pprrnnwi73Yi732i73Yi70WwH333Xfrj/7oj34O/4ddc801D36xF3ux136xF3ux1wK47777bv3RH/3Rz+H/sDNnzjzodV7ndd77mmuueTDAfffdd+uP/uiPfg7/h11zzTUPfu3Xfu33uuaaax4McN999936oz/6o5/D/2HXXHPNg1/7tV/7va655poHA9x33323/uiP/ujn8H/YNddc8+DXfu3Xfq/XeZ3Xee9/+Id/+O1/+Id/+J3f+q3f+m7+D7vmmmse/Nqv/drv9Tqv8zrv/Vu/9Vvf/Q//8A+/8w//8A+/zf9hZ86cedDrvM7rvPeLv/iLv/bf//3f//Y//MM//M4//MM//DZXXXXVVVe9KNCDHvQgrrrqqquuuuqqq6666qqrrrrqqquuuuqq/5OoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X8U/Au1qNldHmuj4AAAAAElFTkSuQmCC) +![Rendered example of appearance::hexString 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADbJElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1UEV1111VVX/Ye45pprHvxiL/Zir33NNdc8mP8Hrrnmmgfz/8g111zz4GuuuebB/D9wzTXXPPiaa6558DXXXPNg/h+45pprHnzNNdc8mP8nrrnmmgdfc801D+b/gWuuuebB11xzzYNf7MVe7LX5f+Caa6558DXXXPNg/h+55pprHsz/E9dcc82DX+zFXuy1+X/gmmuuefA111zzYK666qqrrvqPQuWqq6666qp/s2uuuebBr/3ar/1eL/7iL/7aL/ZiL/ba9913360Av/Vbv/XdP/qjP/o5/B9zzTXXPPi1X/u13+t1Xud13vuaa6558H333XcrwG/91m9994/+6I9+Dv/HXHPNNQ9+7dd+7fd6p3d6p8++7777buWZfvRHf/Rzfuu3fuu7+T/kmmuuefBrv/Zrv9c111zz4Nd5ndd5b57pt37rt777t37rt77nH/7hH36b/0OuueaaB7/2a7/2e73O67zOe19zzTUPvu+++24F+Id/+Iff/q3f+q3v+Yd/+Iff5v+Qa6655sGv/dqv/V7v9E7v9Nn33Xffrddcc82D77vvvlt/67d+67t/+7d/+3vuu+++W/k/5Jprrnnwa7/2a7/XO73TO332fffdd+s111zz4Pvuu+/W3/7t3/6eH/mRH/ls/o+55pprHvyO7/iOn/06r/M673XffffdCvAP//APv/0P//APv/Nbv/Vb383/MS/2Yi/22h/xER/x3bZ9zTXXPPi+++679R/+4R9++7d+67e+5x/+4R9+m/9j3vEd3/Gz3umd3umz77vvvluvueaaB9933323/sM//MNv/9Zv/db3/MM//MNv83/INddc8+DXfu3Xfq93eqd3+uz77rvv1muuuebB9913362/9Vu/9d3/8A//8Dv/8A//8NtcddVVV131b4Ee9KAHcdVVV1111YvuxV7sxV77xV7sxV7rnd7pnT6bZ7r77rP83M/9LgBv8RavyfXXn+G+++679bd+67e++0d/9Ec/h//FXuzFXuy1X+zFXuy13umd3umzeaa77zvHz/3G7wHwge/yNgDcd999t/7W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/gd6x3d8x8968Rd/8dd+sRd7sdcGuPvcOX7u93+fb/vpn+Zfcv3p07z5q786b/Hqr871p08DcN999936oz/6o5/zW7/1W9/N/0DXXHPNg1/7tV/7vd7pnd7pswHuPneOn/v93+XbfvqneBbzfF1/+jRv/uqvwcs95jG83KMfA8B9991362/91m9992//9m9/z3333Xcr/8Ncc801D37t137t93qnd3qnzwa4+9xZfu73fodv+6mf4F9y/ekzvPlrvCYv9+jH8nKPeSwA9913363/8A//8Nu/9Vu/9T3/8A//8Nv8D/SO7/iOn/VO7/ROnw1w99n7+Lnf+y2+7Sd/lH/J9aev4c1f87V5uce8OC/3mBcD4L777rv1H/7hH377H/7hH37nt37rt76b/4Fe7MVe7LU//MM//LuuueaaBwN864//AN/24z/Iv+T6M9fyco99Cd78tV6fl3vsSwBw33333Xr27Nlbf+u3fut7fuu3fuu7+R/ommuuefCHf/iHf9eLvdiLvTbAt/7ot/JtP/ptPF/mWa6/5npe7sVejjd/nTfn5V7s5bjffffdd+tv/dZvffc//MM//M4//MM//DZXXXXVVVc9EHrQgx7EVVddddVV8GIv9mKv/WIv9mKv9U7v9E6fzTPdffdZfu7nfheAb/u2n+Df4vrrz/BZn/VBvNzLPZb77rvv1t/6rd/67h/90R/9HP6bXXPNNQ9+7dd+7fd68Rd/8dd+sRd7sdfmme6+7xw/9xu/x7f98E/xb3H9Nad589d9DT7wXd4GgPvuu+/Wr//6r3+ff/iHf/ht/pu92Iu92Gu/2Iu92Gu90zu902fzTHefPcfP/fbv8/O/8wfcffYc/1rXnznNm7/Wq/GB7/DWANx33323/tZv/dZ3/+iP/ujn8N/smmuuefBrv/Zrv9frvM7rvPc111zzYIC7z57j537vD/j53/0D7j53jn+t60+f5uUe8yg+8G3fiuvPnOa+++679R/+4R9++7d+67e+5x/+4R9+m/9m7/iO7/hZ11xzzYNf53Ve570B7j53jp/7vd/n53//D7j73Dn+ta4/fZqXe/SjefPXeDVe7tGPBuC+++679bd+67e++0d/9Ec/h/9m11xzzYNf+7Vf+73e6Z3e6bN5pp///d/nL57wBH7+93+ff4uXe/SjefNXf3Xe/NVfHYD77rvv1n/4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ddvHAbj77FleIPN8mPtdf+YaAO67775b+Q9w5syZBwPcu9oDCQSSQAACARISIIEAhARIIEACQBIIQCBAQgLEA5hnMf+i689cA8B99933dP4DSUJRACEJACQEIAEAQgIQAAhA3E88L3M/wySeh/kvd8011zwYIAhCgTHGGJMkAEFgjDFJ8oIIgQHxHIxBXHY6TwPwF3/3FwBgXqjrr7kegLNnzz6Dq6666qr/Hwiuuuqqq/6fOHv27K0A119/hhfF3XefBeC667a4/votpAAECBAQgAABAgIQIECAACEJKZAECAhAgAABAsQ99xxyzz37XHPNNQ++5pprHsx/gLNnz956/bVnuP7aM7xQBjAAd993FoDrTx3jfgLE/QQIECBAvHACBAgQIO539/lLAJw5c+ZB/Ac4e/bsMwBuOHOGf627z54D4PqTx7mfeAEECBAgQIAAAQIECBD/dQRIgPjXuPv8BQCuP3mC/w3uu+++WwGuP34c8R9EvAACxL9I/M8igQQSSPyHsPnvIgABAgQIECBAgAABAgQIECBAvIjMczAv0PVnzgBw33333cp/gGuuuebBAPfsXwIJBOKZBAgQzySQQAJAgAQIEIBAAon/FSQUQiGQQIIQCqEQhCCEJBSCEIQghCQUghCEIIRCKAQhrp3tAHDXfffxr3XDNdcAcPbs2WfwH+DMmTMPAjirIxSFiIIiUClEFFQKikJEIUpBUVAUVAoRhYhCRCGioCgoCoqCoqAoRBQigojCaW8AcPd99/Kvcf011/IP//APv8N/sL1+j1AQCkKBEKEgFASBJCQRCkKBEJKQhCQkIYQkJCEJSUhCCElI4rRPA3D3fXfzoni5l3g5AP7hH/7ht7nqqquu+v+B4Kqrrrrq/5mXe7kX5wUzD/QXf/EPAFx77TYgpEASkpAEBCBAgIAABAgIQIAAAUISkpAECBAgQIC4554DAM6cOfNg/gPcd999twLccM0Z/jX+4u8eB8DLPPIWQIAAIUA8PwIECBAgXjgB4p7zewBcc801D+Y/wH333XcrwPVnTvMiM89y99lzAFx/6jgIEEggAQIEiH+zuy/sAnDNNdc8mP8g9913360A1586xb+eQOLu8xcAuP7UCZBAAgkkkEACCRAgQIB4Udx98SIA11xzzYP5jyRAgAABAgQIECBAgAABAgQIECCekwDxAggQL5QA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1m/91nf/6I/+6Ofwv9Q111zz4Hd8x3f8rNd5ndd5b57p7kuXuP7YMQDuPnuW68+c4X4/8iM/8tm//du//T333XffrfwvdM011zz4xV7sxV77dV7ndd7rxV7sxV6bZ/qrO2/n+u0drts5xt3nznL96TMA3Hfffbf+1m/91nf/6I/+6Ofwv9Q111zz4Nd+7dd+r9d5ndd572uuuebBAPce7fM35+7ipU7fwLUb29x99j6uP3MNAPfdd9+tP/qjP/rZv/Vbv/U9/C91zTXXPPgd3/EdP+t1Xud13ptnOqeBJ8Uhj8wtTrvjgf7hH/7ht7/+67/+fe67775b+V/ommuuefCLvdiLvfbrvM7rvNeLvdiLvTbPdNQHZzcrpw8nNofkgX7kR37ks3/0R3/0c/hf6pprrnnwa7/2a7/Xi7/4i7/2i73Yi702z3SxXuTJ/ZM52U7y8PXDud99991369d//de/zz/8wz/8NlddddVVV70g6EEPehBXXXXVVVe9cNdcc82DX/u1X/u93umd3umzeS733Xffrb/1W7/13b/927/9Pffdd9+t/B9xzTXXPPi1X/u13+ud3umdPpvnct999936W7/1W9/9oz/6o5/D/yHXXHPNgz/8wz/8u17sxV7stXku9913362/9Vu/9d0/+qM/+jn8H/I6r/M67/2O7/iOn3XNNdc8mOfyW7/1W9/9D//wD7/zW7/1W9/N/xHXXHPNg1/7tV/7vV7ndV7nva+55poH81x+5Ed+5LN/+7d/+3vuu+++W/k/4pprrnnwa7/2a7/XO73TO302z+W+++679bd+67e++0d/9Ec/h/9Drrnmmge/9mu/9nu90zu902fzXO67775bf+u3fuu7f/RHf/Rz+D/kxV7sxV7rdV7ndd77dV7ndd6b53Lffffd+qM/+qOf81u/9Vvfzf8RZ86cedCLv/iLv87rvM7rvNeLvdiLvTbP5b777rv167/+69/nH/7hH36b/yOuueaaB7/Yi73Ya7/O67zOe73Yi73Ya/Nc/uEf/uG3v+7rvu69z549+wz+j7jmmmse/Nqv/drv9eIv/uKv/WIv9mKvzXP5kR/5kc/+0R/90c/hqquuuuqqfwl60IMexFVXXXXVVS+aa6655sGv/dqv/V7XXHPNg++7775bf/u3f/t77rvvvlv5P+x1Xud13vvMmTMPuuaaax5833333frbv/3b33Pffffdyv9hr/M6r/PeZ86cedA111zz4Pvuu+/W3/7t3/6e++6771b+j7rmmmse/GIv9mKv/WIv9mKvBXDffffd+qM/+qOfw/9h11xzzYNf7MVe7LVf7MVe7LUA7rvvvlt/9Ed/9HP4P+zMmTMPep3XeZ33vuaaax4McN999936oz/6o5/D/2HXXHPNg1/7tV/7va655poHA9x33323/uiP/ujn8H/YNddc8+DXfu3Xfq9rrrnmwQD33XffrT/6oz/6Ofwfds011zz4tV/7td/rdV7ndd77H/7hH377H/7hH37nt37rt76b/8OuueaaB7/2a7/2e73O67zOe//Wb/3Wd//DP/zD7/zDP/zDb/N/2JkzZx70Oq/zOu/94i/+4q/993//97/9D//wD7/zD//wD7/NVVddddVVLwr0oAc9iKuuuuqqq6666qqrrrrqqquuuuqqq6666v8kKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1fxjw4MhCoeA/BcAAAAAElFTkSuQmCC) ```kcl sideLen = 30 @@ -90,7 +90,7 @@ grid(offset = 0, red = 0) ``` -![Rendered example of appearance::hexString 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAL5cUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqv8k111zz4DNnzjz4xV7sxV4L4JprrnkwwDXXXPPg++6771aA++6779azZ88+47777rv1H/7hH36bq14k11xzzYNf7MVe7LXPnDnzIIBrrrnmwddcc82DAe67775bAe67775b/+Ef/uF3AP7hH/7ht7nqX3TNNdc8GODFXuzFXhvgxV7sxV4L4JprrnnwfffddyvAfffdd+vZs2efcd999936D//wD7/NVS+Sa6655sFnzpx58Iu92Iu9FsA111zz4GuuuebBAPfdd9+t9913363XXHPNg//hH/7hd+67775b/+Ef/uG3uepFcs011zz4xV7sxV77zJkzDwK45pprHgxwzTXXPPi3fuu3vufFXuzFXusf/uEffgfgvvvuu/Uf/uEffpur/kXXXHPNg8+cOfPgF3uxF3stgGuuuebBANdcc82D77vvvlt5pn/4h3/4nX/4h3/47fvuu+9Wrrrqqquuuuq/B3rQgx7EVVddddVVV/1Xueaaax782q/92u/14i/+4q995syZBwO0Vh58990XuPvu8zy3668/xcu+7CO433333XfrP/zDP/z2P/zDP/zOb/3Wb303V112zTXXPPi1X/u13+uaa6558Ou8zuu8N8DdZ88DcPfZC9x97jyXmcuuP3MKMC/72EcCcN999936D//wD79933333foP//APv/MP//APv81Vl11zzTUPfu3Xfu33evEXf/HXfrEXe7HXBrj73HnuPn+eu89d4NkMwPWnTnH96VOUbLdec801D77vvvtu/Yd/+Iff/od/+Iff+a3f+q3v5qrLrrnmmge/9mu/9nsBvNM7vdNn80x3nz/P3efPc/f582Cew/WnTnL9qdNcf/oU9913360Av/Vbv/Xd//AP//A7//AP//DbXHXZNddc8+AXe7EXe+3XeZ3Xea8Xe7EXe22Au8+fB+Du8+e5+/w5MM9mc/3p07zsox4FwH333XfrP/zDP/z2P/zDP/zOb/3Wb303V112zTXXPPjMmTMPfrEXe7HXeqd3eqfP5pnuPn8egLvPnePuc+e433333XfrSz3mMQ8GeNlHPxqA++6779Z/+Id/+O3f+q3f+p5/+Id/+G2uuuqqq6666r8GetCDHsRVV1111VVX/We65pprHvzar/3a7/U6r/M6791aefDdd1/gL//ySfzVXz2Fv/zLJ/NANs/X9def5GVf9hFcf/1JXvZlH8nLvuwjuO+++279h3/4h9/+rd/6re/5h3/4h9/m/6Frrrnmwa/92q/9Xu/0Tu/02XefPc8v/M4fc/e5C/zC7/4Jz8sAYJ7JAFx/5hQv+5hH8LKPfQRv9lqvAsB9991369d//de/zz/8wz/8Nv8PXXPNNQ9+7dd+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iGcRXLs14/Ufdi3v/lK3cL9/+Id/+O2v//qvf5/77rvvVv4Pu+aaax782q/92u/1Tu/0Tp8NcO/Rir89d4lfv+1e/vbcJV5kNi+cebdHP4g3eNB1XLsxB+C+++679bd+67e++0d/9Ec/h//jXuzFXuy1P/zDP/y7rrnmmgcD3Hu05FefcTvf9/gnc5nN87C5nwEwmOdk80DXbi54wwfdwnu++KO533333Xfr13/917/PP/zDP/w2/4ddc801D37t137t93qnd3qnzwa45+CAv7nnHn75KU/hb+65h2exeR42AOaZbJ6Hzf2u29rivV72ZXnjRz6S+/3Ij/zIZ//2b//299x33323ctVVV1111VUvOvSgBz2Iq6666qqrrvq3uOaaax782q/92u/1Tu/0Tp/NM91zzwF/8zf38Nd/fQ+/8itP5fkTz0vc77rrtnijN3oob/RGD+O667a434/8yI989o/+6I9+Dv/PvM7rvM57v87rvM57vdiLvdhr80z37h7xK391O39763n+5tbzPJsQDyAA8dyuPb7BG770TVx7fMEbvvRN3O++++679bd+67e++0d/9Ec/h/9Hrrnmmge/9mu/9nu90zu902fzTPcerPjbey7xd/fs8mtPuZfnTyBeoGu35rz+w67hDR5+LdduzbnfP/zDP/z2j/zIj3zOP/zDP/w2/49cc801D37Hd3zHz3qd13md9+aZ7j1a8Wu33cvfnbvE3567xLPY/MvMtRtzXv+WawF498c8mPvdd999t/7Wb/3Wd//oj/7o5/D/yDXXXPPgF3uxF3vtd3zHd/ysa6655sEA9x4t+Zuz5/jbs+f5m7PnufdoCTb3M89k85wM5rJrNzd4wwffzEudOc1LXXOa+9133323/tZv/dZ3/+iP/ujn8P/INddc8+DXfu3Xfq93eqd3+mye6Z6DA37lKU/hr+++m7+55x6egw2AeSab53bd5iYvff31XLu9zXu/7MvyQD/yIz/y2b/927/9Pffdd9+tXHXVVVddddW/HnrQgx7EVVddddVVV/17XHPNNQ9+sRd7sdd+ndd5nfd6sRd7sdfmAe6554B77jng3nsP+Ou/vpfn57rrtgB4qZe6jpd+6Wt5oPvuu+/W3/qt3/ruH/3RH/0c/p+75pprHvyO7/iOn/U6r/M6733ffffd6n7rwdce3+De3SMA/ubW89xz8Yh7d5cAiGe79sQGAC/54FO81INP8dzuu+++W3/0R3/0c37rt37ru/l/7Jprrnnwi73Yi73267zO67zXi73Yi732vQcrrt2aA3DvwYp7D1bce7Dm7+7Z5fm5ZmsOwEted5yXvO4YD3Tffffd+lu/9Vvf/du//dvfc999993K/2PXXHPNg1/sxV7stT/8wz/8u3iAe49WAPztuUvce7jivqMVz+2ajRkAL3n6OC955jjP7b777rv1t37rt777R3/0Rz+H/8euueaaB585c+bB7/RO7/RZL/ZiL/baPMC9h0fcc7Tk3sMj/ubsecA8t2s3Fly3ucG1Gxu81DWneaD77rvv1t/6rd/67t/+7d/+nvvuu+9W/h+75pprHvzar/3a7/U6r/M6733NNdc8mGe65+AAgL+55x7u2d/nnoMDnsUG4NqtLQBe+vrreenrr+e53Xfffbf+6I/+6Of81m/91ndz1VVXXXXVVf8+6EEPehBXXXXVVVdd9R/lmmuuefCLvdiLvfbrvM7rvNeLvdiLvTb/Bvfdd9+tv/Vbv/Xd//AP//A7//AP//DbXPUcrrnmmge/2Iu92Gu/2Iu92Gtdc801D36xF3ux1+Zf4R/+4R9++8yZMw8+e/bsrX//93//2z/6oz/6OVz1PK655poHv9iLvdhrv87rvM57nTlz5sHXXHPNg/lX+od/+Iff/vu///vf/od/+Iff+Yd/+Iff5qrncM011zz4zJkzD77mmmse/Dqv8zrv9WIv9mKvzb/CfffddyvA2bNnb/2t3/qt7/mHf/iH377vvvtu5arn8Tqv8zrv/WIv9mKv9Tqv8zrvzb/Bfffdd+uP/uiPfs4//MM//PZ99913K1c9h2uuuebBZ86cefCLvdiLvdaLv/iLv/aLvdiLvTYvgvvuu+/Wa6655sH33XffrQBnz5699e///u9/+7d/+7e/57777ruVq6666qqrrvqPgR70oAdx1VVXXXXVVf9ZrrnmmgefOXPmwddcc82DX+zFXuy1eKb77rvv1muuuebBAP/wD//wO2fOnHnQP/zDP/zOP/zDP/w2V/2rXHPNNQ8+c+bMg6+55poHnzlz5kHXXHPNg++7775br7nmmgfzTPfdd9+tZ8+efQbAfffdd+s//MM//DZX/atcc801D36xF3ux1wZ4sRd7sdfi+bjvvvtuBfiHf/iH3/mHf/iH3+aqf5VrrrnmwWfOnHnwNddc8+AzZ8486Jprrnkwz+Uf/uEffufMmTMPOnv27DPuu+++W//hH/7ht7nqX+Waa6558Iu92Iu9NsCZM2cedM011zyY53Lffffdevbs2Wfcd999t/7DP/zDb3PVv8o111zz4DNnzjz4mmuueTDAi73Yi70Wz+W+++67FeDs2bPP+Id/+Iffvu+++27lqquuuuqqq/5zoAc96EFcddVVV1111VVXXXXVVVddddVVV1111VX/J1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqqv+h7rmmmsefObMmQe/2Iu92Gtdc801D77mmmse/Pd///e//Tqv8zrvzTOdPXv21vvuu+9WgH/4h3/4nX/4h3/47fvuu+9WrnoO11xzzYPPnDnz4Bd7sRd7LYAXf/EXf22AM2fOPPgf/uEffvuaa655MM9033333foP//APv3Pffffd+g//8A+/zVXP4ZprrnkwwGu/9mu/F8A111zz4GuuuebBZ86ceTDA2bNnb+WZ7rvvvlv/4R/+4Xf+4R/+4bfvu+++W7nqeVxzzTUPfrEXe7HXPnPmzINe/MVf/LUBzpw582Ce6ezZs7cC3Hfffbf+wz/8w+/cd999t/7DP/zDb3PV87jmmmse/Nqv/drvBfDiL/7ir33ffffd+mIv9mKvzQP8wz/8w28D/MM//MPv3Hfffbf+wz/8w29z1fO45pprHvzar/3a7wXw4i/+4q/NM505c+bBPNPZs2dv/fu///vfPnv27DPuu+++W//hH/7ht7nqqquuuuqq/5nQgx70IK666qqrrrrqf4prrrnmwa/92q/9Xi/+4i/+2i/2Yi/22vfdd9+trZUHA9x99wXuvvs8D3T99acAeNmXfQT3u++++249e/bsrT/yIz/yOf/wD//w2/w/dc011zz4tV/7td/rmmuuefCLvdiLvfY111zzYIC7z57n7rMXuPvceZ6D4fozp3jZxz6C+9133323nj179tbf+q3f+p7f+q3f+m7+n7rmmmse/Nqv/drv9eIv/uKv/WIv9mKvzTPdfe48d5+/wN3nzvPcrj99kutPneL606cAuO+++249e/bsrX//93//27/927/9Pffdd9+t/D90zTXXPPi1X/u13+vFX/zFX/vFXuzFXptnuvv8ee4+f567z18AzLMYrj91CoCXfdQjAbjvvvtuPXv27K1///d//9u//du//T333Xffrfw/dM011zz4xV7sxV77dV7ndd7rxV7sxV6bZ7r7/HkA7j5/nrvPn+dZbK4/dQqAl33UowC47777bgX4rd/6re/+7d/+7e+57777buX/oWuuuebBr/3ar/1eL/7iL/7aL/ZiL/ba9913363XXHPNgwHuPn+eu8+d4+7z57nMAAbg+lOneNlHP5r73Xfffbf+6I/+6Of8wz/8w2/fd999t3LVVVddddVV/zOgBz3oQVx11VVXXXXVf7drrrnmwS/2Yi/22h/+4R/+XXfffZ5f+IU/5i//8sn85V8+heclns3c7/rrT/KyL/tIXvZlH86bvdkrA3Dffffd+g//8A+//Vu/9Vvf8w//8A+/zf8D11xzzYPf8R3f8bNe53Ve573vPnueX/idPwaJv3z8k/nLxz2ZF8oG4Pozp3jZxz6cl33MI7n+zEle9rGP5L777rv1H/7hH377t37rt77nH/7hH36b/weuueaaB7/jO77jZ73O67zOewP85ROfzF8+8cn85ROfzF8+8cmAeR42z2Jz/elTXH/qJC/7qEfyso9+JC/76Edy33333foP//APv/1bv/Vb3/MP//APv83/A9dcc82D3/Ed3/GzXuzFXuy1r7nmmgffff48v/BHf8xfPvnJ/OWTngwGMM9iA4ANADbXnzoFNi/7qEfxZq/2Krzsox7FP/zDP/z2fffdd+s//MM//M5v/dZvfTf/D1xzzTUPfsd3fMfPep3XeZ33vu+++25tpTz4F/74j/nLJz2Jv3zyk8HmWWwAsAHABhuA60+e5GUf9She9lGP4s1e7dUA+Id/+Iff/q3f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278FAJv7medi83zZ3O+6rS3e8OEP571e+qW5318+/vF820/8BH/5d38H48irP+xh333r0572PvwXueaaax78Td/0TU//vO/6bn7hj/4IBCCQuEziMonLBCAAEM8knkU8X9efPMmbvdIr8f5v+qbc7579fX75iY/ne/7iT3kWg7mfAcA8FwOAeQ7XbW/zxo96DG/8mMdy3fYOd589C8Anfdqnffbh+fOfw1VXXXXVVVf9+6AHPehBXHXVVVddddW/xzu+4zt+1ju90zt9NsA99+zxy7/8BL77u/8UEC+YAJB4AcQLct11O7zRGz2KN37jR3Hdddvcffd5fuEX/oRv//ZfAAAMABgAMGCuMGDAXGFsAwYMGDBgIAFx/fWn+aZv+jQuXLjvtz/zMz/zdfgvck8cf3qL/sHv/w5vzvu//ZsBcM/FA37lL57C9/763/Bs4jmIBxDPTTyQQDyHa09s8kYv+zDe8/VeEoC7z57nF37nj/j2H/t5wGCDAQw2YLCxDTY4wQYn2OCETHDjzV7vtfjg93znWz/kQz7kIfwX+fAP//DvOor63p/37d8DERABCpBA4v3f8k15/7d8UwDu3TvkV55wK9/3p48DxPMlEP8S8YJcu73BGz76QbzHKz4WgLvPnecXfu8P+Paf/Flwgo1tyAQbMiETskFreBq5/vQpfuZ7v4vP/MzPfJ1/+Id/+G3+C7zO67zOe3/4h3/4d73ye78vREAESCCBBBJIgECABMD7v+mb8v5v9iYA3HtwxK8+9Va+728fzxXmWcyLzJjnYJ7l2q1N3vBhD+I9X/rFALj73Dl+/vd+n2//iZ+ETMiENsE04dWK93/Hd2A4PHyf3/qt3/pu/ot80zd909O/5ed//sG/8Ed/BBJIIAGABBKXSVwmcZnEs0gIeL83eRPe/03ehPt979/8Db/ytKdx78EBANg8kHkAm+fL5vmyuW5rizd8+MN5o0c8guu2trj77Fl+/nd+h2//kR+hrNe3Xt91D+G/yId/+Id/1+u8zuu89yt/wAeCBAIQCEAgAIEABAIQAIhnEs8inknc7/3f5E14/zd9E+733X/+p/zKk57APft7PIvB3M88i3ku5jLzXAzmsuu2d3jjRz+GN37MY7lueweAH/mRH/nsH/3RH/0crrrqqquuuurfjnL8+HGuuuqqq6666t/immuuefAnfdIn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ZxuAf/iHf/jtr//6r3+f++6771b+D7rmmmse/OEf/uHf9WIv9mKvDXDP/j5/fddd/MoTnsBf33UXz8HmRWJzv+u2t3mjRz+aN37MY7hue5v7ff3Xf/37/NZv/dZ383/UNddc8+AP//AP/64Xe7EXe22Ae/b2+KXH/T1/fecd/PXtt/Ns5jmY58M8i7nsup1jvPGLvRhv8mIvznU7x7jfj/zIj3z2j/7oj34OV1111VVXXfWfAz3oQQ/iqquuuuqqq/4zXXPNNQ9+7dd+7fd6ndd5nfe+5pprHswz3XPPHn/917fzV391O/fcs8df//XtAIB4Qa67boeXfumbue66Hd7kTV6M667b4X733XffrT/6oz/6Ob/1W7/13fw/cM011zz4tV/7td/rnd7pnT6bB7jnwj5//dQ7+Zun3MVfP/VO7rmwz/MSD3TdyW3e6BUeBcB7v9Er8ED33XffrV//9V//Pv/wD//w2/w/cM011zz4tV/7td/rnd7pnT6bZ7rn0j73XDrgb267m7++/R7uvbTPPZcOABDP33XHtgB4wxd/BC99y/W81C3X80C/9Vu/9d0/+qM/+jn33Xffrfw/8eEf/uHf9Tqv8zrvzTPds3/A39x5N39z593cs3/A39x5Ny+Quey67S2u3dnmpW68jpe+8Xpe6sbreaAf+ZEf+ezf/u3f/p777rvvVv4fuOaaax784R/+4d/1Yi/2Yq/NM92zv89f33UXf3Pnndyzt8df33UXL5TNddvbXLezw0vdcAMvfeONvPSNN3K/f/iHf/jtv//7v//t3/7t3/6e++6771b+H3id13md936d13md93qxF3ux1+aZ7tnb46/vuJ2/uuM27tnb46/vuJ3LzHMx97tu5xgvfdPNXLezw5u82Etw3c4O97vvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqqv+c6EHPehBXHXVVVddddV/hWuuuebBZ86cefDrvM7rvNfrvM7rvDfAPffscd11O9zvnnv2ALjnnks80HXXHeO663a43z337HHddTvcd999t/7Wb/3Wd//2b//299x333238v/QNddc8+AXe7EXe+0Xe7EXe63XeZ3XeW+eyz0X9gG458Iez+2lH34jz899991362/91m9992//9m9/z3333Xcr/w9dc801D36xF3ux136d13md93qxF3ux1+aZ7rm0z3XHtrnn0j4A91w64IGuO7bNdce2eH7uu+++W3/rt37ru3/0R3/0c/h/6pprrnnwi73Yi73267zO67zXi73Yi702z+We/QMw3Lu/zwNdu73FdTvbPD/33Xffrb/1W7/13T/6oz/6Ofw/dc011zz4tV/7td/rmmuuefDrvM7rvPc9+/tct73N/e7Z3wfgnr09Hui6nR2u297m+fmHf/iH3/77v//73/7RH/3Rz+H/qWuuuebBr/3ar/1e7/RO7/TZPB/37F3inr09nttL33QzD3TP3iWu2znGfffdd+tv/dZvfffZs2ef8Vu/9VvfzVVXXXXVVVf910APetCDuOqqq6666qr/atdcc82DAV7sxV7stV/sxV7sta655poHv9iLvdhr8y+47777bv2Hf/iH377vvvtu/Yd/+Iff+Yd/+Iff5qpnueaaax585syZB7/Yi73Ya734i7/4a585c+bB11xzzYN5gPvuu+/Wa6655sE803333XcrwD/8wz/89n333Xfrb//2b3/PfffddytXPcs111zz4Bd7sRd77Rd7sRd7rWuuuebBL/ZiL/ba/Avuu+++WwF+67d+67sBfvRHf/RzuOo5XHPNNQ9+sRd7sdd+sRd7sde65pprHvxiL/Zir83zcd999916zTXXPBjgvvvuuxXgt37rt7777Nmzz/it3/qt7+aq53DNNdc8+MVe7MVe+8Ve7MVe65prrnnwi73Yi702z8d999136zXXXPNggH/4h3/4bYC///u//+1/+Id/+J1/+Id/+G2ueg7XXHPNg1/sxV7stc6cOfPg13md13nva6655sH8C+67775bz549e+tv/dZvfc9999339H/4h3/4Ha666qqrrrrqvx560IMexFVXXXXVVVf9T3HNNdc8GODMmTMP5gHOnj1763333XcrV/2rXXPNNQ8GOHPmzIN5Lv/wD//w21z1b3LNNdc8GODMmTMP5pnOnj1765kzZx78D//wD7/NVf8m11xzzYMBzpw582Ae4OzZs7fed999t3LVv8k111zzYIAzZ848mAc4e/bsrffdd9+tXPWvds011zwYwLavueaah/AA991339PPnj37DK666qqrrrrqfwb0oAc9iKuuuuqqq6666qqrrrrqqquuuuqqq6666v8kKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqq/+WuueaaB7/Yi73Ya585c+ZBANdcc82Deab77rvv1rNnzz7jvvvuu/Xs2bO33nfffbdy1bNcc801DwZ4sRd7sdc+c+bMgwCuueaaB/NM9913361nz559xn333Xfr2bNnb73vvvtu5apnueaaax4M8GIv9mKvzTO92Iu92GvxTPfdd9+tZ8+efcZ999136z/8wz/8Nlc9h2uuuebBZ86cefA111zz4DNnzjyIZ7rmmmseDHDffffdevbs2Wfcd999t/7DP/zDb3PVc7jmmmsefObMmQe/2Iu92GvxANdcc82DAe67775bz549+4z77rvv1n/4h3/4ba56Dtdcc82Dz5w58+BrrrnmwWfOnHkQwDXXXPNgnukf/uEffgfgvvvuu/Uf/uEffpurrrrqqquu+t8LPehBD+Kqq6666qqr/je55pprHvzar/3a7/XiL/7ir33mzJkHX3PNNQ/mRXTffffdevbs2Vt/67d+63vuu+++W//hH/7ht/l/5pprrnnwa7/2a7/Xi7/4i7/2i73Yi702/wr33Xffrf/wD//w2//wD//wO//wD//w2/fdd9+t/D/zYi/2Yq/9Yi/2Yq/1Oq/zOu99zTXXPJgXwX333Xcrz/Rbv/Vb33327Nln/NZv/dZ38//MNddc8+DXfu3Xfi+Ad3qnd/ps/pXuu+++W//hH/7ht//hH/7hd37rt37ru/l/5pprrnnwa7/2a7/XNddc8+AXe7EXe+1rrrnmwfwr/MM//MNv33fffc/4rd/6re/+h3/4h9/m/5lrrrnmwa/92q/9Xi/+4i/+Oi/2Yi/2Wvfdd9+t11xzzYN5Edx33323Avz2b//29/z93//9b//DP/zDb3PVVVddddVV/3ugBz3oQVx11VVXXXXV/3TXXHPNg1/7tV/7vV7ndV7nva+55poHA9x993l+4Rf+iLvvvsDdd5/n7rsvcPfd57nf9defAuD6609y/fWneNmXfSTXX3+Sl33ZR3K/++6779bf+q3f+u4f/dEf/Rz+D7vmmmse/Nqv/drv9U7v9E6fzTPdffY8v/A7fwSCv3z8k7n77AXuPnueK8z1Z06B4fozp7j+zCle9jGP4Pozp3jZxz6S+9133323/uiP/ujn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MwCf+Zmf+Tq//du//T38L3B4eLj727/929/ziq/4im997clTx1/94Y9gazbjb+64HQAw/xri38Lc771f9TX4/Ld+e7bmc+67775bP+uzPut1br311r/mf4F/+Id/+B2AF3/xF3/tl7nlwbzMzQ/ir29/BgfrFdi86MzzZf5l5rLrjh3nC97+XXiTl3wZAH7kR37ks7/+67/+fbjqqquuuuqq/xroQQ96EFddddVVV131X+maa6558Id/+Id/14u92Iu9NsAv/dJf853f+Vvcc88uLxrxbyfe531ei/d939cG4L777rv167/+69/nH/7hH36b/2WuueaaB7/2a7/2e73TO73TZwPcc36XX/rjv+W7f/F3AQDxQokXQLworjt5jE95jzfnpR/xIAD+4R/+4bc/8zM/83X4X+iaa6558Od8zuf81jXXXPNggF/+67/ne377D7hn9xL/duI5iBfovV7rVXnv13417vcjP/Ijn/2jP/qjn8P/Qu/4ju/4We/0Tu/02QD3XLrEr/zDP/A9f/iH/Fe4bmeH93rVV+WNXvzFAbjvvvtu/fqv//r3+Yd/+Iff5n+Za6655sHv+I7v+Fmv8zqv894Av/y4v+N7/ugPuGdvl+dhXihjnsW8CMx7v8pr8N6v+hrc70d+5Ec++0d/9Ec/h/+FXuzFXuy1P/dzP/e3AO65tMsv/f3f8F2//9u8UOYBzPNlng/zQNftHOdNXvKleZ/XeB0A7rvvvlu//uu//n3+4R/+4be56qqrrrrqqv866EEPehBXXXXVVVdd9V/tmmuuefBrv/Zrv9c7vdM7fTbAPffs8ld/dSu/9Et/xV/91a38y8S/1pu8yUvzvu/72lx33XEA/uEf/uG3v/7rv/597rvvvlv5X+yaa6558Id/+Id/14u92Iu9NsA953f5pT/+W777F38XEC+UeCHE83PdyWO88Su/JO/zpq8BwH333Xfrb/3Wb333j/7oj34O/4tdc801D37t137t93qd13md977mmmsefM/uJf761tv5lb/+O/761tv5txHPQTyH93qtV+WNX/rFue74MQD+4R/+4be//uu//n3uu+++W/lf7Jprrnnwh3/4h3/Xi73Yi702wD2XLvEr//APfM8f/iH/Ga7b2eGNXvzFea9XfVXu9yM/8iOf/aM/+qOfw/9y7/iO7/hZ7/RO7/TZAPfs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L/7aL/ZiL/bavAD33XffrQD/8A//8Nv33Xffrf/wD//wO//wD//w2/w/ds011zwY4MyZMw++5pprHvxiL/ZirwVwzTXXPPjFXuzFXpsX4L777rv17Nmzt/793//9b//DP/zD7/zDP/zDb/P/xDXXXPNgHuC+++67lQe45pprHvxiL/Zir/1iL/Zir3XNNdc8+MVe7MVemxfgvvvuu/Xs2bO3/v3f//1vA/zDP/zD7/zDP/zDb3PVVVddddVV/zOhBz3oQVx11VVXXXXV/zbXXHPNg3mm++6771aeyzXXXPPg137t136vF3/xF39tgBd7sRd7bZ7pvvvuu/Waa655MM9033333Xr27Nlb77vvvlv/4R/+4Xfuu+++W//hH/7ht/l/4Jprrnkwz3TmzJkHv9iLvdhrvfiLv/hrnzlz5sHXXHPNgwHuu+++W6+55poH33fffbdec801Dwa47777bj179uyt9913363/8A//8Du/9Vu/9d38P3PNNdc8+MyZMw9+sRd7sde65pprHvw6r/M6781zue+++2695pprHgxw33333Xr27Nlb//7v//63/+Ef/uF3/uEf/uG3+X/mmmuuefCZM2ce/GIv9mKv9eIv/uKv/WIv9mKvfd999916zTXXPBjgvvvuu/Waa6558H333XfrNddc8+CzZ88+47777nv6fffdd+tv/dZvfc8//MM//Db/z1xzzTUPfrEXe7HXPnPmzINe/MVf/LVf7MVe7LV5pvvuu+/Wa6655sE8wH333Xfr2bNnb/2t3/qt7wH8D//wD78DcN99993K/xPXXHPNg1/7tV/7vQBe/MVf/HVe7MVe7LV4Lvfdd9+t11xzzYPvu+++WwH+4R/+4Xf+4R/+4bfvu+++W//hH/7ht3mAa6655sE803333XcrV1111VVXXfW/D3rQgx7EVVddddVVV/1fcM011zz4tV/7td/rnd7pnT6bB7j77nPcffd57r77HA90/fWnAXjZl30Ud911FzfccAP3u++++279rd/6re/+h3/4h9/5h3/4h9/m/6hrrrnmwa/92q/9Xq/zOq/z3tdcc82Deaa7z57j7rPnufvsOZ7b9WdO87KPfRTP7b777rv1t37rt777t3/7t7/nvvvuu5X/o97xHd/xs178xV/8tV/sxV7stXmAu8+d4+7z5wG4+9w5Huj606e5/tQp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gQQIECD+PQRct3MMgHvvvffp/Be5duc4AsT9BOKFE88kni9xmbifeBbxgkm8IOJf9tI3PwSAf/iHf/gd/hPVqd3ar8ff5rmIfw3xryH+a1x3/AT33Xffrffdd9+tXHXVVVddddV/LoKrrrrqqquu+i/wD//wD78NcP31J3jRmf8Y5j/L3XdfoNbl7/Bf5GUe8VBeNOYFMv9pxP9M//AP//DbAC/1kIfwn0kAEi8yiX+JeC4SAC/1oAcB8A//8A+/zX8rAQIJJBAgQID4jyVAgAAJJJAAAeJf49qd4wBcc801D+E/2dmzZ2/luYj7CcQLJ55JPF/iMnE/8SziBRMvkMQziechuG7nOAD33Xffrfwnm186+h6emwDEfzzxohP/Vm/yki8PwD/8wz/8DlddddVVV131n4/gqquuuuqqq/4L/P3f//1v33fffbe+7/u+Ef865kVl80KYfx/z3K6//iTXX3+SWtut/Cf7rd/6re8BeOlHPpT/Ecy/23WnTgBw33333cp/sn/4h3/4bYCXfvCDuZ94EUm8KAQg8SKT+JeIB5BA4r/DP/zDP/w2wEvd/CBAgEACCQSI/14CBEggAQLEC3PdsWMA/MM//MNv85/svvvuuxXgup1jPJAAASCQeKHEM4kXRvxriBdGvGAvdfNDAPiHf/iH3+Y/WZ2mp/N8iP+9XvpBDwPgH/7hH36bq6666qqrrvrPR3DVVVddddVV/wV++7d/+3uuueaaB1933Qn+rzl79uyt/Cf7h3/4h98GuP7UCf6vuO7kce67775bz549eyv/ye67775bAa47cQIASfxHEv+xBIgHkHhuL/WgBwHwD//wD7/Nf7L77rvvVoDrdo6DAPE/mwABEkiAAPFAL3XTgwD4h3/4h9/mP9l99913K8C128dBPA/xTBKIF0w8k3ge4lkEgHgW8YJJvEACASCe2xu/+MsA8A//8A+/zX+y++6771aA63ZO8CIR/+O9yUu9PAD/8A//8NtcddVVV1111X8+gquuuuqqq676L3Dffffd+g//8A+/ff31J3mTN3kF/nXMi8rmhTD/PuaBrrvuBPfdd9+t99133638J7vvvvtu/Yd/+Iffvu7UCV76kQ/lRWP+9cx/letOneCaa6558H333Xcr/8nOnj37jH/4h3/47euOH+elH/xgXmQS/xLxTBIvMokXRDwXief2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/uiPfg7/C505c+ZBH/ERH/HdL/ZiL/baAPfs7fKrT/hbvvdPf4dnMwCY58s2z5d5JgNw3c5x3vAxL80bPfaluW7nOAD/8A//8Ns/8iM/8jn/8A//8Nv8L3DNNdc8+MVe7MVe+8yZMw+65pprHvw6r/M67w1wz6WLAPzS3/8Fv/z3f8k9ly6CeT4M5vkzD2AADGAue5OXfDne+CVenpd50EMBuO+++2790R/90c/5rd/6re/mqquuuuqqq/7nQQ960IO46qqrrrrqqv+prrnmmge/9mu/9nu90zu902fzTHfffYG/+qun8ku/9Gf81V89lecknh+J53HddSd4kzd5Ba6//gRv8iavwAtz33333XrNNdc8+L777rv1H/7hH377t37rt77nH/7hH36b/+Fe53Ve571f53Ve571e7MVe7LUB7jl/kb9+0tP4qyc/nV/+o78A8QKIf8l1p0/wJq/0srz3m70ez+0f/uEffvu+++57xm/91m999z/8wz/8Nv8LXXPNNQ9+x3d8x896ndd5nffmme7Z3eVX/vqv+ZtnPIO/ufVWnkXifuL5kHiga48f541e8iV5w5d6Ka47fhyA++6779bf+q3f+u4f/dEf/Rz+l7vmmmse/Nqv/drv9U7v9E6fzTPdu3eJX3v83/E3d97G3955G/9W1+4c4w0f/RK85E238JI33sL9/uEf/uG3v/7rv/597rvvvlv5X+iaa6558Gu/9mu/1zu90zt9Ns/lnr1d/ubOZ/CrT/gb/ubOZwDmMvN82eZ5GK7bOc4bPualuG7nOG/02Jfmfvfdd9+tP/qjP/o5v/Vbv/Xd/A93zTXXPPi1X/u13+ud3umdPpt/wT2XLgLw17c/jb+67en88t/9Bc/JYJ4/8wAG4NpjJ3iTl3g53uc13oD73Xfffbf+1m/91nf/6I/+6Odw1VVXXXXVVf9zoQc96EFcddVVV1111f9011xzzYNf7MVe7LVf53Ve571e7MVe7LV5prvvvsA991zk7rsv8Fd/9VTuuecid999AYB77rkIwHXXnQDghhtOct11J7juupO8zMs8jJd5mYfxQL/wC7/Dt3/7T/BAL/uyj+X660/zsi/7WF72ZR/LA9133323/uiP/ujn/NZv/dZ38z/ci73Yi732O73TO33Wi73Yi702D3DP+Yv89ZOfxl896encc/4iAPdcuMg9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3/mzAID4txH3k3geL/Myj+RTP/V9uO66UwB8+7d/O9/+7d/O/a6//npe9mVflpd92Zflzd7szQC47777bv2Hf/iH3/7RH/3Rz7nvvvtu5b/J67zO67z3h3/4h38XwD3nz/PLf/In/NIf/zH3nD8PgHguEi+UhHghJK47eZL3epM34Y1f6ZUAuPvs3fzlP/wlL/tiL8v1Z64H4L777rv1R3/0Rz/nt37rt76b/0GuueaaB3/4h3/4d73Yi73YawPce+kiX/6LP8rf3v40EIAQgHgmcZm4TAjEswlACEA8kwBAXCbEu77y6/Bur/S63O++++679UM+5EMewv9w11xzzYM/53M+57euueaaBwPcd3SJ37z17/iRJ/w+AOK5icvEv8s1G8f48Jd7U1789C0A3Hfffbd+1md91uvcd999t/I/yIu92Iu99od/+Id/1zXXXPNggLvP380v/NEv8Gav8mZcf+p6AH791r/mBx/329x3eBHMFQZjADBX2AAYwAAG82w25pkMYDCXXbN1gjd46Mvw7i/9+tzvR37kRz77R3/0Rz+H/ybXXHPNg1/7tV/7vd7pnd7ps3mmX/ijX+Avn/yX/MIf/QL3u/7k9bzZq7wZ7//m7w/AvfsX+OXH/Qnf86e/DADmWWwA8yzm2WweyOY52TzQe7/Km/LGL/ZKXHfsFAD/8A//8Ntf//Vf/z733XffrVx11VVXXXXV/x7oQQ96EFddddVVV131v9HrvM7rvPc7vuM7ftY111zzYIB77jnPL/7iH/BXf/Uk/uqvnsi/nrifxGXXXXeKN3mTV+VN3/RVue66UwD85V/+JZ/3eZ/H3XffzQty/fXX82Zv9ma8//u/PwD33XffrT/6oz/6Ob/1W7/13fw3ueaaax782q/92u/1Tu/0Tp8NcM/58/z1k5/ML//xH/PXT34yzyLxL5IQz991p07xXm/yJrzxK70SAHefvZtf+O1f4Nt//NvBcP2Z63nZx74s7/+O78/1Z64H4Ld+67e++0d/9Ec/57777ruV/yGuueaaB7/2a7/2e73O67zOe19zzTUPBrj30kW+7w9/nV//+78A8UwCAHGZACSeRQBCAOKZxGWCa3eO8/qPeVne7ZVfl/vdfe5urj99PQD33XffrV//9V//Pv/wD//w2/wP9GIv9mKv/eEf/uHfdc011zwY4C+f+Je87KNeFoD7ji7xW8/4e/7+7G38w/nb+FcRz8twzcYxXueWF+d1HvQSXLNxDID77rvv1t/6rd/67h/90R/9HP4Hueaaax784R/+4d/1Yi/2Yq8NcPf5u/mFP/oFvv0Xvh2A609dz8s+8mX5jPf8DADuO9rlb++7ld+49a/4u/tu5X62ucxcYQNgAAMYzLPY5lkM124d5/Uf+rK8+0u9Hvf7h3/4h9/++q//+ve57777buW/yTu+4zt+1ju90zt9Ns/07T//7Xz7L3w7L5Dh+lPX840f+41cf+p6AO7Zu8CvPP5P+J4//WUwlxnA5lnMc7J5FoN5AJvrdk7yxi/2yrz3q74p9/uHf/iH3/6t3/qt7/mt3/qt7+aqq6666qqr/vdBD3rQg7jqqquuuuqq/62uueaaB7/Yi73Ya7/O67zOe73Yi73Ya/NMd999nr/6qyfyS7/0h/zVXz2RF40AuO66U7zpm74q119/mjd5k1fhnnvOc911p7j77rv5hV/4Bb7927+dF9X111/Pm73Zm/H+7//+nD179hn33Xff0z/zMz/zdfhvdM011zz4Hd/xHT/rdV7ndd6bZ7rn/Hn++slP5q+f/GT++slP5p4LF3iBJADEFdedPMl1p07xUg9/OO/9pm/KA337j3873/5j386zmCsM15+5njd97TflA97xAwC47777bv2sz/qs17nvvvtu5X+Ia6655sEf/uEf/l0v9mIv9to8wL17F/nb257G397+NO7d2+Vv73gaAAKQeBYBCAABCK7dOQHA6z/2ZXn9x74M1+6c4H53n7ubz/3Wz+UvH/+XXH/qet7sNd6MD3i7D+C+++679bd+67e++0d/9Ec/h/9B3vEd3/Gz3umd3umzAf7yiX/Jh375h4LgzV71zXizV30zXvaRL8v97ju6xG894+/4+3O38w/nbwPEi+qajWO8zi0vzoudvpkXP30Lz+3s2bPP+MzP/MzXvu+++27lf4gXe7EXe+3P/dzP/S2Au8/fzS/80S/w7T//7SCek+D6U9fzZq/8Zrz/m70/97v3cJe/O3srf3ff0/mNW/8a2wBgnslgMIABDOayazeP8xLXPIRrto7z7i/5ejzQP/zDP/z2Z37mZ74O/42uueaaB3/4h3/4d73Yi73YawP85ZP+ks/7ns/j7vN3g3jBzGXXn7qel33Ey/Jmr/pmvOwjXxaAe/Yu8Dd3PoW/vuPJ3LN3gb++4ymAeRbzbAYw97t2+yTX7ZzipW9+OG/8Yq/MdTsnud8//MM//PZv/dZvfc9v/dZvfTdXXXXVVVdd9b8XetCDHsRVV1111VVX/V9w5syZB73TO73TZ7/O67zOe/Nc7r77PPfcc4677z6PBHfffY4Huv7601x33Sle5mUexXO7++67+YVf+AW+/du/nX+rN3uzN+MzPuMzALjvvvtu/azP+qzXue+++27lv9E111zz4Hd8x3f8rNd5ndd5b57LPefPc8+FC9xz4QLY3HPhAg903alTXHfyJC/9iEfw3O4+eze/8Du/wLf/+LcDgHk2c4W5zDbXn7meN3vtN+MD3ukDuO+++279rd/6re/+0R/90c/hv9k111zz4A//8A//rhd7sRd77b98/F/yed/2ebzsY16WN3uNN+NlH/2yPNC9excB+Nvbnw7AvXsXeSABL3HzQ7l25zjX7pzgge4+dze/8Pu/wC/83i9w99m7MQYDBgwv+5iX5TM/6DO5/sz1fP3Xf/37/NZv/dZ38z/Ah3/4h3/X67zO67z33efu5vO+6/P4yyf9JQCIKwTXn7qe93+L9+fNXuXNeG73HV3i7NEl7jva476jSzy3azaOcc3mMV7s1M08t7vP3c23/dS38ZeP+0ve7NXfjA94uw/gvvvuu/WzPuuzXue+++67lf9mL/ZiL/baH/7hH/5d11xzzYP/8ol/yYd+5YeCuEI8m3gO15+8njd7lTfjZR/xsrzsI1+WB7r3cJf7Di9y7+EuAPce7gIGc9m1mye4ZvM4L3ntQ3h+/uEf/uG3P/MzP/N1+G92zTXXPPhzPudzfuuaa6558N3n7+bzvvvz+Msn/SWIK8QLZ57l+pPXc/2p63n/N39/XvZRL8sD3bN3gXv2LnDv/nlsuGfvAg903c5Jrts5yUvf9Aie23333Xfrb/3Wb333P/zDP/z2P/zDP/wOV1111VVXXfW/H3rQgx7EVVddddVVV/1fcs011zz4zJkzD36xF3ux13qd13md977mmmsezL/CX/7lX3L33Xfzl3/5l/zCL/wC/xFsc/311/NN3/RNXH/99dx33323ftZnfdbr3Hfffbfy3+TFXuzFXvtzP/dzf+vu++7mQz7rQ7j+zPW8+eu+OS/7Yi/L9Weu50V199m7ufvs3fzl4/6SX/idX+Dus3fzHMyzmSvMZba5zPD+7/j+fMA7fQD33XffrT/6oz/6Ob/1W7/13fw3ueaaax784R/+4d914sSJ1/6FP/4FvuOnvwPEFYLrz1zPyz76ZXnZR78s15+6npd99Mvyorj73N1cf/p67j53N7/w+7/AXz7xL/nLx/8lABgwGIMBAwYM15++nm/6jG/i+jPX81u/9Vvf/fVf//Xvw3+jz/3cz/2tM2fOPLhFe/DbfNLbgABxhbhCPMv1p6/n+lPX82av8mZcf+p6rj91Pdefup4X1d3n7uYvn/iX3HX2Lr79p78dDBgwkPD+b/v+fMDbfQD33XffrZ/1WZ/1Ovfdd9+t/Dd5ndd5nff+8A//8O8C+Paf+3a+/ee+HQSIK8SziRfo+pPX82av/Ga87CNflpd95Mvyr3H3ubu5++zd/MXj/oK/fNxf8pkf/JlcuO/Cb//Ij/zI5/zDP/zDb/Pf5Jprrnnwh3/4h3/Xi73Yi7323efv5m0+5W1AXCGuEP8yc4W5wnD9qet52Ue+LC/7yJflZR/1slx/+nr+Ne67775bf+u3fuu7/+Ef/uF3/uEf/uG3ueqqq6666qr/W9CDHvQgrrrqqquuuur/ohd7sRd77c/93M/9rc/93M/lL//yL7n++uu54YYbuP7667nf3XffzfXXX8/dd9/NX/7lX3L33Xfzn8E2ANdffz1v9mZvxgd8wAfwD//wD7/99V//9e9z33333cp/sWuuuebBH/7hH/5dJ8+cfO23/uC3BoEkECC4/sz1XH/N9Vx/5noQXH/meh7o7nN3c/fZu/nLx/0lz8M8J/Ns5gpzmW0uM2B42Rd7Wb7p876Js2fPPuM3f/M3v+tHf/RHP4f/Bp/7uZ/7Wy/2Yi/22h/yBR/CXz3hr0CAuEKAuEJcdv3p67nu9HXccPoGAK4/dT3P7S+f+Jdg+Msn/iUAmCvMFQYMxmDAgAEDhutPX8/7v9378+av/eb8yI/8yGf/6I/+6Ofw3+DDP/zDv+t1Xud13vsvn/CXfOiXfigIECCuEFeIK8TzuP7U9QC87CNfFoDrT14PwN3n7+b6U9cD8JdP/Euc5q+e9FdgsA0GDBgwYMBAwpu9xpvxmR/ymdx33323fsiHfMhD+G/wYi/2Yq/9uZ/7ub8F8KFf/qH85RP/EgQIEFeIZxMvmHk2w/Wnruf6k9dz/anrwXD9qeu5n23uPnc3d5+7m798/F+CgQQMJFx/8nq+6TO/iUK59bM+67Ne57777ruV/2LXXHPNg7/pm77p6QB/+cS/5EO//ENBgLhCXCH+ZebZzBUGzBWG609dz3Unr+P609cDgOH6U9eDuezu++7m7vvu5u577+bNXvPNeOvXfetnfOZnfuZr33fffbdy1VVXXXXVVf/3oAc96EFcddVVV1111f9F3/RN3/T0O+6448Ef8iEfwv0k8d/BNg/0AR/wAbz/+78/Z8+efcZnfuZnvvZ99913K/+FPvdzP/e3Tp45+dpv/UFvDQIChECAuEJcIZ6TeOHMczLPZq4wl9nmMgMGDNefuZ6f/taf5r777rv167/+69/nH/7hH36b/0Lv+I7v+Fnv9E7v9Nkf8vkfwl8+4S+RBAIEiCvEFeIK8aIxz2auMFeYKwy2wYABAwYM15+6ns/80M/kZV/sZfn6r//69/mt3/qt7+a/0Iu92Iu99ud+7uf+1l8+4S/5kC/5ECSBAAHiCnGFuEL8y8yzmSsMmCsMGIzBgAEDCRhIIOHNXvPN+MwP/Ux+67d+67u//uu//n34L/RiL/Zir/25n/u5vwXwoV/2ofzlk/4SAAQIEFeIZxMvnHk2c4UBc4UBg20wYMCAAQMJJJBw/cnr+abP/iae+Lgnfs/Xfd3XvTf/ha655poHf/iHf/h3vdiLvdhr/8If/AKf992fx2UCxBXiCvGiMVeYK8wVBsxltsGAAQMGDCRgIIEEGrz/270/b/V6b3Xrh3zIhzyEq6666qqrrvq/h3L8+HGuuuqqq6666v+ad3zHd/ysW2655a3f4z3eg/tJ4n8CSfzlX/4lAK/xGq9x/CEPechL/9Zv/db38F/kdV7ndd77zd/8zT/6E7/oE7n77N0QIAnEFQLEs4lnE//xzHM4ODzgL//uL3mnt3yn4y/2Yi/22r/wC7/wNfwXebEXe7HX/oiP+Ijv/rYf/zZ+4fd+AQSSQIAAcYUA8Wziv8TB4QF/+Q9/yWu9wmtx3TXXHf+Hf/iH3zk8PNzlv8A111zz4K/4iq/4q7vP3c17fOZ7gEASCBAgrhAgnk3824lnE8/LXGEue/LTnwyG13jF1zj+jGc842/uu+++W/kv8hEf8RHfdc011zz4Q770Q/irJ/0ViCsECBBXiGcT/zbiOYnnZJ7HweEBv/3Hv82nfPinvPTZs2efceutt/41/0U+6ZM+6ade7MVe7LX/8ol/ySd9wycBgAAB4gpxhXhe4nmJK8QV4tnEZUK8QObZDHfdcxcv89iXOf5SL/FSD/7TP/3Tn+Gqq6666qqr/m8huOqqq6666qr/g17ndV7nvT/3cz+X/8l+8Rd/kb/8y7/kxV7sxV77Hd/xHT+L/yLv+I7v+Fnf/kPfzl/+/V+CeE7iOYn/NMa8IH/593/Jt/3Qt3HNNdc8+MM//MO/i/8ir/M6r/Nef/m4v+Tbf+LbeYHEf6u7z97Nh3zWh/BiL/Zir/3hH/7h38V/kQ//8A//LoDP/dbP5T+c+LcRV4grBL/wW7/A7ffd/uAP//AP/27+i3z4h3/4d73Yi73Ya3/bT38bf/mEvwQD5t9P/MvE8xIgnpPgnrP38G0/9G284zu+42fxX+Qd3/EdP+vFXuzFXvsvn/CXfMiXfAiY52ReOHGFeNGI5yRAgAAB4grxbIK7z9/Nt/3Qt3HNNdc8mKuuuuqqq676v4fgqquuuuqqq/6PeZ3XeZ33/tM//dMH/+Vf/iX/E9jm+bn77rv5vM/7PO6++25e53Ve572vueaaB/Of7HVe53Xe+5prrnnwt/3wt4H41xH/pb79h76dv/yHv+TFXuzFXvvFXuzFXpv/ZK/zOq/z3q/zOq/z3t/2Y9/Gv4p40Yl/H3HZ3ffdzed+7efyYi/2Yq/94i/+4q/Nf7IXe7EXe+0Xe7EXe+1v+8lv4y+f8Je8QOI5iX898bzEi+zus3fzuV/7udj2Nddc82D+k11zzTUPfrEXe7HX/ssn/CXf/jPfzotM/OuIK8SzicuEeIEEiCsEP/+bP0/L9uDXeZ3XeW/+k11zzTUPfqd3eqfPBvi87/g8/t3EcxJXiCvEswkQCPE8BAgQIEAgib983F9y+523P/gd3/EdP4urrrrqqquu+r+F4Kqrrrrqqqv+j3nHd3zHz/qFX/gFHkgS/1qSkIQk/qNIAkASAPfccw/f8R3fwTXXXPPgd3zHd/ws/pO92Iu92Gt97ld9Ls8iQDwn8V/DvHCCz/v6z+Oaa6558Du90zt9Fv/JXud1Xue9fuG3f4G/fNxfgrhCgADxryNAvGjEv8lf/v1f8hd/9xe89mu/9nvxn+yd3umdPuvus3fz7T/57fy7CBAg/mXiRSOek+Dus3dz+z23P/jDP/zDv4v/ZO/4ju/4Wddcc82DP/fbPpcXyvzbiOdPPCcBAsSziWcTILj73N182/d/G6/zOq/zXvwne8d3fMfPAviQL/4Q7jp3F/9q4nmJf5l4TgIECBDPJkCAAAEBP/3rP/3g13md13lvrrrqqquuuur/FoKrrrrqqquu+j/mmmuuefBf/uVf8u8hif8qv/iLv8hf/uVf8mIv9mKv/WIv9mKvzX+iF3uxF3vtv/z7vwQB4jIhEM9LPJv49zMvmHlegnvO3cMv/O4vcObMmQe/+Iu/+Gvzn+jFXuzFXvvnf/vnQTx/4tnECyaeTbxg4t/l7vvu5hd+/Re45pprHvJiL/Zir81/ohd7sRd77W/7iW/jP5R4TuL5Ey8aAeJZPverP5cXe7EXe+1rrrnmwfwnep3XeZ33/oXf+wXuPnc39zPmX02AAPGCiedPPCcB4goBAgQIEPzF4/6CF3uxF3vta6655sH8J3qxF3ux1/7LJ/4lf/n4v+T5Ms9mrjD/MvFs4gpxhXhO4nkJEFcIECBQiL98wl9y++23P/iaa655MFddddVVV131fwfBVVddddVVV/0f8jqv8zrv/Qu/8As8kCT+NSTxX0USAN/xHd/BNddc8+AXe7EXey3+k7zO67zOe//pX//pg+8+ezfPl3iRCSHE8yX+/QySQPAdP/kdXHPNNQ9+7GMf+1r8J3md13md9777vrv5y3/4S55FIMQLJZ6T+C/1F3/3F7zYi73Ya73Yi73Ya/Gf5MVe7MVeG+AXfvcX+HcR/25CIECAeDbxnAR333c3f/E3f8GLvdiLvTb/Sa655poHA3zbT34b/6HEcxLPSTybuEyI5yGek0ASd5+9m7/4q7/gzJkzD+Y/yYd/+Id/1zXXXPPgb/+5bwcA85zMv4944QSIy4R4vsSzCRAQ8Bd/9xecOXPmwVx11VVXXXXV/x0EV1111VVXXfV/yJkzZx70bd/2bfxHk8S/hW3uJwkASTy3v/qrv+Kv/uqveJ3XeZ335j/Ji73Yi73WX/79X4IA8aITz0GI+wnxr2aeP3OFuUKA4J5z9/CXT/hLXvzFX/x1+E/yYi/2Yq/1l3//lyBeOPGCiedP/NuJF+ru++7mF37rF3jxF3/x1+Y/yeu8zuu81y/8zi/wn0I8f+L5E89JPC+BEAj+8m/+ktd5ndd5L/6TfM7nfM5v/cLv/gJ3n7uby8y/jXhe4l8m/mUCBIgrBAT8xd/+BS/2Yi/2WvwnebEXe7HX/sun/CV/9ZS/4lkMtsH8qwkhxPMlrhDPnwABAgQIEFcIECAggIBf+J1f4MVe7MVei6uuuuqqq676v4Pgqquuuuqqq/4Puf322x989913828lif8uv/iLv8g111zz4Bd/8Rd/bf6T/OXf/yXPIpAE4tnEFeL5EuI/lXk2AeKy7/iZ7+Caa655MP9JXuzFXuy1/+If/gIAxL+LEEK8QOL5E8+feKF+4bd/gTNnzjyY/yQv9mIv9tp/8Q9/wWXi30Y8ixAvkHhO4tnEi06A4C/+9i/4z/YXj/sLMGD+3YQQ4lnEs4krxPMnQIAAAeJ5CRAQ8Jd//5dcc801D+Y/0S/+2S9CgIp4ocyLTIhnEc+feDZxmRDPQ4AAAQIECnH3+bv5i7/4C6666qqrrrrq/xCCq6666qqrrvo/5Bd+4Rd4IEm8qCTxX0kS95PEX/3VXwFw5syZB/Of5O6zd4MA8ZzE8yf++wgQILj3/L2cOXPmQS/2Yi/22vwn+ct/+EueRfybCHE/If5dxIvk7rN3c8011zz4mmuueTD/Sf7qcX/Fv5p4HkIACPEs4t9HXCFAPJvg7vvu5syZMw/mP8GLvdiLvfY111zz4L983F/yHMy/mxD/IvFs4vkTVwgQIECA4O5zd3PNNdc8mP8Er/M6r/Ne11xzzYP/6ml/BQEE/y5CPJAQzyKuEFeIZxPPJkCAAAHi2QQIECCgwK333PraXHXVVVddddX/HQRXXXXVVVdd9X/Ier1+bf4HkgSAJF6Qu+++m7/6q7/izJkzD+I/wZ/81Z88GPEvE8+XEM8iQPznESCuENx9/m7uPn8311xzzYP5T3DNNdc8+O6zd4N4TgLEcxJXiGcTL5z4T3P32bv5z3LNNdc8+JprrnnwXffdxfMlQDwn8SIR4j+FAHHZ3Wfv5pprrnkw/wmuueaaBwPcffZu/iMI8XyJF048ixDPQzwngSTuPnc3v/RLv3Qr/wnOnDnzYIC7L90NBSiAef7Mv4kQL5R4NvH8CRBXCBAgQHDHhTsezFVXXXXVVVf930Fw1VVXXXXVVf9HHBwcvFdr7cE8kyReVJL47yKJB7rmmmsewn+Ce87eAwLEFeI5iX+ZAPFs4j+HQAgECBDcc/4ezpw58yD+E/zN3/zNrYjnJJ5N/IuEeG5C/Fe468JdnDlz5sH8Bztz5syD77r3Lv4jCPECiRdOvHDieYnL7rrnLv6z/NWT/goMmOdknpP5VxPieYgrxAsmQIB4NgECxBUCAm6/9/YH85/gmmuuefAv/vUvQoBCKAQBGDAYc5l5TuaFEyBAPCdxhbhCPJt4FiEQIEA8m3g2gUJMZXrwarV6ba666qqrrrrq/waCq6666qqrrvo/YhiG1+Y/iW3+tWzzgkjiuUniZV7mZbjmmmsezH+Cv/yHv+RZBEIgQDx/4lmEeEGE+Ncy5jLzfEkCgSQQILju1HX8Z7nr7F08i3j+xPMn/ltJAuDs2bO38h/s7Nmzt/LvJV4gIZ6HuEI8X0IgQLxw4rK777yba6655sH8Bztz5syD7r54N8/B/OuJF0iIy8TzJ55NgHhO4jkJECAg4I5773gw/wnOnDnzYAQKQQAFFOJZDJh/H4EQL5R4NgHiOQkQVwgQIEBAwF7ufTZXXXXVVVdd9X8DwVVXXXXVVVf9H3F0dPTe/BtI4r+CJF6YN3mTN+E/05r1ayNAvGDiBRP/dQQIEAiB4PpT13P27Nln8J/gb/7ub24FQFwhEOJFJcR/KPGiE//9xH8e8ZzEs4lnEyBAgLhCQMCZM2cezH+ws2fPPuP609eDucI8JwMGzH8scYV4NvEsQjwHcYW4QoAAwRTTg1/sxV7stfkPdvbs2VvvuXQPBBBAAIUXnXnRCIQAQFwhrhDPJp5FiOchrhAgQKAQrbYHc9VVV1111VX/NxBcddVVV1111f8Bh4eH780DSOJ/Ckm8IJK438u8zMsAcN99993Kf7CD9cF788KI5ySeRQjECyb+YxkQIECA4GUf9bIA3Hfffbfyn+Dc+XO3Il504l9PPC/x7yf+09x333238h9AiH+R+JeJ5yWePwGCv/irv+A/w2/91m99tzEYMM/DmH8z8SxCACBedALEs4krxBUCSdx9/m5Wq9Vr8R/szJkzDyaAAgQohEJgXjDzvMyziX8b8ZwECBAgQFwhQIAAAYKpTA86XB2+N1ddddVVV131vx/BVVddddVVV/0fcHR09F78G0jiv5oknpskXuZlXob/LCriMnGFAPE/g3k2c4UAcYXgutPXAXD27Nlb+U/wF3//F7xIxHMS/yIhnof4jyP+U/3D3//Db3M/A+IySfybCBAgLhPiP5xACAQUuOaaax7Mf7BrrrnmwdefvB514jmYfx9xhXjRiGcTIJ5NgLhCXCGuEBCwntavzX+wf/iHf/jt649fj0KoCAIooCIwlxnzLObfTiDEZeIKcYV4NgHiMiGegwDxbAICCDjk8L246qqrrrrqqv/9CK666qqrrrrq/4D1ev3aPJMkXhSS+M9imweSxHOTxANdf/31APzDP/zDb/MfbO31ayGuEAhxmXg28fyJ/3jmORkwVwgkgQABgutPXw/Afffddyv/GQQIECCeTYB4oYT4b2Muu+HkDfxn+YfH/cNvY64Q/z7iOYnnT1whnk28YOJ5CRD85d/+JWfOnHkQ/8Huu+++WylABQyYF415wcRzEpcJcZm4Qlwhnk28YOIKAQIECBDcce6OB/Mf7B/+4R9++7rj10EBAggggMIVBgwYMP8iY14o8WzieYnnJECAAPFsAgQIECjEuqxfe7VavTZXXXXVVVdd9b8bwVVXXXXVVVf9L3fhwoXv4n8oSTyQJJ6bJN7kTd6E+/3DP/zDb/MfbO31ayNAPC/xnMSzCPFfToBACAQIrj91Pb/1W7/1PfwnaWoP5rmJfz0BAsS/jnjhxAsm/lP91m//1vcgrjAvmHg2cYX41xH/PgLEswkQXHPNNQ/mP8H5287/9g3X38CzmH8TIV4g8a8mxPMQzyZAQMAU04Nf/MVf/LX5D3Tffffdeu3WtRBAgIpQEQrxLzL/JpJ4DuIK8ZzE8xIgrhAgQICAgLXXr8VVV1111VVX/e9G5aqrrrrqqqv+l1uv16/Nv8L111+PJABe9mVflge6++67ufvuu7n77rv5r/QyL/My/NVf/RV93//2fffddyv/wZrag/k3uP6a6wG4/sz1XH/6egDuPnc315++nr98/F9y/Znr+cvH/SX/kSQBgEASkniZR7wMP/5DP/7b/CeZmB6MeDbxnMSziRfo+lPXc/3p6wG4/tT13H3ubq4/dT13nb8LgL98wl/yH85cdt99993Kf4YKJP9+4jlcf+p67veyj3hZjAHAcPf5u7n73N3cff5uLhNgnk1cYZ5NgLlCgADB3ffezTXXXPNg/hP86I/+6GfXUr8b82AeyID4D3P9qesx5vqT13P9yesBuPv83Vx/6nruPnc3AH/5xL/kWcRzMs8mrhBI4u5zd3OCEw/mP9DZs2efcfHOi7/9sg992df+yyf+JQ5DAAUQ/+muP30915+8HgzXn7qeu8/dzfWnrufuc3dz97m7ufvc3QhhzHMQYECAAAEBR3H03sc49jlcddVVV1111f9eVK666qqrrrrqf7GDg4P3bq09mGeSxHO7/vrrebM3ezNe9mVflpd92ZflRXH33XcD8Jd/+Zf81V/9FXfddRd/+Zd/yb+FJJ6bJB7oZV/2Zbnuuuv4+q//+u/hP9jhdPheAIjLJIEA8WzisuvPXM+bvdabcf2Z63nZx74s15+5HoC7z97N9Weu5/m5++zd3H3ubu6+727+8vF/yd1n7+Yv/+Ev+TcTIECAAAHiP1WL9mD+la4/fT3Xn76el33Uy/Kyj3pZXvZRL8sLc/e5u7n+9PXcff5u7j53N3efu5tf+P1f4C+f8Jc8BwHmRRf8p6pTvZXg3+1lH/GyvMwjX4brT13Pm73ym/GiuPv83QD85RP/kr984l/yC3/wCyCQhTGIK8wLJjhz5syD+U9w33333XrTI2+69RlPfcaDMf9hrj95PW/6ym/Kyz7iZXnZR7wsAHefv5vrT13PA919/m6uP3U997v7/N385RP/kr984l9y17m7+Msn/CWXCTAgwIC4QkDA677+6773z/zUz3w3/4F+67d+63te5uVf5rX/8sl/CQEEEKAiPBkExgjxLAbEv8r1p67nTV/pTQF4uUe+HC/ziJfhRXH3ubu5+/zd/MUT/oK/fMJf8peP/0swIMBcIVCIKaYHr1ar157P57/NVVddddVVV/3vROWqq6666qqr/hcbhuG1eD6uv/563uzN3oz3f//357ndfffdANxzzz3cfffdPND111/Pddddx/XXXw/Am73Zm/Fmb/ZmANx99918+7d/O3/5l3/J3Xffzb9EEg8kiecmieuuu47rrrsOgN/6rd/6bv6Drb1+bcQV4nlcf+Z6XvbFXpb3f/v35/oz1/Pc7rlwD/fu3svfPO1veKDrTl4Hgpd++Etz/Znr4THwZq/1ZgDcffZu/vJxf8kv/M4v8Jf/8Jf8qwgQIECA4LqT1/EP//APv81/NnGZEM9DXPb+b/n+vNyjX47rTl3H9aev54Hu3buX+/bvA+De/Xu537Xb14Lgeq7n+lPXc/2p6+FR8Gav9mbcfe5u/vKJf8kv/N4v8JeP/0v+tSTxn078m1x/6nre7JXfjPd/8/fnuZ1dnQXg7OosZ9dnEeJ+p2enOTM/w/WnrgfgzV71zXizV30z3v8t3p97LtzDz//+z/Pzv//zPF/i2QR3n72bu8/fzX+Gs2fPPmNv2vttzGsDYMCA+Fe7/tT1vOkrvynv/6bvz/NTNgp/f/7vue/oPoy53zmfA+AlTr8E15+6njd71TfjzV71zQC4+/zd/Pzv/zy/8Pu/wN1n7wYDAgQIEBDw07/y0w8W4j/SP/zDP/z2B7zVB0ABCigEBRwGAHOFAHOFeDYD4vm6/tT1vOkrvSlv9spvxvWnrue53bN/D/fs3QPAvfv3AoDh2p1rAXjpG1+a609fz/Wnr+dlH/Wy8Fbwl0/4S+4+dzc//7s/z18+7i9BgAABBQ6nw/eaM/9trrrqqquuuup/JypXXXXVVVdd9b/Y0dHRe/NMkrj++ut5//d/f172ZV+W66+/HoC7776bX/qlX+Kv/uqv+Ku/+iteFNdddx0AL/uyL8vLvMzL8CZv8iZcf/31fMZnfAZ33303f/mXf8kv/MIv8Jd/+Zc8N9v8a7zMy7wMAD/yIz/y2fwnGDy8NgGI53D9met5s9d+M97/Hd6f+91z4R5++Y9/GYC/fspf89dP/msQlwnxHMSzXHvyWl7m4S/DSz3ipXjph78015+5njd7rTfjzV7rzbj77N18+499O7/w278A5l8mQIC47GUe/TIA3Hfffbfyn2A1rF6bGSCuEM/j+tPX82av/ma87KNelpd99Mty3959XLNzDX9759/yd3f8HX9359/xd3f9HQCIy4RAXCEuk8Q129dw7c61vPj1L85L3PASvMQNL8GbnX4z3uzV3oy7z93NL/zeL/BtP/Vt/I9i/lXe/83fnzd7lTfj+lPXc7+zq7P8zr2/w+N3H8/jLz2e5yCer9Oz01wzv4bT89O85rWvyWNPP5brT1/PyzzyZXj/t3x/fv73f55v/+lvBwEGBBgQIEBcNk3Tg/lPMlvNfgcB5jkZEP+il33Ey/IZ7/EZXH/qeu533/I+fvPO3wTgN+/4Te47ug9jMFcYjMFcYcBwZuMML3HqJXiJ0y/B693yelx/6no+4K0+gDd/tTfnL5/wl3zbT30bd993NwAIEBDQoj3ohmtuePB99913K/9B7rvvvlt//Ht//H1U9F0EOAwBKsKYZzEgXiTXn7qe93vT9+PNXvnNuN89+/dw7/69/PWdf83f3PU3/PVdfw3m2cyzmcuMuW77Ol76xpfmpW58Ka7bvo6XffTLAvBmr/5m3H3ubj73mz+Xv/yHvwSBQgxleG2uuuqqq6666n8v9KAHPYirrrrqqquu+t/o4ODgvXd3d78L4Prrr+fN3/zNef/3f38A7r77bn7pl36JX/zFX+See+7h30oSANdddx0v8zIvw8u8zMvwJm/yJtxzzz1cd911/OVf/iWf93mfx9133839bAMgCUncTxIAkgCQBMDXfd3X0ff9b3/mZ37m6/Cf4I7hDlOAAAQK8f7v8P682eu8GdefuR6AX/6TX+avn/zX/PKf/DLPQyDE8xDPlySuO3kdb/SKb8R7vfF7cb+7z97N533D5/GX//CX2AZzhQEDBgzRB+qEqqCDN3utN+OtXu6tfvszP/MzX4f/BAfjwXvvzna/iwIEECAJBAje/23en/d/6/fnfvfu3cuvP/7X+YE/+QEQl0niWcRlkgBAXCaJZxGXSeKa7Wt4vUe+Hq/3yNfjmu1rALj73N18209+G7/wu78ABgwkYCCBBjTwZG561E385Ff+JG/3dm8n/pPcUe4wFQigAAKFQIAAAYKXfdTL8hnv/Rlcf+p6AM6uzvI79/4OP/mMn+RZxPMn/kVnZmd4zLHH8JrXviaPPfZYAO4+dze/8Pu/wLf9xLeBgQQSaODJMMA3fd438e3f9u0Pue+++27lP9hUpwff29/7dDdDAQIIQKAQCBAgrhAguP709XzjR38j15+6HoD7lvfxm3f9Jr91129x39F9GIO5woDBGMwVBmMwVxhsc5nhmo1ruGZxDa/3oNfj9W95fQDuPnc3v/B7v8C3/cS3QQMSmMCDeanrXup1Lly48Nv8B7rmmmse/KRrnvRd67p+ba+MV8Zr46VxGgSSQIAAAeIKAeKy609fz2e8x2dw/anruf7U9QB8z59/D/ce3MuvPOFXeBaDMQCYK8yzmcuMwTyb4dqda3njx7wx7/1K7839fuF3f4Fv+9Fv4+577sajOdPOvM58Nv9trrrqqquuuup/H/SgBz2Iq6666qqrrvrf6OzZs7+1Xq9f+2Vf9mX5pm/6Ju73nd/5nXznd34n/xEk8dyuu+463uRN3oT3fd/3BeDuu+/mF37hF/j2b/92AGwjCQBJAEjifpIAkATA7//+7/P1X//17/Nbv/Vb381/sMPx8L0vcvG7KEDAy734y/EZH/4ZXH/megC++xe/m1/+k1/mngv38HyJy4R4HuL5ksT9rjt5HW/0im/EG73iG3HdyesA+LYf/Ta+/Ue/HcwVBgyYy6IP1AlVoU582vt/GvPl/Lu//uu//n34T3DYDt/7YnfxuyhAAAGSuP6a6/mMD/gMrj99Pdefvp6/veNv+apf+yru3b8XAMRlkngWcZkkLhPPIgkAxGWSAEBcIXi9R7wer/fI1+PFr39xAO4+ezdv/dFvDQYSMJBAAxp4Mjc96iZ+8it/krd7u7cT/0nuKHeYCgRQAIFCIEBw/enr+Yz3+Qxe9lEvC8DZ1Vl+4hk/we/e+7sgnpd4DkI8i3iRnJmd4YMe8UE85thjALj73N18yOd/CHffdzck0MDNsIbP/PDP5E//6E9f5x/+4R9+m/8Ed+3c5VwnFCCAAAQIFAIB4rLrT1/Pm73Km/H+b/7+ANy3uo/fuuu3+JGn/Qi2ucyAwRjMFQbbXGauMBiDAXOZbQAwl9nmmsU1vP6DXp93fcy7AnD32bv53G/5XP7y7/4SGngwr/Nir/PZT3nSUz6H/2D7N+5/1tG1R5/tlWEFXptcJh4NAZJAgAAB4goBgvd/s/fn/d/8/QG4Z/8efuVJv8L3/sX3gnk28yy2AcA8m3k2c5kxmGczl123cx1v9Og34r1f+b0BuPvs3fz8b/883/ZD38ZsNfvtaxbXvA5XXXXVVVdd9b8P5fjx41x11VVXXXXV/0YXL1787vd///fnAz7gA9je3uav/uqv+IiP+Ah+7/d+j/8oknhuBwcH/PVf/zW/9Eu/xMHBAa/5mq/Jy77sy/Jmb/Zm/O7v/i77+/tIAkASAJIAkMT9JPEmb/ImvOZrvibf9V3f9TGHh4e7/Ac7aAcfNcb40gje7HXfjI95n4/h+muu557z9/Dp3/bp/PKf/DIHqwNeIHGZEM9BPH8CIe53sDzgb57yN/zB3/8BB8sDXvrhL83LvdjL8eav/ebsH+3z5Kc/mWcxKISqUAgVoSJe82Vfkwt3Xfjpf/iHf/gd/hOsWL3VuqxfmwACELzcY1+O7/v87+P609dzNB3xeT//efzAn/wAh8Mhl4lnkQQA4gqBEJeJyyRxmbhCIATiCoEQT7/4dP7+7r/ncDzk2u1rue7Edbz5a745+0f7PPnWJwOAAQMGEnZO7/BOb/RO/OiP/ujn8J9kL/Y+mwAEBCCQBIKXffTL8n2f9X1cf/p6zq7O8st3/jJf+fiv5BmHzwBxhQABAklIQhKSkAQCBIgrBAgQIECAAAECBEfTEb973+/y+L3H85hjjyFmwcs87GW4/sz1/OXj/hIApSDhEQ96BPNu/ju33nrrX/OfYNgYXnsapgcjILhCgECI+73so16W7/v07+NlH/myAPzI03+EL/m7L+EfLv4DAJK4TFwmBOIKgRCXiSvEs4nLJAGAuEwSh+Mhf3f27/j1Z/w6r3zDK3Pd8et4uce8HPtH+zz51ieD4fqT17N3ce97+A9W1uUZq+tXH00DEmhAgicDgEASCBBXCK4/fT3f92nfx2u99GsB8L1/8b181q99Fn97998CgHg28SxCACCeTbzIDtYH/M0df8OvPP5XOFgf8BqPeg1e7sVeDgR/+fd/yXbZ/hquuuqqq6666n8fyvHjx7nqqquuuuqq/22Ojo7e6xM+4RPe+p3f+Z3Z3t7mO7/zO/nCL/xCDg4O+I8miefn4OCAv/7rv+aXfumXeM3XfE2uv/56Xuu1XoutrS3+6q/+CkncTxIAkgCQBMA7vdM78YhHPILv+q7v+hj+E+y23a92+Pj7v8v787Hv+7Fsb27zXb/4XXzGt30G91y4B8QLJp5FiOcgni9JPA/BwfKAv3nq3/DLf/bLPPzGh/OImx/BIx/8SLY2t/jLv/9LMJcphIpQESpCRXzUO30Uf/4nf/49t95661/zn+DQh+89lvGlCUDw/m/3/nzmB34mAL/2uF/jk37ik7h3714QCHGZuEIgBADiMkkAIK4QCIG4QiAE4tkEQiA4HA75+3v+nj99xp9yOBzyKg97FV7r5V8LgL983F+CAQMGEnbO7PA6L/M6t/7CL/zC1/Cf5EhH752RxwkgAIEk3uzV34wv/fAvBeBxu4/jU//qU3n8pccDgAABAiEkIQnEFQIECBAgQIB4FklIQhKSkATiCgGCc+tz/PmFPwfg9R72erzcY18OgL/8h78EAwnXn76eB93woL/+h3/4h9/hP8Fqa/Xe43p8MAEIECBAIAkEb/Zqb8aXfuiXAvAPu//AZ/7VZ/Jn5/4MIRDPIgkAxGVCIK4QCAGAuEwSzyKuEFeIy4RAcDge8sd3/TGHwyGv+uBX5bVe4bVA8Jd//5fcc889bNftr+E/WLTYXZ5cvreLj9OABBKYeBYhnkXwZq/6Znzjx30j2xvb3LN/D5/165/Frz75V3ke4nmJF048m3g28WyCg/UBf3Pn3wDw0je9NC/3Yi9HKo//xZ/+BfN+/jtcddVVV1111f8ulOPHj3PVVVddddVV/9u8/du//Ve/wzu8w4MBPuIjPoJf+qVf4j+LJF6Yg4MDfu/3fo+DgwNe8zVfk5d7uZcD4K/+6q8AkMT9JAEgCYCP/MiP5M///M+/+0//9E9/hv8El9qlr36z138zPvb9PhaAj/qaj+KX/+SXEeIy8YKJZxHiWcTzJxDieYhnOVwe8jdP/RsOVge8+ku9Oi/34i+HJP7y7/8SABWhIlSEilARH/mOH8l3fdd3fczh4eEu/wkOOPjoFu3BBHzGB38Gr/3yr832xjZf+atfyQ/8yQ9wP0kAIK4QCHGZuEIgBOIKgRAAiCsEQiCuEAiBuEIgxOF4yN/f8/cgePHrXpyXe+zLcc+5e3jS058EBgw0OHbNMd781d589xd+4Re+hv8kBxx8dJY8TgABCD7z/T6T93+r9wfgJ57xE3zLk78FBAgQSEISkkCAAAECxGWSkIQkJCEJSUhCEs+PEJKQhCQksWxLnrD3BIx57LHH8nKPfTmE+Mu//0tI2J5v85AbH/Lb//AP//A7/Cdos/bg1bB6bQIQIECAQBLv/5bvz8e808cA8KO3/ijf8MRv4HA6BABxhXg2cYV4NnGFeDZxmSSeRSAE4tnEFYLD8ZC/O/d3YHiJMy/By73Yy6EQd9x9x/GXePhL/M7Zs2dv5T/YcM3w1q22B9NAKWjgZjAgkAQCBO//lu/Px7zTxwDwK0/+FT7+Fz+ee/fv5TmI5yWel3g28W/y13f+Nffs38OrP+zVueGaG9g4vvGQJz3uSV/NVVddddVVV/3vQjl+/DhXXXXVVVdd9b/Ji73Yi732R3/0R382wEd8xEfwV3/1V/xnksS/5ODggL/+678G4GVe5mV42Zd9WQD+6q/+CkkASAJAEgCS+MiP/Eh+4Rd+4WtuvfXWv+Y/2MFw8N6PfcnHvvWXfeqXAfBRX/NR/PWT/xoAIRAvmHgOQjyLeP4EQjwH8TwOV4f8zVP/BoCXfvhL87Iv/rIA/OXf/yVRAhWhIihww7U38I6v+478wi/8wtccHh7u8p9gj73PdvHxl32xl+Vj3/Nj2d7Y5pN+/JP4o6f+EYgrBEIgnk0gBOIKgRCXiSsEQiCuEAiBuEIgBOIKcZkkLhP8/T1/z9nDs7zSLa/EIx/8SLY2tvjLv/9LMJBw7JpjvPmrvfnuL/zCL3wN/0kOdPDRWfI4AQS87GNelo95148B4PP/9vP53bO/C+IySUjiMgECxGWSkIQkJAGAAAECBAgQIECAAAECBAgQIECAAAGCJ+w/gbOrs7z8yZfn+muuZ2tzi7/8u7+EBu/ytu/Cb/3Wb30P/wmm2fSQ5bB8awIIQFwhePNXe3M+5p0/BoDP+tvP4rfv/W0AEFcIhLhMXCYE4gqBEJeJyyTxLOLZxBXiCvEskgBAXPZ3Z/+Oe4/u5VVueBWuv+Z6ENx3x323Xrx48Xf4D6aVnrE+s35vGpBAAxI8GQSSQPAZ7/sZvPPrvzMAX/p7X8r3/eX3cZm4Qjwv8Twk8UKJZxPPJp5NXCbEU84+hXv27uFNXvJNeJkXf5njZ8+efcatt97611x11VVXXXXV/x4EV1111VVXXfW/yDXXXPPgD/mQD/ktgC/4gi/gr/7qr/if5Lu+67v4wi/8QgDe//3fn/d///fnBXmTN3kTAH7t137tt/lP8NIv9dIP+qYv+CYAPuprPoq/fvJf8+8mnj/xr/a9v/K9fOkPfSkAH/DOH8D7v/P7gwABAkm8zCNfBoD77rvvVv6TtGgPftnHvizf9BnfBMAn/fgn8bd3/C2IK8TzEgiBeF7iCoEQiCvEFeIKcYW4QlwmCQDEZZL4zaf8Jl/3B1/H9Weu5wPe8QN42Rd7WYwBuP7M9fxXetlHvyzf9MnfBMDn/93n87i9x4FAEpJAgAABAklIQhIIECBAgAABAgSSkIQkJCEJSUhCEpKQhCQkIQkECBAg+L1zv8e3PPVbuP7M9bz5a785L/viL8t/tjKWWylcYZ7lZR/1snzG+34GAJ/9d5/NP1z6BxAgEAJxhUASAAgQCIG4QiAJAMRlQiCuEEgCAHGZJJ5FXCGuECD4jWf8Bl/151/F9Weu52Vf4mV58Zd68dfmP0FZlVspQAECKEDhCoMx7/+W78+bveqbAfDxv/Tx/OqTfxXE8yUE4nmJ5yWeTTyLEM8inj/xLL/8+F/mi3/1iwF4ndd5nfe65pprHsxVV1111VVX/e9BcNVVV1111VX/i3z4h3/4d11//fX81V/9Fb/0S7/E/0S/9Eu/xBd+4RcC8H7v93686Zu+KZJ4bi/zMi/Db/3Wb31PrfVW/hO857u852sD/PKf/DJ//eS/5jmIF0z8xxDPSzyHX/mzX+FLf/hLAXjz13tzXvbFXhbEswn+4R/+4bf5T/aZH/qZAHz/H38/f3vH34J4DkIgrhDPS1whrhBXiCvEZZK4TFwmicvEZZK4TFwmicsEv/nU3+RH/uZHAPjMj/hM/kuJy64/fT3f9CnfBMBP3PYTPG7vcUhCCASIKwSSEAIBAsQVAgSSkIQQkpAEAgQIECBAgAABAgQIECCQhCQkIYQkfu/c7/GTd/wk119zPZ/1UZ/F3Wfv5syZMw/mP0mZyq2qAnOF4WUf/bJ80yd+EwCf/fefzT9c+gckcZkAgRCIKwSSuEyAQAjEFQJJXCZAXCGuECCuEJdJAnGFQAjEswl+/Rm/zg887gd4uRd/Od74Dd74wfwnqEO9tT/sf1tFqAiFIEBFAFx/6nre7FXfDICP/6WP52/u+Rueh7hCPC/xvMSzieclnj/xAv3y436ZX37cL/NiL/Zir/3hH/7h38VVV1111VVX/e9BcNVVV1111VX/S7zYi73Ya585c+bBAF/4hV/I/2S/9Eu/xHd+53cC8H7v935cf/31AEgCQBIv8zIvw1//9V/zn+F1Xud13vvFXuzFXvue8/fwRd/3RfyHEM+f+Hf5lT/7Fb7nV76H66+5njd9nTcFAQICXuaRL8N99913K/9Jppwe/P7v+P5cf+Z6/vaOv+X7//j7eQ7iCvG8xBXiMiH+XcQV4gpxhbhMEj/ytz/Cbz31t7j+muv55i/4ZgAQnD179lb+E5UstwJ85gd9JgCPu/Q4fvL2n0QIBAgQIJCEJBAgQIBAEpKQhCQQIECAAAECBAgQIECAAAECBAgQIECAAAECBJL4vfO/x+P3Hs/111zPZ37sZzJ5ejD/SepQb1UvHugD3uoDAPix23+Mf9j7BxAgkAQAAgSSQFwhkAQAAsQV4goB4gqBJC4TlwmBuEI8m7hCPJu4TBK//oxf596je/GmH/w6r/M6781/gv6g/20CCCBARVDg+tPX89Nf+tNcf/p6vvevv5e/ufdvAJAEAOJ5iSvE8xIvnHg28Wzi2cSziWcTfPcffzcAL/ZiL/baL/ZiL/baXHXVVVddddX/DgRXXXXVVVdd9b/E67zO67zXNddc8+Dv/M7v5O677+Z/uu/6ru/ir/7qr7j++uv5tE/7NB7oTd7kTbjuuut43OMe9938J3jHd3zHzwL4rl/6Lp6HeMHE8xDiX008L/G8xGW/+ue/yt889W94s9d6Mz79Az8dxLPcd999t/KfZPL04A94xw8A4Pv/+PsRAnGFuEyIZxGXCfE8xBXiMkkAIC6TBADiMkkAIC4T4lkEQiCuEFcIfuRvfwSAl33xl+VlX+Jl+a/yso99Wa4/fT0AX/D3XwACBAgQCCEJBAgQIBBCEggQVwgQIJCEEJKQhCQkIQlJSEISkpCEJCQhCUlIQhJCIECA4Nxwjm+99VsBeLmXfDlocM011zyY/yTzmP82Bgzv/9bvz8s++mU5uz7Lj93xY0gCcYVAEpeJyySBuEIgicsEkgBAXCYJxBUCSQAgQCAE4gqBJAAQlwmBuEJcdt/yPn7wcT/ItZvX8jqv8zrvxX+CerH+NgUIoAABKuIz3+8zAfibe/6G7/vr7+P5EleIZxECAHGFeA5CIJ5N/Ie4Z+8evvuPvxuAd3qnd/osrrrqqquuuup/B4Krrrrqqquu+l/idV7ndd4b4Bd/8Rf53+ILv/ALAXiZl3kZXvZlXxYASVx33XUAXLhw4bf5D/ZiL/Zir33NNdc8+J7z9/DLf/zL/IcQz5/4D3HPhXv4nl/5HgCuP3M915+5HoV4mUe8DGfPnn0G/0k+/qM+/r0Afu1xv8bf3vG3IJ6XeF7iCnGZJC4TV4grxBXiCnGFuEJcIa4QzyauEAiBuOy+o/v4+j/6egA+62M/C8R/iQ94uw/g+jPX8y1P+RYQIEAghCQQIEAghCQkgQABAgSSkIQkJIEAAQIECBAgQIAAAQIECBAgQIAAAQJJSEISkji3Psfvnfs9rr/2ehTimmuueTD/WQrP8gFv8wEAfOPTvhHEZZJAXCGQBALEZZJAXCFAXCGQxGXiMiEQzyauECCuEM8mrhAgrhBXCIT4u7N/x9+d/Tte7MVe7LVf7MVe7LX5DxaruFUSKkIhFOJlH/WyvOyjXxaAj/+VjwdxhbhCvGDiBRPPJp6XuEwIxLOJZxPPIolnEfzy434ZgDNnzjyYq6666qqrrvrfgeCqq6666qqr/hd4ndd5nfcG+MVf/EXuuece/re45557+MIv/EIAPu3TPo37vczLvAy/9Vu/9d38J3id13md9wL4rl/6Lp4fIZ4v8e8iBADieYnLhHgW8Rz+5ql/w9889W94mce8DO/7Vu8LgutOXsc//MM//Db/SV7sxV7stQF+7XG/xnMQz0tcJgkAxAskxAMJ8SwCIRBXCIRAXCEQ4jJxhbhCIMQ/3PcP3Hd4H9dfez0v+6iX5T/by77Yy/Kyj31ZAH737O+CQAhJIECAQBKSQIAAAQJJSEISCBAgQIAAcZkkJCEJSUhCEpKQhCQkIQlJSEISCBAgQIAAgSR+6q6fAuD6667nP9Nsmv02hg942w8A4HfO/Q6P23sckkBcJgkECBAIgQBxhQBxmSQQVwgkAYAAcYUAgRCIZ5HEZQIEQiCeRRKXiWe5d3kvv/6MXwfgdV7ndd6L/2B1XZ/RL/vfJoAAAt7vzd4PgC/7gy/j+RECcYW4QjwvcYV4NvG8xH+Ie/bu4a/v+GuuueaaB7/Yi73Ya3PVVVddddVV//MRXHXVVVddddX/Ai/2Yi/2WgB/9Vd/xf82f/VXf8U999zDddddx8u8zMsA8DIv8zL8wz/8w+/wn+Caa655MMBfP+mveR7iX088f+I/luBLf/hLAXjZR78sL/PIlwHgvvvuu5X/BNdcc82DAf72jr/lb+/4WyTx3CRxmXjBxBXiCnGFuEJcIZ6XuEJcIRAC8SySAEBcIbjv8D5+62m/BcCbvOqb8J/tzV/nzQH43bO/C4AkECBAIAlJACBAgEASkgBAgABxmSQkIQlJSAIBAgQIECBAgAABAgQIECAQQhKSkIQkECA4N57j8fuPB+Cxj33sa/GfpFt1v4PhTV/jTQH47XO/DeIySSBAIAkABAiEQIBACASIyySBuEKAuEIgCQAECIRAgLhCPJu4QoC4QjybQIi/O/d3ALzYi73Ya/OfoL+3/x4KEPCmr/imvOwjXhaAX33qr4K4QlwhXjBxhXhe4nmJ5yWeTTybeDbxbOLZBH99x18D8E7v9E6fxVVXXXXVVVf9z0dw1VVXXXXVVf8LXHPNNQ8G+Ku/+iv+q9nm3+Oee+7hO7/zOwF43/d9X97kTd4EgH/4h3/4bf6DvdiLvdhrnTlz5sEA91y4hxeZ+I8hnpd4XuL5uvfivfzNU/+G605dx5u8ypvwn+kd3/EdP+uaa6558L179/IcxBXieYkrxBUCIRBXCIRAXCEQAnGFQAjEs0gCAHGFuEIgxGXiMklcJvjtW38bgOtPXc999913K/+JXvLFXvLBAD95x08iCQQIEEgCAAECBJIQAgECBAgkIQlJIECAAAECBAgkIQlJSEISkpCEJCSBAAECBAgQIEAgCUlI4gkHT+A/W5bkzV/3zbnhzA08bv9xPH7/8SBAgEASAAgkcZkAcYUAgRAIEFcIEJdJAnGFQBKXCRBXCBAIgQBxmSSeRSAEAsQVgnuP7uXvzv4d11xzzYNf/MVf/LX5D9Zd7H5bRaiIl3nYywDw5X/45QjxfIkrxBXiOQjxLOJ5iecl/kP89R1/DcCZM2cezFVXXXXVVVf9z0dw1VVXXXXVVf8L3Hfffbfyv9hf/dVfcb+XeZmX4Zd+6Ze47777buU/2DXXXPPga6655sG//Me/zPMQ/3ri+RP/scSz/M1T/waAN3nlN+G3fuu3vpv/JGfOnHkwwN/e8bcgrhDPS1whEOJfTVwhrhBXiOchicvEFeJZJAGAuOzs4Vn+4b5/4D/bNddc8+BrrrnmwQDnhnMgQCAJIRAgQCAJSSBAgEASkpAEAgQIEEhCEpKQhBCSQIAAAQIECBAgQCAJSUhCEpKQBAIECBAgeMLBEwB48Rd/8dfhP0ld11tf9rEvC8DvnP8dEEgCcYUAcYVAEgAIJHGZAIEQCBAIgQBxmSQQzyaeRRLPIhDiMvFs4grxbOIySfxnqkO9tT/sf5uAN33ZNwXgb+79GxBXiCvEv0xcIZ6XuEyIZxHPSzybeDbxbOLZxLPcs38PAGfPnr2Vq6666qqrrvqfj+Cqq6666qqr/hd4ndd5nfcGuPvuu7HN/zb33HMPf/VXf8XLvMzL8CZv8ibM5/Pv5j/JPefv4V9F/McQz0s8L/FC/c1T/4b/Ctdcc82DAf72jr/leQiEQDwvcYVACMQV4gpxhXgekrhMXCaJy8SzicskAYAAcYW4TBKI/1K/e/Z3AUAgBAIECCQhCcQVAklIAgECBAgkIQlJIECAAAECBAgQIECAAAECBAgQIECAAAECSUhCEpJAcG48B8A111zzYP6T1KHe+gqPeoVbAR5/8HgQl0kCcZkkEFcIJHGZQBIACBBXCBAIgQDxbAIEQiBAXCFAXCFAXCGQxGXiMiEQV4jL/vbc3wLw2Mc+9rX4T9AddL/9Ji/9JgD82tN+jXsP7wUAcYW4QlwmCQDEFeJ5iSvE8xLPSzyLEP8W9+zdA8CLvdiLvTZXXXXVVVdd9T8fwVVXXXXVVVdd9V/ir/7qr7jfr/3ar/0O/wnOnDnz4OtOXcfdF+7mOYh/PfH8if9Y4jncc+Ee7vcP//APv8N/kmuuuebBAPfu34sQiBdMXCGuEFeIK8RlkrhMXCaJy8TzEleIyySBuEJcIS4TAnGFAHHZP5z9B/6zvdiLvdhrA5wbziEJSSBAIAlJIECAQBKSQIAAgSSEkAQCBAgQIJCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQQIEBcIZDE+fE8AGfOnHkQ/4muueaaBwOcHc8iCQQIJIEAgSQQIECAuEIgicsEkgBAgHg2gSQuEyCuECAQAgHiMiEQzyauECCuEP9l6oX6O9efuJ7nJsSLTFwhXjDxvMTzEs8mnk08m0AIAMRVV1111VVX/W9EcNVVV1111VVX/Zf4q7/6K+73D//wD7/N/wTiP4Z4XuJ5iRdICIB7d+/lngv38N9GXCGegxD/KuIKcYW4QlwmBOIK8WwCIRBXCBBXCIQAQPyXeLEXe7HXAjg3nAMBAgSSQIAAgRCSQIAAgRCSQIAAAQJJCCEJSSBAgLhCgAABAgQIECBAgABxhQCBJCQhCUkgQID4T3fNNdc8mAcSSOIygSQAEEjiMoEkEFcIEFcIJHGZQBKIKwSIKwSSeBbxbALEFQIEQiCeRRIACBBcu3kt/5liFbciLvube/+Gy8QV4gpxhbhCXCGehxAAiCvE8xLPSzybuOqqq6666qr/6wiuuuqqq6666n+Bf/iHf/htgJd5mZfhf7t/+Id/+O1a6638VxH/euL5E/9mQjwP8UL9wz/8w2/zn+S+++67lfuJK8TzEleIK8RlkgBAXCYJAMRlQjyLQAjEFeLZBEIgnk1cIRACAIEQCBCXnT06C8B99913K/9J7rvvvlu5n0AISSBAIIQkECBAIAlJIECAQBKSkAQCBAgQIJCEJCQhCUlIQhKSkIQkJCEJSUhCEpJAgAABAgSSkIQk/qucG86BAAECSQAgkMRlAkkAIJAE4jJJIK4QSOJ+kkBcJgnEswkQl0kCcYVAEpcJEFcIEFeI53H27Nln8J+gruutr3jsFX8b4N7De/lXE1eIK8QLJhDiOYgXTjybeDbxbILrdq4D4B/+4R9+m6uuuuqqq676n4/gqquuuuqqq676P+Mf/uEffhvgZR7xMvyXEc9LPC/xLxP/Za655poHA1y3cx3PTRKXiSvE8yeuEFeIK8QV4tnEFQIhEM8mrhAIAYC4QoC4QjyLJP4rnZ6dRhIIEJdJAgECBJKQBAIECCQhCQQIECCQhCQkIQkECBAgQIAAAQIECBAgQIAAAQJJSEISkpAEAgSI/1KSuEyAAAECBJIAQCCJywSSQFwmCcQVAgSIKwSIy4RAgEAIBIjLhEA8m3gWSTyLQIjLxH89cYW4QlwhrhAIgfiXiSvE8xLPSzyb+Fd56ZteGoD77rvvVq666qqrrrrqfz6Cq6666qqrrvpf4O///u9/G+BN3/RNAbDN/0b33HMP/5nuu+++WwGuO3kdl4kXTDx/4vkTL5AQ/2riv9Xf//3f/zbAtTvXAoC4QjwPIS4TV4h/mbhCIMRzEFcIhABAXCFAXCaJ+0kCAAHishc782L8VxECAQJJSAIBAklIAgECSUhCEggQIJCEJCSBAAECBJKQhCQkIQlJSEISkpCEJCQhCUkohCQQIECAAIEkJPHqJ14dgH/4h3/4Hf4rCCQBgEASlwkQIECAAHGFAAHiMkkgLhMCAQIhECBAXCFAIMRlAsQVAgRCIEA8m7hCgLjsJU6/BAD/8A//8Nv8J7nvvvtuBUBcIS6TxAslrhBXiCvE8xJXiOclnoMQz0E8m3g28SwvfdNLA/AP//APv8NVV1111VVX/c9HcNVVV1111VX/C/z2b//29wC8zMu8DP9bXX/99Vx33XXcd999t/Kf5OzZs8+47777br3u1HW89CNemn8vIV4o8bzE8xL/MvEs1528DoD77rvvVv6T/MM//MNvA7zETS/B8yWuEFeIKwRCIK4QCIG4QiDEZeIKcYVACADEFQLEZZK4nyQAECCuECAQAgGC++6779azZ88+g/8k//AP//A79913362P3n40CCSBAAECSSBAgEASAAgQSEISkkCAAIEkJCEJSSBAQAACBAgQIECAAAECBAgQIJCEJCQhCQQIECAuu++++27lP9np/jQIEEgCAQJJACCQxGUCSSAukwQCxBUCBIgrBAiEuEwgiWcRIK4QSOJZxLMJJAGAuEyIazav4dqNawG47777buU/yTXXXPNgXhhxhbhCvFBCIK4QL5h4XuLZxIvspW98aQD+4R/+4be56qqrrrrqqv/5CK666qqrrrrqf4H77rvv1n/4h3/47euvv56XeZmX4b+abf63+K3f+q3vBnjpR7w0L5B4/sTzJ/7txPMSL9BLPeylALjvvvtu5T/RP/zDP/z2fffdd+tL3viSIK4QCPGvJq4QV4jnJa4QzyKJZxFXiGcTlwmBuEwIxGWv/aDX5pprrnnwP/zDP/w2/0nOnj176zXXXPPgM7MzCIEAgSQkgQCBJIRAgEASkkCAAIEkJCEJBAgQIEAgCUlIQhKSkIQkJCEJSUhCEpKQhCQQIECAQBKSkMSrHX817rvvvlv/4R/+4bf5T3Lffffd+g//8A+/DfDYzceCAIEQCBBIAgECSQAgkATiMkkgQCAEAgSSAECAAHGFAAHiMkkgnk2AuEwSiGcTzyZ410e9KwC/9Vu/9d38J7rvvvtuBXjJa14SxBXiCnGFuEJcIa4QV4grxAsmrhDPSzybeF7i2cSzCd74MW/MdTvXAXDffffdylVXXXXVVVf9z0dw1VVXXXXVVf9L/NZv/db3/MM//MNvv9/7vR//G73My7wMAP/wD//wO/wn+od/+IffAXiTV34T/lOJ5yX+bcSzXHviWgD+4R/+4bf5T3Tffffdes011zz42p1reckbX5LnIK4QV4grxBXiCvG8xBXiMkk8i7hCgLhCXCYE4jJJIK4QIK4QIC577Qe/NgD33Xffrffdd9+t/Ce57777bv37v//73z7dn+bR248GgRAIEEhCCAQIJCEJBAgQSEISCBAgQCAJSUhCEggQIECAAAECBAgQIECAAAEBkpCEJCRBAAIEj954NNdcc82D/+Ef/uG3+U9033333QrwmK3HIAkECCSBAIEQCBBI4jKBJBCXCYEAgRAACCRxP0kgLhMCAeLZBAiEQIB4NgECIRAgLnuJUy8BwG/91m99D/+Jfuu3fut7AF7q2pfiRSXEv0hcIZ6DEIgrxAsnXiAhAN74MW8MwNd//de/D1ddddVVV131vwPBVVddddVVV/0v8Q//8A+//WIv9mKv/TIv8zK87Mu+LP/bvPRLvzQA//AP//Db/Cf6h3/4h9/+h3/4h9++7uR1vPErvTHPQzx/4vkT/3bieYnnIcT93ujl3wiAf/iHf/gd/hOdPXv2Gf/wD//w29fuXMvrP+b1QVwhnoMQDyQJAMRlkgBAXCbEs4grxGVCIJ5NXCGeTTybQAgABEJcJnixMy8GwG//9m9/D//J/uEf/uG3Ad7murdBEggQCIEAgSQkgQABAkkIgQABAklIQhIIECBAgEASkpCEJCQhCUlIQhKSkIQkJIEAAQIECCQhibc6/VYA/NZv/dZ333fffbfyn+i3fuu3vgfgsZuPBUASiMskgQCBEAgQIK4QIECAuEKAAHGFAAHiCgECxBUCBJK4TIB4NgHi2cSzvN7Nr8e1G9fyD//wD7/9D//wD7/Nf6KzZ8/e+g//8A+/fe3mtVwmrhAIgbhCXCGuEFeIK8QV4gUTz0tcIZ5NPC/xbOKyl77xpXnpm14agN/6rd/6bq666qqrrrrqfweCq6666qqrrvpf4r777rv167/+698H4NM+7dOwzf8Wb/Imb8L111/Pfffdd+t99913K//Jfuu3fut7AN7nTd+H/xTieYl/mXhe4lle6mEvxUs97KX4h3/4h9/5rd/6re/mP9mP/MiPfA7AS974kly7fS3PQVwhrhAvmLhCXCEuEwJxhXg2gRAACIRAgLhCgLhCgLhCgODMxhle+0GvzX333Xfrb/3Wb303/8l+67d+67vvu+++W0/3p3n01qORhCQQIJAEAgQIJCEJBAgkIQlJIECAQBKSkIQkFAIBAgQIECBAgAABAgQIEEhCEpKQhCQQIHjL028JwG/91m99D//Jzp49eyvAYzYfw2O2HgMCSSAukwQCxBUCSSAuEwIBAkkAIJAE4jIhECAQ4jKBJJ5FgHgWSSAuEwIB4jJJIHjXR74rAL/1W7/1Pfwnu++++24FuHbzWl7y2pcEAPHvI64QV4jnJZ6XeF7iBXrvV3pvAH7kR37ks7nqqquuuuqq/z0Irrrqqquuuup/kX/4h3/47X/4h3/47euuu473fd/35X+LN3mTNwHgR3/0Rz+H/wK/9Vu/9d3/8A//8NvXnbyOT3n3T+FZxPMnnj/xvMSLRvyrvecbvCcA99133638F/iHf/iH3/6Hf/iH375251re7RXfDUlcJq4QV4grxBXiCvEchEBcIZ5NIAQCxBXi2cSzSOJ+krifJBCXfdjLfxgA//AP//Db99133638Jzt79uwz/uEf/uG3T/enefUTrw4CBJKQBAIEkpAEAgSSkAQCBAgkIQlJIECAAIEkJCEJSUhCEpKQhCQkIQlJSEISCAhAgACBJN73uvcF4B/+4R9++x/+4R9+m/9k9913360/8iM/8tkAb3fm7QBAIAnEFQIEkgBAIAkECIRAgEASzyJAgLhCgADxLJJAXCYEAsSzCRDPJi57l0e8C9dsXMM//MM//PZv/dZvfTf/BX7rt37rewDe4yXeg+cgrhBXiCvEFeIKcYW4TIgXSDwv8RyEQDwv8Szv9UrvxUvf+NLcd999t/7oj/7o53DVVVddddVV/3sQXHXVVVddddX/Ivfdd9+tX//1X/8+AG/6pm/Ky7zMy/A/3cu8zMvwMi/zMgD81m/91nfzX+Trv/7r3wfgjV/pjXnpR7w0/6nECyUE4nmJZ3mph70UL/WwlwLgR3/0Rz+b/yJf//Vf/z733XffrW/wmDfgJW98SR5IiBdIIATiCvFs4grxbOJZJHGZeDYB4goB4goB4lle7MyL8WJnXgyAH/3RH/0c/ov86I/+6Ofcd999t776iVfn0VuPRhIIEEhCEggQSEISCBAgkIQkECBAIAlJSEISCBAgQIAAAQIECBAgQIAAgSQkIQlJSOJRG4/iVXdeFYAf+ZEf+Rz+i/zWb/3Wd9933323PmbzMTx287EgQCAJBJJAgEASlwkkgQBxhQABAgRCIEAgiftJAgHiCgECxLMJEM8iCcRlL37qxXnXR74rAD/yIz/yOfwX+Yd/+IffBnipa16Kl7z2JblMvFBCvFDiCnGFeF7ieYnnJZ7DS9/40rz3K7439913361f//Vf/z5cddVVV1111f8ulOPHj3PVVVddddVV/5scHh7u3nfffbe+3uu93lu/zMu8DE95ylO45557+M8miX+Lr/u6r2Nra4sf/dEf/Zx/+Id/+G3+ixweHu4CvPiLv/hrv8wjXobf/7vf52B5gBDPQTx/AiGeg3i+JPEcxHMQAvG8xGVCfMWHfAVbiy1+5Ed+5LP/9E//9Gf4L3J4eLh7dHR06RVf8RXf+iVvfEn+6Ol/xOFwCAIhEFcIhEBcIRACAeIySVwmkAQA4jJJIC6TBOIySSAukwTiMkkgLpMEgjObZ/iy1/syAH7kR37ks//0T//0Z/gvcnh4uHt0dHTpFV/xFd/60ZuP5q8O/oqjPEISCBBIQhIIEEhCEpJAgEASklAIBAgQIJCEJCQhCUlIQhKSkIQkJCEJSUhCEogrBKe6U3zmTZ8JwI/8yI989m//9m9/D/9Fjo6OLh0dHV16xVd8xbd+zOZj+JULvwLiOUjifkIAIJ5FiPtJ4n5CXCYQ4n5CIC4TAgCBEPcTAvFsgmsW1/A1r/Y1APzIj/zIZ//2b//29/Bf5PDwcPfs2bPPeMVXfMW3fqlrX4qfeuJPcT9JXCauEFeIK8QV4grxgokrxPMSz0s8j5e+6aX5qrf5KgB+4Rd+4Wt+67d+67u56qqrrrrqqv9dKMePH+eqq6666qqr/re59dZb/wbglV/5lV/7ZV7mZfi93/s9Dg4O+M8kiX+tr/3ar+URj3gE//AP//DbX//1X/8+/Bf7h3/4h985e/bsM173tV73rV/jJV+D3//b3+dwechzEM+fQIjnIJ6XQIjnIJ6DJJ6HeJav/OCv5OE3PJx/+Id/+O2v//qvfx/+i916661//eIv/uKv/ZCbHvLgV3noq/DHT/9jDodDhEBcIZDEZeIySVwmQCAE4jJJIC6TxGUCBEIgQCAEAgRCIEAgCQAEkgD4xFf5RK7ZvIZ/+Id/+O2v//qvfx/+ix0dHe0+5CEPeekHX/fgB7/s9svy6xd/HQQIJIEAAQJJIECAQBKSQIAAgSQkIQmFQIAAAQIECBAgQIAAAQIECBBIQhKn62ne55r34VQ9xT/8wz/89td//de/D//Fjo6Odh/ykIe89IOve/CDH7P5GH5v9/dAIMT9JPHchEBcJsSziOdPPC/xnMRzEpddu7iWb3+tbwfgH/7hH37767/+69+H/2KHh4cXH/KQh7z0Q258yIOv3bqWP7zjD0FcIa4QLxpxhbhCPAchnkU8L/G8BNdtX8e3vdO3AfBbv/Vb3/1d3/VdH8NVV1111VVX/e9DOX78OFddddVVV131v9HZs2efcXh4uPugBz3otd/0Td+Uw8NDnvzkJ/OfRRL/Gu/zPu/Dm77pmwLw9V//9e9z9uzZW/lvcHh4ePEhD3nISz/0QQ998Gu85Gvw+3/7+xwsD7hMPH/iMiGeRTx/AiGeRTwPSTwH8Sxf+cFfyUs97KW47777bv3SL/3Stzk8PNzlv8E//MM//M6DH/zgl37ozQ998Ks89FX446f/MYfjIZeJyyRxmQCBEIjLJAGAAIEQCBAIgQCBEIjLJIEAgRAIEAiBAIEkAD77NT+bFzvzYtx33323fvzHf/zL8N/g8PBw97d+67e+58Vf/MVf+0HXPejBr3bs1fiN3d9AEggQSEISCBBIQhIIEEhCEpJAgACBJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCROdad479PvzSPnj+S+++679eM//uNfhv8Gh4eHu//wD//wO6/4iq/41g8+/uDjp/vT/MX+X4BAiOcgEOJ+QiCegxCXCYS4nxCXCYS4nxCIy4QAQCAEwDWLa/i21/w2AP7hH/7htz/zMz/zdfhvcHR0dOkf/uEffufN3/zNP/phJx4GwN/e97c8X+IKcYW4QvzLxBXieYnnJS576Rtemm97p28D4B/+4R9++0u+5Evehquuuuqqq67634ly/Phxrrrqqquuuup/o8PDw91/+Id/+J3lcvmM13u913vrRzziEWxtbfFXf/VX/GeRxIvifd7nfXjf931fAD7zMz/zdf7hH/7ht/lvcnR0dOkf/uEffmdzc/P4Szz2JV761V/y1dlabPHXT/lrEM+fuEyIZxHPS1wmxLOI5yQQ4jmIy77yg7+Sl3rYSwHw8R//8S9z33333cp/k8PDw91/+Id/+O1XfMVXfOtrT157/FUe8ir88a1/zOF4CIAkABCXSQIAAQIhEJdJAnGFQBKXCSQBgEASlwkkAYBAEojLrtm8hk98lU/kxc68GPfdd9+tX//1X/8+Z8+evZX/Rv/wD//wO6/4iq/41md2zhx/1Z1X5a+O/oqVV0gCAQJJSIIABJKQBAIEkpCEJCSBAAECBAgkIQmFkIQkJCEEAgQIEJzqTvFx134cN/c3c9999936IR/yIQ/hv9Hh4eHun/3Zn/3MK77iK771Y0899viZ/gx/sf8XIBACQIjLBEI8N0ncT4hnEc+feF7iObz4yRfnq1/5qwH4h3/4h9/+zM/8zNfhv9Hh4eHu2bNnn/GKr/iKb/1S174UAH97399ymbhCXCGeP3GZJC4TV4gXTDwv8Szv9QrvxSe/3icD8A//8A+//Zmf+Zmvw1VXXXXVVVf970U5fvw4V1111VVXXfW/2a233vrXAA996EMf/Oqv/urHX+ZlXoa/+qu/4uDggP9okviXfO3Xfi1v+qZvCsBnfuZnvs4//MM//Db/zQ4PD3dvvfXWvzk8PNx95Vd45dd+6Ue8NAB//ZS/5nmIZxHiMvH8icuEuEw8L4EQzyK47sR1fO57fy4v9bCXAuAzP/MzX+fWW2/9a/6bHR0dXfqzP/uzn3nIQx7y0g+56SEPfuWHvDJbsy3+7q6/QxIACBAIgbhCIAkABEIgQCAEAgRCIEBcJgkEQiBAIAkABC9+zYvzZa//ZVyzeQ333XffrV//9V//Pv/wD//w2/w3Ozw83P3TP/3Tn37FV3zFtz6zc+b4y26+LLePt3N+Oo8kJIEAgSQkgQCBJCSBAAEChZCEJCQhCUkgIAABAgQIEAghCUm8+bE350POfAgbscE//MM//PbHf/zHvwz/AxweHu7+2Z/92c+8+Zu/+Uc/aP4gXvP4a/IXB3/BUR5xPyEAEM8ixHMQz0GIywRC3E+Iy8TzErzzQ96Zj3qxjwLgt37rt777S77kS96G/wFuvfXWvz579uwzXvEVX/GtX+ralwLgb+/9W54fIRBXiBeduEI8L/Es121fx+e9yefxxo9+YwB+5Ed+5LO//uu//n246qqrrrrqqv/dKMePH+eqq6666qqr/rf7h3/4h9+59dZb/+bFXuzFXntzc/P4m77pm7K9vc1f/dVf8R9JEi/Iddddx3d913fxiEc8AoDP/MzPfJ1/+Id/+G3+hzg8PNz9h3/4h98BuOaaax78ai/9asff+JXemK3FFn/9lL/mWcSzCHGZeF7iWYS4TDwncZkQ93vPN3xPPve9P5frTl7Hfffdd+uXfMmXvM0//MM//Db/QxweHu7+wz/8w+8cHh7uvtLLvtJrv8QNL8HrP+r1+eNn/DGH4yGXCSQBgEAIBIjLJHGZQBIACCRxmUASAAgkgbhMEmc2z/Dmj3hzPuzlP4yzR2e59Um3/vbHf/zHv8zZs2dv5X+Io6OjS3/2Z3/2M5ubm8cf+7DHvvSrbr8qknjS+kkgkIQkEEhCEpJAgEASkpAEAgQIEEhCEgohCUlIQhKSkIQkTpfTfNDpD+JVNl8FgN/6rd/67i/5ki95G/4HOTw83P2t3/qt737FV3zFt75m55rjL7f9cmyUDZ5w9ATuJwSAEIjLhAAQ4n6SeL7E8xACcdlLHH8JPv9lP59XOvNKAPzIj/zIZ3/Xd33Xx/A/yK233vrXZ8+efcYrvuIrvvVLXftSvOHD3pCnXnwq9x7eCwDiCnGFuEJcIa4QV4grxAsmnsN7v/x783lv/Hlct30d//AP//Dbn/VZn/U6f/qnf/ozXHXVVVddddX/fuhBD3oQV1111VVXXfV/xTXXXPPg137t136vd3qnd/psgHvuuYdf/MVf5Du/8zv5jyCJ53bdddfxJm/yJrzv+74v99xzDxFx69d//de/zz/8wz/8Nv9DnTlz5kEf8REf8d0v9mIv9toA91y4h+/+pe/ml//sl3kgIRDPn7hMCADE8xKXCfFSD3spPumdP4lrT1wLwD/8wz/89md+5me+Dv+Dvc7rvM57v+M7vuNnXXPNNQ++d/9e/u7uv+M3nvwb/P3dfw/iCoEkLhNIAgBxmSQQl0kCAQIhECAQAsE1W9fwOg9+Hd7xse/I/X7kR37ks3/0R3/0c/gf6pprrnnwa7/2a7/XO73TO302wPnpPH948If8/KWfRwjEs0jiWcRlQiCel3iBTpVTvPLGK/Nm228GwH333Xfr13/917/PP/zDP/w2/0Ndc801D36xF3ux1/7wD//w7wI4N57jJ87+BL9z8XfAYBsMGGwDYBsMGGyDwTYAGGyDAYNtMBiDAcOLHXsxPuJRH8E182sAuO+++279+q//+vf5h3/4h9/mf6gzZ8486HM/93N/+5prrnkwwK8+7Vf53r/5Xu49vBfMZba5zFxhrjAYg7nCXGEuMwZzhbnsuq3reKNHvhHv9fLvxf3+4R/+4bc/8zM/83W46qqrrrrqqv870IMe9CCuuuqqq6666v+aa6655sEf/uEf/l0v9mIv9toAd999N3/1V3/FL/3SL/FXf/VX/FtJ4n7XXXcd7/u+78ubvMmbcL8f+ZEf+ewf/dEf/Rz+F7jmmmse/GIv9mKv/Y7v+I6fdc011zwY4J4L9/DLf/rL/PVT/pq/fspfIwTieYlnEQIA8ZwE1524jjd6hTfijV7+jbju5HUA/MM//MNv/8iP/Mjn/MM//MNv87/AmTNnHvQ6r/M67/1O7/ROn80z/f09f8+vP+nX+Y2n/AYAkkBcJgnEZZJAXCYJxGWSQFwmiWu2ruG1H/zavNOLvRMA9913361nz5699eu//uvf57777ruV/wWuueaaB3/4h3/4d73Yi73YawOcn87zpPWT+KPDP+LJ6ydzmbhMEs9BXCbEs4jn8aZbb8qpeopXXrwy9/uRH/mRz/7RH/3Rz+F/idd5ndd573d8x3f8rGuuuebBAGfHs/zuxd/lJ+77CWyDwTYYMBiDwTYYMNgGgzEYMNgGwzX9Nbz2Na/N61z7OlwzvwaAf/iHf/jtv//7v//tH/3RH/0c/he45pprHvzar/3a7/VO7/ROnw1w7+G9/M09f8Pf3Ps3/OpTfxVjMFeYK8xltgHAXGGuMJfZBuC67et4o0e8Ee/1cu/F/e67775bv/7rv/59/uEf/uG3ueqqq6666qr/W9CDHvQgrrrqqquuuur/qhd7sRd7rXd6p3f67Bd7sRd7bZ7pnnvu4S//8i/5q7/6K+655x7+6q/+ihfFddddx5u+6ZsC8L7v+7480I/8yI989o/+6I9+Dv8LXXPNNQ9+7dd+7fd6ndd5nfe+5pprHswz3XPhHv7mqX/DXz/lr/nrp/w191y4h2cRzyIE4rLrTl7HtSeu5aUf9tK89CNempd66Etxv/vuu+/W3/qt3/ruH/3RH/0c/he65pprHnzmzJkHf/iHf/h3XXPNNQ8GuO/gPv7unr/j7+/+e+49vJe/v/fvEQIBAiEQIBACAYJrN6/lxa59Ma7ZvIZ3evF34n733XffrQBf//Vf/z7/8A//8Nv8L3TNNdc8+MM//MO/68Ve7MVem2c6P53nSesn8eThyZxv53ny8GQAhEA8L8GpcgqAV168Mo/oH8Ej+kfwQD/yIz/y2b/927/9Pffdd9+t/C9zzTXXPPixj33sa73TO73TZ19zzTUPBjg7ngXgdy78Do8/eDz/cPAPYLAN5jLbYLANBgyn+9Nc01/Di+28GK99zWtzzewa7nfffffd+lu/9Vvf/aM/+qOfw/9C11xzzYNf+7Vf+73e6Z3e6bN5pnsP7uWv7/1r/uaev+Heg3v5m3v+BgDMZbYBwFxhLrtu6zre8BFvCMB7vex78UD33XffrT/6oz/62b/1W7/1PVx11VVXXXXV/03oQQ96EFddddVVV131f90111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bZ7LPffcw9133w3A3XffDcANN9yAba677jquv/56nttv/dZvffd9991364/+6I9+Dv9HvNiLvdhrv87rvM57vdiLvdhrX3PNNQ/mAe65cA8A9168l7sv3M39rjtxHZJ4qYe9FM/PP/zDP/z2b/3Wb33Pb/3Wb303/wdcc801D36xF3ux13qd13md936xF3ux1+a53HdwH/cd3AeC+w7vA8M1W9cAcM3WNVyzeQ3P7b777rv1t37rt777t3/7t7/nvvvuu5X/A6655poHv/Zrv/Z7vc7rvM57X3PNNQ8+385zqpwC4EK7gDEX2gXOt/MACHGynATgEf0jeH7uu+++W3/rt37ru3/0R3/0c/g/4Jprrnnwi73Yi732i73Yi73W67zO67w3z+XscBaAs8NZzq7PYsyZ/gxCGPNi2y/Gc7vvvvtu/a3f+q3vPnv27DN+67d+67v5P+DMmTMPep3XeZ33fvEXf/HXfrEXe7HX5gHuObgHgHsP7kWIuw/uBuC6revA8FLXvxTPzz/8wz/89t///d//9m//9m9/z3333XcrV1111VVXXfV/G3rQgx7EVVddddVVV/1/cubMmQe9+Iu/+Ou82Iu92Gtdc801D36xF3ux1+ZFcN999936D//wD79933333frbv/3b33Pffffdyv9R11xzzYPPnDnz4Bd7sRd7rRd/8Rd/7Rd7sRd7bYD77rvv1muuuebBvAD/8A//8Ntnzpx58G/91m999z/8wz/89j/8wz/8Dv+HXXPNNQ9+sRd7sdd+sRd7sde65pprHvxiL/Zir82/4L777rsV4OzZs7f+/d///W//wz/8w+/8wz/8w2/zf9g111zz4Bd7sRd77Rd7sRd7rWuuuebBL/ZiL/baPJf77rvv1muuuebBPMB9991362/91m99N8CP/uiPfg7/h11zzTUPfrEXe7HXOnPmzINf/MVf/LVf7MVe7LXvu+++W6+55poH8wLcd999twKcPXv21r//+7//7X/4h3/4nX/4h3/4bf4Pu+aaax78Yi/2Yq/9Yi/2Yq91zTXXPPjFXuzFXpsXwX333XfrP/zDP/z2fffdd+tv/dZvfffZs2efwVVXXXXVVVf9/4Ee9KAHcdVVV1111VX/3505c+ZB11xzzUMArrnmmgffd999twIGdPbs2Vvvu+++W/l/7pprrnkwwJkzZx50zTXXPIRnuu+++24F/A//8A+/w1Vcc801Dz5z5syDAa655poHAbrvvvtuPXv27K0A99133638P3fmzJkHSdKZM2cefM011zyYK3zfffc9A+Af/uEffpuruOaaax5s29dcc81DrrnmmgcD3HfffbcCBvQP//APv83/c9dcc82DAc6cOfPga6655kGAAO67775bAe67776nnz179hlcddVVV1111f9v6EEPehBXXXXVVVddddVVV1111VVXXXXVVVddddX/SVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8V/wgzBlCsIdCR1wAAAABJRU5ErkJggg==) +![Rendered example of appearance::hexString 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAL5YUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqv8k111zz4DNnzjz4xV7sxV4L4JprrnkwwDXXXPPg++6771aA++6779azZ88+47777rv1H/7hH36bq14k11xzzYNf7MVe7LXPnDnzIIBrrrnmwddcc82DAe67775bAe67775b/+Ef/uF3AP7hH/7ht7nqX3TNNdc8GODFXuzFXhvgxV7sxV4L4JprrnnwfffddyvAfffdd+vZs2efcd999936D//wD7/NVS+Sa6655sFnzpx58Iu92Iu9FsA111zz4GuuuebBAPfdd9+t9913363XXHPNg//hH/7hd+67775b/+Ef/uG3uepFcs011zz4xV7sxV77zJkzDwK45pprHgxwzTXXPPi3fuu3vufFXuzFXusf/uEffgfgvvvuu/Uf/uEffpur/kXXXHPNg8+cOfPgF3uxF3stgGuuuebBANdcc82D77vvvlt5pn/4h3/4nX/4h3/47fvuu+9Wrrrqqquuuuq/B3rQgx7EVVddddVVV/1Xueaaax782q/92u/14i/+4q995syZBwO0Vh58990XuPvu8zy3668/xcu+7CO433333XfrP/zDP/z2P/zDP/zOb/3Wb303V112zTXXPPi1X/u13+uaa6558Ou8zuu8N8DdZ88DcPfZC9x97jyXmcuuP3MKMC/72EcCcN999936D//wD79933333foP//APv/MP//APv81Vl11zzTUPfu3Xfu33evEXf/HXfrEXe7HXBrj73HnuPn+eu89d4NkMwPWnTgFw08njt15zzTUPvu+++279h3/4h9/+h3/4h9/5rd/6re/mqsuuueaaB7/2a7/2ewG80zu902fzTHefP8/d589z9/nzYJ7D9adOcv2p01x/+hT33XffrQC/9Vu/9d3/8A//8Dv/8A//8Ntcddk111zz4Bd7sRd77dd5ndd5rxd7sRd7bYC7z58H4O7z57n7/Dkwz2Zz/enTvOyjHgXAfffdd+s//MM//PY//MM//M5v/dZvfTdXXXbNNdc8+MyZMw9+sRd7sdd6p3d6p8/mme4+fx6Au8+d4+5z57jffffdd+tLPeYxDwZ42Uc/GoD77rvv1n/4h3/47d/6rd/6nn/4h3/4ba666qqrrrrqvwZ60IMexFVXXXXVVVf9Z7rmmmse/Nqv/drv9Tqv8zrv3Vp58N13X+Av//JJ/NVfPYW//Msn80A2z9f115/k+utP8rIv+whe9mUfycu+7CO47777bv2Hf/iH3/6t3/qt7/mHf/iH3+b/oWuuuebBr/3ar/1e7/RO7/TZd589zy/8zh9z97kL/MLv/gnPywBgnskAXH/mFC/7mEfwso99BG/2Wq8CwH333Xfr13/917/PP/zDP/w2/w9dc801D37t137t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I+7dXQIgnu3aExsAvOSDT/FSDz7Fc7vvvvtu/dEf/dHP+a3f+q3v5v+xa6655sEv9mIv9tqv8zqv814v9mIv9tr3Hqy4dmsOwL0HK+49WHHvwZq/u2eX5+earTkAL3ndcV7yumM80H333Xfrb/3Wb333b//2b3/Pfffddyv/j11zzTUPfrEXe7HX/vAP//Dv4gHuPVoB8LfnLnHv4Yr7jlY8t2s2ZgC85OnjvOSZ4zy3++6779bf+q3f+u4f/dEf/Rz+H7vmmmsefObMmQe/0zu902e92Iu92GvzAPceHnHP0ZJ7D4/4m7PnAfPcrt1YcN3mBtdubPBS15zmge67775bf+u3fuu7f/u3f/t77rvvvlv5f+yaa6558Gu/9mu/1+u8zuu89zXXXPNgnumegwMA/uaee7hnf597Dg54FhuAa7e2AHjp66/npa+/nud233333fqjP/qjn/Nbv/Vb381VV1111VVX/fugBz3oQVx11VVXXXXVf5RrrrnmwS/2Yi/22q/zOq/zXi/2Yi/22vwb3Hfffbf+1m/91nf/wz/8w+/8wz/8w29z1XO45pprHvxiL/Zir/1iL/Zir3XNNdc8+MVe7MVem3+Ff/iHf/jtM2fOPPjs2bO3/v3f//1v/+iP/ujncNXzuOaaax78Yi/2Yq/9Oq/zOu915syZB19zzTUP5l/pH/7hH3777//+73/7H/7hH37nH/7hH36bq57DNddc8+AzZ848+Jprrnnw67zO67zXi73Yi702/wr33XffrQBnz5699bd+67e+5x/+4R9++7777ruVq57H67zO67z3i73Yi73W67zO67w3/wb33XffrT/6oz/6Of/wD//w2/fdd9+tXPUcrrnmmgefOXPmwS/2Yi/2Wi/+4i/+2i/2Yi/22rwI7rvvvluvueaaB9933323Apw9e/bWv//7v//t3/7t3/6e++6771auuuqqq6666j8GetCDHsRVV1111VVX/We55pprHnzmzJkHX3PNNQ9+sRd7sdfime67775br7nmmgcD/MM//MPvnDlz5kH/8A//8Dv/8A//8Ntc9a9yzTXXPPjMmTMPvuaaax585syZB11zzTUPvu+++2695pprHswz3XfffbeePXv2GQD33Xffrf/wD//w21z1r3LNNdc8+MVe7MVeG+DFXuzFXovn47777rsV4B/+4R9+5x/+4R9+m6v+Va655poHnzlz5sHXXHPNg8+cOfOga6655sE8l3/4h3/4nTNnzjzo7Nmzz7jvvvtu/Yd/+Iff5qp/lWuuuebBL/ZiL/baAGfOnHnQNddc82Cey3333Xfr2bNnn3Hffffd+g//8A+/zVX/Ktdcc82Dz5w58+BrrrnmwQAv9mIv9lo8l/vuu+9WgLNnzz7jH/7hH377vvvuu5Wrrrrqqquu+s+BHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrvof6pprrnnwmTNnHvxiL/Zir3XNNdc8+Jprrnnw3//93//267zO67w3z3T27Nlb77vvvlsB/uEf/uF3/uEf/uG377vvvlu56jlcc801Dz5z5syDX+zFXuy1AF78xV/8tQHOnDnz4H/4h3/47WuuuebBPNN999136z/8wz/8zn333XfrP/zDP/w2Vz2Ha6655sEAr/3ar/1eANdcc82Dr7nmmgefOXPmwQBnz569lWe67777bv2Hf/iH3/mHf/iH377vvvtu5arncc011zz4xV7sxV77zJkzD3rxF3/x1wY4c+bMg3mms2fP3gpw33333foP//APv3Pffffd+g//8A+/zVXP45prrnnwa7/2a78XwIu/+Iu/9n333Xfri73Yi702D/AP//APvw3wD//wD79z33333foP//APv81Vz+Oaa6558Gu/9mu/F8CLv/iLvzbPdObMmQfzTGfPnr317//+73/77Nmzz7jvvvtu/Yd/+Iff5qqrrrrqqqv+Z0IPetCDuOqqq6666qr/Ka655poHv/Zrv/Z7vfiLv/hrv9iLvdhr33ff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m+uObfH83Hfffbf+1m/91nf/6I/+6Ofw/9Q111zz4Bd7sRd77dd5ndd5rxd7sRd7bZ7LPfsHYLh3f58HunZ7i+t2tnl+7rvvvlt/67d+67t/9Ed/9HP4f+qaa6558Gu/9mu/1zXXXPPg13md13nve/b3uW57m/vds78PwD17ezzQdTs7XLe9zfPzD//wD7/993//97/9oz/6o5/D/1PXXHPNg1/7tV/7vd7pnd7ps3k+7tm7xD17ezy3l77pZh7onr1LXLdzjPvuu+/W3/qt3/rus2fPPuO3fuu3vpurrrrqqquu+q+BHvSgB3HVVVddddVV/9WuueaaBwO82Iu92Gu/2Iu92Gtdc801D36xF3ux1+ZfcN999936D//wD79933333foP//APv/MP//APv81Vz3LNNdc8+MyZMw9+sRd7sdd68Rd/8dc+c+bMg6+55poH8wD33Xffrddcc82Deab77rvvVoB/+Id/+O377rvv1t/+7d/+nvvuu+9WrnqWa6655sEv9mIv9tov9mIv9lrXXHPNg1/sxV7stfkX3HfffbcC/NZv/dZ3A/zoj/7o53DVc7jmmmse/GIv9mKv/WIv9mKvdc011zz4xV7sxV6b5+O+++679ZprrnkwwH333XcrwG/91m9999mzZ5/xW7/1W9/NVc/hmmuuefCLvdiLvfaLvdiLvdY111zz4Bd7sRd7bZ6P++6779ZrrrnmwQD/8A//8NsAf//3f//b//AP//A7//AP//DbXPUcrrnmmge/2Iu92GudOXPmwa/zOq/z3tdcc82D+Rfcd999t549e/bW3/qt3/qe++677+n/8A//8DtcddVVV1111X899KAHPYirrrrqqquu+p/immuueTDAmTNnHswDnD179tb77rvvVq76V7vmmmseDHDmzJkH81z+4R/+4be56t/kmmuueTDAmTNnHswznT179tYzZ848+B/+4R9+m6v+Ta655poHA5w5c+bBPMDZs2dvve+++27lqn+Ta6655sEAZ86ceTAPcPbs2Vvvu+++W7nqX+2aa655MIBtX3PNNQ/hAe67776nnz179hlcddVVV1111f8M6EEPehBXXXXVVVddddVVV1111VVXXXXVVVddddX/SVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVf/LXXPNNQ9+sRd7sdc+c+bMgwCuueaaB/NM9913361nz559xn333Xfr2bNnb73vvvtu5apnueaaax4M8GIv9mKvfebMmQcBXHPNNQ/mme67775bz549+4z77rvv1rNnz95633333cpVz3LNNdc8GODFXuzFXptnerEXe7HX4pnuu+++W8+ePfuM++6779Z/+Id/+G2ueg7XXHPNg8+cOfPga6655sFnzpx5EM90zTXXPBjgvvvuu/Xs2bPPuO+++279h3/4h9/mqudwzTXXPPjMmTMPfrEXe7HX4gGuueaaBwPcd999t549e/YZ9913363/8A//8Ntc9RyuueaaB585c+bB11xzzYPPnDnzIIBrrrnmwTzTP/zDP/wOwH333XfrP/zDP/w2V1111VVXXfW/F3rQgx7EVVddddVVV/1vcs011zz4tV/7td/rxV/8xV/7zJkzD77mmmsezIvovvvuu/Xs2bO3/tZv/db33Hfffbf+wz/8w2/z/8w111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bf4V7rvvvlv/4R/+4bf/4R/+4Xf+4R/+4bfvu+++W/l/5sVe7MVe+8Ve7MVe63Ve53Xe+5prrnkwL4L77rvvVp7pt37rt7777Nmzz/it3/qt7+b/mWuuuebBr/3ar/1eAO/0Tu/02fwr3Xfffbf+wz/8w2//wz/8w+/81m/91nfz/8w111zz4Nd+7dd+r2uuuebBL/ZiL/ba11xzzYP5V/iHf/iH377vvvue8Vu/9Vvf/Q//8A+/zf8z11xzzYNf+7Vf+71e/MVf/HVe7MVe7LXuu+++W6+55poH8yK47777bgX47d/+7e/5+7//+9/+h3/4h9/mqquuuuqqq/73QA960IO46qqrrrrqqv/prrnmmge/9mu/9nu9zuu8zntfc801Dwa4++7z/MIv/BF3332Bu+8+z913X+Duu89zv+uvPwXA9def5PrrT/GyL/tIrr/+JC/7so/kfvfdd9+tv/Vbv/XdP/qjP/o5/B92zTXXPPi1X/u13+ud3umdPptnuvvseX7hd/6Iu89d4O5z57n77AXuPnueK8z1Z06B4fozp7j+zCle9jGP4Pozp3jZxz6S+9133323/uiP/ujn/NZv/dZ383/YNddc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Xuy1eaZ7Ll3ib26/nb++/Xbu2dvj3kuXuGdvj+fnup0dAN7oxV8cgDd6sRfjumPHuN99991362/91m9992//9m9/z3333Xcr/0ddc801D37t137t93qd13md977mmmseDHDP3iUA/ub22/jrO27jnkuX+Os7buPZDICB67aPAXDdsWO89E238NI3P4iXvvkWHui+++679Ud/9Ec/57d+67e+m/+jzpw586BrrrnmIe/0Tu/0WS/2Yi/22jzTPZd2+avbbuWvb3sGd1/a5Z5LF7nn0i7Pw3DdseNcd+w4L3PLgwF4n9d4bR7ovvvuu/W3fuu3vvtHf/RHP4errrrqqquu+u+HHvSgB3HVVVddddVV/1Ncc801Dz5z5syDX+d1Xue9Xud1Xue9eQHuuWeX+1133XFekPvuu+/WH/3RH/2c++6779Z/+Id/+G3+H7nmmmse/Nqv/drv9eIv/uKv/WIv9mKvfd999916zTXXPJjncs/5S9zvulPHeEHuu+++W3/rt37ru3/0R3/0c/h/5JprrnnwmTNnHvw6r/M67/U6r/M6780LcM/uJe533fFjvCD33Xffrb/1W7/13b/927/9Pffdd9+t/D9yzTXXPPi1X/u13+vFX/zFX/vFXuzFXpvn455Ll7jfdceO8YLcd999t549e/bWv//7v//tH/3RH/0c/h85c+bMg178xV/8dV7ndV7nvV7sxV7stXkB7tm7xP2u2znG83PffffdCvBbv/Vb3/3bv/3b33Pffffdyv8j11xzzYPf8R3f8bNe53Ve5715Ae65tMv9rjt2nBfkvvvuu/W3fuu3vvsf/uEffucf/uEffpurrrrqqquu+p8DPehBD+Kqq6666qqr/qe65pprHvxiL/Zir/1iL/ZirwXwYi/2Yq8NcM011zyY53LffffdCvAP//APv33ffffd+g//8A+/8w//8A+/zTNdc801D+a53Hfffbfy/8A111zz4Bd7sRd77Rd7sRd7LYBrrrnmwS/2Yi/22gD33Xffrddcc82Deab77rvvVoCzZ8/e+vd///e/ffbs2Wf8wz/8w2/zTPfdd9+t/D91zTXXPBjgxV7sxV77xV7sxV7rmmuuefCLvdiLvTYvxD/8wz/89t///d//NsCP/uiPfg5XXXbNNdc8+MVe7MVe+8yZMw968Rd/8dd+sRd7sdfmBbjvvvtuBfiHf/iH377vvvtu/Yd/+Iff+Yd/+Iff5v+xa6655sEAZ86cefA111zz4Bd7sRd7LYBrrrnmwS/2Yi/22rwA9913361nz5699e///u9/+x/+4R9+5x/+4R9+m/8nrrnmmgfzAPfdd9+tPMA111zz4Bd7sRd77Rd7sRd7rWuuuebBL/ZiL/bavAD33XffrWfPnr317//+738b4B/+4R9+5x/+4R9+m6uuuuqqq676nwk96EEP4qqrrrrqqqv+t7nmmmsezDPdd999t/Jcrrnmmge/9mu/9nu9+Iu/+GsDvNiLvdhr80z33Xffrddcc82Deab77rvv1rNnz95633333foP//APv3Pffffd+g//8A+/zf8D11xzzYN5pjNnzjz4xV7sxV7rxV/8xV/7zJkzD77mmmseDHDffffdes011zz4vvvuu/Waa655MMB9991369mzZ2+97777bv2Hf/iH3/mt3/qt7+b/mWuuuebBZ86cefCLvdiLvdY111zz4Nd5ndd5b57Lfffdd+s111zzYID77rvv1rNnz97693//97/9D//wD7/zD//wD7/N/zPXXHPNg8+cOfPgF3uxF3utF3/xF3/tF3uxF3vt++6779ZrrrnmwQD33Xffrddcc82D77vvvluvueaaB589e/YZ991339Pvu+++W3/rt37re/7hH/7ht/l/5pprrnnwi73Yi732mTNnHvTiL/7ir/1iL/Zir80z3Xfffbdec801D+YB7rvvvlvPnj1762/91m99D+B/+Id/+B2A++6771b+n7jmmmse/Nqv/drvBfDiL/7ir/NiL/Zir8Vzue+++2695pprHnzffffdCvAP//APv/MP//APv33ffffd+g//8A+/zQNcc801D+aZ7rvvvlu56qqrrrrqqv990IMe9CCuuuqqq6666v+Ca6655sGv/dqv/V7v9E7v9Nk8wN13n+Puu89z993neKDrrz8NwMu+7KO46667uOGGG7jffffdd+tv/dZvffc//MM//M4//MM//Db/R11zzTUPfu3Xfu33ep3XeZ33vuaaax7MM9199hx3nz3P3WfP8dyuP3Oa68+c4vozp3mg++6779bf+q3f+u7f/u3f/p777rvvVv6Pesd3fMfPevEXf/HXfrEXe7HX5gHuPneOu8+f5+5z53hu158+zfWnTnH96dPc77777rsV4Ld+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hCfwl098Is9DApt/LUlcc801D/6Hf/gH/tMYMJeJfw1xmXgmIeD6U6d401d6VV72kY/k+pOnAbj+1ClemLvPn+Pu8+e4+/x5fuEPfp+/fOITQAbznAQYECABAgEShLj77FmuueaaB//DP/wD/xmuueaaB9997iwYwGCDBAbEczEg/i2uP3mKN3ulV+X6U6d52Yc/iutPneKFufv8Oe73l098An/5xMfzC3/wezwHCWSQQEAEiuCo8N7H4HP4T3DNNdc8GODui+dBQiFswFwhnpMB8VwMiGcR/zKJ60+e5GUf8SiuP3mal3vko3mZRzySf8nd58+B4S+f+Hj+4gmP4+5zZ/nLxz8OJJBAggiIwl5tn7UJ381VV1111VVX/fejctVVV1111VX/Axwe8t6txYNBXCGuv/4ML/uyj+b93/8tuf760zy3e+65yN13X+D5eZmXeRjXX38KgPd//7fgfnfffZ5f+IU/4Bd+4Q+5++7z/GvYAAYMABgwUgAAAgAECBBv9mavBsCLvdiLvdY//MM//Db/CSbFg4VAAOIyAYjrz5zmzV7r1XjZxzyKl33so3hu95y/CMA95y9yv3t3LwFw3ckTAFx/5hRvduZVebPXfFUA7j57jr983BP59p/4We4+e45nsXk284KZZzMYFAABEtefOc199913K/9Jzpw58+C7z53jXyQBgMSbveqrcv2pU7z/W74lz+2e3V0A7tnd5bldd/w41x0/zss+6lEAvOyjHgVv+Zbcfe4cf/nEJ/ILv//7/OUTnsC/h/nPdd99991617338K8mnsP1p07xZq/0arz/m70FAPfs7XLdznHud8/eLvde2uX5eambH8z1p05z/anTALzZq7wad58/x18+8Qn85RMezy/8we8hhAEwACDAIACBAIm777uPR7/iQx7Ef5L77rvv1rvPnQOb52FAXGFA/KvccPIUb/pKr8r7v+lb8vzcs7fLPZcu8vy89M0P4X4v9+Ivzpu96qvzGe/zAdx97hzf9rM/yS/8/u+CDRLIIIEEIaYSD16tVq89n89/m/8Ed184DxIK4RQ4eU7iMhsk/mXigcSzXXfyFG/2yq/Km73Sq3H9qVM8t3suXQTg7ksXeW7XHzvB9adOA/Bmp1+DN3u11wDg7nPn+Pnf+x1+4Xd/m7vP3gc2RNC68uDD5dF7by42vpurrrrqqquu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J/E8XuZlHsmnfur7cN11pwD49m//dr7927+d+11//fW87Mu+LC/7si/Lm73ZmwFw33333foP//APv/2jP/qjn3Pffffdyn+T13md13nvD//wD/8ugHvOn+eX/+RP+KU//mPuOX8eAPFcJF4oCfFCSFx38iTv9SZvwhu/0isBcPfZu/nLf/hLXvbFXpbrz1wPwH333Xfrj/7oj37Ob/3Wb303/4Ncc801D/7wD//w73qxF3ux1wa499JFvvwXf5S/vf1pIAAhAPFM4jJxmRCIZxOAEIB4JgGAuEyId33l1+HdXul1ud99991364d8yIc8hP/hrrnmmgd/zud8zm9dc801Dwa47+gSv3nr3/EjT/h9AMRzE5eJf5drNo7x4S/3prz46VsAuO+++279rM/6rNe57777buV/kBd7sRd77Q//8A//rmuuuebBAHefv5tf+KNf4M1e5c24/tT1APz6rX/NDz7ut7nv8CKYKwzGAGCusAEwgAEM5tlszDMZwGAuu2brBG/w0Jfh3V/69bnfj/zIj3z2j/7oj34O/02uueaaB7/2a7/2e73TO73TZ/NMv/BHv8BfPvkv+YU/+gXud/3J63mzV3kz3v/N3x+Ae/cv8MuP+xO+509/GQDMs9gA5lnMs9k8kM1zsnmg936VN+WNX+yVuO7YKQD+4R/+4be//uu//n3uu+++W7nqqquuuuqq/z3Qgx70IK666qqrrrrqf6PXeZ3Xee93fMd3/KxrrrnmwQD33HOeX/zFP+Cv/upJ/NVfPZF/PXE/icuuu+4Ub/Imr8qbvumrct11pwD4y7/8Sz7v8z6Pu+++mxfk+uuv583e7M14//d/fwDuu+++W3/0R3/0c37rt37ru/lvcs011zz4tV/7td/rnd7pnT4b4J7z5/nrJz+ZX/7jP+avn/xknkXiXyQhnr/rTp3ivd7kTXjjV3olAO4+eze/8Nu/wLf/+LeD4foz1/Oyj31Z3v8d35/rz1wPwG/91m9994/+6I9+zn333Xcr/0Ncc801D37t137t93qd13md977mmmseDHDvpYt83x/+Or/+938B4pkEAOIyAUg8iwCEAMQzicsE1+4c5/Uf87K82yu/Lve7+9zdXH/6egDuu+++W7/+67/+ff7hH/7ht/kf6MVe7MVe+8M//MO/65prrnkwwF8+8S952Ue9LAD3HV3it57x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qquuuuqqq/6verEXe7HXeqd3eqfPfrEXe7HX5pnuuece/vIv/5K/+qu/4p577uGv/uqveFFcd911vOmbvikA7/u+78sD/ciP/Mhn/+iP/ujn8L/QNddc8+DXfu3Xfq/XeZ3Xee9rrrnmwTzTPRfu4W+e+jf89VP+mr9+yl9zz4V7eBbxLEIgLrvu5HVce+JaXvphL81LP+KleamHvhT3u++++279rd/6re/+0R/90c/hf6FrrrnmwWfOnHnwh3/4h3/XNddc82CA+w7u4+/u+Tv+/u6/597De/n7e/8eIRAgEAIBAiEQILh281pe7NoX45rNa3inF38n7nfffffdCvD1X//17/MP//APv83/Qtdcc82DP/zDP/y7XuzFXuy1eabz03metH4STx6ezPl2nicPTwZACMTzEpwqpwB45cUr84j+ETyifwQP9CM/8iOf/du//dvfc999993K/zLXXHPNgx/72Me+1ju90zt99jXXXPNggLPjWQB+58Lv8PiDx/MPB/8ABttgLrMNBttgwHC6P801/TW82M6L8drXvDbXzK7hfvfdd9+tv/Vbv/XdP/qjP/o5/C90zTXXPPi1X/u13+ud3umdPptnuvfgXv763r/mb+75G+49uJe/uedvAMBcZhsAzBXmsuu2ruMNH/GGALzXy74XD3Tffffd+qM/+qOf/Vu/9Vvfw1VXXXXVVVf934Qe9KAHcdVVV1111VX/111zzTUPfu3Xfu33evEXf/HXfrEXe7HX5rncc8893H333QDcfffdANxwww3Y5rrrruP666/nuf3Wb/3Wd9933323/uiP/ujn8H/Ei73Yi73267zO67zXi73Yi732Nddc82Ae4J4L9wBw78V7ufvC3dzvuhPXIYmXethL8fz8wz/8w2//1m/91vf81m/91nfzf8A111zz4Bd7sRd7rdd5ndd57xd7sRd7bZ7LfQf3cd/BfSC47/A+MFyzdQ0A12xdwzWb1/Dc7rvvvlt/67d+67t/+7d/+3vuu+++W/k/4Jprrnnwa7/2a7/X67zO67z3Nddc8+Dz7TynyikALrQLGHOhXeB8Ow+AECfLSQAe0T+C5+e+++679bd+67e++0d/9Ec/h/8Drrnmmge/2Iu92Gu/2Iu92Gu9zuu8znvzXM4OZwE4O5zl7PosxpzpzyCEMS+2/WI8t/vuu+/W3/qt3/rus2fPPuO3fuu3vpv/A86cOfOg13md13nvF3/xF3/tF3uxF3ttHuCeg3sAuPfgXoS4++BuAK7bug4ML3X9S/H8/MM//MNv//3f//1v//Zv//b33Hfffbdy1VVXXXXVVf+3oQc96EFcddVVV1111f8nZ86cedCLv/iLv86LvdiLvdY111zz4Bd7sRd7bV4E9913363/8A//8Nv33Xffrb/927/9Pffdd9+t/B91zTXXPPjMmTMPfrEXe7HXevEXf/HXfrEXe7HXBrjvvvtuveaaax7MC/AP//APv33mzJkH/9Zv/dZ3/8M//MNv/8M//MPv8H/YNddc8+AXe7EXe+0Xe7EXe61rrrnmwS/2Yi/22vwL7rvvvlsBzp49e+vf//3f//Y//MM//M4//MM//Db/h11zzTUPfrEXe7HXfrEXe7HXuuaaax78Yi/2Yq/Nc7nvvvtuveaaax7MA9x33323/tZv/dZ3A/zoj/7o5/B/2DXXXPPgF3uxF3utM2fOPPjFX/zFX/vFXuzFXvu+++679ZprrnkwL8B99913K8DZs2dv/fu///vf/od/+Iff+Yd/+Iff5v+wa6655sEv9mIv9tov9mIv9lrXXHPNg1/sxV7stXkR3Hfffbf+wz/8w2/fd999t/7Wb/3Wd589e/YZXHXVVVddddX/H+hBD3oQV1111VVXXfX/3ZkzZx50zTXXPATgmmuuefB99913K2BAZ8+evfW+++67lf/nrrnmmgcDnDlz5kHXXHPNQ3im++6771bA//AP//A7XMU111zz4DNnzjwY4JprrnkQoPvuu+/Ws2fP3gpw33333cr/c2fOnHmQJJ05c+bB11xzzYO5wvfdd98zAP7hH/7ht7mKa6655sG2fc011zzkmmuueTDAfffddytgQP/wD//w2/w/d8011zwY4MyZMw++5pprHgQI4L777rsV4L777nv62bNnn8FVV1111VVX/f+GHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1fxjz7fS+tEE1onAAAAAElFTkSuQmCC) ```kcl sideLen = 30 @@ -125,6 +125,6 @@ map( ``` -![Rendered example of appearance::hexString 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAL63UlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVf9r3LNNdc8GODMmTMPBrjmmmsefObMmQfxTNdcc82DeaZrrrnmwbwI7rvvvlt5gPvuu+/Ws2fPPgPgvvvuuxXg7Nmzt95333238n/YNddc8+AzZ848GOCaa6558JkzZx7EM11zzTUP5pmuueaaB/MiuO+++27lAe67775bz549+wyA++6771aAs2fP3nrffffdyv9h11xzzYMBzpw58+BrrrnmwWfOnHkQz3TNNdc8mGe65pprHsyL4L777ruVB7jvvvtuPXv27DMA7rvvvlsBzp49e+t99913K/+HXXPNNQ8GOHPmzIOvueaaB585c+ZBPNM111zzYJ7pmmuueTAvgvvuu+/W++6779ZrrrnmwQD33XffrWfPnn0GwH333XcrwNmzZ2+97777buWqq6666qqrrvrfBD3oQQ/iqquuuuqqq676n+Oaa655MMCLvdiLvfaZM2cedM011zz4mmuuefCZM2cefM011zyYF+Lc3ed4oHN3n+NFdfr609x33323XnPNNQ8+ff1pXpB/+Id/+G2A++6779Z/+Id/+J377rvv1n/4h3/4bf4XuOaaax585syZB7/Yi73YawG8+Iu/+GsDvNiLvdhr80KcO3uO+5297yz/GmeuOcP9Tp85zQty33333Xr27Nlb77vvvlsBfuu3fut7AP7hH/7ht/lf4Jprrnnwi73Yi732mTNnHnTNNdc8+Jprrnnwi73Yi702L8S5s+e439lzZ/nXOHP6DPc7feY0z+2+++679ZprrnnwfffddyvA2bNnb73vvvtu/Yd/+Iffue+++249e/bsrffdd9+t/C9wzTXXPPi1X/u13wvgxV/8xV/7zJkzD77mmmsezAtw7tw57nf27Fn+Nc6cOcPZs2c5c+YMp0+f5gW57777bgU4e/bsrffdd9+t9913361nz559xn333XfrP/zDP/w2V1111VVXXXXV/yToQQ96EFddddVVV1111X+Pa6655sFnzpx58Iu92Iu91ou/+Iu/9ou92Iu99n333XfrNddc82Ce6dzd5zh39znO3X2Os3edBeDc3ec4d/c5AM7dfY5zd5/jP9rp609zv9PXn+b09acBeMzLPYbT15/m0S/7aO73D//wD7995syZB//oj/7o5/zDP/zDb99333238j/ANddc8+AXe7EXe+3XeZ3Xea8Xe7EXe20e4NzZcwA84R+ewNn7zgJw7uw5zp09B8C5+85x7uw5/qOdPnOa+52+5jSnz5wG4DEv9hhOnzkNwKNf7NHc77777rv17Nmzt/7Wb/3W99x33323/sM//MNv8z/ANddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe20e4NzZc5w9d5YnPP4JAJw7e46z584CcO7sOc6dO8d/tNOnT3O/02dOc+b0GQAe/ZhHA3D6zGke85jH8ED33XffrWfPnr317//+73/7H/7hH37nH/7hH36b/wGuueaaB7/Yi73Ya7/O67zOe505c+bB11xzzYMBzp07x9mzZzl37hxnz57l3LlznDt3DoCzZ89y7tw5/qOdPn2a+505c4bTp08DcPr0ac6cOcPp06c5c+YMp0+f5oHuu+++W3/rt37ruwH+4R/+4Xf+4R/+4be56qqrrrrqqqv+u6AHPehBXHXVVVddddVV/3WuueaaB7/Yi73Ya7/O67zOe73Yi73Ya9933323XnPNNQ8+d/c5nvCXT+DsXWd5wl8+gXN3n+Pc3ef4n+z09ac5ff1pHv2yj+YxL/cYHv2yj+a+++679bd+67e++0d/9Ec/h/8G11xzzYNf7MVe7LU//MM//Lt4pnNnz/F7v/17ADzhH57AEx73BP5F5r/N6TOnAXj0iz2ax7zYYzh95jSPfrFHA3Dffffd+vVf//Xv8w//8A+/zX+DF3uxF3vtD//wD/+ua6655sEA586d4/d+9/c4d+4cZ8+d5QmPfwL/Ycx/uNOnT3P6zGnOnD7Dox/zaE6fOc1jHvMYAO67775b/+Ef/uG3f+u3fut7/uEf/uG3+W/wOq/zOu/9ju/4jp91zTXXPPjcuXP83u/9Ho9//ON5whOegG3+Jzt9+jRnzpzh9OnTPOYxj+H06dM85jGPAeC+++679ezZs7f+/d///W//6I/+6Odw1VVXXXXVVVf9V0IPetCDuOqqq6666qqr/vNdc801D37t137t93qnd3qnzwY4d/c5fv/nf58n/OUTeMJfPoH/bYx5bqevP82rv9mr8zYf8DZ8yId8yEPuu+++W/kv9I7v+I6f9U7v9E6fDfBTP/ZTnDt7jt//7d/n/4LTZ07z6Bd7NG/zDm/D6TOn+ZEf+ZHP/tEf/dHP4b/Qh3/4h3/XNddc8+Brr732tX/vd3+Pn/6pn+a/gjH/aQynT5/mMY95DI9+zKN5jdd8DQC+/uu//n1+67d+67v5L/Q6r/M67/2O7/iOn/UHf/AHD/693/s9zp07x38m2/xnO336NGfOnOHRj340j3nMY3jMYx7Dfffdd+tv/dZvffdv//Zvf8999913K1ddddVVV1111X829KAHPYirrrrqqquuuuo/3zu+4zt+1ju90zt99k9/20/z+7/w+5y7+xz/F52+/jRf/tNfDsDbvd3bif8ir/M6r/Pe7/iO7/hZT3rckx787d/47fxnMua/y+kzp/mAD/0AHv1ij+ZDPuRDHnLffffdyn+Rz/3cz/2ta6+99rU/7mM+jv9rjAE4ffo0r/Ear8HbvO3b8CEf8iEPue+++27lv8g3fdM3PT0iHvyFX/iFnDt3jv9NbPOiOH36NK/xGq/B277t2/L1X//17/MP//APv33ffffdylVXXXXVVVdd9Z+J4Kqrrrrqqquu+k/3Yi/2Yq/9Tu/0Tp/97Z/77fz0t/805+4+x/81p68/zVu//1vz5T/95QDcd999t/Jf6MyZMw+65pprHnzu7Dn+swkhhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCHEmTNneI3Xfg0e/WKPBuDMmTMP5r/INddc8+D77rvvVoC3ftu35v8aIYQ4f+48586dA+DDP/zDv4v/Qp/1WZ/1OqdPn+ZTP/VTeZu3eRse/ehH87+FJCQhCUlIQhKSkIQkJHH+/Hl++qd/mt/7vd/jnd/5nb/rzJkzD+aqq6666qqrrvrPRuWqq6666qqrrvpPd/bs2Vv/4R/+4bff+gPe+rVPX3+a3/+F3+fc3ef43+z09ad59Ms+mtPXn+bV3/zVOX39ac7dfY4n/OUTePTLPpr/av/wD//wOwBv/Q5vzau/9qvz+7/9+/z+b/8+586e43+z02dO8+qv/eoAvPU7vDUA5+47x+lrTvNf6b777rv1t37rt77ndV7ndd77bd7mbXiN13gNnvD4J/CEJzyBJzz+CZw7dw4AY/7Dmf90p0+f5tVf49V5jdd8DU6fPs3Z+85y33333cp/obvuuouf+Imf4O3e7u14m7d5G97mbd6Gc+fO8YQnPIHHP/7xPOEJT+DcuXMA2OZ/o9OnT/Mar/EavMZrvAb33HMPZ8+evZWrrrrqqquuuuo/G3rQgx7EVVddddVVV131n+8d3u4dvuud3/Wd35tnOnf3OZ7wl0/giX/xRM7dfY4n/OUT+J/o9PWnOX39aR71so8C4NEv92ge/bKP5n7n7j7H6etPc/7u8/zhL/whv/cLv8crv+kr87Yf8La83du9nfgv9Lqv9bq/9U7v8k6vffrMae537uw5nvC4J/CEf3gC586e49zZc5w7e47/VObf5PSZ0zz6xR7N6TOnefRjH82jX+zRPLdzZ8/xrV//rbz/h74/X/8NX/86//AP//Db/Bdprb32gx/04N/64A/5YE6fPs3p06e537lz53jC458AwBOe8ATOnT3HE57wBP6zGPNvdfr0aU6fPs2jH/NoAF7jNV6D06dPA3Du3Dkw/P0//D22v/vrv/7r34f/Ipn54MVi8fQbbriB13zN1+TVXu3VOHXqFA907tw5zp07x7lz53j84x/PuXPnOHfuHOfOnePfyjb/WU6fPs1jHvMYTp8+zWu8xmtw+vRpAM6ePcuZM2d4u7d7O3HVVVddddVVV/1nQw960IO46qqrrrrqqqv+8+U6X/vB9cG/9XYf8Ha8+pu9Os/PubvPce7uc5y7+xzn7j7H+bvPA3Du7nMAnLv7HOfuPse/x+nrT3O/09ef5vT1pwE4df0pAE5ff5rT15/m9PWnOX39aR7o3N3nOH39aQAu3H2BC3df4Ml/+WSe/JdP5gl/+QQajYmJV3rTV+IDP/MDebu3ezvxXyhafNfNN9z83i/2Ei/GY17sMbzqa74qz8+5s+cAOHf2HOfOnuPcfec4f/Y8AOfOngPg3NlzAJw7e45/q9NnTmMMwOkzpzl95jQAp8+cBuD0Nac5feY0j37so3lBLpy7wPlz53nS45/Ez/7EzzJOI+M08hXf8BV8/Td8/ev8wz/8w2/zX6S19tpbG1u/VWvl2uuv5bGPeSyPetSjeOVXeWVekHPnznHu7DnOnTsHwLlz5zh37hwA586eA+DcuXMAnDt3jn+r06dPc7/Tp09z+sxpAE6fPg3Aox/9aAAe/ZhH8/ycP3+e8+fO8/jHP56f+PGf4JVf5ZV5zGMf891f//Vf/z78FxmG4bW3t7d/azabUWvlmmuuoZTCK7/yK/PIRz6Shz/84bwg586dA+DcuXOcO3cOgLNnz3Lu3DkAzp07B8C5c+cAOHfuHP9Wp0+f5n6nT5/m9OnTAJw+fRqARz/60Zw5c4bTp09zv3PnznH69GnOnTvH7//+7/Obv/mbvPzLv/ytP/MzP/MQrrrqqquuuuqq/2xUrrrqqquuuuqq/xLp5L677+PbP/fb+blv+znO3HCGa66/hke+7CM5df0pHvGyj+D09ac5ff1p/jXO3X2OF+b09af597j1r27l+HXHedpfPY2Ld1/kqX/5VJ7yV0+huZEkSZJO/qc4d/Ycv/87v88f/94f8ws/9QuUKDzysY/kkY9+JCdPn+Thj3o4p8+c5uL5izz6sY/mX+Pc2XO8MKfPnObf4+L5izztSU/j/LnzXDh3gfPnzvOkxz+Jlo3MBECI/wnOnzvPH/3hH/Gnf/Kn/MD3/wCnT5/mkY98JA9/xMM5eeokQjz0YQ/l9OnTnD59mn+tc+fO8cKcPn2af6uLFy5izK/80q9w/MRxnvTEJ/HEJz6R1hrTNGGMbe67775b+S9USkES9zt//jylFH7pl36JX/3VXyUiOHXqFI94xCOQxMMe9jBOnDjBiRMnOH36NACnT5/mX+vcuXO8MKdPn+ZFdfHiRU6cOMH9Lly4wPnz53nSk57EE57wBB7/+MczjiPDMBARt3LVVVddddVVV/1XoHLVVVddddVVV/2XiBq38kzn7j7HhXsu8BSewp/8wp9QKJy+4TRBcOr6U5y6/hQnrz/JyetPIsSJ608gxPHrj3PsumM80OnrT/Ovsb53jTHGHN5zSJLs3bPHpbsv0Wjs3r3LxbsvcuHuC1y45wLNjeZGkjQ3kgRAiBfk3N3nALjmmmsefN99993KfxHb2AbAmPPnzlOi8Ce//yf82R/+GUWFiODU6VNEBA9/5MNRiJMnT3Li9AmC4Pip4wixc3KHnRM7PNDpM6f51zi6dIQxttm7uIdtLl28xMXzF7HNhfMXuHjuIk978tNo2UgnLRvpJDNJJ/9bXLhwgT/70z/jL/78L4gIIoIShZOnTnLq5ClOnjxJRHDixAmOnzxOKDh2/BihYHtnG0lsbG0AsF6uOX36NP8a+3v72Abg0u4lbHPx4kUuXryIbZ761KfiNE95ylPITDKTzKRlIzP5n2CapgfzfEjifhcvXuTP//zPiQj++q//moiglMKpU6eICE6ePMnJkycppXD8+HGOHz9ORLC9vU0phY2NDSQxm8243+nTp/nXuHTpEgC22d3dxTYXL17kwoUL2OYpT3kK58+f59y5c2QmmUlm0lrDNgC2KaXcylVXXXXVVVdd9V+BylVXXXXVVVdd9V/CGABjnpsxF+6+QBDs3r3L0/V0gqCoEARFhUKhqlJVqap06ujVc+r6U8w0YxYz5jFnHnNmmjGLGV10tPsaAJMnhhxY5YplLlnmklWuWHnFkAODBwYPTJ4YPdLc+JcI8T+KuJUXwcXzF4kI/vKP/5KIoKhQolCiUKPSlY6udHSlY1ZnzLoZi37BydMnmfdz5v2cWTejdpWiAkDLxuHuIathxXK9ZLleshyWrMYV62nNMA0M08CUE2MbadmYcqJl419F/LeZpunB/CvtXtxl/9I+tz/jdkop1FKptdLVjr729F3PvJ8zn81ZzBcs5gsW8wU7x3fouo5SCgCtNaZpYj2sWa1WXLxwkeVqyXK9ZD2sGcaBYRwYp5GpTUxtorVGy0ZrjZaNdPKC2MaYywyY/3K1Vh5IEi+q3d1dSikcHh5y991303Udfd/T9z2z2Yz5fM5isWCxWLBYLJjP5/R9T62VruvITMZxZL1es16vWa1WrFYrVqsVFy5cYL1eMwwD4zgyjiOtNaZporVGa43MJDNprZGZZCYPZJvnZpurrrrqqquuuuq/BJWrrrrqqquuuuq/RKnlVmMAjHluxvxb7N+zzxgjU0ykEhdDgEJYpqhgzAMJIQSAEPcTAkCIBxICQIjnJgSAEEIIcb8zZ848+L777ruV/yrmCvMsxvxHsM3R3hHuDTOgB3emlQZAaw1jXhRCvCBC/E8licvEfwpjAIxZr9a4mVIKkmitMQwDq/WK5WqJMcbcz5h/kXnhDMYAnLnmDPedve8Z/BeShCQkIYkXRhLPTRIAknhR2WYcR1prjOPIer1muVyyXC5ZLpesVitsY5sHss1zs80LYxsA2wCUUm7lqquuuuqqq676r0Bw1VVXXXXVVVf9l1lowQtjzAMZ80DGGHM/YwCMsY0xtjHGGGOMeUGEeGGEEAJxhXiRnLv7HP8djHkgYx7ImGcxGPP8GGMMgDHPYp7FGGMwYJ7FNi+IEP8Wknh+rrnmmgfzf4wxAJhnsY1tjMGAAfOczPMwxpgXxJjnxxjb/Fez/SCeiyReGEk8P5IAkIQkJPGC2MY2trENgG1sY5v72cY2/xEkcdVVV1111VVX/ZehctVVV1111VVX/Zc5jMNb+9Y/GMAYAGPud/L6kwRBKDh13Skkcer6UwRBEISCE9efIAhCQaFQVKiqVCrjfSOzmNGpo1NHO9soKgCs7l0x3DPw/AghxH8UIf47pJMXyIAAA+LZDAiOnzxORHDy1ElKFE6eOkmNSimFLjqOnTpGLZWudNRSqaVSSkES09FEZtJaY5xG9i/usxgXrMc1F89fZH1+zWXiOQghxP8WJQr/0ba2t+j7nnk/5/jJ48z6GTvHduhqRymFiKDOKrZprTFNE9M0MU4je5f2GMeRcRpprTHlxMULF5ly4uKFi7TWOH/hPP8q5jLb/FeLCF4UknhukgCQxAsiCUncr9ZKrZVaK5lJRDCOI+M4sl6v6bqOaZqYponWGq01MpOLFy+SmWQmmUlmcv78eWyTmZw/f57z589zP9vczza2OXnyJGfPnn0GV1111VVXXXXVfwUqV1111VVXXXXVf7prrrnmwQDX3XAdL/mSL0kQnL7hNGeuP8Op609x6vpT/FdZ37vGmKN7jzi454Dmxl1/cxe7d+9y21/dhhAAksA8DyGemxDPzzXXXPPgf/iHf+C/iqRnGPMshlOnTxERPPLRj+TUmVMIcerMKU6eOsmJUyc4ceoE/1X2L+5jzG1PuQ1jLp6/yMXzF7lw/gJPfeJTeaHEfz/xAgnx3E6cOIFCPOxhD+PEyROEghMnTnDsxDFuvuVm/qvsXtzFmIsXLnLxwkWMecqTn0I6OXfuHE964pN4DoZrrrmGc+fP8V9JEpJ4YSTx3CTx3La3t+n7nptvvpljx45x7Ngxtra22NjYYD6f81/lwoUL2Ob8+fOcO3cO2/zDP/wDj3zkI7n33nsfxFVXXXXVVVdd9V+BylVXXXXVVVdd9R/mmmuuefCZM2ce/GIv9mKvBfDiL/7ir/1iL/Zir81zOXf3OQDO332OJ/zl4zl39znud/7u85y7+xz3O3/3Oe537u5z/EtOX3+aBzp1/WkATl9/GoBT15/i9PWnOX39aTgNj3rZR/OQN3oI97vjr+/g0t2XeMZfP4On/+XTuXD3BQCEuJ8QL4gQ5+8+z3+Ha669hpd5yZfh2muv5TEv9hge9dhH8dzOnT0HwPmz53jc3/8D586eA+D82fOcO3uO+50/e477nTt7jn/J6TOneaBTZ04DcPrMaQBOnTnF6TOnATh95jSnzpzmJV7hJXigi+cvcvH8RS6cv8Cf/sGf8uQnPJn/LU6ePMmp06d4xCMewcMe8TAe9rCH8dzOnTvHuXPnuO22Z/CXf/kX3O/cuXOcO3cOgPPnznG/c+fO8S85ffo0D3Tq9GkATp8+zf1Onz7N6dOnOXX6NJvbm5w+fZqXf4WX54HOnz/PuXPnOHf2HH//D3/PmWvOcN/v3Hcr/4UkPZgXQhIvyPHjx3nwgx/MiRMneLVXezX29vbY2dnhfufOneO+++7j3LlznDt3FoDz589x7tw57nfu3DkAzp07x7/k9OnTPLfTp09jw+nTpwE4ffo0p0+fAeD06dOcPHmSRz/60bzaq70az/TZ7/RO7/TZ9913361nz5699b777rv1H/7hH37nvvvuu/Uf/uEffpurrrrqqquuuuo/CpWrrrrqqquuuurf7Jprrnnwa7/2a78XwIu/+Iu/9ou92Iu9Ns907u5znL/7HD/z7T8NwBP/8okAPPEvn8B/pnN3n+OBzt19DoAn8oKdvv40p64/zenrT/Ool30Up68/zZt+ypsCsHv3Ln/9S3/Nb37Hb/JAQjyLAPM8zpw58yD+E11zzTUPfrEXe7HXfrEXe7HXep3XeZ33Bjh731kkAfAzP/7TADzx8U/k/NlznDt7jn8T8S86d+4cD3Tu3DkAnvh4XqjTZ05z6sxpTp85zaMe8yhOnznNy7/Ky/Pyr/LyPOWJTwHDk57wJH7+p36eBzp731n+u506dYpXfbVX5ZGPeiSPeMQjuN+5c+f4mZ/+aQCe8IQncP7cOc6dO8d/hnPnzvFA586dA+CJvHCnT58G4NTp05w+fZpHP/rRnDp9mld79Vfj1V791QC49tprv+sf/uEffvsf/uEffue3fuu3vpv/IpJ4bpJ4bidOnODlXu7leJmXeRmOHz8OwLlz5/j93/99zp07yxOf+ASe8IQn8J/h3LlzPLdz584B8MQn8kKdPn0agNOnT3P69Gke9ajHPPj06dMPfomXeAle53Ve5715pvvuu+/Wf/iHf/jtf/iHf/id3/qt3/purrrqqquuuuqqfyv0oAc9iKuuuuqqq6666kV3zTXXPPi1X/u13+vFX/zFX/vFXuzFXhvg3N3nOH/3OZ74l0/kiX/5BJ74l0/kf7tT15/mUS/7KF7tzV6NR73so9m9e5ff+M7f4M9/4c9JknSSJI1GkqSTRmNiYvTIl/30l/Gbv/ubn/2jP/qjn8N/sGuuuebBr/3ar/1e7/RO7/TZ9913362hePAf/M7vA/CzP/Ez/G93+sxpTp05zaMe8yge/dhH86jHPprz587zh7/7h/z0j/00wzjwyZ/1yfzW7/zW+/zWb/3Wd/NfpLX23lsbW99Vu8prvdZr8T7v+z4AnDt3jj/4/d/niU98Ik98whN4UZkXkc1/pdOnT/OoRz+aRz/60Zw6fZpHP/rR3Hfffbf+wz/8w2//1m/91vf8wz/8w2/zn0DSdy0Wi/fu+55aK6UUIoKIoJRCRBARRAQPf/jD+YAP+AAAzp07x+///u/zMz/z07xw5n+606dPc/r0aU6fPs2jHvUYXv3VX5373Xfffbf+1m/91nf/9m//9vfcd999t3LVVVddddVVV72o0IMe9CCuuuqqq6666qoXzTu+4zt+1uu8zuu89zXXXPPgc3ef4w9/4Q/4g1/4A87ffY7/y05df5pP+MZPZP+efX7923+dp/zVU0gnSdJoJEk6aTQmJkaPfNlPfxm/+bu/+dk/+qM/+jn8B7nmmmse/OEf/uHf9WIv9mKvfe7sOf7wd/6AP/jdP+D82XP8RzP/GuY/0+kzp3nV13w13urt35o/+J0/4Ju/7pv55M/6ZH7rd37rfX7rt37ru/kvki3f+8EPevB3vdZrvxZv/TZvzc/89E/zh3/wB5w7d47/acyLyOZfcvr0aV7t1V+dV3v1V+f06dP8wz/8w29//dd//fvcd999t/IfqJTyW/P5/LW7rqPWSimFiKCUQkQQEUQEp06d4h3f8R3Z2dnhO77j23niE5/AfwSbF4H5r3b69Gle7dVenUc/+jE8+tGP5r777rv1H/7hH37767/+69+Hq6666qqrrrrqRUHlqquuuuqqq676F11zzTUP/pzP+Zzfuuaaax78s9/+M/zBL/wB5+8+x/8X5+8+x89++8/wlu//Vly85yIPJMQDCSEEwDXXXPNg/gO99mu/9nu92Iu92Gv/7I//DD/7Ez/DfybxryH+M50/e56f/Ymf5fy587zvB78f6eS/y2Me8xhe/TVene/8ju/gD37/9/mfSryIJP4l58+f52d/5mf4gz/4A17t1V6Nt3rrt37tz/mcz/mtD/mQD3kI/w0e+tCH8tCHPpSf+Zmf5olPfAL/USReBOIFsXkRmX+Nc+fO8TM/89P8zM/8NKdPn+bVXu3VH/zqr/4a7/25n/u5D/6RH/mRz/mHf/iH3+aqq6666qqrrnphCK666qqrrrrqqn/RO77jO37WNddc8+Av+9Av4We//Wc4f/c5/j95y/d/K973M96P09ef5sR1JwBAvFDn7j7Hf7TXeZ3Xee8nPu4J/OxP/gwIECBAgAABAgQIECBAgAABAgQIECBAgAAB4n8kAadPn+a/2+kzpzl9+jSnTp/m/5vz587xsz/zMzzxCU/gmmuuefCLvdiLvTb/gSQ9WBL/kosXLwLwaq/26rzVW701/1NIIIEEEkgggQQSSCCBJCQhCUlIQhIgQIAAAQIECBAgzp07x8/8zE/zHd/xbbzYi73Ya7/TO73TZ3HVVVddddVVV/1LqFx11VVXXXXVVf+iF3uxF3vt83ef40l/+SSE+P/g1PWnedU3e1Ve9c1ejdPXn+bc3ec4ff1pTlx/Av6K5yDEcxCXXXPNNQ/mP8g111zz4LNnz9567TXXPvgt3+6t+Nmf+Bn+04j/UU6dPs37fvD78qjHPhqA02dOk5n8dzh39hyPf/zjeau3eitOnz7NH/7+7/PEJz6RfyvzQtj8T/OWb/VWPOrRjwbg7Nmzt/KfQBL3k8Rze9rTnsZ3fdd38T7v8z681Vu9Na/2aq/OH/zB7/OEJzyRJz7xCTwv87+BxItAADzxiU/k3LlzvNiLvdhrc9VVV1111VVX/UuoXHXVVVddddVV/6If/dEf/ZwP//AP/64v/qkv4Q9+4Q/4uW//Wf6vOXX9aU5ff4pHvuyjeLU3ezVOXX+a+52/+xw/8+0/zVu+/1tx4voTCPH8CAEgxH+0++6779bf+q3f+p4P//APf+23fLu34tVe89X4g9/9A570+CfyxMc9kX8r8+9l/jOcOnOaV3vNV+NVX/PVOH3mNOfOngPgd3/rdzhzzTX8d/nd3/1dkHnMYx7Dq73aq/Fqr/ZqnDt3jj/8gz/giU94Ak984hP51xAvhMS/h3kBbP41Tp8+zau+2qvxaq/+6pw+fRqAe++9l/9oknhRSOJ3f/d3uPfeu3n/9/9ATp8+zVu91VvzVm8F586d44lPfAJPfOIT+YM/+H2uEP8SmxfC/E9x+vRpXu3VXp1Xe7VXB+Af/uEffpurrrrqqquuuupfQuWqq6666qqrrvoX/cM//MNv/94v/C6v8WavyVu+/1vxam/2ajzxL5/IE//yiZy/+xxP/Msn8r/JqetPc/r6UzzyZR/F6etP86pv9mo8twt3X+CPf+GPOHf3Of7gF36fkZG3ev+34kV19u6znHrwKf4j/eZv/OZvz9Txmq/zWjzqsY/mLd/urQA4f/YcT3z8E3ni457I+XPneOLjnsiLSvx7iX+vU2dO86jHPIpTZ07xqMc8mkc99lE80JMe/ySe+Lgn8JM/+hO88qu/Cmde9xr+O/3u7/wuT37Sk3iN13xNXu3VX53Tp0/zlm/1VvBWb8W5c+c4f+4c586f54lPeALnz53jiU98Iv8dxAsg8cKcOn2aV3u1VwPgVV/t1Th9+jQA58+d49y5c3zLN38z7/8BH8B99913K/+BJD2Yf4UnPOEJfMqnfBKPecxjedSjHsWrvMqrcPr0aU6ffnVe7dVenfd93/fj3LlzPPGJT+CJT3wiAOfOneOJT3wCz03ihRD/EpsXwvx7nD59mld7tVfnUY96NI9+9KO539mzZ/mt3/qt7+Gqq6666qqrrvqXULnqqquuuuqqq/5F9913363f/IXfdOuT/uJJD371N38NHvWyj+JV3+w0r/pmrwbA+bvPAfDEv3wiAE/8yydy/u5znLv7POfvPsd/pVPXnwbg9PWnOHX9aU5dfwqAR73sozl9/SlOXX+aF+Ti3Rf4s1/4U578V0/myX/5JJqTRuN+Z+8+x4nrTwAgxAMJASAEgBBnzpx5MP/Bfve3fo8nP/EpPPbFHsOjHvtoXuU1XpVTZ07zKOBVX/PVADh/9hwAT3z8EwF44uOeyPlz5wA4d/Y858+e47/KqTOnATh95hSnTp/m1JlTADzqMY/m9JlTnDpzmge6eP4CF85fAMOf/MEf86THP5EnPO4JtNb4n+TcuXP87M/+LH/8x3/MmWuu4VVf5VU4deoUD3/EIzh9+jSPAl7t1V4NgHPnzgFw/tw5zp0/zxOf8AQAzp87x7nz5zl/7hz/lU6dPg3A6VOneNSjHw3Aox71KAAe9ehHc79z585x+vRpzp8/zx/94R9y7uxZfud3fodxHPnPIAlJAEjiuUlCEgCZDUkAPOlJT+KpT30Kf/Znf8rp06d5xCMeycMf/nAe9rCHc/r0aU6ffnVe7dVenfudO3cOgPPnz3Hu3DnOnTvH+fPnOXfuHADnz5/j3Llz/GtIvBDihTl16jQAp06d5vTp05w+fYrTp09z6tRpHv3oR/Pczp07x+/+7u/ym7/5G5w8eepWrrrqqquuuuqqfwmVq6666qqrrrrqRdJK3vr7v/B7D/6jX/wjrrn+DI9+2cfwyJd9FAJe6c1eGYBHv2xw8vqTvOqbvRoPdP7uc9zv3N3nATh/9znud/7u87woTl1/ivuduv409zt9/SlOXX+aF9Uz/urpGHj6Xz4NY576l0/lqX/1FJIknSTmfuIFE+L5EeLsXWd5FI/iP1I6ATh33zn+8Pwf8se//8f84k//IhHBIx/zSB75qEdy8vRJHvaohwPwqmdOA/Cqr/lqPLfzZ88BcO7ceQDOnz3HA507e44Xxekzp7nfqdOnATh95hQAp86c5vk5f/Ycp86c5n4Xz1/k4vkLPPVJT+WpT3wKT37ik8lMMpOWDSH+J5DEczt//jy7u7s87SlPISI4c/o0D3/kIzl18iQnT53ioQ97GKdPnwbg9OnTPAp4tVd7NZ6fc+fOAXD+3DkAzp0/zwOdP3eOF8Wp06e53+lTpwA4dfo0p0+f5vk5d+4cp0+f5n4XL1zgKU95CufPn+dJT3oST3riE2mt0VrjP8s0TQ/u+54HksQLYoMkACQAceHCBXZ3d3na057Gr/1acOrUKSLEwx72cB760Idx4sQJTpw4wenTpwE4ffo0j3oUL9C5c+e43/nz5wA4d+4c9zt37hwvqtOnTwNw+vRp7nfq1GlOnz7NC3PhwgXOnz/Pk5/8JDKTn/3Zn2GaGuM48PCHP5x77rnvVq666qqrrrrqqn8Jlauuuuqqq6666kVijAEw5+8+zx/9wh/yJ7/wxwTBr3zHLxOIh7/sIzl13UlO3nCKE9ed5MT1Jzhx/QlOXX+a+526/jQA8Cj+Mxzes4+B/XsucemeS1y6e5ckecZfPYOLd1/g4t0XaCTppJEkJp08mwADAgAEgBAAx687zgMJ8V/LgDFXnD93jhKFP/2DP+Ev/vDPiAhOnT5NhHjYIx+OJB76yIdx4uQJJDh+8gTHTh7n1JnTAJw6cxoAHvMo/rPsXbzEpQu7XLqwy8ULF7HN05/8dOzkqU96KmmTTjKTtPmXnLnmDPfecy//XSSeLwEXLlzgz//0T4kIIoKI4OTJk0QED3voQ1EED37IQ5DE8ePHOXb8ODvHjgFw+vRpAE6fPg3Ao/jPcWl3FwO7Fy/y9Kc9DdtcuHCBCxcu8JSnPIXMxJm0TDKT52agtcZ/pIhAEgCSeG6SeKDMRikBCACJ53Hx4kUixF/+5V/w13/9V5QiIoKTJ08SUTh58gQnTpzk+PHjHD9+nJ2d40SI7e0dNje3OX36NPc7ffo0AI96FP8pLl68yMWLF7h48SIXLpznKU95CpnmyU9+EplJZqO15Apjw+nTZ7jnnvu46qqrrrrqqqv+RVSuuuqqq6666qoXiYtvBfP8nL/7PIXgz3/hTwmCUBCIUBAEp64/SRCEgpPXn+TE9ScpBCFRVDh23XEqhaLCcN+Knet2KKpUFSqFUCEkpvsGjEknR/ceMubI4JH9e3a5ePcuaw8MOTB4YvTE5InJjcmNRqM5eSDxwokrhAA4d/dZbrrhZl4UQlxzzTUP5j9QKeVWXghzxcXzF4gI/vKP/5xQ8Dd/+lcUBRFBUVCicOLUCWpUTpw6QS2F4yePU6NSS6Erle0Tx6ilUEullEKJQAokYRs7aZkcXTpgnCamNnLpwiXGNnLx/C5jG7l47gJjNqY2MWWjZdKy0ZxkJukEBJjLBJjnIP732714kYjgr//qr4gI/v5v/oZSCiWCWiu1FE6ePElXCl3XcfzECfquY+fYMbquo6uVrlbmGxsoAknYxpm0TFprTNPE1BrTNLF36RJTa0zTxO7uLlNrXLxwgQsXLtAyaa3RMslMMpNmk5lkJvczz8tcIaDWeiv/RSTx3GxeIInnIQEIgEuXLhERHBzscdddd1BrodZC11W6rtL3HbNZz4kTJ+j7ntlsxvb2Dl3XsbGxSURBglp7Mk1rjdYa09SYpolpauzt7TKbLWgtaa2xu7tLZnLx4kVaa2SaixcvcP78BTKTzCQzyUwyTWaSmdzP5rkY29x33323ctVVV1111VVX/UuoXHXVVVddddVVLxJX38ozmedlHsiAuN/Fu3cpCoqCg3v2ufOvb6eqUFXpVOlV6dUxU88seuYxYx4zZpoxi54uOooKQtimuTF4ZMiBtdesco0AASAEiBdAgAEBFsKI+wkwzyaek3h+hAAQ4n7n7j7Hfy7z/BgwAAbE/cxz2rt4iRqFo70DulI5d9s99LWjrz3zrmfWz5h3M+b9jL7r6buOUgqSsM3UGuM4MowDq2HNalyzHtasp4H1ODK0ERD3Ey+AAPOCiedw7uw5/tuI/zT7e3v0tdJ3HeN6zbzvOdjdZT6bMZ/N6PueruuopSAJ27TWGMaRYRhYrdes1mtW6zXrYWA9DAzjyDhNjNPENE08P+ZfwcaAbf6jZeaDASTxopC4TOI5SFwmgcRlEg8g7ifxfAgQAEdHh2RO2A1o9H3PMBxSSkEStmmtMY4j6/XAarVmtVqzXq9ZrQbW64FhGBmGkWmaGMfGNDVaa7SWtNYAA8YGG2yweQBjGwAbbLANgO1bueqqq6666qqrXhQEV1111VVXXXXVi6SRGGMDmOdgLjNgwIABzHMygHkWAzYGDBhjwDa2McYY29g8i3lu4n7iXyKEAPFAAgQIEM8knkWIc3ef5fh1xxHiBRFCiPtdc801D+Y/mXleBsyLyhgwAMYANmCMAWMbGzDYgA2AMS8aAQBCPJt4IcQLdebMmQfxXygzH4TANv9hbP4ltrnMxlxhwDbY2AYbbC6zeRabfxWbF8rmP4MkXlTL5RIQIP4lEs+XxHMRz0sASDyLzbPYYBvb2AYMGNvYBoxtAGwAAwYAzP1snofNZTYPYMAA2Oauu+66lauuuuqqq6666kVBcNVVV1111VVXvUhc/AwAMAAGDBjznMz9zP0MgAFzhQ1gDGADxoAxBgwYY8AAGGOMeU5C3E88kBAAEi8C8R/p7N1n+c/QMm81z81gnpN5vgwY82wGc4WNAWwM2IDBBgNgjAFzhXmhxDOJfzvxbOJ/AvOfzwA22ABgA4CNbbAxYMCAAQPYGMDmWWxeKJsXxjYPdPrMGc6ePXsr/4FsP1gSz00Sz62UAoDEMwkACUA8J/GiExJIAOIFscE2YGywwTa2sY0NYGyeyYB5fmyeyTybAbB5vmwuu/ba67jqqquuuuqqq14kBFddddVVV1111Yumcqsxz2bAXGGuMM/NGABj7mcAjLnCgAEw2BhjjAHbGGMM5pnMcxNCXCHE/cQVQgCIK8QLJ64Q4n5C3E+IBxLigYQAOHPmzIP5DyQBNhjMM5nnYu5nXjADGAyAAcBgABswxoDBxjY22GDA3M9gni/xXMTzEM9J/M8kBID4z2OePwMGDBgwgA022GCDjXkAG/MfwzyAzX80STyQJF6Q9XqNxLNIPJP4l0g8gLifxHOQQAIQz8mAAbCNbWxjGxtssI0NtrGNDTbYXGYbm38TG8DY5q677rqVq6666qqrrrrqRUHlqquuuuqqq656kaQTAwbMFaeuP4UITl9/mjM3nEaIk9edQhJCnLz+JAJOXH8SACEEHLv+OEIACCEAhBDLew8JiSAY7ltTCELBdN/AdN8aA8O9SyYah/fss75n4IEkgUEIABAgAMQLIsC8IEIIce7uc5y4/gT3E+K/mnkuBsSzGRDPcuLUCYLg5OkTnDh1ighx4uQJQuL4qRMIcezkcSQREpIIBZvHtpCEEJJAIMR4uAaMDbZZ7h+SmbRs7F/cY+/iJabWuOPptzHf3mT3wgUunLvI8yfAAAgQQhjzfAgk/ltJ4j/D9s4OXa2cOHGCYydOcOzYMWopjOs1p6+7jhLBYnMTSQhAopvNsA2AbWxjG9sc7O9jm7SxzaXdXWyTNrsXL7J78SJpc/HCBVomT3vqU/kX2dxPEfxHiwgAJCGJF6aU4NnE8xIvKgkkASDxAs1mC7quY2Njk9lsQdfNsCEzqbWn1hl2kplkJplmY2ML2wDYBsA2ly7tYoNtAC5evIANtrlw4QK2uXDhPLY5d+48586d4+zZ+wAAc7+XeZmX4alPfSpXXXXVVVddddW/iMpVV1111VVXXfUCXXPNNQ8+c+bMg6+55poHnz55+rVuPHYDZ66/hjPXn+bU9acBOH/3eU5df4rndv7us9zv/N3nuN/5u89y51238cKcuv4Ml52EU9efJoEzr3czz8/q3iMMHN1zwMG9e9zz13eye/cud/z1bTwv8UDiBREgxHM6d/c5AE5cf4Lzd58HQAgABJjLhDh39zn+M6TzVuDBBrBBcPL0KR71mEdx6swpTp0+xcnTJzl56iQnTp3kBTl/9iz3O3/uHPc7f/Ys/5JTZ87wQKdOn6YCNzzmwTw/excvAXDpwi67F3a59SlP58K5C1w8f4EL5y/w/Ij/W46fOMGpkyd58EMfSkg86CEP4djx4xw7dowX5Py5s9zvznvv5n7nz53lX3Lq9Bnud8111wJw6vQZXpCLFy8CcOHCBS5cuMCF8+c5f/48586d44lPeAIPdOrUKe67775b+Q9k+0GSeCBJPD/r9QAIEBKXSeIFEy+YuN/29g61Vh71qMdSSuHaa69nY2ObxWKDF+T8+bMA3HPPPdzv/Plz/EtOnTrN/TY2Fpw+fQaAl3u5l+cFOX/+PLY5d+4s9913H6dOnX7w+fPn3/u+++679ezZs7fed999t3LVVVddddVVVz0/VK666qqrrrrqKq655poHA7z2a7/2ewG8+Iu/+Gu/2Iu92GvzXM7ffY7zd5/lSX/5eM7ffRaA83ef4/zd5zh/91nO332O/2ynrj8NwKnrz3Dq+tOcuv40p64/w6nrT/PIN3wMD3rDh3O//Xv2uOOvb+OOv7qNv/2lv+b5E2CeTYC5QvxrCQEgxH+0a6655sE1C6/3+q/HmWuv4dGPeTSnzpzigc6fPcv5c+d4wj/8PefPnQPgSY9/PADnz57l/LlzvCDm3+/U6dMAnDpzBoBTp09z6swZTp8+zakzZ7jhwTfwEq/wUtxv98JFLp6/yMXzF/jzP/pznvKEJ/P8iQeSxP9UJ06e5NSpUzz84Q/noQ9/OA996EN5oPPnz3L+3Dnu/IdncO7cOQCe9KTHA3D+3FnOnz/HC2QuM8/NvKhOnToDwKnTpzl96gwAp06f5tSpM5w6fYaHPuTBvMIrvAL3O3/+PABPfMIT+IfHPY6TJ07wH00SLwpJRAQSSLwQ4rlJPIdjx45z4sQJHvSgB3PTTbdw4403c7/z588C8Fd/9eecO3cWgCc96fEAnDt3lvPnz/Kf6dSpMwCcPn2GU6dOA3Dq1BlOnz7DqVOnufbaMzzqUY997Rd7sRd7bZ7pvvvuuxXgH/7hH377H/7hH37nvvvuu/Uf/uEffpurrrrqqquuuorKVVddddVVV/0/dM011zz4xV7sxV77zJkzD3rxF3/x136xF3ux1+aZzt99jvN3n+Xnv/0nAXjSXz6BJ/3l4/mf4vzd5wA4f/c5np9T15/m1PVnOHX9aV7lzV6Dx7zxi/OYN35xXul9Xo3b/upW/uaX/ppb//Jp3E+AeFEIccWJ605w/u7zIMAgBIAQz+2aa6558D/8wz/wb3XNNdc8+LVf+7Xf68Vf/MVf+8Ve7MVem2c6f+4cT3r84zj/e2d50hOewPmzZzl/7hz/IokXRDwfNv8aF86dA+DCuXMAPJnnder0aQAe+ZjH8MjHPIZTZ87wsq/88rzsK788F89f4MK5C/zpH/wJf/wHf8xlAvGc7rv3Pv4nOXnqFK/yyq/Mwx/5SE6ePMnJkycBOH/+LD/3sz8JwJOe9Hie9MTH8+8iLhPPTbyoLlw4B8CFC+d4sp8AgHkgc+rUGQAe9ajHAPDIRz2GU6fP8AEf8AEA3Hfffa/9Td/0TU//rd/6re/+h3/4h9/5h3/4h9/m30HSg3khJCEJAEn8exw/fpyXeqmX5TVe47UAOH/+LOfOnePnfu4neOITH8+TnvR4AGxeCPGvY/41zp8/C8D582d5YU6dOsPp02c4deo0j3rUYx986tRpXvIlX/y9X+d1Xue977vvvlt5pn/4h3/47X/4h3/4nd/6rd/6bq666qqrrrrq/x8qV1111VVXXfX/xDXXXPPg137t136vF3/xF3/tF3uxF3ttgPN3n+P83Wf5+W//SZ70l0/gSX/5eP63O3/3Oc7ffQ6AP/qF3+PU9ac5df0ZHvmyj+bN3/9tufllHgSG7/mI7+TC3RcAAyBACGHEs4krBJy7+xwvqnN3n+Pf6pprrnnwa7/2a7/XO73TO302z3T+3Dl+/id/kic94Qk86fGP57+MxH+08+fPA/BHv//7/NHv/z4Ap06f5tSZMzzy0Y/mkY95DO/yvu/GG73lm/DkJzyJn/+pn+O+e+/jf6JTp07xaq/2arzZm785AOfPn+UPfv+3edKTHs+Tnvh4/scTl4kHEhcunAPgj/7o9wD4oz/6PQBOnTrNqdNneOQjH/PgRz3qMbzTO73TZwP81m/91nf/wz/8w+/8wz/8w2/fd999t/KvJAlJvCimaQTEv444fvwEb/3Wb8eDH/wQzp8/y8/93E/wxCc+nic96fE8PxL/ZjbPRfzbmBfm/PmznD9/FoA//MPf5X6nTp3h9OkzDz516jSv+qqvyeu8zuu89+u8zuu894d/+Id/13333Xfrb/3Wb333b//2b3/PfffddytXXXXVVVdd9X8flauuuuqqq676P+7FXuzFXvt1Xud13uvFXuzFXvuaa6558Pm7z/Hz3/6TPPkvn8CT/vLxPJD4v+fC3ee4cPc5nvyXj+ePf+H3eOU3ew1e5c1ek/f8uvfluz/i27lw9wUQYJ6DuJ8Q4l8ixP2EEALgzJkzD+JFdM011zz4xV7sxV77Hd/xHT/rmmuuefD5c+f4o9/9XX7+p36K/+vOnzvH+XPneNLjHw8/9VOcOn2aV3mN1+BVXvM1+ehP+Vj+8Hf/gJ/60Z/kf5JXfbVX433f930B+Pmf/Un+6A9/l/Pnz/F/2fnz5zh//hxPeuLj+fmfg1OnTvPIRz2GV33V13zv13md13nv++6779bf+q3f+u7f/u3f/p777rvvVv6VJPHcJPFAkpAABAgQDyTxPE6cOMF7v/f7cfz4CX7u536Cn/u5n+Q/k8S/ic1zEf8W58+f5fz5swD84R/+LgCnTp3hVV/1NXnUox7z4Hd6p3f67Hd6p3f67Pvuu+/WH/3RH/2c3/qt3/purrrqqquuuur/LipXXXXVVVdd9X/UNddc8+DP+ZzP+a1rrrnmwefvPscf/ezv8gvf/lP8f3b+7nP8wrf/FE/+yyfwMd/4qbz1p70d3/nh38aLSgiAE9efQH8lXijB2bvP8qJ6sRd7sdd+p3d6p8+67tprX/uPfvd3+ePf+z3OnzsHgPjPZf7nOX/uHD//Uz/FH/3e7/Gxn/ZpvMXbviWP+/vH0aaJ/zbiWU6fPs2rvdqrcf78Ob7yy7+A8+fPAYDE/cQDmX818zzM/yznz5/jj/7w9/ijP/w9Tp06zau86ms++J3e6Z0++5prrnnwb/3Wb33PP/zDP/w2L4KIeDDPJAlJvCDTNAEgcZnEs0hcJoEkJJDgIQ95CMePn+C7v/tb+MM//F3+p5L4N7F5LuK5nT9/jp/7uZ/k534OTp06w6u+6mvwaq/2mg/+8A//8O96x3d8x8/6+q//+vf5h3/4h9/mqquuuuqqq/7vIbjqqquuuuqq/4Ne53Ve572/6Zu+6emlxYN//tt/ik9/m4/lF779pwEBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAAB4tT1ZwDYvfsizyYAEM8iHkicu/scDyTEf5QP//AP/64Xe7EXe+3v/dZv5Rd+6qc4f+4c/1UECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLEC3b+3Dm+8gu+AIBHP/bR/M8g3upt3oZHPepRfOWXfwHnz5/jXyZAgAABAgQIECBAgAABAgkkkEACCUlIQhISSCCBBBJIIIEEEkgggQQCBAgQ//HOnz/Hz//cT/Kpn/zRvM7rvM57v9M7vdNnXXPNNQ/mRWAbSTw3STw3SdxP4lkkXqDjx08AcP78OSQhCUlIQhKSkAQIECD+N5FAAgkkkEACCSSQQAIJJLhw4Sw/93M/yZd92RfwXd/1LZSiB3/4h3/4d73O67zOe3PVVVddddVV//cQXHXVVVddddX/Mddcc82D3/Ed3/Gzzt99jk9/m4/lF779p7jq2U5df5r3/IwP4F9LPNuJ609wPyEeSAgAIc7dfY5rrrnmwfwLXuzFXuy1r7nmmgf//E/9FE96whNAAgkkkEACCSSQQAIJJJBAAgkkkEACCSSQQAIJJJBAAgkkkEACCST+uwgQIECAAAECHvWYxwDwaq/16iAuE+K/mhD3O336NACnTp3hv48AAQIECBAgQIAAAQIEEkgggYQkJCEJCSSQQAIJJJBAAgkkkECAAAHieZ0/f44/+sPf5cyZMw8+c+bMg3kRlFIezIuotQkQz0u8IE9/+tPY3b3Ie7/3B/LIRz6GF0QCCSSQhCQkIQlJSEISkpCEJCQhCRAgQPxvIMGFC2f5oz/6Xb7ru76FUvTgd3zHd/ysa6655sFcddVVV1111f8tBFddddVVV131f8xrv/Zrv9c111zz4D/+hd9DgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABp68/zZu//9vw+T/1ldxv9+5dBIB4TgIECABxP3Hu7rO8IEI8t2uuuebB/AvOnj17K8Cp06f5byeBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkgggQQSSCCBBBJIIIEEEkg8t0c+5jG85wd+IOfOnuV/DvOExz8egPd6nw/kzd/ibRAg/jcTIECAAAECBAgQIEAggQQSSEhCEpKQQIJTp85wzTXXPPiaa655MC8C27zoxBXieYnnZ3d3l8c//nGcOnWG937vD+S93/sDeeQjH8N/JAkkkEASkpCEJCQhCUlIQhKSkAQIECD+uzzpSY/nD//wd7nmmmse/Nqv/drvxVVXXXXVVVf930Llqquuuuqqq/6POXv27DPO332OV36z1+AXvv2n+P/s1PWneeU3ew0e8bKP5pEv+xju97Pf/hM88mUfzfHrjwNCmGcTYO4nAASAeP6EeCAh/rX+4e///tZXeY3XePAjH/MYvvdbv5UnP+EJ/Gcx/4NJAJw6fZr3/IAP4JGPeQznzp7l8f/wD7zGa782/xNEBH/w+7+P1Hj0Yx7Lm7/F2/Iqr/qa/MLP/SR/9Ee/x7+aeaHM/x6nTp3hvd77Azl1+gwA99133628iCQhiftJ4vlpbSIieCBJPH8CYHf3Ij/+4z/A2bP38Gqv9pq8yqu8Jq/yKq/J+fNn+bmf+0n+6I9+j/8uEg8gXhQ2D2D+vU6dOsMjH/lYzp8/y9mzZ5/BVVddddVVV/3fQuWqq6666qqr/o/5rd/6re9+x3d8x8+65pprHvx5P/WV/PEv/B6/8O0/xf8Xp64/zSu/2WvwiJd9NI982cdwvwt3n+OPf+H3+cNf+F3uvfsePu4bP53j15/gfgIEiOcmHujs3ec4cf0J/iVCnLv7HCcffJJ/yX333Xfr13/d133OR33UR33Xox/7WD7mUz+VJz3+8fzx7/8+f/x7v8d/NPHfzzynU6dPc+r0aR7xmMfw5m/zNtzvSY9/PE/4h3/gd37zN3mN135tAE6fOQ3iv9W5c+f4/d/7bSRx+vQ1nDp1mvd87w/kzd7ibXnSkx7PH//h7/GkJz2eF4l4ocS/knmBzH+8U6dO8yqv+hqcOnWGV3nV1wDg3Lmz/P3f/S0vqlLKg3kRSOJ+Ei+AeH7OnTvLz/7sT/DHf/z7vNqrvSZv9mZvw6lTZ3jv9/4g3vu9P4jz58/yh3/4ezzpSY/nSU96PP+TSTyAeFHYPIABOHXqDK/6qq/BW7zF2wFw33333fpbv/Vb381VV1111VVX/d9C5aqrrrrqqqv+D/qsT/vM93m3t36X33r1N3st3uz934ZXfrPX4Ml/+QSe9JeP5/zd53jyXz6B/+1OXX8agFd+s1cH4BEv+xge+bKP5oEu3n2eC3ef409/8Q/441/4A5objQTEubvPctMNt/D8CBDPJMAgBIC4QogHEuL5OXPmzIN5Edxzzz186ed+Lq/5Oq/De3/QB3HqzBne8wM+gDd7m7fh/NmzPPkJT+BJj388T37CE/i/4PTp05w8fZpHPuYxPOLRj+aRj3kMAOfPnQPgwrlz/NHv/R4/9xM/wdQax06cAODc2XP8T3Hu3Fl+9md/gj/549/nVV/tNXnkox7DIx7xaF7lVV6DV3mV1+D8+XOcP3+W8+fP8eQnPoEnPenxnD9/jn8b8yITL5D4VzDPl4FTp07zKq/6GjzykY/hkY96DADnz58D4Gd++sf5yZ/4Ed7rvT+Is2fP3sqLwDYvOvFs4kWxXq+53/nz5/jFX/xp/uzP/ohHPvLRvOIrvhoPf/ijOHXqDG/xFm8LwPnzZwF40pMez5Oe9HjOnz/Hk570eB7I5n8VictOnTrNq7zKa3L69Gle5VVek/s9/vF/zyd+4id/Tt/PuOqqq6666qr/Y6hcddVVV1111f9B99x1D9/xed/Ik//yCbzam70mp64/wyNe9tG88pu9OgDn7z7Hk//yCZy/+ywX7j7H+bvP8eS/fAL/05y6/jQAJ68/zSNe9tEAPPJlH8MjXvbRPND5u89x6vrTADz9L5/M0/7qSTz1L5/EU/7yiSRJYgCEABBw/u77ePGXfSmekwDzgggBcOL6E7wgQtzv3F3neBSP4kWhiFux+cPf/V2e8sQn8ujHPpZXevVX5xGPfjSnTp/mkY95DG/2Nm/D+XPnAHjyE57Akx7/eADOnzvHk5/wBP5VbP6znTp9GoCTp0/zyMc8BoBHPPrRPPIxj+H5uXj+PH/+h3/In/7BH3D27Flaa/xPIsQDZSaFwvnz5/jFX/hpfvmXfpbTp6/hkY98FK/4Sq/Gwx7+KCLEIx/5GF7lVV4DgPPnz3H+/FnOnz/Hk5/4BM6fPwvAk570BF448R/HvEgEp06d5tSpMzzikY8G4JGPegyPfORjeG4Xzp/jj//o9/jZn/kJpqkBYMyLShL3k8Rzk4QkADIbER0AEkjihRNXCACJyy5cOMef/ukf8Od//kecOnWGRzziUTzsYY/kxInTPPShjwDgVV7lDK/yKq/J/c6fP8f582c5f/4cT3rS4zl//hxgnvSkx/Oisvkvc+rUaU6dOsMjH/kYHvWox/DIRz6G+z3pSY8H4Ny5s/zUT/0Yv/Vbv8Y111zL7u4uV1111VVXXfV/DJWrrrrqqquu+r+o6lZj/vAXfoc/+YXf55rrr+GRL/tYHvmyj+YV3+zVOHX9aU692avz3M7ffY4Ld5/j/N3nADh/91ku3H0OgPN3nwPgwt3nuN/5u8/xojh1/Wke6OT1pwE4df1pTl5/mvuduv4Mp64/zcnrT3Pq+tM8t/N3n+PU9ae536W7L3DrXz2Fi3ef5+l/9WSe/ldPJm0SkyQPJK4Q9xP/EvG8zt19jhtvuAkAIf4jmSvOnzvHH//+7/Onf/iHnD5zhkc8+tE8/FGP4uTp0zzskY8EgEc/mld+9Vfngc6fOwfAhXPnOH/uHOfPnuX8uXMAnD93jvtdOHcOgPPnzvGiOnX6NPc7efo0AKdOnwbg1OnTAJw6c4aTp08D8MhHP5rndv7cOU6dPg3A7oULXDx/nqc96Uk87UlP4ilPfCJpk5mkzbNI/E+RzgcDZCalFJ6fCxfO8ad/ep4///M/5tTp05w6eYaHPfyRPOxhj+QhD30Ep06d5tSp05w/f45XeZXX4IHOnz8HwPnzZzl//hwA58+d48L5cwCcP38WgPPnz3G/8+fP8aI4deo0D3Tq1GkATp06w8lTp7nfIx/1aAAe+cjH8NzOnz/HqVOnAbh44Tx/9qd/iG1+6Rd/hpZJa8kVxoYzZ67hRTFN04P7vkcS95PE/STxQDZIAOIFEw80DAMSDyAAQABcvHieP//zP+Iv//KPiQhOnjzFyZOnOXHiFA95yCM4ceIkD3rQwzl16jSnTp0G4FVe5TV4oPPnzwFw/vxZzp8/B8D582c5f/4cAOfPn+N+58+fBQzA+fPn+JfYcOrUae536tQZAE6dOg3AqVNnADh9+jSnTp3hkY98DC/IhQvnOH/+HE9+8hP4iq/4AlprjOMEwIUL5387onDVVVddddVV/8dQueqqq6666qr/g5Lkgc7ffY4/+YXf589+4Q/5oc/7Lk7dcJqHv+yjOXndKR7+so/ixPWnADh1/WlOXX+aRwDn7z7HK1//6vxXOX/3OU5df5oHOrhnFwN791zkjr96Gsb8xl89hYt3X+DiPRdIJ4lJmyT5txD3E2CeHyEe6Ph1x3l+hAAQQgiAa6655sG8CDKT5+fCuXP86R/+IX/+R39ESJw6c4aQeNgjH8lDH/EITpw6BRIPfvjDOXX6NACnTp/m5LlzvPKrvzr/Vc6fO8ep06d5bpcuXuTShQs84ylPwTZPf8pTePqTn0xmkjZpY5t/i2uuuebB/BeKCP41Ll44z6WLF7n16U/mt37jFwkFJ0+d4uTJU5w4cYoHP+QRHD9+EgS3POhhnDp1GoBTp07z3+H8+XOcOnWaB9rdvcDuxfM87alPxpinPeVJPOWpTyIzcZrMxLxg99133638CyKCfw2JF0ji+RqGAQCJF8nu7gUuXbrIM57xFP72b/+MCHHy5CkixIMf/HAkccstD+PYsRNI4oYbHsKpU6cBOHXqNADnz5/j1KnX4L/K+fNnOXXqDA908eJ5Llw4z1Of+kRs85SnPJEnPenxZJrWEgCby2xz3XXXc99993HVVVddddVV/8dQueqqq6666qr/g2qttxYCc4W5nzHiwt3n+fNf+EOE+I3v+EVCIhCBeOjLPpKT159CiOPXn+LE9ScR4th1JxBi5/oTCACxfd1xXhTjfYc80HDvIcZc+tu7aCTNSSO57Z4/Z+/ui1y65wK7d19gcmNyMpE0J81JI2k2LzoB5jIBFgDn7z7L8euPc4UA85wECHGFECDO3X2OBxLiBTl39zn+rczzd/HcOSKCv/zjP+av/+RPiAhCIiROnD7NiZMnOXHqFCFx/ORJjp08SQA7J08iQBJbx48jYOPYMV5Uw8EBBmyz3NvDNgeXLpGZ7F28SNr8/YULXLp4kZbJbU99Ki2TlknaNJvMJG1eZBLPS/xvtnvxAnuXLnLbrU/l7/7mz4kQJYIS4sTJU5QIjp84yfHjJykluOGmhxAhQmJr+zgKsdjcQQgJ+vkWL4rl4R62MYBhf+8iNuxdusDu7kXSxjbPuPUpZJpbn/4UMpNMkzaZSdpkmn+JATDXXnsdL4ppmh4sCQBJPJAkHmi1WnE/iecgcZkEEs8iQYT415J4FgkuXbpARPD3f//nlBI88Yl/RSlBrUGtwYkTp6g1OHbsFMeOnaDWwt7ecTY2jlFKMJ9vIwkJum6T+3XdJi+K/f1dwNhcdunSBXZ3L2DD7u55bHPhwgUuXjzPhQvnuHDhHJkm02QaO8k0ALYBcz+by+67775bueqqq6666qr/e6hcddVVV1111f9Rq3767cXQvbYxAAYMiCsMCAAD4n5P/6un8Iy/eipFIggCUSSKgkJQFFQFVYVOhU6FToVelVlUenX00TFTpYuOqkJVQQQAJmlOJjfGHBk8MeTI2hODJ8acGDxxhXheQpjnJcA8N/Fs4n7i3N1nuZ94bgLMcxPPnxCXCTD/JhFxq23MczIgGyQeyIABA+aKSxcusH/xInc+7WmUCEoEJYIaQS2FrhS6UuhKoa+VvlZmXUffdfS10ncdtRRKKYQEgG2m1phaY5wmhnFkPY4M08QwTQzTxDBNjK0xtcaUyZTJ/0nmuYj/SHuXLlJKcHR4ifvuvo2uFp7xlL+n7wp9V+m7jr6vzPqOvuvoukqthVoKCgGQaVprTFNjGEeGYWIYRtbDyDBODOPEME6MU2OaGmNLWkumlrRMWiaZBgyAeT7Ms5gHMpeZZzIviojgRTUMAwAg/iUSSFwWEUgCBIDEs0gg8UzigSSQeJEcHOzSdYVxPGRv7y76vtL3HbNZpe87uq5Sa6WUQArA2GaaGtPUGIaRYRgZhon1emQYRtbriXFsjGNjHBvT1JimZJqS1pLWkkyTaVpLMk2myTTPzeYym2exAQyY06ev4a67znPVVVddddVV/wcRXHXVVVddddX/UcaYBzIAYJ6bAQMGwADYAOZ+BswVBsDYxpj72WAMNgZsA2ADGDDPZh5IgLhCgHgmgfjXE0LiMvFsAgSAADh+/QkABIjnRzzQubvPceL6E7wozt19DoBrrrnmwfwr2AbANs+PeV4GsLmfeV62sc0DGcAGwDbPzTyAzX808SKQQOKqZzKAuZ8BDBiwwWAbDGCMATBgns28cOYK8/yZ52Vzmc2LrLX2YABJPJAknltEIAmJZxIAEoB4TuJ+4zhwP0ncT+I/hCQAQDwv8bwMgG0AbGMbG2xjG5vLbGMb29hg8zxs85yMzQMYAJtnsQGMDTZk+lauuuqqq6666v8mgquuuuqqq676PyqLb+VZzAOZZzMA5vkxVxjAAMYYAJsrDMYYY4wBY4wxxjbGmCvM8yGeiwDxQOIKcYUAEM+PeH4EiOd2/LoTACAuE0KAeH6EuEIIAMRlQgAIIYQQ/xqZCQA2L4gB81xs7meuMFeYKwzY5n4GzDPZGDBX2MY2BgxgA4CNAfMANv9mEv8a4pls/tuIKyQuE/8lDBgAA2DAADYYsDFgjAFjAIyxAYMBbLB5buZ5mX8rc7977rn3Vl4EtVYk8aIYhoEHkngm8cJI4gUTABLPh3ggiecg8QDiOQmJ52JsLrONDbaxDYBtbGODbWwus3kA80A2/wrmBcn0rVx11VVXXXXV/00EV1111VVXXfV/VFZuNcaAeW4GwLwg5n7GPA8bAAMGbDBgABsDtgEwBgwYc4Uxz0k8i3gWAULcT4jnSzyTEM+feE7n7z7Lv0RcIUCAgHN3nwPgxPUn+JcIAXDmzJkH8y8otd5qHsDmOdg8i82LyjwfNtjYxjyTjW2exQYbAwbMCyf+g0jcTzwf4rKz953lv5v4L2LAYAADGAwGjDGAjQ3YYLANBjAGsLmfAZsHMGBeGAOYF8w8j+uvv55/C0m8IBECBAgQz0s8P9M0IgmJZ5H4DyFxmQQSL5QNYGwDYBvb2MY2YGwAY4NtbC6zwTYAtrF5Acz9bADz3Gwus8E2trn33vtu5aqrrrrqqqv+byK46qqrrrrqqv+jkgQADIC5wrwg5oUxxlxhwAAYY8AYY4wBYwwYY8CADWCweWEEIK4QzyRAIJ5JAIjnJJ6beH7Es4kHEpeJ5yJAPDchXphzd5/jX0OA+Q9mcz8D5nnZxlxhG9sYMM9k8yw2/9+J/2EM5goDxgAYsAGMAQMGMM9m8xwMmOdinpN5TsaY52TOnj17Ky+CiOB+knhhIoL7SVwmiX+JJP5lQuKFEA8k8QIIEBLPweY52AbABhtsY4NtbJ7FNra5n80zGRvAPJt5bjbPxQDY5oFa861cddVVV1111f9NBFddddVVV131f9RU8hnGPJAxz2aexVxmwAYDxtzPPJu5nzFXGMBcZowBY2wDxhhjDJgrzHMTACAESLxA4tmEECDuJ56XuJ8QIM7ffQ6A49cf54URz00AHL/uOM9NiH8P84KZF8LmfuYBbJ4fAwYM2AYAG9uYK2yDjW2eH9uYF4HEVf9xzBXmmQzGYGMbDDbYBhsAmyvMMxkwBgxgrjD/LjbPZCIK/woPkoQk7ieJ5yaJcRyRQOKFEM8mAKZp5DkJEP8WknhhJJB4gWywwQbb2AaMDbaxwTa2sc2zmRfEBhtssHkBDIANYADA2MY2wDO46qqrrrrqqv+bqFx11VVXXXXV/1EqcasBA8aAAXG/E9efQohT159GBKeuP4UQJ64/hRACJHHiulNIsHf3RY5ffwoBkghEICQRiECs79unqDDee0hRUFVo9y0JBe2+I6b7jnh+BAgQ4jkJAPGvIMA8X+LZxLMJAAHmX3L+7nM8kBDPjxD3u+aaax78D//wD/xLMvNW4MEA5vmwQeKFOXbiBEXixKlTHD95kojg2IkTRARFIiR2Tp4kJCKCIhERhEREEBKSkATAcHBA2mQmy709WiYHu7sM08TehQtcuniRfysB5pkksLmfeE7nzp4FAMT/BMM40lX+S2xuHaPrCjvHTtLVwtbOCWoNFhs7RATTcEQ/36KfbWKMbTJNOslmMpOWSabJNOlk79JFWppLuxfYvXiBrZ1j7F68QKa5cPECFy+c41nMZeYBzAtk4OTJU9x333238iKQxL9EEgARwb+FJABA/Esknkk8kMSzSDyAkPhXMl23QWYyny8oZYNpanTdJq01pilpLVksdsg0mcZOMsE2mQaMDZkG4OLF89jmwoUL2AbM+fPnsM358+c4d+4sNs/B5lmuueZaLly4yFVXXXXVVVf9H0Tlqquuuuqqq/4Puuaaax58+sTpBz9ocT3XXH8tgXjUyz4WgEe87KN5UVy4+24e6MaXvol/ycnrX4J/yXjfIcO9B6zvOyBtLv7tnRzeu8t9f30bz02AuEKAAAEIMCDAvFACxPN37u6zHLv+BCCEeU4CBIj7CfEs4lmEeH7O332efxWJF+bEqVOcOnOGU6dPc/LUKU6cOsWJU6c4ceoUx0+e5EVx4dzd/EsMmCvq9pyTp6/nhTm8dAnb7O/usnfxImlzx9OexsXz53nGU58KgPiPceaa0/xfc+z4CU4cP8nxk6c4dvwkx4+fYGfnJNvHjrO1fZx/yfnzdwPQeDYBBSg8fw971EvxL9ndvQCGixfPc/HieS5eOM/Fi+c5f/4c58+f4/z5czw3Axhs86/wYF4ISdxvmkZAgHjRiWkaiRAAEkj8p5B4lsVih66rnD59MxsbOywWO0jixImH8i85f/5u/rVe6qVekRfFhQvnsOH8+bOcPXuW++67l3vvvYc77riXWrsH33fffbdy1VVXXXXVVf+3ULnqqquuuuqq/8WuueaaB7/Yi73Ya585c+ZBL/7iL/7aAC/2Yi/22jyXC3ffzfm77+bC3Xfzi9/++9zvwj33cOHuuwE4f/fdXLj7bv6jnLz+egBOXX89ACevv56T113Hqeuv5+T118MJeMTLviynX//h3O/o3j3O/c1t3PPXz+DSPRe586+fxvMSYMQDCTDPJoQRYJ6XeP4ECAAB5oHEFefuPgfAyetP8lSeynMTQojLxGVnzpx5EC+CtG/FfvDJ06c5c801POoxj0ESj3j0o3n4ox7Fc7tw7m7On7ubJz7uSZw/dzcAF87fzYVzdwNw/tzdAFw4dzf/EU6evp77nTp9PSdPXw/AyVPXc+r09Zw8fT2xgEc9+mV5zMu+LPe7dOECly5e5OL589z6lKdw8fx5nvbkJ/O/lW0AbCP+dY6fOMlDH/oIjp84xYMf8nAe9OCH89zOn7+bC+fv5hl3/AMXzt8NwIXzd3P+/N0AnL9wNxfO381/hJOnrud+p05eD8CpU9cD8PBHvCwAp05dz4Me/CBe9uVemQe6cOE8YJ7ypCfypCc9nrNn7+Nxj/sHAE6fuYYXlSQk8fxI4jkJiWcSIB5I4nlIPBfxbOL5kXiRSCBx2fb2cR7xiJfm2msfxJkzt/BA58/fjQ3nzt3NH/7htwNw/vzdnD9/NwAXLtzN+fN38x/l1Knrud/Jk9dz6tT1AJw6dT2nTl0PwMmT1/PoRz+CV3u11+SZvgvgvvvuuxXgH/7hH34b4B/+4R9+57777rv1H/7hH36bq6666qqrrvrficpVV1111VVX/S9xzTXXPPi1X/u13wvgxV/8xV/7xV7sxV6bZ7pw990APPkv/5Jf+qM/4sI993D+7rt5yl/+Jf8a4j/OxbvvBuDi3Xfzwpy8/npOXn89p66/noe/zMtw8vrrecVPfDMADu7Z5a6/vpUn/PJfcvtfPZXnJIR5fgSY+wkwAkBcIQDO3X2W49ed4LmJ5yQBFgBCPD9CPDchzt59ln/JNddc8+DXfu3Xfq8KD367d3onHujCubs5f+5ufvGnvx2ApzzxL3nyE/6S/w4Xzt3N/S6cu5sX5uTp6zl1+npOnr6eRzzqZTl5+npe6hVfkZd6xVcEYPfCBZ7+pCfxtCc/mT//oz/ihRHPS4j/DuM40tXCi+rEiVO8/Cu+ChK83uu/Gfc7f/5uAH7xF74dgCc/6S958pP/kv9qF87fzf0unL8bgCc/mcv++I9/ged28tT1nDp5PadOXc/DH/mynDp5PQ97xEN5xVd+Ne537txZ7rvvXmw9+MVe7MVe+x/+4R9+mxeBJP4lkgCQuEziWSQuk0ASABKXtdaIqEg8BwkkAPGchMRlEkg8FwHwCq/wehw7doJHPvJluN/583fzx3/8C5w/fzdPfvJf8uQn/yUANv9lzp+/m/udP383T34yL9SpU9dz8uT1nDp1PadOXf/gU6eu58Ybr3/vRz7yZXmd13md9wa47777bgX4h3/4h9/+h3/4h9+57777bv2Hf/iH3+aqq6666qqr/uejctVVV1111VX/Q11zzTUPfu3Xfu33evEXf/HXfrEXe7HX5pku3H035+++m1/69m/nyX/1VzzlL/+S/80u3H03F+6+m6cAf/ILvwDAyeuv5xEv+7I8/GVehke87Mvylm/8vuzfc5HH/dJf8Pe/9Bfs3nOeF0SAeX4EGHE/AXD8+uM8JwFGgLifeKBzd5/l+HXHEeIFEeKFueaaax782q/92u/14i/+4q/9Yi/2Yq8NcOHc3fzJ7/8CF87dzZOf+Fc85Ql/yfMjxL+NeWHMf5wL5+7mwrm7AfiT3/8F7nfy9PU84tEvyyMe9bI84tEvy8u88ivzum/6pvz5H/0RF86d40//8A954QTA6WtOkyT/XUoEL8wbvtFb8PBHPIqHPeyRAFw4fze/+AvfDsBTnvSXPPnJf8lzE8/L/M9y4fzdXDh/N09+MvzxH/8C9zt56npOnbyeU6eu5+GPfFle+ZXfDOC1P/zDP/zBAP/wD//w27/1W7/1Pf/wD//w2zwXSQ/mASQBIInn1trE/SSeReJ5SDyLxL+JxDMJAAl2dk7wEi/xCrzKq7w+AOfP380v/MK38+Qn/yVPfvJf8oJI/KvZ/Jc4f/5uzp+/myc/medx6tT1POIRLwvw4Ec+8mV5yZd82fd+ndd5nfcGuO+++279h3/4h9/+h3/4h9+57777bv2Hf/iH3+aqq6666qqr/uehctVVV1111VX/g1xzzTUPfu3Xfu33ep3XeZ33vuaaax4McOHuu/mlb/92AH7pO76D/w8u3H03f/ILv8Cf/MIvAHDy+ut5k/d7P17pfd6Mx7zJy/H3v/Tn/P53/ioAAgQIIYy5nwDzQAJACBBw7u6z3HTDLbyohHhhhHh+rrnmmgcDXHPNNQ9+7dd+7fd6p3d6p88GuHDubs6fu5tf+ulv50/+4Be5cO5u/nOJF0b8RzLPz8Vzd/Onv/8L/Onv/wIAJ05fzyu92pvxiEe/LG/w5m/OG7zFW/Cnf/AH/NJP/zQA4vkT4r/aNddc8+Dz58/zbOKBTp46zSu/8qvzJm/6VgBcOH83v/gL386f/MkvcOH83TwH8SIRgPl3M/+5Lpy/mwvn7+bJT4Y//uNf4Pu/9/M4eep6HvmIl33wwx/5srzO67zZe7/O67zOe9933323/tZv/dZ3//Zv//b33Hfffbdec801D46IB+/v7wMgiRfGBhDPS7wwNkg8B4lnkXiR3Hzzw3iXd/kQAH7hF76dJz/5L3nyk/+S/ywS/yo2/+HOn7+b8+d/AYA//uNfAODUqet5xCNelkc+8mUffOON17/367zOh783wH333XfrP/zDP/z2b/3Wb33PP/zDP/w2V1111VVXXfU/A5Wrrrrqqquu+m92zTXXPPi1X/u13+vFX/zFX/vFXuzFXhvgyX/5l/zFz/4sv/Qd38FVcOHuu/mBz/98fuk7voN3+/RP51Xf5w3YvfsCf/tLfwaYfxUB5jJxhbifAPNA4nmdu/scJ64/AYAQL8y5u89xzTXXPPjDP/zDv+t1Xud13hvgyU/4S/70D36RP/mDX+A5iP9e5j+QeFFcPHcPv/wz38Ev/8x3cPL09bzJW70fb/yWb8nDH/lInvSEJ/BzP/ETPNC5s+f47/A6r/M67y302r/7u7/Ls4hnOXXqNJ/zuV8GwJOf/Jf80i98O09+8l/yH0L8u8n8u5h/vQvn7+aPz/8Cf/zHv8Av/sK388hHvCwPf+TLPvid3umdPvt1Xud13vsf/uEffvuaa6558I//+I8/eH9/nxdFZiIJEPeTeCbx/KzXayQAASDxfEm8UO/2bh/K5uYGT37yX/J93/d5nD9/N//TSPyr2PybnD9/N+fP/wJ//Me/AMCpU9fziEe8LI985Ms++HVe583e+3Ve53Xe+7777rv1t37rt777t3/7t7/nvvvuu5Wrrrrqqquu+u9D5aqrrrrqqqv+m1xzzTUPfu3Xfu33eqd3eqfPBrhw99380rd/O7/8Hd/B/cRVD3Tx7rv5wc//fN7k/d6PN/3Ud2L3ngvc+pdP5oUSYAHmuZ27+ywv9rIvBYAQYF4QcYUQ/xIhAM5cf4Yz15/h9PWnX/vFXuzF+KWf+XZ+6We+g/+xxH898ywXzt3ND3zH5/NLP/MdfOQnfQOv9Oqvzrn77uP3fvu3+e925syZB4WCiOBZzGWnTp3mcz//K7hw/m6+//s+jyc/+S/5H0f8uwjA/JsYuHD+bv74/C/wx3/8C/ziL3w7r/zKb/bgN32z939vgHPnznHp0iUuXbrE/STx/BlJSDyAeP4EwHo98GziXyae24Me9DCOHTvBfffdytd8zYcCIPEC2fyvIPEis3mBzp+/m/Pnf4E//uNf4Bd+4dt5xCNelld+5Td78Du90zt99uu8zuu892/91m9992//9m9/z3333XcrV1111VVXXfVfj8pVV1111VVX/Td4x3d8x896p3d6p88G+KVv/3b+9Bd/kQt3381V/7ILd9/Nn/ziL/KKb/ZmvPr7vCG3/uWTeTYB5oEEiOcmnpMAI56bAAEA4oFOXH+C+wnx3N7i/d+CN3//NwfgKU/4S77uSz8MAPFfz/wPJp7HhfN387Vf+mG82/t+Oq/8Gq/B4/7hH7jn7rt5oNd83dfkR37kR27lv8g//MM//M7rvM7r/PYHftAHvvZ3fNu3gQDBqdNn+IIv+iounL+bz/7MtwWM+Ncx/0uIfxMBmGe5eP5ufukXvp0/+eNf4JVe+c140zd7f17sxV6MP/zDP+QXfuEXeEEkkZlEBFeI5yWemwQgACQuk8TzI/F83XLLwzl27CQ/93PfwItC4l/F5n88iRfJhQt388d//Av88R//AqdOXc8rv/KbPfid3un9P/t1Xud13vtHf/RHP+e3fuu3vpurrrrqqquu+q9F5aqrrrrqqqv+i33u537ub73Yi73Ya1+4+26+7sM+jAt3381V/zonr78egEv3XOBZBJjnIIQxAOIKcYUQ5+8+y/Hrj/MsAplnEmAAxBVCAJy7+xw33nATz+3k9Sd5hTd9BV7xzV6RU9efAuApT/hLvu5LP4z/TuK/h/m3u3Dubp7yxL/kTd7q/XnV13xNfupHfoQH+q3f+q3v/tEf/dHP4b/I2bNnb32xF3uxB2cmD/Sqr/qaAPzJn/wCCEC8yMxl4vkx/1rmfzDxPC5cuJtf+sVvB+BN3+z9ecu3fEte7dVejT/+4z/ml3/5l3l+bAPiX2O9HpB4AHGFuEK8cOL48ZMAnD9/N/8ZJP5VbP5Hk7jswoW7+cVf/Hb+5E9+gfd4j8948Id/+Id/14u92Iu91td//de/D1ddddVVV131X4fKVVddddVVV/0Xesd3fMfPerEXe7HXfspf/iVf92EfxlX/eievv553+/RPB+D2v3oqIMA8mwAjwDw3ASDuJ54fIYR5NnE/Ie4nxInrT/Cyb/KyPOxlH8bDXvZhPLcf+M7P5/8r8e9z4dw9PDdxxY/+6I9+Dv+F7rvvvls/67M+63Ve8zVf87OA9wYQ8KQnPp5/M/FCiBeZuUw8kPm3MP/1/uRPfoE3fbP3B+DUqVO82Zu9Ga/yKq/ChQsX+LM/+zMuXrzIrbfeCgCI+0kgiRdO1BoASLwIxPPzjGc8hRtuuIl3f/fP4Gu+5kO5cOFu/jtJ/KvY/Lc6f/5uvu/7Po83fdP358Ve7BVe+x3f8R0/60d/9Ec/h6uuuuqqq676r0Fw1VVXXXXVVf+F3umd3umzAb7+wz4MAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDwJu/3fnzWT/4k99u57iTiOQkQz58AEPc7d/dZAI5ff5znRzx/5+4+x/HrjvOFf/iFfPJPfDJv+P5vyMNe9mHcd999t9533323fv3Xf/37AFw4dzcXzt8NAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEP8nnDx9Pe/2fp8OwOkzZ0Div9t9991364/+6I9+DhLP7ZVe6c04efJ6/lsIECBAgAAJJJBAAgkkkEACCSSQQAIECCEECBAgQIAAAQIECBAgQID4t7tw/m4unL8bgB/5kR/57N/6rd/67pMnT/Lwhz+cd3mXd+FDP/RD+ZRP+RTe/M3fHAkkAPGCiQeSQBIvKonn8bd/+2c86Ul/yalT1/PRH/2NvOmbvj8S/2tIIIEEEkgggQQSSCCBxH+a8+fv5hd/8du55pprHvw6r/M6733NNdc8mKuuuuqqq676r0Hlqquuuuqqq/6LXHPNNQ9+yl/+JVf96z38ZV+Wd/30T+fk9dcD8PPf/u288pu9GfcTIECAAQSYZxJgnh9xhXggAQYBBvH8nbj+BAD33Xffrf/wD//w2/fdd9+tP/qjP/o5PNPrvM7rvNeLvdiLvfabvOX78cs/+x38RzEvAvHfy/y7PPxRL8tHfNI3AHDuvrt5IPM/y7nzZ3nSEx/PIx/1GD7yo76BP/mTX+CXf/E7eG7mfzjxAOJfzSDMv8XDH/GynDx1PQA/+qM/+jkAP/qjP/o5L/ZiL/baL/ZiL/Zar/M6r/PeJ06c4BGPeAT3k3geEs/XOI5cIV5UEs9Bgp/6qW/n/Pm7edVXfTPe9E3fn1d+5TfjF3/x2/mTP/kF/jVs/keTeJHZ/KucP383T37yXwI8+MyZMw++7777buWqq6666qqr/vNRueqqq6666qr/Ivfdd9+tD3/Zl+XC3Xdz8vrruXD33Vz1gp28/npe8U3flFd8szfj5PXXA3Dh7rv5hW//dv7gF36BR7zsywKAAAswzybAPCcB5goh4NzdZwE4fv0JLtx9gRdGgAAQ9/vMz/zM1/mHf/iH3+b5+K3f+q3vKVq/9iu+2psB8Ms/+x38RxD//cy/QPybnDx9Pe/2vp/Owx/1sgA88XF/ye/85i/w4i/5WvzPIwDOnzvLt3/bF/Mar/kavMVbvj9v8qbvzyu90pvxA9//+TzlyX/J/cR/DPM/lADEv9abvMn78SZv9v4A/MM//MNv80z33Xffrffdd993/9Zv/dZ3f/3Xf/37XHPNNQ8+ceLEewGfDeK5SVwmgQQSSCDBNE3cTxISl0kg8QJJAEKCo6MV58/fzc///Lezu3s3b/Zm78/Jk9fz7u/+Gbzpm74/f/zHv8Cf/MkvcOHC3fxLJF5kNv+jSbzIbDh16noe8YiXBeDs2W+7lauuuuqqq676r0Hlqquuuuqqq/4L/ciP/Mhnv9M7vdNnf/g3fAN/+gu/wC9/x3dw1bOdvP56XvFN35SHv+zL8vCXfVkALt59Nxfuvps//YVf4Be/4ztoNvc7dv0J/rUECAAB4jkJMM+fACHg/N3nAPiHf/iH3+YF+K3f+q3vvuW6+Xc9+rHvzxu/1fvziq/2ZvzpH/wCv/yz38H/duI/zsnT1/OKr/qmvOKrvRknT18PwPlzd/NHv/sL/MyPfzuv+Kpvxv3uu/de/qcYhoH5jMvOnr2bn/vZbycC3uzN35+Tp67nIz7qG7hw4W7+5I9/gT/9k1/kwoW7+Tcxz0H8+5n/fm/ypu/HK73Sm3Hy1PUAfNu3fh4Pf8Sr38oLcN999916zz33/M7m5gYS/yoSL5TEM4nnJnFZBM/yx3/8Czz1qX/JIx/5srzxG78/J09ez5u+6fvzpm/6/ly4cDd//Me/wFOe8pc8+cl/yb+XxL+Kzf9Yr/Iqb8a7v/tnAPBbv/Vb333ffffdylVXXXXVVVf916By1VVXXXXVVf+Ffvu3f/t7Nvb3P/st3v/9eeP3f39e8c3ejD/9hV/gl7/jO/j/6OT11/OKb/qmALzx+78/D3Tx7rv581/8RZ76l3/Jk//yL0me07m77+bmGx7Nv0SAAPG8xP0ECGGekwAhntO5u88DcM011zz4vvvuu5UX4Cd/7Ltu/ZM/+IUHv/cHfQaPePTL8sZv9f684qu9GU954l/yp3/wizzliX/J/0cnT1/PK77qm/LwR78sD3/Uy3K/C+fu5k/+4Bf4+Z/8DloaAMRzOH3mNP/TiCt+4Re+nT/701/glV/lzXj4I16Whz/8ZXmTN31/3uRN358LF+7mT/74F3jKU/6Kpzz5L3mRiX8/8xzEv4/5tzl58npe6ZXflDd50/fnfufP3c13fMfn8fd/95c8/BGvzguTmQ+WeAABIAGI5yTuJwlJSDwfAkDihVqvV0ggcdmFC3fzp3/6C/z5n/8ij3jEy/IKr/CmvPzLvxknT17Pm77p+wNw4cLdPPnJf8mTn/yXXLhwN09+8l/yn03iRWbzn+7kyet55Vd+M17pld6MU6euB+Bxj/tLvv7rv/59uOqqq6666qr/OlSuuuqqq6666r/Qfffdd+tPfNd33Xr+7rsf/Gpv9mY84mVfljd+//fnFd/szXjKX/4lT/2rv+LC3XfzlL/8S/6vOXn99Tz8ZV+WE9ddx8Nf9mV5+Mu+LM9t9+67+ctf/EUu3n03f/6Lv4iBtBEPICEbcYW4nwDzbEIY84Kdv/ssAMevO879xP0EmH+v82fv5qu/+EN51dd4Mx7x6JflFV/tzXjF02/GK77am3Hh3N085Yl/yVOe+FdcOH83T3nCX/J/zcnT13Py1PU8/FEvw8Mf/bI8/FEvy3N76pP+kj/7w1/kT37/F2jJCyX+Z5B4gBEAARcu3M0v/9K3c/rPbuDhj3hZHv7wl+HlX+HNOHnyet7kTd8fgAsX7ubC+bt58pP/kqc85a94ypP/kv9U4t/HPAfxojl58npe8ZXflEc84mV5+CNeFoAL5+8G4ML5u/n5n/92fv/3foHW4PTp6/mXRATPJiSeSbww0zTy3CReBOJ+w7DmBXnqU/+Spz/9L/mN3/gOTp68npd7uTfjoQ99GU6evJ5XeqU345Ve6c0AuHDhbs6fv5sLF+7myU/+Sy5cuJsnP/kv+e8i8SKzeZGdPHk9r/zKb8bJk9fzyq/8ZgCcP383T3jCX/JTP/Xt/PVf//WtcD1XXXXVVVdd9V+IylVXXXXVVVf9F5tqvfUPf+EXHvzUv/xLHvWyL8srv9mb8fCXfVlOXn89r/hmbwbAhbvv5il/+Zc89a/+igt3382Fu+/mwt138z/dyeuv5+T113Py+us5cd11nLz+ek5efz0Pf9mX5fm5dPfd3PpXf8Xu3Xfz17/0S1y4+27SJgEB5jmJZzt399282Mu9Ki+IAHM/AUYACABxxbm7z3L8+uM8kADxQOJ+QtzvzJkzD77vvvtu5QVoWW817cEAf/IHv8Cf/dEv8Gs//x28wqu+KQ971MvysEe+LCfPX8+7vtqbAXDh3N0APOWJf8lTn/hXXDh/NxfO3c2F83fzn8m8AOZFdvL09Zw8dT0Pf9TLAPDwR78sD3/Uy/L87F64m7/441/kaU/8S57ypL8ibTJ5gU6dOcP/aOJ5XLhwN3/+Z7/AX/7FL/Drv/YdPPzhL8tDH/aynDhxHQ956Mty8uT1PPwRL8v9Lly4mwvn7+bChbt58pP/igsX7ubC+bu5cOFu/tuJF+rkyes5eep6Hv7wlwHgEY94WR7+iJflfhfO3w3AhQt382d/+gv88R//IufO3s3UDIANNtx333238kJIAgSI5088P9M0EcG/SOIFigCJF+rixbu5dOlubr31r4iAkyev5yEPeVke8pCX4UEPehlOnryekyevB+CVXunNALhw4W4AnvzkvwTgyU/+Sy5cuJvz5+/mwoW7+Z9C4vk6efJ6Tp26noc//GU5dep6XumV3oz7nT9/NwDnz9/NH/7hL/BTP/XtTBNk9rdy1VVXXXXVVf+1qFx11VVXXXXVf7FWyq0A5+++mz/5hV/gz37hFzh9/fU84uVejt277+bl3+zNOHn99bzim70Zr/hmb8b9Ltx9NwAX7r6bC3ffzYW77+biPfdw4e67Abhw991cuPtu/qOdvP56AE5efz0AJ6+/nhPXXQfAyeuv5+T113Py+us5ef31vDB799zDpbvv5va/+iue8dd/zTP+8i9JIIG0Mc8mwDwncYW4QjybAAFCCCPAvGACQIB4/gQY8WwSyALg/N3n+Fcxz3L+3N386s9/B/EL38GpM9fzsEe+LHsX7+HEqet4yCNeFoBXPP1mvOKrvRn3u3DubgAunL+bC+fu5sL5u7l47h4ALpy/mwvn7gbgwvm7+bcQz9/J09dzv5Onr+fkqes5cfo6AE6eup6Tp6/n5KnrOXn6eh7owrm7OXn6egAuXbgbA3/zp7/IxfP38Jd/8ovYJg2ZPA8BiP/xIgJovCguXrybv/jzX+Av//IXCcGJk9fz0Ie+DA956Mty/MT1PPjBL8PJk9dz8uT1ALziK70Z97tw4W4ALpy/mwsX7gbgKU/+KwAuXLgbgAvn7+bChbt5IPPvd/Lk9QCcPHU9J09ez8mT1wFw6tT1nDx5PSdPXc/Jk9fzgly8eDd/8ee/iA2/+ivfjhNaQiaY53T69PW8CB4EIIHEZZJ4wQSABBIPIEA8J/HCDMOa+0m8SHZ37+av//oX+du//UUi4Pjx63nwg1+G48ev5/jx67nllpfh5MnrAXilV3ozAF7pld6M+124cDcA58/fzYULdwNw4cLdXLhwN+fP3w3A+fN3A3Dhwt38Rzp58nrud+rU9Zw8eT0nT14PwCMe8bIAPOIRL8vzc+HC3Vy4cDdPfvJf8gu/8O20BtMENtiQWW7lqquuuuqqq/5rUbnqqquuuuqq/2JZyq3mOV24+27+7Bd+gb/4hV/gRz//8zl1/fU87GVfloe+7Mty4rrrOHH99Zy8/noATl5/PRfuvpuT11/PC3Lh7rt5oAt3382/5OT113O/k9dfz7/kwt13c/L66zm69142rr0WgMN77sHA3X/91+zdcw9799zDpbvv5ra//mvSJoG0SZ6TAPOvc/7uuzl23QlAgHn+BBgEGEAIgwQGAefuPguAeP7E/cT9hHhR2LxQF87dze6FX+Cv/uQXkeDkqes5ceo6Tp66gQc//GU4fvJ6jp+8jpOnrwfg5Onr4VH8iy6cu5sHunD+bv4lJ09dz/1Onr6eF+bCubs5efp6Hmjv4j3sXbybSxfvYffC3dz21L/m1qf8JWlIg9Ok+feT+O/UWnsw/067F+/mr//qbv72r38JBYTgxMnrefCDXwZJ3PLgl+H4sevYOXY9J09eD8DJk9dzv1d8pTfjBblw4W6e24Xzd/PCnDx1Pfc7efJ6/rUu7d7N7u49PP3pfwmGpz3tr3jaU/8SGzIhzWXmBbPh7Nmzz+CFiBAS/wLx/AkQEki8QBLPVykCQOLf7NKle/i7v/slIiBClALHj19PKeLYseu46aaXYWfnOnZ2rmNr6zpOnrwegJMnrwfgwoW7OXnyel6YCxfu5oHOn7+bf8mpU9dzv5Mnr+eFuXDhbk6evJ77Xbx4Nxcv3s1Tn/pXgPnTP/1Fzp+/m0zIBJvnkVlvjeCqq6666qqr/itRueqqq6666qr/Yo0rDJjnZEDAxbvv5i9+4Rf4y1/8RQIQcPL665HEQ17mZRDw4Jd5GQQcu/56BBy7/np2rrsOgJPXX88Dnbz+ev6thvvuA2C4914MLO+9l6N77iGBO+65h/177mH/7ru5dO+9TDbNZrJpNg1oNuJFJ8A8gAQ2z+3c3Xfz7yGe7fh1J3g2AeZFcc011zz4H/7hH3iBxIvEGCEuXribSxfv5hlP/Wv+5s9+kRBI4sTJ6wjBiVM3cPzkdRw7cT3HTl6HJHZOXMfO8esA2Dp+HQAnT1/PA508fT3/Fqv9e7HhaO8ebDjYvYf93XtIwz9cvIdLF+/m0oV72L1wNy0hbZpNJqR5kQkQ/zpnzpx58H333Xcr/wPYvGAGxL/o0u49/N3f/BIR4nF//0uUEBFw/Pj1lIBjx6/n+PHriYDrb3xpImBr+zok2Ni8jsXmtQCcPHk9z+3kyev5tzjYvwcb9vfuwYa9S/dwafdu0ua2Z/w1Ntz69L8kDZkmDU5Im3+t02euZ2r8Sx7Mv0FrjYgKAIgXjXigaVoh8RwkkEDiAYTE8yXxLBKX7e3dQyni8PAe7r33byhF1Aq1imPHrqdW2Nm5nu3t6yhFDMNLEiHm82uRYDa7FoC+vwaAkyev54FOnryef4u9vXuwuezSpbvZ3b2bixfvxoanP/2vsOFpT/tLMsGGTJMJNs/D5llsA+UZXHXVVVddddV/LSpXXXXVVVdd9V/Ms9nveH+fF8aAeE67d9+NJP7m7rsR8He/+IuERAAhEUCRCOD49ddTJApQJI5ddx1VokhUiQJUiRpBBYpEu+8+ikRITPfdhwADBtJmsplsJpvRZrQZbaZMRhvxH0QCm+dHgADxbMeuO8HFu89zmQALMM9LgHl+jl1/HAAhwDw38WxCnLv7HC+KluVWGwzYPH8GxPNlQMCli/cQgv3de7nz6RASJaCEKCFqiBJQQ3RF7Jy8ji5EraJGsH3iOkqBGqKEiBAhkACBDcP+vbSEKc3RpXsZp2RsZpzM2Mw4mamZMc3UzJSmpWnJcxFgHkiAedEJEP9zCTD/Nfb37qEEHB3ey9l7/oZaxDOe8qvUKroquiq6TnRVdFVs7VxPKVCLKAVAzBbXAGBDJrQ0rZnWTGuwv3cP05RMk7l06R7GyUyTmZqZGkzNtDStQUuTaTIhzRXmCoN5NvNM5gWyucL8iyQBAsSLToABkHiRSDwf4oEkXiQSz0ECSbwoDg/voevEON7H3t7f0nXBuXO/TteJWkWtohRRipBAglqvwYZMM02m1muYJjNNME1Ja2aaYJrMNJnWzKVL99CamSbY3b2b1kwmtGYyIdNkQqbJhEywzb/ENvezwQYbpgn6nquuuuqqq676r0Tlqquuuuqqq/6LNRsD5goDBgyI52KDBIAB2VhCPH/miv177qFIFKBKrO69lypRJTqJTqKT6CS6CDqJKlEkChAS5tnM8ycACQBsxAsmnj8B5goB5tkECBDP68LddwNw/PqTXLz7PC+IEMKI5+/83We56YZbAAFGAsyL5MyZMw/iX8OAeF4GxAMYEABgQLxABtuAADBwdOleuiK6IroatOV9dEXUKmoRJUSECHGZDWnTEloz/xOJZ7vv3vu46gHMs6yP7qHWoFVRAiLENNwHhjRkmtbMNJlxMtNkhsmMYzJOxlxhwIB5JvM8DJjnw1xhnj/zHGwwcN99993KCxGhB0sgAQgQ95NA4nkMwxoQz48kJF4kra15YST+TSSeg8SzSLxIbJDAhmG4D9u0Bq2Zw8N7mSYzjskwmHE042jG0UyTGUczTWaaTGvmfjbPYoPNc7B5FptnscEGm2exeRYbap39NlddddVVV131X4vgqquuuuqqq/6LRa238kzmeZkrzBXm+TNgwIB5TgZsA2DAgHk2A+YK2xgwVxgwz2aeP/GCCUACQLwAEuJFJ14wIZ4f8ZzEFQJACHHu7rMcu+4EDyTuJ0CAABACQIhzd5/lX5Iut/ICmOdiwIABAwbM8zDPZvMCGTBgjA0GMNhcYWPAPIANgG0uM8/B/McT/7tEBM+P+J/BABhsAGywwQAYAwbMFQawucyAweZfZABzmfm3sXmW06ev518m7ieBxGUSzyKBJCSQuEwCiRdCPCchcZkEEozjCon/YOL5E/9aNs9igw02l9nG5jIbbC6z+RfZPIvNv5rNZTbYYIPNVVddddVVV/1XI7jqqquuuuqq/2Kq9VYD5l/PXGGel7nCPJt5TgbMs5krbGMb2wAYMGCeP/GcxPMSIJ6TAHGFeACJ5yZeuPN3380DiWcTQuIFEADihRPPSTw38S8xYAPmOZkXyFxhnsk8J3OZucJcYYMBDDZgrjCAwWCusMEABgwGbC6zzfMwz2b+S4n/qcRzEP9jmCtsnsUGGzBgwGADBgM2mOdiwObZzHMy/xIDYB7IAJjnYDh79uytvBCSHsy/0no9AADigSSeReL5kngmcT8JJJ4viX8TicskLpNA4rmIf4kNNtgAxja2scEGm2cyNthgg81lNthgAxib52HzLDbPYvMiK6XeylVXXXXVVVf91yK46qqrrrrqqv8GWcqtPJN5NvP8mReNeV4GDNgGG9vYxoABA+YKAwaweRabfw3xvMRzEs9LPJt4wQSIZzt23QkQlwkQL5wAEM9NPDchgbifABAC4NzdZ7nmmmsezAuRyXMwV5hnM1eYfyXzLObZzLPZYMAGAzbYYAyAAQPYAJhnM/85xAOIf9HZs3dz1QtmwIAN5pkM5n7G5lkMGDBXGIN5FnOFDeYKA+ZFZ54Pc4W5zOY5nLnmel404nkJEM/ParUExBVC4t9E4l9F4lkk/kUSz5fEi8A8mwGwwQYbbLDBBtvYYBsw97N5DjbPZF5UNs/B5jIbbLAhs9zKVVddddVVV/3XI7jqqquuuuqq/wZTrbcaMFcYsM39zBXmeZlnM2AAm8tsAAwYMM9kA2DAgAHbGDBXGDBgwIABA+ZFI0D85xLPJCHg3N13s3PdSQBAPCfxbOIFOX/3OY5ffxzEA4gXTgBcc801D+aFUXkGgHk2Y/41DNhgns28AOYyA+a52IC5zGADNmDM82Ew/83Es0lI4r/bNddc82AAxP8A5jkYMFeYy2wAY4wN2GAuMwbzbAYM5rmYy8wV5nmZF4F5vmxImxfmxV7sxV5b4pnE/STxwnRdReIyiRdI4pnE8zNNa/6jSbwQ4n4Sz5cNNthggw022GCDDTbYYINtbLC5zAbb2Fxmg23+JTbPYvN82Vxm8xwy661cddVVV1111X89gquuuuqqq676b2D+9cxzMs9mwFxhAJv7GTBgwDybAdsYMGCeiw02AOYFE89LvBASz03825y/+27Ev4Z4bufvPsv9BIB4buI5iSvOnDnzYF4IU281V5h/P/P8mPuZ52TABgMGbLCNucKAzWU2YDBgns2A+a8hnpMA8T/Li73Yi70W/40MGABjA+Y5GDBX2FxmA+YyG4yxDQYDBmwwz2SexTwX85zMFeYFMs9mnr9Mc999993KC/BO7/ROnxURD5ZA4gUQzyYAJPHcJPFvIfHfREj8CwwYG2ywuczmmcwD2TyAsXkWm8tssMEGm+dg83zZYPN82WCXW7nqqquuuuqq/3oEV1111VVXXfXfYOr73zZgwDwn85zMi848m3kmmwcyYJ7NNgYMGLCNAQPm2czzEv8ySQCIF414TgLEC3bs+hP8awkQQoj7Hb/uBCDECyae7dzd57jmmmsezAthAHOFucJcYTDPn3k+zPMwYACDucIABptnM8/JYAPmMpvLDGDAPJv5jyH+3e67914AJP5bXHPNNQ9+sRd7sdcGmKaR+0kT/yXMs5kXylxhc5kBm8tsLjOAAfMs5oUwGMC8YOY5mRfK5rJrrrmBF+bMmTMPfsxjHsuziRfFOA6AkHgmAQACAMT9JJ6v9XqFxItE4vmSeA4Sz5fEs0jigSSeLxtssHkmA2CDDbaxwQYbbLDBBhtsXiQ2z5fN82VzmQ02l2XWW7nqqquuuuqq/3oEV1111VVXXfXfoPEvM8/LXGGeyeb5MVcYMGDAgLnCgAFzhW1sYxsD5tnMv0w8FwkB4gEkxPMSL5h4NvGcxBU7151E3E88JyFAgADx/AiA49ef4F8mhDh1/WlO3nTq1n/4h3/4bV4I21xmXihzhXlO5nkZwGCeyWAAc4XBPJPBgAEbDNhgrjBgc5n5ryf+9cR/r2uvvRYAIf5TmefPPBeDucw8kwGDbQBswGDA5jIbMBgwYAPmMgM2YJ7N/IvMs9k8BwPmOdm8yM6ePXvrB33QB/Pqr/4aAEi8SCQh8e8glssV95O4TAJJSLxAEv8mEkg8k3hhbJ7FBhtssI1twNhggw022DwPG2ywuczm+bJ5FptnsXm+bJ7FBrs8g6uuuuqqq676r0dw1VVXXXXVVf8NPJv9jnk2AwbM82FjHsDmfgYMmGczz58BA+YKAwYMmCvMs5lnMy868cKJZxPPSfzLBIgrzt99N/cTz0mAeCDx/Jy/+yzPTYC4nwAh4OT1p3iz939zvvinvoTHvtRjH/wjP/Ijn8MLoai3mgcw/7HMC2CMMYC5zADmWWxjrrABGwzmCgOY/z7iWU6fPs39PumzPgXDrf/wD//w2/wXu++++249d+7cb3/VV381r/Ear8G/lwHMC2aeg7mfeW42l9lgwFxhc5kBbABsLjPPZC4zgHkWAxjM82H+w9gQUW/lhfj6r//697F96/u//wfwFm/xVgBI4nmJZxPTNAEA4l8mJJ7HMKyReIEkXgDxbELiMolnkXgm8a9h8xxsnsUGG2ywwQYbbJ7FBhtssAHM/WyeD/OCmedm8yw22ABmmrjqqquuuuqq/w4EV1111VVXXfXfoNkYMGCel7nCPC/z/JnnZMA2AObZDBgwYMBcYa4wYBsA80w2z008JwHi+RPPSYB4ISTEA0gAiOd07u67OXb9Se4nQAjxfIjLxLOJF04IgJPXn+SN3+9N+Zyf+lze7P3fnPvuu+/Wz/zMz3ydf/iHf/htXhgDBnOFeTYDmH8dc5kxz82ADcY8mwGwucyAAZsrDDbPYq4wV5hnM/9FxL/o67/+69+H/yb/8A//8Dunz5zhUY9+FP965j+KeTbzTObZDOYKAxgM2FxmAwYbDBgAYwDzXIx5XubfyDwPmxfqvvvuu/VHf/RHP+e3fuu3vvst3/It+fzP/0Le9E3fjH+JxHOQeBaJF0kEl0lcJvFvJvECSTwPiX+BsbnMBtvYYIMNNtg8iw02LxIbbLB5Dra5n82z2GCDDWCemw21zn6bq6666qqrrvqvR+Wqq6666qqr/htErbfyr2RAPJsB8ZzMFebZzBUGDGBjnknCgAEDBgwYMCDAvHDieYl/PQHmX0fcT4ABQIB5AAHmOQkJMJy/+ywAx687jnggceL647zsm7w8b/j+bwTAfffddyvAZ33WZ73Offfddyv/5QyIBzLPywYMNhgDwgYMNoAxAkBcYZ7JXGH+TcRzEmBeRALMC/X1X//17/MP//APv81/k9/6rd/6boDHPuZR38Uz2bxABsTzYUC8QOZfw4B4FnOFwQIZDGAwYIMB8wA2NoB5IAOYy8yzmSvMv54Bm+dw9ux9t/Iv+K3f+q3v/od/+Iffvuaaax78Yi/2Yq/9pm/6ZrzyK78yT3nKU/jzP/8znv70p/HcWpsAASCJ+0m8QBLPoRTxL5F4Fol/FQkk/tVsnsXmMpvnYHOZDbaxDRgbbLC5zAYbbC6zeQ42/2o22GBzmQ02V1111VVXXfXfgcpVV1111VVX/TdQrbcaMFeYZzMgns2AeNGZZzNXmGeysYQBA7YBsIQBA7ZBwjwn828jrhDPhwQ2z02AeeEEnL/7bv71hDAgQAhxv+PXn+Al3+SlMfB67/f6PNB9991369d//de/zz/8wz/8Ni8iRb3VXGGuMGBAPJMB8SwGBBgQVxgwz8VgcZm5n8ECwDyTwRgQ5gobbBAGCdtgMMYA5lnM/wzif47f+q3f+u7f/I1fY2d7/l38RzEgrjAgnpN5vsyzGTBgwBgQ2FgCGwPYAGDAYINt7meDMeZfwTyLeTbzorHh2mtv4EVx33333fqZn/mZr3PNNdc8+MM//MO/68Ve7MVe+xVf8RSv+IqvxMWLF3ja057K05/+NHZ3d3nGM24FQOIFkni+JAAhwTCskPg3kfh3k3gONs9ig8RlNpfZxgaby2ywjc1lNoC5n81zMc+PzbPYPIvNv8gGG0qpt3LVVVddddVV//WoXHXVVVddddV/kyzlVlp7sLnCgG0kAWBAPCcDAgyIKwwYsA0S2FjCXGGusI0lzBUGDBiwDYABJAzIBgkD5grzIpDARoB40QgwL5h4NvFs5+6+m2PXnUA8NwHmRXXu7rO81ae9Lc/tvvvuu/W3fuu3vvu3f/u3v+e+++67lX8r85wMiMsMCDAgnpcBcYUBDAjM8zJgwDybAQy2AbABBIABbAAMYC4zYP6VBJh/IwHm/wLzX8C8YOYKgwEB2BjAYMA2BowBA2Cei8Hm+TLPZJ6Tef7MC2SDgPvuu+9W/hXuu+++Wz/zMz/zda655poHv/Zrv/Z7vfiLv/hrv9iLvdhrv9zLneTlXu4VANjdvchnf/ansLe3i8SzSDyTAJAAxHOTuGya1txP4j+MxPOQeBaJF4nNMxkbbLCNbWxjG5vLbLDBBtvYXGbzLDbPZJ6bzfNl8xxsLrPB5rLMcitXXXXVVVdd9d+DylVXXXXVVVf9N5lqvbVv7cG8CAyI52VAPJt5ABskAMxzMlcYMFeYK8wVBrB5UYhnEy+YeF4CDCCBjQDzbAIMiGcTV4grjl13ggt3XwDMcxBgLhMAAsz9xHO67777bj179uytf//3f//bP/qjP/o5/AdIl1tNezDmBTMgnpN5NvEs5oEMCAw2z8lgrjBX2Fxmgw0CEJir/k3Efz8DBttgcZkNCAwGEGAwD2CDwQYMGMwzmWcz/yLzr2Ceh/m3u++++2790R/90c/50R/90c+55pprHvxiL/Zir/1iL/Zir/U6r/M67338+Akk8e8lcZnECyXxH0ICiX8FA2CDzWU22GCDzWU22DyLzWU2l9nG5llssHmBbJ4vm8tsnsUGu97KVVddddVVV/33oHLVVVddddVV/03Ms5nnZECAAfH8GRDPy1xhwIABbCxhwFxhrjBgwIABAwbEv0w8mwDxXCSwEc8mXnQCzLOJB5B4IAkwz0OAEMaI5+/c3Wf5uyf8/Xd//dd//fvwH8zmRWMD4lnEi8aAAAwWlxkMYLC5zFxhwFxhnslggwHbPDeb/xgCzL+OeBZJ/M8h/tUMiH8d8wKZ52YAjDBgQAAGAxhssMGAucKAAcxlBowBMGCeyWDzLzNXmGczz8PmstOnr+c/wn333Xfrfffd992/9Vu/9d1f//Vf/z7XXHPNgw8Ozj697yvPJkA8N4kXSAKJF4G4n8SzSPy7STwPG2yexeYym2exucwGm8tssLnMNs+PzbPYPAeb58sGm+fLhtbKrVx11VVXXXXVfw+Cq6666qqrrvpvMvX9bxsw/zrmudg8N/OczHMyYMBcYcCAucI2BgwYMGCbF5V44QQIEM9J/Oucv/tuAI5dfxIAAQIECCGel7hCAAhxxTXXXPNg/hNIvEDm+TMA5llsHsg8mwFzhQED5gpzhQ0YbMBcZhsADOaZzHMwgAEM5l9NPCfxryf+hxL/ycz9zAtgLjNXGDDPZMBgwAAGY57FXGaek83zZfMiM89mHsBgnpcN99133638B7vvvvtulQQIEBL/CuJ+07TmP5rEZRLPIvE8JJ4vG8A8N9vYYIPNZTbYXGZzmc2z2GDzLDbPw+b5snmhbLC5zOaqq6666qqr/rsQXHXVVVddddV/kwaYZzNgwDwnA9iYB7C5nwEDBsxzMmCuMGDAgLnCgAFzhQHz7yDx3MTzIfEvES+YAPH8iH8NASDO332W/yxT1lt5JhswL5B5TuYFMJfZPC9zmbnCXGGuMGBzmQ3mednGNtiAAQDzH0eIF825s3dz1b+CAYMBYzBgMIDBBhsM2IDBBgzmOZkXwDwP869knuX0mev5z2OeTUg8H+KFaW3NA0kggQQS/07i2cS/hQ022GBzmQ022GBzmQ022Fxmg82z2LxQNs9i8yw2z8MGm2exwZ79DlddddVVV13134Pgqquuuuqqq/6beDb7HQDz/JkXzFxhnpe5wjyTjbnCgAFsbIONbbAxgI1tDBgwYF448fwJEM8mXjjxohHPduHuuwE4dt0Jnj/x/AgB4r+EwQbzXMyzmBeBeQ7mOZnnYrABg7nCAOYy80wGG2xjwLxw5l8m/n3E/3zifkL8VzLmeZlnM89mwAAG8wDmMnOFAcwVBgyYK8xl5t/GXGGeyWCeyYD5T5GZDwbxopJ4vmyQeJFIPF8SzyQknoMEEv8mNs/DNjbYYIMNtrENgA02D2DuZ/N8mH8Nm2exweayaeKqq6666qqr/rsQXHXVVVddddV/kwTMFeZFY1405nmZZ7IxYMCAAQO2MWDAgG3MFeYKA+aFE8+HxGUSLwrxojt3990cu+4k/zIBAOK5nbv7LGfOnHkw/xnE82VedAYMmH+ZAfNsBjDYgMGAbTDYxjyAAfMczLOZ5yZeEPEfTOJ/LPGfxlxhnou5zDyAwTyTAQMGDMZgsI0NBmzAYJ7NgAHzIjJXmBfKPJt5NgOnT1/P2bNnn8F/MDsfzDNJ/CuIB8pcAyDxfEm8SCT+RRLPIvFC2Vxmgw22scEGMGBsA8bmMtuAAbC5zAab52CDDTbPweZZbAADYIMNNs+XbWqd/TZXXXXVVVdd9d+D4Kqrrrrqqqv+m6iUWw2YK8yzmSvMFeZ5medkHsAGwIABc4VtDJgrzBUGDJjnZa4wL5gAAeKFE8+feD4k7idAvHDifuJfS/znaVluBcBcZsCYfxODeU4GwGAwz2Qwz8sAGADzbMYYMFeY/0LiCnGZuEL8zyeuECP/VcwV5rkYDGCwwYABYwAwmOdlAAMGA5gHMAbM8zJg7mcAzL+N+c8jgcTzkITE85B4HjbPIvEik3geEs8k/iPYPIsNNthgg81lNpfZXGaDzWU2z2Jzmc1zsHkA8y8zNthgc5kNNlddddVVV13134Xgqquuuuqqq/6bqNZbeS4GbPPCmOdkwFxhG3OFeU7mOZkrDJhnM2DAgG0AbPOvIZ6TeDbxnMRzEs9JPJOEeE4Czt99N8euPwmAeP4ECBAgrhAAQsC5u89xzTXXPJj/auZ5mCvMFeYFMM9ic4V5DsaAMcYYbGwwgMGAbTBgLjOAwYB5NgOY/xri+RL/+5l/gflXs3n+DBiMMYDBBtvYYPMsBjDPyzwXYwDz/JnLzDOZf5HNfwrbDwbxwonnJvEsR0crJJD4DyfxfEkg8SwSL4QBsM0D2WCDDTbYYIPNMxmb52Gb58fmWWyexeZfZIMNpdRbueqqq6666qr/HgRXXXXVVVdd9d+olXIrgPmXmRedeSYb80w2BgwYMGDAXGHAgAHbmCts8yKReH7E8xIgQAASL4h4/gSI50+ABAIECPEs4jkIAPGfKV1utXmBzBXmRWeuMIC5zFxhgwFjMNiAAYN5JoMBzP9g4n6nzpwB4Ox99/E/he0HcT/x38IA5vmyjQEDGDCYBzJgsDFXGDBgrjDPZp4/8wKYf5EBDGfOXM999913K//Bag0kAAFC4jKJZ5F4LgJAAgnGcc2LQuK/jA22sbnMNgA22MYGG2ywuczmMhtssLnMBhts/kU2LxKb55FZb+Wqq6666qqr/vsQXHXVVVddddV/o1brreb5M1eY52WuMC+cucKAeV7mCgMGDGBzP/NvJwnxryP+ZeI5nb/7bo5ddwIQzyaePwEgntOFu88BcM011zyY/2A2lxkwz2T+7cwLZO5nMJgrDJgrbDBXGDBggwHbYK4w/yriAcR/CPG8zpw58yD+B5D4VzHPyfzHMoDBgHlOBgxgsMEGGwwYwMYYAAwYbJ6LwWD+ncwVBgwGbP5T2Pkg/p0k/tUknkXiRSbxr2Zzmc1lNtg8iw02l9k8B9s8m7F5FtvYvEA2z2LzPGywwQYb7HIrV1111VVXXfXfh+Cqq6666qqr/hsZMGDA/MvM82cbA+bZzPMyYMCAAdvYxja2sY0BA+YKAwYM2OZfIp4/8SKQuJ940Zy7+27+zcR/ujSYZzLPy/ybmBfCPIt5NpsrDLYBwFxhLjNgnslcZv6txPMQ/yri/xvzPMyLxAAGzBUGDBgwGPMczGUGMM/LPJt5kZhnMy+YebYzZ67n7Nmzt/IfLCK4n8RlknhuEi/QMKyRuEziP5zEcxEPJPEvssEGm2cytrG5zAYbbLDBBptnsXkONs9i8xxsni8bbLB5vjLLrVx11VVXXXXVfx+Cq6666qqrrvpvNPX9b/MABgyYK8wVBrB5INsAmOdknpMB25hnM4ANgAHzbAYMYGNeRBIvCvGCiX89SQjYuf4k4oURz0mAABBw7u6zAJw5c+bB/EdTeQYPZJ7FvHDmhTEYDBgw9zMGzDMZbLC5zIC5wgYDBsxzMlfYXPUvyOQ/hHkRmGczmGcyz8EGAwYMmCtsMIC5zAbMZbYxz4e5zADm2cxlNi+ceRYDmOeQNv8ZIngwiGcTL5x4bhG8QBL/ZhLPQeJfzQabZ7HBBhtssI1twNjmudlgc5nNZTbPw+b5snmhbLDBhkyuuuqqq6666r8TwVVXXXXVVVf9N2qA+dcx/zJzhXlOBgxgY8CAucKAeTZzhQHzbOYFE1eI5yReOPGcxPMSzyZeAPEAAgDxfAkQAEKI/yym3ooB84KZy8wV5pkMmMsMGDAG8wKZZ7N5DgYwgLG5woC5zOYKc5n5jyP+DcSzCEDifwpJ/Fcz/zIDxlxmwIC5zOYKgwGbZzHPZq4wYP6DGDCXmQcw2HDffffdyn84IYHEcxFXiPtJPF/DsAZA4lkkkMRzk3gA8WzihZF4FokXic2z2GADGBtsnsUGm8tsY4MNNs9k7mfzAtk8i80LZYPNs9hgz36Hq6666qqrrvrvQ3DVVVddddVV/408m/0OgAHzwpnnZV4w82zmAWwMmGczYMCAAQMGzLOZZzPPSYB40YhnknhRiSvEs4krzt99N8euOwGAEP864oGuueaaB/MfzFxhrjDPywDmOZlnsXm+zAMYbJ7NXGbAPJPBgM1ltjFgwDYANpjnYp6D+fcRVz03c4V5NvNczBXmOdhgwOYKc5kxBgzYBsA25tlsMIB5JoN5NoN5Lub5M/9qBq655nr+M0j8u5UCEs8i8Rwkni+JZ5H4N5H4V7F5FhtsLrPB5pnMA9lg8zxssPkX2bxANs/SGlddddVVV13134ngqquuuuqqq/4bJWCeP3OFeV7meRkwYJ7JxoC5woAB82wGDJhnM2Cby2zMs5nnJZ4/AQIk8dwECBAgnpN4TuI5ied0/u67eSAB4tkECBBCgBAPJOD83Wf5z2Ib85wM2DwvAwbMC2UeyGCeyWAwYMA8k8EGA2AAzPMyAAYA88KZ/9/Es4j/QcxlNs9mLrO5wmCDeT7MZTb/AvNA5vkwmGczz5/NfwpJD+Yy8W81jmv+o0m8UBJI/ItssMEGG2ywjQ022GBzmQ022GAbAJtnsbnMBptnsc39bJ7F5llsLrPB5jnYYBup3MpVV1111VVX/fchuOqqq6666qr/RirlVgPmCgMGbPP8mOfPPICNecEMGDBgwFxhwIBtAAyYKwxg8yKTeG7iX0+86I5dd4IHEiDE8yOe17m7z3LmzJkH8R9MqrdiLjMvOvNczAtkwFxhAPMsNphns8EGDAZsY5vnZv6jiRdEgPhfTLxw5j+ceSbzHIwxV9hgG2NsLrPBPJO5zAYDNpjnZgDMi87mOZjnz+ayiHor/wkieLAkACQh8SwSz0VIPBch8S+S+BdJXCbxLBLPJJ6TeEFssHkm82wGwAYbbLDBBpvnYfMfyuZZbLB5FhukeitXXXXVVVdd9d+H4Kqrrrrqqqv+GzWezTwvc4V5XuYK8/yZK2xjwIBtnh8DtrENgAEDBmwDYF4AiQcSL4AEABIviHjRCRBw/u67ATh2/UkAQLyoxBXifwpjnpN5/mwus3nBzLMYY5v7GcA8iwHM/zjnzt3N/0TiRWCel/l3M4DBPIB5NoN5XjZX2NhgwOYK8yzmmczzZcC8IOb5Mc/J5jIbbP5TSOL5kXiRtbZGAgkk/kUSL5DECyXxIjI2l9lgGxtsLrPNA9lggw022Fxmgw02l9nm+bF5JmPzLLZ5XuZ+NthgQyn1Vq666qqrrrrqvw/BVVddddVVV/03qrXe2kq51bzozIvOPC8DBgwYsI1tDBgwYJ6Tbf49xBXiRScAiecgASCeTfxLxPMj7idAnLv7LC/+4i/+2vxnMWCeh7nCPD/m2QzmhTJXGLDBgDHYYC6zwVxhwDyTwYANNpfZYMCADWD+q4n/qcT/BObZzAOYy2ywweYyAwbAvGAGwIB5TubZzH+Ms2fvu5X/YK/zOq/z3tdcc82DeSEknofEc5imNf9WEv+pbAADYHOZzWW2sY3NZTbYYHOZbR7I5oWyeZHYXHXVVVddddX/RARXXXXVVVdd9d+s1Xorz2SezTwn87xscz/bGDBgnpMB85wM2Oa5mStsY8BcYcCAbV4QcYV4wcTzISFeOPH8nb/7bgCOXXcS8S8RzyZAiCsEnDlz5sH8B1PUWw2YBzBXmH8V85zM8zLPxWDAgHkmg20wYLDBPJB5ocy/j3i+xP8e7/iO7/jZ/A9hwAA2GMwVNs/BNpjLbLCNARsM2GADBvMABsxzMleYfx3zPK699gb+o73jO77jZ507dxYAiWeReCYBIAGIB5JAEhL/CuLfQuIyiX8zm8tsY4MNNthgG9s8kM1lNs9k7meDbWyweb5snsXmedhggw02tDb7ba666qqrrrrqvxeVq6666qqrrvpvZsCAucKAAXGFAfFMNkgYEM9mQDwnc4V5JhtLGDCADRIGDBgwV5jnZP71xBXieYnnJMA8mwDzbAIMCBAvnAAQyGBeAAHmuV1zzTUPfp3XeZ335gHuu+++WwHOnj1763333Xcr/xbmWWxA/KsZEGAD4nkZMGAewIB4FoMBc4W5QrxozH88AeZFI/5neJ3XeZ33Pnv27K3Ag4dhpBT+fQyIZzEvmHkAc4V5FnOFbSRhc5nNZQZsns08f+ZZzBU2L5jBPJt5/gzY/Ltdc801DwY4c+bMgwGuueaaB/NMZ86cedDZs2dvBR7Mv9PR0YrNTfEvkfg3k3gWiWcSL4wNEthcZoPNZTbPwQbb2GBzmc1lNthcZvM8bJ7F5vmywQab5yuz3MpVV1111VVX/feictVVV1111VX/zaa+/23W69fmRWBAvOjMC2bAgAEDBgwYsI0lzBXiXyael3g28ZwECBBgHkACm/sJMM9LgAAB5+6+m2PXneB+AsSzCSGMAAkwL9CHf/iHfxcvxH333XcrwNmzZ2+97777bv2Hf/iH37nvvvtu/Yd/+Iff5gWQeL4MiOdlQIABAQbEs5lnMiAwYIwRADYYsMGAARsMYC6zQeIyAxhsY8CAzRXmv4d4DqfOnAHg7Nmzz+B/gDNnzjyY/0rmX2BAXGZAYIPEs9iAucwABjAAmGcxD2BeKPMvMC+c4b777ruVF+Caa6558Gu/9mu/F8CLv/iLv/aZM2cefM011zyYF+C+++679ZprrnkwwAd+4Ifx3d/9rTybAPGv0fdC4nlI/LtI/JvZIIENEtg8i81lNthg8wAGwObfzeaFsrnMBpurrrrqqquu+u9G5aqrrrrqqqv+mxkwYMA8JwMCDIjnZECAAfFs5nkZMGCusA0Sz49tkDBgG0kAGDD/+QSYF048gMT5u+/mCgHmfgIEmOckrhBw6vrTvPtnvD+PfNnH8Pu/8Ps8/i+eAMDp608DcOaG0wCcvv40AKevP/3g09ef5pprrnnwi73Yi/E6r/M67w1w33333Xr27Nlb//7v//63/+Ef/uF3/uEf/uG3eaYpy62V9mBzhQEwIP6tzBUGMCCeiwFxmXkWA7ZBwjZCAJhnMv8jnT5zhtd4ndfhb/7hH/if4LEv9hK3/umf/MGD77vvPv7NDAgMiH8ngwEM5jkZMFcYsAGDAQO2MWBeBOaFMy8CA2DDqdPX80DXXHPNg1/7tV/7vV78xV/8tV/sxV7stXk+zp07B8DZc+c4d+4cZ8+e5QEefO7cOU6fPs1rvsZr8CVf8rV8xVd8AZcuXeAFkXiBJC6TuEwCicskni+JZ5F4APGikHiR2Vxmgw22scEGG2ywwQYbbC6zwTY2l9m8QDbPYvNC2TyLDTa0Vm8thauuuuqqq67670Tlqquuuuqqq/6bTaU8w/z7GTAgwIABbCzxQOYKAwYMGDBgGyTMs5nnZV4wSWDz/Ih/HQHmRXPs+pMAIMAAAszzEmAA3vj93oo3ef+3AuD3f+H3+bbP/XZeFKevPw3Ao1/20QA85uUezau/2as/+Jprrnnwi73Yi702wH333Xfrb/3Wb333b//2b3/P8sI92DwHAwIwWCDAgHgRGBDPl3kmgwGbywzYPIsBAeb5MIAxz4f5b/EJn/EZ3Hfffbf+1m/91nfz3+wf/uEffvt1Xud13uuTPuWzHvzbv/2b/OLPfxX/vYwRGMwVNkhgc4WNATAA5pnMsxlsnsXmWcy/knle5vm65pprHvyO7/iOn/VO7/ROn80DnDt3jrPnzvH4xz+ec+fOce7cOR7/hCfwojh9+jRPeMIT+NRP+RQ+/uM/jT/+49/nl3/5Z3le4nkJgPV6xX8u8YJIIIHEv8gGMDaX2eYFMzbPweZZbLDB5l9k83zZPAe7PIOrrrrqqquu+u9F5aqrrrrqqqv+u9V6Kw9gwIBtJPHcDIgrDAgwIB7ABgnzTDaWMICNJQAMGDBgG0sYMGDAgHhO5grzIpDARrwAEtjcT4D51zt/993cfMOjES+AAPMsJ64/xTt9+nvz8Jd9FAC//wu/z7d97ncA4kVx7u7zAPz+L/wBAL//C3/At33ud3D6+tM8+mUfzWu8+avx6Jd99IPf6Z3e6bNf53Ve572/4xs/+8FPf/Jf8h/NvGDm2QxgLrONERgQz2IbG8xzMv9+AsyLTjx/Z8+evfWaa6558H333Xcr/wOcPn2G13iN1+AXf/6r+A9hQDwPAwbAgLifARvMczEgsI0knsVgg81lNhgwgHk2gzEA5l9mns08mwEwGDDPweay06ev58Ve7MVe+8Ve7MVeG+DcuXP83u/9Hr/3+7/PuXPneG4CzL/s3LlzAPzkT/0Ub/s2b8Obvdnb8Cqv8hr8wA98J0972pN4bhLPY7lcAyBxmcTzkHgWiReJxPMl8ULZYHOZzbPYYHOZzWW2scEGG2ywweYFsnkONs9i8yw2z2LzLDbPYoMNNkC5lauuuuqqq67670Xlqquuuuqqq/67lXKrAQPmeRkQYEBcYUC86MyzmSvMA9ggAWCusA0StkECwLxoxLOJ5ySePwHm2QSYf5l4TuKBBBgAEK//fm/Ky73pq3Di+lMAnLv7HN/2ud/BE/7yCfxHOHf3OX7/F36f3/+F3+f09ad59Td7Nd7mA976wdzPPJsBcYUB8RwMCLBBAOL5M1hgwFxhDAjMFeYy80wGC2wAA+KBDBjAXGGexfz7CDDPRYB5oc6dPceLvdiLvfbnfM7n/NZv/dZvffeP/uiPfg7/DT78wz/8u17ndV7nvQHOnTvHuXPn+O9gXjADBgTYBsAG8wDm2QzGmCvMi8j8q5jnZXPZT/3UT/F7v//7nDt3jn+JeNGcP3eOn/7pn+b8uXO8+mu8Bo959KP5iI/4RC5cOMev/urP8xd/8Ue8MOO4QuLfTeK5CACJBxAvKhskA+IKY4MNNthgg21ssMHmOdhgg81lNs+HsfkX2WBzmQ02D2CkeitXXXXVVVdd9d+LylVXXXXVVVf9N2uA+bczIK4wYMA8m3k2c4W5woBtLGHAXGGuMCAewOb5EVeIZxMgnj/xnASYF06AAHGFAHHF+bvv5sVe7lUBAAHmfg9+mUfw4Jd5OK/7fm/K/c7dfY7f+/nf56e//Wf4z3Lu7nP89Lf/DL//C38A15zjX2RAPCcD4lkMmGcyIJ6TwQbMZQYMGDCAjRHmuRkAA5jnYf61BDKYfxfxbN/2jd/Box/7KN7mHd76we/0Tu/02S/+4i/+2p/5mZ/5OvwX+tzP/dzferEXe7HXBvipn/ppfvqnf5rWBvrK82VA/AczYB7AYAFgwAYwIAyIBzDYYIwBA5jnzzyLeU42z8m8QOb5MFcYTp++nm/79m/n937/9wFAAgCb/yi/9/u/z+Of8ARe49VfnUc/5jE85tGP5p3f+b15ozd6C572tCfx9Kc/mb/6qz9BAhD3k0Di30Ti+ZL4dzIgAGwus3kmA2DzAOZ+NpfZ5nmZf4nNs9i8UDbYkAml1Fu56qqrrrrqqv9eVK666qqrrrrqv1mt9dYs5Va39mAA82wGxLMZkA0SBgRgg4QB2SABYJ7NgAFsLAFgABskAAwYMGAbSwAYwObfRUI2zyIhGwECzHMSYJ5JQjbm2cQLduy6k7z4m7wcD3qZh/Ogl3k4D3Tu7nP83s//Pj/97T/Df5Vzd58j15eYnwQD5jkZEM9ksEDmCvFsBsRlxoAAYwQABsSzmGcyz2SMwIDBNpbAIIHNZQYwYDD/lQQYxGXimcRl586e46d//An8/u/8AZ/yWZ/Etddc+9ov9mIv9tr/8A//8Nv8F/jwD//w73qxF3ux1z537hxf9EVfwrlz5wAB4j+Neb4MYJ6TAXOFAXOZBRgMmGcyYMBgwDybeT7Ms5grzL+OeSaDucK8EBL/ajYvyLlz5/ipn/5pTv/+7/OYRz+aV3+N1+Axj340L/dyr8LLvdyr8Hqv92bceuuTufXWp3Lp0gVuu+2pRIgXhcS/SAKJ5yFxmcRlEg8gXhAbJHM/G2ywucwGG2ywjc1lNpfZPJOxeRYbbJ6DDWCek3lRSFx11VVXXXXV/wRUrrrqqquuuup/gFbrrbT2YHOFAQPiCgPiX888f+YKAwbMs5lnMyCekwHzbySBzb+GAPMAEtg80Pm77wbgk37vy3lu5+4+x+///O/z+7/wB5y7+xwA4r+WDJgrDBgQz8GAAAyI52FAPJt5wQxgnsWAzWUGzDMZENhcYQBj7mfuZ/5l4l9HgPnXOXf2HF/0OV/CV3z9l/FO7/ROn/WZn/mZv81/gdd5ndd5b4Bv+7bv4Ny5c/x7GBAvnA0IwIAAMC+YeTYDBgRgrjCAwVxmzLMYbMAG85zMFQbzghnAPF/m2cxzMv+BJP4l586f5/f+4A/4vT/4A06fPs1rvNqr8ejHPIbHPPrRnDhxipd5mVcGYHf3Aj/+49/GH/3RU5FA4j+NxL+ZDTaX2WAbG2yeh81lNpfZYPMsNoABsHm+bJ7F5jnYBsAGG2yYptlvc9VVV1111VX//ahcddVVV1111f8ABsyLxoC4woAAA+L5M1cYMGCusA0SBgwYMICNJQzYxhIAAsy/jbhCvBAS2AgwLzoB5+++m2PXnQDg3N3n+P2f/30Afvrbf4b/CTx1/FsYEGBAAAbEsxkQYGMJA2BAANhgABsQNs9iwFwhwIB5NvN8mP84AszzEM9JPK9zZ88B8GIv9mKvzX+R++6779ZrrrnmwU94whN4ocy/zIB4kdi8YOYyc4V5TgYEGDBggwFzhQHMs5grbDBgXjjz/JlnMv+i06ev50lPPcd/h3PnzvFTP/Mz8DM/w+nTp3nMox/Nox/9aE6fPs1jHv1opmnNv5bEi0Ti38QGGySweRabZ7G5zAYbbLANgM3zZfM8bJ7F5vmywQaby2yeQ2a5lauuuuqqq67670flqquuuuqqq/4HaKXcap4/AwIMiH+ZAQPm2cxzMleY52QbSxgwz8k8gM0LIp6TeE7iBRNgAAlsBJjnT4C4Qlzx8W/9iZy7+xzPJv67nb7+NMcfcYpb7/x97meusEHi38xcYZ7NXGGek7nCBhswIMBg8SzmOdm8CASY/yz33XsXEkhc9v4f8n7c75prrnnwfffddyv/yX7rt37ru9/pnd7ps9/6rd+Kn/7pn+F/CpvnYHOFucwCDJhnM9iAwYB5AQzmCgOYF415kdkgQDx/5r/GuXPn+L3f/31+7/d/H4DTp0+T7S4kng8h8UIIAAlA/GewQQIbbABjgw1gbLDB5llsLrPBNvez+VexeZHYYHPVVVddddVV/xMQXHXVVVddddX/AFnKrQAGzL/MPJt5NvOcDGBzPwMGsDFXGDBgGwDzbAYMmCvMi0ZcIZ4/8R/r/N13A3D6+lP8T/LW7/9WfPlPfymPfNlHgQHzLOYFMy+E+ReZZ7ONAcwDGAO2ucyAucL8hxIviPiXiQc6feY07/8h78erv9ar81/tt3/7t78H4G3e5q15m7d5KySQQOLfxfzbmWcyVxjA2GCMAQwGDGCwwVxhzP3MFeb5Mc/D/LvZcObM9XzA+78/b/3Wb83zI0CAAAECBAgQIECAAAHiP8a5c+c4f/4cDySBBBL/qSReJDbPYoPNZTaAuZ8NNoCxeRab52HzHGyexeaFsrnMBpvLMuutXHXVVVddddV/PypXXXXVVVdd9T/AVMozzLMZMGAbSdzPgHj+DIgHsEHCXGEbJADMFeYK21jCXGHANkgYEGCuMM+feE6SwOZ+4jmJZxMgwDybAPNsAgSI50Pif4rT15/m1d/s1Xj1N381Tl9/GoAz11wPgHn+DAgwIAyIZzMgXhDzAAYMmMvMc7K5zDybAQEGbC6zuczmX0mA+TcTYEA8j7d++7fm1V/r1QA4d/Y8P/VjP8UHfOj781/l7rvv5hu/8Zv40A/9EN76rd+aV3/1V+f3f//3+ZEf+UG6wn8Ng3n+bJ4vcz9jnsk8iw0YMNg8m3mR2LzozBUGm2c5ffo0b/PWb81rvPqr83u///v89E//NP8e4l/HvCAjEi+QxLNI/LtJvFA2z8MGG2wus8EGG2ywweYym+dhc5kNNpfZ/Itsni+bZ7Ehszwjgquuuuqqq67670blqquuuuqqq/4nqPVWAPP8GRDPyYB40ZjnZa4wz2bAgAEDBmRjCfFsBszzIYHNi0qAAPOvI/5nOX39aV79zV6N0zec5tXf7NW434W7L/Dz3/6L/Pqv/Qz9jVxm/nUMiCuMMcIGxBUGxGXm2WwAA8IGc4XNFQYLZLB4JmOusHkWAxjMczH/ucSzvPprvRrnz13g/NlzfMe3fBfjOPJf7Xd+53d40pOexNu//dvz6q/+arz1W781D3nIzXzNV30Y/9UMgAFxPwPmChvEs9lcZhsDNmAAYx7ABsA8m7mfwbxA5tnMM5nnYZ4t0/zsz/0cj37Uo3jkIx/J27z1W/Mar/7qPOEJT+DxT3wiv//7v8+/yObfQ7wAmgCQ+A8lcZnECyTxAtk8FwNgG5vLbABzP5vLbLDBBpvLbJ6HzbPYPIvNs9g8i82z2GCDDVBu5aqrrrrqqqv++1G56qqrrrrqqv8JSrnVXGFeOAPiORkQVxgwYMA8JwMGzBUGsLGEucIANkgYMCDA/NuJK8TzIYHNAwkwzybAPC8BAi7cfTcAZ64/zRN5Iv/ZTl9/mke/7KM4df1pHv1yj+LRL/toHujC3Rf5pe/4Zf74F/6E5kbpZpgXwIB4HgbEC2aekw0IzAMYzLMZAIOFBTJYRgibBzDPZv4nuHDuAt/3Hd/PE/7hCUxtYuf4Dv8dzp49x7d/+3fwcz/387zf+70P/xoGxL+BeaHMAxhskMCAAHOFzXMwz2aezVxh/mOZ53Xmmuv5oa//Vv7kT/+URz3qUbzKK78yj3j4w3n1V391Xv3VX50PeL/349y5czzhCU/g8U98IufOneMJT3gCz0HiX8XmRSGeTeJFJvEsEi8SCUC8IDaX2SDxLDbYYPMsNpfZYBuby2wA86Ky+RfZYPN82SDVW7nqqquuuuqq/35Urrrqqquuuup/gAYYMM/LgAAD4plskDAgABskDMgGifuZK8wz2SBhwIC5woC5woB5NttIAsC8YOLfT4B5NgHmeYnndP7uuzl1/Wn+o5y+/jQAp68/xaNe9tEAPPrlHsWjX/bRPD9P+6un89S/fBq/8h2/SjpJGgACMGCuMFcYEC8yA+IBDBaXmfsZEOYKA5jLbC4zYK4wIMA2ADZgMP/zfP93/iBPfsKT+e8mcdn58+f5iq/4KobhEPHCGRD/CgbEv5+NJbDBXGYAg81l5jkZwDyTeZGZF8yAuczm2cyznD9/nj/5kz/hz/7szzh9+jSPfMQjeMVXeAUe9rCHcfr0aV791V+dV3/1Vwfg3LlznDt3jnPnzvH4Jz6Rc+fOAfCEJzyBF4nEiyI08i+RAMS/lcS/gbGFxHOwwTYANtg8i82z2DyLzQtgHsjmWWyeLxtssHkmU0q9lauuuuqqq67670flqquuuuqqq/4HqLXeKq4wYMCAAfG8DIjnZEA8f+bZDJhnsrGEeTbbWALANpYQD2DzryGek/jPce7uu3n1N381Hv1yj+bc3ee437m7zvEvOX3DaU5ffxqA09ef4vT1p3lhLt2zx+7dl3j6X93K0/7q6Tz1r55GutHcuEyAeZYSIgHMZebZDIhnMyD+/cyzmStsAwLANpIwIJ7NPCcDmBeZeDYJbJ5FgPn/woD4z2auMICNEQA2IJCNAQM2YDDmMgMGGzDYPC8D5lkMmOdknj/zwhm45prreW4XLlzgT//8z/nzv/xLTp06xamTJzl58iQv93Ivx0Mf/GBOnz7N6dOnAXj1V391HujcuXMAnDt3jnPnznG/s+fO8S85c/o0AKdPn+b06dN8/Me/ORL/bhLPIvFchMSzSPyLbJDABtvYYIMNNthgc5kNtgGwweYyG8BcYWywweY52Pyb2Fx11VVXXXXV/yRUrrrqqquuuup/iGE2++2yXr82L4QB8ZwMiOdkwDwv82wGzLMZsI0lAMyzGcDmRSGeTQAS2IhnE4AENg8kwDybAANIYPMvOX39aU5ffxp4FP8eh/cesXntBgf3HrF/zwFP+JWnsHntgtv++g6e/lfPYPJI80TzRPPEcxIAIMQzTT0A5pkMCMCAwGCBeAEMiOfLAAYE5pkMYEAYwDyLDTYgwFxmcZl5JoMB859HgPm3O3f2HP8TSID5lxkQ/yFswIABc4XBAAYbJC4zz4e5zNzPPF8G80wG8y+zucI8B/P8nTt3nuchcb+LFy9y6dIlbr3tNv76b/+WKIWTJ09y8uRJTpw4wUMe9CCOHzvGsZ0ddra3mc3nbG9tcfr0af497rrrLiT+VSReIAkk/p0MCAAw97PBNvezDYANNpfZPA+by2yeg81zMQA2z2RsnoPNZTbPMk2z3+aqq6666qqr/megctVVV1111VX/Q5gXzIB4TgbE8zIgrjBgABtLABgwgA0SBswV5goDBgwYEM9mwFxhnj8B4rlIYIMENgIECBAgwBLYvCACxLOJK8QVF+/e5ae+8Oc4df0JpCAonLjuOFIQFEJBEISCIJACIY7uXXJ47wqAw3uP2L/nkCRpnmiemDwyemTyiBBCPJu4n3g+xPNlwIB4wQzIYIEMiOdkQFxmrrDBAgw2z2IbEPczYK6QecHMZeZFJ/5vk/gfwTyTef4MCGywwRgDBmwuM1eYZzKY52UewGAA8y8yz58NmMvEv87upUvsHxxw+1138bgnPIHSdZRaqV3HiePHqbVy7NgxSilsb20REpsbGwDYxjbOJDPJTDKTbI3dS5fI1rhw8SJPe+oT+feQeKEk/tVssEECm8tsnsUGm8tsnsXmMhtssHkWmwcw97N5Fpvny+YyG8DYXGaDDXa5lauuuuqqq676n4HKVVddddVVV/0P0Uq51YAB82wGxAtnQIAB8QA2SJgrbIMEgAFzhQHbIGGeycYSAOZ5mX898aITYJ5NgLlCEtgAiCvO3303vU5y61/dym1/fQdFhUKlqlJUqeqo6qjqKKpUVQqFUEEISYAAI4QAIUCAEOI5CRAA4pkkZJ6LaA0wl5kXwIB4TgbEsxkQL5gB8TzMFTYYMIAB8ZwMNhjAgPk3E2AABJj/K2yeg8TzZ0D8u5gXjXk2A2BsgQDzbAbMs9iAweZZzBU2LyLzLzHPxVxmoNQeJCQBgMSLSgASAAIE7B8eUmtlOQzUWjl78SIRgSRsY5tsjdYabZqYxpFpmpjGkWkcmaaJNo7s71/ifhLPQeI5SPyXskHiWWyweRYbwNhgc5ltns3Y/JvYPAeb58uGTK666qqrrrrqfwqCq6666qqrrvofIku5lQcwYAAbAHOFeTbzojPPn7nCgLnCgLnCNv9e4l9HABL3E89LPKfzd9/Ns5n7mWczxhgwxhgA8/wJAPFsQoAAIR5IgLifEFcIAXPNeb7MczJgsAHzfBkwYJ7NPC9zhc1l5pkM2BiwAYMBA+bfRjyT+NcR/3riMon/OcR/OpsrzDOZ52EuM8/FYHOZARuMeQ4G85zMFeaZzPNn/lXMFRIvGonLJP4lAiTxojBgwDbPYgOwXh0igcSzSCDxbyT+JRL/KjbYPIsNNpfZYHOZzfNl8yw22DwHm2exeZHYYHNZZr2Vq6666qqrrvqfgeCqq6666qqr/oeYSnmG+bczz2bAgHleBgwYMFfYBsCAAdsYMGDAgLnC/PuI/zzHrzuOeSADxoAxz8uYZxPPSQgQQggBIEBcIUDi+RLPKQQ2z5e5wrxwBjDPYgDMAxkAA2CusLnMXGHuZwxgwDyTATDPZv4dxAOI/zjiv5Ik/jXMv5L5F5lnM8/JGAMYMJfZXGausAFzhbnMXGEAc4V5kZhnMy8C8xxsOH/uHM9NvHACkHgOEg8kXgQ297PNA5UQDyTxHCT+00m8QDbPYhsbbGODzTMZm8tssMEGm+dg8yw2z8Hmedg8DxtsnsUGuzyDq6666qqrrvqfgeCqq6666qqr/qeo9VYDBswLZ57NPCfznAyYK8wz2dzPXGGuMC+YucIANi+QxP3EFeLZxAsmnpP4lwk4f889PJBtzP3MsxnzwggkxDMJkAAQAgQIECBAAIgXLoceAMy/irnCPDcDgLnCYK4wz2YADOYyc4UN5goD5goDNoAxYP6bCe67727+u9nmP4X5F5kXzDyTeQ42l9k8kwEwz2bzAObZzL+HeSbzHAxgnuX06etB4lkkxBXimSSeg8RzE88k8SKzeW62ATAwDEdI/KtJPIvE8yUBCInnS+IFssHmMhtsnocNNthcZvNM5n42l9k8D5vny+ZZbJ7F5llsLrPBLrdy1VVXXXXVVf8zEFx11VVXXXXV/xSl3GqeP3OFeTbbPAcb80w2z808mwHzTDbmCgPYGDBgwIBtzPNnXjDxgokHkBAgnpN44QSIKwScuP44YB7I3M8YYwCMbczzEiAABBJCCEACQFwhXhABAEI8gHgW8y8zL4R5FnOFMc9isHkOBjBgwFxhsHkWm/824tnEFQLEA4n/LpIAkPgPY/71zPNhnsWAeU422GAAjA3mmQw2z2KDeTbzr2D+RebZbJ6DeE6SeL4knoPEs0gAIPHCmBcuCv8iiX8D8fxIPJN4fmyeg82z2GCDDbYBsLnM5llssHkWmxfI5l9kg83zsLlMqrdy1VVXXXXVVf8zEFx11VVXXXXV/xCNK8wVBgyYf5l50ZlnM2CuMFeYZ7PNAxkwV5h/PwECxItGgADxvM7ffTcAx687jjFXGDDGmPuZZzNgXhBxPyEACRACQEhcJgQIIZ6XAPDQA2CeyVxm/oOZZ7EBg7nCgDHmCgNgnoP5F5l/PfEvEIj/fcQzif8eBnOFzRUGY2yweTYD5gGMeSaDeTYDGDDPh3mhzL/McPrM9Zw7d44XiQSAuEIAEpIAEM+feF7mAWywuZ8BbKbxiH8NiX8TCSReJDbPw+Yym2exucwGMDbYPIvN87B5gWyexeb5ssHmWWwopd7KVVddddVVV/3PQOWqq6666qqr/oeotd7KM5nnZUCAAXGFAfH8GTBgns08mwFskDBX2AYJA+YKA+YKcYW5wgA2z494NnGFeNEJMC+YeP5e931fixPXHweEEJIQYv+eA6RABIE4vHfJ0b0rDu9dEYizf3eRBxIChBACQAhAgMUVQoh/iRAA5pkMFlcYEM9iQLwIDIjLbEBcZp6TMViY52RAgAHMMxlzhc0DmPuZ/3gCzItKIP7HGKc1NfhvYfMs5pkMCDAgLjPGgAHzTAabZzHPxTybeTZzhbnM/AvMFeY5GMBcJp4PCQDxbOI5iQeQECAACYCtzU0igq3NTbY2NthcLLDN5mKBM0mbrY0NnIltbGOb3d1dfukX7+bJT7oNCST+w0j8u9kggQ1gbABjgw1gbC6zeb5sA2Abm8tsnskA2Pyr2WCDba666qqrrrrqfxAqV1111VVXXfU/yDib/XZdr1+bfwMDAgwYEM9mwDZIGDBXGDBXmCsMGLCNJZ7FBokXhXjBxANIYPOiEGCePwHn774bgJd505figS7ds8ex63Z4URzeuwTgvr89z71/c479ew6582/uAYQQIISQQADmeQgAcYUQD2CegwFxhQFxPwPifgbEsxkwz8sGBAbMczEYMGAAGySuMCDMFeaZzHMw/zEEmBddCE6dPsn9hPifzID4T2aeL2OMEAAGBAbMs9hgnslgnsm8QAYMmBfMPJt5APN8nTp9PefPnweJ5yDxQALEC7ezvc0tN93E8Z0dbrz+eq6/5hr+rW656SZ+/mePeP7EA0k8FyHxLBL/bjbPYhtJ2Fxmc5nNZTbYXGbzLDbYYPMsNs/D5vmyeRab52DzPOz6DK666qqrrrrqfw4qV1111VVXXfU/iHk282y2kcT9DIgrDIgXwgaJZ7FB4oEMYGMJ85wMmOdi8yKRwOZfRUI25tkEWAKb5yauEFf8zLf/DH/4C3/I83Pq+lMAnL7+NPd71Ms+CoDT15/mUS/7KAAe8gY38ZA3uAmAg3uP2L/ngDv/+h5u/+s7ufWvbwMEiGcT4tnE8zH2/GsZEAAGBIABcYV54cwV5plssMBggQ0CLACDucJcZgADBpt/OwHmX0XiuQgB4jmdOXPmwffdd9+t/CebpunBfT/jP4wB8TxsQDx/5jLzfJjnYAADGAADGGyegwHMczKXmefPPIB5kZhns7nCPIsk/kUS9zt+/Dgv/RIvwYNuuYVbbrqJ53bu3DkAnvDEJ3Du3DkAzp8/z7lz57jfufPnuMw8j/vu/Xu6jn8nASBxmcSzSDxfEi8y2wDYXGbzLDaX2WCbZzM2L5TNs9jm+bG5zOYyG2ywwYbW+t/mqquuuuqqq/7noHLVVVddddVV/4O0Um41YK4wYEBcYUC8YAbEsxkwz2auMGDAgLnCgLnCgAED2CBxmQ0SL4x4TuIK8WySkM3zI8A8mwDz/IlnO3/33QCcv/s85+4+x/Nz7u5zADyRJ3K/P/iFP+CBTl9/mlPXn+L09ad51Ms+ild7s1dj69oNrn+pa3jkGz0UMH/3y4/nd7/rDxDieQkA8VwEBjDPy4D4FxkQBsRlBovLzP0MiCuMEQDm2cyzGZABcZnNczBgnsn8NxH/HxgQLwLzLAbAgDDPZK4QlxnAYK4wxgbznAyY52UA8x/DPCeJ5yDxPCQAjh8/zsu99EvzMi/90hw/doz7nTt3jnPnz/GEJzyBJz7xiTzhiU/gP4LE85D4N5F4IcSLwgYJbAMCwAYbbLDBBhvA2DyLDTbPYvNczAPZPA8bwNzP5gXK5Kqrrrrqqqv+J6Fy1VVXXXXVVf+DZCm38iIyIK4wIJ6TAXGFeTbzTDZIANgGCQAD2CBhwIB5NtkYMP8KEtgggc39BAgQIECAeQAJbJ4vCWwe6Pzdd/Pvde7uc5y7+xxP5In8wS/8Ad/5ed/J6etP86pv9qo8+mUfzaNe9lG82nu/Ii/+xo/mb37p7/it7/xdBCCBxbOJ5zD2ABgwL5wB8VwMiBfMgLjMBgwYMNhcZsBcYYMF4pkM5goD5oUz/w3E/yinT59ic/M0T33yMxAPYED8l7HBAAYMFggwz2SeyVxmrjCAMWADGAzmX2aezQDmeZjnYjBX2HD69PU87RnneFG83uu8Dq/3Oq/D/c6dO8fv/8Hv88QnPpEnPPEJ/EeLGHkgCSQuk3i+JP7T2CCBDRKAsXku5n42l9lg8yw2z8EGG2yweb5s/gUGwOYyGzLr0yO46qqrrrrqqv8pqFx11VVXXXXV/yBTKc8wYMA8JwMCDIgXwAYJA+I5medkwIC5woC5woC5woABcYV50YnnJP51BJjnJEC8YI962UfxB7/wB/xHOnf3OX7223+Wn+VnOX39ad7y/d+SV3uzV+Ml3+TFeck3eXG+88O/l/P3nEc8JwEgQBjAPCcDAgMyWCCeD4MFMiCeh3k2c4V5TjZgrjAgwGAA8bzMfwkB5tnE8xLwJm/5RtjJH/zuH/LfISJ4oEc96pF8wid8PL/1mz/PU5/8a7xIDIh/kXk28/yZ58+AAAMylxkwYIPNc7B5vswV5t/IPIu5wjwn81wkntuJkyd5p7d/ex76kIcA8IQnPoHv/M7v5Ny5cwAY8x/t/d73/fj2b/t4ACT+TST+3WyweaFssI0NNthgc5nNA5j72Vxm80LZPA+b52GDzWU22ADlGVx11VVXXXXV/xwEV1111VVXXfU/Sa23mhedbe5nrjDPZPPczBXmORkwV9jGXGGb+xkwz8lcYV448a8nnpd4NnGFAAECzt19N4962Ufxn+nc3ef4zs/7Tj7pbT6JySPHrzvG+37de3DiuuM8m0A8iwAn/yY2L5x5FgOYZzEPZAzYYMwV5jkYDIB5gcx/MQFw8vRJ3v393o03e+s3BUCI/y7v937vxyd8wsfzP4J5XgbMsxkwz2LABvNczIvGvEA2z8G8YGfOXM+58+d5IAHiihMnTvApn/AJPPQhD+HcuXN8yZd+CV/6pV/KuXPnuJ8QQgghhBBCCCGEEEII8aJ69Vd7dR5I4nlIPJOQ+DeReA4SL4S5nw022DwfxgYbwADYYIPNs9g8XzbPl82/yjCYq6666qqrrvofhOCqq6666qqr/icp5VYD5goDBsxzMs9mXjADBsyzmWczYJv7mWczVxiwzf0MmOdP/MvECyDxwojnJf77nLv7HF/2oV/GE//yiRy//jhv92lvDYB4ICGuiOwxz2QewDyLeTYD5nmZfxUD5nnZYK6wucw8J2P+7cRzEM+feADxgjzxcU8E4M3f5s14i7d9c/57iE/7tE/l1V/91QD4mZ/5Gf5F5jmY58+8AOb5MADmAQzmCnOFAXOFucIA5jmZF435D2WDAEkAiGcT8IZv8AYAPOGJT+ATP/kTeeKTnggCBAgQIEC8SIQQQgghhBBCCCGEOHP6DP/wD38HgMR/Col/E5vnYYMNNthg8yw22DwHm3+RzQtlgw022DyLDTbY0Pfz3+aqq6666qqr/ucguOqqq6666qr/oczzMi+ceTbznMxzMs9mwFxhwIAB84KZK8zzJ56TeDYB4gUTz0m8aM7ffTenrz/N6etPI4QQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIcT5u8/znZ/3nQAcv+44D32Zh4CEeC6Ch7/0I3kgm8vMczFgMC+YAQPm2cyzGTDmgcyzmWcy2Fxmc4XBBgOY/xDi30g8yx/83h/wSR/9SQCcPn2a09ec5r/aYx/7WB7zmMcA8KVf+qWcP38exH8e8wDmeRjMAxhsAGMAAwZzhQ0YDIDBYMCAAQPmmQw2YF4gm387Q9q8QBIPf+hDAfjSL/tS/kUCBAgQIECAAAECBIh/0Yu92EvwmMe8LP8VJJBA4kVic5kNNs9i8yw22DyLDTbPYvMsNthg83zZ/ItssHkWGzK56qqrrrrqqv9JCK666qqrrrrqfxDVeiuA+ZeZZzPPyTx/tgGwzfNjG/NMNgAGDBgw/3riBRMgnk2A+LcRcPr663niXz6R83ef57/K+bvP88S/fCInrj/OxXt2uZ94Tm/9vm8DBptnMc/LPC/zbAYwz2IAc4XBPJPBBgwYMNhgAwYD5jmZ52VeNOLfQryozp09x7mz5/iZn/gZXvU1X4X3/5D347577+O/0mu/9msC8DM/8zM88YlPBOCaa27gP525zIDN8zBgAMxzM4ABmweywQDmCvMsNv9q5l9gnsUGA2fOXM/5CxcAkMSzSJw8cYITJ07whCc+gf9wAgQIECBAgODc+XP8wR/8AW/1Vu/Pv0TieUj8p7B5FptnsY0NYGyweRYbbHM/m2cyALZ5IJtnsXkeNi+UDTaX1Vpv5aqrrrrqqqv+5yC46qqrrrrqqv9BXud1Xue9Wym38kzm2WwDYF4483zY3M9cYcCAAQPm2QwYMA9gA2DA/NuI50NCgHj+xAsn4NT11/PR3/ANPPJlX5af/faf5b/ao172UQCIBxIAIB7xso/g3N3nMVeYBzCXmX+ZeUEMgHleBox5NvNAxhgwV5jnZf7jiH+d02eu5zEv/rKcP3ceIc6fOw/AubPn+O/yxCc+EYBz585xzTXX86hHvyz/WuaFM8/JPBfzbOY52IDBXGHAgAHzLzDPxWAwYF4A8xzMM5nnYfMs11xzPY965CN5QS5evMjpU6f5r/b7f/j7oA2+6It+itOnr+ffSuJ5SPyr2TwPG2yexeZZbGPzfNlcZvMCmOdm8yw2z8HmeZw6dR0v/uIv/tpcddVVV1111f8cBFddddVVV131P8iLvdiLvdaZM2ceDGCuMGCeP/Ns5nkZMGDAPJt5JptnsTFgnpNtDBgwz2bA/CeRABDPRUKAAHHFw1/2Zfnsn/xJTlx/C3/wC3/AE//yifxX+oRv/AReEHHFU/7yKTzmpV+cfy3zQhjAAJjnYp6HAQMGDGAwz2TAgAHMczD/acQLd+r09bz3B386T3z8Ezl/9jwAj3rMowA4feY0/9X+4R8ez9mz53i1V3s1AJ74xCfypCc9jfd9v8/g1Knr+a9inj8D5goDGDDPZsDG5gpzhc1zM+Z+5tnMv415XtdeewPnzp/nOUgAXLh4kQsXL3L69Gne733ej/9KT3ziE3niE5/IqVPX89Ef/Y286Zu+P/8Sif90Nthg8yw22Fxmg82z2GCDDTbYBsDmBbJ5FpsXmQ022PCYx7wsr/3ar/3eXHXVVVddddX/HARXXXXVVVdd9T/Mo172ZTEvnPmXmedlnpMBAwbMs9nGgPkX2Dw/4jmJZxPPJPGvJZ7TG73f+/Fh3/ANAJy/+zzf9XnfxX+VU9ef4hO+8RN41Ms+ivsdv+44V4grxP3+7Of+ivf9kM/gP5R5NgMYAAMGzAtgMAYDBnOFAQwGbDDPZv4DiH+ZAMEjHv2yfP5X/iSnTt/Cd37LdwLwqMc8ild7zVfjv8vv/M7vAOZRj3oUb/VWb4UkfvZnf5bTp6/nYz/+G3nTN3t//nXMv5V5JhsADBgwz2QMGMDG5jkYMGDAgAGbfyfzPAyYKwxgAD7pk78RgPPnz/OCfNf3fDePe/zjeLVXezU+6RM+CSGEEEIIIYQQQgghhPiP8Ad/8Af8zM/+DKdOXc+bvun78yZv8v78W0gAAkDiWSQA8e9hm/vZYBsbbLB5kdhgmweyeR42z2KDDTaX2TwHG/7hH/7ht7nqqquuuuqq/zkIrrrqqquuuup/kH/4h3/4nVd/q7e6lWcyz8k8L/NsBrAxz2Tz3MwV5nkZMGCuMGDAgAHbGDAvGvF8SIh/mXgmief2+u/3fnzpH/4hb/j+7w/Az377z/JlH/pl/Fd51Ms+ii/5qS/hUS/7KM7ffZ5PeptP4gohxAOJKy7cfYFXf603483f9v35l5jnZV44c4XNczBgAwYMGMyzGQBjAIwBzHMyLzrxHMS/zslT1/MRn/gNfNQnfwMAP/uTP8v5s+d5y7d9Sz7h0z8BgMf/w+P57/I7v/M7nD59mld91VflLd/yLTl//jxf9mVfxqlT1/Nmb/7+vMmbvj/Pj/lXMs/JPA/zbOYBDJhnMVcYMM9krjDPwTwn81wM5tnMA5grzPNl4NSp63mf9/0MHv2Yl+VLvuzLeA4SD3TXnXfyLd/6LQA86lGP4ku++Et4y7d8S/4lQgghhBBCCCGEEEIIIcQLcu78OX7mZ3+Gn/nZnwHgTd7k/fnMz/wp3uiN3o8HkvgXSfyHs7nMBpvnwwDYYPMsNpfZYPMsNs+HsflXseG1XuvNueqqq6666qr/YSjHjx/nqquuuuqqq/6nODo62n2f93u/z37Uy74sf/QLv0AAAYgrJCFAXCFAgCQECBAgCQECkBAQEgIkISAkApCEAEmEREgEIIkAQkISAgRI4oHMFQYMGDBgwIABc4UBA+bZDBgwYJ7NgAED5orXed/35e0+/dN5sdd8TQDO3X2Ob/ikb+APf+EP+a/wqm/2qnzYl34Yb/DObwDA+bvP85Uf+pUkyRu88xvwl7/411y85yJgjDHGGGNue9LtnL37LO/0we/LK7/Gm7HY2OapT/pLJAAhAQIJJJCEBAgkkIQEEkgCgQQhIYEkQiCJkAhBIEIQEpKQhAQhIUASEghAPAcDBmywwUAabDBggw0GbDBgwIANBswVBgwYwGDAXGHABgNv8Obvx/t82Jdw8vT1AHzZ538Zt992Ox/+sR/Oq73mqwHwnd/yndz69Ft50IMfxGJjwZ/+2Z9+z9mzZ2/lP1lmPrjW7r0f97h/oJTCy73cy/GoRz2KV33VV+Wv//qv+cM//ENe7dVejUc88mV5pVd+MxaLbZ721L8CgQQSSCAJCSSQQBISSEICCSQhQUhIEBISRIiQCEGEiBASKERIhEASCBCI52SDDWmwwQYbbHCCDTbYYIMNNthggwEbDGAwYACDAZvLbDCAwQYbbHilV34zPubjvpGbb3kkv/d7v8ev/8ZvUCKIUpCEIpCEJCSxXq3Zu3SJP/rjP+JBtzyIW265hUc/6tG82qu9GsvlktvvuB0ECBAg/tWEEEIIIYQQQgghnvjEJ/KHf/CHbGxscOrUNbzkS746r/AKb8ZiscXTn/5XSEICCSSQRARIIAkJJBEBEkhCggghiQiIEBEQISJEhIiACBEBkgCQAMQD2WCbTMiETMiETMgEG2yTCTbYkAk22GCDDTbYXGaDzWU2l9lgGwAbbLAhE2zIhJMnr+cjP/JLebEXe1m+67u+62MODw93ueqqq6666qr/GSjHjx/nqquuuuqqq/6nODw83P3t3/7t73mvD/iAj37VN3szNra3efJf/iUCBEhCgAABAgQgIUBcIQlxhSQESEJASAgICQEhEUBISEKAJCQhQBICJHE/SZgrzBUGDBgwYMCAAQOWMGDAgAHzXCQMGDBg4Nh11/HK7/iOvM/Xfz0PedmXZbG9zfm7z/PrP/LrfOMnfSPn7z6PEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCHH6+tO8/ju/Pp/wjZ/Ay7zWy7CxvcGFuy/w2z/y23zrJ38rh/uHzLfnvME7vwFP/6tbuevJd2OMAWOMMWCSg4ND5ttzHv3Sj+URj35ZXunV3oy7bn8yF8/fgwQSSCCBJCSQQAJJSCABEhJIIEQIJCFBSIQgECERgpAIiRCEREhIIAnEZQLMFeYKGxKwwYANNhiwwQYDNhgwYIQNBswVBgwYwGDAXGHg9d70/XjH9/p0XvylXxOAc2fP8Vd/8Ve8/hu/Pm/1dm/F6TOnefITnsz3fNv38Jd/9pfcdMtNPOjBD2axucGf/umffs/Zs2dv5T9ZZj641u69AZ70pCfyh3/4h7zsy74sp0+f5tVe7dV41KMexQ//8A+zsbHBzTc/mIc/4mV5hVd8MxaLLZ72tL9CAgmEkEACCSQhgSQkkEASEoSEBCEhQYQIiRBEiJCIgAgREhJIQgKJZzPYXJYGG9KQCWmwwQYbbJMGG2ywwQYbDNhgAIMBAxgM2FxmgwEMNhw/cT3v9wFfwuu87jsB8Nu/8zt8+3d8B6UUohQiAkkogpAICUkcHB6QrbFer3nyU57Mer3m1KlTnD51mpd5mZfh1V7t1dhYbIDg/PnzACBAgAABAgQIECBAgHiRHS2P+Ku//iuWR0tuvvlmTp26loc97GV5uZd7MxaLbQAuXboHCSQhgQSSkEASEkggCQkihCQiIEJEQISIEBEiAiJEBEhC4jJJANjGBhtssMEGG2ywwQYbbLAhE2ywwQYbbLDBBpvLbLC5zOYyG2wus8EGG2yTCW/+5u/PR3zEl3LmzPV85md+5uvceuutf81VV1111VVX/c9B5aqrrrrqqqv+h7nvvvtu/ZEf+ZHPfqd3eqfPfrP3f39e+c3ejF/+9m/nz37hFwAwIK4wIK4wIJ7NgHhetkHCPJt5wczzsg2AeSEksJEENgDiRXPsuut48Td5E17yTd6E49dfD8D5u88D8Ae/8Af83Lf/HP+ZTl1/ild9s1fl1d7s1Th1/Snud/Hui/zpL/4pv/ztv0yjcb/zd58HQDybuJ8AEOLC3Rc4d/c5AO67775br7nm+gd/2Cd8I3/2h7/An//RL/K0J/8lz2ZAPIsNCAvEczLPZEBgwIAB87xsQIC5QmCuMM9mXkQCDOIFEWAe6PjJ63mZV3oTXvdN34/ndvrMaU6fOQ3AhfMX+JM/+BN+/qd+npaNBxL/dSSew7lz5/iyL/syXv3VX523eIu34PTp07zv+74v586d434nT17PG77R+/MKr/BmPO1pf8lf/vkv8vSn/xXPzQYJMCCexVxh/gXm2QwIMCAuM1eY52YAbDAPYMBg8y8zL9Dxk9fzhm/4vrzCK74ZAPfdd9+tP/zDP/zdv/+Hf/jZs9mM5yaeTYAAxGUXzl/g53/h5/mTP/kTHvWoR/HKr/TKPPzhD+et3vKtADh3/hxPfOIT+YM//AOe+MQn8iIRLzrDH/zhH/DEJz6RRz3qUbzaq70ap06d4vVe7/2A92N3927+6q9+kWc846+47ba/4oUTABIPIJ4fG2yQeCZj8zxssME2Nthggw022Fxm80LZPA+bZ7HB5jIbHvGIl+U93uMzOHXqeu67775bf/RHf/Rz/uEf/uG3ueqqq6666qr/WdCDHvQgrrrqqquuuup/omuuuebBn/M5n/Nb11xzzYMBLtx9N3/2C7/Ar37HdxCAAAEBSEJAAAIkEUAAIRFAACERQEgUICSKRAGKRJEoQJEoEgUoEgGERADi2QwYSMA2CTSbBBqQNgk0mwTSJoFmk0DaJLB17bVsX3cdN77My/Bq7/M+PND5u8/zB7/wB/zhL/wh5+8+z3+0U9ef4vT1p3nkyz6SR73so3jUyz6KB7p490X+4hf/gqf+5VN5yl89hSRJJ0nSaDQ3Rka+/Y+/nd/4zt/m177jN0g3kka60UiSRnNjYuKV3uwVeb/PeF8+5EM+5CGv/dqv/V6v8zqv897XXHPNgwEunr+bP/+jX+DpT/4rnv6UvyQkJAhAgpBQQEiEIAQhEQFFIgQlRAhKiBKiBJQQJUQJKBIlRASERAgknsUGA2mTCWnINC2h2WRCs2lpMqHZpCHTpKEZMk0abJOGNKTNzonreMlXeFNe+hXfhOMnr+eFuXj+In/6h3/KL/3sL5FOWmu0bEzTxCu92ivxGq/9mpw6fZKv+/qve51/+Id/+G3+k7XWXns2W/wWmK6r1FoppVBK4ZprruHRj340j3jEI3ilV3olXpiLF+/m6U/7K/76L3+BZzzjrwgJCSJECCIgQoQgQpSACFECSohSRAkoRZQQpUAJESFKQISQQAIJMBiwIdOkoaXJBi1NS2jNtISWJptpCZmmJaRNJmSaNGRC2mSCDZnGhjRkmuPHr+dlXvZNebmXf1NOnLye+/3Ij/zIZ//oj/7o5wzD8NqLzc3fms9mdF1HqZVSClEKJYKIICKIUjh37izjsKbvempXKaVQSiEiiAhOnz7NG7/RG/MKL/8KPNC58+c4f+48586f44lPfCJPfOITOXf+HP/RTp86zau+6qvyVm/5VjzQ7u7dPOMZf8Vtt/0Vf//3v0SEiIAIEQGliAgoRURAKaIUUQqUIkoRpUApIgIiRARIPIsNNmRCpsmE1kxrpjVozbRmWoPWTGuQaVqDTNMaZJpMyDQ2ZEKmsSETMo0NmWBDpsmE48ev5+Vf/k15pVd6M06evB6Af/iHf/jtH/mRH/mcf/iHf/htrrrqqquuuup/HvSgBz2Iq6666qqrrvqf6pprrnnwa7/2a7/X67zO67z3Nddc82CAC3ffzVP/8i95+l/9FRfvvpun/+VfEhICBAQgiQACkEQAAYREAUIigCJRJApQJApQJIpEAYpESBQgJAQIEGCuMJCAbRqQNgkk0GwSSJsGpE0Cm9dey3Uv/dJsXXstN77My3DTS780D3T+7vP8wS/8AU/6yyfxxL98Iv9ep64/BcDp60/zyJd9JACPetlH8aiXfRTPz+49u/z1L/41T/urp/HUv3wqSZJOkiRJ0kmSNBrNjYmJL/qpL+Jvfunv+fXv+A2aG0kjnTQaSaO5MTHxSm/2irzfZ7wvH/IhH/KQ++6779Zrrrnmwa/92q/9Xq/zOq/z3tdcc82DeaaL5+/m6U/+K57+lL/kr//kFwmBJEIQASERgpAIQYQogghRBCVECVECSogiUQJKiAgoEhEgCQESGMBgQ9qkIQ0tTSY0m0xoaZpNJjSbNGSaNDRDpknDzvFrebGXfxNuftjL8KCHvQz/kqc9+Wk87clP48//6M85f+48mUlm0tzIlkw5MU0Tr/Rqr8RrvPZrcur0Sb7u67/udf7hH/7ht/lP1lq+9mw2/y0wXVeptVJKoZRCKYVSChHB6dOneaVXeiUe/vCH87CHPYwXZvfi3dx661/xjFv/ir1L93D7M/6KCIgQIYgQJSBClIASohRRAkoRJUQpUEJEQAkRAZKQeBYDTrBNS8g0LSHTtAYtTUtozbQ0mdDSZEKmSUOmSUMmpE0m2LCzcx07x6/jwQ95GV7mZd+UEyeuB+C+++67FeC3fuu3vvtHf/RHP4dnmqbpteeLxW/N5nO6rqOUQimFUgoRQUQQpRAR3HfP3bRs9H1PrZVSCqUUIoKIICKICE6eOsmpU6d4+EMfzkMf+lAe+pCH8tzOnT/H+XPnOXf+HE984hMBOHf+HE984hP59zp96jSnTp/iUY98FG/1lm/Fc7t06R5uv/2vuOOOv2Z//27uvvtviIBSRCkQIUoRpUApohRRCpQiIiBCRIDEs9hgQ6bJhNZMa9CaaQ1aM62Z1qA1kwmtmUzTGmRCpsmETJMJNmSaTLAh09iQCceOXc/Lvdyb8LCHvRwPe9jLcL/77rvv1t/6rd/67h/90R/9HK666qqrrrrqfy70oAc9iKuuuuqqq676n+6aa6558Iu92Iu99uu8zuu814u92Iu9Ng9w8e67efpf/RVP/8u/ZPfuu3nGX/0VkghAQEgEEEBIBFAkAigSARSJIlGAIlEkClAkChASAYSEeE4GEkibBNImgQTm117LxrXXcs1LvRQGrnupl+L6l35pXhTn7z4PwLm7z3H+7vPc79zd53hBTl9/GoBT158C4PT1pzl1/SlekP179jFm7549bvvr23jGXz2Dp//V02luNBrpJEnSSaORTpIknSRJo9HcmJj4op/6Iv7ml/6eX/+O36C5kTTSSdJoNJobExMPe9mH8knf+Il8yId8yEPuu+++W3mma6655sFnzpx58Ou8zuu81+u8zuu8N89l98Ld3PqUv+IZT/kr9i7eze1P+2tCEBIhiBBFECGKoISIEEVQQ5QQJSBClICQCEGEEM9mwAbbpCETmk0mNJuWkGmaTSY0m81j17F17FpueMhLY8OND31pbn7oy/DCXLp4id0Luzz9KU/n6U9+Ok978tPITNJJZpJOMpPMpLmRLZlyYpomXunVXonXeO3X5NTpk3zd13/d6/zDP/zDb/OfrLV87dls/ltguq5Sa6WUQimFUgqlFCKCiCAikMSpU6d4+MMfzsMe9jBOnDjBiRMnOHHiBC/Ipd27Abj9tr/m9tv+iv29ezjcv4eD/XspASVEKaIElBCliBIQRZSACBEBISHxLDbYkDaZkGlaQmumJWSa1qClaWkyoaXJhEyThkyzfew6trev5+YHvTQ2POjBL8ODH/IyPNB9991362/91m9992//9m9/z3333Xcrz2W9Xr/35tbWd83mc7quo5RCKYVSChFBlEJEEBHcdefthIKu76i1UkqhlEJEEBFECUKBQkQEEUGU4OTJkzz0IQ/lxIkTPOTBD+HBtzyYF+bc+XPc7/y585w7f477nTt3jufn9OnT3O/0qdMAPOpRj+JFsbd3D/v793BwcA933/3XHB3dy9HRvSyX9xAhShGlQCkiAiKEBBJIYHNZJmSaTMg0rUFrpjVozbRmWoPWTGsmE1ozmZBpMiETMk0mZIJtdnaux4aXfuk3wYbXf/3347ndd999t/7oj/7o5/zWb/3Wd3PVVVddddVV//NRueqqq6666qr/Be67775b77vvvu/+rd/6re++5pprHvxiL/Zir/1iL/Zir/U6r/M6733i+us5cf31vOybvin32737bnbvuYdLd9/NpXvuYe/uu9m75x4ksX/33Rzcey8A5l9mns1csXHttQAsrr0WA4vrrmNxzTUYOP1SL8XGtdeyed11vCAX7r7Ahbsv8JS/fApP+6uncfL6kzz8ZR/OyetPcuK6E5y4/gSnrj8FwKnrT/GvcXDvAVvXbvFAB/ceAHBwzwF3/83dGHPnX9/J7X99O43G5InmRnPjfkI8kBBCCHE/Ie537u5znLjuOM8mEGAAAUIIEABnzpx58H333Xcrz3Tffffdet999936D//wD7/9oz/6o58D8Nqv/drv9eIv/uKvfebMmQdfc831D37pV7yel37FN+V+ly7czaWL97B38R4kuPPpf00AB5fu4fDSvRxdugckDBhjxGUGxGU2IBDP38axa0mbxfZ1LI5dy8bOtdhw7YNeCoDrH/zSvDD7u/vs7e6xt7vHbU+9jXTyjKc+gwvnL5CZtGxkJi+QAPPfrrXpwfwrXbx4kb/4i7/gr/7qr5BERHDy5Eke+tCHIomHPOQhHD9+nGPHjnHs2DGOHb8egGPHr+fFX/JNuN/epXuQ4K47/hoJ7r3rbwjB0eG9RMDq6F5WR/cCgMECDBKYBzCXGcA8i4Gt7WtJw8bWtWTC9Te9FDbs7FzH9rHruPmWl+EFue+++279rd/6re/+h3/4h9/5h3/4h9/mhSilgIS4Qrww4gUSVwgkgQBx2e7uLn/1N39FRPC7f/C7lFI4ceIEJ06c4MTxE9xy8y0c2z6GJG68/kZOnzrN/U6fOs2jeBT/HruXdrm4e5GnP/3p2OapT3sqx48d5/jx4zzsIQ/jYQ97GDs71wHwqEe9Mfc7OLgHSRwe3sPR0T0sl/eyXN7LcnkvEiyX97Jc3guAzXOwwQYbwNhg83zt7FyHbba3r2d7+zp2dq7Dhgc96GV48INfhufnvvvuu/Xs2bO3/v3f//1v/+iP/ujncNVVV1111VX/u1C56qqrrrrqqv9l7rvvvlvvu+++7/6t3/qt7/76r//697nmmmse/GIv9mKv/WIv9mKvdc011zz4xV7sxV77+PXXc/z66+FlXoYXZu+eexDPdnDPPQgQIAmArWuvBQmAjWuv5V/j3N3nOHf3OZ70l09CiCf/5ZN56l8+lVAQBEEgRCj4y1/8S0KBEEFw8vqTBMHJG05y4voTBEEQHL/+OEIEgSSCQAhJ3Ps397J93TaH9x4ixOG9hxzcewCAbYxJkuZGOkGAQYjnIMC8QELcTwghAE5cfxwA8UDiX+u+++67FeBHf/RHP+dHf/RHP+eaa655MMCLvdiLvfaLvdiLvdY111zz4Bd7sRd77WMnr+fYyeu534u93Jvw/Bzs3gMCccXRpXuReBYJFjvXcb+NnWv51zi4dADAU/7+KWC4+7a7uesZd5GZtGy0bLRstNZo2WjZeA4CzAsnEOK5XXPNNQ/+h3/4B/6rRIh/j93dXf76r/+aiODv//7viQhKKZRSOHHiBMePH+f48ePceOON7OzscP3117Nz7DoAHvXYNwbgkY95Y16Qo4N7QTzL8uAezLPZsLF1LZcZNrev40V133333QrwW7/1W98N8A//8A+/8w//8A+/zb+CJAQgAYCEJC6TeB4CIQCEuEy8aMSzXNq7xMHhAXfefSePf/LjKbVQSqHUwvGd40QNdrZ2iAi2Nre43+bGJrZxGts4TTpxmt1Lu+xe2iVbki15+jOeTrYkW5ItyUwyk8wkM8mWOM3x48c5fvw4J46f4OEPezgnT57k5KmTnD51HQCbm9cCL8ULc3R0Lw9km8PD+7CNbQBs2Nq6DgAbdnau40V133333fpbv/Vb3w3wD//wD7/zD//wD7/NVVddddVVV/3vReWqq6666qqr/pe77777br3vvvu++7d+67e+m2e65pprHnzmzJkHX3PNNQ9+sRd7sdcCuOaaax4McObMmQdfc801DwbYue467rvvvluvueaaBwNsX3cdL4r77rvvVp7pH/7hH34b4L777rsV4B/+4R9+R3v6rKf80VNeu1IpFEJBEARBENzPGCHuZxtJAOzes0sQ7N27x+1/dTuhoKgQBEWFokJRoVAoKoSCQuHev72XIACQxPMjBIAQQgAIIQSAEABC/OsJJGSeRYC44vzd5/jXuu+++24FuO+++777t37rt76bZ7rmmmsefObMmQdff+b637r2umu55pprOHPmDAhOnznNqdOnANg6fh0Xzl/g5KmTAGweu44X1d7FPRDs7+5zcOmAg0sHSOJw75DDvUPuvf1eJAFgG9vY5j/b6TOnsM1/lYgAwOY/zd7eHoeHh9xzzz086UlPopRCRLCzs0NEcN111wFw7bXXArC5uQnA1tYW29vbAGxsXcsDbWxey4viwoUL3O9JT3oStjl79iz33nsvH/ABH8Dbvd3bif8AhgfxTOKFy2yU6EAgCcSLTAghhHgO4tnEZftH+5RSOFoeERHonEBc5jTpJFvSWiNb0qZGa402NdrUaK3RWgPzLMY8iwHzLBcuXODcuXO0bPzhH/0hrTWmaeLYsWM87KEP49577n2da6655sFnzpx50DXXXPPga6655sEAZ86cefA111zzYICNjWt5bpub1/GiuO+++24FOHv27K333Xffrffdd9+tAP/wD//wO2fPnr31vvvuu5Wrrrrqqquu+r+FylVXXXXVVVf9H3Tffffdet999936D//wD/zWb/3Wd/MCXHPNNQ/mAc6cOfNgnsvZs2dv5Znuu+++W3kReM+vtWDx2rwAxhgjxP2MEeL5MQbAmBfGGCGMEeKFEmAuE+J+QrwohABAgOH83ee54YYbeeGEEP9R7rvvvlvvu+++W5/sJ1NrpUShRCEiKKUQERQVTp85TShQCEmcOn2KUCAJSYSCS7uXKCqEgr1L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570B/uQPfoGv+7IP4ylP/CsECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA8UACBAgQIECAAAECBAgQIECAAAECBAgQIP61lkcHPOWJf8mf/OEvcNMtj+Smmx/GK7zqq7JaLrnjtttIG9u8ymu8Bk+/9dafufXWW/+a/yZ2vnTfl7eOCCLEox/9WD7+4z8NgCc/+S/52q/9UP7u736X/woSSCCBBBJIIIEEEkgggcR/iuXygCc/+S/54z/+BZbLA176pV/j+Iu/+Iu/9ou/+Iu/9j/8wz/8zuHh4S7/ToeHh7v/8A//8Dv/8A//8DsAD3nIQ156sVgQCn7lV3+BUgpRgoggipCEQkiBJCQhCUmEhEJIQhJv+1bvxiMf8UiWywO+9ds+iT/501/gfzMJJJBAAgkkkEDiOSyXBzz5yX/JH/3xL7BcHvDIR7wsD3nIQ176FV/xFd96a2vrxD/8wz/8NlddddVVV131vx960IMexFVXXXXVVVf9b3bNNdc8+HM+53N+65prrnkwwC99+7fzS9/xHfx/d/L66/nsn/xJ9u65yC9+8Y/zjL96Ks1JkjQnaZMkaZMkSZI2SdKcNJJG403e7y15i/d/WwDuu+++W6+55poHA9x333238kz/8A//8NsA//AP//A79913363/8A//8Nu8iK655poHf/iHf/h3vdiLvdhrXzh3N9//nZ/PU574l/xfZl64k6ev55Ve9U1507d6fy6cP8/3f/u38/jHP542TXzMp3wKv/Fbv/U+v/Vbv/Xd/DfJnN57c7P7rlorj33si/OJn/jpAPzJn/wC3//9n8f/JTb/aidPXs9HfdQ3curU9fzDP/zDb3/mZ37m6/CvcM011zz4xV7sxV77zJkzD3rxF3/x1wH8Yi/2Yq/N83HvvffwMR/3YXS1Umqh1kIpQURQShARKESECAUKESEUIiJ46EMewfu990cA8DVf+6E8+Sl/yQtjHsD8n3PyxPW88iu/GW/2pu8PwH333XfrZ33WZ73OfffddytXXXXVVVdd9b8Xlauuuuqqq676X+x1Xud13vvDP/zDvwvgwt138/2f//k85S//kqvgwt138wOf//m826d/Oq/23q/HM/7qqbxwAsz9xHN63F8+AeDBagHANddf82Ce6ZprrnlvgNd5ndd5b4D77rvv1rNnz97693//97/9D//wD7/zD//w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wN13383/V9dffz3XX389AKdPd0jimms2+bZvewve7d1eFoDf+q3f+u7P/MzPfB3+E509e/YZXMXLPupl+e9233333Qpw3cnr+E8nQIAAAQIECBAg/k+77777bv3RH/3Rz/mRH/mRzwZ4v9d6Y37sIz6Nl3nQw0Bw19OfBsDLPvxledlHvCz/5QQIECBA/Le4+/zdXHXVVVddddVVLxTBVVddddVVV131fF1zzTUPBrj77rv5/+r93u/9eKAP/MCH8Q3f8Fpcc80m9913362f+Zmf+To/+qM/+jn8F3nZR78sCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg/se5/vT1/Hc7e/bsrXffdzfXn7yel334y/LfToAAAQIECBAg/tNcf+p6AM6ePfsM/pP96I/+6Od8yId8yEPuu+++W68/dpKve9cP5lPf5B3xsOLbfvzbAHjTV3xT/kcQIECAAPGf7u4LdwNwzTXXPJirrrrqqquuuur5Ibjqqquuuuqqq56v++6771aA66+/nv+Prr/+et7szd4MgO/8zu/k1KnKa7zGaQB+5Ed+5LM/5EM+5CH/8A//8Nv8F7jvvvtuBbj+1PX8lxIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAA8QK92au9Gfe75pprHsx/k/vuu+/WC2cv/DbAyzziZfgfT4AAAQIECBAg/s1e9hEvC8A//MM//Db/Be67775bP+uzPut1fuRHfuSzAd7kxV+O93mV1+MXfucXAHjZh78sL/vwl+V/JAECBAgQ/6GuP3k9APfdd9+tXHXVVVddddVVzw/BVVddddVVV1111fPx6Z/+6QD80i/9En/9138NwI/8yI989tu93dvpR3/0Rz+H/0Jnz569FeD609fzso96Wf5PEyBAgAABgvd7y/cD4K+e/Ff8d/uuH/6uW//ycX/Jm73Sm/G/ngABAgQIECBeqOtPXs9/tfvuu+/WH/3RH/2cD/7gD37wj/zIj3z23Wfv5u5zd/MLv/sLXH/yet7vTd6P/zUECBAgQPybXX/qegDuu+++W7nqqquuuuqqq54fgquuuuqqq6666vn6h3/4h98GeJmXeRn+v3m/93s/XvZlXxaAL/qiL+J+v/3bv/09/De47777bv37v//73wZ4mUe9DP/fvNmrvhnXn76ev3rKX/FXT/kr/rv9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2/fdd9+tXHXVVVddddVV/1nQgx70IK666qqrrrrqqv98Z86cedA111zzkGuuuebBr/M6r/NeL/ZiL/baPB/33HMPtrnnnnu4nyQArrvuOq677jpekPvuu+/Ws2fP3vr3f//3v/3bv/3b33PffffdylXP45prrnnwi73Yi73Wi73Yi73267zO67w3L8A9F+/hfvdeuhcEkpDEtceu5Zqda3hB/uEf/uG3//7v//63AX70R3/0c7jq+brmmmse/GIv9mKv/WIv9mKv9Tqv8zrvzQtw39F9IJDEueEcUQIVESU4VU9xQid4Qe67775bf+u3fuu7AX70R3/0c7jq+brmmmse/GIv9mKv/WIv9mKv9Tqv8zrvzTPdtX8XN2zfwP0u6iJCAFyKS9jGNrY57uOc1ElekPvuu+/W3/qt3/ruf/iHf/idf/iHf/htrrrqqquuuuqq/wroQQ96EFddddVVV1111X+9a6655sEv9mIv9lov9mIv9trXXHPNgwFe7MVe7LV5Ie67775br7nmmgffd999twKcPXv21r//+7//bYB/+Id/+J1/+Id/+G2u+le75pprHvxiL/Zir/1iL/Zir3XNNdc8GODFXuzFXpsX0X333XfrP/zDP/zOfffd93SA3/7t3/6e++6771au+le75pprHvxiL/Zir/1iL/Zir3XNNdc8GODFXuzFXpsX0X333Xfr2bNnb/37v//73wb40R/90c/hqn+Ta6655sEv9mIv9tov9mIv9lrXXHPNgwHOnDnz4GuuuebBAPfdd9+t11xzzYN5Ae67775bz549e+vf//3f//bZs2dv/a3f+q3v4aqrrrrqqquu+u+AHvSgB3HVVVddddVVV/3PcebMmQdJ0pkzZx7MsxnQ2bNnb73vvvtu5ar/Etdcc82DbVuSzpw582CezWfPnn3GfffddytX/Ze45pprHgxg29dcc81DeID77rvv6WfPnn0GV/2XuOaaax7MM505c+ZBgHims2fP3nrffffdylVXXXXVVVdd9T8JetCDHsRVV1111VVXXXXVVVddddVVV1111VVXXfV/EpWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/in8EuGh3x3JPbJwAAAAASUVORK5CYII=) +![Rendered example of appearance::hexString 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAL7vUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVf9r3LNNdc8GODMmTMPBrjmmmsefObMmQfxTNdcc82DeaZrrrnmwbwI7rvvvlt5gPvuu+/Ws2fPPgPgvvvuuxXg7Nmzt95333238n/YNddc8+AzZ848GOCaa6558JkzZx7EM11zzTUP5pmuueaaB/MiuO+++27lAe67775bz549+wyA++6771aAs2fP3nrffffdyv9h11xzzYMBzpw58+BrrrnmwWfOnHkQz3TNNdc8mGe65pprHsyL4L777ruVB7jvvvtuPXv27DMA7rvvvlsBzp49e+t99913K/+HXXPNNQ8GOHPmzIOvueaaB585c+ZBPNM111zzYJ7pmmuueTAvgvvuu+/W++6779ZrrrnmwQD33XffrWfPnn0GwH333XcrwNmzZ2+97777buWqq6666qqrrvrfBD3oQQ/iqquuuuqqq676n+Oaa655MMCLvdiLvfaZM2cedM011zz4mmuuefCZM2cefM011zyYF+Lc3ee437m7z/GvlSVvveaaax58+vrTvCD/8A//8NsA9913363/8A//8Dv33Xffrf/wD//w2/wvcM011zz4zJkzD36xF3ux1wJ48Rd/8dcGeLEXe7HX5oU4d/Yc9zt731n+tc5ccwaA02dO84Lcd999t549e/bW++6771aA3/qt3/oegH/4h3/4bf4XuOaaax78Yi/2Yq995syZB11zzTUPvuaaax78Yi/2Yq/NC3Hu7Dnud/bcWf41zpw+w/1OnznNc7vvvvtuveaaax5833333Qpw9uzZW++7775b/+Ef/uF37rvvvlvPnj1763333Xcr/wtcc801D37t137t9wJ48Rd/8dc+c+bMg6+55poH8wKcO3eO+509e5Z/jTNnznD27FnOnDnD6dOneUHuu+++WwHOnj1763333Xfrfffdd+vZs2efcd999936D//wD7/NVVddddVVV131Pwl60IMexFVXXXXVVVdd9d/jmmuuefCZM2ce/GIv9mKv9eIv/uKv/WIv9mKvfd999916zTXXPJhnOnf3Oc7dfY5zd5/j7F1nATh39znO3X2Oc3efA+Dc3ef4z3D6+tMAnL7+NKevPw3AY17uMZy+/jSnrz/N6etPA/AP//APv33mzJkH/+iP/ujn/MM//MNv33fffbfyP8A111zz4Bd7sRd77dd5ndd5rxd7sRd7bR7g3NlzADzhH57A2fvOAnDu7DnOnT3HufvOAXDu7Dn+M5w+cxqA09ec5vSZ0wA85sUeA8DpM6d59Is9mvvdd999t549e/bW3/qt3/qe++6779Z/+Id/+G3+B7jmmmse/Nqv/drv9eIv/uKv/WIv9mKvzQOcO3uOs+fO8oTHPwGAc2fPcfbcWQDOnT3HuXPn+M9w+vRpAE6fOc2Z02cAePRjHg3A6TOnecxjHsMD3XfffbeePXv21r//+7//7X/4h3/4nX/4h3/4bf4HuOaaax78Yi/2Yq/9Oq/zOu915syZB19zzTUPBjh37hxnz57l3LlznD17lnPnznHu3DkAzp49y7lz5/jPcPr0aQDOnDnD6dOnATh9+jRnzpzh9OnTnDlzhtOnT/NA9913362/9Vu/9d0A//AP//A7//AP//DbXHXVVVddddVV/13Qgx70IK666qqrrrrqqv8611xzzYNf7MVe7LVf53Ve571e7MVe7LXvu+++W6+55poHn7v7HL/3878HwBP+8gmcu/sc5+4+x/9kp68/zenrT/Pol300j3m5x/Dol3009913362/9Vu/9d0/+qM/+jn8N7jmmmse/GIv9mKv/eEf/uHfxTOdO3uO3/vt3wPgCf/wBJ7wuCfwLzL/rU6fOc2jX+zR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H/7hH37nH/7hH36bfwVJCEACAAlJXCbxPARCAAhxmXjRiGe5tHeJg8MD7rz7Th7/5MdTaqGUQqmF4zvHiRrsbO0QEWxtbnG/zY1NbOM0tnGadOI0u5d22b20S7YkW/L0ZzydbEm2JFuSmWQmmUlmki1xmuPHj3P8+HFOHD/Bwx/2cE6ePMnJUyc5feo6ADY3rwVeihfm6OheHsg2h4f3YRvbANiwtXUdADbs7FzHi+q+++679bd+67e+G+Af/uEffucf/uEffpurrrrqqquu+t+LylVXXXXVVVf9L3fffffdet999333b/3Wb303z3TNNdc8+MyZMw++5pprHvxiL/ZirwVwzTXXPBjgzJkzD77mmmseDLBz3XXcd999t15zzTUPBti+7jpeFPfdd9+tPNM//MM//DbAfffddyvAP/zDP/yO9vRZT/mjp7x2pVIohIIgCIIguJ8xQtzPNpIA2L1nlyDYu3eP2//qdkJBUSEIigpFhaJCoVBUCAWFwr1/ey9BACCJ50cIACGEABBCCAAhAIT41xNIyDyLAHHF+bvP8a9133333Qpw3333ffdv/dZvfTfPdM011zz4zJkzD77+zPW/de1113LNNddw5swZEJw+c5pTp08BsHX8Oi6cv8DJUycB2Dx2HS+qvYt7INjf3efg0gEHlw6QxOHeIYd7h9x7+71IAsA2trHNf7bTZ05hm/8qEQGAzX+avb09Dg8Pueeee3jSk55EKYWIYGdnh4jguuuuA+Daa68FYHNzE4CtrS22t7cB2Ni6lgfa2LyWF8WFCxe435Oe9CRsc/bsWe69914+4AM+gLd7u7cT/wEMD+KZxAuX2SjRgUASiBeZEEII8RzEs4nL9o/2KaVwtDwiItA5gbjMadJJtqS1RrakTY3WGm1qtKnRWqO1BuZZjHkWA+ZZLly4wLlz52jZ+MM/+kNaa0zTxLFjx3jYQx/Gvffc+zrXXHPNg8+cOfOga6655sHXXHPNgwHOnDnz4GuuuebBABsb1/LcNjev40Vx33333Qpw9uzZW++7775b77vvvlsB/uEf/uF3zp49e+t99913K1ddddVVV131fwuVq6666qqrrvo/6L777rv1vvvuu/Uf/uEf+K3f+q3v5gW45pprHswDnDlz5sE8l7Nnz97KM91333238iLwnl9rweK1eQGMMUaI+xkjxPNjDIAx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9uzZZ/zmb/7md/3oj/7o53DVVVddddVVV/1HQQ960IO46qqrrrrqqqv+/a655poHf/iHf/h3vdiLvdhrA9x99938wi/8At/xHd/B/2TXX389b/qmb8r7v//7A7C3F/zwD8+5++41BweXODy8yNHReVarCwzDLuO4zzQd0dqKzDWZI5kTdsNu2A278dIv/RC+/us/nA/5kA95yH333Xcr/wVe7MVe7LU/93M/97d4pm//mW/nO37mO/if7rpT1/GNn/SNXH/6egC+7w//kO/+3d/F40i2hlvDreFM3BqeJj7tnd6J/Wc847N/9Ed/9HP4LzI7cey7nnrp/HtTC0RACCJQ36FaoFbe783eijd7xVfj+pOnuPv83Xz+938+f/nkv+R/sutPXs+bvvKb8v5v+v4A3LN7gfN33v3bn/mZn/k6/Bd587d7m6d/80//6IMpBS1mMOtRV6ErqBSoBZWACFQCSqASUAKVQCVQDa4/eYr3fvnX4Y0e8VIAfPsvfjvf8Uvfwb+GMf+Vrj95PS/7iJfl/d/0/bn+5PUA3Hfffbd+1md91uvcd999t3LVVVddddVVV/17UY4fP85VV1111VVXXfXv847v+I6f9Umf9Ek/fc011zz47rvv5kd+5Ef45E/+ZP7qr/6K/+kODg74q7/6K37hF36B13qt1+L06S0e/vDGE58o9vdHxnHNNK1obUXmmswRe8Ru2A07sQ0kYK4w1113nDd901fkT//0T3/m7Nmzt/Kf7MM//MO/633f932/GuAvn/CXfNiXfhi/+1e/y/8GB8sDfvevfpf9o31e9tEvy0vdfDNv/BIvwR886UnsHx2BDTbYYIPNa77YizFcuvTb//AP//A7/Bd5qZd/ua9+4u3POE4ESCCBhErhhjPX8CUf9JG82Su9GtuLDb79F7+dT/62T+buC3fzP93B8oC/evJf8Yt//Is84qZH8IgbH8o111zzYIB/+Id/+B3+k73O67zOe9/4oFve+3f/4k+hBOoqqgVKQAQqAREoBCEUAgmFIIRCqIjrj5/kk1/nbXj1Bz+auy/czSd/2yfzi3/yi/xrCSGEEEIIIcR/loPlAU++88n87t/+LgfLA64/dT3Xnb7u+Cu+4iu+9ebm5vF/+Id/+B2uuuqqq6666qp/D4Krrrrqqquuuurf7Jprrnnw537u5/7WO73TO302wLd/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AsS/2fWnrgfgvvvuu5Wrrrrqqquuuur5Ibjqqquuuuqqq56vf/iHf/htgJd5mZfh/5v3e7/342Vf9mUB+KIv+iLu99u//dvfw3+D++6779a///u//22Al3nUy/D/zZu96ptx/enr+aun/BV/9ZS/4r/bX/z9X2DM9Sev5/3e5P34P0uAAAECBAje7JXfjPvdd999t/Jf7OzZs8/40R/90c/5wR/9we8G+Laf/DbuPnc3L/vwl+X93vj9+F9LgAAB4qqrrrrqqquu+o9DcNVVV1111VVXPV//8A//8NsAL/uyL8v/Jy/7si/L+7//+wPwUR/1UQDcfffdAJw5c+bB/Df50R/90c+++767ebNXfTP+P7n+1PV8+vt+OgDf9Svfxf8U3/7j3w7Am73Sm3H9yev5/+T93uT9ALjr3F38txKX3X3+bj732z6Xu8/dzZu90pvxso94Wf5PECBAgADxfL3pK74p9913363/8A//8NtcddVVV1111VXPD8FVV1111VVXXfV83XfffbcCvOzLviwv+7Ivy/8H119/Pd/wDd8AwBd/8Rfz13/91/xP8Td/9ze33n3f3Vx/+nre7y3fj/8vPv19Px2Av37qX/PXT/1r/qf4y8f9Jb/wu78AwDd85Dfw/8WbvdKbcf3J67nn4j38txPP8pdP+Et+/vd/nutPXs+nv+unc/2p60GAAAHi/wYBAgSIy172ES8LwG/91m99N1ddddVVV1111fNDcNVVV1111VVXPV9nz559xo/8yI98NsCbvumb8n/d9ddfz0/+5E8C8Cu/8iv88i//Mve75557ALjmmmsezH+jb/uhbwPgzV71zbj+1PX8X/fp7/PpvOyjXpZ7Lt7DR33TR/E/hrjs237y27j73ru5/uT1fPq7fTr/111/8no+/d0+HYAv/LEv5Ox9Z5/Bf6Om9mDEs3z7z3w73/6z3871J6/nGz78G7j+5PU8BwECBAgQIP5X+/R3/3TuvnA3//AP//DbXHXVVVddddVVLwjBVVddddVVV131Av32b//29wC87Mu+LC/7si/L/1Uv+7Ivy0/+5E9y77338iu/8it8yZd8CZL4n+Yv//4v+YXf+gUAvuETvoH/yz79fT6dN3u1NwPgi3/0i0H8j3P32bv53G/7XO4+dzdv9kpvxvu/yfvzf9mnv9unA/BXT/8r/uppf8V/t0nT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0R/90c/h/7kzZ8486MVf/MVf58Ve7MVe63Ve53Xemwe4Z+8e/vaOv+W+g/u47+g+7lvexz9c+AfKrFDnlbpR6TY6us2O2daM2daM+eac+WLOtbNr6WvPiTjBTdNN3DDdwE3TTTy3H/mRH/nsf/iHf/idf/iHf/ht/p+75pprHvzar/3a7/XiL/7ir/1iL/Zir80DnBvP8YT1E7jIRS6VS1yql3hG/wy6rqOWikIAOM3UJqZxYlgPjKuRYTVwbDjGiXaCR/aP5LEbj+Wxxx7LA9133323/uiP/ujn/MM//MNv33fffbdy1VVXXXXVVVf9Z0EPetCDuOqqq6666qqr/vOdOXPmQddcc81Drrnmmge/zuu8znu92Iu92GvzfNxzzz3Y5p577uF+kgC47rrruO6663hB7rvvvlvPnj1769///d//9m//9m9/z3333XcrVz2Pa6655sEv9mIv9lov9mIv9tqv8zqv8968APdcvIf73XvpXhBIQhLXHruWa3au4QX5h3/4h9/++7//+98G+NEf/dHP4arn65prrnnwi73Yi732i73Yi73W67zO67w3L8B9R/eBQBLnhnNECVRElOBUPcUJneAFue+++279rd/6re8G+NEf/dHP4arn65prrnnwi73Yi732i73Yi73W67zO67w3z3TX/l3csH0D97uoiwgBcCkuYRvb2Oa4j3NSJ3lB7rvvvlt/67d+67v/4R/+4Xf+4R/+4be56qqrrrrqqqv+K6AHPehBXHXVVVddddVV//WuueaaB7/Yi73Ya73Yi73Ya19zzTUPBnixF3ux1+aFuO+++2695pprHnzffffdCnD27Nlb//7v//63Af7hH/7hd/7hH/7ht7nqX+2aa6558Iu92Iu99ou92Iu91jXXXPNggBd7sRd7bV5E9913363/8A//8Dv33Xff0wF++7d/+3vuu+++W7nqX+2aa6558Iu92Iu99ou92Iu91jXXXPNggBd7sRd7bV5E9913361nz5699e///u9/G+BHf/RHP4er/k2uueaaB7/Yi73Ya7/Yi73Ya11zzTUPBjhz5syDr7nmmgcD3Hfffbdec801D+YFuO+++249e/bsrX//93//22fPnr31t37rt76Hq6666qqrrrrqvwN60IMexFVXXXXVVVdd9T/HmTNnHiRJZ86ceTDPZkBnz5699b777ruVq/5LXHPNNQ+2bUk6c+bMg3k2nz179hn33XffrVz1X+Kaa655MIBtX3PNNQ/hAe67776nnz179hlc9V/immuueTDPdObMmQcB4pnOnj1763333XcrV1111VVXXXXV/yToQQ96EFddddVVV1111VVXXXXVVVddddVVV1111f9JVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8q/hFvllHnnGCTvAAAAABJRU5ErkJggg==) diff --git a/docs/kcl-std/functions/std-offsetPlane.md b/docs/kcl-std/functions/std-offsetPlane.md index 589874c8b..c4fda837a 100644 --- a/docs/kcl-std/functions/std-offsetPlane.md +++ b/docs/kcl-std/functions/std-offsetPlane.md @@ -48,7 +48,7 @@ loft([squareSketch, circleSketch]) ``` -![Rendered example of offsetPlane 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAGTEElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/jWuuuebBPMCZM2cezHO55pprHsy/w3333Xcrz+Xs2bO38kz33XffrVx11VVXXXXVVVdd9b8Flauuuuqqq6666qqr/stcc801DwY4c+bMg6+55poHA5w5c+ZBANdcc82DAa655poHA5w5c+bBANdcc82D+U9033333XrNNdc8mH+D++6771ae6ezZs7cC3HfffbfyTPfdd9+tZ8+efQbAfffddyvA2bNnb73vvvtu5aqrrrrqqquuuuqq/wroQQ96EFddddVVV1111VVX/dtdc801DwY4c+bMg6+55poHnzlz5kEA11xzzYOvueaaB585c+bB11xzzYP5N7p48SL3u3DhAve7ePEiD3ThwgX+o5w8eZLnduLECe538uRJ7nfixAn+Le67775bAc6ePXvrfffddyvAfffdd+vZs2efcd99990K8A//8A+/zVVXXXXVVVddddVV/x7oQQ96EFddddVVV1111VVXvWDXXHPNgwHOnDnz4Bd7sRd7LYAXf/EXf22AF3uxF3ttXgQXL14E4MKFC1y8eBGACxcuAHDx4kUuXrzI/S5cuMDFixf53+bEiRPc7+TJk5w4cYL7nThxgpMnTwJw4sQJAE6ePMmJEyf4l9x33323AvzDP/zDbwP8wz/8w+8A3Hfffbf+wz/8w29z1VVXXXXVVVddddULgx70oAdx1VVXXXXVVVdddRVcc801Dz5z5syDX+zFXuy1AF78xV/8tV/sxV7stXkhLl68CMCFCxe4ePEiFy9e5OLFi1y4cAGApz3taVz1vGxzvxMnTgBw8uRJTpw4wYkTJzh58iQnTpwA4GEPexgvzH333Xfr2bNnb73vvvtu/Yd/+Iffue+++24F+Id/+Iff5qqrrrrqqquuuuoq9KAHPYirrrrqqquuuuqq/0+uueaaB585c+bBL/ZiL/Za11xzzYOvueaaB7/Yi73Ya/MCXLx4kQsXLvC0pz0NgKc+9akAPO1pT+Oq/xonTpwA4MSJE5w8eZKHPvShAJw4cYKHPexhPD/33XffrQD/8A//8Nv/8A//8Dv33XffrWfPnr31vvvuu5Wrrrrqqquuuuqq/z/Qgx70IK666qqrrrrqqqv+r7rmmmse/GIv9mKvfebMmQe9+Iu/+Gu/2Iu92GvzfFy8eJELFy7wtKc9DYCnPvWpPO1pT+Oq/x1OnDjBiRMnOHnyJA996EM5ceIEJ0+e5MSJEzy3++6779azZ8/eet999936D//wD79z33333foP//APv81VV1111VVXXXXV/03oQQ96EFddddVVV1111VX/F1xzzTUPPnPmzINf7MVe7LVe/MVf/LVf7MVe7LV5LhcvXgTgz//8zwF42tOextOe9jT+J7PNVf82J06c4MSJE5w8eZKHPvShnDhxgoc97GE8t/vuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv81VV1111VVXXXXV/w3oQQ96EFddddVVV1111VX/G11zzTUPPnPmzINf7MVe7LVe/MVf/LVf7MVe7LV5LhcvXuTP//zPAXja057G0572NK76n8k2/1VOnDjBwx72MB760Idy4sQJHvawh/FA9913360A//AP//Db//AP//A7v/Vbv/XdXHXVVVddddVVV/3vhB70oAdx1VVXXXXVVVdd9b/FNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe20e4OLFizztaU/jwoULPO1pT+NpT3saV131ojhx4gQAD33oQ3noQx/KiRMneNjDHsYD3Xfffbf+wz/8w2//1m/91vf8wz/8w29z1VVXXXXVVVdd9b8DetCDHsRVV1111VVXXXXV/1TXXHPNg1/7tV/7va655poHv87rvM578wAXL17kz//8zwH49V//da666j/SiRMneOhDH8rDHvYwTpw4wUMf+lDud9999936D//wD7/9D//wD7/zW7/1W9/NVVddddVVV1111f9c6EEPehBXXXXVVVddddVV/5Ncc801D37t137t93rxF3/x136xF3ux1+aZLl68yMWLF3na057GX/zFX3Dx4kWuek62ueo/x4kTJ3joQx/Kwx72MF7u5V6OB7rvvvtu/a3f+q3v/u3f/u3vue+++27lqquuuuqqq6666n8O9KAHPYirrrrqqquuuuqq/27XXHPNg1/7tV/7vV78xV/8tV/sxV7stXmmixcv8hd/8Rc87WlP42lPexpX/f9hm/+pTpw4wYkTJ3j5l395HvrQh3LixAkA7rvvvlsBfuu3fuu7f/RHf/RzuOqqq6666qqrrvrvhx70oAdx1VVXXXXVVVdd9d/lmmuuefA7vuM7ftbrvM7rvDfPdPHiRf7iL/6Cpz3taTztaU/jqqv+O9jmRXXixAle7uVejpd/+ZfnxIkTANx33323/sM//MNv/8M//MPv/NZv/dZ3c9VVV1111VVXXfXfAz3oQQ/iqquuuuqqq6666r/SNddc8+DXfu3Xfq93eqd3+mye6eLFi/zFX/wFT3va03ja057GVVf9b3XixAle7uVejtd//dfnfvfdd9+tP/qjP/o5//AP//Db9913361cddVVV1111VVX/ddBD3rQg7jqqquuuuqqq676r3DNNdc8+LVf+7Xf653e6Z0+m2e6ePEif/EXf8Fv/MZvcNV/Lttc9V/nxIkTPPShD+XlXu7leOhDHwrAfffdd+s//MM//PaP/uiPfs599913K1ddddVVV1111VX/+dCDHvQgrrrqqquuuuqqq/4zXXPNNQ9+x3d8x896ndd5nffmmX7913+dv/zLv+TixYtcddW/xDb/m504cYKXe7mX4/Vf//UBuO+++279h3/4h9/+0R/90c+57777buWqq6666qqrrrrqPw960IMe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ddVVV/1Luq57742NjbcupRARRASSkMR6veYJT3gCi8WChzzkITzkIQ8B4NZbb+Wqq/69JCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUjiv8Px48d5lVd5Fd72bd8WgKc//el853d+JxcvXsQ2tgGwjW0yk/V6favt3+Gqq6666qqrrrrqhaMcP36cq6666qqrrrrqqn/J1tbWV81msweXUogIIoKIICKICNbrNU984hORxIMf/GAe8pCH8DIv8zLM53NuvfVWrrrqfwtJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQk8fy8zuu8Du/6ru/KQx7yEAB++7d/m5/6qZ8CwDb3sw2AbWyTmYzj+D1cddVVV1111VVXvXDoQQ96EFddddVVV1111VX/ktOnT7vve2qtlFKICCKCiCAiiAgkIYmTJ0/yVm/1VjzoQQ8CYHd3l5/+6Z/m1ltv5ar/Hra56n+W48eP8z7v8z4cP34cgN3dXb7ne76HixcvYpvMxDaZSWaSmbTWaK0xTRNHR0e3Xrp06SFcddVVV1111VVXvXDoQQ96EFddddVVV1111VUvTES89+nTp7+r6zpqrUQEpRQigohAEhGBJCICSUjipV7qpXit13otjh07BsDu7i4//dM/za233spVV70wtvm/6vjx47zN27wND37wgwHY3d3lb/7mb/id3/kdbGMb29gmM8lMbNNaIzNprTFNE8MwcO7cudcBfpurrrrqqquuuuqqFww96EEP4qqrrrrqqquuuuqFWSwW33Xs2LH3rrVSSqGUQkQQEUQEEYEkIgJJSEISkjh+/Dgv9VIvxWu8xmtwv93dXf76r/+a3/7t3+aqq/6nsM1/ptd+7dfmZV7mZTh+/DgAly5d4nd/93f5m7/5GwBsY5vMxDa2yUxsk5lkJplJa41pmhjHkd3d3e8ehuF9uOqqq6666qqrrnrB0IMe9CCuuuqqq6666qqrXpgTJ048fT6fP7jWSimFUgoRQUQgiYggIpCEJCQREUhCEpI4duwYL/mSL8lLvMRLcOzYMQB2d3f567/+a2699VZuvfVWrrrq/5rjx4/z0i/90rz2a78297t06RJ/+7d/y+/93u9hGwDb2MY2tslMbGObzCQzyUwyk8xkmibGceTo6OjW/f39h3DVVVddddVVV131gqEH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tvmPZBvb2OY/km1sY5v/SLaxzX8029jmP5NtbGObq656UR0eHvIP//APALzO67zOe3HVVVddddVV/z4EV1111VVXXfXv9GIv9mKvDfC3f/u3/GexjW1s81/NNraxzX8l29jGNv9VbGMb29jmP5ttbGMb2/xnso1tbPOfwTa2sc1/BtvY5j+abWzzH802tvmPZBvb/EezjW3+s9nGNlf97yWJ/yrPeMYzAHixF3ux137xF3/x1+aqq6666qqr/u0Irrrqqquuuurf4XVe53XeC+Cee+5hf38f2/xns41tbPNfzTa2sY1t/qvYxja2sc1/FdvYxja2+c9mG9vY5j+TbWxjm/8MtrGNbf6j2cY2tvmPZBvb2OY/km1s8x/JNrb5j2Yb2/xns41trrrqhTk8POTs2bMAPPaxj30trrrqqquuuurfjuCqq6666qqr/h3e8R3f8bMBnvrUp3I/29jmv4JtbGOb/w62sY1t/ivZxja2sc1/FdvYxjb/2WxjG9vY5j+LbWxjm/8MtrGNbf6j2cY2tvmPZBvb/EeyjW3+I9nGNv/RbGOb/2y2sc1V/z0k8Z9NEi8KSTw/t956KwCv+7qv+z5cddVVV1111b8dlauuuuqqq676N3qxF3ux177mmmseDLC1tcVLvdRL8T+FJP6/ksT/dZL4304S/5tI4n86SfxvJomr/mW2+e9km/8Mtnlum5ubAJw5c+ZBL/ZiL/ba//AP//DbXHXVVVddddW/HpWrrrrqqquu+jc6e/bsrb/1W7/13a/zOq/z3i/1Ui/FVVddddVVV131H+8f/uEffvvs2bO3ctVVV1111VX/NlSuuuqqq6666t/ovvvuu/W3fuu3vue+++67lauuuuqqq6666j/FP/zDP/zOfffddytXXXXVVVdd9W+DHvSgB3HVVVddddVVV1111VVXXXXVVVddddVVV/2fROWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fxT8CEZzqnPLb9JAAAAAASUVORK5CYII=) +![Rendered example of offsetPlane 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAGTCElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/jWuuuebBPMCZM2cezHO55pprHsy/w3333Xcrz+Xs2bO38kz33XffrVx11VVXXXXVVVdd9b8Flauuuuqqq6666qqr/stcc801DwY4c+bMg6+55poHA5w5c+ZBANdcc82DAa655poHA5w5c+bBANdcc82D+U9033333XrNNdc8mH+D++6771ae6ezZs7cC3HfffbfyTPfdd9+tZ8+efQbAfffddyvA2bNnb73vvvtu5aqrrrrqqquuuuqq/wroQQ96EFddddVVV1111VVX/dtdc801DwY4c+bMg6+55poHnzlz5kEA11xzzYOvueaaB585c+bB11xzzYP5N7p48SL3u3DhAve7ePEiD3ThwgX+I508eZIHOnHiBA908uRJAE6cOMG/xX333XcrwNmzZ2+97777bgW47777bj179uwz7rvvvlsB/uEf/uG3ueqqq6666qqrrrrq3wM96EEP4qqrrrrqqquuuuqqF+yaa655MMCZM2ce/GIv9mKvBfDiL/7irw3wYi/2Yq/Ni+DixYsAXLhwgYsXL3LhwgXud/HiRS5evAjAhQsXALh48SL/25w4cYL7nTx5EoATJ04AcOLECU6ePAnAiRMnADh58iQnTpzgX3LffffdCvAP//APvw3wD//wD78DcN999936D//wD7/NVVddddVVV1111VUvDHrQgx7EVVddddVVV1111VVwzTXXPPjMmTMPfrEXe7HXAnjxF3/x136xF3ux1+aFuHjxIgAXLlzgaU97GgAXL17kwoULADztaU/jqudlm/udOHECgJMnT3LixAkAHvawhwFw4sQJHvawh/HC3HfffbeePXv21vvuu+/Wf/iHf/id++6771aAf/iHf/htrrrqqquuuuqqq65CD3rQg7jqqquuuuqqq676/+Saa6558JkzZx78Yi/2Yq91zTXXPPiaa6558Iu92Iu9Ns/HxYsXAbhw4QJPe9rTAHjqU5/KxYsXuXjxIlf91zhx4gQAJ06c4OTJkzz0oQ8F4MSJEzzsYQ/j+bnvvvtuBfiHf/iH3/6Hf/iH37nvvvtuPXv27K333XffrVx11VVXXXXVVVf9/4Ee9KAHcdVVV1111VVXXfV/1TXXXPPgF3uxF3vtM2fOPOjFX/zFX/vFXuzFXpvn4+LFi1y4cIGnPe1pADz1qU/laU97Glf973DixAlOnDjByZMneehDH8qJEyc4efIkJ06c4Lndd999t549e/bW++6779Z/+Id/+J377rvv1n/4h3/4ba666qqrrrrqqqv+b0IPetCDuOqqq6666qqrrvq/4JprrnnwmTNnHvxiL/Zir/XiL/7ir/1iL/Zir81zuXjxIgB//ud/DsDTnvY0nva0p/E/mW2u+rc5ceIEJ06c4OTJkzz0oQ/lxIkTPOxhD+O53XfffbeePXv21r//+7//7X/4h3/4nX/4h3/4ba666qqrrrrqqqv+b0APetCDuOqqq6666qqrrvrf6JprrnnwmTNnHvxiL/Zir/XiL/7ir/1iL/Zir80DXLx4EYA///M/5+LFi/zFX/wFV/3PZZv/KidOnOBhD3sYD33oQzlx4gQPe9jDeKD77rvvVoB/+Id/+O1/+Id/+J3f+q3f+m6uuuqqq6666qqr/ndCD3rQg7jqqquuuuqqq6763+Kaa6558Gu/9mu/14u/+Iu/9ou92Iu9Ng9w8eJF/vzP/xyApz3taTztaU/jqqteVCdOnOChD30oD33oQzlx4gQPe9jDeKD77rvv1n/4h3/47d/6rd/6nn/4h3/4ba666qqrrrrqqqv+d0APetCDuOqqq6666qqrrvqf6pprrnnwa7/2a7/XNddc8+DXeZ3XeW8e4OLFi/z5n/85AL/+67/OVVf9Rzpx4gQPfehDedjDHsaJEyd46EMfyv3uu+++W//hH/7ht//hH/7hd37rt37ru7nqqquuuuqqq676nws96EEP4qqrrrrqqquuuup/kmuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPNPFixe5ePEiT3va0/j1X/91rnpetrnqP8eJEyd46EMfysMe9jBe7uVejge67777bv2t3/qt7/7t3/7t77nvvvtu5aqrrrrqqquuuup/DvSgBz2Iq6666qqrrrrqqv9u11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5posXL/IXf/EXPO1pT+NpT3saV/3/YZv/qU6cOMGJEyd46EMfysMe9jAe+tCHAnDffffdCvBbv/Vb3/2jP/qjn8NVV1111VVXXXXVfz/0oAc9iKuuuuqqq6666qr/Ltdcc82D3/Ed3/GzXud1Xue9eaaLFy/yF3/xF/zFX/wFFy9e5Kqr/jvY5kV14sQJXu7lXo6HPexhPPShDwXgvvvuu/Uf/uEffvsf/uEffue3fuu3vpurrrrqqquuuuqq/x7oQQ96EFddddVVV1111VX/la655poHv/Zrv/Z7vdM7vdNn80wXL17kL/7iL/iLv/gLLl68yFVX/W914sQJXu7lXo7Xf/3X53733XffrT/6oz/6Of/wD//w2/fdd9+tXHXVVVddddVVV/3XQQ960IO46qqrrrrqqquu+q9wzTXXPPi1X/u13+ud3umdPptnunjxIr/xG7/BX/zFX3DVfy7bXPVf58SJEzz0oQ/l5V7u5XjoQx8KwH333XfrP/zDP/z2j/7oj37OfffddytXXXXVVVddddVV//nQgx70IK666qqrrrrqqqv+M11zzTUPfsd3fMfPep3XeZ335pl+/dd/nb/8y7/k4sWLXHXVv8Q2/5udOHGCl3u5l+P1X//1Abjvvvtu/Yd/+Iff/tEf/dHPue+++27lqquuuuqqq6666j8PetCDHsRVV1111VVX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/5FsYxvb/EeyjW3+o9nGNv+ZbGMb21x11Yvq8PCQf/iHfwDgdV7ndd6Lq6666qqrrvr3Ibjqqquuuuqqf6cXe7EXe22Av/3bv+U/i21sY5v/araxjW3+K9nGNrb5r2Ib29jGNv/ZbGMb29jmP5NtbGOb/wy2sY1t/jPYxjb/0Wxjm/9otrHNfyTb2OY/mm1s85/NNra56n8vSfxXecYzngHAi73Yi732i7/4i782V1111VVXXfVvR3DVVVddddVV/w6v8zqv814A99xzD/v7+9jmP5ttbGOb/2q2sY1tbPNfxTa2sY1t/qvYxja2sc1/NtvYxjb/mWxjG9v8Z7CNbWzzH802trHNfyTb2MY2/5FsY5v/SLaxzX8029jmP5ttbHPVVS/M4eEhZ8+eBeCxj33sa3HVVVddddVV/3YEV1111VVXXfXv8I7v+I6fDfDUpz6V+9nGNv8VbGMb2/x3sI1tbPNfyTa2sY1t/qvYxja2+c9mG9vYxjb/WWxjG9v8Z7CNbWzzH802trHNfyTb2OY/km1s8x/JNrb5j2Yb2/xns41trvrvIYn/bJJ4UUji+bn11lsBeN3Xfd334aqrrrrqqqv+7ahcddVVV1111b/Ri73Yi732Nddc82CAra0tXuqlXor/KSTx/5Uk/q+TxP92kvjfRBL/00nifzNJXPUvs81/J9v8Z7DNc9vc3ATgzJkzD3qxF3ux1/6Hf/iH3+aqq6666qqr/vWoXHXVVVddddW/0dmzZ2/9rd/6re9+ndd5nfd+qZd6Ka666qqrrrrqqv94//AP//DbZ8+evZWrrrrqqquu+rehctVVV1111VX/Rvfdd9+tv/Vbv/U99913361cddVVV1111VX/Kf7hH/7hd+67775bueqqq6666qp/G/SgBz2Iq6666qqrrrrqqquuuuqqq6666qqrrrrq/yQqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yr+EazO5JywhpxHAAAAAElFTkSuQmCC) ```kcl // Loft a square and a circle on the `XZ` plane using offset. @@ -67,7 +67,7 @@ loft([squareSketch, circleSketch]) ``` -![Rendered example of offsetPlane 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEaS0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV131/8zrvM7rvPeLvdiLvRZXXXXVVVf9v/MP//APv/Nbv/Vb381VV1111VVX/f9B5aqrrrrqqqv+H3md13md9/7wD//w7+Kqq6666qr/l17sxV7stQF+67d+67u56qqrrrrqqv8fqFx11VVXXXXV/yMv9mIv9lo806/92q/x/5Ftrnr+bHPVVVf957DNf7dXfdVX5Zprrnnwi73Yi73W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e/xXs81/NEncTxLPTRIAknh+JHG/48ePc9VVV1111VVX/ZtRueqqq6666qqr/k3uu+++W8+cOfNgng/bSMI2knhutgGQxHOzDYAknpttACTxL7HNA0nihbGNJB7INpK4n20k8S/5kz/5E972bd+WRzziEfzVX/0VtpHE82MbSTw320jiRWEbSTyQbSTxb2EbSfxLNjc3efCDH8w111zDNddcwwMdHh7y9Kc/nbNnz3LffffxL7HN/weHh4cAPP3pT+fpT386m5ubbG5ucubMGa655hquueYatra2eNjDHsZLvuRLcnBwwFOf+lSe+tSn8t/NNv9atnlBbHO/l3/5lwfgH/7hH/i3sM2/hW1s8x9FEv8SSTw/krifJB7o+PHj3Hfffbdy1VVXXXXVVVf9W1C56qqrrrrqqqv+Tc6ePXvr6dOnH8yLwDaSALCNJP4ltgGQxHOzjST+p7rzzju58847ufHGG7nuuuu45557sI0knh/bSOJFYRtJvChsI4kHso0k/rVsIwmAa665hoc85CE85CEP4YEODw95+tOfzj/8wz9w1Yvm8PCQw8ND7rvvPv7hH/6Bzc1NrrnmGh784AdzzTXXsLW1xXXXXcdLvdRLce+993LPPffwlKc8hfvZ5rnZ5rnZ5rnZ5vmxzb+GbZ4f27wgtrnfox71KLa3t9nb2+P222/HNv8VbPPvJQkASdxPEveTxP0kcT9JAEjiuUniuUni7Nmzt3LVVVddddVVV/1bULnqqquuuuqqq/5Hs40knpttACTx72UbSfxHevzjH8+NN97Iy7zMy/BLv/RLANhGEi8q20jiudlGEg9kG0n8W9hGEi/M5uYmD33oQ3nxF39xHujw8JCnP/3p/MM//ANX/fsdHBxwcHDA0572NDY3N7nmmmt4yEMewjXXXMPW1hYPe9jDeKmXeinuuecenvrUp3L33XfzH8k2z49tnh/b/GvZ5oEe9ahHAfBHf/RHvChs8/zY5kVlm/9MkrifJO4niedHEgCSeCBJABw/fpz77rvvVq666qqrrrrqqn8LKlddddVVV1111b/Jfffdd+uZM2f417CNJB7INg8kiedmGwBJPDfbAEjiP5JtJPGC2EYSz802krjzzjsBuP7667nuuuu45557ALCNJJ6bbSTx3GwjiedmG0k8kG0k8UC2kcQD2UYSL4xtJPHiL/7iPPShD2Vzc5P7HR4e8vSnP52///u/518iiavANv9ah4eHPP3pT+fpT386m5ubXHPNNTzkIQ/hmmuu4eEPfzgPf/jDOTg44K//+q95ylOeAoBtnptt/jPY5gWxzfNjmwe64YYbuOGGGwD4h3/4B/69bPPC2MY2/xEk8UCSeCBJ3E8Sz00SAJJ4fiRxv+PHj3Px4kWuuuqqq6666qp/EypXXXXVVVddddW/yX333XfrS7zES/BAtpHEA9lGEs/NNgCSeCDbAEjiudlGEs+PbQAk8aKyDYAk/iW2kcTzYxtJPND+/j5/+qd/yiu+4ivyMi/zMvzSL/0S97ONJJ6bbSTx3Gwjif9MtpEEwObmJg996EN5iZd4CQAODw85PDzk6U9/Ok9/+tM5PDzkRWWbfytJ/E9hm/9Oh4eHPP3pT+fpT386m5ubPOQhD+HFX/zF2dra4tVf/dV56Zd+aZ7ylKfw5Cc/mYODA/4ltnlutnl+bPOvYZsX1aMe9SgA/uEf/oEXxDb/GraxjW1sYxvb2OY/gyTuJ4l/iSSeH0ncTxLP7b777ruVq6666qqrrrrq34LKVVddddVVV131b3L27NlnnDlzhhfENpK4n20kAWAbSbwwtgGQxAPZBkASz49tACTxwthGEv+ZHv/4x/OKr/iKbG9vc91113HPPfdwP9tI4rnZRhLPzTaSeCDbSOKBbCOJB7KNJB7INpJ4oM3NTR760IfyEi/xEtzv8PCQpz/96fz93/89/9Vsc9XzOjw85O///u95+tOfzjXXXMNDHvIQrrnmGl76pV+ahz/84dxzzz08+clP5p577uHfyzbPj22eH9u8ILZ5bo961KMA+KM/+iP+NWzz30kSL4gk7ieJ+0nifpIAkMRzk8Rze/CDH8zv//7vP4OrrrrqqquuuurfgspVV1111VVXXfVvct99993KfwHbSOK52UYSL4htXhhJvCC2kcS/1/7+PnfeeSc33ngjj3jEI7jnnnt4INtI4rnZRhLPzTaSeCDbSOKBbCOJB7KNJJ6fzc1NXuVVXoVrr72W+/393/89T3/60zk8POSq/xls80AHBwccHBzwtKc9jc3NTV7iJV6ChzzkITz84Q/n4Q9/OPfccw9/+Zd/yT333MMD2ea52eZFZZvnxzYviG2e2+u8zusA8LjHPY69vT3+u9jm30sSDySJ+0nifpJ4fiTxgkjiqquuuuqqq676d6Fy1VVXXXXVVVf9m505c4Z/LdtI4l/DNgCSeCDbSOI/km0k8R/lN37jN3jP93xPrr/+ep4f20jiudlGEi8K20jigWwjiRdmY2ODV33VV+Xaa68F4PDwkKc97Wn8/d//Pf8SSVz1H8s2/1aHh4f88R//MX/3d3/HQx7yEF7iJV6C6667jjd90zfl4OCA3/3d3+Wee+7hX8M2/xFs8/w86lGPAuAf/uEf+Lewzb+HbWzzH0USDySJ+0niuUkCQBL3k8T9JHG/48ePc999993KVVddddVVV131b0Hlqquuuuqqq676Nzl79uytAGfOnOHs2bPczzaSeCDbSOK52eYFkcRzs40kHsg2AJL4z2IbSdzPNpJ4Uezv73PnnXdy44038vCHP5ynPOUpPDfbSOK52UYSD2QbSfxb2EYSm5ubvOqrvirXXnstAIeHhzztaU/j7//+73lR2eZFJYn/r2zzX+nw8JC///u/5+lPfzoPechDeImXeAm2trZ40zd9Uw4ODvjd3/1d7r77bh7INs/NNs+PbZ4f2zw/tnl+HvWoRwFwxx13cMcdd/Avsc1/JNv8W0nifpJ4IEm8IJIAkMTzI4n7SeK5nT179lauuuqqq6666qp/CypXXXXVVVddddW/y5kzZzh79izPj20kcT/bSALANpJ4QWwDIIkHso0knpttACTxb2UbSfxH+7M/+zNuvPFGXvZlX5YnP/nJSOK52UYSz802kngg20jigWwjiQeyjSTut7W1xau+6qty7bXXAnB4eMjTnvY0/v7v/57/TLb5jyKJ/2y2+d/u8PCQv//7v+fpT386D3nIQ3iJl3gJtra2eNM3fVOe/OQn85d/+ZccHBzwr2Gb58c2z49tXpCXf/mXB+Bxj3scz49t/rPY5j+SJB5IEveTxPMjCQBJPDdJPNDx48cBuO+++27lqquuuuqqq676t6By1VVXXXXVVVf9m9x33323AtjmP5NtACRxP9sASOK52UYS/1q2kcS/lm0k8cLs7e1x5513cuONN3L99ddz9913I4nnZhtJPDfbSOKBbCOJB7KNJB7INtvb2zz0oQ/lpV7qpQA4PDzkaU97Gn//93/P/za2uer5s81zOzg44O/+7u942tOexkMf+lBe4iVegkc84hFcf/31POlJT+JJT3oSBwcHPJBtXlS2eX5s84I88pGPZHt7G4DHPe5x/HvY5l/DNv8eknh+JPFAkrifJO4niedHEi/IsWPHuOqqq6666qqr/l2oXHXVVVddddVV/2b33XffrWfOnHnw4x//eP41bCOJfw3bSOKBbCOJ52YbAEm8KGwjiefHNpJ4UdhGEgC2kQTA/v4+T3ziE7nxxht5mZd5Ge6++25sI4nnZhtJPDfbSOKBbCOJB7KNJO73Ui/1UrzUS70U9/u7v/s7/u7v/o5/iSSu+p/FNv9Wh4eH/N3f/R1Pe9rTeOhDH8pLvMRL8LIv+7I88pGP5ElPehJ/+Zd/yQtjm/8Itnn0ox8NwK/+6q/yH8E2Lwrb/EeSxANJ4oEkcT9J3E8SAJIAkMT9JPFAkjhx4gT33XffrVx11VVXXXXVVf9WVK666qqrrrrqqn+zs2fP3nrmzJkH8yKwjSSem21eEEk8kG0k8UC2kcTzY5v7SeL5sY0kXlS2kcS/1p133gnA9ddfz/XXX8/dd9+NbSTx3GwjiReFbSTx3K699lpe7dVeja2tLQDuvfde/viP/5jDw0NeFLZ5YSRx1X8c2/xXODw85O/+7u942tOexkMf+lBe4iVegpd92ZflEY94BL/7u7/LXXfdxXOzzfNjm+fHNs+PbW644QZuuOEGAB73uMfxr2GbF8Q2L4htbPP82ObfQxIPJIkHksT9JPHCSOKBJHG/s2fP3spVV1111VVXXfVvReWqq6666qqrrvoPZxtJANhGEvezjSQAbCOJF8Q2AJK4n20k8UC2kcQLY5vnRxIviG0k8R9hf3+fJz7xiTzqUY/iEY94BHfffTcAtpHEc7ONJB7INpJ4Yba2tnjYwx7GS7/0SwNweHjIH/3RH3HffffxH8k2/xqS+P/GNv9THR4e8nd/93fce++9vMqrvArb29u82Zu9GU960pP4y7/8S/b393lhbPP82Ob5sQ3Aox/9aAAe//jH89xs8+9hG9vYxja2sc0LYpt/DUk8P5J4IEk8kCSemyQAJAEgiQeSxP2OHz/OfffddytXXXXVVVddddW/FZWrrrrqqquuuurf7O///u9/+7rrrntt/pPZRhL3sw2AJO5nGwBJ/E/1p3/6pzzqUY/i+uuvZ2tri4ODAwBsI4nnZhtJPJBtJPFAtpHEwx/+cF7t1V6N+/3d3/0df/d3f8f/BLb5jySJ/0i2+b/MNs/Pvffey6/92q/x0Ic+lJd8yZfkkY98JDfccANPfOIT+cu//Ets89xs8/zY5vmxzf0e9ahHAfDHf/zH/Heyzb+HJB5IEg8kiedHEv8SSTzQ8ePHuXDhAlddddVVV1111b8Zlauuuuqqq6666t/lzJkz/FvYRhIvKttI4oFsI4kHso0k/r1sI4kHso0k/q329/e56667uOGGG3jEIx7BX/3VX3E/20jiudlGEg9kG0ncb2tri1d/9VfnuuuuA+Dee+/lj/7ojzg8POT5kcT/dra56jnZ5t/i8PCQv/u7v+NpT3saL/mSL8lDH/pQXu7lXo7rr7+e3/md32F/f5/72eb5sc3zY5v7vfzLvzwAj3vc49jb2+NfYpvnZpt/L9v8a0niXyKJB5LE/SRxP0kASAJAEveTxHM7duwYT3jCE27lqquuuuqqq676tyK46qqrrrrqqqv+zc6ePfuMM2fO8KKyzfNjG9vYxja2sY1tHsg2tnkg2zw329jm38o2Lwrb/Gv92Z/9GQCPeMQjeG62eX5s89xsA3Ddddfx9m//9lx33XUcHh7yt3/7t/z6r/86h4eHvCC2sY1tbGMb29jmqv/ZbGMb29jGNraxzb/X4eEhf/RHf8Tf/u3fAnDDDTfw5m/+5rzcy70cL4xtnh/bPNCjH/1oAB7/+MdzP9v8V7LNfxRJSOKBJPFAkrifJF4YSTyQJCRx/Phxzp49+wyuuuqqq6666qp/KypXXXXVVVddddW/2X333XcrgG0k8UC2kQSAbSRxP9tIAsA2knhBbCOJB7KNJO5nG0k8N9tI4l/DNpL4z3LXXXdx1113ccMNN/Dwhz+cpzzlKTyQbSTx3GwjifttbW3xGq/xGlx33XUA3Hvvvfz6r/86/162+ZdI4qr/eLb5n+Dv/u7veNrTnsZDH/pQXvIlX5KXe7mXA+DP//zPeW62eX5s80CPetSj2N7e5o477uCOO+7g38M2/xa2+beQxAsjiQeSxANJ4n6SAJAEgCQAJPFAkrjqqquuuuqqq/7DEFx11VVXXXXVVf8uZ86c4d/KNi8K29jmgWzzQLZ5fmxjmxeFbV4Q27wwtnl+bPPcnvjEJwLwsi/7stjmudnm+bENwNbWFm/yJm/CddddB8Df/u3f8uu//uv8V7GNbWxjG9vYxja2sY1tbGOb/89sYxvb2MY2trGNbWxjG9v8d7KNbWxjm4ODA/72b/+Wv/3bvwXg5V7u5XjXd31Xtre3+ZfY5rk9+tGPBuDxj388/x1s89xs828hiecmiQeShCTuJ4nnJonnRxIPdPz4cf7hH/7ht7nqqquuuuqqq/6tqFx11VVXXXXVVf9mZ8+evRXgzJkznDt3jv8ItgGQxHOzjSTuZxtJ3M82AJJ4bra5nySem20k8V/hrrvuYn9/n+3tba6//nruvvtuJPFAtpHEc3vpl35pXuZlXgaAg4MDfu3Xfo3Dw0PuJ4n/aWzzH0US/9ls83+Vbf41/vZv/5anPvWpvMEbvAHb29u8xVu8BU984hP5i7/4C2zz3Gzz3G644QZuuOEGAB7/+Mfzr2Gb58c2Lyrb/EeTxHOThCQeSBL3kwSAJB5IEveTxFVXXXXVVVdd9R+O4Kqrrrrqqquu+nc7c+YMLyrbANjmgWxjm/vZxja2eSDbPJBtnpttXhjb2MY2trHNC2Ob52abF8Q2L8z+/j5//ud/DsDLvuzLAmCb52abB3qTN3kTXuZlXgaAv/3bv+Wnf/qnOTw85IFsYxvb2MY2trHN/wW2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2+d/ONraxjW1sYxvb/FscHh7ya7/2a/zt3/4t29vbvPzLvzxv8RZvwYvq5V/+5QH4kz/5E/6r2eb5sc2LQhIviCQk8dwk8UCSeG6SAJDE/STxQJJ48IMfDMB99913K1ddddVVV1111b8VwVVXXXXVVVdd9W9233333coLYZv72eYFsc0LY5sHss0D2ea52eZ/srvuuguAra0trr/+egBs89xss7W1xTu+4zty/fXXc3BwwK/92q/xt3/7t/xr2cY2trGNbWxjm6v+d7GNbWxjG9vYxjb/GQ4PD/nbv/1bfu3Xfg2AG264gXd7t3dje3ub+9nmuW1tbXHjjTcC8IQnPIF/iW1eVLaxzfNjG9s8P7b5t5LEc5PEc5PEA0kCQBLPjyQeSBIAx44d46qrrrrqqquu+ncjuOqqq6666qqr/l3uu+++W8+cOcO/lW1eFLZ5INs8kG2em23+vWzzn2F/f58nPvGJbG9v84hHPIL72eaBrr/+et7xHd+Rra0tDg4O+LVf+zXuvfde/qPZxja2sY1tbGMb29jmqv8atrGNbWxjG9vYxja2+e9gm3vuuYef+qmf4uDggO3tbd7yLd+Sl3/5l8c2z802r/AKrwDA4x//ePb29vjPYBvb2MY2tnlBbPOiksTzI4nnJglJPJAknh9JAEgCQBL3k4QkHujs2bPP4Kqrrrrqqquu+vcguOqqq6666qqr/l3Onj1765kzZ/jXsM0LYhvb2Oa52cY297PNA9nmudnGNv+RbPMf4S/+4i8AuP7663kg2wC8zMu8DG/6pm8KwL333stP//RPc3h4yH8X29jGNraxjW1sYxvb2MY2Vz0n29jGNraxjW1sYxvb2MY2/xPYxja2sY1t7ndwcMCv/dqv8Td/8zdsb2/zqEc9ipd/+ZfngWwD8OhHPxqAxz/+8fxb2eY/gm3+o0hCEs9NEg8kiftJ4oWRxHM7fvw49913361cddVVV1111VX/HlSuuuqqq6666qr/ELaRxAtjG0nczzaSALANgCTuZ5v7SeJ+tpEEgG0kcT/bSOK52UYS/xq2kcS/xDaS+Nfa39/nrrvu4oYbbuARj3gET37yk7nfa7zGa/DIRz4SgL/5m7/hb//2b3lukvifyjb/HpL4n8Q2/xfZ5t/i4OCAv/3bvwXgpV7qpXj0ox8NwJ//+Z9jG4BHP/rRADzhCU/gzjvv5L+Tbf41JPHcJPHcJCGJB5KEJO4niftJAkASAJJ4YY4dO8Z99913K1ddddVVV1111b8HwVVXXXXVVVdd9e/y93//97995swZXhDb/EewzQPZ5n62eSDbPD+2sc2/xDa2+c9im/v9xV/8BQAv+7Ivy/3e7M3ejEc+8pEA/Oqv/ip/+7d/y/NjG9vYxja2sY1t/rezjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjm//tbGMb29jGNrb59/rbv/1b/vAP/5Dt7W1e4RVegbd8y7fkfq/wCq8AwOMf/3j+vWzzb2Wb52abfwtJPD+SeG6SuJ8k7icJAEncTxIPJAlJSOKqq6666qqrrvp3o3LVVVddddVVV/27nTlzhn8P20jiX2IbSdzPNpIAsI0k7mcbAEk8N9sASOK52UYSL4htJPEf5a677uKuu+7ihhtu4BGPeASPfOQjuf766zk4OOAP//APuffee/m3sM0LIomr/u+xzX+Hpz71qdx77728wRu8ATfeeCPv8R7vwROe8AS2t7fZ29vjzjvv5IWxzX8l2/xrSeJ+kpDEc5OEJB5IEveTxPMjiftJ4oGOHTvG4x//+Kdz1VVXXXXVVVf9exBcddVVV1111VX/LmfPnn3GmTNneFHZBsA2ALZ5INvYxja2sc0D2eaBbHM/2zw327wgtrGNbWxjm38v2zw/tnlBnvSkJwHwWq/1Wlx//fUcHBzwh3/4h9x77738Z7CNbWxjG9vYxjZX/c9lG9vYxja2sY1tbPNfyTa2sY1t9vf3+dVf/VUODg7Y3t7mFV7hFQD40z/9U/61bPP82OZfyzYPZJt/iSReFJKQxHOTxANJ4n6SAJAEgCTuJ4nndvz4cc6ePfsMrrrqqquuuuqqfw+Cq6666qqrrrrq3+W+++67lX+BbV4Utnl+bGOb+9nmgWxzP9s8N9v8R7DNc7PNv9f+/j73Ozg44Cd/8ie59957+e9gG9vYxja2sY1tbGMb21z1H8s2trGNbWxjG9vYxjb/XWxjG9vYxjbPz8HBAb/6q7/KwcEB97vzzjv572Ab2/xHksTzIwlJPJAkJHE/Sbwwkrjqqquuuuqqq/7TEFx11VVXXXXVVf9uZ86c4d/LNv8S29zPNg9km/vZ5rnZ5r+abf4l29vbvMVbvAUA99xzDz/5kz8JgG1sYxvb2MY2/1PYxja2sY1tbGMb29jGNraxzf83trGNbWxjG9vYxja2sY1tbPM/gW1sYxvb2MY2/xoHBwf86q/+Kvfccw8Ab/M2b8P29jb/UWzzL7HN82Obf4kknpsk7icJSTw/kpDEA0nifpIAkASAJF4QSUji2LFj/MM//MNvc9VVV1111VVX/XsQXHXVVVddddVV/y5nz569FeDMmTP8a9nmBbHN82Ob+9nmgWxzP9s8N9v8W9nmP9r29jbv+q7vCsA999zDr/7qr/IvsY1tbGMb29jmfzrb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvbvKhsYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1s8z+ZbWxjG9vYxjb/UQ4ODvjDP/xD7rnnHnZ2dnjbt31bdnZ2+I9imxfENs+Pbf4jSUISz48kHkgS95MEgCTuJ4n7SUISAMeOHeOqq6666qqrrvoPQXDVVVddddVVV/2HOHPmDC+Mbe5nmweyzf1sYxsA29jGNg9km/vZ5gWxzXOzjW3+NWzz/Njm32p7e5t3fdd3BeCee+7hV3/1V/n3sI1tbGMb29jm/xPb2MY2trGNbWxjG9vY5v8L29jGNraxjW3+K+zv7/MHf/AH3HPPPWxvb/M2b/M27OzscD/bvDC2eWFsYxsA29jGNs+PbR7INs+PJP61JCEJSTyQJCRxP0k8P5K4nyQe6NixYwDcd999t3LVVVddddVVV/17EFx11VVXXXXVVf8u99133638B7HNC2Ib29zPNvezzf1s80C2eX5s86KwzYvKNi+K7e1tXud1XgeAe+65h1/91V/lP4ttbGMb29jGNraxzVX/e9nGNraxjW1sYxvb/FeyjW1sYxuAg4MD/uAP/oB77rmHnZ0d3uZt3oadnR3+I9nmhbHNA9nmX0MSAJKQhCReEElI4oEkcT9JAEgCQBL3k8RzO378OFddddVVV1111X8Igquuuuqqq6666t/tvvvuu/XMmTP8W9jmX8M297PN/WxzP9s8kG2eH9vY5vmxjW3+M7zu674uN9xwA/fccw+/8iu/gm3+u9jGNraxjW1sYxvb2Oaq/x62sY1tbGMb29jGNv9dbGMb29jGNi/IwcEBf/AHf8A999zDzs4Ob/u2b8t/F9u8IJJ4UUlCEpJ4fiTxQJJ4YSTxQJKQBMB99913K1ddddVVV1111b8XwVVXXXXVVVdd9e929uzZW8+cOcO/xDb3s80D2eaBbGMb29jmgWxzP9vczzb3s80D2eYFsY1tbGMb2/xLbPNv8VZv9VbccMMNHBwc8Cu/8ivczza2sY1tbPM/hW1sYxvb2MY2trGNbWxz1b/MNraxjW1sYxvb2MY2trHNfzfb2MY2trGNbf61Dg4O+IM/+AMODg7Y2dnhfd7nfXhutnlutvn3sM2/hyT+JZKQhCQeSBKSuJ8kACQBIAkASTyQJO537Ngxzp49eytXXXXVVVddddW/F8FVV1111VVXXfUfxjb/XraxzXOzjW3uZ5v72eZ+trmfbR7INv+d3uqt3oobbriBg4MDfuInfoJ/iW1sYxvb2MY2/1PZxja2sY1tbGMb29jGNraxjW1sYxvb/G9hG9vYxja2sY1tbGMb29jGNraxjW3+J7KNbWxjG9vY5j/SwcEBv/Irv8LBwQE7Ozu84Ru+If+ZbPNAtnlBJPHCSEISknhhJCGJB5LE/SQBIAkASdxPEpJ4oOPHj3PffffdylVXXXXVVVdd9e9FcNVVV1111VVX/bv9/d///W8/9rGP5V/LNgC2eVHZ5n62uZ9t7meb+9nmgWxjm38P2/xLbPNAr/d6r8eNN94IwB/8wR/w72Eb29jGNraxzf92trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxzf9WtrGNbWxjG9v8V9nf3+eXf/mXAXjsYx/LK7/yK/Mvsc2/lm0eyDYviCT+NSQhCUlI4vmRxANJ4oWRxFVXXXXVVVdd9Z+K4Kqrrrrqqquu+g8jiX+JbV4Q2zyQbWxjmweyzf1scz/b3M8297PNc7PNfyTbvCA33HADj370owH4lV/5Fe655x7+M9jGNraxjW1sY5ur/n+wjW1sYxvb2MY2/5VsYxvb2MY2AAcHB/z4j/84AK/8yq/MK7/yK/MfyTYvjG1eFJJ4UUhCEpJ4IElI4n6SAJAEgCQAJPHcJCGJY8eOcd99993KVVddddVVV13170Vw1VVXXXXVVVf9u509e/YZZ86c4T+SbR7INra5n23uZ5v72eb5sc1zs82/lm3+NW688Ube5m3eBoBf/uVf5u677+a/g21sYxvb2MY2trHNVf872MY2trGNbWxjG9v8d7CNbWxjG9u8MAcHB/z+7/8+AC/2Yi/GTTfdxAtjmxeFbZ6bbe5nmweSxL9EEpJ4UUhCEg8kiftJAkASz48kJHG/Y8eOcfbs2Wdw1VVXXXXVVVf9e1G56qqrrrrqqqv+3e67775b+TeyjSRsIwkA20ji+bGNJABsIwkA20jigWwDIAkA20jigWwDIIl/iW0k8aLa2dnhbd7mbQD467/+a+655x4AbPPcJPHfyTYvCklc9Z/DNv/T2eY/wlOe8hS2trZ46Zd+aV7lVV6FS5cucenSJV4Q27wgtrHNc7PNc5PEv0QSz00SkpCEJCQhiedHEpK4nySeH0ncTxJXXXXVVVddddV/GoKrrrrqqquuuuo/xJkzZ3hR2eYFsc2/xDb3s839bANgmxfENs+PbV4Y27wgtnl+Xv/1Xx+Ae+65h7/+67/mhbGNbWxjG9vY5n8a29jGNraxjW1sYxvb2MY2tvn/zDa2sY1tbGMb29jGNraxjW3+J7GNbWxjG9vY5j/SU57yFO655x5uvvlm3umd3ol/iW1s80C2eVHY5j+DJCQhiecmiftJAkASAJK4nySen2PHjvEP//APv81VV1111VVXXfXvRXDVVVddddVVV/27nT179laAM2fO8B/JNraxjW1scz/b2AbANvezDYBt7mebB7LN82Mb29jGNraxjW3+td7gDd6AG2+8kYODA375l3+Zfyvb2MY2trGNbf63sI1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vY5j+SbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2/xvYxja2sY1tbPNfYX9/n9/7vd/j4OCAnZ0d3viN35gXhW1sY5sXxDb3s82/hSQk8aKShCQeSBL3kwSAJO4niQeShCSOHz/OVVddddVVV131H4bgqquuuuqqq676d7vvvvtuBThz5gwvKtvczzYAtrmfbZ4f29jmudnmudnmfrZ5INv8Z7nxxht5zGMeA8Dv//7v85/BNraxjW1sY5v/L2xjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb/H9gG9vYxja2sc1/JdvYxja2ATg4OOCXfumXAHjxF39xXuzFXox/L9v8W0niuUlCEpKQhCQkIQlJPDdJSOJ+knh+JHE/SUjifseOHQPgvvvuu5Wrrrrqqquuuurfi+Cqq6666qqrrvoPcd99993KfxDb/EtsA2Cb+9kGwDb3s839bPNAtvn3ss0D7ezs8HZv93YA/P7v/z733HMP/5VsYxvb2MY2trGNba76v8s2trGNbWxjG9v8V7ONbWxjG9u8IAcHB/ze7/0eAK/6qq/KsWPH+LeyzQPZ5j+bJCQhiQeSxP0kASAJAEncTxLP7dixY1x11VVXXXXVVf9hCK666qqrrrrqqv8QZ8+evfXMmTP8W9kGwDYPZBvb2MY2D2QbANvczzYAtrmfbe5nmweyzX+kV3qlVwLgnnvu4clPfjK2sY1tbPPfzTa2sY1tbGMb29jmqv+ZbGMb29jGNraxjW1s89/FNraxjW1s86/1lKc8hXvuuYdjx47xTu/0Tvxb2OaBbHM/2/xrSOLfQhKSuJ8k7icJAEncTxIvyH333XcrV1111VVXXXXVfwSCq6666qqrrrrqP8zp06f517DNC2Ob52Yb29zPNgC2eW62eX5s80C2+bewzQO98iu/Mo997GM5ODjgl37pl3h+bGMb29jGNrb5n8I2trGNbWxjG9vYxja2ueo/hm1sYxvb2MY2trGNbWzzP4VtbGMb29jmP8rv/d7vcXBwwLFjx3i1V3s1/qPY5kUhiQeShCQkIQlJSEISkpCEJCTx3CRxP0k8P5J4IElIQhLHjh3j7Nmzt3LVVVddddVVV/1HILjqqquuuuqqq/5D3HfffbeeOXOG/yi2eWFscz/bANgGwDbPzTYPZJsHso1tXlS2eaCdnR1e+ZVfGYDf+73f41/LNraxjW1s8z+ZbWxjG9vYxja2sY1tbGMb29jm/zrb2MY2trGNbWxjG9vYxja2sc3/VLaxjW1sYxvb/Gc6ODjg937v9wB48Rd/cW655RZeVLZ5INv8V5KEJCRxP0ncTxIAkgCQxP0kIYkHOnbsGPfdd9+tXHXVVVddddVV/xEIrrrqqquuuuqq/xD33XffrWfOnOFfyzb3sw2AbR7INraxjW3uZ5v72QbANgC2AbDN/WzzL7HNv8Q2z+2N3uiNAHjKU57CPffcw38E29jGNraxjW1s87+RbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sc3/RraxjW1sYxvb/FexjW1sY5u7776bv/qrv+LYsWO82qu9Gi8K2zyQbe5nmxeFJP4lkpCEJF4YSdxPEveTBIAk7ieJq6666qqrrrrqPx3BVVddddVVV131P5ZtbPPcbHM/2zw32wDYBsA297PN/Wzz/NjGNrZ5INvY5rm92Iu9GDfddBMHBwf83u/9Hv8VbGMb29jGNra56qrnxza2sY1tbGOb/2q2sY1tbPP8PPnJT+bg4IBbbrmFV3/1V+eFsc1/NElIQhKSkIQkHkgSkpCEJCTxQJKQBIAknh9JPDdJSOLYsWPcd999t3LVVVddddVVV/1HILjqqquuuuqqq/5DnD179hlnzpzh38I297PNi8I2tgGwDYBtXhDb3M8297PNC2Mb29jm+dnZ2eGN3uiNAPjd3/1dbGOb/y62sY1tbGMb29jGNlf932Qb29jGNraxjW1s89/BNraxjW1s86I4ODjgd3/3dwF4iZd4CY4dO8Zzs41tnptt7meb/0qSkMQDSQJAEgCSAJDEA0lCEvfb2dnh7Nmzz+Cqq6666qqrrvqPQHDVVVddddVVV/2HuO+++27lP5Bt7mcb29jGNg9kGwDbANgGwDYAtrmfbZ4f2/xbvfEbvzEAd999N/fccw/3s41tbGMb2/xPYBvb2MY2trGNbWxz1f9MtrGNbWxjG9vYxjb/3WxjG9vYxjb/Hvfccw9PfvKTOXbsGG/2Zm+GbWxjG9s8P7a5n23uZ5sXRhIviCQkIQlJSEISkpCEJJ6bJCRxP0kASAJAEveThCSe27Fjx7jqqquuuuqqq/7DEFx11VVXXXXVVf9hzpw5w7+VbZ4f2zw329jmfrYBsA2AbQBsA2Cb52abB7LNv9bNN9/MzTffDMDv/d7v8S+xjW1sYxvb/E9jG9vYxja2sY1tbGMb29jmqn8f29jGNraxjW1sYxvb2MY2/5PYxja2sY1t/jP81V/9FQAPetCDeNCDHsS/hW3+NSQhCUlI4kUhCUlI4oEkcT9JAEjifpJ4Yf7hH/7ht7nqqquuuuqqq/4jEFx11VVXXXXVVf8hzp49eyvAmTNn+PeyDYBtXhjb3M82ALYBsA2AbQBsA2Cb+9nmgWzzr/FiL/ZiAPzVX/0VBwcH/FvYxja2sY1tbPO/gW1sYxvb2MY2trGNbWxjG9vYxjb/19jGNraxjW1sYxvb2MY2trGNbWzzP51tbGMb29jGNv8VbLO/v8/v/u7vAvAWb/EWvDC2uZ9tXlSS+I8kCUncTxLPjyQeSBKSkMSxY8e46qqrrrrqqqv+QxFcddVVV1111VX/Ie67775bAc6cOcO/lW1eENvYxja2uZ9t/rVscz/bPJBtbPMvefEXf3Fe/MVfnIODA/7qr/6K/2i2sY1tbGMb2/xfYBvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2/9vZxja2sY1tbPNfyTa2sY1t7nf33Xdz9913c+zYMV7yJV+S58c2z49t/j0kIQlJSEISkpCEJCQhCUlI4oEkcT9JAEgCQBL3k4QkHujYsWMA3Hfffbdy1VVXXXXVVVf9RyC46qqrrrrqqqv+w9x333238h/ENvezzXOzjW0AbANgGwDbANgGwDYAtrmfbe5nm+dmmxfmTd7kTQD43d/9Xf4r2cY2trGNbWxjm6uuekFsYxvb2MY2trHNfzXb2MY2trHNC3JwcMBf/dVfAfCar/maPDfbPJBt/q0kIQlJSOJfSxKSuJ8k7icJAEncTxLPz87ODlddddVVV1111X8ogquuuuqqq6666j/M2bNnbz1z5gz/HrZ5INu8MLYBsA2AbQBsA2AbANsA2Ob5sc1zs41tnturvdqrAXD33Xdz9913Yxvb2Oa/k21sYxvb2MY2trHNVf+32cY2trGNbWxjm/9OtrGNbWzzr3X33Xdz9913c/z4cd7yLd+S+9nmgWxzP9sA2OYFkcSLShKSkIQkJCEJSUjigSQhCQBJPD+SeG6SkIQk7rvvvlu56qqrrrrqqqv+oxBcddVVV1111VX/oU6fPs1/FNvczza2sY1tbHM/2wDYBsA2ALZ5fmwDYJsHss3zYxvb2Abg1V7t1QD4q7/6K56bbWxjG9vY5n8K29jGNraxjW1sY5ur/ueyjW1sYxvb2MY2trHN/wS2sY1tbGOb/wi/+7u/C8CDHvQgjh8/zn80SdxPEpKQhCQk8S+RhCQeSBIAkgCQBIAk7icJSUjifjs7O5w9e/ZWrrrqqquuuuqq/ygEV1111VVXXXXVf5j77rvv1jNnzvDvZZsHss3zY5v72QbANgC2uZ9tAGzz3Gzzr/Gmb/qmADz5yU/m7rvv5kVhG9vYxja2+Z/INraxjW1sYxvb2MY2trnqP45tbGMb29jGNraxjW1s8z+NbWxjG9vYxjb/WQ4ODrj77rs5fvw4r/Var4VtHsg297MNgG1eEEk8N0lI4l8iCUlI4rlJQhL3kwSAJAAkcT9JPD/Hjh3jvvvuu5Wrrrrqqquuuuo/CsFVV1111VVXXfUf5r777rv1zJkz/EeyzQPZxjb3s41tAGwDYJv72QbANgC2AbDN/WxzP9u8MC/xEi8BwJOf/GT+PWxjG9vYxja2+d/ANraxjW1sYxvb2MY2trGNbWxjm//LbGMb29jGNraxjW1sYxvb2MY2tvnfwDa2sY1tbPNfyTa2+Z3f+R0AHvSgB3H8+HHuZ5v72eY/kiQkIQlJSOKBJCEJSUjifpK4nyQAJHE/SVx11VVXXXXVVf9lCK666qqrrrrqqv9ytrGNbWzz/NjmgWxjm/vZxjb3sw2Abe5nGwDbPJBtAGzz/Njm+XnzN39zAJ785Cdz991385/BNraxjW1sY5v/C2xjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sc3/BbaxjW1sYxvb/FeyjW1sYxvb3O/g4IC7776b48eP89qv/dq8MLZ5QSTxQJK4nyQkIQlJ/GtJ4n6SuJ8k7ieJB5KEJCQhiZ2dHe67775bueqqq6666qqr/qMQXHXVVVddddVV/2HOnj37jDNnzvCvZZt/K9vczzb3sw2Abe5nmxfENg9km+f2Ei/xEgA8+clP5r+abWxjG9vYxja2ueqqF5VtbGMb29jGNrb572Ab29jGNv+S3/md3wHgwQ9+MAC2uZ9tHsg2LypJSOL5kYQkJCEJSUhCEpKQhCTuJwlJAEjigSRxP0lI4rkdO3aMs2fPPoOrrrrqqquuuuo/CsFVV1111VVXXfUf5r777ruVfyPbPDfbANjmfraxjW3uZ5v72cY2ALa5n20AbANgGwDb3M82D2Sb+73kS74kAHfffTd33XUXtrGNbf672cY2trGNbWxjm6v+/7GNbWxjG9vYxjb/nWxjG9vYxjb/WgcHB9x9990cP36cl37pl+b5sc0LIokXhSQkIYkXlSQkcT9JAEgCQBL3k8QLsrOzw1VXXXXVVVdd9R+K4Kqrrrrqqquu+g9z9uzZW8+cOcO/lW1eGNs8kG1sA2Ab29zPNvezDYBtAGwDYBsA29zPNg9kG9u8xmu8BgB/+Zd/yXOzjW1sYxvb/E9hG9vYxja2sY1tbGObq/73sI1tbGMb29jGNraxzf8EtrGNbWxjm/8of/mXfwnA67zO63A/2wDYBsA2LwpJ3E8SkpDEc5OEJCQhCUlIQhKSeCBJ3E8SAJK4nyQeSBKSkIQkAP7hH/7ht7nqqquuuuqqq/6jEFx11VVXXXXVVf/hzpw5w7+VbR7INgC2eUFs80C2AbCNbQBs88LY5n62eaCXfMmX5NixY+zv73P33XfzorCNbWxjG9v8T2Ub29jGNraxjW1sYxvbXPWfxza2sY1tbGMb29jGNrb5n8g2trGNbWzzn+nuu+/m7rvv5vjx4zzkIQ/BNv8ekpDEc5OEJCTxL5GEJO4niftJ4n6SuJ8kJPFAOzs7XHXVVVddddVV/+EIrrrqqquuuuqq/zD33XffrQBnzpzh38M2L4htbGMb29gGwDYAtgGwzf1scz/bANgGwDbPj23u91Iv9VIA/OVf/iX/HraxjW1sYxvb/G9hG9vYxja2sY1tbGMb29jGNrb5/8g2trGNbWxjG9vYxja2sY1tbPO/gW1sYxvb2MY2/5VsY5snPelJALzO67wO97MNgG2eH0k8kCSemyQkIYnnJglJSEISkpDEA0lCEgCSeCBJ3E8Sz8/Ozg4A9913361cddVVV1111VX/UahcddVVV1111VX/oe67775bgQfz72QbSQDYRhK2kcRzs40kbCMJ20jCNraRBIBtJGEbSdhGEraRhG0k8UDHjx/nQQ96EABPfvKT+c9gm+dHEv/b2eaq/11s8z+BbV6Qu+++G4CHPOQhPOQhD+FpT3saL4wkXhhJSOK5SUISknhBJCEJSdxPEgCSAJAEgCSemyTud+zYMa666qqrrrrqqv9wBFddddVVV1111X+os2fP3vqYxzyG/wi2uZ9t7mcb29jmfrYBsA2Abe5nG9sA2OaFsc39bPOar/maADzpSU/iv5ptbGMb29jGNra56qp/L9vYxja2sY1t/rvYxja2sc0Ls7+/z5Oe9CQAXvZlXxbbANgGwDYvCklI4oEkIQlJPJAkJCEJSUhCEg8kiftJAkASAJJ4IElI4rndd999t3LVVVddddVVV/1HIrjqqquuuuqqq/5Xsc0D2cY2ALYBsA2AbWxzP9vczzYAtgGwzf1sc78HPehBADzpSU/CNrb5n8A2trGNbWxjG9tcddX9bGMb29jGNraxzX8n29jGNraxzb/Wk570JAAe8pCH8EC2eSBJPDdJPDdJSOKBJCEJSbwgkpCEJAAkIQkASQBI4n6SkMTzs7Ozw9mzZ2/lqquuuuqqq676j0Rw1VVXXXXVVVf9h7rvvvtuPXPmDP9RbHM/2zyQbe5nGwDbANjmfraxzf1sA2CbB7LNA730S780x48fZ39/n7vvvpv72cY2trGNbf4nsY1tbGMb29jGNra56v8O29jGNraxjW1sY5v/CWxjG9vYxjb/Ee6++27uvvtuTpw4wUMf+lBs828hCUk8kCQk8UCSkIQkJCGJ5yaJ+0kCQBL3k8Rzk4QkJLGzs8N99913K1ddddVVV1111X8kgquuuuqqq6666j/Ufffdd+uZM2f4j2SbB7KNbQBsYxsA2wDYBsA2trmfbWwDYJv72ea52eZBD3oQAH/5l3/Jv8Q2trGNbWzzP5VtbGMb29jGNraxjW2u+u9lG9vYxja2sY1tbGMb2/xPYxvb2MY2tvnPdNdddwHwsi/7sgDY5oEk8YJIQhIPJAlJ3E8SkpDE8yMJSUjifpJ4fiTxQJKQxFVXXXXVVVdd9Z+O4Kqrrrrqqquu+l/FNs+PbWxjGwDb3M82trmfbe5nGwDbANjmfi/90i8NwN13382/hW1sYxvb2MY2/xvYxja2sY1tbGMb29jGNraxzVX/MtvYxja2sY1tbGMb29jGNv8b2MY2trGNbf4r2eZJT3oSAA996EN5UUniuUlCEveThCSemyQkIQlJPJAkJAEgCQBJAEjifpKQxPNz0003cd99993KVVddddVVV131H4ngqquuuuqqq676D3X27NlnnDlzhhdGEv9atnkg29jGNra5n21sA2Ab29zPNra5n20AbPNAtnnpl35pAO6++2729/f5j2Qb29jGNraxzf9mtrGNbWxjG9vYxja2sY1tbGMb29jGNraxjW3+J7GNbWxjG9vYxja2sY1tbGMb29jGNraxjW1s87+VbWxjG9vYxjb/1WxjG9vYBmB/f5+77rqLEydO8NCHPhQA2wBI4l8iCUncTxKSuJ8kJCEJSTw3SUhCEveTBIAkACRxP0k8N0lIQhIAZ8+efQZXXXXVVVddddV/JIKrrrrqqquuuuo/1H333XfrmTNn+M9gGwDbPDfb2AbANra5n21scz/b2AbANvezzf0e8pCHAPCkJz2J/yq2sY1tbGMb2/x/Yxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vY5v8T29jGNraxjW3+u9jGNraxzQty9913A/ByL/dy3E8Sz48kACQhiftJQhL3k4QkHkgSkpCEJCTxQJK4nyQAJHE/SdxPEpKQxAPt7Oxw33333cpVV1111VVXXfUfieCqq6666qqrrvoPdfbs2VsBzpw5w38G29zPNraxzf1scz/b2OZ+trHN/WxzP9sA2AbgwQ9+MAB33XUX/91sYxvb2MY2trHNVVf9a9jGNraxjW1sY5v/TraxjW1sY5sX1ZOe9CQAHvawh2EbSbyoJCGJ+0lCEveThCQk8fxIQhKSAJCEJAAkcT9J3E8SL8zZs2dv5aqrrrrqqquu+o9EcNVVV1111VVX/ac4c+YM/5ls80C2sQ2AbWwDYBvb2OaBbHM/2zzQy7zMy3D8+HEA9vf3sY1tbGMb2/xPYRvb2MY2trGNbWxz1f8vtrGNbWxjG9vYxjb/E9jGNraxjW3+Pfb397nrrrs4ceIED3vYw3hRSEIS95OEJO4nCUk8kCQkIQlJSOKBJHE/SdxPEgCSkMRzk4QkdnZ2uOqqq6666qqr/lMQXHXVVVddddVV/6Huu+++W/kPYBvb2MY2D2Sb+9nGNrYBsA2AbWxzP9vYxja2uZ9t7mcbgOPHjwPwpCc9iRfENraxjW1s8z+RbWxjG9vYxja2sY1trvrfwTa2sY1tbGMb29jGNv/T2MY2trGNbf4z3H333QA87GEP4wWRBIAkHkgS95OEJO4nCUlI4vmRhCTuJ4kHkgSAJB5IEpKQxP12dnYAuO+++27lqquuuuqqq676j0Rw1VVXXXXVVVf9h7vvvvtuPXPmDP+RbGObB7LNA9kGwDYAtrGNbZ6bbWxzP9sA2OYhD3kIAHfddRf/GraxjW1sY5v/DWxjG9vYxja2sY1tbGObq/5z2MY2trGNbWxjG9vYxjb/09nGNraxjW3+q9x1110APOxhD+NFJQlJAEhCEveThCTuJwlJSEISkpDE/SQhCQBJAEgCQBL3k4Qknp+dnR2uuuqqq6666qr/FFSuuuqqq6666qr/cGfPnr319OnTD+aFkIRt/rVsIwnbSMI295OEbSRhG0kA2MY2trGNbSQBYBvbSMI2knjIQx4CwJOe9CT+vWzz/Ejifxvb/FtI4v8D2/x/YJv/KWwDsL+/D8CJEyd4fiRxP0lI4n6SuJ8kJAEgCUlI4gWRhCTuJwkASQBI4n6SeG6SeKCzZ88+g6uuuuqqq6666j8alauuuuqqq6666n8c27wobCOJ+9kGwDaSsI1tJPFAtrGNbSQBYBtJvOzLviwAT3rSk/jPZJvnRxL/19jmqv99bPM/iW1ekP39fe666y5uuOEGHvawh/HUpz6V50cS95OEJAAkIQkASUjifpKQhCQkIQlJSOJ+kpAEgCQAJHE/SdxPEs/Pzs4O9913361cddVVV1111VX/0Qiuuuqqq6666qr/cPfdd9+tZ86c4T+LbR7INra5n21sA2Ab29jGNrZ5bra53/Hjx/nvZBvb2MY2trGNba666j+DbWxjG9vYxjb/3WxjG9vY5l9y1113AfCwhz2MB5LEc5PE/SRxP0ncTxKSeGEkIYn7SQJAEgCSkMT9JPGCbG9vc999993KVVddddVVV131H43gqquuuuqqq676D3fffffdeubMGf4z2QbANvezjW0AbGOb+9nGNraxjW1sY5v72ebEiRMA3HXXXdjmfxLb2MY2trGNbWxz1VUvjG1sYxvb2MY2tvmfwDa2sY1tbPOvdffddwPwsIc9jBdEEpIAkIQkACQhCQBJSAJAEpKQhCQkIQlJSOJ+krifJAAkcT9JSOK5SUISADs7O1x11VVXXXXVVf8pqFx11VVXXXXVVf8pzpw5w38220jCNveThG0kYRvb2EYSL4htbCOJhz70oQDcddddANjmuUnifxrbvDCSuOr/Ltv8b2Gb/wz7+/sAnDhxgudHEveTxP0kASAJSQBIQhL/EklIAkASkgCQxP0k8UCSeG6S2NnZ4b777ns6V1111VVXXXXVfzSCq6666qqrrrrqP9zZs2efwYtAEv9etnkg29jGNgC2sY1tbGMb29jGNrZ5oBMnTgCwv7/PC2Ib29jGNraxzf9ktrGNbWxjG9vYxja2uep/HtvYxja2sY1tbGMb29jmfyrb2MY2trHNf5b9/X329/c5efIkD3vYwwCQxHOTBIAkJAEgCQBJSOJ+kpCEJCQhCUlIQhL3k8TzI4n7SUISL8zZs2efwVVXXXXVVVdd9R+NylVXXXXVVVdd9R/uvvvuu/XMmTP8R7PNA0nifra5nyRsYxtJANjGNrZ5braxzcu93MsB8MQnPpF/C9s8N0n8b2Gbfw1JXPWvZ5v/i2zz321/f5/t7W2eH0lIAkASAJKQBIAk7icJSdxPEpKQhCTuJwlJAEgCQBIAkrifJJ6bJB5oe3ubs2fP3spVV1111VVXXfUfjeCqq6666qqrrvoPd/bs2VsBzpw5w38U2zw32wDY5oFsA2Ab29jmgWxjG9vY5n4nTpwAYH9/n/8otrGNbWxjG9v8X2Ab29jGNraxjW1sYxvb2MY2trGNbWxjm/9tbGMb29jGNraxjW1sYxvb2MY2trGNbWzzv51tbGMb29jGNv9dbGMb29x1110APOxhD0MS95PE/SQBIAkASUgCQBKSAJCEJCTx3CQhiftJAkASAJIAkIQk7icJSUji+bnvvvtu5aqrrrrqqquu+o9GcNVVV1111VVX/ac5c+YM/9lsA2Ab29jGNraxjW1sYxvb2MY2trGNbWxjmxMnTgBwcHDAfzbb2MY2trGNbf6/sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjm/9PbGMb29jGNrb572Qb29jGNrZ5oLvuuguAhz3sYTw3SUgCQBIAkgCQhCQAJCEJAElIQhKSkIQk7icJSQBIAkASAJK4nyQk8YLccMMNXHXVVVddddVV/2moXHXVVVddddVV/+Huu+++WwEk8S+RhG3+PWwjiQeyjSRsYxvb2MY2tnl+HvawhwFw11138d/FNi+IJK666j+Sbf4ns82/xv7+Ps+PJO4nCQBJAEgCQBKSAJCEJF4QSUjifpIAkASAJO4niecmiQfa2dkB4L777ruVq6666qqrrrrqPxqVq6666qqrrrrqP8V999136+nTpx/Mv4EkbPOvZZsHso0kAGzzQLaxjW1sY5sTJ04AsLe3B4Ak/iexzQsiiauuen5s87+Bbf6jnDx5kvtJAkASkgCQBIAkACQBIAlJAEhCEpKQhCQkIQlJAEhCEgCSAJDE/SRxP0lcddVVV1111VX/LQiuuuqqq6666qr/FGfPnr31zJkzSOI/i23uZxsA29gGwDa2sQ2AbWxjG9vY5oWxjW1sYxvb/E9lG9vYxja2sY1tbGObq/7vsY1tbGMb29jGNraxzf9EtrGNbWxjm/8I+/v77O/vc+LECU6ePMn9JAEgCUlIQhKSkIQkJAEgCUncTxKSkMQDSeJ+kgCQxP0kcT9JvDDb29v8wz/8w29z1VVXXXXVVVf9ZyC46qqrrrrqqqv+V7INgG1sA2Cb+9nGNraxjW1sYxvb3M82tnnYwx4GwF133cULYxvb2MY2trHN/wa2sY1tbGMb29jGNraxzVX/M9jGNraxjW1sYxvb2OZ/A9vYxja2sc1/pv39fQBOnDiBJCQBIAkASQBIAkASAJKQBIAkJCGJB5KEJCQBIAlJAEgCQBKSAJCEJO4nCUlIQhKSkMTOzg733XffrVx11VVXXXXVVf8ZqFx11VVXXXXVVf8p7rvvvlsf85jHACAJ2/xHsc1zs40kbHM/SdjGNraxjW1sYxvb2MY2J0+eBGB/f59/C9s8N0n8b2Sbfw1JXPXC2eb/Otv8T3LixAnuJwkASQBIAkASAJIAkIQkACQhCUlIQhKSuJ8k7icJAEncTxL3k8RVV1111VVXXfXfhuCqq6666qqrrvpPcd99993Ki0gS/xFs80C2sY1tbGMb2wDYxjb3O3HiBP/RbGMb29jGNrb5v8Y2trGNbWxjG9vYxja2sY1tbGMb29jGNraxzf8ktrGNbWxjG9vYxja2sY1tbGMb29jGNraxjW3+L7GNbWxjG9vY5r+TbWxjmzvvvJMHkgSAJAAkASAJSUhCEpIAkIQkXhBJSAJAEveTxP0kcT9J/Eu2t7e57777buWqq6666qqrrvrPQOWqq6666qqrrvpPc+bMGe4nCdv8Z7PNA0nCNraxDYBtbGMb29jm5MmTANx11138Z7PN8yOJ/+9sc9X/DLb5n8o2/5KTJ08iCQBJAEgCQBKSAJAEgCQkASAJSUhCEpKQhCTuJwkASUjifpIAkMQDSeIF2d7e5uzZs8/gqquuuuqqq676z0Dlqquuuuqqq676T3H27Nln8F/ANveTBIBt7mcbSdgGwDa2sQ2AbWzzP4FtXhBJXHXVfzTb/E9nm3+N/f19AE6cOAGAJAAkIQlJSAJAEgCSAJCEJAAkIQlJSOJ+kpAEgCQeSBIAkrifJK666qqrrrrqqv9WVK666qqrrrrqqv8U9913361nzpzhgSRhmxeFJGzzr2EbSTyQbWwDYBvb2MY2trENwIkTJwCwzf9EtnlhJHHVVc+Pbf63sM2/1/7+PgAnT55EEgCSkASAJAAkIQlJSEISkpCEJJ6bJCQhCQBJAEgCQBIAkrifJJ6bJJ7b9vY29913361cddVVV1111VX/GahcddVVV1111VX/Kc6ePXsrwJkzZzh79iz/EknY5t/LNpKwzf1sIwnb2MY2ALaxjW3ut7+/j22emyT+J7PNCyOJq/5vss3/Rrb5ryAJSQBIQhKSkASAJCQhCQBJSEISkpCEJCRxP0kASAJAEgCSAJDEA0niBdne3gbg7Nmzt3LVVVddddVVV/1noHLVVVddddVVV/2nOnPmDGfPnuV+krDNfwTbvDC2AbCNbWxjG9vYxjYAtrnf/v4+z49tnh9J/G9gmxeFJK76n8E2/1fY5r/K/v4+ACdOnEASkgCQhCQAJCEJSUgCQBKSAJCEJCQhiftJQhIAkgCQBIAkACRxP0n8S7a2trjqqquuuuqqq/5TUbnqqquuuuqqq/5T3Hfffbfy38Q2krifbWxjG9vYxja2sY1tTp48yb+FbZ6bJP63ss2/liSueuFs8/+Fbf6nkASAJCQBIAlJAEhCEpKQhCQk8dwkIYn7SQJAEgCSAJDE/STxQJJ4fnZ2dgC47777buWqq6666qqrrvrPQOWqq6666qqrrvpPc9999916+vTpB/NcJGGb/0y2kYRtAGxjG9vYxja2sY1t/iPZ5vmRxP9FtvmPJIn/bra56oWzzf80trHNA0lCEgCSkASAJCQBIAkASUhCEpKQhCQkASAJSQBIAkASAJIAkMQDSeKqq6666qqrrvpvReWqq6666qqrrvpPc/bs2VvPnDnzYF5EkrDN/SRhm38v29jGNraxjW1sYxvb/FewzfMjiauezTZX/c9hm/+pbPPCSEISAJKQhCQkIQlJSEISkrifJCQhiftJQhIAkgCQBIAkACRxP0k8P5K4n222trb4h3/4h9/mqquuuuqqq676z0Llqquuuuqqq676T3XmzBn+I0jCNv8atpEEgG1sYxvbZCaSsI1t/jvZ5gWRxFVX/Wezzf90tvnXkgSAJCQhCQBJSAJAEgCSkIQkHkgSkrifJAAkASAJAEncTxIPJInnRxLb29vceeedt3LVVVddddVVV/1noXLVVVddddVVV/2nue+++2699tpreX4kYZv/KrbJTAAkYRvb2MY2/1PZ5oWRxFVX/Uts87+Nbf4jSEISkgCQhCQkIQlJSEISkpCEJCQhCUkASEISAJIAkASAJAAk8UCSuOqqq6666qqr/tsRXHXVVVddddVV/2nuu+++W/lXksR/JNs8kG1sYxvb2MY297ONbWxjm//pbGMb29jGNraxjW2u+v/BNraxjW1sYxvb2OZ/OtvYxja2sc2/lyQkIQlJAEhCEpKQhCQkIQkASUhCEpK4nyQkASAJAEkASAJAEveThCQeSBKSkIQkJCGJ7e1t7rvvvlu56qqrrrrqqqv+s1C56qqrrrrqqqv+U505c4b/braRhG0AMhNJ2MY2trHN82Ob5yaJ/y1s86KQxFX/89jm/xrb/FeRxP0kIQlJSAJAEpKQhCSemyQkcT9JAEgCQBIAkrifJO4niX/J9vY2Z8+efQZXXXXVVVddddV/FoKrrrrqqquuuuo/zdmzZ5/BCyGJf4kknpskACTxb2Eb22QmmYltzp8/D8D29jb/EtvYxja2sc3/draxjW1sYxvb2MY2trGNbWxz1b+NbWxjG9vYxja2sY1tbGMb2/xvZhvb2MY2trHNfzVJSEISkpCEJCQhCQBJSEISkpCEJCQBIAlJAEgCQBIAkgCQhCQAJCGJ5yYJSUhCEgBbW1tcddVVV1111VX/qahcddVVV1111VX/ae67775bz5w5w38USdjm38I2krANQGYiCdvY5t/LNs+PJP4vss1/FEn8T2abq14w2/xPsr29DcDFixeRhCQkIQlJSEISkpCEJCQhCUlIQhL3k4QkACQBIAkASQBI4n6SeCBJvCCSALjvvvtu5aqrrrrqqquu+s9C5aqrrrrqqquu+k9z9uzZWwHOnDnD2bNneX4kYZsHkoRt/jPZxja2sY1t/jPY5gWRxFVgm6v+57PN/2S2eSBJSEISkpCEJCQhCUlIQhL3k8T9JCEJSQBIAkASAJIAkASAJB5IEv+Sra0tAM6ePXsrV1111VVXXXXVfxaCq6666qqrrrrqP92ZM2f4n8A2ALaxTWaSmWQm58+fB2BnZ4f/KraxjW1sYxvbXHXVfxfb2MY2trGNbWzzP4ltbGMb29jmftvb2wDs7u4iCUlIQhKSkIQkJCEJSUhCEgCSkIQk7icJAEkASAJAEgCSuJ8kJPFAkpCEJCQhCUlsb29z1VVXXXXVVVf9p6Ny1VVXXXXVVVf9p7nvvvtuBTh9+jT/HpKwzfMjCdu8qGwjCQDb2MY2Z8+eBWB7e5v/brZ5YSRx1VX/Vrb538Y2/xaSkIQkJCEJSQBIAkASkpCEJCQhCQBJSAJAEpIAkMT9JAEgiQeSxL9ka2sLgPvuu+9Wrrrqqquuuuqq/yxUrrrqqquuuuqq/1T33XffrWfOnHkwL4QkbPNAkrDNfxbbAGQmkrDN/xa2eWEkcdX/X7b538w2/x7b29sA7O7uIglJSEISkpCEJCQhCUlIQhKSuJ8kJAEgCUkASOJ+kgCQxP0k8fxI4qqrrrrqqquu+m9B5aqrrrrqqquu+k919uzZW4EH8x9EEraRhG0AJGGbF5VtJAFgG9ucPXsWgO3tbWzzQJL438Q2/xJJXPW/i23+r7HNf7SdnR0ALl26hCQkIQlJSEISkpCEJJ6bJCQhCQBJSAJAEgCSuJ8k7ieJB5LEC7O9vc0//MM//DZXXXXVVVddddV/JipXXXXVVVddddV/ujNnzvAvkYRt/q0kYZsXlW3ul5mcPXsWgO3tbZ6bbZ4fSfxvZZt/DUlc9R/PNv8f2Oa/yvb2NgC33XYbkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSAJAEgCTuJwkASTyQJF4UW1tb3H777bdy1VVXXXXVVVf9Z6Jy1VVXXXXVVVf9p7rvvvtuvfbaa/n3koRtXhhJ2OZfyzb33nsvADs7O7yobPPcJPF/kW3+PSTxf5FtrnpOtvnvtLOzA4AkJCEJSUhCEpKQhCQkIQlJSEIS95OEJAAkASAJAEncTxL3k8QDSeKqq6666qqrrvpvR+Wqq6666qqrrvpPdd9999364i/+4vxbSMI2/1lscz/bAGxvb/PvYZsXRBL/X9nmqv9bbPM/0fb2NgCXLl0iIpCEJCQhCUlIQhKSkIQkJAEgCUncTxIAkgCQBIAk7ieJB5LEi+K6667jL/7iL27lqquuuuqqq676z0Rw1VVXXXXVVVf9l5DEv0QSLwpJAEjiuUni3+K+++7j7NmzANx44438Z7CNbWxjG9vY5qqr/qeyjW1sYxvb2MY2/5PYxjZbW1sA7O7uIglJSCIikIQkJCEJAElI4n6SkASAJCQBIAkASQBI4n6SuJ8kJPFAkpCEJCQhCUlIAuDs2bPP4Kqrrrrqqquu+s9EcNVVV1111VVX/af6h3/4h985c+YM/5Uk8YLYxja2AbCNbWxz9uxZ/jvYxja2sY1tbGObq676z2Yb29jGNraxjW3+p7KNbWxjm/vdeOONADzjGc9AEpKICCQREUhCEpKQxP0kIQlJAEhCEgCSAJAEgCQAJCEJAElI4n6SkIQkXpitrS2uuuqqq6666qr/dARXXXXVVVddddV/iTNnziCJfy1J3E8S/5FsA2Ab2/zDP/wDADfccAP/U9jGNraxjW1sYxvbXHXVv8Q2trGNbWxjG9vY5n8629jGNraxzQuys7MDgCQkERFIQhKSkIQkJCEJSUhCEpIAkIQkACQBIAkASQBI4n6SuJ8kJPHcJCEJSUhCEve77777buWqq6666qqrrvrPRHDVVVddddVVV/2nOnv27K0Ap0+fBkASL4wk/iNI4vmRxAvyD//wDwDceOON/G9hG9vYxja2sY1tbGObq/7vso1tbGMb29jGNraxzf8mtrGNbWxjm3+N7e1tAG677TYkIQlJSEISEYEkJCEJSUhCEgCSkASAJAAkASAJAEkASEISAJKQxANJQhKSeH62trYAOHv27K1cddVVV1111VX/mahcddVVV1111VX/5SRhm38PSdhGErb5t7KNJGxz3333AbC9vY1tHkgS/1vZ5kUliav++9nm/zLb/Ge48cYbAbj99tuJCCQhCUlIAkASkpCEJCQBIAlJAEhCEgCSuJ8kACRxP0ncTxIvjCRsA3Dddddx1VVXXXXVVVf9lyC46qqrrrrqqqv+U9133323Apw5c4YXlSQeSBL3k8SLShIvCts80M7ODs/NNraxjW1sY5v/a2xjG9vYxja2sY1tbGMb29jGNra56vmzjW1sYxvb2MY2trGNbWxjG9vY5v8S29jGNraxzX+WnZ0dAPb29pBERBARRASSiAgkIQlJSAJAEpIAkIQkACQBIAlJAEgCQBKSAJCEJB5IEpKQhCQkASAJSdzvvvvuu5Wrrrrqqquuuuo/E8FVV1111VVXXfWf7r777rv19OnTPJAk/itI4kVhm/vuu49/+Id/AODGG2/kRWEb29jGNraxzf83trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2tvmPZBvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb/H9iG9vYxja2sc1/lUc/+tEA/N3f/R0RQUQgCUlIQhKSkIQkJAEgCUlIQhKSAJAEgCQAJCEJAEncTxL3k4QkJPEv2dra4r777ruVq6666qqrrrrqPxvBVVddddVVV131n+7s2bO38j+IJF6Qf/iHfwDgxhtv5N/DNraxjW1sY5ur/u1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb21z1b2cb29jGNraxzX+3nZ0dACQhCUlIQhKSkIQkJCEJAElIQhIAkgCQBIAkACQBIAlJAEhCEgCSkMRzk4QkJCEJSUhCEltbW5w9e/ZWrrrqqquuuuqq/2wEV1111VVXXXXVf4nHPvaxPDdJvCCSeCBJPDdJAEjihZHEi8I2//AP/wDAjTfeyH8G29jGNraxjW1sc9VV/1PYxja2sY1tbGOb/6luvPFGAG6//XYiAklEBJKQhCQkIQkASUhCEgCSAJAEgCQAJAEgiftJ4n6SeCBJSEIS/5L77rvvVq666qqrrrrqqv9sVK666qqrrrrqqv909913363XXXcdz48kbPOvIQnb/EeyjSTuu+8+ALa3t/mvZpsXRhJXXfUfwTb/F9jmfjfeeCMAd9xxBxFBRCCJiEASkrifJCQhCQBJSAJAEgCSuJ8kACRxP0k8kCSemyRekM3NTa666qqrrrrqqv8SBFddddVVV1111X+6++6779YzZ87w30kSDySJ52ab++67j3/4h39gZ2eHG2+8kf9JbGMb29jGNraxjW2uuup+trGNbWxjG9vYxjb/G9nGNraxjW3u95jHPAaA22+/nf39fSQhCUlIQhKSkIQkJCEJAElIAkASAJIAkIQkACRxP0ncTxKSuJ8kJCGJF2Zra4v77rvvVq666qqrrrrqqv9sBFddddVVV1111X+ZM2fO8PxI4vmRxANJ4rlJAkAS/xFs8/d///cA3HjjjfxvYhvb2MY2trGNbWxjG9tc9b+XbWxjG9vYxja2sY1tbPO/nW1sYxvb2OaFufHGGwHY29sjIogIIoKIQBKSkIQkJCEJSUhCEgCSAJAEgCQAJCEJAElIAkASkrifJCTx3CQhCUlIQhKbm5sAnD179hlcddVVV1111VX/2Qiuuuqqq6666qr/dL/927/9Pffee+9vf9qnfRpv+7Zvy38ESTw3SUjiBZHEi+Lv//7vAXjMYx7D/0W2sY1tbGMb29jGNraxjW2u+s9nG9vYxja2sY1tbGMb29jm/yLb2MY2trHNv9aNN94IwOMe9zgiAklIQhKSkIQkJCEJSQBIAkASAJIAkASAJO4niftJ4n6SkMT9JCEJSUjiuV1zzTW81Vu9FYeHh7f+1m/91ndz1VVXXXXVVVf9ZyO46qqrrrrqqqv+09133323ft3Xfd1727717d7u7figD/ogzpw5wwNJ4vmRxL+WJF4Uknh+zp49C8D29jY33HADtrGNbWzz/4ltbGMb29jGNraxjW1sYxvb2MY2trGNbf4vs41tbGMb29jGNraxjW1sYxvb2MY2trHN/xe2sY1tbGMb2/xH2NnZAeCuu+4iIogIIgJJSEISkpCEJAAkIQlJSEISkpAEgCQAJCEJAElIAkASkrifJCTx/Ehia2uL13u91+P1Xu/1uO+++279+q//+vfhqquuuuqqq676r0A5fvw4V1111VVXXXXVf76jo6NLf/Znf/Yzh4eHu2/2Zm/22i/3ci/H5uYmj3/84/nXkMRzk8Rzk8TzI4nnRxL3Ozw85MVe7MW45ppr2Nvb48477+RFIYmrrvr/zjb/lR7zmMfw0Ic+lMc97nHceuutRAQRQUQgCUlIQhKSkIQkJAEgCQBJAEhCEgCSAJCEJAAkIYn7SUIS95OEJCQhCUlcc801vPEbvzGbm5v8yI/8yGd/6Zd+6ducPXv2Vq666qqrrrrqqv8KlOPHj3PVVVddddVVV/3XODw83P2Hf/iH3/nt3/7t73mxF3uxl36t13qtB585c4bbbruNo6MjJPH8SOL5kcQLI4nnRxL3k8Rzs83Zs2d53dd9XSTx+Mc/nn8vSVx11f8ltvmf4DVf8zXZ2dnhr//6r7lw4QIRQUQgCUlIQhKSkASAJCQhCUlIAkASAJKQBIAk7ieJ+0lCEveThCQeaHNzk9d4jdfgxV/8xbnvvvtu/fiP//iX+dM//dOf4aqrrrrqqquu+q9EOX78OFddddVVV1111X+tw8PD3X/4h3/4ncPDw903e7M3e+2Xe7mXY2Njg8c//vH8R5PEv9VbvMVbsLOzw5133sn+/j7/GSRx1VX/U9nmf7rXf/3XB+CXfumXiAhKKUgiIogIIgJJSEISkpAEgCQAJCEJAEkASEISAJKQBIAkJHE/SUjifpKQxLXXXssbvdEbsbm5yY/8yI989pd+6Ze+zeHh4S5XXXXVVVddddV/Ncrx48e56qqrrrrqqqv+6x0eHu7+wz/8w+/89m//9ve82Iu92Eu/1mu91oPPnDnDbbfdxuHhIS+MJO4nCQBJvCCSeG6SuJ8kACRxv8PDQ178xV+ca665hr29Pe68807+O0jiqqv+M9nmf6tHP/rRPOxhD+Pxj388z3jGM4gIIoKIQBKSkIQkJAEgCQBJAEgCQBKSAJDE/SQBIAlJ3E8SkrifJCSxubnJq7/6q/PiL/7i3Hfffbd+/Md//Mv86Z/+6c9w1VVXXXXVVVf9d6EcP36cq6666qqrrrrqv8/h4eHuP/zDP/zO4eHh7pu92Zu99su//MuzsbHB4x//eB5IEv8eknhRSQLgvvvu43Vf93XZ2dnhb/7mb/ifSBJXXfWC2Ob/Cts8t9d8zddkZ2eHv/3bv+XixYtEBBGBJCQhCQBJSEISkpCEJCQhCUkASEISAJKQBIAk7icJSQBIQhKSALjmmmt4ozd6IzY3N/mRH/mRz/7SL/3Stzk8PNzlqquuuuqqq67670Q5fvw4V1111VVXXXXVf6/Dw8Pdf/iHf/id3/7t3/6eF3uxF3vp13qt13rwmTNneMYznsHR0RHPjyT+tSTxQJK4nySen7d4i7dgNptx5513sr+/z/9Wkrjq/xbb/F9lm3/Jzs4Or/marwnAr/zKr1BKQRIRgSQkIQlJSEISkgCQBIAk7icJAElIAkASkgCQhCQAJCGJ+21ubvLqr/7qvPiLvzj/8A//8Nuf9Vmf9Tp/+qd/+jNcddVVV1111VX/E1COHz/OVVddddVVV131P8Ph4eHub/3Wb30PwJu92Zu99su//MuzubnJ4x//eAAk8fxIAkAS/1qSeCBJ3O/o6IhrrrmGhzzkIQA87WlP4/8DSVz138M2/9/Y5t/iNV/zNTlz5gxPeMITuO2224gIIgJJSEISkpCEJAAkIQlJSAJAEpIAkASAJCQBIAlJ3E8S95PENddcwxu90RuxubnJj/zIj3z213/917/P4eHhLlddddVVV1111f8UlOPHj3PVVVddddVVV/3P8g//8A+/89u//dvf82Iv9mIv/Vqv9VoPPnPmDM94xjM4Ojri30sSL4gk7icJgKc//em8xVu8BbPZjL/+678GQBJXPX+S+P/ONlc9L9v8R3rN13xNZrMZf/iHf8jR0RERgSQkIQlJSEISkpCEJCQBIAlJAEhCEgCSuJ8k7icJSQBIYmtri1d7tVfjxV/8xfmHf/iH3/6sz/qs1/nTP/3Tn+Gqq6666qqrrvqfhnL8+HGuuuqqq6666qr/eQ4PD3d/67d+63sA3uzN3uy1X/7lX57NzU0e97jHcT9J/FtI4oEk8UCSuN/h4SEv/uIvzs0338ze3h7nzp3jBZHEVVf9f2eb/2yPecxjeOxjH8tdd93FX/3VXxERRAQRQUQgCUlIQhKSkASAJCQBIAlJAEhCEgCSkASAJCQBIAlJnDlzhjd8wzdkc3OTH/mRH/nsr//6r3+fw8PDXa666qqrrrrqqv+JKMePH+eqq6666qqrrvqf6x/+4R9+57d+67e+G9h9h3d4h9e+5ppreMYznsHR0REPJAkASbwoJPH8SOJ+krjfK73SK3HmzBn++q//mn8tSVx11f81tvnv8pqv+Zrs7OzwF3/xF+zu7hIRSEISkpCEJCQhCQBJSAJAEpIAkIQkACQhCQBJSAJAEpLY3Nzk1V7t1XjxF39x/uEf/uG3P+RDPuQh//AP//A7XHXVVVddddVV/5NRjh8/zlVXXXXVVVdd9T/b0dHRpX/4h3/4HYA3e7M3e+2Xf/mXZ3Nzk8c97nFI4t9KEveTxANJ4n6Hh4e8xVu8BbPZjDvvvJO9vT3+o0jiqqv+p7LN/zQ33ngjr/zKrwzAb/zGbxARSEISkpBERCAJAElIAkASkgCQhCQAJCEJAElI4n6SADhz5gxv+IZvyOHh4a0///M//9Vf//Vf/z5cddVVV1111VX/G1COHz/OVVddddVVV131v8M//MM//M5v//Zvf4/t3Xd4h3d47TNnzvCMZzyDw8NDACQBIAlJSOJfQxIAknigw8NDbPMSL/ES7Ozs8PjHP57/KpK46qr/LLb53+YN3uAN2NnZ4UlPehJ33HEHEUFEEBFIQhIAkpCEJCQhCQBJSAJAEpIAkIQk7icJSWxubvLqr/7qvNiLvRj/8A//8Nsf//Ef/zL/8A//8DtcddVVV1111VX/W1COHz/OVVddddVVV131v8fh4eHuP/zDP/wOwJu92Zu99su//MuzubnJ4x73OJ4fSUjiBZHECyKJ+9133328xVu8BQBnz55lf3+f/wkkcdVVL4ht/i/Z2dnhNV/zNQH4zd/8TaZpQhKSkEREIAlJSEISAJKQhCQAJCEJAElI4n6SkATANddcwxu+4RtyeHh468///M9/9dd//de/D1ddddVVV1111f82lOPHj3PVVVddddVVV/3v8w//8A+/89u//dvfY3v3Hd/xHV/7zJkzPOMZz+Dw8JDnRxIviCTuJwkASTzQ4eEh11xzDY9+9KORxNOe9jT+N5HEVf932Ob/Ots8t9d8zdfkzJkzPPnJT+ZpT3saEUFEEBFIQhKSkIQkJCEJAElIQhIAkpAEgCQkIQmAra0tXu3VXo0Xe7EX4x/+4R9+++M//uNf5h/+4R9+h6uuuuqqq6666n8jyvHjx7nqqquuuuqqq/53Ojw83P2Hf/iH3zl79uwzXvu1X/ulX/u1X/v45uYmj3vc43h+JCGJ50cS95MEgCQe6OlPfzpv8RZvwWw24+zZs+zv7/N/lSSu+q9lm/+vbPMv2dnZ4Q3f8A0B+O3f/m2maUISkpCEJCQhCUkASEISkgCQhCQkASAJSdxPEtdccw1v8AZvwOHh4a1f8iVf8jY/+qM/+jlcddVVV1111VX/m1GOHz/OVVddddVVV131v9utt97613/2Z3/2M7Z33/Ed3/G1r7nmGm699VaOjo54fiTxryWJg4MDzpw5w2Me8xgk8bSnPY2rnj9J/H9jm6teONv8W73ma74mZ86c4alPfSpPf/rTiQgigohAEpKQhCQkIQkASUhCEgCSkIQk7ieJra0tXu3VXo0Xe7EX4x/+4R9+++M//uNf5uzZs7dy1VVXXXXVVVf9b0c5fvw4V1111VVXXXXV/36Hh4e7//AP//A7Z8+efcZrv/Zrv/Rrv/ZrH9/Y2OBxj3scz48knpsk7icJAEk80NOf/nTe4i3egtlsxtmzZ9nb20MSV1111bPZ5j/Szs4Ob/iGbwjA7/7u7zJNExGBJCQhCUlIQhKSkIQkACQhCUncTxKSkMSZM2d4gzd4Aw4PD2/9ki/5krf50R/90c/hqquuuuqqq676v4Jy/Phxrrrqqquuuuqq/ztuvfXWv/6zP/uzn7G9+47v+I6vfc0113DrrbdydHTEc5PEc5PE/SRxP0kAHBwccM011/DoRz+anZ0dHv/4x/PCSOKqq/6vss1/hTd/8zdnZ2eHpz71qdx6661IQhIRgSQkIQlJSEISkpCEJAAkIQlJSAJgc3OTV3u1V+PFXuzF+K3f+q3v/qzP+qzXOXv27K1cddVVV1111VX/l1COHz/OVVddddVVV131f8vh4eHuP/zDP/zOP/zDP/zOm73Zm732a7/2ax/f2NjgcY97HM9NEs9NEg8kiQd6+tOfzlu8xVuws7PDnXfeyd7eHv8Wkrjqqv/pbPPf6aabbuKVX/mVOTg44E//9E+ZpomIICKQhCQkIQkASUhCEpKQhCTuJwlJXHPNNbzBG7wBh4eHt37Jl3zJ2/zCL/zC13DVVVddddVVV/1fRDl+/DhXXXXVVVddddX/TWfPnr31T//0T38a2H3Hd3zH177mmmu49dZbOTo64oEk8YJIAkAS9zs8POTee+/llV/5lbnpppv467/+a/4zSOKqq/6z2eZ/sjd4gzdgZ2eHJz7xidx9991EBBGBJCQhCUlIQhL3k4QkJCEJSUhiY2ODV33VV+Wxj30sv/Vbv/Xdn/VZn/U6Z8+evZWrrrrqqquuuur/Ksrx48e56qqrrrrqqqv+7zo6Orr0D//wD7/zD//wD7/zZm/2Zq/92q/92sc3Nzd53OMexwNJ4oEkcT9J3E8Stjk8POSVXumVOHnyJPv7+5w9e5b/apK46qp/iW3+t3rMYx7Dy7zMywDwO7/zO0QEEYEkJCEJSUhCEpKQhCSemySuueYaXv/1X5/Dw8Nbv+RLvuRtfuEXfuFruOqqq6666qqr/q+jHD9+nKuuuuqqq6666v++s2fP3vpnf/ZnP2N79x3f8R1f+5prruHWW2/l6OiI+0nigSTxQJK43+HhIQcHB7zyK78yZ86c4a//+q/5n0oSV/3fY5v/697iLd6C2WzGb//2b7NcLokIJCEJSUhCEpKQhCQkIQlJSEISm5ubvNRLvRQv9VIvxY/8yI989pd+6Ze+zdmzZ2/lqquuuuqqq676/4By/Phxrrrqqquuuuqq/x8ODw93/+Ef/uF3fuu3fuu73/Ed3/GtX/u1X/v4xsYGj3vc47ifJB5IEgCSAJDE/Z7+9KfzYi/2Ytxyyy3s7OzwtKc9jf8LJHHVfz3b/H9nm/u94Ru+ITfddBNnz57lCU94AhGBJCICSQBIQhKSkIQkJCEJSUjizJkzvP7rvz7DMNz6JV/yJW/z27/929/DVVddddVVV131/wnl+PHjXHXVVVddddVV/78cHR1d+rM/+7Ofsb37ju/4jq8NcPbsWY6OjgCQxANJAkAS95MEwN///d/zFm/xFsxmM86dO8fe3h7/30ni/yPbXPWisc0Lc9NNN/Far/VaAPzlX/4ly+WSiEASkpCEJAAkIQlJSEISktjc3OThD384L//yL8+P/MiPfPaXfumXvs3Zs2dv5aqrrrrqqquu+v+Gcvz4ca666qqrrrrqqv9/Dg8Pd//hH/7hd377t3/7e977vd/7rV/7tV/7+MbGBo973OMAkMTzI4kHOjw8xDYv//Ivz0033cRf//Vfc9VVV11hm3+LN3zDN2RnZ4cnPOEJ3HHHHUhCEpKQhCQkASAJSUhCEgCnT5/mdV/3dbF965d8yZe8zW//9m9/D1ddddVVV1111f9XlOPHj3PVVVddddVVV/3/dXh4uPtnf/ZnP2N79x3f8R1f+5prruHP/uzPAJDE/STxQJK433333ceDH/xgbrnlFgDuuOMOJHHVVf9f2OY/yiu/8ivz2Mc+lnPnzvHXf/3XRASSkASAJCQhCQBJSEISGxsbPPzhD+flXu7l+JEf+ZHP/tIv/dK3OXv27K1cddVVV1111VX/n1GOHz/OVVddddVVV131/9vh4eHuP/zDP/zOb//2b3/PO7zDO7z1m73Zmx3f2NjgcY97HJK4nyQAJAEgCYDDw0Puu+8+Xvd1X5ednR3Onj3L3t4eL4gkrrrqfxvb/Ge76aabeMM3fEMA/uZv/obVaoUkJCEJSQBIQhIAkpDE6dOneZ3XeR0y89Yv+ZIveZvf/u3f/h6uuuqqq6666qqrgHL8+HGuuuqqq6666qqrAA4PD3f/7M/+7Gds777jO77ja0vicY97HJK4nyQAJPFA9913H7Z5+Zd/eW666Sb+6q/+in8LSVx11X8H2/x3e8M3fEN2dnZ48pOfzJ133okkJCEJAEkASAJAEpubmzz0oQ/lZV7mZfiRH/mRz/7SL/3Stzl79uytXHXVVVddddVVV11BOX78OFddddVVV1111VX3Ozw83P2Hf/iH3/nt3/7t73nv937vt36zN3uz4xsbGzz+8Y/nfpIAkMQDnT17lgc/+MHccsst7Ozs8NSnPpX/DJK46qp/Ldv8T/b2b//23HTTTSyXS/7qr/4KSUgCQBIAkgCQBMDp06d5zdd8TTLz1i/5ki95m9/+7d/+Hq666qqrrrrqqqueE+X48eNcddVVV1111VVXPbfDw8PdP/3TP/1pYPcd3/EdXxvg8Y9/PPeTxP0kAXB4eMjf//3f8xZv8RacOXOGvb09zp49y38HSVz1/4Nt/re76aabeOVXfmUA/vqv/5r1eo0kACQBIIn7bWxs8JCHPISXfumX5kd+5Ec++0u/9Evf5uzZs7dy1VVXXXXVVVdd9bwox48f56qrrrrqqquuuur5OTo6uvQP//APv/Pbv/3b3/Pe7/3eb/1mb/Zmx7e2tviHf/gHACRxP0kAHB4ect999/FKr/RKnDlzhqc+9ams12v+p5PEVf9z2Ob/i52dHd7t3d4NgKc97Wncc889SAJAEveTBMDJkyd59Vd/dVprt37Jl3zJ2/z2b//293DVVVddddVVV131glGOHz/OVVddddVVV1111QtzeHi4+2d/9mc/Y3v3Hd/xHV8b4HGPexz3kwSAJACe/vSnc+bMGR7zmMfwsIc9jL/6q7/i/zJJXPW8bHPVv+wt3uIt2NnZ4eLFizzxiU9EEpKQxANtbGzwoAc9iJd8yZfkR37kRz77S7/0S9/m7Nmzt3LVVVddddVVV131wlGOHz/OVVddddVVV1111b/k8PBw9x/+4R9+57d+67e++33e533e+s3e7M2Ob25u8rjHPQ4ASTzQ05/+dB7ykIdw8803s7Ozw1Of+lSuuur/M9s8t3d4h3fgpptuYrVa8Zd/+ZdIQhLP7eTJk7zyK78y0zTd+iVf8iVv89u//dvfw1VXXXXVVVddddWLhnL8+HGuuuqqq6666qqrXlRHR0eX/uzP/uxnbO++4zu+42sDPO5xjwNAEvc7Ojri7/7u73iLt3gLzpw5A8Add9zBVVf9X2abF9Urv/Ir82Iv9mIAPO5xj2MYBu4nCUksFgtuueUWHvvYx/IjP/Ijn/2lX/qlb3P27Nlbueqqq6666qqrrnrRUY4fP85VV1111VVXXXXVv8bh4eHuP/zDP/zOb//2b3/Pm73Zm730O77jOz54c3OTf/iHf0AS9zs6OuLee+/llV7pldjZ2eHs2bPs7e1x1VX/m9nm3+umm27ijd7ojQD4+7//e/b395GEJCQBcPz4cV7+5V+ecRxv/fiP//iX+dM//dOf4aqrrrrqqquuuupfj3L8+HGuuuqqq6666qqr/i0ODw93/+Ef/uF3bO++4zu+42tL4h/+4R+QxP1uvfVWbPNyL/dy3HTTTTzlKU9hvV7zQJK46qr/SWzzn2VnZ4d3f/d3B+COO+7g3LlzSEISALPZjBtvvJFHPepR/MiP/Mhnf+mXfunbHB4e7nLVVVddddVVV131b0M5fvw4V1111VVXXXXVVf9Wh4eHu//wD//wO7/927/9PW/2Zm/20u/4ju/44I2NDR73uMdxv7//+78H4OVe7uV4+MMfzlOf+lTW6zUvKklcddV/JNv8d9jZ2eEd3uEdWK/XDMPArbfeiiTud+zYMV76pV+aYRhu/fiP//iX+dM//dOf4aqrrrrqqquuuurfh3L8+HGuuuqqq6666qqr/r0ODw93/+Ef/uF3bO++0zu902tL4nGPexwAkrjvvvt48IMfzC233MLDH/5w/uqv/or/aJK46irb/E/1lm/5lpw5c4ZhGHjyk5+MJCQxn8+59tprefjDH86P/MiPfPaXfumXvs3h4eEuV1111VVXXXXVVf9+lOPHj3PVVVddddVVV131H+Hw8HD3H/7hH37nt3/7t7/nzd7szV76Hd/xHR+8ubnJ4x73OI6Ojvi7v/s7XumVXomTJ0/yYi/2YvzVX/0V/x0kcdX/Lrb53+4d3uEduOmmmxiGgSc/+clIQhLb29s89rGPZbVa3frxH//xL/Onf/qnP8NVV1111VVXXXXVfxzK8ePHueqqq6666qqrrvqPdHh4uPtbv/Vb37OxscE7vdM7vTbA4x73OI6OjviTP/kTXumVXomTJ09y7NgxnvrUp/K/hSSu+vexzf9H7/AO78BNN93EMAzceeedjOPIbDbjzJkzPOhBD+JHfuRHPvtLv/RL3+bw8HCXq6666qqrrrrqqv9YlOPHj3PVVVddddVVV131n+Ef/uEffue3f/u3v+fN3/zNX/qd3umdHry5ucmf/dmf8Sd/8ie80iu9Eg9+8IM5duwYT33qU/n/TBL/09jmqv8Y7/AO78BNN90EwB133MHR0RFbW1s8/OEP5xnPeMZvf9Znfdbr/Omf/unPcNVVV1111VVXXfWfg3L8+HGuuuqqq6666qqr/rMcHh7u/tZv/db3bGxs8E7v9E6vLYk/+7M/40/+5E94i7d4C86cOcOxY8d46lOfylVX/V/z9m//9tx8880A3H777UzTxMmTJ7nhhhv4kR/5kc/++q//+vc5PDzc5aqrrrrqqquuuuo/D3rQgx7EVVddddVVV1111X+FM2fOPOgjPuIjvvvMmTOv/Vu/9Vv85m/+Jt/yLd8CwOMe9zh+5Vd+hauu+t/GNs/PO7zDO3DzzTcDcNddd2GbG2+8kX/4h3/47a/7uq9777Nnzz6Dq6666qqrrrrqqv98lOPHj3PVVVddddVVV131X+Ho6OjSb/3Wb33P5uYm7/RO7/TaR0dHfO3Xfi1v8RZvwZkzZzh27BhPfepTueqq/2ls86/xDu/wDtx8880AnDt3jr7vAW79+Z//+a/++q//+vc5Ojq6xFVXXXXVVVddddV/DfSgBz2Iq6666qqrrrrqqv9q11xzzYNf+7Vf+71e93Vf97P/7u/+jtd93dcF4Pbbb+fHf/zHueqq/0q2+Y/yDu/wDtx8880AXLp0iWPHjvEP//APv/2Zn/mZr8NVV1111VVXXXXVfz3K8ePHueqqq6666qqrrvqvdnh4uPsP//APv7OxscFbvMVbvPZv/dZvsbm5yQ033MCLvdiL8Zd/+Ze8IJK46qoXlW3+K+zs7PCWb/mW3HzzzQCs12sODw9v/fmf//mv/vqv//r34aqrrrrqqquuuuq/B3rQgx7EVVddddVVV1111X+na6655sGv/dqv/V7v9E7v9Nk8097eHj/6oz/K3t4e/x6SuOr/Jtv8T7Gzs8MbvdEbcfPNN3O/f/iHf/jtz/zMz3wdrrrqqquuuuqqq/57UY4fP85VV1111VVXXXXVf6fDw8Pdf/iHf/ids2fPPuPBD37wS29ubh6fzWY8/OEP5ylPeQrr9Zr/KpK46r+Hbf432tnZ4f3f//05duwYAPfdd9+tX/IlX/I2P/qjP/o5XHXVVVddddVVV/33oxw/fpyrrrrqqquuuuqq/wluvfXWv/6zP/uznzk8PNx98Rd/8deezWY8/OEPZzabcccdd/C/hST+v7HN/0c33XQT7/Ee78H9/uEf/uG3P/7jP/5lzp49eytXXXXVVVddddVV/zNQjh8/zlVXXXXVVVddddX/FIeHh7v/8A//8Dtnz559xoMf/OCXPnny5PGbb74ZgDvuuIOrrvqf4lVe5VV44zd+YwDuu+++W7/kS77kbX70R3/0c7jqqquuuuqqq676n4Vy/Phxrrrqqquuuuqqq/6nufXWW//6z/7sz37m8PBw98Vf/MVf++abb+amm27icY97HFdd9d9pZ2eHt3zLt+TFXuzFAPiHf/iH3/74j//4lzl79uytXHXVVVddddVVV/3Pgx70oAdx1VVXXXXVVVdd9T/Z67zO67z3h3/4h38XwN7eHj/6oz/K3t4eV131X21nZ4d3fMd3ZGdnh/vuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq/7nQg960IO46qqrrrrqqquu+p/uzJkzD/rcz/3c377mmmsevLe3xz/8wz/wR3/0R1x11X8W2zzQi73Yi/HGb/zGANx33323fuZnfuZrnz179hlcddVVV1111VVX/c9GOX78OFddddVVV1111VX/0x0dHV36sz/7s585PDzcfbmXe7nXvvnmmwG44447uOqqfwvbvCh2dnZ4q7d6K17u5V4OgN/6rd/67s/6rM96naOjo0tcddVVV1111VVX/c9HOX78OFddddVVV1111VX/GxweHu7+wz/8w+8AvPiLv/hr33zzzbzYi70Y9913H3t7e1x1FYBt/qPcfPPNvPVbvzXXXHMNAJ/5mZ/5Or/wC7/wNVx11VVXXXXVVVf970E5fvw4V1111VVXXXXVVf+b/MM//MPv/PZv//b3POQhD3npm2+++cE333wzfd9z++238y+RxFX/+9jmv9qrvMqr8MZv/MbMZjPuu+++Wz/+4z/+ZW699da/5qqrrrrqqquuuup/F8rx48e56qqrrrrqqquu+t/m8PBw9+///u9/+/DwcPflXu7lXvvmm2/mxV/8xTl79ix7e3v8R5PEVf9+tvmfbmdnh/d8z/fk4Q9/OAA/8iM/8tlf+qVf+jaHh4e7XHXVVVddddVVV/3vgx70oAdx1VVXXXXVVVdd9b/ZNddc8+DP+ZzP+a1rrrnmwXt7e/z93/89f/RHf8T/FpL4n8Y2/x+9yqu8Cq/6qq8KwH333Xfr13/917/PP/zDP/w2V1111VVXXXXVVf97UY4fP85VV1111VVXXXXV/2aHh4e7f/Znf/Yzh4eHuy/3ci/32jfffDMv/uIvzmw244477uCqq/4lN998Mx/wAR/AzTffDMCP/MiPfPaXfumXvs3Zs2dv5aqrrrrqqquuuup/N/SgBz2Iq6666qqrrrrqqv8rzpw586CP+IiP+O4Xe7EXe22A22+/nV/+5V9mb2+Pq656bjs7O7zxG78xN998MwD33XffrZ/5mZ/52mfPnn0GV1111VVXXXXVVf83UI4fP85VV1111VVXXXXV/xVHR0eXfuu3fut7AF78xV/8tY8dO8YjHvEIZrMZd9xxB1ddBbCzs8PLvuzL8tZv/dYcO3aM++6779af//mf/+ov/dIvfZujo6NLXHXVVVddddVVV/3fgR70oAdx1VVXXXXVVVdd9X/RNddc8+DXfu3Xfq93eqd3+myAvb09/v7v/54/+qM/4qr/v17lVV6FV33VV+V+P/IjP/LZP/qjP/o5XHXVVVddddVVV/3fhB70oAdx1VVXXXXVVVdd9X/ZmTNnHvQRH/ER3/1iL/Zirw2wt7fHP/zDP/CHf/iHXPX/x80338wbv/Ebs7OzA8B9991362d+5me+9tmzZ5/BVVddddVVV1111f9d6EEPehBXXXXVVVddddVV/x+8zuu8znu/4zu+42ddc801DwbY29vjD//wD/mHf/gHrvrfzzbPz80338wbv/Ebc+zYMQDuu+++W3/0R3/0c37rt37ru7nqqquuuuqqq676vw896EEP4qqrrrrqqquuuur/i2uuuebBL/ZiL/ba7/iO7/hZ11xzzYMB9vb2+MM//EP+4R/+gav+57DNv8eLvdiL8aqv+qocO3YMgPvuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq/7/QA960IO46qqrrrrqqquu+v/mzJkzD3qd13md936d13md977mmmseDLC3t8ff//3f84d/+Ie8KCRx1Qtmm/8Or/qqr8qLv/iLs7OzA8B9991362/91m9994/+6I9+DlddddVVV1111VX//6AHPehBXHXVVVddddVVV/1/dc011zz4xV7sxV77Hd/xHT/rmmuueTDApUuX+Id/+Af+/u//nr29Pa76n29nZ4cXf/EX51Vf9VW533333Xfrb/3Wb333j/7oj34OV1111VVXXXXVVf9/oQc96EFcddVVV1111VVX/X93zTXXPPjFXuzFXut1Xud13vvFXuzFXhvg0qVL3HHHHfz93/89t99+O1f9z7Ozs8OLv/iL86qv+qrc77777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqqvQgx70IK666qqrrrrqqquuek4f/uEf/l2v8zqv894806VLl/iHf/gH/vAP/5Cr/nvt7Ozw4i/+4rzYi70Yx44d437/8A//8Ns/8iM/8jn/8A//8NtcddVVV1111VVXXXU/9KAHPYirrrrqqquuuuqqq57XNddc8+DXfu3Xfq/XeZ3Xee9rrrnmwQCXLl3ijjvu4LbbbuMf/uEfuOq/zs7ODi/+4i/Oq77qq3K/++6779bf+q3f+u7f/u3f/p777rvvVq666qqrrrrqqquuem7oQQ96EFddddVVV1111VVXvWDXXHPNg1/sxV7stV/ndV7nvV7sxV7stXmmS5cucfvtt/MP//AP3H777Vz1H29nZ4cXf/EX51Vf9VW5dOkSx44dA+C+++679Ud/9Ec/57d+67e+m6uuuuqqq6666qqrXhj0oAc9iKuuuuqqq6666qqrXjTXXHPNg1/7tV/7vV78xV/8tV/sxV7stXmmvb09brvtNv7hH/6B22+/nav+7XZ2dnjxF39xXvVVX5UHuu+++279rd/6re/+0R/90c/hqquuuuqqq6666qoXFXrQgx7EVVddddVVV1111VX/etdcc82DX/u1X/u9XvzFX/y1X+zFXuy1eaZLly5x++23c/vtt3P77bezt7fHVS/Yzs4OL/7iL87Ozg4v/uIvzgPdd999t/7Wb/3Wd//2b//299x33323ctVVV1111VVXXXXVvxZ60IMexFVXXXXVVVddddVV/z5nzpx50Ou8zuu894u/+Iu/9ou92Iu9Ng9w6dIlbr/9dm6//Xb+4R/+gf/vdnZ2OHbsGDfffDMv9mIvxrFjx3ig++6779bf+q3f+u7f+q3f+u6zZ88+g6uuuuqqq6666qqr/j3Qgx70IK666qqrrrrqqquu+o9zzTXXPPjFXuzFXvvFXuzFXut1Xud13pvncunSJW6//XZuv/129vb2uP322/m/wDbPz7Fjx3ixF3sxAG655RZuvvlmHui+++679ezZs7f+1m/91vf81m/91ndz1VVXXXXVVVddddV/JPSgBz2Iq6666qqrrrrqqqv+c1xzzTUPPnPmzINf7MVe7LVe/MVf/LVf7MVe7LV5Lnt7e1y6dIlLly5x++23c+nSJW6//Xb+tzl27BgAN998Mzs7O9xyyy3cfPPNPD/33Xffrb/1W7/13f/wD//wO//wD//w21x11VVXXXXVVVdd9Z8FPehBD+Kqq6666qqrrrrqqv8aZ86ceZAknTlz5sGv8zqv817XXHPNg1/sxV7stXk+Ll26xN7eHpcuXeL2228H4NKlS9x+++38dzl27BgAOzs73HzzzQDccsst3Hzzzbwg9913363/8A//8Nv33Xffrf/wD//wO//wD//w21x11VVXXXXVVVdd9V8FPehBD+Kqq6666qqrrrrqqv8+Z86cedA111zzkGuuuebBL/ZiL/Za11xzzYNf7MVe7LV5IS5dugTA3t4ely5dAuDSpUvs7e1xv0uXLvGvcezYMQB2dna437Fjxzh27Bg7OzscO3aMf8l999136z/8wz/89n333XfrP/zDP/zOP/zDP/w2V1111VVXXXXVVVf9d0IPetCDuOqqq6666qqrrrrqf5YzZ848SJLOnDnz4GuuuebBL/ZiL/Za11xzzYMBXuzFXuy1+S9233333XrNNdc8+L777rsV4OzZs7f+1m/91vecOXPmQf/wD//wO2fPnr31vvvuu5Wrrrrqqquuuuqqq/6nQQ960IO46qqrrrrqqquuuup/l2uuuebBAGfOnHnQNddc8xCAM2fOPOiaa655MM90zTXXPJh/hfvuu+9WgPvuu+9Wnuns2bPPuO+++55+9uzZZ9x33323ctVVV1111VVXXXXV/zboQQ96EFddddVVV1111VVXXXXVVVddddVVV1111f9JVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4p/BHmuq1YS1y0sAAAAAElFTkSuQmCC) +![Rendered example of offsetPlane 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEaTElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV131/8zrvM7rvPeLvdiLvRZXXXXVVVf9v/MP//APv/Nbv/Vb381VV1111VVX/f9B5aqrrrrqqqv+H3md13md9/7wD//w7+Kqq6666qr/l17sxV7stQF+67d+67u56qqrrrrqqv8fqFx11VVXXXXV/yMv9mIv9lo806/92q/x/5Ftrnr+bHPVVVf957DNf7dXfdVX5Zprrnnwi73Yi73W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HkgSz8/Ozg4A9913361cddVVV1111VX/GahcddVVV1111VX/ae67775bT58+/WCeiyRs85/JNpKwDYBtbGMb29jGNraxzX8k2zw/kvi/yDb/kSTx3802V71wtvmfxja2eSBJSAJAEpIAkIQkACQBIAlJSEISkpCEJAAkIQkASQBIAkASAJJ4IElcddVVV1111VX/rahcddVVV1111VX/ac6ePXvrmTNnHsyLSBK2uZ8kbPPvZRvb2MY2trGNbWxjm/8Ktnl+JHHVs9nmqv85bPM/lW1eGElIAkASkpCEJCQhCUlIQhL3k4QkJHE/SUgCQBIAkgCQBIAk7ieJ50cS97PN1tYW//AP//DbXHXVVVddddVV/1moXHXVVVddddVV/6nOnDnDfwRJ2OZfwzaSALCNbWxjm8xEEraxzX8n27wgkrjqqv9stvmfzjb/WpIAkIQkJAEgCUkASAJAEpKQxANJQhL3kwSAJAAkASCJ+0nigSTx/Ehie3ubO++881auuuqqq6666qr/LFSuuuqqq6666qr/NPfdd9+t1157Lc+PJGzzX8U2mQmAJGxjG9vY5n8q27wwkrjqqn+Jbf63sc1/BElIQhIAkpCEJCQhCUlIQhKSkIQkJCEJAElIAkASAJIAkASAJB5IElddddVVV1111X87gquuuuqqq6666j/Nfffddyv/SpL4j2SbB7KNbWxjG9vY5n62sY1tbPM/nW1sYxvb2MY2trHNVf8/2MY2trGNbWxjG9v8T2cb29jGNrb595KEJCQhCQBJSEISkpCEJCQBIAlJSEIS95OEJAAkASAJAEkASOJ+kpDEA0lCEpKQhCQksb29zX333XcrV1111VVXXXXVfxYqV1111VVXXXXVf6ozZ87w3802krANQGYiCdvYxja2eX5s89wk8b+FbV4Ukrjqfx7b/F9jm/8qkrifJCQhCUkASEISkpDEc5OEJO4nCQBJAEgCQBL3k8T9JPEv2d7e5uzZs8/gqquuuuqqq676z0Jw1VVXXXXVVVf9pzl79uwzeCEk8S+RxHOTBIAk/i1sY5vMJDOxzfnz5wHY3t7mX2Ib29jGNrb53842trGNbWxjG9vYxja2sY1trvq3sY1tbGMb29jGNraxjW1sY5v/zWxjG9vYxja2+a8mCUlIQhKSkIQkJAEgCUlIQhKSkIQkACQhCQBJAEgCQBIA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4eHh7j/8wz/8ztmzZ5/x4Ac/+KU3NzePz2YzHv7wh/OUpzyF9XrNfxVJXPXfwzb/G+3s7PD+7//+HDt2DID77rvv1i/5ki95mx/90R/9HK666qqrrrrqqqv++1GOHz/OVVddddVVV1111f8Et95661//2Z/92c8cHh7uvviLv/hrz2YzHv7whzObzbjjjjv430IS/9/Y5v+jm266ifd4j/fgfv/wD//w2x//8R//MmfPnr2Vq6666qqrrrrqqv8ZKMePH+eqq6666qqrrrrqf4rDw8Pdf/iHf/ids2fPPuPBD37wS588efL4zTffDMAdd9zBVVf9T/Eqr/IqvPEbvzEA9913361f8iVf8jY/+qM/+jlcddVVV1111VVX/c9COX78OFddddVVV1111VX/09x6661//Wd/9mc/c3h4uPviL/7ir33zzTdz00038bjHPY6rrvrvtLOzw1u+5VvyYi/2YgD8wz/8w29//Md//MucPXv2Vq666qqrrrrqqqv+50EPetCDuOqqq6666qqrrvqf7HVe53Xe+8M//MO/C2Bvb48f/dEfZW9vj6uu+q+2s7PDO77jO7Kzs8N9991369d//de/zz/8wz/8NlddddVVV1111VX/c6EHPehBXHXVVVddddVVV/1Pd+bMmQd97ud+7m9fc801D97b2+Mf/uEf+KM/+iOuuuo/i20e6MVe7MV44zd+YwDuu+++Wz/zMz/ztc+ePfsMrrrqqquuuuqqq/5noxw/fpyrrrrqqquuuuqq/+mOjo4u/dmf/dnPHB4e7r7cy73ca998880A3HHHHVx11b+FbV4UOzs7vNVbvRUv93IvB8Bv/dZvffdnfdZnvc7R0dElrrrqqquuuuqqq/7noxw/fpyrrrrqqquuuuqq/w0ODw93/+Ef/uF3AF78xV/8tW+++WZe7MVejPvuu4+9vT2uugrANv9Rbr75Zt76rd+aa665BoDP/MzPfJ1f+IVf+Bquuuqqq6666qqr/vegHD9+nKuuuuqqq6666qr/Tf7hH/7hd377t3/7ex7ykIe89M033/zgm2++mb7vuf322/mXSOKq/31s81/tVV7lVXjjN35jZrMZ9913360f//Ef/zK33nrrX3PVVVddddVVV131vwvl+PHjXHXVVVddddVVV/1vc3h4uPv3f//3v314eLj7ci/3cq9988038+Iv/uKcPXuWvb09/qNJ4qp/P9v8T7ezs8N7vud78vCHPxyAH/mRH/nsL/3SL32bw8PDXa666qqrrrrqqqv+90EPetCDuOqqq6666qqrrvrf7Jprrnnw53zO5/zWNddc8+C9vT3+/u//nj/6oz/ifwtJ/E9jm/+PXuVVXoVXfdVXBeC+++679eu//uvf5x/+4R9+m6uuuuqqq6666qr/vSjHjx/nqquuuuqqq6666n+zw8PD3T/7sz/7mcPDw92Xe7mXe+2bb76ZF3/xF2c2m3HHHXdw1VX/kptvvpkP+IAP4OabbwbgR37kRz77S7/0S9/m7Nmzt3LVVVddddVVV131vxt60IMexFVXXXXVVVddddX/FWfOnHnQR3zER3z3i73Yi702wO23384v//Ivs7e3x1VXPbednR3e+I3fmJtvvhmA++6779bP/MzPfO2zZ88+g6uuuuqqq6666qr/GyjHjx/nqquuuuqqq6666v+Ko6OjS7/1W7/1PQAv/uIv/trHjh3jEY94BLPZjDvuuIOrrgLY2dnhZV/2ZXnrt35rjh07xn333Xfrz//8z3/1l37pl77N0dHRJa666qqrrrrqqqv+70APetCDuOqqq6666qqrrvq/6Jprrnnwa7/2a7/XO73TO302wN7eHn//93/PH/3RH3HV/1+v8iqvwqu+6qtyvx/5kR/57B/90R/9HK666qqrrrrqqqv+b0IPetCDuOqqq6666qqrrvq/7MyZMw/6iI/4iO9+sRd7sdcG2Nvb4x/+4R/4wz/8Q676/+Pmm2/mjd/4jdnZ2QHgvvvuu/UzP/MzX/vs2bPP4Kqrrrrqqquuuur/LvSgBz2Iq6666qqrrrrqqv8PXud1Xue93/Ed3/GzrrnmmgcD7O3t8Yd/+If8wz/8A1f972eb5+fmm2/mjd/4jTl27BgA9913360/+qM/+jm/9Vu/9d1cddVVV1111VVX/d+HHvSgB3HVVVddddVVV131/8U111zz4Bd7sRd77Xd8x3f8rGuuuebBAHt7e/zhH/4h//AP/8BV/3PY5t/jxV7sxXjVV31Vjh07BsB9991362/91m9994/+6I9+DlddddVVV1111VX/f6AHPehBXHXVVVddddVVV/1/c+bMmQe9zuu8znu/zuu8zntfc801DwbY29vj7//+7/nDP/xDXhSSuOoFs81/h1d91VflxV/8xdnZ2QHgvvvuu/W3fuu3vvtHf/RHP4errrrqqquuuuqq/3/Qgx70IK666qqrrrrqqqv+v7rmmmse/GIv9mKv/Y7v+I6fdc011zwY4NKlS/zDP/wDf//3f8/e3h5X/c+3s7PDi7/4i/Oqr/qq3O++++679bd+67e++0d/9Ec/h6uuuuqqq6666qr/v9CDHvQgrrrqqquuuuqqq/6/u+aaax78Yi/2Yq/1Oq/zOu/9Yi/2Yq8NcOnSJe644w7+/u//nttvv52r/ufZ2dnhxV/8xXnVV31V7nfffffd+lu/9Vvf/aM/+qOfw1VXXXXVVVddddVV6EEPehBXXXXVVVddddVVVz2nD//wD/+u13md13lvnunSpUv8wz/8A3/4h3/IVf+9dnZ2ePEXf3Fe7MVejGPHjnG/f/iHf/jtH/mRH/mcf/iHf/htrrrqqquuuuqqq666H3rQgx7EVVddddVVV1111VXP65prrnnwa7/2a7/X67zO67z3Nddc82CAS5cucccdd3DbbbfxD//wD1z1X2dnZ4cXf/EX51Vf9VW533333Xfrb/3Wb333b//2b3/PfffddytXXXXVVVddddVVVz039KAHPYirrrrqqquuuuqqq16wa6655sEv9mIv9tqv8zqv814v9mIv9to806VLl7j99tv5h3/4B26//Xau+o+3s7PDi7/4i/Oqr/qqXLp0iWPHjgFw33333fqjP/qjn/Nbv/Vb381VV1111VVXXXXVVS8MetCDHsRVV1111VVXXXXVVS+aa6655sGv/dqv/V4v/uIv/tov9mIv9to8097eHrfddhv/8A//wO23385V/3Y7Ozu8+Iu/OK/6qq/KA9133323/tZv/dZ3/+iP/ujncNVVV1111VVXXXXViwo96EEP4qqrrrrqqquuuuqqf71rrrnmwa/92q/9Xi/+4i/+2i/2Yi/22jzTpUuXuP3227n99tu5/fbb2dvb46oXbGdnhxd/8RdnZ2eHF3/xF+eB7rvvvlt/67d+67t/+7d/+3vuu+++W7nqqquuuuqqq6666l8LPehBD+Kqq6666qqrrrrqqn+fM2fOPOh1Xud13vvFX/zFX/vFXuzFXpsHuHTpErfffju33347//AP/8D/dzs7Oxw7doybb76ZF3uxF+PYsWM80H333Xfrb/3Wb333b/3Wb3332bNnn8FVV1111VVXXXXVVf8e6EEPehBXXXXVVVddddVVV/3Hueaaax78Yi/2Yq/9Yi/2Yq/1Oq/zOu/Nc7l06RK33347t99+O3t7e9x+++38X2Cb5+fYsWO82Iu9GAC33HILN998Mw9033333Xr27Nlbf+u3fut7fuu3fuu7ueqqq6666qqrrrrqPxJ60IMexFVXXXXVVVddddVV/zmuueaaB585c+bBL/ZiL/ZaL/7iL/7aL/ZiL/baPJe9vT0uXbrEpUuXuP3227l06RK33347/9scO3YMgJtvvpmdnR1uueUWbr75Zp6f++6779bf+q3f+u5/+Id/+J1/+Id/+G2uuuqqq6666qqrrvrPgh70oAdx1VVXXXXVVVddddV/jTNnzjxIks6cOfPg13md13mva6655sEv9mIv9to8H5cuXWJvb49Lly5x++23A3Dp0iVuv/12/rscO3YMgJ2dHW6++WYAbrnlFm6++WZekPvuu+/Wf/iHf/jt++6779Z/+Id/+J1/+Id/+G2uuuqqq6666qqrrvqvgh70oAdx1VVXXXXVVVddddV/nzNnzjzommuuecg111zz4Bd7sRd7rWuuuebBL/ZiL/bavBCXLl0CYG9vj0uXLgFw6dIl9vb2uN+lS5f41zh27BgAOzs73O/YsWMcO3aMnZ0djh07xr/kvvvuu/Uf/uEffvu+++679R/+4R9+5x/+4R9+m6uuuuqqq6666qqr/juhBz3oQVx11VVXXXXVVVdd9T/LmTNnHiRJZ86cefA111zz4Bd7sRd7rWuuuebBAC/2Yi/22vwXu++++2695pprHnzffffdCnD27Nlbf+u3fut7zpw586B/+Id/+J2zZ8/eet99993KVVddddVVV1111VX/06AHPehBXHXVVVddddVVV131v8s111zzYIAzZ8486JprrnkIwJkzZx50zTXXPJhnuuaaax7Mv8J99913K8B99913K8909uzZZ9x3331PP3v27DPuu+++W7nqqquuuuqqq6666n8b9KAHPYirrrrqqquuuuqqq6666qqrrrrqqquuuur/JCpXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwK5BNH+WAErxAAAAABJRU5ErkJggg==) ```kcl // Loft a square and a circle on the `YZ` plane using offset. @@ -86,7 +86,7 @@ loft([squareSketch, circleSketch]) ``` -![Rendered example of offsetPlane 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFq/klEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXV/wnXXHPNgwHOnDnz4H/4h3/4ba666qqrrrrqqquuuuqqq4By/Phxrrrqqquuuuqq/92uueaaB3/TN33T01/xFV/xrd/8zd/8o6+55poH33rrrX9zeHi4y1VXXXXVVVddddVVV131/xnl+PHjXHXVVVddddVV/7t90id90k9dc801D77nnnuO//mf/zmv//qv/9Kv+Iqv+Nabm5vHz549+4zDw8Ndrrrqqquuuuqqq6666qr/jyjHjx/nqquuuuqqq6763+tzP/dzf+vFXuzFXvvixYt81Vd9FU972tP4sz/7M0opx9/qrd7qtV/xFV/xrTc3N4//wz/8w+9w1VVXXXXVVVddddVVV/1/Qzl+/DhXXXXVVVddddX/Tp/7uZ/7Wy/2Yi/22hcvXuSbvumbWK1WAKxWK5761KfyZ3/2Z5RSjr/VW73Va7/O67zOe29ubh7/h3/4h9/hqquuuuqqq6666qqrrvr/gnL8+HGuuuqqq6666qr/fd7xHd/xs17ndV7nvQG+53u+h7vuuosHksRqteKpT30qf/Znf8bp06ePv+EbvuFrv87rvM57b25uHv+Hf/iH3+Gqq6666qqrrrrqqquu+r+Ocvz4ca666qqrrrrqqv9dXuzFXuy1P+IjPuK7Ab75m7+Zpz3taUhCEs9NEsvlkn/4h3/gz/7sz3jkIx95/DVe4zVe+3Ve53Xee3Nz8/g//MM//A5XXXXVVVddddVVV1111f9VlOPHj3PVVVddddVVV/3v8WIv9mKv/bmf+7m/BfCjP/qj/MM//AMPJInnJglJLJdL/vzP/5ynPvWp3Hzzzcdf4zVe47Vf53Ve572Pjo4u3XrrrX/NVVddddVVV1111VVXXfV/DXrQgx7EVVddddVVV131v8M111zz4G/6pm96OsBf/MVf8KM/+qPczzbPzTbPzTb3e/mXf3ne8A3fkJMnT3Lffffd+vVf//Xv8w//8A+/zVVXXXXVVVddddVVV131fwXl+PHjXHXVVVddddVV/zt80id90k9dc801D37a057G937v9/JAknhukpDEA0nifnfddRd///d/z1133cUjHvGI42/6pm/63tdcc82Db7311r85PDzc5aqrrrrqqquuuuqqq676345y/Phxrrrqqquuuuqq//k+93M/97de7MVe7LWf9rSn8a3f+q1I4rlJQhLPTRIPJAlJAKxWK+666y7+/u//ntVqxcu+7Mu+9Gu91mu99UMe8pCXvvXWW//m8PBwl6uuuuqqq6666qqrrrrqfyvK8ePHueqqq6666qqr/mf73M/93N96sRd7sde+ePEiX/u1X8v9JCGJ5yaJ5yYJSTyQJO63Wq146lOfyt///d8TEcdf//Vf/6Vf8RVf8a03NzePnz179hmHh4e7XHXVVVddddVVV1111VX/21COHz/OVVddddVVV131P9c7vuM7ftbrvM7rvDfA93//97O7u8tzk8Rzk4QknpskHkgSkrjfarXiaU97Gn/2Z39GRBx/q7d6q9d+xVd8xbfe3Nw8/g//8A+/w1VXXXXVVVddddVVV131vwnl+PHjXHXVVVddddVV/zO92Iu92Gt/xEd8xHcDfNu3fRtPe9rTAJDEc5OEJJ6bJCTxQJKQxANJ4oFWqxVPe9rT+LM/+zMi4vhbvdVbvfbrvM7rvPfm5ubxf/iHf/gdrrrqqquu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koQkJCEJSUhCEpKQhCQkIYmIQBKSkIQkJBERSEISkpBERCCJiEASkpCEJCICSUQEkogIJBERSCIikIQkIgJJSCIikIQkJBERSEISkpCEJCQhCUkASEISkgCQBIAkACTx3CRxP9sAHB0dcXR0BMB9991364/+6I9+zm/91m99N1ddddVVV1111VVX/W9C5aqrrrrqqquuuuzs2bO3XnPNNQ/e2tpif3+fF5VtJPG/hST+PSRxP0kASOIFkQSAJJ6bJAAkcT9J3E8S95OEJO4nCUlIQhIviCQkIYn7SUISkpCEJCQhCUlIQhKSkIQkIgJJSEISkogIJCEJSUhCEpKICCQREUgiIpBERCCJiEASEYEkJBERSCIikIQkJBERSEISkpCEJCQhCUlIQhKSkASAJAAkASAJAEm8MOM4sr+/T2sNgB/5kR/57B/90R/9HK666qqrrrrqqquu+t+IylVXXXXVVVddddl9991364u92IuxtbXF/waSeG6S+PeQxP0kcT9JvCgkASAJAEkASAJAEgCSeG6SuJ8k7icJSdxPEpKQxANJQhKSkIQkJCEJSUhCEpK4nyQkIQlJSEISkpCEJCQhCUlIIiKQhCQkIYmIQBIRgSQiAklEBJKICCQREUgiIpBERCCJiEASkogIJCGJiEASkpCEJCICSUhCEpKQBIAkJCEJAElIAkAS95PE89Na4/DwkOVyCcB9991369d//de/zz/8wz/8NlddddVVV1111VVX/W9F5aqrrrrqqquuuuy+++67FWB7e5v/SSTxn0US/1aSAJDEv4UkACRxP0ncTxKSuJ8kJPFAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpBERCAJSUhCEhGBJCICSUQEkogIJBERSCIikEREIImIQBIRgSQiAklIIiKQhCQiAklIIiKQhCQkIQlJSEISkpCEJAAkIQkASQBI4n6SeG4HBwccHBxwvx/5kR/57B/90R/9HK666qqrrrrqqquu+t+OylVXXXXVVVdd9Ry2t7exjST+t5PEA0niBZHE8yOJ+0niBZEEgCQAJAEgCQBJAEjifpIAkMT9JCGJ+0lCEveThCQkIYkXlSQkIQlJSAJAEpKQBIAkJCEJSUhCEpKICCQhCUlIQhKSkIQkJBERSCIikEREIImIQBIRgSQiAklEBJKQREQgCUlE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gkji+ZHECyMJAEk8P5IAkMRzk8T9JPFAknggSUjiRSEJSTyQJCQBIIn7bW9v86AHPYi+7wH4rd/6re/++q//+vfhqquuuuqqq6666qqrrvr3onLVVVddddVVV/2Lzp49e+s111zz4K2tLfb39/mvIIl/K0kASOIFkcTzI4kHksRzk4QkJCEJSUhCEpKQxANJQhL3kwTAbDbj9OnTXH/99QDcd999t37913/9+/zDP/zDb3PVVVddddVVV1111VVX/UegctVVV1111VVX/a8kiX8LSTw3STyQJB5IEv8WkpDE/SQhCYAbb7yRG264gfv9yI/8yGf/6I/+6Odw1VVXXXXVVVddddVVV/1HonLVVVddddVVV/2L/v7v//63X+zFXuy1r7/+eu6++27+o0jiX0MSz00SLwpJPDdJ3E8SDySJB5KEJP4lkpCEJB5IEgCz2YyHPexhbG9vA/AP//APv/31X//173PffffdylVXXXXVVVddddVVV131H43KVVddddVVV131H0YS/1aSeH4k8aKQBIAkACQBIInnJonnRxIPJInnJglJSEISkpCEJCTx3CQhCYCbbrqJm266CYD77rvv1h/90R/9nN/6rd/6bq666qqrrrrqqquuuuqq/yxUrrrqqquuuuqqf9E//MM//A7ADTfcwF/+5V8CIIl/iSQeSBIvCkm8MJL4t5DEc5PEA0nigSTxbyEJSQDs7OzwiEc8gtlsBsCP/MiPfPaP/uiPfg5XXXXVVVddddVVV1111X82KlddddVVV1111f8KknhuknhRSOK5SeJ+knggSTyQJCTxL5GEJCQBMJvNeOQjH8mxY8cAuO+++279+q//+vf5h3/4h9/mqquuuuqqq6666qqrrvqvQOWqq6666qqrrvoXnT179laA7e1t/qNI4j+KJAAkASAJAEm8qCTxL5GEJCQhCUlIQhKSeKBbbrmFBz3oQdzvR37kRz77R3/0Rz+Hq6666qqrrrrqqquuuuq/EpWrrrrqqquuuupfdN99990KsLW1xX8GSdxPEveTxH80SdxPEi+IJCTxrzWfz3n0ox/NsWPHAPiHf/iH3/7Mz/zM1+Gqq6666qqrrrrqqquu+u9A5aqrrrrqqquuepHcd999t15zzTUP3t7eZn9/n+cmiRdGEv8RJPFvIYn7SeJ+krifJJ6bJCTxL5HEgx/8YB784AcDcN9999369V//9e/zD//wD7/NVVddddVVV1111VVXXfXfhcpVV1111VVXXfUiOXv27K3XXHPNg7e2ttjf3+dfIon/KJJ4bpIAkMTzIwkASfxrSOL5kYQkJCEJSUhCEidOnOBlXuZluN+P/MiPfPaP/uiPfg5XXXXVVVddddVVV1111X83KlddddVVV1111b+aJP49JPEvkcS/hiQAJPGCSOJ+krifJB5IEpL4l8zncx772Mdy4sQJAO67775bv/7rv/59/uEf/uG3ueqqq6666qqrrrrqqqv+J6By1VVXXXXVVVe9SP7+7//+t1/sxV7sta+//nruuece/qNI4n6SeGEk8W8hiX+JJJ6bJF6Qhz70oTz0oQ8F4L777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqquuuup/EipXXXXVVVddddV/Okn8R5LEi0ISz00S95PEA0niuUlCEpKQxMbGBi/3ci/HYrEA4B/+4R9++zM/8zNfh6uuuuqqq6666qqrrrrqfyIqV1111VVXXXXVi+Qf/uEffgfghhtu4K/+6q94IEn8Z5HECyIJAEkASAJAEs9NEveTxP0k8UCSeH4WiwU33ngjD3vYwwC47777bv36r//69/mHf/iH3+aqq6666qqrrrrqqquu+p+KylVXXXXVVVdd9R9OEi+IJP4lkviPIol/iSQeSBKSuN+NN97IS7zES3C/H/mRH/nsH/3RH/0crrrqqquuuuqqq6666qr/6ahcddVVV1111VUvkrNnz94KsLW1xX8USdxPEi+MJP41JPHcJHE/STyQJJ7bxsYGL/mSL8nJkycB+Id/+Iff/rqv+7r3Pnv27DO46qqrrrrqqquuuuqqq/43oHLVVVddddVVV/2rbG9v819FEs9NEgCSeH4k8dwk8fxI4oEkcb9HPOIRPOIRjwDgvvvuu/W3fuu3vvtHf/RHP4errrrqqquuuuqqq6666n8TKlddddVVV1111Yvkvvvuu/W+++679Zprrnnw1tYWBwcHvCgk8Z9JEgCSeFFI4oEk8UCnT5/mpV7qpVgsFgD8yI/8yGf/6I/+6Odw1VVXXXXVVVddddVVV/1vROWqq6666qqrrnqR3Xfffbdec801D97e3ubg4AAASTyQJP49JPHcJPFvIYn7SeJ+knggSWxsbHDzzTfzyEc+EoD77rvv1q//+q9/n3/4h3/4ba666qqrrrrqqquuuuqq/62oXHXVVVddddVV/2UkcT9J3E8SLwpJvDCSAJDEv8YjH/lIHvWoR3G/H/mRH/nsH/3RH/0crrrqqquuuuqqq6666qr/7ahcddVVV1111VUvsn/4h3/47Rd/8Rd/7euvv567776b/0ySeEEkASAJAEm8IJK4nyTuJ4mNjQ1e5mVehtOnTwPwD//wD7/99V//9e9z33333cpVV1111VVXXXXVVVdd9X8Blauuuuqqq6666j+NJP67SOKFedSjHsWjH/1oAO67775bf/RHf/Szf+u3fut7uOqqq6666qqrrrrqqqv+L6Fy1VVXXXXVVVe9yP7hH/7htwGuv/56/jNI4rlJ4l9DEs9NEvc7c+YML/uyL8vGxgYAP/IjP/LZP/qjP/o5XHXVVVddddVVV1111VX/F1G56qqrrrrqqqv+zSTxQJJ4QSRxP0ncTxIvCkk8P5IAkMRzk8T9NjY2ePmXf3lOnz4NwH333Xfr13/917/PP/zDP/w2V1111VVXXXXVVVddddX/VVSuuuqqq6666qoX2X333XcrwNbWFv+ZJPGCSAJAEi+qxzzmMTzmMY/hfj/yIz/y2T/6oz/6OVx11VVXXXXVVVddddVV/9dRueqqq6666qqr/tW2t7f5l0jiX0MS/1EkAbCxscHLv/zLc+bMGQD+4R/+4bc/8zM/83W46qqrrrrqqquuuuqqq/6/oHLVVVddddVVV73Izp49+4z77rvv1muuuebBW1tbHB4e8p9JEv8akgDY2NjgwQ9+MI997GMBuO+++279+q//+vf5h3/4h9/mqquuuuqqq6666qqrrvr/hMpVV1111VVXXfWvcvbs2VuvueaaB29vb3N4eMj9JPGCSOJ+krifJJ6bJJ6bJAAkASAJAEkASOJ+Z86c4bVf+7W534/8yI989o/+6I9+DlddddVVV1111VVXXXXV/0dUrrrqqquuuuqqfxNJ/E+yubnJK77iK3LmzBkA7rvvvls/67M+63Xuu+++W7nqqquuuuqqq6666qqr/r+ictVVV1111VVX/av8/d///W+/2Iu92Gtfd9113H333fxHkMRzk8SL6sVe7MV4sRd7MQDuu+++W3/rt37ru3/0R3/0c7jqqquuuuqqq6666qqr/r+jctVVV1111VVX/YeTxL9EEi8KSbwgm5ubvM7rvA6bm5sA/NZv/dZ3f/3Xf/37cNVVV1111VVXXXXVVVdddQWVq6666qqrrrrqX+Xs2bPPALj++uv5q7/6K/4lkrifJF4YSbwgkgCQxObmJg95yEN48Rd/cQDuu+++W7/+67/+ff7hH/7ht7nqqquuuuqqq6666qqrrno2KlddddVVV1111b/KfffddyvPRRL/VR7ykIfwSq/0StzvR37kRz77R3/0Rz+Hq6666qqrrrrqqquuuuqq50Xlqquuuuqqq676Vzl79uytANvb2/xHkMRzk8Rz29zc5JVf+ZW55pprAPiHf/iH3/76r//697nvvvtu5aqrrrrqqquuuuqqq6666vmjctVVV1111VVX/YeSxL9EEi8KSQC8xEu8BC/xEi8BwH333Xfrb/3Wb333j/7oj34OV1111VVXXXXVVVddddVVLxyVq6666qqrrrrqX+W+++679b777rv1mmuuefDW1hYHBwe8IJK4nyReGEk8t2uuuYZXeZVXYXNzE4Af+ZEf+ewf/dEf/Ryuuuqqq6666qqrrrrqqqteNFSuuuqqq6666qp/tbNnz956zTXXPHh7e5vDw0P+o21ubvKSL/mSPPShDwXgvvvuu/Xrv/7r3+cf/uEffpurrrrqqquuuuqqq6666qoXHZWrrrrqqquuuuq/jSSe20u+5Evyki/5ktzvR37kRz77R3/0Rz+Hq6666qqrrrrqqquuuuqqfz0qV1111VVXXXXVv9p9991364u92Itx3XXXcc8993A/SfxLJPH8bG5u8qqv+qpce+21APzDP/zDb3/913/9+9x33323ctVVV1111VVXXXXVVVdd9W9D5aqrrrrqqquu+le77777buVfIIn7SeKFeamXeile8iVfEoD77rvv1q//+q9/n3/4h3/4ba666qqrrrrqqquuuuqqq/59qFx11VVXXXXVVf9qZ8+efQbA9ddfz1//9V/zb3Xttdfyqq/6qmxtbQHwIz/yI5/9oz/6o5/DVVddddVVV1111VVXXXXVfwwqV1111VVXXXXVv9p99913K/8OW1tbvNqrvRrXXnstAPfdd9+tX//1X/8+//AP//DbXHXVVVddddVVV1111VVX/cehctVVV1111VVX/audPXv2VoDt7W3uJ4l/iSRe6qVeipd6qZcC4L777rv1t37rt777R3/0Rz+Hq6666qqrrrrqqquuuuqq/3hUrrrqqquuuuqq/3CSuJ8kALa2tni1V3s1rrvuOgD+4R/+4bc/8zM/83W46qqrrrrqqquuuuqqq676z0Plqquuuuqqq676V7vvvvtuve+++2695pprHry1tcXBwQEvyNbWFg972MN46Zd+aQDuu+++W7/+67/+ff7hH/7ht7nqqquuuuqqq6666qqrrvrPReWqq6666qqrrvo3OXv27K3XXHPNg7e3tzk4OOD5ue6663jjN35j7vcjP/Ijn/2jP/qjn8NVV1111VVXXXXVVVddddV/DSpXXXXVVVddddW/myQeaGtri1d/9VfnuuuuA+C+++679TM/8zNf++zZs8/gqquuuuqqq6666qqrrrrqvw6Vq6666qqrrrrq3+S+++679cVe7MW47rrruOeee7jfy7zMy/DSL/3SANx33323/tZv/dZ3/+iP/ujncNVVV1111VVXXXXVVVdd9V+PylVXXXXVVVdd9W9y33333coDbG1t8SZv8iZsbW0B8Fu/9Vvf/fVf//Xvw1VXXXXVVVddddVVV1111X8fKlddddVVV1111b/J2bNnnwFw/fXXA/AyL/MyANx33323fv3Xf/37/MM//MNvc9VVV1111VVXXXXVVVdd9d+LylVXXXXVVVdd9W9y33333Qpw3XXXcd111wHwIz/yI5/9oz/6o5/DVVddddVVV1111VVXXXXV/wyU48ePc9VVV1111VVX/etJYnNz8/hDHvKQl/6Hf/iH3/6sz/qs1/nTP/3Tn+Gqq6666qqrrrrqqquuuup/DvSgBz2Iq6666qqrrrrq3+51Xud13uu3fuu3voerrrrqqquuuuqqq6666qr/edCDHvQgrrrqqquuuuqqq6666qqrrrrqqquuuuqq/5OoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwIUVOz/Rm9U3gAAAABJRU5ErkJggg==) +![Rendered example of offsetPlane 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFrB0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXV/wnXXHPNgwHOnDnz4H/4h3/4ba666qqrrrrqqquuuuqqq4By/Phxrrrqqquuuuqq/92uueaaB3/TN33T01/xFV/xrd/8zd/8o6+55poH33rrrX9zeHi4y1VXXXXVVVddddVVV131/xnl+PHjXHXVVVddddVV/7t90id90k9dc801D77nnnuO//mf/zmv//qv/9Kv+Iqv+Nabm5vHz549+4zDw8Ndrrrqqquuuuqqq6666qr/jyjHjx/nqquuuuqqq6763+tzP/dzf+vFXuzFXvvixYt81Vd9FU972tP4sz/7M0opx9/qrd7qtV/xFV/xrTc3N4//wz/8w+9w1VVXXXXVVVddddVVV/1/Qzl+/DhXXXXVVVddddX/Tp/7uZ/7Wy/2Yi/22hcvXuSbvumbWK1WAKxWK5761KfyZ3/2Z5RSjr/VW73Va7/O67zOe29ubh7/h3/4h9/hqquuuuqqq6666qqrrvr/gnL8+HGuuuqqq6666qr/fd7xHd/xs17ndV7nvQG+53u+h7vuuosHksRqteKpT30qf/Znf8bp06ePv+EbvuFrv87rvM57b25uHv+Hf/iH3+Gqq6666qqrrrrqqquu+r+Ocvz4ca666qqrrrrqqv9dXuzFXuy1P+IjPuK7Ab75m7+Zpz3taUhCEs9NEsvlkn/4h3/gz/7sz3jkIx95/DVe4zVe+3Ve53Xee3Nz8/g//MM//A5XXXXVVVddddVVV1111f9VlOPHj3PVVVddddVVV/3v8WIv9mKv/bmf+7m/BfCjP/qj/MM//AMPJInnJglJLJdL/vzP/5w/+7M/45GPfOTx13iN13jt13md13nvo6OjS7feeutfc9VVV1111VVXXXXVVVf9X0M5fvw4V1111VVXXXXV/w7XXHPNg7/iK77irwD+4i/+gl//9V9HEpJ4IElI4rlJAmC1WvHnf/7nXLhwgUc84hHHX+u1XuutX+d1Xue9b7311r85e/bsrVx11VVXXXXVVVddddVV/1dQjh8/zlVXXXXVVVdd9b/DJ33SJ/3UNddc8+CnPe1pfO/3fi8PJInnJglJPJAk7nfXXXfx93//99x111084hGPOP6mb/qm733NNdc8+NZbb/2bw8PDXa666qqrrrrqqquuuuqq/+0ox48f56qrrrrqqquu+p/vcz/3c3/rxV7sxV77aU97Gt/6rd+KJJ6bJCTx3CTxQJKQBMBqteKuu+7i7//+71mtVrzsy77sS7/Wa73WWz/kIQ956VtvvfVvDg8Pd7nqqquuuuqqq6666qqr/reiHD9+nKuuuuqqq6666n+2z/3cz/2tF3uxF3vtixcv8rVf+7XcTxKSeG6SeG6SkMQDSeJ+q9WKpz71qfz93/89EXH89V//9V/6FV/xFd96c3Pz+NmzZ59xeHi4y1VXXXXVVVddddVVV131vw3l+PHjXHXVVVddddVV/3O94zu+42e9zuu8znsDfP/3fz+7u7s8N0k8N0lI4rlJ4oEkIYn7rVYrnva0p/Fnf/ZnRMTxt3qrt3rtV3zFV3zrzc3N4//wD//wO1x11VVXXXXVVVddddVV/5tQjh8/zlVXXXXVVVdd9T/Ti73Yi732R3zER3w3wLd927fxtKc9DQBJPDdJSOK5SUISDyQJSTyQJB5otVrxtKc9jT/7sz8jIo6/1Vu91Wu/zuu8zntvbm4e/4d/+Iff4aqrrrrqqquuuuqqq67634By/Phxrrrqqquuuuqq/3le7MVe7LU/93M/97cAvu3bvo2nPe1pPJAkJPHcJCGJ5yaJ5yaJB5KEJB5otVrx1Kc+lT//8z8nIo6/1Vu91Wu/zuu8zntvbm4e/4d/+Iff4aqrrrrqqquuuuqqq676n4xy/Phxrrrqqquuuuqq/1muueaaB3/FV3zFXwH8xm/8Bn/5l3+JJCTx3CQhiecmiecmCUk8kCQk8UCSeCBJrFYrnvrUp/Lnf/7nnD59+vgbvuEbvvbrvM7rvPfR0dGlW2+99a+56qqrrrrqqquuuuqqq/4nohw/fpyrrrrqqquuuup/jmuuuebBn/M5n/Nbm5ubx5/2tKfxEz/xEzyQJJ4fSTw3SUjiuUniuUnigSQhiQeSxHK55O///u/58z//cx75yEcef+M3fuO3fp3XeZ33vvXWW//m7Nmzt3LVVVddddVVV1111VVX/U9COX78OFddddVVV1111f8cn/RJn/RTD3nIQ1766U9/Ot/xHd+BJJ6bJCTx3CQhiecmCUk8kCQk8UCSkMQDSeKBJCGJ5XLJn/3Zn3Hx4kVOnz59/O3e7u3e+3Ve53Xe+9Zbb/2bs2fP3spVV1111VVXXXXVVVdd9T8B5fjx41x11VVXXXXVVf8zfO7nfu5vvdiLvdhrX7x4ka//+q/nfpKQxHOThCSemyQk8dwkIYkHkoQkHkgSDyQJSTyQJADuuusu/uzP/oyLFy/yiEc84vibvumbvvc111zz4FtvvfVvDg8Pd7nqqquuuuqqq6666qqr/jtRjh8/zlVXXXXVVVdd9d/vwz/8w7/rFV/xFd8a4Ad/8Ae5ePEiz00Sz48kJPHcJCGJ5yaJ5yaJB5KEJB5IEg8kCUkA3HXXXfzDP/wDy+WSl33Zl33p13qt13rrzc3N42fPnn3G4eHhLlddddVVV1111VVXXXXVfwfK8ePHueqqq6666qqr/nu9zuu8znu/0zu902cDfMd3fAdPf/rTkcTzIwlJPD+SkMRzk8Rzk4QkHkgSknggSUjifpKQxANJAmC5XPLUpz6Vf/iHfyAijr/VW73Va7/iK77iW29ubh7/h3/4h9/hqquuuuqqq6666qqrrvqvRjl+/DhXXXXVVVddddV/nxd7sRd77U/6pE/6KYDv+I7v4OlPfzr3k4Qknh9JSOL5kcRzk4QknpskJPFAkpDEA0nigSTxQJKQBMByueSpT30qf/Znf0ZEHH+rt3qr136d13md997c3Dz+D//wD7/DVVddddVVV1111VVXXfVfhXL8+HGuuuqqq6666qr/Hi/2Yi/22p/7uZ/7WwC/+Zu/yV//9V/z/EhCEs+PJCTx3CQhiecmCUk8N0k8N0k8kCQkcT9JSOKBJHG/1WrFU5/6VP7sz/6MiDj+Vm/1Vq/9Oq/zOu+9ubl5/B/+4R9+h6uuuuqqq6666qqrrrrqPxvl+PHjXHXVVVddddVV//WuueaaB3/FV3zFXwE8/elP56d+6qcAkIQknh9JSOL5kYQknpskJPHcJCGJB5KEJB5IEpJ4IEk8kCQkcT9JSOJ+q9WKpzzlKfzZn/0ZEXH8rd7qrV77dV7ndd57c3Pz+D/8wz/8DlddddVVV1111VVXXXXVfxbK8ePHueqqq6666qqr/ut90id90k9dc801D37605/Od37nd/LcJCGJ50cSknh+JCGJ5yYJSTw3SUjigSQhiQeShCTuJwlJPJAkHkgS95PEarXiKU95Cn/2Z3/G6dOnj7/hG77ha7/O67zOex8dHV269dZb/5qrrrrqqquuuuqqq6666j8aetCDHsRVV1111VVXXfVf63M/93N/68Ve7MVee3d3l6/8yq/kfrZ5QWzzgtjmBbHN82Ob52ab52ab52ab52abB7LNA9nmfrYBOHnyJO/8zu/Mwx/+cO67775bv/7rv/59/uEf/uG3ueqqq6666qqrrrrqqqv+o1COHz/OVVddddVVV131X+fDP/zDv+sVX/EV33p3d5ef/MmfZHd3l/tJQhLPjyQk8fxIQhLPjyQk8dwkIYkHkoQkHkgSknggSUjigSTxQJJ4IEncTxKSWC6X/Nmf/Rl/9md/xiMe8Yjjb/d2b/fe11xzzYNvvfXWvzk8PNzlqquuuuqqq6666qqrrvr3ohw/fpyrrrrqqquuuuq/xju+4zt+1pu/+Zt/NMAP/dAPceutt/L8SEISz48kJPH8SEISz48kJPHcJPHcJCGJB5KEJB5IEpK4nyQkcT9JSOJ+kpDE/SQBsFwu+bM/+zMuXLjAq73aq730a73Wa731Qx7ykJe+9dZb/+bw8HCXq6666qqrrrrqqquuuurfinL8+HGuuuqqq6666qr/fC/2Yi/22h/xER/x3QDf9V3fxa233ookJPGCSEISz48kJPH8SEISz48kJPFAkpDEc5OEJB5IEpJ4IEk8kCQkcT9JPJAk7icJSQDcdddd/P3f/z27u7vHX+3VXu2lX+u1XuutNzc3j589e/YZh4eHu1x11VVXXXXVVVddddVV/1qU48ePc9VVV1111VVX/ed6sRd7sdf+3M/93N8C+K3f+i3++q//mgeShCQk8fxIQhLPjyQkIYnnJglJPD+SeG6SkMRzk4QkHkgSDyQJSTyQJO4nCUncTxKSuJ8kAJbLJXfddRd/93d/R0Qcf83XfM3Xfq3Xeq233tzcPP4P//APv8NVV1111VVXXXXVVVdd9a9BOX78OFddddVVV1111X+ea6655sFf8RVf8VcAt956Kz/zMz/DCyMJSTw/kpDECyIJSTw3SUjiuUlCEs9NEpJ4bpJ4IElI4oEkIYn7SUIS95OEJO4niftJQhIAq9WKpz71qfzd3/0dEXH8rd/6rV/7dV7ndd57c3Pz+D/8wz/8DlddddVVV1111VVXXXXVi4Jy/Phxrrrqqquuuuqq/zyf9Emf9FPXXHPNg2+99Va++7u/GwBJSEISL4gkJPH8SEISknh+JCGJ5yYJSTw3SUjiuUlCEg8kCUk8kCQk8UCSeCBJSOJ+krifJCRxP0ncb7Va8ZSnPIU/+7M/IyKOv/Vbv/Vrv87rvM57b25uHv+Hf/iH3+Gqq6666qqrrrrqqquuemEox48f56qrrrrqqquu+s/xuZ/7ub/1Yi/2Yq+9u7vLN3/zN/P8SEISL4gkJPGCSEISz48kJPHcJCGJ5yYJSTw3SUjigSQhiQeShCTuJwlJPJAk7icJSdxPEpIAkIQkACSxWq14ylOewp/92Z8REcff+q3f+rVf53Ve572Pjo4u3XrrrX/NVVddddVVV1111VVXXfX8oAc96EFcddVVV1111VX/8T73cz/3t17sxV7stXd3d/me7/kednd3AbDNC2ObF8Y2L4xtXhDbPD+2eX5s8/zY5rnZ5rnZ5oFs80C2eSDb3M8297PN/WwDcPLkSV7hFV6BN37jN+a+++679eu//uvf5x/+4R9+m6uuuuqqq6666qqrrrrqgSjHjx/nqquuuuqqq676j/WO7/iOn/U6r/M67w3wIz/yI9xzzz3cTxKSeEEkIQlJPD+SkIQknh9JSOL5kYQknpskJPHcJCGJ5yYJSTyQJCTxQJJ4IElI4n6SkMT9JHE/SUgCQBKSAJCEJJbLJU996lP50z/9U06fPn383d/93d/7dV7ndd771ltv/ZuzZ8/eylVXXXXVVVddddVVV10FQDl+/DhXXXXVVVddddV/nBd7sRd77Y/4iI/4boDv+Z7v4dZbb+X5kYQkXhhJSOIFkYQknh9JSOL5kYQknpskJPHcJCGJ5yYJSTyQJCRxP0lI4oEk8UCSuJ8kJHE/SdxPEveTBMBqteLv//7v+dM//VMe+chHHn+7t3u7977mmmsefOutt/7N4eHhLlddddVVV1111VVXXfX/G+X48eNcddVVV1111VX/MV7sxV7stT/3cz/3twB+5md+hic+8YlIQhIviCQkIYkXRBKSeEEkIYnnRxKSeH4kIYnnJglJPDdJSOK5SUISDySJB5KEJO4nCUncTxKSuJ8kJAEgCUkASEISAJKQBMBqteJP//RPuXDhAo997GNf+o3f+I3fenNz8/jZs2efcXh4uMtVV1111VVXXXXVVVf9/0Q5fvw4V1111VVXXXXVv98111zz4K/4iq/4K4C/+Zu/4Xd+53d4IElI4oWRhCReEElI4gWRhCSeH0lI4vmRhCSemyQk8dwkIYnnJokHkoQkHkgSkrifJCRxP0lI4n6SuJ8kJAEgCUkASAJAEnfddRd/+qd/ynq9Pv5Gb/RGr/1ar/Vab725uXn8H/7hH36Hq6666qqrrrrqqquu+v+Hcvz4ca666qqrrrrqqn+/T/qkT/qpa6655sHPeMYz+JEf+RFeEElIQhIviCQk8YJIQhKSeH4kIYnnRxKSkMRzk4QknpskJPHcJCGJB5KEJB5IEpJ4IElI4n6SkMT9JCEJAElI4n6SuJ8kACQhCQBJ3Hnnnfzd3/0dEXH8NV/zNV/7Td/0Td97c3Pz+D/8wz/8DlddddVVV1111VVXXfX/B+X48eNcddVVV1111VX/Pp/7uZ/7Wy/2Yi/22s94xjP43u/9XiQhCUm8MJKQxAsiCUlI4gWRhCSeH0lIQhLPjyQk8dwkIYnnJglJSOKBJCGJB5KEJB5IEpJ4IElI4n6SkMT9JHE/SUgCQBKSAJCEJAAkIQmA1WrFU57yFP7u7/4OScff+q3f+rVf53Ve5703NzeP/8M//MPvcNVVV1111VVXXXXVVf/3UY4fP85VV1111VVXXfVv97mf+7m/9WIv9mKvvbu7y7d927fx3CQhiRdGEpJ4YSQhiRdEEpJ4QSQhiedHEpJ4bpKQxPMjCUk8kCQk8UCSkMQDSUISDySJB5LE/SQhiftJ4n6SkASAJCQBIAkASSyXS5761Kfyp3/6p0g6/tZv/dav/Tqv8zrvvbm5efwf/uEffoerrrrqqquuuuqqq676v4ty/Phxrrrqqquuuuqqf5t3fMd3/KzXeZ3XeW+AH/uxH2N3d5cXRBKSkMQLIglJSOIFkYQkXhBJSOIFkYQknh9JSOK5SUISknhukpDEA0lCEg8kCUk8kCQkcT9JSOJ+kpDE/SQhCQBJSOJ+krifJAAkIQkASSyXS5761KfyJ3/yJ0TE8bd+67d+7dd5ndd576Ojo0u33nrrX3PVVVddddVVV1111VX/96AHPehBXHXVVVddddVV/3ov9mIv9tqf+7mf+1sA3/d938cznvEMHsg2/xLb/Ets8y+xzQtjmxfENi+IbV4Q2zw/tnlutnlutnlutnkg2zyQbR7INvezzf1scz/bANjmfrYBOHHiBK/4iq/Im7zJm3Dffffd+vVf//Xv8w//8A+/zVVXXXXVVVddddVVV/3fQTl+/DhXXXXVVVddddW/zou92Iu99ud+7uf+FsD3fd/38YxnPIPnJglJvDCSkIQkXhBJSEISL4gkJPGCSEISz48kJCGJ5yYJSTw/kpDEc5OEJB5IEpJ4IElI4oEkIYn7SUIS95OEJO4niftJQhIAkpAEgCQAJCEJAEkArFYrnvKUp/Cnf/qnnD59+vh7vMd7vPc111zz4MPDw0tnz569lauuuuqqq6666qqrrvrfDz3oQQ/iqquuuuqqq6560V1zzTUP/qZv+qanA/zu7/4uv/u7v8uLyjb/Etv8S2zzwtjmhbHNC2ObF8Q2z49tnh/bPDfbPDfbPDfbPJBtHsg297PN/WzzQLYBsM39bANgGwDbnDx5knd913fl2LFjt/7DP/zDb//oj/7o59x33323ctVVV1111VVXXXXVVf97UY4fP85VV1111VVXXfWiueaaax78OZ/zOb+1ubl5/BnPeAY///M/jyQkIYl/iSQk8cJIQhIvjCQk8YJIQhKSeH4kIQlJPD+SkMTzIwlJPDdJSOK5SUISDyQJSTyQJCTxQJKQxP0kIYn7SUISAJKQBIAkJHE/SQBIQhIAkgCQBIAklsslf/qnf8rf//3fH3/1V3/1l37jN37jt97c3Dx+9uzZZxweHu5y1VVXXXXVVVddddVV//tQjh8/zlVXXXXVVVdd9aL5pE/6pJ96yEMe8tLPeMYz+P7v/36emyQk8S+RhCQk8YJIQhKSeEEkIQlJvCCSkMQLIglJPD+SkMTzIwlJPDdJSOK5SUISDyQJSTyQJCTxQJKQxP0kIYn7SeJ+kpAEgCQkASAJSQBIQhIAkgCQBIAklsslf/qnf8p6vT7+Rm/0Rq/9Wq/1Wm+9ubl5/B/+4R9+h6uuuuqqq6666qqrrvrfBT3oQQ/iqquuuuqqq676l33u537ub73Yi73Ya1+6dImv//qv50VlmxeFbf4ltvmX2OaFsc0LY5sXxjbPj22eH9s8P7Z5brZ5brZ5brZ5INvczzYPZJv72eZ+tgGwzf1sA2AbANucOHGCRzziEbzJm7wJ0zTd+lu/9Vvf/aM/+qOfw1VXXXXVVVddddVVV/3vQDl+/DhXXXXVVVddddUL9+Ef/uHf9Yqv+IpvDfDjP/7j7O3tIQlJ/EskIYl/iSQk8cJIQhKSeEEkIQlJPD+SkIQknh9JSEISz48kJPHcJCGJ5yYJSUjigSQhiQeShCQeSBKSeCBJSOJ+kpAEgCQkcT9JSAJAEpIAkASAJCQBIAkASQBIYrlccuedd/K3f/u3RMTx13zN13ztN33TN33vzc3N4//wD//wO1x11VVXXXXVVVddddX/bJTjx49z1VVXXXXVVVe9YK/zOq/z3u/0Tu/02QDf//3fz2233cYDSUISknhhJCEJSbwwkpCEJF4YSUjihZGEJF4QSUjiBZGEJJ4fSUjiuUlCEpJ4bpKQxANJQhIPJAlJSOJ+kpDEA0lCEveThCQAJCGJ+0nifpIAkIQkACQhCQBJAEgCQBLL5ZKnPOUp/O3f/i2Sjr/N27zNa7/O67zOex8dHV269dZb/5qrrrrqqquuuuqqq676nwk96EEP4qqrrrrqqquuev5e7MVe7LU/93M/97cAfuAHfoBnPOMZvChs86KwzYvCNi8K27wwtvmX2OYFsc0LYpsXxDbPj22eH9s8N9s8kG2em23uZ5sHss39bHM/29zPNgC2uZ9tAGwDYBvbnDx5kld8xVfkTd/0Tbnvvvtu/fqv//r3+Yd/+Iff5qqrrrrqqquuuuqqq/5nQQ960IO46qqrrrrqqque14u92Iu99ud+7uf+FsDv/d7v8fu///vczzYvKtu8KGzzorDNv8Q2/xLbvDC2eWFs84LY5vmxzfNjm+fHNs/NNg9km+dmm/vZ5oFscz/b3M8297MNgG0AbANgGwDbANjmxIkTvNIrvRJv+qZvyn333Xfr13/917/PP/zDP/w2V1111VVXXXXVVVdd9T8D5fjx41x11VVXXXXVVc/pmmuuefBXfMVX/BXAbbfdxi/8wi/wQJKQhCT+JZKQxL9EEpL4l0hCEpJ4QSQhCUm8IJKQxAsiCUm8IJKQxPMjCUk8N0lI4rlJQhLPTRKSeCBJSOJ+kpDEA0lCEgCSkMT9JCEJAElIAkASkgCQhCQAJAEgCQBJAEgCYLVa8ZSnPIU//uM/JiKOf+AHfuB7X3PNNQ++9dZb/+bw8HCXq6666qqrrrrqqquu+u9FOX78OFddddVVV1111XP6pE/6pJ+65pprHnzbbbfxAz/wA7wwkpDEv0QSkpDECyMJSUjiXyIJSbwwkpDECyIJSUji+ZGEJCTx/EhCEs+PJCTx3CQhCUk8kCQkIYkHkoQkHkgSkrifJCTxQJKQBIAkJHE/SUgCQBKSAJCEJAAkASAJSQBIAkASAJIAWC6XPOUpT+GP//iPecxjHvPSb/u2b/vWm5ubx8+ePfuMw8PDXa666qqrrrrqqquuuuq/B3rQgx7EVVddddVVV131bJ/7uZ/7Wy/2Yi/22pcuXeKbvumbuJ9tXlS2eVHZ5l9imxeVbf4ltnlhbPPC2OaFsc3zY5sXxDbPj22em22em22em20eyDb3s80D2eZ+trmfbQBscz/bANgGwDa2AbCNbU6ePMm7v/u7c+zYsVt/67d+67t/9Ed/9HO46qqrrrrqqquuuuqq/3roQQ96EFddddVVV1111RUf/uEf/l2v8zqv896XLl3iF37hF7jtttt4fmzzorLNi8I2LwrbvChs8y+xzb/ENi+IbV4Y27wgtnl+bPP82Oa52ea52ea52eaBbHM/2zyQbe5nm/vZBsA2ALYBsA2AbQBsA2Ab25w4cYL3eI/34NixY7f+1m/91nf/6I/+6Odw1VVXXXXVVVddddVV/3Uox48f56qrrrrqqquugnd8x3f8rDd/8zf/aICf/Mmf5LbbbuMFkYQkJPEvkYQk/iWSkIQkXhhJSEISL4wkJCGJF0QSknhhJCGJ50cSkpDE8yMJSTw/kpDEc5OEJJ6bJCTxQJKQxANJQhIPJAlJ3E8SkgCQhCTuJwlJAEhCEgCSAJCEJAAkASAJAEkASOJ+q9WKP/mTP2G9Xh9/ozd6o9d+0zd90/fe3Nw8/g//8A+/w1VXXXXVVVddddVVV/3nQw960IO46qqrrrrqqv/vXuzFXuy1P/dzP/e3AH7oh36I2267DQDbvKhs86KyzYvCNi8K27wobPMvsc0LY5sXxjYvjG2eH9u8ILZ5brZ5fmzzQLZ5brZ5INvczzYPZJv72QbANvezDYBtAGwDYBsA29jGNidOnOCRj3wkb/Imb0Jr7dbf+q3f+u4f/dEf/Ryuuuqqq6666qqrrrrqPw/l+PHjXHXVVVddddX/Zy/2Yi/22p/7uZ/7WwC///u/z9///d9zP0lIQhL/EklIQhL/EklIQhIvjCQkIYkXRhKSkMQLIwlJSOIFkYQkXhBJSEISz48kJCGJ50cSknhukpCEJJ6bJCTxQJKQhCQeSBKSuJ8kJCGJ+0lCEveThCQAJCGJ+0lCEgCSkASAJAAkIQkASQBIAkAS95PEarXijjvu4G/+5m+QdPw1X/M1X/tN3/RN3/vo6OjSrbfe+tdcddVVV1111VVXXXXVfzz0oAc9iKuuuuqqq676/+qaa6558Dd90zc9HeC2227jh37oh/iX2OZfwzYvCtu8qGzzL7HNi8I2/xLbvDC2eWFs84LY5gWxzfNjm+fHNs/NNs/NNg9kmweyzf1s80C2uZ9tAGxzP9sA2AbANrYBsI1tAGxz4sQJXumVXok3e7M347777rv167/+69/nH/7hH36bq6666qqrrrrqqquu+o9DOX78OFddddVVV131/9UnfdIn/dQ111zz4Ntuu40f/uEfRhL/EklIQhIvCklI4l8iCUlI4l8iCUm8MJKQhCReGElIQhIviCQk8YJIQhKSeH4kIYnnRxKSkMRzk4QknpskJPHcJCGJB5KEJB5IEpK4nyQkcT9JSAJAEpK4nyQkASAJSQBIAkASkgCQBIAk7ieJ+y2XS57ylKfwx3/8x0g6/kEf9EHvfc011zz48PDw0tmzZ2/lqquuuuqqq6666qqr/v0ox48f56qrrrrqqqv+P/rcz/3c33qxF3ux17506RLf8z3fw/0kIYkXhSQkIYl/iSQkIYl/iSQkIYkXRhKSkMQLIwlJ/EskIYkXRBKSkMQLIglJPD+SkIQknh9JSOK5SUISknggSUhCEg8kCUk8kCQk8UCSkMT9JCGJ+0lCEgCSkIQkACQhCQBJAEhCEgCSkASAJO4nCQBJSAJguVzy5Cc/mT/+4z/m2muvfem3eZu3ee2HPOQhL33rrbf+zeHh4S5XXXXVVVddddVVV131b0c5fvw4V1111VVXXfX/zed+7uf+1ou92Iu99qVLl/jhH/5h1us1z00SkpDEi0ISkpDEv0QSkpDEv0QSkviXSEISL4wkJCGJF0YSkpDECyIJSbwgkpCEJJ4fSUji+ZGEJJ4fSUjiuUlCEg8kCUlI4n6SkIQk7icJSdxPEpK4nyQkcT9JSAJAEpIAkASAJCQBIAkASQBIAkAS95OEJJbLJU9+8pP5u7/7u+PXXnvtS7/bu73bW29ubh4/e/bsMw4PD3e56qqrrrrqqquuuuqqfz3K8ePHueqqq6666qr/T97xHd/xs17ndV7nvQF++qd/mvvuu49/iSQkIYkXhSQk8aKQhCT+JZKQhCReGElIQhIvjCQkIYkXRhKSeEEkIQlJvCCSkMTzIwlJSOK5SUISknhukpDEc5OEJJ6bJCTxQJKQxP0kIYn7SUISkgCQhCTuJwlJAEhCEgCSAJCEJAAkASAJAEkASOJ+kpDEcrnkyU9+Mn/7t397/OVf/uVf+23f9m3fenNz8/g//MM//A5XXXXVVVddddVVV131r4Me9KAHcdVVV1111VX/X7zYi73Ya3/u537ubwH88A//MLfffjsPZJt/Ddu8qGzzorLNi8o2Lwrb/Ets86KwzQtjm3+JbV4Q27wgtnlBbPP82Oa52ea52ea52eaBbHM/2zyQbe5nm/vZBsA2ALYBsA2AbQBsYxvbANgmMzl58iTv8R7vwfHjx2/9rd/6re/+0R/90c/hqquuuuqqq6666qqrXjSU48ePc9VVV1111VX/H7zYi73Ya3/u537ubwH80i/9Ek95ylN4bpKQhCReFJKQxItCEpKQxL9EEpKQxL9EEpL4l0hCEi+MJCQhiRdGEpJ4QSQhCUm8IJKQxPMjCUlI4rlJQhKSeG6SkMRzk4QkHkgSknggSUjigSQhiftJQhIAkpCEJAAkIQkASUgCQBKSAJAEgCQAJAEgCQBJSOJ+klgul/zxH/8xq9Xq+Cu8wiu89tu//du/9+bm5vF/+Id/+B2uuuqqq6666qqrrrrqhUMPetCDuOqqq6666qr/66655poHf9M3fdPTAf7+7/+eX/qlX+JFZZt/Ddu8qGzzorLNi8o2Lwrb/Ets86KwzQtjmxfGNi+MbV4Q2zw/tnl+bPP82Oa52eaBbPNAtnkg29zPNvezzf1sA2AbANsA2AbANrYBsI1tbGMb27zSK70Sb/Zmb0Zr7dYf/dEf/Zzf+q3f+m6uuuqqq6666qqrrrrq+UMPetCDuOqqq6666qr/6z73cz/3t17sxV7stW+//XZ+5Ed+hPvZ5l/DNv8atnlR2eZFZZsXlW1eFLb5l9jmRWGbF8Y2L4xtXhDbvCC2eUFs8/zY5rnZ5rnZ5oFs80C2eSDb3M8297PN/WwDYBsA2wDYBsA2tgGwjW1sY5sTJ07wiEc8gjd7szejtXbr13/917/PP/zDP/w2V1111VVXXXXVVVdd9ZzQgx70IK666qqrrrrq/7LP/dzP/a0Xe7EXe+3bb7+dH/mRH+EFsc2/hm3+NWzzorLNi8o2LwrbvChs86Kwzb/ENv8S27wgtnlhbPOC2Ob5sc3zY5vnZpvnZpsHss0D2eaBbHM/29zPNvezDYBtAGwDYBsA29gGwDa2sY1tTpw4wSu90ivxKq/yKrTWbv36r//69/mHf/iH3+aqq6666qqrrrrqqquuoBw/fpyrrrrqqquu+r/qcz/3c3/rxV7sxV770qVLfO/3fi8vjCQkIYkXhSQkIYkXhSQk8aKQhCQk8S+RhCT+JZKQhCReGElIQhIvjCQk8cJIQhKSeEEkIYnnRxKSkMTzIwlJPD+SkMRzk4QkJPFAkpDEA0lCEpK4nyQkcT9JSEISAJKQhCQAJCEJAElIAkASkgCQhCQAJAEgCQBJAEjifpKQhCRWqxVPfvKT+Zu/+RskHf+gD/qg977mmmsefOutt/7N4eHhLlddddVVV1111VVX/X9HOX78OFddddVVV131f9E7vuM7ftbrvM7rvDfAz/7sz7K3t8eLShKSeFFJQhIvCklIQhIvCklI4l8iCUlI4l8iCUlI4oWRhCReGElIQhIvjCQk8YJIQhKSeH4kIYnnRxKSkMRzk4QkJPHcJCGJB5KEJCTxQJKQxP0kIQlJ3E8SkrifJCQBIAlJAEhCEgCSkASAJCQBIAkASQBIAkAS95OEJCSxWq148pOfzB/90R9xzTXXvPS7v/u7v/Xm5ubxs2fPPuPw8HCXq6666qqrrrrqqqv+v6IcP36cq6666qqrrvq/5sVe7MVe+yM+4iO+G+BHf/RHuf322wGQhCQk8aKQhCQk8aKQhCQk8aKQhCQk8S+RhCQk8S+RhCQk8S+RhCReGElIQhIvjCQk8cJIQhKSeEEkIYnnRxKSkMTzIwlJPD+SkMRzk4QknpskJPFAkpDEA0lCEveThCTuJwlJAEhCEgCSkIQkACQBIAlJAEgCQBIAkgCQxANJQhLL5ZKnPOUp/O3f/u3xhzzkIa/97u/+7m+9ubl5/B/+4R9+h6uuuuqqq6666qqr/j9CD3rQg7jqqquuuuqq/0te7MVe7LU/93M/97cAfvmXf5l/+Id/4IWxzb+Wbf41bPOvYZsXlW1eVLZ5UdjmRWGbf4lt/iW2+ZfY5gWxzQtjmxfENs+PbZ6bbZ4f2zyQbR7INg9kmweyzf1scz/bANgGwDYAtgGwDYBtbGMbgMzENrY5ceIEr/RKr8QrvdIr3fpbv/Vb3/2jP/qjn8NVV1111VVXXXXVVf+foAc96EFcddVVV1111f8V11xzzYO/6Zu+6ekAf/RHf8Qf/uEf8q9hm38t2/xr2OZFZZt/Ddu8KGzzorLNv8Q2Lwrb/Ets88LY5oWxzQtimxfENs+PbZ4f2zw32zyQbZ6bbe5nmweyzf1scz/bANgGwDYAtgGwDYBtbGMb29jGNrY5fvw4b/Zmb8bDH/7wW3/rt37ru3/0R3/0c7jqqquuuuqqq6666v8D9KAHPYirrrrqqquu+r/gmmuuefDnfM7n/NY111zz4Ntvv50f+7Ef4362+deyzb+Gbf41bPOvYZsXlW1eVLZ5UdjmRWGbf4ltXhS2eWFs84LY5oWxzfNjmxfENs/NNs/NNs/NNg9kmweyzf1scz/b3M82ALYBsM39bGMbANvYxja2sY1tMpMTJ07wnu/5npw4ceLW3/qt3/ruH/3RH/0crrrqqquuuuqqq676v4xy/Phxrrrqqquuuur/gk/6pE/6qYc85CEvffvtt/NjP/ZjPJAkJCGJF5UkJCGJF4UkJCGJF4UkJCGJF4UkJCGJf4kkJCGJf4kkJCGJF0YSkpDECyMJSUjiBZGEJCTxwkhCEi+IJCTx/EhCEpJ4fiQhiecmCUlI4rlJQhIPJAlJSOJ+kpCEJO4nCUncTxKSuJ8kJAEgCUkASEISAJKQBIAkACQhCQBJ3E8SkpCEJCQhidVqxR//8R9zxx13HH+N13iN136Hd3iH9z46Orp06623/jVXXXXVVVddddVVV/1fhB70oAdx1VVXXXXVVf/bfe7nfu5vvdiLvdhr7+3t8e3f/u28qGzzr2Wbfw3b/GvY5l/DNi8q27wobPOiss2/xDYvCtv8S2zzwtjmhbHNC2Kb58c2z49tnh/bPDfbPJBtnptt7mebB7INgG3uZ5v72QbANgC2sQ2AbWxjG9vYxja2eYVXeAXe/M3fnMy89eu//uvf5x/+4R9+m6uuuuqqq6666qqr/i+hHD9+nKuuuuqqq6763+zDP/zDv+sVX/EV3xrgZ3/2Z9nf3+dFJQlJSOJFJQlJvKgkIQlJvCgkIQlJvCgkIYkXhSQkIYkXRhKSkMS/RBKSeGEkIQlJvDCSkMQLIwlJvCCSkMQLIglJPD+SkMRzk4QkJPFAkpCEJB5IEpJ4IElI4n6SkIQk7icJSQBIQhL3k4QkACQhCQBJAEhCEgCSAJDE/SQhCUlIQhKSuOuuu/ibv/kbzp8/f/w93uM93vvBD37wgw8PDy+dPXv2Vq666qqrrrrqqquu+r8APehBD+Kqq6666qqr/rd6ndd5nff+8A//8O8C+LEf+zHuuOMOnptt/rVs869hm38t2/xr2OZFZZsXlW1eVLZ5UdjmRWGbf4lt/iW2eWFs88LY5gWxzfNjm+fHNs+PbZ6bbR7INg9kmweyzf1scz/b3M82ALYBsA2AbQBsYxvb2MY2trHNiRMneMVXfEUe+tCH3nrffff99o/+6I9+zn333XcrV1111VVXXXXVVVf9b0Y5fvw4V1111VVXXfW/0Yu92Iu99id90if9FMCP/diPcccdd/D8SEIS/xqSkMSLShKSkMSLShKSeFFJQhIvCklIQhL/EklIQhL/EklIQhIvjCQkIYkXRhKSeGEkIQlJvCCSkIQknh9JSEISz48kJPH8SEISz00SkpDEA0lCEpJ4IElI4oEkIYn7SUIS95OEJO4nCUkASEISAJKQBIAkJAEgCQBJAEgCQBKSkIQkJCGJ1WrFU57yFJ761KceP3PmzEu/+7u/+1tvbm4eP3v27DMODw93ueqqq6666qqrrrrqfyP0oAc9iKuuuuqqq6763+aaa6558Dd90zc9HeCP/uiP+OM//mP+NWzzr2Wbfy3b/GvY5l/DNv8atnlR2eZFYZsXlW3+Jbb5l9jmX2KbF8Y2L4xtXhDbPD+2eX5s8/zY5oFs89xs80C2uZ9tHsg2ALa5n20AbANgGwDbANjGNrYByExsY5sTJ07wiq/4irzSK73Srb/1W7/13T/6oz/6OVx11VVXXXXVVVdd9b8NetCDHsRVV1111VVX/W9yzTXXPPibvumbng5wxx138OM//uPczzb/Wrb517LNv5Zt/jVs869hmxeVbf41bPOisM2LwjYvCtv8S2zzL7HNC2ObF8Q2L4htXhDbPD+2eW62eW62eSDbPJBtHsg297PN/WwDYBsA2wDYBsA2ALaxDYBtbJOZ2Ob48eO84iu+Iq/8yq9862/91m9994/+6I9+DlddddVVV1111VVX/W9BOX78OFddddVVV131v8knfdIn/dQ111zz4DvuuIMf//Ef54EkIQlJvKgkIQlJvKgkIQlJvKgkIYkXlSQkIYkXhSQkIYl/iSQkIYkXhSQk8S+RhCQk8cJIQhKSeGEkIQlJvCCSkIQkXhBJSEISz48kJPH8SEISknhukpCEJJ6bJCTx3CQhiQeShCQeSBKSuJ8kJCEJAElI4n6SkASAJCQBIAlJAEgCQBKSAJAEgCQkcT9JSEISq9WKpz71qfzt3/7t8Qc96EGv/cEf/MHvvbm5efwf/uEffoerrrrqqquuuuqqq/6noxw/fpyrrrrqqquu+t/icz/3c3/rxV7sxV57b2+PH/iBH+CFkYQk/jUkIQlJvKgkIYkXlSQkIYkXlSQk8aKShCReFJKQhCT+JZKQhCT+JZKQhCReGElIQhIvjCQk8cJIQhIvjCQk8fxIQhKSeH4kIYnnRxKSeG6SkIQkHkgSkpDE/SQhCUncTxKSkMT9JCEJAElIQhIAkpAEgCQkASAJSQBIQhIAkgCQBIAkJAEgCUlIQhLL5ZKnPvWp/O3f/u3xBz3oQa/9wR/8we99dHR06dZbb/1rrrrqqquuuuqqq676nwo96EEP4qqrrrrqqqv+N/jwD//w73qd13md997b2+PXfu3XuP322/nXss2/lm3+tWzzr2Wbfw3b/GvY5l/DNi8q27wobPOisM2Lwjb/Etv8S2zzwtjmBbHNC2Kb58c2z49tnpttnpttHsg2D2SbB7LN/WwDYJv72QbANgC2AbCNbQBsYxvb2CYzOXHiBK/wCq/AK7/yK9/69V//9e/zD//wD7/NVVddddVVV1111VX/06AHPehBXHXVVVddddX/dO/4ju/4We/0Tu/02QA/8RM/wR133MED2eZfyzb/Wrb517LNv5Zt/jVs869hm38N27yobPOisM2LwjYvCtv8S2zzL7HNC2KbF8Y2z49tXhDbPDfbPD+2eSDbPDfb3M82D2Sb+9nmfrYBsA2AbQBsA2AbANvYxja2sU1mcuLECV7hFV6BV37lV77167/+69/nH/7hH36bq6666qqrrrrqqqv+p0APetCDuOqqq6666qr/yV7sxV7stT/3cz/3twB+4id+gjvuuIMXxDb/Frb517LNv5Zt/rVs869hm38N27yobPOiss2LyjYvCtv8S2zzL7HNv8Q2L4xtXhDbvCC2eX5s8/zY5rnZ5rnZ5oFs80C2uZ9t7meb+9kGwDb3s41tAGwDYBvb2MY2tslMTpw4wSu8wiuwvb393T/6oz/6Offdd9+tXHXVVVddddVVV1313w096EEP4qqrrrrqqqv+p3qxF3ux1/7cz/3c3wL44z/+Y/7kT/6EF5Vt/rVs829hm38t2/xr2OZfyzb/GrZ5UdnmRWWbF5VtXhS2+ZfY5l9im3+JbV4Y27wgtnlBbPP82Oa52eb5sc0D2eaBbPNAtnkg29zPNgC2uZ9tAGwDYBvbANjGNraxjW1sc/z4cR784AffurW19d2//du//T333XffrVx11VVXXXXVVVdd9d8FPehBD+Kqq6666qqr/ie65pprHvxN3/RNTwe44447+Mmf/Els829hm38t2/xr2eZfyzb/Wrb517DNv4Zt/jVs86KyzYvCNi8K27wobPMvsc2/xDYviG1eENu8ILZ5fmzz/NjmudnmudnmgWzzQLa5n23uZ5v72QbANgC2AbANgG1sYxuAzMQ2tjlx4gQPetCDbt3a2vruH/3RH/0crrrqqquuuuqqq67674Ae9KAHcdVVV1111VX/E33u537ub73Yi73Ya99xxx385E/+JM/NNv8WtvnXss2/lm3+tWzzr2Wbfw3b/GvY5l/DNi8q27wobPOisM2LwjYvjG3+JbZ5YWzzgtjmBbHN82Ob58c2z802D2SbB7LNA9nmfra5n23uZxsA2wDYBsA2ALaxDYBtbJOZ2ObEiRM8+MEPvnVzc/O7f/RHf/RzuOqqq6666qqrrrrqvxJ60IMexFVXXXXVVVf9T/O5n/u5v/ViL/Zir723t8d3f/d38y+xzb+Wbf4tbPOvZZt/Ldv8a9nmX8M2/xq2+dewzYvKNi8K27wobPMvsc2/xDb/Etu8MLZ5QWzz/Njm+bHN82Ob52ab52abB7LN/WzzQLa5n20AbHM/2wDYxjYAtgGwjW1sY5vM5MSJEzz4wQ++dblcfvdv/uZvfg5XXXXVVVddddVVV/1XQA960IO46qqrrrrqqv9JPvdzP/e3XuzFXuy19/b2+Mmf/En29vb417DNv5Zt/i1s869lm38t2/xr2OZfyzb/GrZ5UdnmRWWbF5VtXhS2+ZfY5l9im3+JbV4Q27wgtnlBbPP82Ob5sc1zs80D2eaBbPNAtrmfbe5nm/vZBsA2ALYBsI1tAGxjG9vYxjbHjx9nZ2fn1sVi8d2/+Zu/+TlcddVVV1111VVXXfWfiXL8+HGuuuqqq6666n+Kd3zHd/ys13md13lvgF/4hV/g3LlzSOJfQxKS+NeQhCQk8a8hCUn8a0hCEpJ4UUlCEpJ4UUhCEpJ4UUlCEpJ4UUhCEpL4l0hCEpL4l0hCEpL4l0hCEpJ4YSQhCUm8IJKQhCReEElIQhIviCQk8fxIQhKSeG6SkIQknpskJPHcJCEJSTyQJCTxQJKQxP0kIQlJAEhCEpIAkIQkACQhCUkASAJAEpIAkASAJAAkASAJSUhCEpJYrVZcunTpeGvttR/+8Ie/d2vt0sHBwV9z1VVXXXXVVVddddV/BvSgBz2Iq6666qqrrvqf4MVe7MVe+3M/93N/C+Anf/InufPOO3lutvm3sM2/hW3+tWzzr2Wbfy3b/GvZ5l/DNv8atvnXsM2LyjYvCtu8KGzzorDNC2Obf4ltXhjbvCC2eX5s8/zY5vmxzXOzzQPZ5oFs80C2uZ9t7mcbANvczzYAtrENgG1sA2CbzMQ2tnnwgx9865/+6Z++zzRNv81VV1111VVXXXXVVf+R0IMe9CCuuuqqq6666r/bi73Yi732537u5/4WwK//+q/z+Mc/nn+Jbf4tbPOvZZt/C9v8a9nmX8s2/1q2+dewzb+Gbf41bPOiss2LwjYvCtv8S2zzL7HNv8Q2L4htXhDbvCC2eX5s89xs89xs89xs80C2uZ9t7meb+9nmfrYBsA2AbQBsYxsA29jGNpmJbcZxvPXSpUufMwzDd3PVVVddddVVV1111X8E9KAHPYirrrrqqquu+u90zTXXPPibvumbng7w+Mc/nl//9V/nX8s2/xa2+deyzb+Fbf61bPOvZZt/Ldv8a9jmX8M2/xq2eVHZ5kVhmxeFbf4ltvmX2OaFsc0LY5sXxDbPj22eH9s8P7Z5brZ5INs8kG0eyDb3s839bANgGwDbANgGwDYAtrGNbWxjm8xkHMdbDw4Ovnu5XH4OV1111VVXXXXVVVf9e1COHz/OVVddddVVV/13+qRP+qSfuuaaax5855138ou/+ItIQhL/GpKQhCT+NSQhiX8NSUhCEv8akpDEv4YkJCGJF5UkJCGJF5UkJPGikoQkJPGikIQkJPGikIQkXhSSkMS/RBKSkMQLIwlJSOIFkYQkJPGCSEISknh+JCEJSTw/kpCEJJ6bJCQhiQeShCQk8UCSkIQkHkgSknggSUjifpKQhCQAJCEJSQBIQhIAkpAEgCQkASAJAElIAkAS95OEJCQhCUmUUo4vFovXns/n7w0cH8fxd7jqqquuuuqqq6666t8CPehBD+Kqq6666qqr/rt87ud+7m+92Iu92Gvfeeed/NRP/RTPj23+LWzzb2Gbfwvb/GvZ5l/LNv9atvnXss2/lm3+NWzzorLNi8o2Lyrb/Ets86KwzQtjm3+JbV4Q27wgtnlBbPPcbPP82Oa52eaBbPNAtnkg29zPNgC2uZ9tAGwDYBsA29jGNgC2yUxsM47jrYeHh999dHT0PbZv5aqrrrrqqquuuuqqFxV60IMexFVXXXXVVVf9d/jcz/3c33qxF3ux197b2+N7v/d7eVHY5t/CNv8WtvnXss2/hW3+tWzzr2Wbfy3b/GvZ5l/DNi8q27yobPOisM2LwjYvCtu8MLb5l9jmBbHNC2Kb58c2z49tnpttnpttnpttHsg297PN/WxzP9sA2AbANgC2AbANgG1sYxvbZCbTNN26XC5/+/Dw8Htaa7/NVVddddVVV1111VX/EipXXXXVVVdd9d/gHd/xHT/rxV7sxV4b4Dd+4zd4UUnifrZ5UUnifrZ5UUkCwDYvKknczzYvKknczzYvCknczzYvCknczzYvCknczzYvCkkA2OZFIQkA2/xLJHE/27wwkrifbV4QSdzPNi+IJO5nmxdEEgC2eX4kcT/bPD+SALDNc5PE/WzzQJK4n23uJ4n72eZ+krifbQAkcT/bAEjifrYBkASAbQAkAWAbSQDYRhIviCRsIwnbSMI2AJKwjW0kEREP7rruvbe3t997GIZbL1269DnDMHw3V1111VVXXXXVVVe9IJTjx49z1VVXXXXVVf/VXud1Xue9H/KQh7w0wE033cSZM2fo+57ZbMb+/j4vCklI4l9LEpL415CEJCTxryEJSUjiX0MSkvjXkIQkJPGikoQkJPGikoQkJPGikIQkJPGikIQkJPGikIQkJPEvkYQkJPHCSEISknhhJCEJSbwgkpCEJF4QSUhCEs+PJCQhiedHEpKQxHOThCSemyQkIYkHkoQkHkgSkpDE/SQhiftJQhKSAJCEJCQBIAlJAEhCEgCSkASAJAAkASAJAElIQhKSiAgASinHNzY23nqxWLx3Zh6fpul3uOqqq6666qqrrrrquaEHPehBXHXVVVddddV/tW/6pm96+jXXXPPgvb09dnZ2eKC9vT3uvPNO7rzzTp7whCfwr2Gbfwvb/FvY5l/LNv8WtvnXss2/hW3+tWzzr2Gbfw3b/GvY5kVlmxeFbV4UtvmX2OZfYpsXxjYviG1eENs8P7Z5fmzz3Gzz3GzzQLZ5INvczzb3s839bANgm/vZxjYAtgGwjW1sY5vMZBzHWw8PD7/76Ojoe2zfylVXXXXVVVddddVVAOhBD3oQV1111VVXXfVf7XM/93N/68Ve7MVe+3GPexzr9ZqdnR12dnY4c+YMz21vb48777yTJzzhCdx55528qGzzb2Gbfy3b/FvY5t/CNv9atvnXss2/lm3+tWzzr2GbF5VtXlS2eVHZ5kVhm3+JbV4Y2/xLbPOC2OYFsc3zY5vnxzbPzTbPzTYPZJsHss39bHM/29zPNgC2AbANgG1sA2Ab29jGNrYZx/HW5XL520dHR98zTdNvc9VVV1111VVXXfX/G5Wrrrrqqquu+m80m83Y29vj7NmznD17lqc85SnMZjN2dna45ppr2NnZYWdnh52dHR7zmMewt7fH/v4+d955J3feeSd33nknL4gkAGzzryEJANu8qCRxP9u8qCRxP9u8qCRxP9u8KCRxP9u8KCRxP9u8KCRxP9u8KCRxP9v8SyRxP9u8MJK4n21eGEnczzYvjCTuZ5sXRBIAtnlBJHE/2zw3SdzPNs+PJO5nmweSxP1s80CSuJ9t7ieJ+9nmfpIAsM39JAFgm/tJAsA2AJIAsA2AJABsIwkA20gCwDaSeEEkYRtJ2MY2ALaJiAd3Xffe29vb7z0Mw617e3ufs16vv5urrrrqqquuuuqq/58ox48f56qrrrrqqqv+q505c+bBL/7iL/7aR0dH7O3tYZv7tdY4Ojri7NmznD17lgsXLrBerwE4duwYOzs73HjjjTzmMY/h0Y9+NKdPn2Y2mzGbzdjf3+e5SUISkvjXkIQkJPGvIQlJSOJfQxKSkMS/hiQk8a8hCUlI4kUlCUlI4kUlCUlI4kUlCUm8qCQhCUn8SyQhCUn8SyQhCUn8SyQhCUm8IJKQhCReGElI4gWRhCQk8YJIQhLPjyQkIYnnJglJPDdJSOKBJCEJSdxPEpKQxP0kIQlJAEhCEpIAkIQkJAEgCUkASEISAJKQBIAkACQBIAlJAEhCEpKQRK31+GKxeOvFYvHeto+P4/g7XHXVVVddddVVV/3/QuWqq6666qqr/hvZxjYvyHq9Zr1ec+nSJQBmsxnHjh1jZ2eH2WzGsWPH2NnZ4TGPeQwAe3t73Hnnndx555084QlP4LlJ4n62eVFJ4n62eVFJAsA2/xqSALDNi0oS97PNi0oSALZ5UUnifrZ5UUjifrb5l0jifrZ5UUgCwDb/EknczzYvjCTuZ5sXRhIAtnlBJHE/2zw/krifbZ4fSdzPNs9NEvezzXOTBIBtHkgS97PN/SRxP9vcTxL3sw2AJO5nGwBJANgGQBL3s40kAGwjiedmG0m8IJKwjSRsYxvbSCIiHtz3/Wdvb2+/93K5/O2Dg4Pvyczf5qqrrrrqqquuuur/PvSgBz2Iq6666qqrrvqv9mIv9mKv/bmf+7m/tbe3xz/8wz/wgtjmhZnNZuzs7HDs2DGuueYantve3h533nknT3jCE7jzzjt5fmzzb2Gbfwvb/FvY5t/CNv9atvm3sM2/lm3+NWzzr2Gbfw3bvKhs86KwzYvCNv8S2/xLbPPC2OYFsc0LYpvnxzbPzTbPzTbPzTYPZJsHss39bHM/29zPNgC2AbANgG1sYxsA29gmMwFYLpe/vb+//z3DMHw3V1111VVXXXXVVf93Ubnqqquuuuqq/4Fs86JYrVasVivuu+8+nvzkJzObzTh27BjXXHMNx44dY2dnh52dHR7zmMewt7fH/v4+d955J3feeSd33nknAJK4n21eVJK4n21eVJK4n21eVJK4n21eVJIAsM2LShL3s82LShIAtnlRSQLANi8KSdzPNv8SSdzPNv8SSdzPNi+MJO5nmxdEEvezzQsiifvZ5vmRxP1s8/xI4n62eW6SuJ9tHkgS97PNA0nifra5nyTuZxsASdzPNgCSuJ9tACRxP9tI4n62kQSAbSTx3GwjiRdEEraxjSRsIwnbbGxsvPZ8Pn/tcRw/6+Dg4LuPjo4+h6uuuuqqq6666qr/e9CDHvQgrrrqqquuuuq/2jXXXPPgb/qmb3r6er3mL//yL7mfbV4UtvmX9H3PfD7n2LFjHDt2jGPHjvFAe3t73Hnnndx5553s7+9z5513cj/b/FvY5t/CNv8Wtvm3sM2/hW3+tWzzr2Wbfy3b/GvY5l/DNi8q27wobPOisM2/xDYvjG3+JbZ5QWzz/Njm+bHN82Ob52abB7LNA9nmgWxzP9vczzb3sw2AbQBsYxsA29jGNraxjW3Gcbx1uVz+9sHBwfdk5m9z1VVXXXXVVVdd9X8DetCDHsRVV1111VVX/Xf4iZ/4CQP80R/9EbZ5UdjmX2Kb52c2m3Hs2DGOHTvGfD7n2LFjPNDe3h533nknd955J094whO4n23+LWzzb2Gbfwvb/FvY5t/CNv9atvnXss2/lm3+NWzzorLNv4ZtXhS2eVHY5l9imxfGNv8S27wgtnl+bPP82Ob5sc0D2ea52eaBbPNAtrmfbe5nGwDbANgGwDYAtrENgG1sY5vMBGC5XP72/v7+9wzD8N1cddVVV1111VVX/e+GHvSgB3HVVVddddVV/x2+6Zu+6enXXHPNg//iL/6C9XrNv8Q2/xLbvDC2ud98PufYsWMcO3aMa6+9lue2t7fHnXfeyZ133skTnvAEAGzzb2Gbfwvb/FvY5t/CNv9atvm3sM2/lm3+NWzzr2WbF5VtXlS2eVHZ5kVhm3+JbV4Y27wwtnlBbPOC2Ob5sc1zs81zs81zs80D2eZ+trmfbe5nm/vZBsA2ALaxDYBtbGMb29jGNsMw3HpwcPDdR0dHn8NVV1111VVXXXXV/07oQQ96EFddddVVV1313+FzP/dzf+vFXuzFXvvv//7v2dvb4wWxzYvCNi+MbV6Y2WzGsWPHOH78ONdeey0PtLe3B8ATnvAE7rzzTu644w7+LWzzb2Gbfwvb/FvY5t/CNv9atvm3sM2/hm3+tWzzorLNi8o2LyrbvChs8y+xzQtjmxfGNi+IbV4Q2zw/tnlutnlutnkg2zyQbR7INvezzf1sA2AbANsA2AbANrYBsI1tbJOZjON462q1+u2Dg4Pvaa39NlddddVVV1111VX/e1C56qqrrrrqqv+hbPOisM2/xDYvjG1WqxWr1Yp7772XZzzjGQBce+21HDt2jOPHjwPwiq/4igDs7e2xv7/P4x//ePb29rjzzjt5UUjifrZ5UUnifrZ5UUnifrZ5UUnifrZ5UUnifrZ5UUjifrZ5UUkCwDYvCknczzYvCkkA2OZfIon72eaFkcT9bPPCSOJ+tnlBJAFgmxdEEvezzXOTxP1s89wkcT/bPJAk7mebB5LE/WxzP0kA2OZ+krifbQAkcT/bSOJ+tpHE/WwjCQDbSOIFkYRtJGEbSdjGNpKwjW0kEREP7vv+vbe3t997GIZbL1269Dnr9fq7ueqqq6666qqrrvqfj3L8+HGuuuqqq6666r/DmTNnHvziL/7ir71er9nb2+N+tnlR2OZfYpt/iW2e2zRNTNPEpUuXuOeee7j33ns5f/48ANM0cezYMXZ2dnjoQx/KYx7zGB7zmMdw5swZZrMZs9mM/f19/iWSkMS/liQkIYl/DUlIQhL/GpKQhCT+NSQhiX8NSUhCEi8qSUhCEi8qSUhCEi8KSUhCEi8KSUhCEv8SSUhCEv8SSUhCEi+IJCQhiRdGEpJ4QSQhCUk8P5KQhCSemyQkIYnnJglJPJAkJCGJB5KEJCRxP0lI4n6SkIQkACQhCUkASEISAJKQBIAkJAEgCQBJAEgCQBKSkEREIAlJlFKOb2xsvPVisXhv4Pg0Tc8Adrnqqquuuuqqq676n4nKVVddddVVV/0PYJsXlW1eFLb5l9jmhbENwGq1YrVasbu7C8B8PufYsWMcP36c48ePs7Ozw87ODo95zGMA2Nvb48477+TOO+/k8Y9/PC+MJO5nm38NSQDY5l9DEgC2+deQBIBtXlSSuJ9tXlSSuJ9tXhSSuJ9tXhSSuJ9t/iWSuJ9t/iWSuJ9tXhhJ3M82L4wk7meb50cS97PN8yOJ+9nm+ZHE/Wzz3CRxP9s8kCTuZ5v7SeJ+trmfJO5nm/tJAsA2AJK4n20AJAFgGwBJANhGEi8KSdhGEraRhG1sIwnbSMI2EfHgvu8/e3t7+72Xy+VvHx4efs80Tb/NVVddddVVV1111f8s6EEPehBXXXXVVVdd9d/hxV7sxV77cz/3c3/r0qVL/P3f/z0vCtv8S2zzorDNC2ObF8Q2DzSfzzl+/DjHjx/nuuuu47nt7e1x55138vjHP54777yTF4Vt/i1s829hm38L2/xb2Obfwjb/Wrb517LNv4Zt/jVs86KyzYvCNi8K2/xLbPMvsc0LY5sXxDbPj22eH9s8N9s8N9s8kG0eyDb3s839bHM/2wDYBsA2ALYBsI1tAGxjm8zENsMw3HpwcPDdR0dHn8NVV1111VVXXXXV/wxUrrrqqquuuup/ONu8qGzzorDNC2ObF8Q2z221WnHPPfdw99138/SnPx2A6667jhMnTnD8+HF2dnbY2dnhMY95DHt7e+zv73PHHXdw5513cuedd/L8SALANv8akgCwzb+GJO5nmxeVJO5nmxeVJO5nmxeVJABs86KSxP1s86KQxP1s8y+RxP1s8y+RxP1s88JI4n62eUEkcT/bvCCSuJ9tnh9J3M82z48k7meb5yaJ+9nmgSRxP9vcTxL3s839JHE/2wBI4n62AZDE/WwjifvZRhIvKknYRhK2kYRtJGEb20jCNpKwzXw+f/BsNvvs7e3t916tVr99eHj4PdM0/TZXXXXVVVddddVV/33Qgx70IK666qqrrrrqv8M111zz4G/6pm96+nq95s///M95brZ5UdnmRWGbf4ltXhDbvCC2eX7m8zmz2YwTJ05w/PhxTpw4wQPt7e1x5513cuedd7K3t8edd97JC2Kbfwvb/FvY5t/CNv8Wtvm3sM2/hW3+NWzzr2Wbfw3bvKhs86KwzYvCNv8S2/xLbPPC2OYFsc3zY5vnxzbPzTYPZJvnZpv72eaBbHM/2wDY5n62AbCNbQBsYxsA29gmM7HNMAy3Xrp06bvX6/XncNVVV1111VVXXfVfDz3oQQ/iqquuuuqqq/67/MRP/IQB/uAP/oD72eZFZZsXlW1eGNu8MLZ5YWzz/NjmgebzOSdOnOD48ePM53NOnDjBA+3t7XHnnXdy55138vjHP57nxzb/Vrb5t7DNv4Vt/i1s829hm38t2/xr2eZfyzb/GrZ5UdnmRWGbF4Vt/iW2eWFs8y+xzfNjmxfENs/NNs/NNs/NNg9kmweyzf1scz/b3M82ALYBsA2AbQBsYxvb2MY2mck4jreuVqvfPjg4+J7W2m9z1VVXXXXVVVdd9V8DPehBD+Kqq6666qqr/rt80zd909OvueaaB//Zn/0Z6/WaF5VtXlS2+ZfY5oWxzQtjmxfENs+PbQDm8zknTpzgxIkTXH/99Ty3vb097rzzTh7/+Mdz55138txs829hm38r2/xb2Obfwjb/Frb517LNv5Zt/rVs869hmxeVbV4UtnlR2OZfYpsXxjYvjG1eENu8ILZ5brZ5brZ5brZ5INs8kG3uZ5v72eZ+tgGwDYBtAGxjG9sA2MY2mYltxnG8dXd393PW6/V3c9VVV1111VVXXfWfCz3oQQ/iqquuuuqqq/67fO7nfu5vvdiLvdhr/93f/R2XLl3iX2Kbfw3b/Ets88LY5oWxzQtimxfENs/PbDbjxIkT3HDDDZw4cYIH2tvbY39/nzvuuIM777yTO++8k/vZ5t/KNv8Wtvm3ss2/hW3+LWzzr2Wbfy3b/GvZ5l/DNi8q27wobPOisM2/xDYvjG1eGNu8ILZ5fmzz/NjmudnmudnmgWxzP9s8kG3uZxsA2wDYBsA2ALYBsI1tbGMb22Qm4zjeenBw8N3L5fJ7MvNWrrrqqquuuuqqq/7jUbnqqquuuuqq/wVs869hm3+Jbf4ltnlhbPOC2OYFsc0LslqtuPvuu7n77ruZz+csFgtOnDjBiRMnOHHiBDs7O9x4440A7O3tceedd3LnnXeyt7fHnXfeCYBt/jUkAWCbfw1J3M82/xqSALDNv4YkAGzzryEJANu8qCRxP9u8KCRxP9u8KCRxP9v8SyRxP9u8MJK4n21eEEnczzYviCTuZ5vnRxL3s81zk8T9bPPcJHE/2zyQJO5nm/tJ4n62uZ8k7mcbAEnczzYAkgCwDYAknh/bSALANpJ4IEnYRhK2kYRtJGEb2wDYJiIopTy47/vPBj776Ojotw8ODr5nvV5/N1ddddVVV1111VX/cSjHjx/nqquuuuqqq/67nDlz5sEv/uIv/trr9ZpLly7xQLb517LNi8I2/xLbvDC2eUFs84LY5gWxzQNN08RqteLChQvcdddd3H333ezv7zNNE9M0cfz4cc6cOcNDH/pQHvOYx/CYxzyGM2fOMJ/POXfuHJL415CEJCTxryUJSfxrSUISkvjXkIQkJPGvIQlJSOJfQxKSkMSLShKSkMSLShKSeFFJQhIvCklIQhIvjCQkIYkXRhKSkMQLIglJSOL5kYQkJPH8SEISknhukpCEJB5IEpKQxANJQhKSuJ8kJCEJAElIQhL3k4QkACQhCUkASEISAJKQBIAkACQhCQBJSAJAEpKQhCQk0XXdgzc2Nt56sVi8N3C8tfYM27tcddVVV1111VVX/ftQueqqq6666qr/YWzzr2WbF4VtXhS2eWFs8x/NNv+S5XLJcrnkrrvuAmA+n3PixAlOnjzJDTfcwM7ODjs7OzzmMY/h9V//9dnb2+POO+/k8Y9/PHfccQf/GpK4n21eVJK4n23+NSRxP9u8qCRxP9u8qCRxP9u8qCRxP9u8KCRxP9v8SyRxP9v8SyRxP9v8SyRxP9u8IJK4n21eEEnczzbPjyTuZ5vnJon72ea5SeJ+tnkgSdzPNveTxP1scz9J3M82AJK4n20kcT/bSOJ+tpHECyMJ2zw3SdhGEraxDYBtIoJSyoP7vv9s4LOXy+Vv7+3tfc8wDN/NVVddddVVV1111b8N5fjx41x11VVXXXXVfyO9zuu8znsD3Hvvvfxr2eZFZZt/iW3+JbZ5YWzzgtjmX8s2L8g4juzv73Pffffx1Kc+lbvuuov9/X1qrSwWC2azGWfOnOExj3kMj3nMY3jYwx7Gzs4OAPv7+7yoJCGJfy1JSEIS/1qSkMS/liQkIYl/DUlIQhL/GpKQxL+GJCQhiReFJCQhiReFJCQhiReFJCQhiRdGEpKQxAsjCUlI4gWRhCQk8fxIQhKSeH4kIQlJPDdJSEISDyQJSUjigSQhCUncTxKSkASAJCQhCQBJSEISAJKQBIAkJCEJAEkASEISAJIAkIQkJCEJSUhCEpLouu7Bm5ubb71YLN4bON5ae4btXa666qqrrrrqqqtedFSuuuqqq6666n8h27yobPOisM2/xDYvjG1eENu8ILb517LNc1sulxwdHXHnnXeyWCxYLBacOHGCkydPcvLkSXZ2drjxxht5pVd6Jfb29rjzzju544472Nvb48477+RfIon72eZfQxIAtvnXkMT9bPOvIQkA2/xrSALANi8qSdzPNi8qSdzPNv8SSdzPNv8SSdzPNv8SSdzPNi+IJO5nmxdEEvezzfMjifvZ5rlJ4n62eW6SuJ9tHkgS97PN/SRxP9vcTxL3sw2AJABsAyCJ+9lGEs+PbSTxgkjCNpKwjSRsYxsA29jGNvP5/MF933828NlHR0e/fXBw8D3r9fq7ueqqq6666qqrrvqXoQc96EFcddVVV1111X+Xa6655sHf9E3f9PTVasWf/dmf8cLY5l/DNi8K2/xLbPMvsc0LYpsXxDYviG1eENs8P7Z5fubzOSdPnuTkyZMsFgtOnjzJA+3t7XHnnXdyxx138PjHP54XlW3+rWzzb2Gbfyvb/FvY5t/CNv9atvnXss2/hm3+NWzzorDNi8I2/xLb/Ets84LY5gWxzfNjm+fHNg9km+dmmweyzf1scz/b3M82ALYBsA2AbQBsYxvbANgmM7HNOI637u/vf/dqtfqd1tpvc9VVV1111VVXXfX8oQc96EFcddVVV1111X+nn/iJnzDA7/3e7/HcbPOvZZsXlW3+Jbb5l9jmBbHNC2ObF8Q2z49tXhDbPD+2eaDFYsGJEyc4deoUN954I89tb2+PO++8kzvuuIPHP/7xvChs829hm38r2/xb2ebfwjb/Frb517LNv5Zt/jVs869hmxeFbV4UtvmX2OZfYpsXxDYviG2eH9s8N9s8N9s8N9vczzYPZJv72eZ+tgGwDYBtAGxjGwDb2MY2trGNbYZhuHV3d/dz1uv1d3PVVVddddVVV131nNCDHvQgrrrqqquuuuq/0zd90zc9/Zprrnnwn/3Zn7FarQCwzb+WbV5UtnlR2OZfYpsXxjYviG1eENu8ILZ5fmzz/Njm+bHN/RaLBSdPnuSmm27i5MmTPNDe3h4Aj3/847njjju48847eWFs829lm38r2/xb2Obfyjb/Frb517LNv5Zt/jVs869hmxeVbf4ltvmX2OZfYpsXxjbPj22eH9s8N9s8N9s8kG0eyDYPZJv72QbANvezDYBtAGxjG9sA2MY2tslMxnG8dblc/vbBwcH3tNZ+m6uuuuqqq6666ipAD3rQg7jqqquuuuqq/06f+7mf+1sv9mIv9tp/8zd/w6VLl/jXss2LyjYvCtv8S2zzL7HNC2KbF8Q2L4htXhDbPD+2eX5s8/zM53MWiwWnTp3i5MmTnDp1igfa29tjb2+Pxz/+8ezt7XHnnXfygtjm38o2/xa2+beyzb+Fbf6tbPOvZZt/Ldv8a9jmX8M2LyrbvChs8y+xzQtjmxfGNs+PbZ4f2zw32zw32zyQbR7INvezzf1scz/bANgGwDYAtgGwjW1sYxvb2CYzGcfx1r29ve9eLpefw1VXXXXVVVdd9f8Zlauuuuqqq676X8g2/xq2eVHZ5l9im3+JbV4Q2/xHs83zY5t/Ddssl0uWyyUXLlwAYLFYcPLkSU6dOsViseDUqVPs7Oxw0003AbC3t8edd97JHXfcwZ133sne3h73kwSAbf61JAFgm38NSdzPNv8akrifbV5Ukrifbf41JAFgmxeVJO5nmxeFJO5nm3+JJO5nm3+JJO5nmxdGEvezzQsiifvZ5vmRxP1s89wkcT/bPDdJ3M8295PE/WxzP0nczzYAkrifbQAkcT/bSOJ+tpHEi0oStpGEbSRhG0nYxjYAtrFNRFBKeXDf9589juN7L5fL3z48PPyeaZp+m6uuuuqqq6666v8byvHjx7nqqquuuuqq/05nzpx58Iu/+Iu/9nq95tKlS7wwtvnXsM2LyjYvCtu8MLZ5YWzzwtjmBbHNfxTbvKimaWJvb497772XO+64gzvuuIO9vT2maaLWytbWFmfOnOFhD3sYL/3SL81jHvMYzpw5w2w249y5cwBIQhKS+NeShCQk8a8lCUlI4l9LEpL415KEJCTxryEJSUjiX0MSkpDEi0oSkpDEi0ISkpDEi0ISkpDEv0QSkpDECyMJSUjiBZGEJCTx/EhCEpJ4fiQhCUk8kCQkIYkHkoQkJHE/SUhCEveThCQkASAJSUgCQBKSkASAJCQBIAlJAEhCEgCSAJCEJCQhCUlIIiKICGqtx2ez2UtvbW2992KxeG/g+Hq9foakXa666qqrrrrqqv8PqFx11VVXXXXV/3C2+deyzb+Gbf4ltvmX2ObfwzYviG1eENv8V1oul9xxxx3cfvvtACwWC06dOsWpU6e4+eab2dnZYWdnh8c85jG80iu9EgCPf/zjueOOO7jzzjuRBIBt/rUkAWCbfy1JANjmX0MS97PNv4Yk7mebF5Uk7mebF5Uk7mebF4Uk7mebf4kk7mebf4kk7mebF0YS97PNCyKJ+9nm+ZHE/Wzz3CRxP9s8N0nczzb3k8T9bHM/SdzPNgCSuJ9tACRxP9tI4n62kcS/liRsIwnb2AbANraRhG3m8/mDZ7PZZ29vb7/3crn87aOjo98Zx/G7ueqqq6666qqr/i9DD3rQg7jqqquuuuqq/04v9mIv9tqf+7mf+1u7u7v87d/+Lbb5t7LNv4ZtXhS2+ZfY5l9imxfENi+MbV4Q2zw/tnl+bPOC2Oa52eb5sc1zWywWANx0002cPn2aU6dO8UB7e3vs7e1x5513cscdd3DnnXcCYJt/K9v8W9nm38o2/1a2+bewzb+Fbf61bPOvZZsXlW1eVLZ5UdjmX2KbF8Y2L4xtnh/bPD+2eW62eW62eSDbPJBt7meb+9kGwDYAtgGwDYBtbANgG9vYxjaZyTiOt+7v73/30dHR79j+ba666qqrrrrqqv9rqFx11VVXXXXV/yC2+deyzb+WbV5UtvmX2OZfYpsXxDYvjG1eENv8R7HNv9dyucQ2T3rSk3jSk57ExsYGi8WCU6dOcerUKU6fPs3Ozg433XQTr/RKr8Te3h533nknd9xxB3t7e9xxxx38a0kCwDb/WpIAsM2/liTuZ5t/DUkA2OZfQxL3s82LShL3s82LQhL3s82LQhL3s80LI4n72eaFkcT9bPOCSOJ+tnl+JHE/2zw3SdzPNs9NEvezzf0k8UC2AZDE/WwDIIn72QZAEvezjSTuZxtJvDCSsI0kbCMJ20jCNgC2sY1tACKCiHhw3/efffLkSYZhuHV3d/dz1uv1d3PVVVddddVVV/1fgR70oAdx1VVXXXXVVf+drrnmmgd/0zd909NXqxV/8id/wovKNv9atnlR2eZFYZsXxjb/Etu8ILZ5QWzzgtjmBbHN82Ob58c2z49tnh/bPDfbAGxsbHDq1ClOnz7NYrHg9OnTPNDe3h533nknd9xxB4973OP4t7LNv5Vt/q1s829lm38r2/xb2OZfyzb/WrZ5UdnmRWWbF4Vt/iW2+ZfY5gWxzQtim+dmm+dmm+dmmweyzf1s80C2AbDN/WwDYBsA29gGwDa2sY1tbJOZjON463K5/O3Dw8Pvmabpt7nqqquuuuqqq/43Qw960IO46qqrrrrqqv9O11xzzYO/6Zu+6ekAv/M7v8MLY5t/C9u8qGzzorDNv8Q2/xLbvCC2eWFs84LY5vmxzQtim+fHNs+PbZ6bbZ4f2zw/i8WC06dPc+rUKW655Rae297eHnfccQePf/zjueOOO/jXss2/h23+rWzzb2Wbfwvb/FvZ5l/LNv9atvnXsM2LyjYvCtv8S2zzwtjmBbHNC2Kb52ab58c2D2SbB7LN/WzzQLYBsM39bANgGwDb2AbANraxjW0yE9sMw3DrwcHBdx8eHn4PcCtXXXXVVVddddX/NuhBD3oQV1111VVXXfXf7Zu+6Zuefs011zz4T/7kT1itVtzPNv9WtvnXsM2Lyjb/Etv8S2zzwtjmBbHNC2KbF8Q2z49tnh/bPD+2eX5s8/zY5vmxzQNtbGxw6tQpbrnlFk6fPs0D7e3tsbe3xx133MGdd97JHXfcwb+Gbf6tbPPvYZt/K9v8W9jm38o2/1q2+deyzb+GbV5UtnlR2OZfYpsXxjYvjG2eH9s8P7Z5brZ5INs8kG3uZ5v72eZ+tgGwzf1sYxsA29gGwDa2yUxsMwzDravV6rePjo5+ZxiG7+aqq6666qqrrvrfAj3oQQ/iqquuuuqqq/67fe7nfu5vvdiLvdhr/83f/A0XL17k38M2/1q2eVHY5kVhm3+JbV4Y27wgtnlBbPOC2OYFsc3zY5vnxzbPj22eH9s8P7Z5brYB2NjYYGNjg9OnT3P69GlOnz7NA+3t7XHHHXdw5513sre3xx133MGLwjb/Hrb5t7LNv5Vt/q1s829hm38L2/xr2eZfwzYvKtu8KGzzL7HNC2ObF8Y2z49tnh/bPDfbPJBtHsg297PN/WxzP9sA2AbANgC2AbCNbWxjG9vYJjMZx/HWg4OD714ul7/TWvttrrrqqquuuuqq/8moXHXVVVddddX/ILb5t7DNv5Zt/jVs86Kwzb/ENi+Mbf4r2eZ/oqOjI46Ojjh37hwAi8WC06dPc+bMGTY2Njh9+jSPfexjeexjHwvA3t4ed9xxB3feeSePe9zjeEEkcT/b/GtJAsA2/1qSuJ9t/jUkcT/b/GtI4n62eVFJ4n62eVFJ4n62eVFI4n62+ZdI4n62eWEkcT/bvCCSuJ9tnh9J3M82z00S97PNc5PE/WxzP0nczzb3k8T9bAMgifvZRhL3s40kXlSSsI0kbCMJ20jCNgC2sY1tIoJSyoNns9ln22a9Xt+6v7//3UdHR5/DVVddddVVV131PxHl+PHjXHXVVVddddV/tzNnzjz4xV/8xV97tVqxu7vLi8I2/xa2+dewzYvCNv8S2/xLbPPC2OYFsc0LYpt/Ldv8TzKOI5cuXeLuu+/mtttu47bbbuPSpUuM48jx48eZzWacOXOGhz3sYbzyK78yj33sYzlz5gzDMLC3t8fzIwlJ/FtIQhKS+LeQhCT+LSQhCUn8a0lCEpL415CEJCTxryEJSUjiRSUJSUjiRSEJSUjiXyIJSUjihZGEJCTxgkhCEpJ4fiQhCUlI4rlJQhKSeCBJSEISDyQJSUjifpKQhCQAJCEJSQBIQhKSAJCEJAAkIQkASUgCQBIAkgCQhCQkERFIQhKSqLUeXywWr71YLN67lPLSrbVLmXkrV1111VVXXXXV/xRUrrrqqquuuup/Edv8W9nmX8M2Lyrb/Ets8y+xzQtjmxfENv8WtvnXss3zY5t/Ddv8exwdHfGMZzyDZzzjGfzFX/wFGxsbnDlzhltuuYUzZ86ws7PDYx/7WB772Meyt7fH3t4ed9xxB3feeSd33HEHDySJ+9nmX0sSALb515LE/WzzryWJ+9nmX0MS97PNi0oS97PNi0oS97PNi0IS97PNv0QS97PNCyOJB7LN8yOJB7LNc5PEA9nmuUnifrZ5IEnczzb3k8QD2QZAEvezDYAk7mcbSdzPNpJ4UUnCNpKwjSRsA2Ab29gGICKIiAfPZrP33tnZee9xHG990IMedOtDH/pQXvM1X/PBP/qjP/o5v/Vbv/XdXHXVVVddddVV/x3Qgx70IK666qqrrrrqv9uLvdiLvfbnfu7n/tbu7i5//dd/zf1s8+9hm38t27yobPOisM2/xDYvjG1eGNu8ILZ5QWzzgtjm+bHN82ObF8Q2z802z49tnh/bPDfbPDfbbGxssLm5yenTpzlz5gxnzpzhgfb29rjjjju488472dvb44477uC52ebfwzb/Hrb5t7LNv4dt/i1s829hm38t2/xr2eZFZZsXhW3+JbZ5YWzzwtjm+bHNc7PNc7PNA9nmgWxzP9vczzb3sw2AbQBsYxsA29jGNraxjW1sc+zYMd7pnd7p1lOnTvFZn/VZr3PffffdylVXXXXVVVdd9V8JPehBD+Kqq6666qqr/ru92Iu92Gt/7ud+7m/t7u7yV3/1V/x72eZfyzb/GrZ5UdjmX2KbF8Y2L4xtXhDbvCC2eUFs84LY5vmxzfNjm+fHNs+PbZ4f2zw32zw32zy3jY0NTp8+zZkzZ9jc3OTMmTM80N7eHnfccQd33nknj3vc43hutvn3sM2/lW3+PWzzb2Wbfyvb/FvY5t/CNv8atnlR2eZFYZt/iW1eGNu8MLZ5fmzz/NjmgWzzQLZ5INvczzb3s839bANgGwDb2AbANraxjW1sc/z4cV7ndV6HRz7ykbd+yId8yEO46qqrrrrqqqv+K1GOHz/OVVddddVVV/13k8Sbv/mbfzTAHXfcwb+Fbf4tbPOvYZsXhW1eFLZ5YWzzwtjmv5Jt/jcax5Hd3V3uuusunvGMZ3Drrbeyu7vLOI4cP36c2WzGmTNneNjDHsYrv/Ir89jHPpYzZ84wDAN7e3tIQhL/VpKQxL+FJCQhiX8LSUhCEv9akpCEJP61JCEJSfxrSEISkvjXkIQkJPGikIQkJPEvkYQkJPHCSEISkpDE8yMJSUhCEs9NEpKQhCSemyQkIYkHkoQkJPFAkpCEJAAkIQlJAEhCEpKQBIAkJAEgCUkASEISAJKQBIAkJAEgCUlEBJKQxHq95t577+WVXumVji8WC/7hH/7hd7jqqquuuuqqq/6rUI4fP85VV1111VVX/Xfb3Nw8/uZv/uYfXWvl1ltv5UVlm38r2/xr2OZFZZt/iW3+JbZ5YWzzwtjmBbHNC2Kbfy3b/E8hiX/JOI5cunSJO++8k8c97nE84xnPYHd3l77v2dzcZDabcebMGR772Mfy2Mc+loc97GHs7Owgif39fSTxbyEJSUji30ISkpDEv4UkJCGJfy1JSEIS/1qSkIQk/jUkIQlJSOJFJQlJSOJFIQlJSOJfIglJSEISL4wkJCGJF0QSkpDE8yMJSUjiuUlCEpKQxP0kIQlJSOJ+kpCEJAAkIQlJSAJAEpKQBIAkJAEgCUkASEISAJIAkIQkJAEgCUlIYr1es1qteKd3eqfXPnv27DNuvfXWv+aqq6666qqrrvqvQDl+/DhXXXXVVVdd9d/t8PBw93Ve53Xee3Nz8/g999zDNE08P7b597DNv5ZtXlS2eVHY5l9im38P2/xfYpv/TOM4sru7y6233sqtt97KnXfeydHREQAnT55kZ2eHm266icc+9rE89rGP5cyZM8znc+bzOXt7e/xbSEIS/1aSkMS/lSQk8W8hCUlI4l9LEpKQxL+WJCQhiReVJCQhiReFJCQhCUn8SyQhCUm8MJKQhCReEElIQhLPjyQkIYnnRxKSkMQDSUISkrifJCQhiftJQhKSAJCEJCQBIAlJAEhCEgCSkASAJAAkASAJSUji7rvv5qEPfSg33XTT8d/6rd/6Hq666qqrrrrqqv8KlOPHj3PVVVddddVV/xO80iu90ltfc801Dz537hyr1QoA2/xHsM2/lm3+NWzzorDNv8Q2/xLb/FvZ5gWxzQtim38t2/xvM44jh4eHnD17lltvvZVbb72V3d1dhmFgHEdOnjzJmTNneNjDHsZjH/tYHvvYx3LmzBlmsxnr9Zr1es2/hiQkIYl/C0lIQhL/FpKQhCT+LSQhCUn8a0lCEpL415KEJCTxopKEJCTxopKEJCTxL5GEJCTxwkhCEpKQxPMjCUlIQhLPTRKSkIQknpskJCGJB5KEJCRxP0lIQhL3k4QkJAEgCUlIAkASkgCQhCQkASAJAEkASAJAEgCPfexj2dzcPP4P//APv8NVV1111VVXXfWfjcpVV1111VVX/Q9jG9v8e9nm38I2/xq2eVHY5kVhm3+JbV4Y27wgtvmPZpt/Lds8P7b5n+bw8JDDw0Oe/vSnA7C5uck111zDmTNneMhDHsLOzg6PfexjeexjHwvA3t4ed9xxB3fccQePe9zj+NeQBIBt/i0kAWCbfwtJ3M82/1qSuJ9t/jUkcT/b/GtI4n62eVFI4oFs8y+RxP1s88JI4oFs84JI4n62eX4kcT/bPDdJ3M82DySJB7INgCQeyDaSeCDbSOJ+tpHEv0QStpGEbSRhm1tvvZW3f/u3f/DrvM7rvPeP/uiPfg5XXXXVVVddddV/Nsrx48e56qqrrrrqqv8Jzpw58+AXf/EXf+3VasXu7i7/Wrb597DNv4ZtXlS2eVHY5l9imxfGNv9WtnlBbPN/kST+tcZxZHd3lzvvvJO///u/5+lPfzq7u7uM48iJEyeYzWacOXOGhz3sYTz2sY/lZV7mZZjNZgDs7e3xopCEJP6tJCEJSfxbSUIS/1aSkIQk/rUkIQlJ/GtJQhKS+NeQhCQk8aKQhCQkIYl/iSQkIYkXRhKSkIQknh9JSEISknhukpCEJCTx3CQhCUk8kCQkIYn7SUISkgCQhCQkIQkASUgCQBKSkASAJCQBIInVasXx48d5+MMffvzs2bPPuPXWW/+aq6666qqrrrrqPxOVq6666qqrrvpfzDb/Hrb517LNi8o2LwrbvChs88LY5oWxzVX/8Q4PD3n605/O05/+dP7+7/8egAc/+MFce+21XHPNNQC88iu/MgB7e3vs7e1xxx13cMcdd3DHHXfwwkjifrb5t5DE/WzzryWJ+9nm30ISALb515LE/WzzryGJ+9nmRSWJ+9nmRSGJ+9nmhZHEA9nmBZHE/Wzz/EjifrZ5bpK4n20eSBL3s839JHE/2wBI4n62AZDEv4Yk/vqv/5qXfdmX5R3f8R0/67d+67e+m6uuuuqqq6666j8Tlauuuuqqq676H+If/uEffgfg+PHjvCC2+Y9gm38t2/xr2OZFYZsXhW1eGNu8MLZ5YWzzgtjmBbHNC2Kb/+skYZv7HR4eAvAP//AP/P3f/z2bm5tsbm7y0Ic+lM3NTa655hp2dna46aabANjb2+OOO+7gjjvuYG9vjzvuuIMXRBIAtvm3kgSAbf4tJHE/2/xrSeJ+tvnXksT9bPOvIYn72eZFJYn72eZFIYn72eZfIon72eYFkcT9bPP8SOKBbPNAkngg29xPEg9kGwBJPJBtJPFAtpHE/Wwjiednd3cXgGuuuebBL/ZiL/ba//AP//DbXHXVVVddddVV/1moXHXVVVddddX/YLb5j2Kbfwvb/GvY5kVlm3+Jbf4ltnlhbPPC2Oa/km3+N5KEbf41Dg8POTw85L777gNgc3OTa665hmuuuYbNzU2uvfZaHvvYx/LYxz4WgL29Pe644w7uuOMOHve4x/H8SOJ+tvm3kMT9bPNvIYn72eZfSxL3s82/liTuZ5t/DUnczzYvKkk8kG3+JZJ4INu8MJJ4INs8P5J4INs8P5K4n22emyTuZ5sHksT9bHM/SdzPNgCSuJ9tJHE/20jifpcuXeK3fuu3eJ3XeR1e53Ve573+4R/+4be56qqrrrrqqqv+s1C56qqrrrrqqv8hzp49eyvAYrHANv9etvn3sM2/hm1eVLZ5UdjmX2Kb/0y2eUFs8x/JNv/XHR4e8rSnPY2nPe1pAGxubnLttddyzTXX8NCHPpSdnR0e+9jH8tjHPpY3fMM3ZG9vjzvuuIPHPe5x3HHHHTw3SQDY5t9KEgC2+beSBIBt/i0kcT/b/GtJ4n62+deQxAPZ5kUlifvZ5kUhifvZ5l8iifvZ5gWRxAPZ5rlJ4oFs80CSeCDb3E8SD2QbAEnczzYAkrifbSTx3P7mb/6G13md1+Gaa655MFddddVVV1111X8mKlddddVVV131f4ht/j1s869lm38N27wobPMvsc2/xDYvjG1eENv8W9nmv4tt/ieThG0ADg8PedrTnsbTnvY0/u7v/g7bPPShD+Xaa6/l2muvZWdnh8c+9rE89rGPZW9vj729Pe644w7uuOMO7rjjDu4nifvZ5t9CEvezzb+FJO5nm38LSdzPNv9akrifbf61JHE/27yoJHE/27woJPFAtnlhJPFAtnlBJHE/2zw/krifbZ6bJO5nmweSxP1sAyCJB7KNJB7INpK4dOkSt956Ky/2Yi/22i/2Yi/22v/wD//w21x11VVXXXXVVf8ZKMePH+eqq6666qqr/ic4PDzcfZ3XeZ33Pnbs2PG7776baZr4l9jmP4Jt/rVs869hmxeVbf4ltvmX2OaFsc2/lW3+LWzzr2Wb58c2/5eM48gwDNx333087WlP42lPexp33HEHBwcHAJw6dYqdnR1uuukmHvvYx/LYxz6WM2fOMJvNmM1m7O3tASAJSfx7SEIS/x6SkIQk/q0kIQlJ/FtIQhKS+LeQhCQk8a8hCUlIQhIvKklIQhIvCklIQhIvjCQkIQlJPD+SkIQkJPHcJCEJSUjigSQhCUlI4n6SkIQk7icJSUji2LFjLBYLtra2+NM//dOf4aqrrrrqqquu+s9A5aqrrrrqqqv+Bzl79uyt11xzzYMXiwWr1YrnZpv/KLb5t7DNv5ZtXhS2eVHY5l9imxfGNi+Mbf6tbPO/nSRs8+8hCdv8Wx0eHnJ4eMi9997L3/3d37GxscG1117Ltddey9bWFtdeey2PfexjeexjHwvA3t4ed9xxB3fccQePe9zjkASAbf6tJHE/2/xbSQLANv9WkgCwzb+FJO5nm38tSdzPNv8akrifbV4Ukngg27wwkngg27wgkrifbZ4fSdzPNs9NEvezzQNJ4n62AZDEA9nmGc94Bq/92q+NpNfmqquuuuqqq676z0Llqquuuuqqq/6Hss1/NNv8W9nmX8s2LyrbvChs8y+xzQtjm38P2/xHs83/VpKwzX8ESdjm+Tk8PORpT3saT3va0wDY3Nzk2muv5dprr+VhD3sYOzs7PPaxj+Wxj30sb/iGb8je3h533HEHj3vc47jjjjsAsM2/lSQAbPNvJYn72ebfQhL3s82/hSTuZ5t/LUnczzb/GpK4n21eVJK4n23+JZK4n21eEEk8kG2emyQeyDYPJIkHss39JPFAtgGQxG233QbANddc8+AXe7EXe+1/+Id/+G2uuuqqq6666qr/aJTjx49z1VVXXXXVVf9TvNiLvdhrP+QhD3np5XLJxYsX+feyzb+Xbf61bPOiss2Lyjb/Etv8e9nm38o2L4htrvqPM44jFy9e5I477uBv/uZveNrTnsbFixfp+56trS1msxlnzpzhsY99LI997GN52MMexrFjx5DE3t4e/1aSkIQk/j0kIYl/D0lIQhL/VpKQhCT+LSQhCUlI4l9DEpKQhCReVJKQhCQk8S+RhCQkIYkXRhKSkIQknh9JSEISknhukpCEJJ6bJCQhCYAHP/jBHD9+nPvuu+/Wf/iHf/gdrrrqqquuuuqq/2iU48ePc9VVV1111VX/Uzz4wQ9+6Rd/8Rd/7YsXL3Lx4kX+LWzz72Wbfwvb/GvY5kVhmxeFbf4ltnlhbPPC2Oa/km3+L5LEv5YkXphhGLh48SJPfepTedrTnsbtt9/OwcEBAKdOnWJnZ4ebbrqJxz72sbzYi70Y11xzDbPZjNlsxt7eHv8WkpDEv4ckJCGJfw9JSEIS/1aSkIQk/q0kIQlJ/GtJQhKS+NeQhCQk8aKQhCQkIYkXRhKSkMQLIglJSOK5SUISkpDEA0ni0qVLXHfddWxtbfFbv/Vb38NVV1111VVXXfUfjcpVV1111VVX/Q9y9uzZZwCcOHGCF5Vt/iPY5t/KNv8atnlR2eZFYZt/iW1eGNu8MLZ5YWzzb2Gbq/59JGGb+x0cHHBwcMC9996Lbba2trj22mu57rrr2Nzc5LrrruOxj30sj33sYwHY29vjjjvu4Pbbb+dxj3sc/1qSALDNv4ck7mebfytJ3M82/xaSuJ9t/i0kcT/b/GtI4oFs86KQxAPZ5l8iifvZ5gWRxAPZ5rlJ4oFs80CSeKBLly5x7bXXIunBXHXVVVddddVV/xmoXHXVVVddddX/IPfdd9+tvBC2+Y9km38P2/xr2OZFZZsXlW3+JbZ5YWzzn8k2/5Fs83+VJGzzH+ng4ICDgwOe+tSnArC1tcW1117Ltddey8Mf/nB2dnZ47GMfy2Mf+1je6I3eiL29Pe644w7+4R/+gTvuuIMXlSTuZ5t/D0kA2ObfQxL3s82/hSTuZ5t/C0nczzb/WpK4n21eVJJ4INu8MJJ4INu8IJJ4INs8N0k8kG0e6NKlSzzjGc/gQQ960INf/MVf/LX//u///re56qqrrrrqqqv+I1G56qqrrrrqqv9Bzp49eyvAfD7HNv8ZbPPvYZt/Ldv8a9jmRWGbF4Vt/r1s88LY5qr/mSRhmwc6ODjg4OCApzzlKfzBH/wBW1tbXHfddTzsYQ/juuuuY2dnh8c+9rE89rGPZW9vj729PW6//XbuuOMO7rjjDl4UkgCwzb+HJO5nm38PSQDY5t9KEvezzb+FJB7INv8akngg27yoJHE/2/xLJPFAtnlBJPFAtnlukngg21y6dAmAxz72sa/193//97/NVVddddVVV131H4nKVVddddVVV/0fZ5v/CLb517LNv4ZtXlS2eVHY5l9imxfGNv8etnlBbPOC2OZfyzb/mSRhmxeVJGzzH0UStnl+JGGbfw1J2Obg4ICnPOUpPOUpT2Fra4utrS2uvfZarrvuOq677jp2dna46aabANjb2+OOO+7g9ttvZ29vjzvuuIMXRhL3s82/hyQAbPPvIYn72ebfShL3s82/lSTuZ5t/LUnczzYvKkk8kG3+JZJ4INu8IJK4n22eH0n87d/+Lddeey0v/uIv/jo/+qM/+jlcddVVV1111VX/kahcddVVV1111f8g991336333Xffrddcc82DF4sFy+WSfwvb/Eewzb+Fbf61bPOiss2Lwjb/Etu8MLb5l9jmqv87Dg4OODg44O677wZga2uL6667juuuu46trS2uu+46HvvYx/LYxz4WgL29Pe644w5uv/12Hve4x/HCSALANv8ekrifbf49JHE/2/xbSeJ+tvm3ksT9bPOvJYkHss2LShIPZJt/iSTuZ5sXRBIPZJv7Xbp0iWuvvZaIeDBXXXXVVVddddV/NMrx48e56qqrrrrqqv9JXumVXumtr7nmmgffd999rFYr/iW2+Y9km38r2/xr2eZFZZsXhW1eFLZ5YWzzL7HNC2ObF8Q2/xa2+deyzf80kvivIol/LUkADMPAhQsXuO2223jKU57CU57yFM6fP884jpw8eZLZbMaZM2d4+MMfzqu8yqvwYi/2YlxzzTXMZjPOnj3L8yMJSfxHkIQk/iNIQhKS+PeQhCQkIYl/K0lIQhKS+LeQhCQk8a8lCUlI4kUhCUlIQhIvjCQkIYn1es1LvuRLcvLkyeP/8A//8Dtnz569lauuuuqqq6666j8Klauuuuqqq676X8Q2/xls8+9hm38t2/xr2OZFYZsXhW3+vWzzwtjm38o2/59Jwjb/WpKwzb+GJGzzojo4OODg4ICnPOUp/N7v/R5bW1tcd911XH/99Tz84Q9nZ2eHxz72sTz2sY/lVV7lVQD4h3/4B+644w7uuOMOHkgS97PNv4ck7mebfy9JANjm30sS97PNv5Uk7mebfy1JPJBtXlSSeCDb/Esk8UC2eUEuXbrEsWPHuOqqq6666qqr/sNRjh8/zlVXXXXVVVf9T/JiL/Zir/2QhzzkpZfLJRcuXOA/g23+vWzzb2Gbfw3bvKhs86Kwzb/ENv+ZbPM/gW3+t5HEv4Uk/rUk8S8ZhoELFy5w22238ZSnPIXHPe5xDMMAwOnTp5nNZtx888282Iu9GC/2Yi/Gwx/+cABmsxl7e3vcTxKS+I8gCUn8R5CEJCTxH0ESkpDEv4ckJCGJfytJSEISkvjXkIQkJCGJF4UkJCEJSTzQsWPHmM/nHB0d3foP//APv8NVV1111VVXXfUfhcpVV1111VVX/Q9z33333cp/Atv8R7DNv4Vt/jVs86KyzYvCNi8K2/xLbPPC2ObfyjYviG1eENtc9W8jCdv8a0jCNg90cHAAwF/91V8BsLW1xfXXX891113H1tYW119/PTs7O9x0000A7O3tcccdd3D77bezt7fHHXfcgSQAbPPvJYn72ebfSxL3s82/lyTuZ5t/K0k8kG3+LSRxP9v8a0jigWzzL5HE/W6//XZe4zVegxd/8Rd/7R/90R/9HK666qqrrrrqqv8oVK666qqrrrrqf5izZ88+A+DEiRP8e9jmP4pt/q1s869lmxeVbV4UtnlR2OZfYpsXxjYvjG3+p7PNVVdIwjb/GpKwzcHBAU9+8pN58pOfDMDW1hbXXXcd119/Pddffz07Ozs89rGP5bGPfSwAe3t73HHHHdx+++087nGPA8A2/xEkAWCb/wiSALDNfwRJ3M82/x6SuJ9t/i0k8UC2+deQxAPZ5oW5dOkSAGfOnHkwV1111VVXXXXVfyQqV1111VVXXfU/zH333Xcr/0q2+Y9mm38P2/xr2eZfwzYvCtu8KGzzL7HNfybb/EezzX82SdjmfwJJ2Oa/giRs86I6ODjgKU95Ck9+8pMB2Nra4vrrr+f666/nEY94BDs7Ozz2sY/lsY99LK/yKq8CwD/8wz9wxx13cPvtt/MfQRL3s82/lyTuZ5v/CJK4n23+PSRxP9v8W0nigWzzryGJB7LNA126dIlLly5xzTXXPPiaa6558H333XcrV1111VVXXXXVfwQqV1111VVXXfU/zNmzZ28FWCwWPD+2+c9im38P2/xb2OZfwzYvKtu8KGzzL7HNv8Q2L4xt/q1s84LY5r+Cbf43k4Rtnh9J2OY/iiRs88IcHBzw5Cc/mSc/+cn85V/+JQCPeMQjuP7667n++usBeJVXeRUA9vb22Nvb4/bbb+f222/njjvu4N9LEgC2+Y8gifvZ5j+CJO5nm38PSTyQbf6tJPFAtvnXkMQD2ebSpUscO3aMM2fOPPi+++67lauuuuqqq6666j8Clauuuuqqq676H8w2/5ls8x/BNv8WtvnXsM2LyjYvKtv8S2zzL7HNC2ObF8Y2V71oJGGb/yqSsM3zIwnb/GtIwjYPdHBwAMBf/uVfArC1tcX29jbXX389119/Pddffz07OzvcdNNNvMqrvAp7e3vcfvvt3HHHHVy6dIk77riDfytJANjmP4okAGzzH0US97PNv5ck7mebfw9J3M82/1qSuO2227jlllt4sRd7sdf6h3/4h9/mqquuuuqqq676j0A5fvw4V1111VVXXfU/yeHh4e7rvM7rvPfx48eP33XXXUzTxH8U2/xHsc2/lW3+tWzzorLNi8I2Lwrb/Ets85/JNv/RbPMfxTZXPS9J/GtJAmAYBg4ODrj77rt58pOfzJOe9CTOnz/PMAwMw8Dp06e55pprePjDH86LvdiL8WIv9mKcOXOG+XzO2bNn+beQhCT+I0lCEpL4jyQJSUjiP4IkJCEJSfx7SEISkpDEv8Y111zD1tYWv/Vbv/U9XHXVVVddddVV/xGoXHXVVVddddX/QGfPnr31mmuuefBisWC5XPJvZZv/SLb597DNv5Zt/jVs86KwzYvCNv8RbPPC2ObfyjYviG3+t5KEbf4tJGGb50cStnl+JGGb50cStvmPIgnbPD+SsM0DHRwc8OQnP5knPelJAGxvb3P99ddz/fXX88hHPpKdnR1e7MVejBd7sRfjjd7ojdjb2+P222/nH/7hH7jjjjv415DE/WzzH0USALb5jyQJANv8R5HE/Wzz7yGJB7LNC3Lttdci6cFcddVVV1111VX/UahcddVVV1111f8RtvnPYJt/D9v8W9jmX8M2LyrbvChs86KwzQtjm38P21z1P5skbPP8SMI2/1EkYZv9/X329/d50pOexO/8zu+wvb3NddddxyMf+UhuuOEGdnZ2eLEXezFe7MVejL29PS5dusQdd9zB7bffzh133MGLShIAtvmPIon72eY/iiTuZ5v/KJK4n23+vSTxQLYB2Nvb46qrrrrqqquu+g9H5aqrrrrqqqv+B7rvvvtufbEXezEWiwXPzTb/2Wzz72Wbfwvb/GvY5l/DNi8K27wobPPvZZt/K9v8R7PNfxTbXPWCScI2z48kbPOi2t/fZ39/nyc96Ulsb2+ztbXFDTfcwPXXX88NN9zAzs4ON998M6/yKq/C3t4et99+O3fccQeXLl3ijjvu4F8iCQDb/EeSBIBt/iNJ4n62+Y8iiQeyzb+XJAD29va4dOkS11xzzYNf7MVe7LX/4R/+4be56qqrrrrqqqv+vahcddVVV1111f9A9913360A8/kc2/xns81/BNv8W9nmX8s2LyrbvKhs86Kwzb/ENi+MbV4Y2/xb2eYFsc1Vz58kbPP8SMI2z48kbPP8SMI2/1EkYZsXZH9/n/39fe6++24Atre3uf7667n++uvZ3t7mhhtu4MVe7MV4sRd7MQD29va4/fbbueOOO/iHf/gHXhhJANjmP5Ik7meb/0iSuJ9t/iNJ4n62+fe6dOkSx44d46qrrrrqqquu+g9D5aqrrrrqqqv+Bzp79uwzABaLBf8ZbPMfxTb/Hrb517LNv4ZtXlS2eVHY5l9imxfGNv8etrnq30YStvmfQBK2eX4kYZt/DUnY5oH29/fZ39/nSU96ErbZ3t7mhhtu4Prrr+dRj3oUOzs7vNiLvRgv9mIvxhu90Ruxt7fH7bffzj/8wz9wxx138PxIAsA2/9EkAWCb/2iSuJ9t/iNJ4oFs8691++23c8stt/BiL/Zir/UP//APv81VV1111VVXXfXvReWqq6666qqr/ge67777bgVYLBb8e9nmP5pt/r1s869lm38N2/xr2OZFYZt/iW3+vWzzb2Wbq/7rScI2z48kbPP8SMI2/xqSsM3zIwnbvCD7+/s88YlP5IlPfCK//du/zfb2NjfccAOPfOQjueGGG9jZ2eHFXuzFeLEXezH29va4dOkSd9xxB7fffjt33HEHDyQJANv8R5MEgG3+M0jifrb5jyaJ+9nmRXXvvfdyzTXXPJirrrrqqquuuuo/ApWrrrrqqquu+h/o7NmztwIsFgv+NWzzn8U2/162+bewzb+WbV5UtnlR2eZfYpt/iW1eGNu8MLb5t7LNC2KbF8Q2/5tIwjb/0SRhm/8qkrDN8yMJ2/xrSMI2D7S/v88Tn/hEnvCEJ7C9vc329jY33HADN9xwAzfccAM7OzvcfPPNvMqrvAp7e3vcfvvt3HHHHVy6dIk77rgDAEkA2OY/miTuZ5v/DJIAsM1/BknczzYvyG233carvdqrce7cuQdz1VVXXXXVVVf9R6By1VVXXXXVVf8L2ea/gm3+I9jm38I2/1q2+dewzYvKNv8S2/xLbHPV/2ySsM1/JUnY5j+KJGzz/EjCNs9NEvv7++zv73PXXXcBsL29zQ033MANN9zA9vY2N9xwAy/2Yi/Gi73YiwGwt7fH7bffzh133ME//MM/IAkA2/xnkASAbf4zSOJ+tvnPIIkHss399vb2ADhz5syDueqqq6666qqr/iNQueqqq6666qr/ge67775bARaLBfP5nOVyyX8F2/xHsc2/lW3+tWzzr2WbF4VtXhS2+ZfY5l9imxfGNi+Mbf43sM3/RZKwzfMjCdv8a0nCNs+PJGzz/EjCNv8akrDN/fb393niE5/IE5/4RGyzvb3NDTfcwI033sijHvUodnZ2eLEXezFe7MVejDd6ozdib2+P22+/nTvuuIO///u/5z+LJABs859FEgC2+c8kiftdunQJgGuuuebBXHXVVVddddVV/xEox48f56qrrrrqqqv+J3rxF3/x177mmmsefO+997JcLvnPYJv/SLb597DNv4Vt/jVs86KyzYvCNv8S2/xLbPOfyTb/0Wzzn8E2/5kk8W8lif8MknhBJPEfSRIviCSeH0ms12vOnz/P05/+dP78z/+cJz7xiZw7d46+79nZ2WE2m3HNNdfw8Ic/nBd/8Rfn5V7u5ZjNZkhib2+P/2iSkMR/JklIQhL/2STx4i/+4sznc/7hH/7hd86ePXsrV1111VVXXXXVvweVq6666qqrrvp/wjb/GWzz72Wbfwvb/GvZ5kVlmxeFbf6r2OaFsc2/lW1eENtc9R9DErb5jyQJ2zw/krDN8yMJ2/xrSMI299vf3+eJT3wiT3ziE9na2mJ7e5sbb7yRG264gRtvvBGAV33VVwVgb2+P22+/ndtvv529vT1uv/12/qNIwjb/2SQBYJv/LHt7exw7doyrrrrqqquuuuo/BJWrrrrqqquu+h/qvvvuu/XFXuzFWCwW/GvZ5j+Tbf69bPNvZZt/Ldv8a9jmRWGbF4Vt/iW2eWFs8+9hm6tedJKwzb+FJGzzH00Stnl+JGGb50cStvnXkIRtnh9J2Oa5HRwcsL+/z1133QXA9vY2N954IzfccAPb29vceOONvNiLvRgv9mIvBsDe3h633347t99+O7fffjt7e3v8e0gCwDb/2SQBYJv/aJcuXeLmm2/mmmuuefA//MM/cNVVV1111VVX/btQueqqq6666qr/oe67775bARaLBS+Ibf4r2OY/im3+rWzzr2Wbfw3bvKhs86Kwzb/ENv9etvm3ss1/Jdv8bycJ2/xbSMI2z48kbPNfRRK2eX4kYZt/DUnYBmB/f58nPOEJPOEJTwBga2uLG2+8kRtvvJFHP/rR7Ozs8GIv9mK82Iu9GAB7e3vcfvvt3H777fzDP/wD/1aSALDNfzZJANjmP8qlS5e49957OXPmzIO46qqrrrrqqqv+vSjHjx/nqquuuuqqq/4nuuaaax7yiq/4im+9XC659957+a9km/9Itvn3sM2/hW3+NWzzorLNi8I2/xLb/Ets88LY5oWxzb+Vbf4tbHPVfzxJvCCSeEEk8YJI4gWRxPMjiRdEEs/PMAycO3eOpz/96fzZn/0ZT3jCEzh37hzDMHD69GlmsxnXXHMND3/4w3nxF39xXu7lXo7ZbIYk9vb2+NeSxH8VSUjiP8orv/IrI4nf+q3f+h6uuuqqq6666qp/DypXXXXVVVdd9T/UfffddyvAYrHgP5tt/qPZ5t/DNv9WtvnXsM2LyjYvKtv8S2zzL7HN/1S2uer5k4Rt/i0kYZv/6SRhm38NSdgGYH9/nyc84Qk84QlP4E//9E+xzWMe8xhuvPFGbrzxRgBe9VVfFYC9vT0uXbrEHXfcwe23387tt9/Oi0ISALb5ryAJANtcddVVV1111VX/I1C56qqrrrrqqv+hzp49eyvAxsYG/5Fs85/FNv9etvm3ss2/lm1eVLZ5UdjmRWGbf4lt/iW2eWFs88LY5n8a2/xfJwnb/FtIwjbPjyRs8/xIwjbPjyRs8/xIwjbPjyRs89wkYZvnRxK2eaD9/X0A/vRP/xSA7e1tdnZ2ePSjH83Ozg433ngjOzs73HzzzbzKq7wKe3t73H777dx+++3s7e1x++2388JIwjb/VSQBYJt/rb29PQDOnDnzYK666qqrrrrqqn8vKlddddVVV131f5ht/jPZ5j+Cbf49bPOvZZt/Ddu8KGzzorDNfwTb/GeyzVUvmCRs859BErb5t5CEbZ4fSdjm+ZGEbZ4fSdjmX0MStvnXkIRt9vf32d/f58477wRge3ubG2+8kRtvvJGdnR1uvPFGXuzFXowXe7EXA2Bvb4/bb7+d22+/nX/4h3/g+ZGEbf4rScI2/xqXLl0C4JprrnkwV1111VVXXXXVvxeVq6666qqrrvof6r777rsVYLFYsFgsWC6XvCC2+a9im/8otvn3sM2/lm3+NWzzorLNi8I2Lwrb/HvZ5oWxzb+Vbf6vk4Rt/q0kYZv/DJKwzf8EkrDN8yMJ2zw3Sdjm+ZGEbR5of3+fJzzhCTz+8Y8HYGdnhxtvvJEbb7yRxzzmMezs7PBiL/ZivNiLvRhv/MZvzN7eHrfffjv/8A//wO233879JGGb/0qSsM2/xqVLlzh27BjXXHPNg++7775bueqqq6666qqr/q0ox48f56qrrrrqqqv+p3rxF3/x177mmmsefO+993J0dMR/B9v8R7LNv5dt/i1s869hmxeVbV4UtnlR2OZfYpsXxjb/XWzzgtjmhbHNv8Q2/xdI4oWRxL+VJF4QSbwgknhBJPGCSOIFkcTzI4kXRBLPjyQA1us1586d42lPexqPf/zj+Zu/+RvOnj3LbDZjZ2eH2WzGNddcw4u92Ivx4i/+4jz84Q/n2LFjAOzt7fFfTRL/Go94xCM4duwYf/Znf/Yz9913361cddVVV1111VX/VlSuuuqqq6666qrnYJv/aLb5j2Cbfwvb/GvY5l/DNi8K27wobPMvsc2/l21eGNtc9T+bJGzzbyEJ2zw/krDN8yMJ2zw/krDN8yMJ2zw3SdjmX0MStrnf/v4+AHt7ezz+8Y9nZ2eH7e1tbrrpJm688UZuuukmdnZ2uPnmm3mVV3kV9vb2uP3227ntttvY29vj9ttv57+CJGxz1VVXXXXVVVf9l6Jy1VVXXXXVVf+D3Xfffbe+2Iu9GIvFgv8MtvnPYpv/CLb5t7LNv5ZtXlS2eVHZ5kVhm3+Jbf4ltvnPZJv/6Wzz/50kbPMfTRK2eX4kYZt/DUnY5rlJwjbPjyRs89wksbe3x97eHnfeeScAOzs73Hjjjdx4443s7Oxw00038WIv9mK82Iu9GACXLl3i9ttv5/bbb+cf/uEf+M8kCdv8Sy5dusTNN9/MYx/72Nf6+7//+9/mqquuuuqqq676t6Jy1VVXXXXVVf+D3XfffbcCLBYL/r1s85/JNv+RbPNvZZt/Ldv8a9jmRWWbF4Vt/iW2+ZfY5l9imxfGNv9Wtvm3ss3/NZKwzQsiCdu8IJKwzQsiCdv8W0jCNs+PJGzzH0kStnl+JGGb5yYJ2zw/krDNc5OEbe63t7fH3t4ej3/847HNzs4ON910EzfeeCOPfexjOXbsGMeOHePFX/zFeZM3eRP29va47bbb+Id/+Aduv/12/jtcunSJe++9l6uuuuqqq6666t+NylVXXXXVVVf9D3b27NlnAGxsbPCiss1/Fdv8R7LNv4dt/rVs869hmxeVbV5UtvmX2OY/gm3+PWzzb2Wbfy/bXPWik4Rt/i0kYZvnRxK2eX4kYZvnRxK2eX4kYZvnJgnbPD+SsM1zk4Rtnpsk9vb2eNzjHsfjHvc4fu3Xfo2dnR1uvPFGHvvYx3LTTTexs7PDi7/4i/PiL/7iXLp0ib29PW6//XZuv/12br/9dv4r7O3tAXDNNdc8hKuuuuqqq6666t+DylVXXXXVVVf9D3bffffdCrBYLHgg2/x3sM1/NNv8e9nmX8s2/1q2eVHZ5kVlm/8otvn3ss1/B9tc9V9PErb5t5CEbZ4fSdjm+ZGEbZ4fSdjmuUnCNs+PJGzz3CRhm+cmCdvcb29vj729PR73uMexs7PDzs4ON910EzfddBM33XQTx44d4+abbwbg0qVL3H777dx+++3s7e1x++2385/h0qVLXHvttZw7d+7BXHXVVVddddVV/x5Urrrqqquuuup/sLNnz94KsFgssM1/Ndv8Z7DNv5dt/q1s869hm38N27yobPOisM2/xDb/Etu8MLb597DNfybbvChs819FErb595CEbV4QSdjmBZGEbV4QSdjmBZGEbZ4fSdjm30IStnl+JGGbfw1J2Ob5kYRtnpskbPPcJGGbB5LE3t4ee3t73HHHHQDs7Oxw0003cdNNN7Gzs8NNN93EsWPHePEXf3EALl26xO23387tt9/OP/zDP3DVVVddddVVV/2PQ+Wqq6666qqrrrrMNv+ZbPMfwTb/Vrb517LNv4ZtXhS2eVHZ5l9im3+Jbf69bHPV/z+SsM3zIwnb/EeShG2eH0nY5vmRhG2emyRs89wkYZsHkoRt7re3t8fjHvc4Hve4x2GbnZ0dbrrpJm6++WYe+9jHcuzYMY4dO8aLv/iL8yZv8ibs7e1x22238Q//8A/cfvvtPDfbvCj29vYAuOaaax7MVVddddVVV13170Hlqquuuuqqq/4Hu++++24F2NjY4D+Sbf4r2OY/gm3+PWzzr2Wbfw3bvKhs86Kyzb/ENv8S2/xLbPOfyTb/Hrb5j2Sb/0skYZsXRBK2eUEkYZt/C0nY5vmRhG2eH0nY5vmRhG2eH0nY5vmRhG2emyRs89wkYZsHkgSAbR5IEnt7ezzucY/jcY97HL/yK7/Czs4ON910E4997GO5+eab2dnZ4cVf/MV58Rd/cS5dusTe3h633347t99+O7fddhv/WmfOnHkQV1111VVXXXXVvweVq6666qqrrvof7h/+4R9++8Ve7MVe+9SpU5w/f55/Ddv8V7PNfxTb/HvY5l/LNv9atnlR2eZFZZt/iW3+q9jmhbHNv5Vt/qPY5j+Kbf6nkIRt/rtIwjb/FpKwzfMjCds8P5KwzfMjCds8P5KwzXOThG2emyRs89wkYZsHkoRt7re3t8fjHvc4/uEf/oGdnR12dna4+eabuemmm7j55ps5duwYN998MwCXLl3i9ttv5/bbb+fSpUvcfvvtvCCXLl3iqquuuuqqq676D0Hlqquuuuqqq/6Xs81/J9v8R7LNv4dt/q1s869hm38N27wobPOisM2Lwjb/Etu8MLb597DNv4dt/jeThG3+u0nCNi+IJGzzgkjCNs+PJGzzgkjCNs+PJGzz/EjCNs+PJGzz/EjCNs9NErZ5bpKwzXOThG0eSBK2eSBJ7O/vs7e3xx133AHAzs4ON910EzfffDM7OzvcfPPNHDt2jBd/8RcH4NKlS9x+++3cfvvt/P3f/z3P7dKlSxw7doxrrrnmwffdd9+tXHXVVVddddVV/xZUrrrqqquuuup/uPvuu+/WF3uxF2OxWGCb/262+Y9mm38v2/xb2eZfyzYvKtu8qGzzorDNi8I2/xLb/HvZ5n8T2/xHsc1/BEnY5t9DErb57yIJ2/xbSMI2z48kbPP8SMI2z48kbPPcJGGb5yYJ2zw3SdjmgSRhm+cmCdsA7O3t8bjHPY7HPe5x2GZnZ4ebb76Zm2++mRd7sRfj2LFjHDt2jBd/8RfnTd7kTdjb2+O2227j9ttv5+///u/Z29vj2LFjnDlz5sH33XffrVx11VVXXXXVVf8WVK666qqrrrrqf7j77rvvVoDFYsF/Ndv8Z7HNfwTb/FvZ5l/LNv8atnlR2eZFYZsXhW3+Jbb5l9jmP5NtXhjbvKhs83+ZJGzz7yEJ27wgkrDNCyIJ27wgkrDN8yMJ2/xbSMI2/1qSsM1zk4RtnpskbPPcJGGbB5IEgG0eSBK2eSBJ7O3t8Q//8A/8wz/8A7/8y7/Mzs4ON910EzfffDMv/uIvzs7ODi/+4i/Oi7/4i/Oqr/qqHDt2jKuuuuqqq6666t+NylVXXXXVVVf9D3f27NlnAGxsbPCfzTb/mWzzH8E2/x62+deyzb+WbV5UtnlR2OZFYZv/KrZ5YWzzb2WbF5VtrvqfTxK2eX4kYZt/LUnY5gWRhG2emyRs89wkYZvnJgnbPDdJ2OaBJGGbB5KEbe63t7fH4x73OP7hH/6BP/zDPwTgxV/8xbn55pu5+eabud8111zz4H/4h3/gqquuuuqqq676N6Fy1VVXXXXVVf/D3XfffbcCbGxs8B/FNv8VbPMfyTb/Hrb5t7DNv4Zt/jVs86KwzYvCNi8K2/xLbPPC2OZ/G9u8KGzzv5EkbPPvIQnbvCCSsM0LIgnbvCCSsM3zIwnbPD+SsM3zIwnbvCCSsM1zk4RtnpskbPPcJGGb5yYJ2zyQJGzzQJKwzQNJYm9vD4A//MM/BGBnZ4dXfdVX5cVf/MU5c+bMg7jqqquuuuqqq/6tqFx11VVXXXXV/3Bnz569FWCxWPCvZZv/arb5j2Sbfw/b/FvZ5l/LNi8q27yobPOisM2Lwjb/Etv8e9nmhbHNfwTb/E9mm/9JJGGb/0ySsM2/hSRs8/xIwjbPjyRs84JIwjbPTRK2eW6SsM1zk4RtnpskbPNAkrDNA0kCwDb3kwSAbQD29vbY29vj3nvv5aqrrrrqqquu+nehctVVV1111VX/y9nmv5Nt/qPZ5t/LNv9WtvnXss2/hm1eVLZ5UdjmRWGbf4lt/iW2+c9km/9otrnqRSMJ27wgkrDNv5UkbPOCSMI2z48kbPP8SMI2L4gkbPPcJGGb5yYJ2zw3SdjmuUnCNg8kCQDbPJAkbPNAkrANwKVLlwC45pprHsxVV1111VVXXfVvRXDVVVddddVV/8Pdd999twJsbGxgG9vYxja2+a9kG9vYxja2+Y9iG9vY5t/DNrb5t7CNbf41bGObfw3bvKhs86KwzYvCNv9VbPPC2OY/gm3+o9nmRWGb/88k8cJI4oWRxL+VJF4QSbwwknh+JPH8SEISz00Sknhuknh+JPHcJPHcJHG/a6+9lquuuuqqq6666t+F4Kqrrrrqqqv+F/iHf/iH3wY4deoU/5VsYxvb2OY/mm1sY5t/D9vYxjb/Fraxzb+Wbf41bGObF5VtXhS2eVHY5kVhm3+Jbf4nsM2Lyjb/X0jiXyKJf4kk/jtJ4oWRxAsiiRdGEs+PJF4QSTw/knhukpDEc5PEc5PEc5PE3t4eANdcc82Dueqqq6666qqr/q0Irrrqqquuuuqqy2xjG9vYxjb/0WxjG9vY5t/LNrb5t7KNbf61bGObfw3bvKhsY5sXhW1eFLZ5UdjmX2Kbf4ltXhjbvDC2+ZfY5kVlmxeVba560UnihZHECyOJF0YSL4wkXhBJvDCSeH4k8YJI4vmRxPMjiecmiecmCUk8kCSuuuqqq6666qp/N4Krrrrqqquu+l/gvvvuuxVgY2ODfy/b2MY2trGNbf6z2MY2tvmPYBvb2Obfyja2+deyjW3+NWxjmxeVbV5UtnlR2OZFYZt/iW3+Jbb5z2ab/262uepFI4kXRhIvjCReGEm8IJJ4YSTx/EjiBZHE8yOJ50cSz00SknhukrjfpUuXADhz5syDueqqq6666qqr/q2oXHXVVVddddX/Avfdd9+tABsbG7wobPPfxTb/0Wzz72Wbfyvb/FvY5l/DNi8q27wobPOisM1/Fdu8MLb5j2SbF5Vt/qPZ5n8qSdjmhZGEbV4YSdjm30MStnlBJGGbfwtJ2OYFkYRtnpskbPP8SMI2z00StnlukrDNc5OEbR5IEra56qqrrrrqqqv+Q1C56qqrrrrqqv8Fzp49+wyAjY0NAGzzP4Vt/jPY5j+Cbf6tbPNvYZt/Ddv8a9jmRWGbF4VtXhS2+ZfY5j+bbV5UtnlR2eZFZZv/aLb5v0wStvnPIgnbvCCSsM0LIgnbPDdJANjmuUnCNs9NEgC2eSBJANjmgSRhmweShCSuuuqqq6666qp/NypXXXXVVVdd9b/AfffddyvAYrHANv9dbPOfyTb/UWzzb2Wbfwvb/GvZ5kVlmxeVbV4UtnlR2OZfYpt/iW1eGNv8R7HNVf+7SMI2L4gkbPOCSMI2L4gkbPOCSMI2z48kbPPcJGGb50cStnlukrDNA0kCwDb329vbA+Caa655MFddddVVV1111b8VwVVXXXXVVVf9L3D27NlbATY2NvivZBvb2MY2/xlsYxvb/HvZxja2+bewjW3+LWzzr2Eb27yobPOiss2LwjYvCtv8R7DNfxXb/GvY5kVlmxeVbf4vkMS/RBL/Ekn8SyTxwkjihZHECyOJF0YSL4gknh9JvCCSeH4k8fxI4qqrrrrqqquu+g9FcNVVV1111VVXYRvb2MY2trHNfwbb2MY2tvmPYBvb/FvZxjb/Fraxzb+Gbf41bPOiss2LwjYvCtu8KGzz72Wbf4lt/iW2+dewzX8321z1opPECyOJF0YSL4wkXhBJPD+SkMTzI4nnRxLPjyTut7e3x3333XfrNddc82Cuuuqqq6666qp/CypXXXXVVVdd9b/AfffddyvAxsYG/x62+e9gm/9otvn3ss2/lW3+tWzzr2Gbfw3bvChs86KwzYvCNv8S2/xXsM2/hm3+NWzzorLN/zeSsM0LIwnbvDCSsM2/hyRs84JIwjYviCRs8/xIwjbPjyRs89wkYZvnJgkA2zyQJGwDcM011zyYq6666qqrrrrq34rgqquuuuqqq/6X+Id/+IffBjh9+jQvjG1sYxvb2MY2tvmvYhvb2MY2/1FsYxvb/HvYxjb/Fraxzb+Wbf41bPOvYZsXhW3+I9nmX2Kbf4lt/iW2eWFs869hm38N21z1P4ck/rNJ4gWRxAsiiedHEpJ4fiTx3CRx6dIlAM6cOfNgrrrqqquuuuqqfwsqV1111VVXXfW/jG1s8z+Fbf4z2eY/gm3+PWzzb2Gbfy3bvKhs86KyzYvKNv8S2/xvZZt/Ddv8a9jmRWWbF5Vt/rtIwjb/ESRhmxdGErZ5YSRhmxdEErZ5QSRhmxdGErZ5fiRhm+dHErZ5fiRhm+cmCdtcddVVV1111VX/oQiuuuqqq6666n+J++6771aAjY0N/jvZxja2sc1/BtvYxjb/Xraxzb+VbWzzr2Ub2/xr2MY2LyrbvKhs86KyzX8U2/xLbPMvsc0LY5sXlW3+NWzzr2Gb/88k8R9FEv9eknhhJPEvkcQLIokXRBIviCSeH0lcddVVV1111VX/oQiuuuqqq6666n+J++6771aAjY0N/qvYxja2sY1t/jPYxja2sc2/l21sY5t/K9vY5l/LNrb517LNv4ZtXlS2eVHZ5kVhm3+Jbf4ltvmvZJv/TLb517DN/1eS+I8giX+JJF4YSfxLJPGCSOIFkcQLIonnRxKSANjf3wfgmmuueTBXXXXVVVddddW/BZWrrrrqqquu+l/i7NmzzwDY2NjgP5pt/qvZ5j+abf69bPNvZZt/Ldv8a9jmX8M2LyrbvChs8y+xzX8U27wwtnlR2OZfyzb/U9jmRWWb/yskYZsXRhK2eWEkYZsXRBK2eWEkYZvnRxK2eX4kAWCb5yYJ2zw/krjqqquuuuqqq/7dqFx11VVXXXXV/xL33XffrQAbGxv8W9nmv4tt/jPY5t/LNv8etvm3sM2/hm3+NWzzorLNi8I2/1Fs8y+xzX8E2/xr2eZfwzb/Gra56n8WSdjmhZGEbZ4fSdjmBZGEbZ6bJABsc9VVV1111VVX/YejctVVV1111VX/S5w9e/ZWgI2NDV4Y2/xPYJv/LLb5j2Cbfw/b/FvY5l/LNi8q27yobPOiss2Lwjb/Etv8R7DNv8Q2/xq2+deyzb+Gbf41bPN/kSRs8y+RhG1eGEnY5oWRhG1eGEnY5oWRhG2eH0nY5gWRhG2eH0nY5oH29vYAOHPmzIO46qqrrrrqqqv+LahcddVVV1111f9Ctvmfxjb/mWzzH8U2/x62+bewzb+Wbf41bPOiss2LyjYvCtv8S2zzorDNv5dt/jVs869lm38N2/xr2OZfwzb/3SRhm/9qkrDNCyMJ27wwkrDNCyMJ2zw/kgCwzfMjCds8P5KwzVVXXXXVVVdd9R+GylVXXXXVVVf9L3HffffdCrCxscF/N9v8V7DNfxTb/HvZ5t/CNv8WtvnXsM2LyjYvKtu8KGzzX8k2/5Fs869lm38N2/xPYpv/jyRhm38vSdjmBZGEbZ4fSdjm+ZEEgG0A7r33Xq666qqrrrrqqn8zgquuuuqqq676X+S+++67FeD06dP8V7GNbWxjG9v8Z7GNbWxjm/8ItrHNv4dtbPNvYZt/LdvY5l/DNi8q27yobPOisM2LwjYvCtv8e9nmRWWbfy3b/Gezzb+Gbf6z2Oa/kyReFJL4jyCJF4UkXhhJvCCSeGEkcdVVV1111VVX/bsRXHXVVVddddX/ImfPnr2V/yS2sY1tbGMb2/xns41tbPMfxTa2sc2/h21s829hG9v8a9nmX8M2tnlR2eZFZZsXhW1eFLZ5UdjmX2Kb/wi2sc2/lm3+tWzzr2Gbq/7zSOJfIon/CJJ4QSQhiauuuuqqq6666j8NwVVXXXXVVVf9L3LffffdCrCxscG/lW1sYxvb2MY2/1VsYxvb2OY/im1sY5t/D9vYxjb/Fraxzb+WbWzzr2Gbfw3bvKhs86KwzYvCNi8K2/xHsM2/xDb/Wraxzb+GbWzzr2Gbfy3b/GvY5j+LbV5UkviPJokXhST+JZL4l0jiXyKJF0YSz8/e3h4A11xzzYO56qqrrrrqqqv+LQiuuuqqq6666n+R++6771aAjY0NXhjb2MY2trGNbWzzX802trGNbf4j2cY2tvn3so1t/q1sY5t/LdvY5l/DNrZ5UdnGNi8q27wobPOisM1/JNv8e9nmX8s2/1q2+deyzb+Wbf41bPO/kST+O0jiXyKJf4kkXhhJPD/XXnstV1111VVXXXXVvxmVq6666qqrrvpf5OzZs88A2NjYwDb/E9nmP5Nt/iPZ5t/DNv9WtvnXss2/hm3+NWzzorDNfzTb/Ets8y+xzX802/xr2eZfyzb/Wrb5z2ab/6skYZv/CJKwzQsjCdu8IJKwzVVXXXXVVVdd9R+GylVXXXXVVVf9L3LffffdCrCxscH/BLb5r2Cb/0i2+feyzb+Vbf61bPOvZZsXlW1eVLZ5UdnmRWGb/yq2eVHZ5t/CNv9atvnXss2/lm3+P5CEbf6jSMI2/xJJ2OaFkYRtXhBJ2Oaqq6666qqrrvoPQeWqq6666qqr/hc5e/bsrQCbm5v8V7PNfyXb/Eezzb+Xbf6tbPNvYZt/Ddv8a9jmRWWbF5VtXhS2eVHY5l9im/8otvm3sM2/lm3+tWzzr2Wbfy3b/GvY5l/DNv/dJGGbf4kkbPMvkYRtXhhJ2OYFkcRVV1111VVXXfUfgspVV1111VVXXfUcbPPfwTb/GWzzH8E2/1a2+bewzb+Wbf41bPOiss2LyjYvCtu8KGzzL7HNv8Q2/xLb/FvY5t/CNv9atvmvYJurnpMkbPMvkYRtXhhJ2OaF2d/fB+Caa655MFddddVVV1111b8Flauuuuqqq676X+S+++67FWBjY4N/L9v8d7LNfxbb/Eexzb+Vbf6tbPOvZZt/Ddu8qGzzorLNfyTb/Fexzb+Fbf4tbPOvZZt/C9v8Z7PN/ySSsM2LQhK2+Y8kCdu8MJKwzVVXXXXVVVdd9Z+G4Kqrrrrqqqv+l7nvvvtuBTh9+jT/EtvYxja2sY1tbPNfzTa2sY1t/qPZxja2+feyjW1s829lm38L29jmX8M2tvnXsM2LyjYvKtu8qGzzH8U2/xLb/EezjW3+tWxjm38t2/xb2OZfyzZXPX+SeFFJ4l8iiauuuuqqq6666j8NwVVXXXXVVVf9L3P27NlbeSbb2MY2trGNbWxjm/9OtrGNbWzzn8E2trHNfwTb2Obfwza2+deyjW3+tWzzr2Eb27yobPOiss2LyjYvCtv8S2zzL7HNv8Q2/xq2+bewzb+Fbf4tbPOvZZt/Ldv8a9nmqiskcdVVV1111VVX/acguOqqq6666qr/Ze67775bATY2Nvifwja2sY1tbPOfxTa2sc1/BNvYxjb/Hraxzb+Fbf61bGObfw3b/GvY5kVlmxeVbV4UtvmfyDa2+deyjW3+tWxjm38t29jmX8s2/1q2+a9gm/9MknhRSeJFJYkXhSSuuuqqq6666qr/cFSuuuqqq6666n+Z++6771aAjY0N/rvY5r+Sbf6j2eY/gm3+rWzzb2Gbfy3b/GvY5kVlmxeVbV4UtnlR2OZfYpt/iW3+Jbb5t7LNv4Vt/i1s829hm/8qtvn/RBK2+ZdIwjZXXXXVVVddddV/GCpXXXXVVVdd9b/M2bNnnwGwubnJfzbb/HewzX8G2/xHsM2/h23+LWzzr2Wbfw3b/GvY5kVlmxeFbV4UtvmvYpt/C9v8W9jm38o2/xa2+bewzb+Wbf4r2OY/kyRs8x9NEra56qqrrrrqqqv+Q1C56qqrrrrqqv9l7rvvvlsBNjY2+I9im/9utvnPYpv/CLb597DNv5Vt/rVs869hm38N27yobPMfyTYvCtv8S2zzH802/1a2+bewzb+Vbf4tbPNfxTb/20nCNi8KSdjmqquuuuqqq676d6Ny1VVXXXXVVf/LnD179laAzc1N/jVs8z+Jbf4z2eY/im3+PWzzb2Wbfwvb/GvY5l/DNi8q27yobPMfxTb/Etv8S2zzorLNv5Vt/q1s829hm38r2/xb2OZfyzb/V0jCNi8KSVx11VVXXXXVVf9uVK666qqrrrrq/wjb/E9lm/8KtvmPZJt/L9v8W9nmX8s2/1q2eVHZ5l/DNi8q27wobPM/kW3+LWzzb2Wbfyvb/FvY5t/KNv9VbHPVVVddddVVV10FULnqqquuuuqq/2Xuu+++WwE2Njawzf9EtvmvYpv/SLb5j2Cbfyvb/FvY5l/DNv8atvnXsM2LyjYvCtu8KGzzL7HNv8Q2/xLb/FvZ5t/KNv8Wtvm3ss2/lW3+LWzzX8U2/9NI4qqrrrrqqquu+nchuOqqq6666qr/he67775bATY2NvjvZhvb2MY2tvnPZBvb2MY2/1FsY5t/L9vY5t/CNrb517KNbf41bPOvYZt/Ddu8qGzzorDNi8I2/9PZxjb/Fraxzb+Fbf6tbPNvYRvb/FvY5t/CNv+TSeKqq6666qqrrvovQ3DVVVddddVV/wudPXv2VoDNzU3+K9nGNraxjW3+K9jGNrb5j2Qb29jm38s2tvm3sI1t/i1s869lm38N2/xr2OZFZZsXhW1eFLZ5UdjmX2Kbf4lt/jVsY5t/C9vY5t/CNrb5t7CNbf4tbPNvZZt/C9v8W9jmqquuuuqqq676P4ngqquuuuqqq/4Xuu+++24F2NjY4D+DbWxjG9vYxjb/VWxjG9vY5j+abWzz72Ub29jm38o2/xa2sc2/lm3+NWzzr2GbF5Vt/jvY5r+abWzzb2Eb2/xb2MY2/xa2sc2/lW3+LWxjm38L21x11VVXXXXVVVc9FypXXXXVVVdd9b/QfffddyvA5uYm/x62+Z/CNv+ZbPMfxTb/Xrb5t7LNv5Zt/rVs869hmxeVbV5UtnlR2OY/im3+Jbb5l9jm38o2/x62+beyzb+Vbf6tbPNvZZt/K9v8W9jmqquuuuqqq676H4/KVVddddVVV/0vtrGxwQtjm/+pbPOfzTb/kWzz72Wbfyvb/FvY5l/DNv9atnlR2eZFZZsXhW1eFLb5n842/x62+beyzb+Vbf49bPNvZZt/K9tcddVVV1111VX/p1G56qqrrrrqqv+F/uEf/uF3ADY3N7HN/3S2+a9im/9otvn3ss2/h23+tWzzr2Wbfy3bvKhs86KyzYvCNi8K27wobPMvsc2/xDb/Grb597DNv5Vt/j1s829lm38P2/xb2ebfyjb/Vra56qqrrrrqqqv+y1C56qqrrrrqqv/FNjY2+J/INv+VbPMfzTb/EWzz72Gbfwvb/GvZ5l/LNi8q27yobPPfwTb/1Wzz72Gbfyvb/HvY5t/KNv8etvn3sM2/lW2uuuqqq6666qr/NahcddVVV1111f9CZ8+evZX/IWzz38E2/xls8x/BNv8etvm3ss2/lm3+tWzzorLNi8o2LyrbvChs8x/FNv8S2/xLbPNvZZt/D9v8e9jm38M2/1a2+fewzb+Hbf49bHPVVVddddVVV/2XonLVVVddddVV/wvdd999twJsbm7yX8U2/51s85/FNv9RbPPvZZt/C9v8W9jmX8s2Lyrb/GewzYvCNi8K2/xPZ5t/D9v8e9jm38M2/x62+fewzb+Hbf49bPOvtbOzA8B99913K1ddddVVV1111b8FwVVXXXXVVVf9L3XffffdCrC5ucl/JNvYxja2sY1t/jvYxja2+c9gG9v8R7CNbf49bGObfwvb/GvZxjb/WrZ5UdnmX8M2Lwrb/Hewzb/ENv8S2/xr2MY2/1a2sc2/lW1s829lG9v8W9nGNv9WtrHNv5VtbPPvYZurrrrqqquuuuq/BcFVV1111VVX/S919uzZWwE2Njb4t7CNbWxjG9vY5r+TbWxjG9v8Z7CNbWzzH8E2tvn3sI1t/i1sY5t/Ldv8W9jmRWWbfw3b/EezzYvCNv8T2cY2/1a2sc2/lW1s829lG9v8W9nGNv9WtrHNv5VtbPPvZZurrrrqqquuuuq/DcFVV1111VVX/S9133333QqwubnJ82Mb29jGNraxjW1s8z+BbWxjG9v8Z7GNbWzzH8U2tvn3sI1t/q1s829hm38t29jmRWWbfw3bvKhs86KwzYvCNi8K2/xLbPMfwTa2+bewjW1s829hG9vY5t/CNraxzb+VbWzzb2Ub2/x72Obfyza2+fewzVVXXXXVVVdd9e9C5aqrrrrqqqv+l7rvvvtuBdjY2MA2/9PZ5r+Sbf6j2eY/gm3+PWzzb2Gbfwvb/GvY5l/DNi8q2/xvZ5v/DLb597DNv4dt/j1s8+9lm38v2/xHsM2/l22uuuqqq6666qp/NypXXXXVVVdd9b/c5uYm/xPZ5r+abf4z2OY/im3+PWzzb2Gbfwvb/GvY5l/DNi8q27yobPOisM2Lwjb/E9nm38s2/x62+fewzb+Xbf49bPMfxTb/Xra56qqrrrrqqqv+w1C56qqrrrrqqv+l/uEf/uF3ADY2NvjvZpv/Lrb5z2Kb/yi2+fewzb+Vbf4tbPOvYZt/Ddu8qGzzorLNi8I2LwrbvChs8y+xzX8E2/x72Obfwzb/Xrb597DNv5dt/iPY5j+CbZ6fe++9l6uuuuqqq6666t+MylVXXXXVVVf9L7e5ucl/Fdv8d7PNfybb/Eeyzb+Hbf6tbPNvZZt/Ddv8a9jmP4Nt/rezzX8W2/x72Obfwzb/Xrb597DNfxTb/EewzQuys7MDwH333XcrV1111VVXXXXVvwWVq6666qqrrvpf6uzZs7fyn8Q2/5PY5j+bbf4j2ebfyzb/Vrb5t7LNv4Zt/jVs869hm/9otnlR2OZFYZv/qWzz72Gbfw/b/HvZ5t/LNv8RbPMfwTZXXXXVVVddddV/CSpXXXXVVVdd9b/UfffddyvA5uYm/xa2+Z/KNv8VbPMfzTb/Xrb597DNv4Vt/rVs85/JNi8q2/xPZpv/Srb597DNv4dt/j1s8+9lm/8ItvmPYJt/i2uvvZarrrrqqquuuurfjOCqq6666qqr/he77777bgXY3NzkudnGNraxjW1sYxvb/E9iG9vYxjb/mWxjG9v8R7GNbWzz72Eb2/xb2cY2/xa2+deyzb+WbV5UtnlR2eZFZZsXhW1eFLb5j2Kbf4lt/iW2+bewjW1s829hG9vY5t/KNrb5t7KNbWzz72Ub2/x72MY2tvm32NnZAeDs2bPP4Kqrrrrqqquu+rcguOqqq6666qr/xc6ePXsrwMbGBraxjW1s8z+ZbWxjG9v8Z7ONbWzzH8k2tvmPYJt/D9v8W9nmX8s2/1q2eVHZ5j+Dba56TraxjW3+LWxjG9v8W9nGNrb5t7CNbWzz72Ub29jm38o2trHNv4dtbHPVVVddddVVV/27EFx11VVXXXXV/2L33XffrQCbm5v8T2Ub29jGNrb5r2Ab29jmP5ptbPMfwTa2+beyjW3+rWzzr2Wbfy3b/GexzX8027wobPOisM3/NLaxzb+VbWzzb2Ub29jm38I2trHNv4dtbGMb2/xb2cY2tvn3sI1tbHPVVVddddVVV/2HoHLVVVddddVV/4vdd999twJsbGzwP4Ft/jvZ5j+Tbf6j2Obfyzb/Hrb517LNv5Zt/jVs86KyzYvKNv+T2eZ/Otv8e9jm38M2/xFs8+9lm/8Itrnqqquuuuqqq/5TUbnqqquuuuqq/wM2Nzf5r2ab/wls85/JNv+RbPPvZZt/D9v8W9jmX8s2/xq2+e9mmxeFbV4UtvnfzDb/Hrb597DNfwTb/HvZ5t/LNv8aOzs7ANx33323ctVVV1111VVX/VtQueqqq6666qr/xf7hH/7hdwA2Nzf5z2Cb/2ls81/BNv+RbPMfwTb/Hrb5t7DNv5Zt/jVs869hmxeVbf4vsM1/Jdv8W9jm38M2/xFs8+9hm/8Itrnqqquuuuqqq/7bULnqqquuuuqqq7DN/2S2+a9gm/9otvmPYJt/L9v8W9jmX8s2/5ls86KyzYvKNlf929jm38M2/162+feyzb+Xbf69bAOws7PDfffddytXXXXVVVddddW/FZWrrrrqqquu+l/s7NmztwJsbm7ywtjmfxPb/FeyzX802/xHsc2/l23+LWzzr2Wbfy3b/G9imxeFbV4Utvnfyjb/Vrb597LNv4dt/r1s8+9lmxfkmmuuefDZs2dv5aqrrrrqqquu+regctVVV1111VX/i9133323AmxubmKb/41s89/BNv8ZbPMfxTb/Xrb5t7LNv5Zt/rVs869hmxeVbV5UtrnqP59t/r1s8+9hm38P2/x72eaqq6666qqrrvovQXDVVVddddVV/8vdd999twJsbm7yv4FtbGMb2/xXso1tbPMfzTa2+Y9gG9v8e9nm38o2/xVs869hm6v+97GNbWzzb2Ub29jmX8s2trGNbf61bGMb29jmX8s2trGNbWzzotrZ2QHgvvvuu5WrrrrqqquuuurfguCqq6666qqr/pc7e/bsrQCbm5v8T2Mb29jGNrb5r2Yb29jmP4NtbPMfxTb/EWzzb2Wbfwvb/E9imxeVbV5Utvn/QhL/Ekn8SyTxr2Ub29jGNv9atrGNbf4tbGMb2/xr2cY2trHNv5ZtbGObq6666qqrrrrq343KVVddddVVV/0fsbm5yX8n2/xPYZv/bLb5j2Sb/yi2+beyzb+Fbf61bPOvYZv/TWxz1b+ebf4tbPPvYZt/K9v8W9nmqquuuuqqq676T0Vw1VVXXXXVVf/L/f3f//1vA2xubvJfwTa2sY1tbGOb/062sY1tbPOfxTa2sc1/FNvY5j+CbWzzb2Wbfwvb/GvZ5j+Tba76n0USLwpJvKhsYxvb/GvZxja2sc2/hm1sYxvb/GvYxja2sc0Ls7OzA8B99913K1ddddVVV1111b8Vlauuuuqqq6666nnY5n862/xXsc1/Btv8R7HNv4dt/i1s869lm38t2/xnsc2Lyjb/0Wzz30EStvmPIAnb/Feyzb+Wbf4tbPNvZZt/C9vY5qqrrrrqqquu+nejctVVV1111VX/y/3DP/zD7wBcc801vKhs87+Nbf6r2eY/g23+o9jm38s2/xa2+a9gm38N21z1H0cStvmPIAnb/EskYZsXRhK2eVHY5l/DNv9Wtvm3sM1z29nZAeDs2bO3ctVVV1111VVX/VtRueqqq6666qr/Y2zzf4Ft/jvY5j+Lbf4j2ebfyzb/Frb5t7DNVf83ScI2/xJJ2OZfIgnbvDCSsM2/RBK2eVHY5l/DNv9atnlRHDt2DID77rvvVq666qqrrrrqqn8rKlddddVVV131v9zZs2dvBdjc3MQ2/xvZ5r+Tbf4z2eY/mm3+PWzzX802/1q2+c9km6v+55KEbV4YSQDY5oWRhG3+JZKwzYvCNi8K2/xr2cY2V1111VVXXXXVvxuVq6666qqrrvpf7r777rsVYHNzk/8tbPPfzTb/2WzzH802/162+fewzf9UtvnPYpsXlW3+N5CEbf4lkrDNv0QStvmXSMI2LwpJ2OZfIgnbvDCSALDNCyMJANu8MJK4n21eEEnczzYvCklI4qqrrrrqqquu+ncjuOqqq6666qr/A+67775bATY3N/mfxja2sY1tbPPfxTa2sc1/JtvY5j+abf69bPPvYZt/C9v8a9nmqn8bSfx3kcSLQhIvKkm8KCTxopCEJP4lkpDEi0ISkviXSEISkpDEC7OzswPAfffddytXXXXVVVddddW/FcFVV1111VVX/R9w9uzZWwE2Nzf572Ib29jGNraxzX8329jGNv/ZbGOb/2i2sc2/l23+PWzzb2Gb/wq2+dewzVUgiReFJF5UknhRSOJFJYkXhSQk8aKQhCT+JZKQhCT+JZKQhCQk8S+RhCQkIYkH2tnZAeDs2bPP4Kqrrrrqqquu+reictVVV1111VX/h2xubvKfzTb/09nmv5Jt/rPY5j+Cbf49bPNfyTb/X0jCNv8bSMI2/5EkYZsXhSQAbPMvkQSAbf4lkgCwzb9EEvezzb9EEvezzb9EEveTxFVXXXXVVVdd9e9GcNVVV1111VX/B/z93//9bwNsbm7yH8E2trGNbWxjG9v8T2Qb29jGNv8VbGMb2/xnsI1t/iPY5t/DNv9WtrnqP44kXlSSeFFJ4j+aJF5UkvjXkMSLShIvKklI4kUlCUlI4kUhCUlIQhKSuOqqq6666qqr/tNRueqqq6666qr/Z2zzv51t/rvY5j+bbf6j2Oaq/3qSsM3/RZKwzYtCErZ5UUgCwDYvCkkA2OZfIon72eZfIon72eZFIYkHss2LQhIvyM7ODgD33XffrVx11VVXXXXVVf9WVK666qqrrrrq/4B/+Id/+B2Aa665Btv8X2Ob/062+a9gm/9Itvn3ss2/lW3+LWzzr2Wbq56XJGzzopCEbV4UkrDNi0IStnlRScI2LypJANjmRSEJANu8KCRxP9u8qCTx3Gzzr7GzswPA2bNnb+Wqq6666qqrrvq3onLVVVddddVVV/2PY5v/CWzzX8E2/9Fs8+9lm6v+55GEbf4zSMI2LwpJ2OZFIQkA27woJGGbfw1JANjmRSGJ+9nmRSGJB7LNv4YkXhDbXHXVVVddddVV/ymoXHXVVVddddX/AWfPnr0VYGtri/9tbPM/iW3+K9nmP5Jt/iPY5t/DNle96CRhm/8MkrDNfwZJ2OZFJQnbvCgkAWCbfw1JANjmRSWJ+9nmRSWJ52abfwtJPLednR0A7rvvvlu56qqrrrrqqqv+rahcddVVV1111f8B9913360Am5ub/E9mm/+JbPNfzTb/0Wzzv51trvqXScI2LypJ2OZFIQnbvKgkYZsXlSQAbPOikASAbf41JHE/27yoJPFAtvnXkMQLY5sXxc7ODgBnz559BlddddVVV1111b8HwVVXXXXVVVf9H3HffffdCrC5ucl/N9vYxja2sY1t/iexjW1s81/JNrb5j2ab/yi2+fewzf9FkvjXkMS/hiT+NSTxn0US/xqSkMS/hiT+NSQhiX8LSUhCEv9akpCEJCQhiX8PSUhCEpKQhCQkIQlJSGJnZweA++6771auuuqqq6666qp/D4Krrrrqqquu+j/i7NmztwJsbm7yX8E2trGNbWxjG9v8T2Ub29jmv5ptbPOfwTb/UWxz1f9NkvjXkIQk/jUk8a8hCUn8a0hCEpL4t5CEJCQhiX8LSUhCEpKQhCQk8R9lZ2cHgPvuu+9Wrrrqqquuuuqqfw8qV1111VVXXfV/zNbWFvfddx//EWzzv5lt/rvZ5j+Tbf6j2ObfyzZXPZskbPOikoRtXlSSsM2LShK2+deQhG1eVJIAsM2LShIAtvnXkMT9bPNvIYkHss2/hyT+I0jiqquuuuqqq676D0Fw1VVXXXXVVf9H/P3f//1vA2xubvKisI1tbGMb29jGNraxzf9GtrGNbf472cY2/5lsc9W/nST+tSTxn00S/xqS+NeQhCT+NSTxryUJSfxrSEISkvjXkoQkJPHvIQlJSEISkpCEJP4rbW9vA3Dfffc9nauuuuqqq6666t+DylVXXXXVVVf9H2Mb2/x/YZv/SWzzn802/9Fs89/NNv8XScI2/5kkYZt/DUnY5kUlCQDb/GtIAsA2/xqSuJ9t/jUk8dxs8+8lif8ItpHEC7OzswPA2bNnn8FVV1111VVXXfXvQXDVVVddddVV/0f8wz/8w+8AXHvttfxfZRvb2MY2tvmfwja2+c9mm/9otvmPYJv/DyTxryWJfw1J/GtJ4l9LEv9akpDEv5YkJPFvIQlJSOLfShKSkIQkJCGJ/w6SuOqqq6666qqr/stQueqqq6666qqr/seyzf9ktvmvZJv/aLb5/0wStvmfSBK2+deQBIBtXlSSALDNv4YkAGzzryGJ+9nmX0sSD2Sbfw9J/Ets819FEgA33XQTAP/wD//w21x11VVXXXXVVf8eVK666qqrrrrq/4izZ8/eCrC1tcX/Nrb538Q2/5Vsc9ULJwnb/FeRhG3+NSRhm38NSQDY5l9DErb515AEgG3+NSQBYJt/LUnczzb/FpJ4brb5jySJq6666qqrrrrqfy0qV1111VVXXfV/xH333XcrwObmJv9T2eZ/K9v8d7DNfxbb/Eexzb+XJGzzX00StvnXkoRt/jUkYZt/LUnY5l9DErb515IEgG3+NSRxP9v8a0nigWzzbyWJF8Q2/xNJ4oG2t7cBuO+++27lqquuuuqqq6769yC46qqrrrrqqv9D7rvvvlsBNjc3+e9kG9vYxja2sc3/NraxjW3+O9jmP4tt/q+RxH81SfxrSeLfQhL/WpKQxL+FJCTxbyEJSUji30oSkpCEJP6jSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJPFA29vbXHXVVVddddVV/2EIrrrqqquuuur/kLNnz94KsLW1xX8m29jGNraxjW1sY5v/zWxjG9v8d7GNba76ryOJfytJ/GtJQhL/WpKQxL+WJCTxbyEJSfxbSUISkvj3kIQkJCEJSUhCEv9bSUISkpCEJCSxs7MDwD/8wz/8NlddddVVV1111b8Xlauuuuqqq6666jnY5v8b2/xPYZv/bLb5v0oStvm3kIRt/i0kYZt/LUnY5l9LErb515IEgG3+tSRxP9v8W0jigWzzH0ESLwrb/GeQxH+knZ0dAO67775bueqqq6666qqr/r0Irrrqqquuuur/kL//+7//bYBrrrmGB7KNbWxjG9vYxja2sY1tbPP/gW1sYxvb/E9gG9v8fyeJ/06S+LeSxL+FJCTxryUJSfxbSEISkvi3kIQkJPHvIQlJSEISkpDEfxZJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCT+tSQhCUlIQhKSkIQktre3Abjvvvtu5aqrrrrqqquu+veictVVV1111VX/R9nmqmezzf9EtvmvZJv/6yRhm38rSdjm30IStvm3kIRt/rUkAWCbfwtJ3M82/1qSeCDb/HtJ4oWxzf80kvj3kMT9tre3ATh79uwzuOqqq6666qqr/r2oXHXVVVddddX/If/wD//wOwDXXnst/5/Z5n862/xXs83/BpKwzb+HJGzzbyUJ2/xbSALANv9akgCwzb+WJO5nm38LSdzPNv8WknhutvmPJIn/bSTxotre3uaqq6666qqrrvoPQ+Wqq6666qqrrvpfzTb/29jmqv98krDNv5UkAGzzbyEJ2/xbSALANv8Wkrifbf4tJHE/2/x7SOIFsc3/dpL4t5DE87O9vQ3AP/zDP/w2V1111VVXXXXVvxeVq6666qqrrvo/5OzZs7cCbG5u8n+Rbf43s81/F9v8Z5KEbf6jSMI2/16SsM2/hyRs828hCQDb/FtI4n62+beQxP1s828hiedmm/8IknhR2eY/kyT+I0niRSWJ+21vbwNw33333cpVV1111VVXXfXvReWqq6666qqr/g+57777bgXY2trifzPb/F9hm6v+bSRhm38vSQDY5t9KEgC2+beQBIBt/q0kAWCbfytJ3M82/x6SeH5s859FEv+TSOJfQxL/ku3tba666qqrrrrqqv9QBFddddVVV131f8x99913K8Dm5ib/k9nGNraxjW1sY5v/C2xjm/8JbPO/lST+o0ji30sSkvi3koQkJPFvJQlJSOLfQxKSkIQk/qNIQhKSkIQkJCEJSfxPJwlJSEISkpCEJCQhCUlI4vmRhCQkIQlJSEISDyQJSUhCEpKQxPXXXw/Ab/3Wb303V1111VVXXXXVfwQqV1111VVXXfV/zNmzZ2+95pprHry1tcXh4SH/XWzz/5Ft/r+ShG3+o0nCNv8RJAFgm38PSQDY5t9KEgC2+beSxAPZ5t9KEs+Pbf4jSeJ/M0n8a0jiXyKJ+0niqquuuuqqq676D0Xlqquuuuqqq676V7HNVc/JNv9T2ea/kiRs8x9NErb5jyIJ2/x7SQLANv9Wkrifbf49JPFAtvn3ksTzY5v/ayTxbyGJF4UkXhhJXH/99QD8wz/8w+9w1VVXXXXVVVf9RyC46qqrrrrqqv9j/v7v//63Aa699lpeFLaxjW1sYxvb2MY2trGNbWxz1RW2sY1trnpOkvjPIAlJ/EeRhCT+I0hCEpL495CEJCQhiX8vSUhCEpKQxH8USUhCEpKQhCQkIQlJSEISkvivIglJSEISkpCEJCQhCUlIQhKSkIQkXhhJSEISkpCEJCTx3CQhCUlIQhKSuJ8kJCEJSUhCEgCSuOqqq6666qqr/kNRueqqq6666qr/o2xjm6v+Y9jmqv8ZJAFgm/8Ikrifbf69JHE/2/x7SOKBbPPvJYnnxzb/mSTxP5Uk/rUk8S+RxAsjied23XXXAfAP//APv81VV1111VVXXfUfgeCqq6666qqr/o/5h3/4h98BuO6667jq3842trGNbf43ss1/F0lI4j+TJCTxH0kSkviPIglJSOI/giQkIQlJ/EeShCQkIQlJSEISkpDE/xaSkIQkJCEJSUhCEpKQhCQk8YJIQhKSkIQkJCGJB5KEJCQhCUlI4oEkIQlJSEIS95OEJCSxtbUFwH333XcrV1111VVXXXXVfwQqV1111VVXXXXVVYBtrvqPJwnb/GeSBIBt/qNI4n62+Y8giQeyzb+XJJ4f2/xnkMT/FZL415LEv0QSL4gkXhBJXHfddQD8wz/8w29z1VVXXXXVVVf9R6Fy1VVXXXXVVf/HnD179laAzc1Nrnpetrnqv5YkAGzzn0kSALb5jySJB7LNfwRJPJBt/qNI4oWxzf9Vkvj3kMSLQhIvjCReEEk8P1tbWwDcd999t3LVVVddddVVV/1HoXLVVVddddVV/8fcd999twJsbW3x/5ltrvqfRRIAtvnPJIn72eY/miQeyDb/ESTx/NjmP5ok/i1s859NEv+ZJPGiksS/RBIvjCSeH0k8t+uuuw6A++6771auuuqqq6666qr/KFSuuuqqq6666v+g++6779ZrrrnmwVtbWxwcHPB/kW2u+t9JEgC2+c8miQeyzX80STyQbf4jSeIFsc1/JUn8TyWJfwtJvCgk8cJI4gWRxAsiied29uzZZ3DVVVddddVVV/1HoXLVVVddddVV/wedPXv21muuuebBm5ubHBwc8L+Jba76/0ESALb5ryKJB7LNfzRJPD+2+Y8miReVbf63kMR/FEn8a0jiXyKJF0QSL4gkXhBJXHvttQD8wz/8w29z1VVXXXXVVVf9R6Fy1VVXXXXVVVf9p7PNVf/1JGGb/+kk8UC2+a8iiQeyzX8WSTw/tvmvIIn/ayTxbyGJf4kk/iWSeEEk8YJI4vnZ2toC4L777ruVq6666qqrrrrqPwrBVVddddVVV/0f9Pd///e/DXDttdfyH8E2trGNbWxjG9vYxja2sY1tbGMb29jmqqv+NSQhCUn8V5OEJCQhCUn8Z5OEJCQhCUlIQhKSkIQk/j+QhCQkIQlJSEISkpCEJCQhiRdEEpKQhCQkIQlJSOKBJCEJSUhCEpJ4IElIQhKSkIQkACQhCUlIQhKSAJCEJCQhCUlI4n6SkIQkHvawhwHwW7/1W9/NVVddddVVV131H4nKVVddddVVV/0fZ5ur/v+ShG3+t5LEc7PNfyVJvCC2+a8iif8otvn3ksR/B0n8a0niXyKJf4kkXhBJvCCSeGEksbW1xVVXXXXVVVdd9Z+CylVXXXXVVVf9H/QP//APvwNw7bXXctVVkgCwzf8FknhutvnvIIl/iW3+p5HE/ySS+PeQxItKEv8SSbwgknhhJPGCSOIF2dzcBOAf/uEffoerrrrqqquuuuo/EpWrrrrqqquuuuqq/yckAWCb/2sk8YLY5r+TJP4tbPO/hST+s0jiX0sS/xJJ/Esk8YJI4oWRxAsjiQe69tprAfiHf/iH3+aqq6666qqrrvqPROWqq6666qqr/g86e/bsrQBbW1tcddVzk8T9bPN/nST+Jbb5n0YS/1dJ4t9DEi8qSbwwkviXSOIFkcQLI4l/iSQ2NzcBuO+++27lqquuuuqqq676j0Tlqquuuuqqq/4P29ra4qqrXhhJPD+2+f9EEv8atrkKJPEfTRL/GpJ4UUjiXyKJF0QSL4wk/iWSeH4e8pCHAPBbv/Vb38NVV1111VVXXfUfjcpVV1111VVX/R9033333Xrffffdes011zx4a2uLg4MDrrrqX0MS/xLb/H8liav+dSTxbyGJF5UkXhSSeGEk8YJI4oWRxItCEve75pprAPiHf/iH3+aqq6666qqrrvqPRuWqq6666qqr/o86e/bsrddcc82DNzc3OTg44Kqr/qNJ4l/LNlf97yeJ/wiS+NeSxItCEi+MJF4YSbwwknhRSOKFkcQ111wDwD/8wz/8NlddddVVV1111X80KlddddVVV1111VVX/ZeRxH8W21z1gkniv4ok/q0k8aKSxL9EEi+MJF4YSfxLJPGikMTzs7m5CcB99913K1ddddVVV1111X80KlddddVVV131f9Tf//3f//aLvdiLvfZ1113Hvffey1VX/V8niav+c0jiP4Ik/jUk8aKQxL9EEi+MJF4YSbyoJPEvkQTAgx/8YAB+67d+67u56qqrrrrqqqv+M1C56qqrrrrqqquuuuqq/wck8Z9FEv8WknhRSeJfIokXRhIvjCReFJJ4UUnihTlz5gwA//AP//A7XHXVVVddddVV/xmoXHXVVVddddX/Uf/wD//wOwDXXnsttrnqX0cSV13130ES/90k8e8liX8NSbwoJPEvkcQLI4l/iSReVJJ4UUnigc6cOQPAP/zDP/w2V1111VVXXXXVfwYqV1111VVXXXXVVc+HbV4YSVz1f5Mk/q+QxH8GSfxrSeJFIYkXhSReGEn8SyTxL5HEv5YkXhQPetCD2NzcBOC+++67lauuuuqqq6666j8Dlauuuuqqq676P+rs2bO3AmxtbXHVfzzbPDdJXPWfSxL/n0jiv4ok/q0k8a8hiX+JJP4lkviXSOJfIol/DUn8Rzhz5gwAv/Vbv/XdXHXVVVddddVV/1moXHXVVVddddX/cVtbW1z1X8M2AJK46l8mif/LJPHfSRL/XpL415LEi0oS/xJJ/Esk8cJI4kUhiX8rSfxrXXPNNQD81m/91vdw1VVXXXXVVVf9Z6Fy1VVXXXXVVf9H3Xfffbfed999t15zzTUP3tra4uDggKv+a9gGQBL/H0ni/wJJ/E8hif9Ikvi3kMS/hiT+JZL4l0jiXyKJf4kk/rUk8Z9lY2MDgH/4h3/4ba666qqrrrrqqv8sVK666qqrrrrq/7CzZ8/ees011zx4a2uLg4MDrvqvZRtJ/F8lif8NJPE/iST+M0ji30MS/xqSeFFJ4l8iiX+JJF4YSbyoJPHvJYl/LdsAPOhBDwLgt37rt76bq6666qqrrrrqPxOVq6666qqrrrrqqv9EtpHE/3aS+J9GEv/dJPGfSRL/XpL415LEv4Yk/iWS+JdI4l8iiX+JJP61JPFfQRIAZ86cAeC3fuu3voerrrrqqquuuuo/E5Wrrrrqqquu+j/s7//+73/7xV7sxV772muv5Z577uGqq14UkvifQBL/HSTxn0kS/xEk8W8hiX8NSbwoJPGikMQLI4l/iSReFJL4zyCJ52abf40HPehB/NZv/dZ3/8M//MNvc9VVV1111VVX/WeictVVV1111VVXXXUVkvjvIIn/SpL4zyKJ/wiS+LeSxL+WJF4UknhRSOJfIokXRhIvCkm8qCTxn0kSz49tntuDHvQgAP7hH/7hd7jqqquuuuqqq/6zUbnqqquuuuqq/8P+4R/+4XcArrvuOv7mb/6Gq/572EYS/9NI4r+SJP6zSeI/miT+o0ji30oS/1qSeFFJ4kUhiX+JJP4lkviXSOJfIon/ySQBYJv73XLLLQD81m/91ndz1VVXXXXVVVf9Z6Ny1VVXXXXVVf9P2EYSV/3/Jon/CpL4zySJ/yiS+I8giX8rSfxrSeJfQxIvCkn8SyTxL5HEv0QSL4wkXlSS+O9kmxdGEgCLxYIzZ87woz/6o5/DVVddddVVV131X4HKVVddddVVV/0fdvbs2VsBtra2ALDNfyZJXPU/kyT+M0niP4Mk/iNI4t9LEv9WkvjXksS/hiReFJL4l0jiXyKJf4kkXhhJvCgk8a8liX8v27yoJAFgmxfm5MmTAPzIj/zIZ3PVVVddddVVV/1XoHLVVVddddVVV/2Hsc2LShJX/eeTxH8GSfxHk8S/lyT+PSTxbyGJfy1J/GtI4kUhiReFJP4lknhhJPEvkcQLI4kXhST+q0ni+bHNCyIJ2zw/p0+f5hVf8RX5zM/8zNfhqquuuuqqq676r0Llqquuuuqqq/4Pu++++2697777br3mmmsevLW1xcHBAf9T2OYFkcT/JZL4ryaJ/2iS+I8kiX8PSfxbSeJfSxL/WpJ4UUniRSGJF4Uk/iWSeGEk8S+RxAsjiX+JJF5UkvjPZpsXRhIAtnl+JGGbB3r0ox/NYx7zGP7hH/7ht//hH/7ht7nqqquuuuqqq/6rULnqqquuuuqq/+POnj176zXXXPPgra0tDg4O+N/ANs+PJK564STxH0kS/1Ek8W8liX8LSfxrSeJfQxIvKkm8KCTxopDEv0QSL4wkXhhJvDCSeGEk8aKQxL+FJF4Y2/xrSeKBbPP8SMI2z48kbLOxscFrvMZrsLGxwX333XfrZ37mZ74OV1111VVXXXXVfyUqV1111VVXXXXV/xq2eSBJXHWFJP4jSeLfSxL/FpL4t5DEv4YkXlSSeFFJ4kUhiX+JJP4lkviXSOKFkcQLI4kXRBL/Ekn8SyTxn0ESLwrbvCCSsM3zIwnbPLeNjQ1uueUWHv3oRwPwD//wD7/9mZ/5ma/DVVddddVVV131X43KVVddddVVV/0fd9999936Yi/2Ylx33XXcc889/F9im/tJ4v8rSfxHkMS/lyT+tSTxryWJfw1JvKgk8aKQxItCEv8SSbwwkviXSOIFkcQLI4kXRhIvjCReGEm8qCTxH802/xJJ3M82z00StnlRPPrRj+bRj340991336333Xcfv/Vbv/XdP/qjP/o5XHXVVVddddVV/x2oXHXVVVddddX/cffdd9+t/D9gm/tJ4n8KSfxnkcR/BEn8e0jiX0sS/xqSeFFJ4kUhiReFJP4lkviXSOJfIokXRhIviCReGEm8IJJ4YSTxwkjiXyKJfy1JvKhs84JI4vmxzfMjCds8N0nY5rlJwjYbGxu87Mu+LKdPn+ZHfuRHPvtHf/RHP4errrrqqquuuuq/G5Wrrrrqqquu+j/u7NmzzwC47rrr+P/CNgCS+L9KEv9ekvi3ksS/hiT+NSTxopLEv0QSLwpJ/Esk8cJI4oWRxAsjiRdGEi+IJF4QSbwgknhhJPHCSOJfIon/TJJ4QWzz/EgCwDbPTRK2eVFsbGxw88038+hHP5p/+Id/+O3P+IzPeJ/77rvvVq666qqrrrrqqv8JqFx11VVXXXXV/3H33Xffrfw/ZRsASfxfIYl/L0n8W0jiX0MSLypJvKgk8S+RxL9EEv8SSbwwknhhJPGCSOIFkcQLI4kXRBLPjyReEEm8MJJ4YSTxL5HEfzbbPD+SeCDbPJAkbPPcJGGbF+b06dO82qu9Gvfdd9+tP/IjP/LdP/qjP/o5XHXVVVddddVV/5NQueqqq6666qr/486ePXsrwNbWFv9f2UYS/9Uk8R9JEv8ekvi3kMS/hiReFJJ4UUjiXyKJf4kkXhhJvDCSeEEk8YJI4gWRxAsiiRdEEi+IJJ4fSbwwknhBJPHCSOJFIYn/SLZ5IEk8N9s8N0nY5oEkYZt/iSRss7Gxwcu8zMtw+vRpfuRHfuSzf/RHf/RzuOqqq6666qqr/ieictVVV1111VVX/b9gGwBJ/G8kiX8rSfxbSOJFJYkXhST+JZL4l0jihZHECyOJF0YSL4gkXhBJvCCSeEEk8fxI4vmRxAsiiRdEEs+PJF4QSbwwkvjXkMS/hW2emySem20eSBIAtnkgSdjmgSRhm3/Jox71KB796Edz33333fqZn/mZ7/MP//APv81VV1111VVXXfU/FZWrrrrqqquu+j/uvvvuu/W+++679Zprrnnw5uYmBwcH/Esk8X+VbSTxv4kk/i0k8W8hiReFJF4UkviXSOJfIokXRhIviCReEEm8IJJ4QSTxgkji+ZHE8yOJ50cSL4gknh9JPD+SeEEk8YJI4oWRxL+FJJ4f2zw/knhutnlukgCwzQNJwjYPJAnbvKhOnTrFy7zMy7CxscGP/MiPfPaP/uiPfg5XXXXVVVddddX/dFSuuuqqq6666v+Bs2fP3nrNNdc8eGtri4ODA/4ltnlhJPG/mW0k8Z9JEv8RJPFvIYl/DUm8qCTxL5HEv0QSL4wkXhhJvCCSeEEk8YJI4vmRxAsiiedHEs+PJJ4fSTw/knh+JPH8SOL5kcTzI4kXRBIvjCT+o0nihbHN/STxQLa5nyQAbHM/SdjmX2tjY4OXfumX5vTp0/zDP/zDb3/913/9+9x33323ctVVV1111VVX/W9A5aqrrrrqqquu+lezzfMjif8tbCOJ/8kk8a8liX8tSbwoJPEvkcQLI4kXRhIvjCReEEk8P5J4QSTx/Eji+ZHE8yOJ50cSz00Sz48knh9JPD+SeG6SeH4k8fxI4gWRxL9EEv/ZbPNAkrifbR5IEgC2uZ8kbHM/SdjmRfWoRz2KRz3qUdx33323fuZnfub7/MM//MNvc9VVV1111VVX/W9C5aqrrrrqqqv+H7jvvvtufbEXezGuu+467rnnHv6z2Oa5SeKqfz1J/GtJ4l9DEi8KSbwwkviXSOIFkcQLIokXRBIviCSeH0k8P5J4fiTx3CTx/EjiuUni+ZHE8yOJ5yaJ5yaJ50cSz48knh9JPD+S+JdI4j+Lbe4niQeyzf0kAWCbB5KEbf49NjY2eJVXeRU2Njb4kR/5kc/+0R/90c/hqquuuuqqq67634jKVVddddVVV/0/cN99993KfxPbPJAk/qewjST+o0ni30MS/1qSeFFJ4kUhiRdGEi+MJF4QSbwgknhBJPH8SOL5kcTzI4nnRxLPTRLPTRLPjySemySemySeH0k8N0k8N0k8N0k8P5J4fiTxgkjihZHEfzTb3E8SD2Sb+0kCwDb3k4RtXhBJ2OZfYpuNjQ1uuukmHvWoR3Hffffd+sVf/MXv8w//8A+/zVVXXXXVVVdd9b8Vlauuuuqqq676f+Ds2bPPALj++uv567/+a/472eZ+krjqOUniX0MSLypJvCgk8cJI4oWRxAsiiRdEEs+PJJ4fSTw/knhuknh+JPHcJPHcJPHcJPHcJPH8SOK5SeKBJPHcJPHcJPH8SOK5SeL5kcQLIokXRhL/UWxzP0k8kG3uJwkA29xPEgC2AZCEbf49HvnIR/KoRz2K++6779Yf+ZEf+e4f/dEf/Ryuuuqqq6666qr/7ahcddVVV1111f8D99133638D2Sb+0niv4NtJPEfRRL/VpL415DEi0oS/xJJvDCSeEEk8YJI4gWRxPMjiedHEs+PJJ6bJJ6bJJ6bJJ6bJJ6bJJ6bJJ6bJJ6bJB5IEs9NEs9NEs9NEs9NEs9NEs+PJJ4fSfxLJPEfwTYAknhutgGQxP1sAyAJANs8P5KwDYAkbPPcbPPcFosFL/3SL82pU6f4h3/4h9/+zM/8zNfhqquuuuqqq676v4LKVVddddVVV/0/cPbs2VsBtra2+J/KNgCS+P9IEv8aknhRSOJfIokXRhIviCReEEk8P5J4fiTx/Eji+ZHEc5PEc5PEc5PEc5PEA0niuUniuUnigSTx3CTxQJJ4bpJ4IEk8N0k8N0k8N0k8P5J4fiTxL5HEv4dt7ieJB7LN/SQBYJv7ScI295OEbQAkYZsXxjbPz3w+5+abb+aRj3wk9913362f+Zmf+T7/8A//8NtcddVVV1111VX/l1C56qqrrrrqqqv+R7ENgCT+q9hGEv9dJPGvIYkXhSReGEm8MJJ4QSTxgkji+ZHE8yOJ5yaJ50cSz00Sz00SDySJ5yaJ5yaJB5LEc5PEA0nigSTx3CTxQJJ4IEk8N0k8kCSemySemySemyReEEn8SyTxb2UbAEk8N9sASALANveTBIBtACRhmxeVbV6Ym266iZd6qZcC4Ed+5Ec++0d/9Ec/h6uuuuqqq6666v8iKlddddVVV131/8B9991363333XfrNddc8+CtrS0ODg74n842AJL430IS/1qSeFFJ4kUliRdGEi+IJF4QSbwgknh+JPHcJPH8SOK5SeK5SeK5SeKBJPHcJPFAknggSTw3STyQJB5IEg8kiQeSxHOTxANJ4oEk8UCSeG6SeG6SeG6SeH4k8S+RxL+VbQAk8dxsAyAJANsASALANveThG0AJGEbAEnY5l9rsVjwUi/1Upw6dYr77rvv1s/8zM987bNnzz6Dq6666qqrrrrq/yoqV1111VVXXfX/xNmzZ2+95pprHry1tcXBwQH/W9gGQBL/n0niRSGJF0YSL4wknh9JvCCSeG6SeH4k8dwk8dwk8dwk8dwk8UCSeG6SeCBJPJAkHkgSDySJB5LEA0nigSTxQJJ4IEk8kCQeSBIPJInnJonnJonnJonnRxL/Ekn8W9gGQBLPzTYAkgCwDYAkAGwDIAnb/Ed7+MMfziMf+Ujuu+++W3/kR37ku3/0R3/0c7jqqquuuuqqq/6vo3LVVVddddVVV/2vYBtJ/E8liX8tSbwoJPGikMQLI4kXRBIviCSeH0k8N0k8P5J4bpJ4bpJ4IEk8N0k8kCSemyQeSBIPJIkHksQDSeKBJHE/STyQJB5IEg8kiQeSxP0k8UCSeG6SeCBJPJAknpsknh9J/Esk8W9hGwBJPDfbAEgCwDYAkgCwDYAkbAMgCdsASMI2/xLbPDfbnDx5kpd6qZdisVjwW7/1W9/99V//9e/DVVddddVVV131/wWVq6666qqrrvp/4r777rv1xV7sxdja2sI2z00S/9PZRhL/F0jiRSGJF4UkXhBJvCCSeEEk8fxI4rlJ4vmRxHOTxANJ4rlJ4oEk8dwk8UCSeCBJPJAkHkgS95PEA0nigSRxP0k8kCQeSBL3k8QDSeKBJPFAkrifJJ6bJB5IEs9NEs+PJF4YSfxb2AZAEs/NNgCSALANgCQAbAMgCdsASMI2AJKwzb+WbQAWiwUv8RIvwalTp7jvvvtu/aIv+qL3+Yd/+Iff5qqrrrrqqquu+v+EylVXXXXVVVf9P3HffffdCrC1tcXzY5vnJon/aWwjif/NJPGikMS/RBIvjCReEEk8P5J4fiTx3CTx/EjigSTx3CTx3CTxQJJ4IEk8kCQeSBIPJIkHksT9JPFAkrifJB5IEveTxANJ4n6SeCBJ3E8SDySJB5LE/STxQJJ4bpJ4IEk8P5J4YSTxb2UbSTw32wBI4n62kQSAbQAkYRsASdjmRWWbF+bhD384j3jEIwD4kR/5kc/+0R/90c/hqquuuuqqq676/4jKVVddddVVV/0/cfbs2WcAbG1t8aKyzQNJ4n8C20jiP5JtJPFvIYn/aJL4l0jihZHE8yOJF0QSz00Sz48knpskHkgSz00SDySJB5LEA0nigSTxQJJ4IEk8kCTuJ4kHksT9JHE/STyQJO4niftJ4oEkcT9JPJAk7ieJB5LE/STxQJJ4IEk8N0k8N0m8MJL497CNJJ6bbSRxP9sASMI2AJKwDYAkbPNAkrDNi8I2ALYBOHnyJC/xEi/BYrHgH/7hH37767/+69/nvvvuu5Wrrrrqqquuuur/KypXXXXVVVdd9f/EfffddyvA9vY2/1a2eSBJ/HexjST+t5HEv0QS/xJJvCCSeEEk8fxI4vmRxHOTxHOTxANJ4rlJ4oEk8UCSeCBJPJAk7ieJB5LEA0nifpJ4IEncTxL3k8T9JPFAkrifJO4niftJ4oEkcT9J3E8SDySJ+0nigSTxQJJ4bpJ4bpJ4QSTx72UbSTyQbQAkAWAbAEnYBkAStgGQhG0eSBK2+bdYLBY8/OEP58Ybb+S+++679Tu+4zs++7d+67e+h6uuuuqqq6666v87KlddddVVV131/8TZs2dvBdja2uI/im3uJ4n/araRxH8nSbyoJPEfQRIviCReEEk8N0k8P5J4bpJ4bpJ4IEk8N0k8kCQeSBIPJIn7SeKBJPFAkrifJO4niQeSxP0kcT9J3E8S95PEA0nifpK4nyTuJ4n7SeJ+krifJB5IEveTxANJ4oEk8UCSeG6SeH4k8R/FNpJ4INtI4n62kQSAbSRhGwBJ2OaBJGGbf4ltAGwDYBuAhz3sYTz84Q8H4Ed+5Ec++0d/9Ec/h6uuuuqqq6666qorqFx11VVXXXXVVf8hbAMgif9KtpHE/xWSeGEk8YJI4vmRxPMjiecmiecmiecmiecmiQeSxANJ4oEkcT9JPJAkHkgS95PEA0nifpK4nyTuJ4n7SeJ+krifJO4niftJ4n6SuJ8k7ieJ+0nifpK4nyQeSBL3k8QDSeJ+knggSTw3STw/kviPZBtJPJBtJAFgGwBJ2AZAEraRhG0AJGEbSdjmBbENgG2en8ViwYu/+Itz8uRJ7rvvvlu//uu//n3+4R/+4be56qqrrrrqqquuejYqV1111VVXXfX/xH333XcrwNbWFltbWxwcHPCfwTb3k8T/ZZJ4UUniXyKJF0YSL4gknh9JPD+SeG6SeG6SeCBJPDdJPJAkHkgSDySJ+0nigSRxP0k8kCTuJ4n7SeJ+krifJO4niftJ4n6SuJ8k7ieJ+0nifpK4nyTuJwkASdxPEveTxANJ4n6SuJ8kHkgSDySJB5LE8yOJ/2i2kcT9bAMgCQDbSALANpKwzQNJwjb/Etu8MIvFguuvv56HP/zhAPzIj/zIZ//oj/7o53DVVVddddVVV131vKhcddVVV1111f8j//AP//DbL/ZiL/baW1tbHBwc8J/NNgCS+M9kG0n8e0jiP4sk/iWSeGEk8YJI4vmRxHOTxHOTxHOTxHOTxANJ4oEk8UCSeCBJ3E8SDySJ+0nifpJ4IEncTxL3k8T9JHE/SdxPEgCSuJ8k7ieJ+0nifpIAkMT9JHE/SdxPEveTxP0kcT9J3E8S95PE/STxQJJ4IEk8P5J4UUnCNi8K20jifraRBIBtACRhGwBJ2EYStpGEbf4ltnlBbAPw0Ic+lIc97GEA/MM//MNvf+ZnfubrcNVVV1111VVXXfWCUbnqqquuuuqqq/7T2UYSVz1/knhhJPGCSOK5SeL5kcRzk8Rzk8QDSeKBJPFAknggSTyQJO4niQeSxP0kcT9J3E8S95PE/SRxP0ncTxL3k8T9JAEgiftJ4n6SAJDE/SRxP0kASOJ+krifJO4niftJAkAS95PEA0nifpK4nySemyQeSBL/Ekk8P5IAsM0LYhtJ3M82kgCwjSQAbCMJ2/xr2ea52QbANgCLxYIXe7EX48SJE9x33323fv3Xf/37/MM//MNvc9VVV1111VVXXfXCUbnqqquuuuqq/0fuu+++W1/sxV6M7e1t7rnnHv4r2QZAEv8ZbCOJ/yqSeFFI4oWRxAsjiedHEs+PJJ4fSTw3STyQJJ6bJB5IEg8kiftJ4oEkcT9JPJAk7ieJ+0nifpK4nyTuJ4n7SeJ+kgCQxP0kcT9JAEjifpK4nyQAJHE/SQBI4n6SAJDE/SRxP0ncTxIAkrifJO4niftJ4oEk8UCSeCBJvCCS+NeQhG2em20kcT/bSALANpKwDYAkbCMJ20jCNpKwzYvKNs/tIQ95CA972MMA+JEf+ZHP/tEf/dHP4aqrrrrqqquuuupFQ+Wqq6666qqr/h+57777bgXY2triv4ttACTxf50k/j0k8fxI4vmRxHOTxHOTxHOTxANJ4oEk8UCSeCBJ3E8SDySJ+0nifpK4nyTuJ4n7SeJ+krifJAAkcT9J3E8SAJK4nyQAJHE/SQBI4n6SAJDE/SQBIIn7SQJAEveTxP0kASCJ+0nifpK4nyTuJ4kHksQDSeL5kcS/lW0k8UC2kcT9bCMJANtIwjaSsM2/hW3uZ5vndvz4cV7u5V4OgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq150VK666qqrrrrq/5GzZ88+A2Bra4v/braRxH8k20jiP5sk/iNI4gWRxPMjiedHEs9NEs9NEs9NEg8kiQeSxP0k8UCSeCBJ3E8S95PE/SRxP0ncTxL3k8T9JAEgiftJ4n6SAJDE/SQBIIn7SQJAEgCSuJ8kACRxP0kASOJ+kgCQBIAk7icJAEncTxL3k8T9JHE/SdxPEveTxANJ4vmRxH8220jCNgCSsI0kbCMJ20jCNv9es9mMxz72sZw4cYL77rvv1t/6rd/67h/90R/9HK666qqrrrrqqqv+9ahcddVVV1111f8j9913360AW1tb/E9gG0n8XySJF0YSL4gknh9JPD+SeG6SeG6SeCBJPJAkHkgSDySJ+0nigSRxP0ncTxL3k8T9JHE/SdxPEveTBIAk7icJAEncTxIAkrifJAAkASCJ+0kCQBIAkrifJAAkcT9JAEgCQBL3kwSAJAAkcT9J3E8SAJK4nyTuJ4n7SeKBJPHcJPGfyTaSALCNJGwjCdsASMI2z48kbPOC2OZ+trmfbR7ykIfwkIc8BIB/+Id/+O3P/MzPfB2uuuqqq6666qqr/u2oXHXVVVddddX/I2fPnr0VYHt7G9vcTxL/XWwjif9PJPGCSOL5kcTzI4nnJonnJokHksQDSeKBJHE/STyQJO4niftJ4oEkcT9JAEjifpK4nyTuJwkASdxPEgCSuJ8kACQBIIn7SQJAEgCSuJ8kACQBIAkASdxPEgCSAJAEgCTuJwkASQBI4n6SAJDE/SRxP0ncTxL3k8T9JPHcJPGCSOKFsc3zYxtJ3M82kgCwjSRsIwnbSMI295OEbSRhmxfGNvezzf1sc/z4cR7zmMcwn8+57777bv36r//69/mHf/iH3+aqq6666qqrrrrq34fKVVddddVVV12Fbe4nif9qtpHE/waS+JdI4j+SJJ4fSTw3STyQJJ6bJB5IEveTxANJ4n6SeCBJ3E8S95PE/SRxP0ncTxIAkrifJAAkcT9JAEjifpIAkASAJAAkcT9JAEgCQBIAkgCQxP0kASAJAEkASAJAEveTBIAkACQBIIn7SQJAEveTBIAk7ieJ+0nigSTxQJJ4fiTxH8k2kgCwjSRsIwnbSMI2krDNi8I2L4ht5vM5D37wg7nuuusA+JEf+ZHP/tEf/dHP4aqrrrrqqquuuuo/BpWrrrrqqquu+n/kvvvuuxVga2uLra0tDg4OeG62uZ8k/qvYRhL/XraRxH8XSbwwknhBJPGiksRzk8QDSeKBJPFAknggSTyQJO4niftJ4n6SuJ8k7ieJ+0nifpIAkMT9JAEgiftJAkASAJK4nyQAJAEgCQBJ3E8SAJIAkASAJAAkASAJAEkASAJAEveTBIAkACQBIAkASdxPEgCSAJDE/SRxP0kASOKBJPFAknhukviPYhtJANhGEgC2kYRtJGEbSdhGErYBkIRtnpttHsg297ONbQAe/OAH8+AHPxiAf/iHf/jtr//6r3+f++6771auuuqqq6666qqr/uNQueqqq6666qr/Z/7+7//+t1/8xV/8tbe3tzk4OOCFsQ2AJP4r2EYS/9Uk8aKQxL+HJF4QSTw/knhuknhuknggSTyQJB5IEg8kiftJ4oEkcT9J3E8S95MEgCTuJ4n7SeJ+kgCQBIAk7icJAEkASOJ+kgCQBIAkACQBIAkASQBIAkAS95MEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIIn7SQJAEgCSuJ8k7ieJ+0nigSTxQJL4j2YbSQDYRhIAtpGEbSRhG0nY5t/DNvebz+e81Eu9FPP5nPvuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq/7jUbnqqquuuuqqq/5FtgGQxH8220jifyNJvCCSeEEk8fxI4rlJ4rlJ4oEk8UCSeCBJ3E8SDySJ+0nifpK4nyTuJ4n7SeJ+kgCQxP0kASCJ+0kCQBIAkrifJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJK4nyQAJHE/SQBI4n6SeCBJPJAkXhBJPD+2+beyjSRsIwnbPJAkbPP82OaBbGObB5rNZlx77bU86EEPAuBHfuRHPvtHf/RHP4errrrqqquuuuqq/zxUrrrqqquuuur/mbNnz94KsLW1xb+WbQAkcdV/DEk8P5J4bpJ4bpJ4IEk8kCQeSBL3k8QDSeJ+krifJO4niftJAkAS95PE/SQBIIn7SQJAEgCSAJDE/SQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSkASAJAAkASAJAEkASAJAEgCSAJAEgCTuJwkASQBI4n6SuJ8k7ieJB5LEc5PEi0IStnlhbCMJANtIwjaSsI0kbAMgCdu8KGzz3Gxjm1tuuYUHPehBANx33323fv3Xf/37/MM//MNvc9VVV1111VVXXfWfi8pVV1111VVX/T9z33333QqwtbXFv5VtACTxn8E2kvifRBIvjCReEEn8a0jiuUniuUnigSTxQJK4nyQeSBL3k8T9JPFAkgCQxP0kcT9JAEjifpK4nyQAJAEgCQBJ3E8SAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQkASAJAEkASAJAEgCSAJCEJAAkASAJAEkASAJAEgCSAJDE/SQBIAkASdxPEveTxANJ4oEk8W8hCdv8S2wjCdtIwjYPJAnb/GvYxjb3m81mPPKRj+TYsWMA/MiP/Mhn/+iP/ujncNVVV1111VVXXfVfg8pVV1111VVX/T9z9uzZWwG2t7f597INgCT+o9lGEv/bSeIFkcRzk8Rzk8Rzk8QDSeKBJHE/STyQJO4niftJ4n6SuJ8k7icJAEncTxL3kwSAJAAkcT9JAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkIQkACQBIAkASQBIQhIAkgCQBIAkACQhCQBJAEgCQBIAkgCQBIAkACRxP0kASAJAEveTxANJ4oEk8R/JNpIAsI0kbCMJ20jCNgCSsM1zk4RtHsg2L4htbr75Zm655RYA/uEf/uG3v/7rv/597rvvvlu56qqrrrrqqquu+q9D5aqrrrrqqqv+n7nvvvtuBdja2uI/im0k8b+RJP4lknhhJPGvJYnnJonnJonnJokHksQDSeJ+knggSdxPEveTxP0kcT9JAEjifpK4nyQAJHE/SQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQkASAJAEkASAJAEpIAkASAJAAkIQkASQBIAkASkgCQBIAkACQBIAkASQBIAkASAJK4nyTuJ4n7SeJ+knh+JPHC2OZFZRtJ2EYStpGEbQAkYRsASdjmfrZ5fmxjG9vcb2dnhxd/8RcH4L777rv1R3/0Rz/nt37rt76bq6666qqrrrrqqv96VK666qqrrrrq/5n77rvvVoDt7W3+I9kGQBL/UWwjif+tJPH8SOJFIYnnJokHksQDSeJ+knggSdxPEveTxP0kASCJ+0nifpIAkMT9JAEgCQBJAEjifpIAkASAJAAkASAJAElIAkASAJIAkASAJCQBIAkASQBIQhIAkgCQBIAkJAEgCQBJSAJAEgCSkASAJAAkASAJAEkASAJAEgCSAJAEgCTuJ4n7SeJ+knhuknhRScI2D2QbSQDYRhK2kYRtJGEbSdgGQBK2+ffo+56HPexhHDt2DIAf+ZEf+ewf/dEf/Ryuuuqqq6666qqr/vtQueqqq6666qqr/kPZRhL/nWwjif8KkviPIIkHksRzk8QDSeKBJHE/SdxPEg8kiftJAkAS95PE/SQBIIn7SQJAEveTBIAkACQBIAkASQBIAkASAJIAkASAJAAkIQkASQBIAkASkgCQBIAkJAEgCQBJSAJAEgCSkASAJAAkIQkASQBIQhIAkgCQBIAkACQBIAkASQBIAkASAJK4nyTuJ4kHksR/FdtIwjYAkrDN/SRhm+dmG9vYxja2ud9NN93ETTfdBMB9991369d//de/zz/8wz/8NlddddVVV1111VX/vahcddVVV1111f8zZ8+efQbA1tYW/1lsI4n/CyTxbyGJ50cSz00S/xJJPJAkHkgS95PE/SRxP0ncTxL3k8T9JHE/SQBIAkAS95MEgCQAJAEgiftJAkASAJKQBIAkACQBIAkASQBIQhIAkgCQBIAkJAEgCUkASAJAEpIAkIQkACQBIAlJAEhCEgCSAJCEJAAkASAJAElIAkASAJIAkASAJO4nCQBJ3E8SDySJ50cSz49tXlS2kYRtJGEbAEnYBkAStvm32t7e5qEPfSiz2QyAH/mRH/nsH/3RH/0crrrqqquuuuqqq/5noHLVVVddddVV/w/9wz/8w2+/2Iu92Gtff/313H333fxnsI0k/r1sI4n/iSTx/Eji+ZHEc5PEc5PEA0nigSTxQJK4nyTuJ4n7SeJ+krifJO4nCQBJ3E8SAJK4nyQAJAEgCQBJAEgCQBIAkgCQBIAkACQhCQBJAEgCQBKSAJAEgCQkASAJSQBIAkASkgCQhCQAJCEJAElIAkASAJKQBIAkACQhCQBJAEhCEgCSAJAEgCQAJAEgiftJAkASDySJB5LEi0IStnlBbCMJ20jCNpKwjSQAbAMgCds8N9v8S2azGTfccAOnT58G4B/+4R9++zM/8zNfh6uuuuqqq6666qr/WahcddVVV1111VX/aWwjif+pJPHfSRLPTRIPJIkHksQDSeJ+krifJO4niftJ4n6SuJ8kACRxP0kASAJAEgCSuJ8kACQBIAkASQBIQhIAkgCQBIAkACQhCQBJAEhCEgCSkASAJAAkIQkASUgCQBKSAJCEJAAkIQkASUgCQBKSAJAEgCQkASAJSQBIAkASAJIAkASAJAAkASCJ+0nifpJ4IEn8a0nCNi8q20jCNveThG1eENvYxja2sY1tbHP99ddz4403AnDffffd+vVf//Xv8w//8A+/zVVXXXXVVVddddX/PFSuuuqqq6666v+h++6779YXe7EXY2tri/9stpHEfyVJ/EeQxAsiiedHEs+PJP4lknggSTyQJB5IEveTxP0kcT9J3E8S95MEgCTuJwkASdxPEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQhCQAJAEgCUkASAJAEpIAkIQkACQhCQBJSAJAEpIAkIQkACQhCQBJSAJAEpIAkIQkACQhCQBJSAJAEgCSAJCEJAAkASCJ+0kCQBL3k8QDSeLfyjaSeG62kYRtJGEbAEnY5n6SsM2/Vt/3PPKRj2Q2mwHwIz/yI5/9oz/6o5/DVVddddVVV1111f9cVK666qqrrrrq/6H77rvvVoCtrS1sI4n/TLaRxL+VbSTxv5UknpskHkgSDySJB5LEA0nifpK4nyTuJ4n7SeJ+kgCQxP0kASAJAEncTxIAkgCQBIAkACQBIAkASQBIQhIAkgCQhCQAJAEgCUkASAJAEpIAkIQkACQhCUkASEISAJKQBIAkJCEJAElIAkASkgCQhCQAJCEJAElIAkASAJKQBIAkACQBIAkASQBI4n6SuJ8knpsk/iW2eUFsI4n72UYStpEEgG3uJwnb/Gv0fc/Jkye5/vrrAbjvvvtu/czP/MzXPnv27DO46qqrrrrqqquu+p+NylVXXXXVVVf9P3T27NlnAGxtbQFgGwBJ/GexjST+t5DECyKJ50cSLwpJ/GtI4oEkcT9J3E8S95PE/SRxP0kASOJ+kgCQBIAk7icJAEkASAJAEgCSAJCEJAAkASAJAElIAkASAJKQBIAkJAEgCUkASEISAJKQBIAkJCEJAElIAkASkpAEgCQkASAJSQBIQhKSAJCEJAAkIQkASQBIQhIAkgCQBIAkACQBIAkASdxPEg8kiX8NSdjmhbGNJABsIwnbPJAkbPOisI1trr32Wq6//noA7rvvvlt/67d+67t/9Ed/9HO46qqrrrrqqquu+t+BylVXXXXVVVf9P3TffffdCrC9vc0D2QZAEv/XSeI/kiSeH0n8SyTxQJJ4QSRxP0ncTxL3k8T9JHE/SQBI4n6SAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkJAEgCQBJSAJAEgCSkASAJCQBIAlJAEhCEgCSkIQkACQhCUkASEISkgCQhCQAJCEJSQBIQhIAkpCEJAAkIQkASUgCQBIAkpAEgCQAJAEgiftJ4n6SuJ8k/iPZRhK2kYRtACRhm/tJAsA2L4xtbGObvu+5+eab2draAuC3fuu3vvvrv/7r34errrrqqquuuuqq/12oXHXVVVddddX/Q2fPnr0VYGtri+fHNgCS+I9kG0n8byaJF5UknpskHkgSDySJB5LE/SRxP0ncTxL3k8T9JHE/SQBIAkAS95MEgCQAJAEgCQBJAEgCQBIAkgCQhCQAJAEgCUkASAJAEpIAkIQkACQhCQBJSEISAJKQBIAkJCEJAElIQhIAkpCEJAAkIQlJAEhCEpIAkIQkACQhCUkASEISAJIAkIQkACQBIAkASQBI4n6SuJ8knpskXhjb/GvYRhIAtrmfJGzzgtjGNra537XXXsu1114LwH333Xfr13/917/PP/zDP/w2V1111VVXXXXVVf/7ULnqqquuuuqqq14g20ji/xtJ/GtI4kUhiQeSxANJ4oEkcT9J3E8S95PE/SRxP0ncTxIAkgCQxP0kASAJAEkASAJAEgCSAJAEgCQkASAJAElIAkASAJKQBIAkJAEgCUkASEISkgCQhCQAJCEJSQBIQhKSkASAJCQhCQBJSEISAJKQhCQAJCEJSQBIQhKSAJCEJAAkIQkASQBIAkASAJIAkASAJO4niQeSxL+XbSRhG0nYBkAStrmfJABs8/zYxjYPtLm5yUMe8hDu9yM/8iOf/aM/+qOfw1VXXXXVVVddddX/XlSuuuqqq6666v+h++6771aA7e1t/iW2AZDEfwTbSOJfyzaS+O8kiReVJP49JHE/SfxLJHE/SdxPEgCSAJDE/SQBIAkASQBIAkASAJIAkIQkACQBIAkASUgCQBKSAJCEJAAkIQkASUgCQBKSkASAJCQhCQBJSEISkgCQhCQkASAJSUhCEgCSkIQkJAEgCUlIAkASkpAEgCQkASAJSQBIAkASkgCQBIAk7icJAEk8kCT+tSRhmxfGNpIAsM39JGGbF8Q2D9R1HTfccAObm5sA/MM//MNvf/3Xf/373Hfffbdy1VVXXXXVVVdd9b8blauuuuqqq676f+of/uEffvvFXuzFXvv666/n7rvv5l9iG0n8R7CNJP67SOI/iiReFJJ4IEk8kCTuJ4kXRBL3kwSAJO4niftJAkASAJK4nyQAJAEgCQBJAEgCQBKSAJAEgCQAJCEJAElIAkASkgCQhCQAJCEJAElIQhIAkpCEJAAkIQlJAEhCEpKQBIAkJCEJSQBIQhKSkIQkACQhCUkASEISkgCQhCQkASAJSQBIQhIAkgCQBIAkACQBIIn7SeK5SeIFsc0LYhtJ2EYStpEEgG3uJwkA2zw/trHNA50+fZozZ84AcN999936W7/1W9/9oz/6o5/DVVddddVVV1111f8NVK666qqrrrrqqheZbSTxf5kknh9JvKgk8UCSeCBJPJAkXhBJ3E8S95PEc5PE/SQBIAkASdxPEgCSAJAEgCQAJAEgCUkASAJAEpIAkASAJCQBIAlJAEhCEpIAkIQkACQhCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSUgCQBKSkIQkJAEgCUlIAkASkpAEgCQkASAJSQBIAkASAJIAkASAJO4niftJ4kUhCdvczzaSeG62kYRt7icJANu8ILZ5oMViwfXXX0/XdQD8yI/8yGf/6I/+6Odw1VVXXXXVVVdd9X8Llauuuuqqq676f+q+++679cVe7MXY2triX8M2krgKJPHcJPGvIYkHksT9JHE/SdxPEveTBIAk7icJAEkASAJAEveTBIAkACQBIAlJAEgCQBIAkpAEgCQkASAJSQBIQhIAkpAEgCQkIQkASUhCEpIAkIQkJCEJAElIQhKSkASAJCQhCUlIAkASkpCEJCQhCQBJSEISkgCQhCQkASAJSQBIQhIAkpAEgCQAJAEgiftJ4n6S+I9gG0nYRhIAtgGQBIBtXhjb3K/rOra2tjh9+jQA9913361f//Vf/z7/8A//8NtcddVVV1111VVX/d9D5aqrrrrqqqv+n7rvvvtuBdje3uZfyzaS+PewjST+J5HE8yOJfytJPJAkXhBJ3E8S95PE/SRxP0kASOJ+kgCQBIAknpskACQBIAkASUgCQBIAkpAEgCQAJCEJAElIAkASkpAEgCQkASAJSUgCQBKSkIQkJAEgCUlIQhKSAJCEJCQhCUlIAkASkpCEJCQhCQBJSEISkpAEgCQkIQlJAEhCEgCSkASAJCQBIAkASQBIAkAS95PEc5PE82Obfw3bAEgCwDb/Etvc78SJE5w6dYr7/ciP/Mhn/+iP/ujncNVVV1111VVXXfV/F5Wrrrrqqquu+n/q7NmzzwDY2tri38I2kvjfRhL/ESTx3CTxQJJ4IEk8kCTuJ4nnRxL3k8T9JAEgiftJAkASAJK4nyQAJAEgCQBJSAJAEgCSAJCEJAAkIQkASQBIQhKSAJCEJAAkIQlJAEhCEpKQBIAkJCEJSUgCQBKSkIQkJCEJAElIQhKSkIQkJCEJAElIQhKSkIQkACQhCUlIAkASkpAEgCQkASAJSQBIAkASAJIAkASAJB5IEv8SSdjmudlGEraRhG0AJAFgmxeFbQBqrZw5c4bFYgHAP/zDP/z213/917/PfffddytXXXXVVVddddVV/7dRueqqq6666qr/p+67775bAba3t/m3so0k/q1sI4n/SJL430ASL4gknpsk7ieJ5yYJAEk8N0kASAJAEgCSkASAJAAkASAJSQBIQhIAkpAEgCQkASAJSUgCQBKSkASAJCQhCUlIAkASkpCEJCQhCQBJSEISkpCEJCQhCUkASEISkpCEJCQhCUkASEISkpCEJAAkIQlJAEhCEpIAkASAJCQBIAkASdxPEveTxH8k20gCwDYvKtsAHD9+nBMnTgBw33333fr1X//17/MP//APv81VV1111VVXXXXV/w9Urrrqqquuuur/qbNnz94KsLW1xb+HbSTxv50knh9JPDdJPDdJPJAkHkgSL4gk7ieJ+0niuUnifpIAkASAJO4nCQBJAEgCQBIAkpAEgCQAJAEgCUkASEISAJKQBIAkJCEJAElIAkASkpCEJAAkIQlJSEISkgCQhCQkIQlJSEISkgCQhCQkIQlJSEISkpCEJCQhCQBJSEISkpCEJCQBIAlJSAJAEpKQBIAkJAEgCQBJAEgCQBL3k8S/h20kcT/bSALANveTxP1s89xsY5v5fM6pU6eotQLwIz/yI5/9oz/6o5/DVVddddVVV1111f8vVK666qqrrrrqqqv+k0nigSRxP0ncTxL3k8T9JAEgiftJAkASz00SAJIAkASAJAAkIQkASQBIAkASkgCQhCQAJCEJAElIQhIAkpCEJAAkIQlJSEISAJKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCQBJSEISkpCEJCQhCUlIAkASkpCEJAAkIQlJAEhCEgCSAJAEgCQAJHE/STyQJF4Q27wwtpEEgG0AJHE/27wwtVZOnDjBfD4H4L777rv167/+69/nH/7hH36bq6666qqrrrrqqv9/qFx11VVXXXXV/1P33XffrQDb29v8e9lGEv/TSeJfQxLPTRLPTRIPJIkXRBL/EkncTxLPTRIAkrifJAAkASAJAEkASAJAEpIAkASAJAAkIQkASUgCQBKSkASAJCQhCQBJSEISAJKQhCQkIQkASUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUlIQhIAkpCEJAAkIQkASQBIQhL3kwSAJB5IEv8atpHE/WwjCdsASALANi+K7e1tdnZ2ALjvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquuuur/LypXXXXVVVdd9f/YP/zDP/z2i73Yi7329ddfz913382/h20k8a9lG0n8d5LEv5UkHkgSDySJF0QS95PEc5PE/SQBIInnJgkASQBIAkASAJIAkMT9JAEgCUkASAJAEpIAkIQkJAEgCUlIAkASkpCEJAAkIQlJSEISkpAEgCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpKQBIAkJCEJSQBIQhIAkpAEgCQAJHE/SdxPEv8etpEEgG0kAWCbF0UphWPHjjGbzQD4h3/4h9/+zM/8zNfhqquuuuqqq6666ioqV1111VVXXXXVVc+HJJ6bJP49JHE/SdxPEveTxHOTxHOTBIAkACQBIAkASQBIAkASAJKQBIAk7icJAElIQhIAkpAEgCQkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkJCEJAElIAkASkgCQBIAkACRxP0n8R7GNJABs8y+xTSmF+XzO1tYWAPfdd9+tX//1X/8+//AP//DbXHXVVVddddVVV10FQOWqq6666qqr/h+77777bn2xF3sxtra2+I9gG0n8fyGJB5LEA0nifpJ4fiRxP0ncTxIAkrifJAAkASAJAEkASAJAEgCSAJAEgCQkASAJAElIAkASkpAEgCQkASAJSUhCEgCSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSUhCEgCSkASAJCQBIAkASQBI4n6SeCBJPD+2eX5sIwnbSALANg8kCQDbPLeu6zhx4gT3+5Ef+ZHP/tEf/dHP4aqrrrrqqquuuuqqB6Jy1VVXXXXVVf+P3XfffbcCbG1tYRtJ/HvZRhL/HSTxgkji+ZHEi0IS/xqSeEEk8cJI4rlJAkASAJIAkASAJAAkASAJAEkASEISAJIAkIQkACQhCUkASEISAJKQhCQkASAJSUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUQEkpCEJAAkIQlJSEISkpCEJCQBIAlJSAJAEpIAkASAJAAkASCJB5LEv5dtACTxQLZ5bhHB1tYWXdcBcN999936WZ/1Wa9z33333cpVV1111VVXXXXVVc+NylVXXXXVVVf9P3b27NlnAGxvbwNgG0n8V7ONJP6nkMS/RBIPJIkXRBL3k8T9JHE/SQBI4n6SAJAEgCReFJIAkASAJO4nCQBJSAJAEpKQBIAkJAEgCUlIQhIAkpCEJCQhCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSUQEkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkASAJSQBIQhIAkrifJO4niX8t20jCNpKwDYAkAGzzwiwWCxaLBQD33Xffrb/1W7/13T/6oz/6OVx11VVXXXXVVVdd9YJQueqqq6666qr/x+67775bAba3t7mfbSRx1bNJ4l9DEv8SSdxPEs9NEgCSeG6SAJAEgCQAJHE/SQBIAkASkgCQhCQAJCGJ+0lCEgCSkIQkJAEgCUlIQhKSkIQkJCEJSUgCQBKSkEREABARSEISkpCEJCQhCUlIQhKSkIQkJBERSEISkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSAJCEJAAkIQkASdxPEgCS+I9gG0kA2OaFiQi2traICAB+67d+67u//uu//n246qqrrrrqqquuuupfQuWqq6666qqr/h87e/bsrQDb29s8kG0k8W9lG0n8TyeJ5yaJf4kkHkgSL4gk7ieJF0YSAJJ4bpIAkASAJAAkASAJAElIAkASAJKQBIAkJAEgCUkASEISkgCQhCQkIQlJAEhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEhGBJCQhCUlIQhKSkIQkJCGJiEASkpCEJCQBIAlJSEISkpAEgCQkIQkASUgCQBIAkrifJJ6bJO5nmxfENpKwjSQAbPPCRASlFObzOQD33XffrV//9V//Pv/wD//w21x11VVXXXXVVVdd9aKgctVVV1111VVXPV+2kcT/BZL4ryKJ+0nifpK4nyTuJwkASTw3SQBIAkASAJIAkASAJAAkcT9JAEhCEgCSkASAJCQBIAlJSAJAEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkEREIAlJSEISkpCEJCQREUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSAJCEJCQBIAlJAEgCQBL3k8QDSeK5ScI2/xLbAEjiudkGoNbKfD7nfj/yIz/y2T/6oz/6OVx11VVXXXXVVVdd9a9B5aqrrrrqqqv+H7vvvvtuBdja2uI/mm0k8b+dJB5IEg8kiX8rSTw3SQBI4oWRBIAkACQBIAlJAEjifpK4nyQkASAJSUgCQBKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISEYEkJCEJSUhCEpKICCQhCUlIQhKSkEREIAlJSEISkpCEJCQhCUlIQhKSAJCEJCQhCQBJSAJAEgCSuJ8k7ieJF5VtJGEbSdgGQBIAtnlukpjNZpRSAPiHf/iH3/76r//697nvvvtu5aqrrrrqqquuuuqqfy0qV1111VVXXfX/3H333XfrNddc8+Drr7+eu+++mweyjST+N5DEv4Yknpsk/j0kcT9J3E8S95PEc5MEgCSemyQAJAEgiecmCQBJ3E8SAJKQBIAkJHE/SUhCEgCSkIQkJHE/SUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIIiKQhCQkIQlJSCIikIQkJCEJSUgiIpCEJCQhCUlIQhIRgSQkIQlJSEISkgCQhCQkIQlJAEhCEgCSkASAJAAk8UCSeGFsI4nnxzaSALDN81NrpdYKwH333Xfrb/3Wb333j/7oj34OV1111VVXXXXVVVf9W1G56qqrrrrqqv/nzp49e+s111zzYF4A20jifytJ/FtJ4oEk8UCSuJ8k/iWSuJ8kACTx3CQBIAkASQBIAkASAJK4nyQAJCEJAElIAkASkgCQhCQkcT9JSEISkgCQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkIgJJSEISkpCEJCICSUhCEpKQREQgCUlIQhKSiAgkIQlJSEISkpCEJCQhCUlIQhKSkIQkJAEgCUkASEISAJK4nyTuJ4l/DdtIwjaSALDN8yOJruuQBMCP/MiPfPaP/uiPfg5XXXXVVVddddVVV/17Ubnqqquuuuqq/+fuu+++W1/sxV6M7e1t7r77bp4f20jiX8s2kvjfQBL/USRxP0k8N0k8N0kASAJAEgCSAJAEgCQAJAEgCUkASOJ+krifJCQBIAlJSAJAEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQhiYhAEpKQhCQkERFIQhKSkIQkIgJJSEISkogIJCEJSUhCEhGBJCQhCUlIQhKSkIQkJCEJSUgCQBKSkASAJCQBIIn7SQJAEv9atpGEbSRhGwBJPJBtSilEBAD33XffrV//9V//Pv/wD//w21x11VVXXXXVVVdd9R+BylVXXXXVVVf9P3fffffdCrC1tcX/F5L4l0jihZHE/STx/EjifpJ4bpIAkMSLQhIAkgCQxP0kASAJSQBIQhL3k4Qk7icJSUhCEveThCQkIQlJSEISkpCEJCQhCUlIQhKSiAgkIQlJSEISEYEkJCEJSUQEkpCEJCQREUhCEpKQREQgCUlIQhKSkIQkIgJJSEISkpCEJAAkIQlJSAJAEpIAkIQk7icJAEm8qGwjiedmG0kA2OZ+kqi1cr8f+ZEf+ewf/dEf/Ryuuuqqq6666qqrrvqPROWqq6666qqr/p87e/bsMwC2t7d5YWwjif+vJPGikMQLIwkASTw3SQBIAkASAJJ4bpIAkMT9JHE/SUgCQBKSkASAJCQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJSUgiIpCEJCQhCUlIIiKQhCQkERFIQhKSkEREIAlJSCIikIQkJCGJiEASkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSAJAEgCQAJAEgiX8L20jCNgCSsM0DSeJ+//AP//DbX/d1X/feZ8+efQZXXXXVVVddddVVV/1Ho3LVVVddddVV/8/dd999twJsb2/zL7GNJP6nkcTzI4kXhST+NSRxP0ncTxL3k8T9JAEgiecmCQBJAEgCQBIAkgCQBIAk7icJAElIAkASkrifJCRxP0lIQhKSuJ8kJCEJSUhCEpKQhCQkIQlJSEISkpBERCAJSUhCEpKICCQhCUlIIiKQhCQkERFIQhKSiAgkIQlJRASSkIQkJCGJiEASkpCEJCQhCUlIQhKSkASAJCQBIAlJAEgCQBIAkvjXsI0kbCMJ20gCwDb3s8397rvvvlu//uu//n3+4R/+4be56qqrrrrqqquuuuo/C5Wrrrrqqquu+n/u7NmztwJsbW3xn8E2kvj3ksR/BEn8SyTxQJL4t5LEc5PEv4YkACQBIAlJAEjifpKQBIAkJCEJAElIQhKSuJ8kJCEJSUhCEpKQhCQkIQlJSEISkpCEJCICSUhCEpKQREQgCUlIIiKQhCQkERFIQhKSiAgkIQlJRASSkIQkIgJJSEISkpCEJCICSUhCEpIAkIQkJCEJSQBIQhIAkgCQxP0k8dwkYZvnZhtJPDfb3M82mcn9fuRHfuSzf/RHf/RzuOqqq6666qqrrrrqPxuVq6666qqrrrrqX8U2kvj/ShL3k8T9JHE/STw3STw3SQBIAkASAJIAkMT9JAEgiftJAkASkrifJCRxP0lIQhL3k4QkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCICSUhCEpKICCQhCUlIIiKQhCQiAklIQhIRgSQkERFIQhKSiAgkIQlJSCIikIQkJCEJSUhCEpKQhCQkIQlJAEhCEgCSkASAJO4niecmiX+JbSRhGwBJ2Ka1hm0A7rvvvlu//uu//n3+4R/+4be56qqrrrrqqquuuuq/ApWrrrrqqquu+n/uvvvuuxVge3ub/48k8UCSeCBJ/FtJ4rlJAkASAJIAkASAJAAkASCJ+0kCQBL3k8T9JCGJ+0lCEpK4nyQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQREQgCUlIIiKQhCQkERFIQhIRgSQkERFIQhKSiAgkIQlJRASSkIQkJBERSEISkpCEJCQhCUkASEISkpAEgCQAJAEgCQBJPDdJANhGEg9kG0nYRhK2AZDEOI601gC47777bv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqqv9KVK666qqrrrrqKu67775br7nmmgdff/313H333fxLbCOJ/8kk8dwk8e8hiftJ4n6SuJ8knpskACTxryEJAEncTxIAkpAEgCQkcT9JSEIS95OEJCQhCUlI4gWRhCQkIQlJSEISkpBERCAJSUgiIpCEJCQREUhCEhGBJCQhiYhAEpKICCQhiYhAEpKQREQgCUlIIiKQhCQkIQlJSEISkpCEJCQhCUlIAkASkgCQBIAkACTx3CTxgthGEvezjSRsMwwDmQnAP/zDP/z2Z37mZ74OV1111VVXXXXVVVf9d6By1VVXXXXVVVdx33333XrNNdc8mP+FJPFvJYkHksQDSeLfShIviCQAJAEgCQBJAEjifpIAkMT9JHE/SUgCQBKSkMT9JCEJSUhCEg8kCUlIQhKSkASAJCQhCUlIQhKSiAgkIQlJRASSkIQkIgJJSCIikIQkIgJJSCIikIQkIgJJSCIikIQkJBERSEISkpBERCAJSUhCEpKQhCQkIQkASUhCEgCSkASAJO4niecmCQDbSOJ+tpEEgG3uN44j4zgCcN9999369V//9e/zD//wD7/NVVddddVVV1111VX/XahcddVVV1111VWcPXv2VoDt7W3uvvtu/qPZRhL/m0nifpK4nyTuJ4nnJgkASQBI4vmRBIAkACRxP0kASEISAJKQxP0kIYn7SUISkpDEA0lCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUQEkpBERCAJSUQEkpBERCAJSUQEkpBERCAJSUQEkpCEJCICSUhCEpKQREQAIAlJSEISkpCEJAAkIQkASQBIAkASL4wknh/bSKK1xnK55H4/8iM/8tk/+qM/+jlcddVVV1111VVXXfXfjcpVV1111VVXXcV99913K8DW1hYvKttI4n8iSTw3SfxXkQSAJF4QSQBI4rlJAkAS95PE/SRxP0lI4n6SkIQkHkgSkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSiAgkIQlJRASSkEREIAlJRASSkEREIAlJRASSiAgkIYmIQBKSiAgkIYmIQBKSkIQkIgJJSEISkpCEJCQhCUlIAkASkgCQhCQAJHE/SbyobCMJ29hmuVzSWgPgvvvuu/WzPuuzXue+++67lauuuuqqq6666qqr/iegctVVV1111VVXcfbs2VsBtre3+f9CEg8kiQeSxP0kcT9J3E8S95PECyIJAEkASAJAEgCSAJDE/SQBIIn7SeJ+kpDE/SQhCUncTxKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhIRgSQkERFIQhIRgSQkERFIIiKQhCQiAklIIiKQREQgCUlEBJKQhCQiAklIQhKSkIQkIgJJSAJAEpKQhCQkASAJAEkASAJAEi8q20jCNuv1mvV6DcB9991362/91m9994/+6I9+DlddddVVV1111VVX/U9C5aqrrrrqqquu4r777rsVYHt7m/+JJPE/mSTuJwkASfxrSAJAEveTBIAkJAEgCUncTxKSkMT9JCEJSUhCEpJ4bpKQhCQkIQlJSEISkpCEJCQhiYhAEpKICCQhiYhAEpKICCQhiYhAEhGBJCQREUgiIpCEJCICSUgiIpCEJCICSUhCEhGBJCQhCUlIQhKSkIQkJAEgCUlIAkASAJK4nyReFLaRxDiOHB0dkZkA/NZv/dZ3f/3Xf/37cNVVV1111VVXXXXV/0RUrrrqqquuuuoq7rvvvlsBtra2+NewjST+u0jiRSGJF0YSDySJ+0ni+ZHEc5PEc5MEgCQAJAEgCQBJ3E8SAJK4nyTuJ4n7SUISDyQJSUhCEs9NEpKQhCTuJwlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUgiIpCEJCICSUQEkpBERCCJiEASkogIJBERSEISEYEkJBERSEISkpCEJCQREUhCEgCSkIQkJAEgCUkASAJAEveTxL/ENrZZrVasVisA7rvvvlu//uu//n3+4R/+4be56qqrrrrqqquuuup/KipXXXXVVVddddX/KZL4l0ji30ISz00Sz00SLwpJAEjiuUnifpK4nyQkcT9JSEISknggSUhCEpKQhCQkIQlJSAJAEpKQhCQkERFIQhKSiAgkIYmIQBKSiAgkIQlJSCIikEREIAlJRASSiAgkERFIQhIRgSQiAklIIiKQhCQkIYmIQBKSkIQkJCEJSUhCEgCSkASAJCRxP0ncTxIviG0Alssly+WS+/3Ij/zIZ//oj/7o53DVVVddddVVV1111f90VK666qqrrrrqKs6ePfsMgO3tbf6/k8S/RBLPTRLPTRIAkgCQBIAknpskACRxP0ncTxKSuJ8kJCGJB5KEJCQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSkIQkIgJJSCIikEREIImIQBKSiAgkERFIIiKQREQgCUlEBJKQREQgCUlEBJKQhCQkIQlJSEISkpCEJCQhCQBJSAJAEgCSeCBJPD+2yUwODg4YxxGAf/iHf/jtr//6r3+f++6771auuuqqq6666qqrrvrfgMpVV1111VVXXXXZfffdd+s111zz4O3tbfb39/m/QhIvjCReEEncTxIvCkkASOL5kQSAJAAkcT9JAEhCEgCSkMT9JCGJB5KEJCQhCUlIQhIPJAlJSEISkpCEJCQhCUlIQhIRgSQkIQlJSCIikIQkJCGJiEASEYEkJCEJSUQEkogIJBERSCIikEREIAlJRASSkEREIAlJSCIikIQkJCEJSUhCEpIAkIQkJAEgCQBJAEjiuUnifrYBODo64ujoCID77rvv1h/90R/9nN/6rd/6bq666qqrrrrqqquu+t+EylVXXXXVVVddddnZs2dvveaaax68tbXF/v4+LyrbSOJ/C0n8e0jifpIAkMQLIgkASTw3SQBI4n6SuJ8k7icJSdxPEpKQhCReEElIQhL3k4QkJCEJSUhCEpKQhCQkIQlJRASSkIQkJBERSEISkpCEJCQREUgiIpBERCCJiEASEYEkIgJJSCIikEREIAlJSCIikIQkJCEJSUhCEpKQhCQkIQkASQBIAkASAJJ4YcZxZH9/n9YaAD/yIz/y2T/6oz/6OVx11VVXXXXVVVdd9b8Rlauuuuqqq6666rL77rvv1hd7sRdja2uL/w0k8dwk8e8hiftJ4n6SeFFIAkASAJIAkASAJAAk8dwkcT9J3E8SkrifJCQhiQeShCQkIQlJSEISkpCEJCRxP0lIQhKSkIQkJCEJSUhCEpKQREQgCUlIQhIRgSQiAklEBJKICCQREUgiIpBERCCJiEASEYEkJBERSEISEYEkJCEJSUQEkpCEJCQhCQBJSEISAJKQBIAk7ieJ56e1xuHhIcvlEoD77rvv1q//+q9/n3/4h3/4ba666qqrrrrqqquu+t+KylVXXXXVVVddddl99913K8D29jb/k0jiP4sk/q0kASCJfwtJAEjifpK4nyQkcT9JSOKBJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCGJiEASkpCEJCICSUQEkogIJBERSCIikEREIImIQBIRgSQiAklEBJKQREQgCUlEBJKQREQgCUlIQhKSkIQkJCEJSQBIQhIAkgCQxP0k8dwODg44ODjgfj/yIz/y2T/6oz/6OVx11VVXXXXVVVdd9b8dlauuuuqqq6666jlsb29jG0n8byeJB5LECyKJ50cS95PECyIJAEkASAJAEgCSAJDE/SQBIIn7SUIS95OEJO4nCUlIQhIvKklIQhKSkASAJCQhCQBJSEISkpCEJCQREUhCEpKQhCQkIQlJSCIikEREIImIQBIRgSQiAklEBJKICCQhiYhAEpKICCQhCUlIQhKSkIQkJCEJSUgCQBKSAJAEgCQeSBIArTV2d3cZhgGAf/iHf/jtz/zMz3wdrrrqqquuuuqqq676v4LKVVddddVVV1112T/8wz/8DsDW1hb/H0jiBZHECyOJfwtJAEjifpIAkIQk7ieJB5KEJJ6bJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUgiIpCEJCQhCUlIIiKQREQgiYhAEhGBJCQhCUlEBJKICCQREUgiIpBERCAJSUQEkpBERCAJSUgiIpCEJCQhCUlIAkASkpAEgCQAJAEgiee2v7/PwcEBAPfdd9+tX//1X/8+//AP//DbXHXVVVddddVVV131fwmVq6666qqrrrrqOWxvbwNgG0m8KGwjif8qknhukvjPJInnJgkASQBIAkASAJIAkMRzk8T9JHE/SdxPEpJ4IElIQhKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkEREIImIQBIRgSQkERFIIiKQREQgiYhAEpKICCQREUhCEpKICCQhCUlIQhKSkIQkJAEgCUkASAJAEveTBMB6veb8+fPc70d+5Ec++0d/9Ec/h6uuuuqqq6666qqr/i+ictVVV1111VVXXXb27Nlb+T9EEg8kiRdEEveTxP0k8dwk8W8hCQBJ3E8S95PE/SQhiftJQhKSkMSLShKSkIQkJAEgCUlIAkASkpCEJCQhCUlEBJKICCQREUgiIpBERCAJSUQEkogIJBERSEISkpBERCCJiEASEYEkJBERSEISEYEkJCEJSUhCEpKQhCQkIQkASUgCQBIAkrhfZnLx4kXW6zUA9913361f//Vf/z7/8A//8NtcddVVV1111VVXXfV/FZWrrrrqqquuuuqy++6771aA7e1t/q+TxL+GJJ6bJAAkASAJAEkASAJAEs9NEveTxP0kIYn7SUISz00SkpCEJCQhCUlIQhKSuJ8kJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhIRgSQiAklIQhKSiAgkERFIIiKQhCQiAklEBJKQREQgCUlEBJKQhCQkERFIQhKSAJCEJCQhCQBJAEgCQBIAe3t77O/vA3Dffffd+lu/9Vvf/aM/+qOfw1VXXXXVVVddddVV/9dRueqqq6666qqrnuW+++679Zprrnnw9vY2+/v72EYS/9kk8fxI4kUhiX8rSdxPEveTxHOTxL+FJAAkcT9J3E8SDyQJSdxPEpKQhCQkIQlJSEISkpCEJCQhCUlIAkASkpAEgCQkIQlJSCIikIQkJCEJSUhCEpKQREQgCUlIQhIRgSQiAklIIiKQREQgiYhAEpKQhCQkERFIQhIRgSQkERFIQhKSkIQkJCEJAElIQhIAkgCQBEBrjbNnz9JaA+Af/uEffvszP/MzX4errrrqqquuuuqqq/6/oHLVVVddddVVVz3L2bNnb73mmmsevLW1xf7+Pv9bSeKBJPFvJYnnJgkASQBIAkASAJIAkMRzk8T9JHE/SUjigSQhCUn8a0lCEpKQBIAkJCEJSUhCEpKQhCQkERFIIiKQREQgiYhAEpKQhCQiAklIIiKQREQgCUlEBJKICCQREUgiIpBERCCJiEASkpBERCAJSUhCEpKQhCQkIQkASUgCQBIArTWOjo7Y29sD4L777rv167/+69/nH/7hH36bq6666qqrrrrqqqv+P6Fy1VVXXXXVVVc9y3333Xfri73Yi7G9vc3dd9/N/0SS+PeQxL9EEs9NEv8WkgCQxP0kcT9JSOJ+kpDEc5OEJCQhCUlIQhKSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpBERCCJiEASkogIJCGJiEASEYEkJBERSCIikEREIImIQBIRgSQkERFIQhKSkIQkJCEJSUhCEpIAkIQkACRxeHjIxYsXud+P/MiPfPaP/uiPfg5XXXXVVVddddVVV/1/ROWqq6666qqrrnqW++6771aA7e1t/j+QxP0k8aKQBIAkHkgSAJIAkMT9JAEgiftJ4oEk8UCSkIQkJPEvkYQkJCEJSQBIQhKSAJCEJAAkIQlJSEISkpCEJCQhCUlEBJKQhCQkERFIQhIRgSQkERFIIiKQhCQiAklEBJKICCQREUhCEhGBJCQhCUlIQhKSkIQkJCEJSQBIQhLTNHHx4kXW6zUA//AP//DbX//1X/8+9913361cddVVV1111VVXXfX/FZWrrrrqqquuuup5bG9vcz/bSOJ/Kkk8kCQeSBL/VpL4l0jiBZHEc5PE/SQhiftJQhKSeG6SkIQkJCEJSUhCEveThCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSiAgkIYmIQBKSiAgkIYmIQBIRgSQkIQlJRASSkIQkJBERSEISkpBERCAJSUhCEgCSkIQkACSxt7fH3t4eAPfdd9+tv/Vbv/XdP/qjP/o5XHXVVVddddVVV131/x2Vq6666qqrrrrqWf7hH/7hdwC2trb4v0gS/xJJPDdJAEjihZEEgCTuJwkASdxPEpK4nyQk8UCSkIQkJCEJSUhCEpKQhCQkIQlJ3E8SkpCEJCQhCUlIQhKSkIQkJCEJSUgiIpBERCAJSUQEkpBERCAJSUQEkpBERCAJSUQEkogIJBERSEISkogIJBERSEISkogIJCEJSUhCEpIAkIQkJLFer7l48SLTNAHwIz/yI5/9oz/6o5/DVVddddVVV1111VVXXUHlqquuuuqqq656Htvb2/xr2UYS/1Ek8dwk8R9FEveTxHOTxAsiCQBJAEjiuUniuUnigSTxQJKQhCT+tSQhCUlIAkASkgCQhCQAJCEJSUhCEpKQhCQkIQlJSCIikIQkIgJJSCIikIQkIgJJSCIikIQkIgJJRASSiAgkERFIQhKSkIQkIgJJSEISkpCEJCQBIInWGkdHR+zt7QFw33333fr1X//17/MP//APv81VV1111VVXXXXVVVc9G5WrrrrqqquuuupZzp49eyv/h0jiX0MSz00SLwpJAEjiuUnifpKQxP0kIYnnJglJSEISkpCEJCQhCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKICCQhCUlIQhKSkIQkJCEJSUQEkpBERCAJSUQEkpCEJCQREUgiIpCEJCICSUgiIpCEJCQhCUlIQhKSANjf32dvb4/7/ciP/Mhn/+iP/ujncNVVV1111VVXXXXVVc+LylVXXXXVVVdd9Sz33XffrQDb29s8kG0k8Z9BEv9WknggSbwgknh+JPGikASAJAAkASCJ5yYJAEncTxIPJIkHkoQkJPGikoQkJCEJAElIQhIAkpAEgCQkIQlJSEISkpCEJCQhCUlEBJKQREQgCUlEBJKQhCQiAklIIiKQhCQiAklEBJKQhCQkIYmIQBKSiAgkIQlJSEISkpCEJFprXLx4kfV6DcA//MM//PbXfd3XvffZs2efwVVXXXXVVVddddVVVz1/VK666qqrrrrqqudw33333XrNNdc8eHt7m/39ff4vksQLIwkASfxrSOK5SeJ+kpDE/SQhiecmCUlIQhKSkIQkJCEJSdxPEpKQBIAkJCEJSUhCEpKQhCQkIQlJSCIikIQkJCEJSUhCEpKICCQhiYhAEpKQREQgCUlEBJKQREQgiYhAEhGBJCICSUgiIpCEJCQhCUlIQhKS2N/fZ29vD4D77rvv1h/90R/9nN/6rd/6bq666qqrrrrqqquuuuqFo3LVVVddddVVVz2Hs2fP3nrNNdc8eHt7m/39ff6nkMS/hiT+NSTxgkgCQBIAkgCQBIAk7icJAEncTxIPJIkHkoQkJCGJf4kkJCEJSQBIQhKSAJCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkEREIAlJSCIikIQkIgJJSEISEYEkJBERSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhiGAYuXrxIaw2AH/mRH/nsH/3RH/0crrrqqquuuuqqq6666kVD5aqrrrrqqquueg733XffrS/2Yi/G1tYW/10k8a8liRdEEveTxP0k8dwk8W8hiecmiftJQhL3k4Qknh9JSEISkpCEJCQhiftJQhKSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQiAklIQhIRgSQkIQlJSEISEUFEIAlJRASSkEREIImIQBIRgSQiAklIIiKQhCQkIQlJZCa7u7us12sA7rvvvlu//uu//n3+4R/+4be56qqrrrrqqquuuuqqFx2Vq6666qqrrrrqOdx33323Amxvb/M/mST+M0kCQBLPjyQAJPHcJHE/STyQJB5IEpKQhCQk8fxIQhKSkIQk7icJSQBIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQiAklIIiKICCQhCUlEBJKQREQgCUlIQhIRgSQkIQlJSEISkpCEJCRxcHDA/v4+9/uRH/mRz/7RH/3Rz+Gqq6666qqrrrrqqqv+9ahcddVVV1111VX/50jiX0MS/xJJAEjiuUkCQBL3k8T9JCGJ+0lCEi+IJCQhCUlI4oEkIQlJSAJAEpIAkIQkJCEJAEkASEISkpCEJCQhCUlIQhIRgSQkIQlJSEISkpBERCAJSUgiIpCEJCQhiYhAEpKQREQgCUlEBJKQhCQyk93dXYZhAOAf/uEffvszP/MzX4errrrqqquuuuqqq676t6Ny1VVXXXXVVVc9h3/4h3/4HYAbbriBv/iLv+B/O0ncTxL3k8RzkwSAJF4UknhukrifJB5IEg8kCUlIQhKSeCBJSEISkpCEJO4nCUlIAkASkpCEJAAkIQlJSEISkpCEJCICSUgiIpCEJCQREUhCEpKICCQhCUlIIiKQhCQkIQlJRASSkIQkJCEJSUhCEpKQRGayXC45ODgA4L777rv167/+69/nH/7hH36bq6666qqrrrrqqquu+vehctVVV1111VVXvUhsI4n/DpJ4IEk8kCT+rSTxgkgCQBIAkgCQxHOTxP0kcT9JPJAkJPGCSEISknh+JCEJSQBIQhKSkIQkACQhCUlIQhKSkIQkJCEJAElIQhKSkIQkJBERSEISkogIIgJJSEISEYEkJBERSEISEYEkIgJJRASSkEREIIlxHLlw4QL3+5Ef+ZHP/tEf/dHP4aqrrrrqqquuuuqqq/5jULnqqquuuuqqq57D2bNnbwXY2triP4oknh9J/EeTxL9EEs9NEv8akgCQxP0kcT9J3E8SknggSUhCEpKQhCQAJCEJSUhCEpKQxP0kIQkASUgCQBKSkIQkJCEJSUhCEpKQhCQiAklIQhIRgSQkIQlJSEISkpCEJCICSUhCEhGBJCQREUhCEpKQhCQkIQlJZCZ7e3sMwwDAfffdd+tnfdZnvc599913K1ddddVVV1111VVXXfUfh8pVV1111VVXXfUc7rvvvlsBtre3+e8gif8okrifJF4UkgCQBIAkACQBIInnJon7SeJ+knggSUjihZHECyIJSUgCQBKSAJCEJCQhCQBJAEhCEpKQhCQkIQlJSEISkpCEJCQhCUlEBBGBJCQhCUlEBJKQhCQkIQlJSEISEYEkJCEJSRwdHXF4eAjAfffdd+tv/dZvffeP/uiPfg5XXXXVVVddddVVV131H4/KVVddddVVV131PO67775br7nmmgdvb2+zv7/P/2SS+LeSxL+HJO4niftJ4n6SkMQDSUISkpCEJO4nCUlIQhKSkIQkACQhCUkASEISAJIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkogIJCEJSUhCEhGBJCQhCUlEBJKQREQgCUlEBJKQhCQigszk0qVLtNYA+K3f+q3v/vqv//r34aqrrrrqqquuuuqqq/7zULnqqquuuuqqq57H2bNnb73mmmsevLW1xf7+Pv+dJPFAkvj3kMRzk8SLQhIAkrifJO4niftJ4oEkIYkXRBKSeH4kIQlJ3E8SkgCQhCQkIQlJSEISkpAEgCQkIQlJSEISkpCEJCQhiYhAEpKQhCQkERFIQhKSkIQkJCGJiEASkpCEJGxzdHTE0dERAPfdd9+tX//1X/8+//AP//DbXHXVVVddddVVV1111X8uKlddddVVV1111Qu0vb3N3Xffzf8WkrifJO4niReFJAAkASAJAEk8N0k8P5K4nySemyQkIQlJPDdJSEISkpDE/SQhCUkASEISkpAEgCQAJCEJSUhCEpKQBIAkJCGJiEASkpCEJCQREUhCEpKQhCQiAklIQhIRgSQkIQlJSEISwzBwcHDA/X7kR37ks3/0R3/0c7jqqquuuuqqq6666qr/GlSuuuqqq6666qrn8fd///e//WIv9mKvvb29zf9Vkvi3kMRzk8QDSeJ+kpDECyIJSUhCEs9NEpKQxP0kIQlJSAJAEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQREUhCEpKQhCQiAklIQhIRgSQkIQnbHB4eMo4jAP/wD//w21//9V//Pvfdd9+tXHXVVVddddVVV1111X8dKlddddVVV1111X8LSTw3SfxrSOJfQxLPTRIAknggSQBIAkASz00S95PEA0nigSQhCUlI4vmRhCQkIQlJ3E8SkpAEgCQAJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiYhAEpKQhCQkIYmIQBKSkIQkJBERSEISkpCEJNbrNavVCoD77rvv1t/6rd/67h/90R/9HK666qqrrrrqqquuuuq/HpWrrrrqqquuuup5/MM//MPvAFx//fW8qCTxH00SDySJF0QS95PE/STx3CTxgkjiXyKJ+0nifpJ4IElI4vmRhCQkIQlJPDdJSEISAJKQhCQkIQkASQBIAkASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkERFIQhKSkIQkJCEJSbTWODw8JDMB+JEf+ZHP/tEf/dHP4aqrrrrqqquuuuqqq/77ULnqqquuuuqqq/7fksSLQhIAkrifJO4niftJQhIPJAlJSOKFkYQkJCGJ+0lCEgCSkASAJCQhCUlIQhKSAJCEJAAkIQlJSEISkpCEJCQREUhCEpKQhCQkIYmIQBKSkIQkIgLbDMPAer0G4L777rv167/+69/nH/7hH36bq6666qqrrrrqqquu+u9F5aqrrrrqqquueh5nz569FWB7e5v/qSTxryGJF0QSAJIAkASAJJ6bJO4niftJ4oEk8fxIQhKSkIQkJCGJ5yYJSdxPEgCSkASAJAAkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQREUhCEpKQhCQkIYmIQBKSkMQ4jgzDwP1+5Ed+5LN/9Ed/9HO46qqrrrrqqquuuuqq/xmoXHXVVVddddVVz+O+++67FWB7e5t/L0m8KCTxbyWJ+0nifpJ4bpL4t5DE8yOJ+0nigSQhCUm8KCQhCUlIAkASkpAEgCQAJCEJSUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISkogIJCEJSUhCEpKQREQAsF6vaa0B8A//8A+//fVf//Xvc999993KVVddddVVV1111VVX/c9B5aqrrrrqqquuer7uu+++W6+55poHb29vs7+/z383SfxHksQLIwkASTw3STyQJO4nCUk8N0lIQhKSkIQkJCEJSTyQJCRxP0lIQhKSAJAEgCQAJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQkIYmIICKQhCQkIQlJTNPENE0A3Hfffbd+/dd//fv8wz/8w29z1VVXXXXVVVddddVV//NQueqqq6666qqrnq/77rvv1muuuebBW1tb7O/v8x9JEv8SSfxHkcQLIgkASQBI4gWRxP0k8UCSeCBJSOJfQxKSkMT9JCEJAEkASEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkogIJCEJ2wzDgG0AfuRHfuSzf/RHf/RzuOqqq6666qqrrrrqqv+5qFx11VVXXXXVVS/U9vY2d999N/+TSOL5kcT9JPHcJPGvIQkASdxPEveTxANJ4rlJQhKSkIQkJCEJSUhCEpK4nyQkIQkASUgCQBIAkgCQBIAkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkmitYRuA++6779av//qvf59/+Id/+G2uuuqqq6666qqrrrrqfzYqV1111VVXXXXV8/UP//APv/3iL/7ir729vc3/ZJL415LE8yMJAEk8N0ncTxL3k8QDSUIS/xaSkMT9JCEJAElIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISkpCEbTITgPvuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq6666n8HKlddddVVV1111X87Sbwwkvi3ksQLIgkASbwgknh+JHE/STw3SUhCEpJ4bpKQhCQkIYn7SUISAJKQBIAkACQBIAkASUgCQBKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEbe73D//wD7/9mZ/5ma/DVVddddVVV1111VVX/e9C5aqrrrrqqquuer7+4R/+4bcBrr/+ev6rSeIFkcS/RBLPTRL/GpJ4bpJ4IEncTxKSeEEkIQlJSOK5SUISkgCQhCQAJCEJAEkASEISkpAEgCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCRxv/vuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq6666n8fKlddddVVV1111X8aSfxnksT9JPGikASAJAAkASAJAEk8N0ncTxIPJIkHkoQkJPEvkYQkJHE/SUjifpIAkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkogISinc70d+5Ec++0d/9Ec/h6uuuuqqq6666qqrrvrfi8pVV1111VVXXfV83XfffbcCbG9v8x9JEv9VJPHvIYn7SeJ+knggSTw/kpCEJCQhCUlIQhIPJAlJ3E8SkgCQBIAkACQBIAlJAEhCEpIAkIQkJCEJSUgCQBKSkIQkIoKu65AEwH333XfrZ33WZ73OfffddytXXXXVVVddddVVV131vxuVq6666qqrrrrq+Tp79uwzALa3t/nvJIl/L0m8KCQBIIn7SeJ+krifJB5IEpL415CEJCRxP0lIAkASkpCEJCQhCUlIQhIAkpCEJAAkIQlJSEISkgCQhCQkIYmu66i1AnDffffd+lu/9Vvf/aM/+qOfw1VXXXXVVVddddVVV/3fQOWqq6666qqrrnqB7rvvvluvueaaB29vb7O/v88LIol/K0k8kCReEEncTxL3k8T9JPGCSAJAEgCSAJDEv4UknpskJCEJSUhCEpKQhCQkIYkHkoQkACQhCQBJAEgCQBIAkpCEJCQhCQBJSEISkpCEJAAkIQlJRASLxQJJAPzWb/3Wd3/913/9+3DVVVddddVVV1111VX/t1C56qqrrrrqqqteoLNnz956zTXXPHhra4v9/X3+N5HEv4ck7ieJ+0nigSQhiX8rSUjifpIAkIQkACQBIAkASUgCQBKSkIQkJCEJSUhCEgCSkEQphb7v6fsegPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq6666v8eKlddddVVV1111f9pknhRSAJAEveTxP0kcT9JPDdJSEISL4wkJCEJSdxPEpIAkASAJCQhCUlIQhKSAJCEJCQBIAlJSEISkgCQhCRmsxmLxYL7/ciP/Mhn/+iP/ujncNVVV1111VVXXXXVVf93EVx11VVXXXXVVS/Q3//93/82wA033MB/BEn8a0jiXyKJ+0niBZEEgCQAJAEgiecmiedHEveThCSeH0lIQhKSkIQkJPHcJCEJAElIAkASAJIAkASAJAAkIQlJAEhCEpKQxP0kUUphe3ubxWIBwD/8wz/89gd/8Ac/+Ed/9Ec/h6uuuuqqq6666qqrrvq/jcpVV1111VVXXfWfQhL/WpJ4QSRxP0m8MJL4t5DEc5PEA0nigSQhiX8NSUhCEveTxP0kASAJAEkASEISkpCEJAAkIQlJSAJAEpLY2NhgY2MDgPvuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq6666v8HKlddddVVV1111Qv0D//wD78DcP311/OfQRL/mSTxopDEc5PE/STxQJJ4bpKQhCQkIQlJSEISkpCEJB5IEpIAkIQkACQBIAkASUgCQBKSAJCEJCQhCQBJ9H3Pzs4OpRQAfuRHfuSzf/RHf/RzuOqqq6666qqrrrrqqv9fqFx11VVXXXXVVf8nSOIFkQSAJAAkASCJ5yaJ+0nifpJ4IEn8W0lCEpIAkIQkACQhCUlIQhKSkASAJCQBIAlJSOJ+tVa2t7dZLBYA3Hfffbd+/dd//fv8wz/8w29z1VVXXXXVVVddddVV//9Queqqq6666qqrXqCzZ8/eCrC9vc1/NUn8SyTxH0US/xJJPJAkJCGJf4kkJCGJB5LE/SQBIAkASQBIAkASkgCQhCQkASCJnZ0dtre3ud+P/MiPfPaP/uiPfg5XXXXVVVddddVVV131/xeVq6666qqrrrrqBbrvvvtuBdje3ubfSxIvjCReEEncTxIvjCT+NSTx3CRxP0k8kCSeH0lIQhKSkIQkJCGJ5yYJSQBIQhIAkgCQBIAkACQhCQBJSEISAF3XcfLkSWazGQD/8A//8Ntf//Vf/z733XffrVx11VVXXXXVVVddddX/b1Suuuqqq6666qoX6r777rv1mmuuefD29jYHBwc8N0n8W0jiP4oknpskACQBIAkASQBI4rlJ4n6SuJ8kHkgSkvjXkoQkJHE/SQBIQhIAkgCQBIAkJAEgCUlIAuD48eMcO3YMgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq6666ioAKlddddVVV1111Qt19uzZW6+55poHb29vc3BwwItCEv8ekviXSOI/iiSeH0ncTxLPTRKSkMTzIwlJSEISDyQJSQBI4n6SAJAEgCQkASAJSUhiPp9z/fXXc78f+ZEf+ewf/dEf/Ryuuuqqq6666qqrrrrqqgeictVVV1111VVX/Y8miftJ4oWRxL+GJJ6bJF4QSUji+ZGEJCQhCUk8P5KQxP0kASAJSUhCEpKQhCQAJCGJWivXXnsti8UCgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq6666qrnRuWqq6666qqrrnqh/v7v//63X+zFXuy1r7/+eu6++27+N5AEgCQAJAEgCQBJPDdJ3E8S95PEc5OEJF5UkpCEJO4nCUkASAJAEgCSAJAEgCQkcfLkSU6dOgXAfffdd+tv/dZvffeP/uiPfg5XXXXVVVddddVVV1111QtC5aqrrrrqqquu+k8niRdGEv9Wkvj3kMTzI4n7SeL5kYQkJCEJSUhCEpKQhCQeSBKSuJ8kACQBIAkASQBIou97rrvuOjY2NgD4h3/4h9/+zM/8zNfhqquuuuqqq6666qqrrvqXULnqqquuuuqqq16of/iHf/gdgBtuuIG//Mu/5D+CJF4QSfxLJPHcJPGvIYnnJokHksT9JCGJfytJSOJ+kpAEgCQAJAEgCYC+7zlx4gSnT58G4L777rv167/+69/nH/7hH36bq6666qqrrrrqqquuuupFQeWqq6666qqrrvofSxL3k8SLQhIAknggSQBI4rlJ4n6SeCBJPJAkJPGikIQkJHE/SUgCQBKSAJAEgCQATpw4wY033sj9fuRHfuSzf/RHf/RzuOqqq6666qqrrrrqqqv+NahcddVVV1111VUv1NmzZ28F2Nra4rlJ4rlJ4r+KJP4lknhBJPH8SOKBJPHcJCEJSUhCEpKQhCQk8dwkcT9J3E8SAJLo+56bb76Zzc1NAO67775bP+uzPut17rvvvlu56qqrrrrqqquuuuqqq/61qFx11VVXXXXVVS/UfffddyvA9vY2/xkk8a8hiX8vSTw3STyQJB5IEv8WkpCEJO4nCQBJSAJAEtdeey3XXXcdAPfdd9+tv/Vbv/XdP/qjP/o5XHXVVVddddVVV1111VX/VlSuuuqqq6666qp/0X333XfrNddc8+Dt7W329/f515DEA0niBZHE8yOJF0YSAJJ4fiQBIInnJon7SeKBJPFAkpDEi0ISknggSUgCQBL3297e5kEPehB93wPwW7/1W9/99V//9e/DVVddddVVV1111VVXXfXvReWqq6666qqrrvoXnT179tZrrrnmwVtbW+zv7/NfQRL/VpIAkMQLIonnRxIPJInnJglJSEISkpCEJCQhiQeShCTuJwmA2WzG6dOnuf766wG47777bv36r//69/mHf/iH3+aqq6666qqrrrrqqquu+o9A5aqrrrrqqquu+l9JEv8WknhuknggSTyQJP4tJCGJ+0lCEgA33ngjN9xwA/f7kR/5kc/+0R/90c/hqquuuuqqq6666qqrrvqPROWqq6666qqrrvoX/f3f//1vv9iLvdhrX3/99dx99938R5HEv4YknpskXhSSeG6SuJ8kHkgSDyQJSfxLJCEJSTyQJABmsxkPe9jD2N7eBuAf/uEffvvrv/7r3+e+++67lauuuuqqq6666qqrrrrqPxqVq6666qqrrrrqP4wk/q0k8fxI4kUhCQBJAEgCQBLPTRLPjyQeSBLPTRKSkIQkJCEJSUjiuUlCEgA33XQTN910EwD33XffrT/6oz/6Ob/1W7/13Vx11VVXXXXVVVddddVV/1moXHXVVVddddVV/6J/+Id/+B2AG264gb/8y78EQBL/Ekk8kCReFJJ4YSTxbyGJ5yaJB5LEA0ni30ISkgDY2dnhEY94BLPZDIAf+ZEf+ewf/dEf/Ryuuuqqq6666qqrrrrqqv9sVK666qqrrrrqqv8VJPHcJPGikMRzk8T9JPFAknggSUjiXyIJSUgCYDab8chHPpJjx44BcN9999369V//9e/zD//wD7/NVVddddVVV1111VVXXfVfgcpVV1111VVXXfUvOnv27K0A29vb/EeRxH8USQBIAkASAJJ4UUniXyIJSUhCEpKQhCQk8UC33HILD3rQg7jfj/zIj3z2j/7oj34OV1111VVXXXXVVVddddV/JSpXXXXVVVddddW/6L777rsVYGtri/8MkrifJO4nif9okrifJF4QSUjiX2s+n/PoRz+aY8eOAfAP//APv/2Zn/mZr8NVV1111VVXXXXVVVdd9d+BylVXXXXVVVdd9SK57777br3mmmsevL29zf7+Ps9NEi+MJP4jSOLfQhL3k8T9JHE/STw3SUjiXyKJBz/4wTz4wQ8G4L777rv167/+69/nH/7hH36bq6666qqrrrrqqquuuuq/C5WrrrrqqquuuupFcvbs2VuvueaaB29tbbG/v8+/RBL/USTx3CQBIInnRxIAkvjXkMTzIwlJSEISkpCEJE6cOMHLvMzLcL8f+ZEf+ewf/dEf/Ryuuuqqq6666qqrrrrqqv9uVK666qqrrrrqqn81Sfx7SOJfIol/DUkASOIFkcT9JHE/STyQJCTxL5nP5zz2sY/lxIkTANx33323fv3Xf/37/MM//MNvc9VVV1111VVXXXXVVVf9T0Dlqquuuuqqq656kfz93//9b7/Yi73Ya19//fXcc889/EeRxP0k8cJI4t9CEv8SSTw3SbwgD33oQ3noQx8KwH333Xfrb/3Wb333j/7oj34OV1111VVXXXXVVVddddX/JFSuuuqqq6666qr/dJL4jySJF4Uknpsk7ieJB5LEc5OEJCQhiY2NDV7u5V6OxWIBwD/8wz/89md+5me+DlddddVVV1111VVXXXXV/0RUrrrqqquuuuqqF8k//MM//A7ADTfcwF/91V/xQJL4zyKJF0QSAJIAkASAJJ6bJO4niftJ4oEk8fwsFgtuvPFGHvawhwFw33333fr1X//17/MP//APv81VV1111VVXXXXVVVdd9T8Vlauuuuqqq6666j+cJF4QSfxLJPEfRRL/Ekk8kCQkcb8bb7yRl3iJl+B+P/IjP/LZP/qjP/o5XHXVVVddddVVV1111VX/01G56qqrrrrqqqteJGfPnr0VYGtri/8okrifJF4YSfxrSOK5SeJ+knggSTy3jY0NXvIlX5KTJ08C8A//8A+//XVf93Xvffbs2Wdw1VVXXXXVVVddddVVV/1vQOWqq6666qqrrvpX2d7e5r+KJJ6bJAAk8fxI4rlJ4vmRxANJ4n6PeMQjeMQjHgHAfffdd+tv/dZvffeP/uiPfg5XXXXVVVddddVVV1111f8mVK666qqrrrrqqhfJfffdd+t999136zXXXPPgra0tDg4OeFFI4j+TJAAk8aKQxANJ4oFOnz7NS73US7FYLAD4kR/5kc/+0R/90c/hqquuuuqqq6666qqrrvrfiMpVV1111VVXXfUiu++++2695pprHry9vc3BwQEAknggSfx7SOK5SeLfQhL3k8T9JPFAktjY2ODmm2/mkY98JAD33XffrV//9V//Pv/wD//w21x11VVXXXXVVVddddVV/1tRueqqq6666qqr/stI4n6SuJ8kXhSSeGEkASCJf41HPvKRPOpRj+J+P/IjP/LZP/qjP/o5XHXVVVddddVVV1111VX/21G56qqrrrrqqqteZP/wD//w2y/+4i/+2tdffz133303/5kk8YJIAkASAJJ4QSRxP0ncTxIbGxu8zMu8DKdPnwbgH/7hH37767/+69/nvvvuu5Wrrrrqqquuuuqqq6666v8CKlddddVVV1111X8aSfx3kcQL86hHPYpHP/rRANx33323/uiP/uhn/9Zv/db3cNVVV1111VVXXXXVVVf9X0Llqquuuuqqq656kf3DP/zDbwNcf/31/GeQxHOTxL+GJJ6bJO535swZXvZlX5aNjQ0AfuRHfuSzf/RHf/RzuOqqq6666qqrrrrqqqv+L6Jy1VVXXXXVVVf9m0nigSTxgkjifpK4nyReFJJ4fiQBIInnJon7bWxs8PIv//KcPn0agPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq6666qr/q6hcddVVV1111VUvsvvuu+9WgK2tLf4zSeIFkQSAJF5Uj3nMY3jMYx7D/X7kR37ks3/0R3/0c7jqqquuuuqqq6666qqr/q+jctVVV1111VVX/attb2/zL5HEv4Yk/qNIAmBjY4OXf/mX58yZMwD8wz/8w29/5md+5utw1VVXXXXVVVddddVVV/1/QeWqq6666qqrrnqRnT179hn33Xffrddcc82Dt7a2ODw85D+TJP41JAGwsbHBgx/8YB772McCcN9999369V//9e/zD//wD7/NVVddddVVV1111VVXXfX/CZWrrrrqqquuuupf5ezZs7dec801D97e3ubw8JD7SeIFkcT9JHE/STw3STw3SQBIAkASAJIAkMT9zpw5w2u/9mtzvx/5kR/57B/90R/9HK666qqrrrrqqquuuuqq/4+oXHXVVVddddVV/yaS+J9kc3OTV3zFV+TMmTMA3Hfffbd+1md91uvcd999t3LVVVddddVVV1111VVX/X9F5aqrrrrqqquu+lf5+7//+99+sRd7sde+7rrruPvuu/mPIInnJokX1Yu92IvxYi/2YgDcd999t/7Wb/3Wd//oj/7o53DVVVddddVVV1111VVX/X9H5aqrrrrqqquu+g8niX+JJF4UknhBNjc3eZ3XeR02NzcB+K3f+q3v/vqv//r34aqrrrrqqquuuuqqq6666goqV1111VVXXXXVv8rZs2efAXD99dfzV3/1V/xLJHE/SbwwknhBJAEgic3NTR7ykIfw4i/+4gDcd999t37913/9+/zDP/zDb3PVVVddddVVV1111VVXXfVsVK666qqrrrrqqn+V++6771aeiyT+qzzkIQ/hlV7plbjfj/zIj3z2j/7oj34OV1111VVXXXXVVVddddVVz4vKVVddddVVV131r3L27NlbAba3t/mPIInnJonntrm5ySu/8itzzTXXAPAP//APv/31X//173PffffdylVXXXXVVVddddVVV1111fNH5aqrrrrqqquu+g8liX+JJF4UkgB4iZd4CV7iJV4CgPvuu+/W3/qt3/ruH/3RH/0crrrqqquuuuqqq6666qqrXjgqV1111VVXXXXVv8p9991363333XfrNddc8+CtrS0ODg54QSRxP0m8MJJ4btdccw2v8iqvwubmJgA/8iM/8tk/+qM/+jlcddVVV1111VVXXXXVVVe9aKhcddVVV1111VX/amfPnr31mmuuefD29jaHh4f8R9vc3OQlX/IleehDHwrAfffdd+vXf/3Xv88//MM//DZXXXXVVVddddVVV1111VUvOipXXXXVVVddddV/G0k8t5d8yZfkJV/yJbnfj/zIj3z2j/7oj34OV1111VVXXXXVVVddddVV/3pUrrrqqquuuuqqf7X77rvv1hd7sRfjuuuu45577uF+kviXSOL52dzc5FVf9VW59tprAfiHf/iH3/76r//697nvvvtu5aqrrrrqqquuuuqqq6666t+GylVXXXXVVVdd9a9233333cq/QBL3k8QL81Iv9VK85Eu+JAD33XffrV//9V//Pv/wD//w21x11VVXXXXVVVddddVVV/37ULnqqquuuuqqq/7Vzp49+wyA66+/nr/+67/m3+raa6/lVV/1Vdna2gLgR37kRz77R3/0Rz+Hq6666qqrrrrqqquuuuqq/xhUrrrqqquuuuqqf7X77rvvVv4dtra2eLVXezWuvfZaAO67775bv/7rv/59/uEf/uG3ueqqq6666qqrrrrqqquu+o9D5aqrrrrqqquu+lc7e/bsrQDb29vcTxL/Ekm81Eu9FC/1Ui8FwH333Xfrb/3Wb333j/7oj34OV1111VVXXXXVVVddddVV//GoXHXVVVddddVV/+EkcT9JAGxtbfFqr/ZqXHfddQD8wz/8w29/5md+5utw1VVXXXXVVVddddVVV131n4fKVVddddVVV131r3bffffdet999916zTXXPHhra4uDgwNekK2tLR72sIfx0i/90gDcd999t37913/9+/zDP/zDb3PVVVddddVVV1111VVXXfWfi8pVV1111VVXXfVvcvbs2VuvueaaB29vb3NwcMDzc9111/HGb/zG3O9HfuRHPvtHf/RHP4errrrqqquuuuqqq6666qr/GlSuuuqqq6666qp/N0k80NbWFq/+6q/OddddB8B9991362d+5me+9tmzZ5/BVVddddVVV1111VVXXXXVfx0qV1111VVXXXXVv8l9991364u92Itx3XXXcc8993C/l3mZl+GlX/qlAbjvvvtu/a3f+q3v/tEf/dHP4aqrrrrqqquuuuqqq6666r8elauuuuqqq6666t/kvvvuu5UH2Nra4k3e5E3Y2toC4Ld+67e+++u//uvfh6uuuuqqq6666qqrrrrqqv8+VK666qqrrrrqqn+Ts2fPPgPg+uuvB+BlXuZlALjvvvtu/fqv//r3+Yd/+Iff5qqrrrrqqquuuuqqq6666r8Xlauuuuqqq6666t/kvvvuuxXguuuu47rrrgPgR37kRz77R3/0Rz+Hq6666qqrrrrqqquuuuqq/xkox48f56qrrrrqqquu+teTxObm5vGHPOQhL/0P//APv/1Zn/VZr/Onf/qnP8NVV1111VVXXXXVVVddddX/HOhBD3oQV1111VVXXXXVv93rvM7rvNdv/dZvfQ9XXXXVVVddddVVV1111VX/86AHPehBXHXVVVddddVVV1111VVXXXXVVVddddVV/ydRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KfwTJVbwcMGy7dAAAAABJRU5ErkJggg==) ```kcl // Loft a square and a circle on the `-XZ` plane using offset. @@ -105,7 +105,7 @@ loft([squareSketch, circleSketch]) ``` -![Rendered example of offsetPlane 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFR70lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV/2v8GIv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69+Hq6666qqrrvqfAT3oQQ/iqquuuuqqq/6neLEXe7HXAsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEA9w3333Pf3s2bPP4Kqrrrrqqqv+Z0APetCDuOqqq6666qqrrrrqqquuuuqqq6666qqr/k+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxX/CIb96tbwtK1gAAAAAElFTkSuQmCC) +![Rendered example of offsetPlane 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFR8UlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV/2v8GIv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//Vf/z5cddVVV1111f8M6EEPehBXXXXVVVdd9T/Fi73Yi70WIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeE4GxHMyIJ6TAfGcDIjnZEA8JwPiORkQz8mAeID77rvv6WfPnn0GV1111VVXXfU/A3rQgx7EVVddddVVV1111VVXXXXVVVddddVVV131fxKVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q/hHIuzq3PXsULYAAAAASUVORK5CYII=) ```kcl // A circle on the XY plane diff --git a/docs/kcl-std/functions/std-sketch-bezierCurve.md b/docs/kcl-std/functions/std-sketch-bezierCurve.md index a762e1b6f..1c8a0e1bd 100644 --- a/docs/kcl-std/functions/std-sketch-bezierCurve.md +++ b/docs/kcl-std/functions/std-sketch-bezierCurve.md @@ -67,6 +67,6 @@ startSketchOn(XY) ``` -![Rendered example of bezierCurve 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABrN0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/inL8+HGuuuqqq6666qqrrrrqqqv+t3qxF3ux136d13md9wJ09uzZW7nqqquuuuqqqx4IPehBD+Kqq6666qqrrrrqqquuuup/i2uuuebBr/3ar/1e11xzzYNf53Ve570Bzp07R2be+qM/+qOf81u/9VvfzVVXXXXVVVdddT8qV1111VVXXXXVVVddddVV/8Ndc801D37t137t97rmmmse/Dqv8zrvzTOdO3eO06dPc+HCBR75yEc+mKuuuuqqq6666rlRueqqq6666qqrrrrqqquu+h/ommuuefBrv/Zrv9c111zz4Nd5ndd5bx7gD//wD3nUox7Fn/zJn/CLv/iLvNIrvRKPfOQj+Yd/+Iff5qqrrrrqqquueiAqV1111VVXXXXVVVddddVV/0Ncc801D37t137t93rxF3/x136xF3ux1+YBzp8/zx/8wR/waq/2aly8eJHP/MzPBODkyZM84hGP4Kqrrrrqqquuer6oXHXVVVddddVVV1111VVX/Te65pprHvzar/3a7/XiL/7ir/NiL/Zir8VzOX/+PKdOneLChQs87WlP41d+5VcAeOVXfmXe9E3flFOnTgHwmZ/5ma9z33333cpVV1111VVXXfVAVK666qqrrrrqqquuuuqqq/6LXXPNNQ9+7dd+7fd68Rd/8dd+sRd7sdcGOH/+PADnz5/n1KlTnD9/HoA/+ZM/4Y//+I85f/48p06d4k3f9E155Vd+ZVprnDp1ivvuu+/WH/3RH/3sf/iHf/htrrrqqquuuuqq50blqquuuuqqq6666qqrrrrqv8A111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bYDz58/zh3/4h5w/f563eIu3AOAP//APedVXfVX+5E/+hF/8xV8E4OTJk7zpm74pb/Zmb8b9fuRHfuSzf/u3f/t77rvvvlu56qqrrrrqqqteEPSgBz2Iq6666qqrrrrqqquuuuqq/wzXXHPNg1/7tV/7vV78xV/8tV/sxV7stQHOnz/PH/7hH/KHf/iHvOqrvipv8RZvwfnz5/nDP/xDXvVVX5Vf+qVf4o//+I8BOHnyJK/8yq/Mm77pmwJw33333fpbv/Vb3/2jP/qjn8NVV1111VVXXfWiQA960IO46qqrrrrqqquuuuqqq676j3LNNdc8+LVf+7Xf65prrnnw67zO67w3wPnz5/nDP/xDfu7nfo5XfdVX5S3e4i04deoU58+f59SpU/ziL/4if/Inf8L58+cBeOVXfmXe5E3ehFOnTgFw33333fpbv/Vb3/2jP/qjn8NVV1111VVXXfWvgR70oAdx1VVXXXXVVVddddVVV13173HNNdc8+LVf+7Xf65prrnnI67zO67wXwPnz5/nDP/xDfv7nf55Tp07xKq/yKrzqq74qp06d4vz580jij//4j/mlX/olAE6cOMErv/Ir80qv9Eq01rjmmmu47777bv3RH/3Rz/mt3/qt7+aqq6666qqrrvq3QA960IO46qqrrrrqqquuuuqqq67617rmmmse/Nqv/drvdc011zz4dV7ndd4b4Pz58/zhH/4hP//zPw/AqVOneJVXeRXe4i3eAoCf+7mf49Ve7dX44z/+Y37pl34JgJMnT/JKr/RKvOmbvin3+5Ef+ZHP/u3f/u3vue+++27lqquuuuqqq67696By1VVXXXXVVVddddVVV131r/BiL/Zir/1iL/Zir/VO7/ROnw1w/vx5fu7nfo6f//mf536nTp3iLd7iLXiVV3kVzp8/D8CFCxfY29vjsz7rswA4efIkb/qmb8orvdIrAXDffffd+lu/9Vvf/aM/+qOfw1VXXXXVVVdd9R+FylVXXXXVVVddddVVV1111b/gxV7sxV77xV7sxV7rnd7pnT4b4Pz58/zcz/0cP//zP88Dvfmbvzmv+qqvyqlTpzh//jwAf/qnf8qf/MmfcOHCBQBe6ZVeiTd90zfl5MmTANx33323/tZv/dZ3/+iP/ujncNVVV1111VVX/UdDD3rQg7jqqquuuuqqq6666qqrrnpu11xzzYNf+7Vf+73e6Z3e6bMBzp8/zx/90R/x8z//8zzQqVOneJVXeRXe/M3fHIA/+qM/4lGPehR/8id/wi/90i8BcPLkSV7plV6JN3mTN+G+++7jmmuu4b777rv1R3/0Rz/nt37rt76bq6666qqrrrrqPwt60IMexFVXXXXVVVddddVVV111FcA111zz4Nd+7dd+r3d6p3f6bIDz58/zR3/0R/zRH/0R58+f54FOnTrFq7zKq/Dmb/7mnD9/nj/6oz/iVV/1VfmTP/kTfumXfgmAkydP8kqv9Eq8yZu8Cff7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80Zv9EZcuHCB1hp/93d/dytXXXXVVVddddVV/zmoXHXVVVddddVVV1111X+iF3uxF3vtD//wD/+ua6655sG/+qu/yq/92q8BIIl/iW3+K0niBbHNv8fJkyd5+Zd/ed7ojd6ICxcuAPBHf/RH/ORP/iRv8AZv8GCuuuqqq6666qqr/nNQueqqq6666qqrrrrqqv8E11xzzYPf8R3f8bNf53Ve570uXrzIN3/zN/PUpz6Vfw1J/Ets819BEi+IbV6QkydP8vIv//K80Ru9EQC/8iu/wiu+4ivyuZ/7udx9992cOnWKl3iJl3jwj/3Yj3HVVVddddVVV131n4DKVVddddVVV1111VVX/Qd7ndd5nff+8A//8O+6ePEiP/IjP8Kf//mf859FEi+Mbf6zSeKBTpw4wSu8wivwsIc9jIc97GFcuHABgIsXL3Lbbbfx67/+64zjyKlTp3j3d3937r777lu56qqrrrrqqquu+s+BHvSgB3HVVVddddVVV1111VX/Ea655poHf/iHf/h3vdiLvdhrP/WpT+VbvuVbeEFs8z+Bbf6jPOxhD+PlX/7leYVXeAUAnvrUp3Lq1Cn+6q/+ir/8y7/kwoULtNZorfF6r/d6vPEbvzH33XffrR/yIR/yEK666qqrrrrqqqv+c1C56qqrrrrqqquuuuqq/wAv9mIv9tqf+7mf+1sXL17km7/5m3na057GCyOJf4lt/rNJ4gWxzQtz4sQJXuEVXoETJ07wCq/wCgBcuHABgGc84xnccccdfP/3fz+ZSWYC8Pqv//q83Mu9HCdOnOAf/uEffvszP/MzX4errrrqqquuuuqq/zxUrrrqqquuuuqqq6666t/pHd/xHT/rnd7pnT77qU99Kt/yLd/CfxRJvDC2+c8kied24sQJXv7lX56HP/zhPPShDwXgwoULAFy6dIl/+Id/4Hd/93exTWYCcPz4cV7qpV6K133d1wXgvvvuu/VHfuRHvvtHf/RHP4errrrqqquuuuqq/1xUrrrqqquuuuqqq6666t/hwz/8w7/rdV7ndd77L/7iL/jRH/1RJGGb/wqSeGFs8+914sQJXv7lXx6AN3zDNwTg4sWLPPWpT+WhD30oly5d4nGPexy///u/j21sc78HPehBvPRLvzQv9VIvBcB9991362/91m9994/+6I9+DlddddVVV1111VX/NdCDHvQgrrrqqquuuuqqq6666t/iwz/8w7/rdV7ndd77L/7iL/jRH/1R/jVs89/JNs/PiRMneNjDHsaJEyd4hVd4BU6cOMHFixcBOHHiBHt7e/z93/89ly5d4u///u+xjW1sY5udnR1uueUW3uIt3oLz589z6tQp7rvvvlt/67d+67t/9Ed/9HO46qqrrrrqqquu+q9F5aqrrrrqqquuuuqqq/4Nrrnmmge/9Eu/9Hv/2q/9Gr/+67/Ov5Yk/iW2+c8iCYATJ07w8i//8gC8/Mu/PCdOnADg4sWLnDhxgr29PQ4PD/mHf/gHbr/9di5duoRt7nfs2DFuvvlmbr75Zl7iJV6CB/r1X//1z/6Hf/iH3/6Hf/iH3+Gqq6666qqrrrrqvweVq6666qqrrrrqqquu+jf4nM/5nN+6ePEiv/7rv85/Fkm8MLb51zhx4gQnTpzgYQ97GA996EN52MMexv0uXrzIiRMn2NvbY29vjzvvvJM77riD22+/HQDb2AZgZ2eHF3/xF+fmm2/m5ptv5oHuu+++W3/0R3/0c37rt37ru7nqqquuuuqqq67670flqquuuuqqq6666qqr/pVe53Ve572uueaaB99+++1I4vmxzX82Sbwgx48f58SJEzzsYQ/joQ99KA972MO438WLF/nzP/9zHvawh7G/v8+dd97J3t4ed955J3fccQe2AbANwM7ODtvb29x000282Iu9GDs7OzzQfffdd+uP/uiPfs5v/dZvfTdXXXXVVVddddVV/7NQueqqq6666qqrrrrqqn+lM2fOPJh/gST+Jbb59zpx4gQnTpzgoQ99KAAPe9jDeOhDH8r9Ll68yNOe9jQA9vf32d/f56677uLo6Ihv+qZvwja2AbANgCS2t7d59KMfzU033cRNN93EA9133323/tZv/dZ3A/zoj/7o53DVVVddddVVV131Pxd60IMexFVXXXXVVVddddVVV/1rfdmXfZlPnDjBX/zFX/Drv/7r/GewDcCJEycAeOhDH8qJEyc4efIkJ06c4KEPfSj3u3jxIhcvXuShD30oAAcHB+zv73P33Xezv7/PE5/4RABsYxsA29hma2sLgEc/+tHceOON3HjjjQBcuHCBkydPAnDffffd+lu/9Vvf/Q//8A+/8w//8A+/zVVXXXXVVVddddX/DuhBD3oQV1111VVXXXXVVVdd9a/1vu/7vk9/qZd6qQffdNNNXLx4kac97Wk87WlP4+LFiwBcvHiRixcv8oKcOHGC+504cYITJ05w4sQJAE6cOMHJkyc5fvw4J06c4IEuXrzIxYsXufbaa9nc3OTg4ACApzzlKQDcfffd3H333QDYxja2sQ2Abba2trjhhhvY2tpie3ubRz/60QBcuHCBkydPAnDffffd+lu/9Vvf/Q//8A+/8w//8A+/zVVXXXXVVVddddX/TlSuuuqqq6666qqrrrrqX+maa655cCnlwY9//ONZLpc84hGPAOD1X//1OXHiBP9WFy9eBODixYs85CEP4X6Hh4cA3HfffRwcHADwR3/0R9xzzz3Yxja2sY1tHmhra4utrS2uv/56rr/+em644Qaen/vuu+/W3/qt3/ruf/iHf/jtf/iHf/gdrrrqqquuuuqqq/5voHLVVVddddVVV1111VX/Si/2Yi/22v/wD//w213XvfYdd9zBX/7lX/LgBz+YzGQcR2azGZJorfGCDMOAbQCWyyVHR0ccHR1hm8PDQ37/93+fw8NDDg4OyExsY5vMxDa2eW5bW1tce+21bG1tcd1113H99ddzvwsXLjBN063Ag++7775bz549e+vf//3f//Y//MM//M4//MM//DZXXXXVVVddddVV/zdRueqqq6666qqrrrrqqn+ls2fP3vpSL/VSt95xxx3c78KFCzzjGc/gwQ9+MMeOHWNnZ4dSCuM4cnR0xMHBAXt7exwcHHB4eMhqtWK1WjEMA+M4Mk0TrTVaa7TWyEwyEwBJ2AZgc3MT21xzzTVsbm5y7bXXsrm5ydbWFs/Pfffdd+vZs2dv/fu///vf/od/+Iff+Yd/+Iff5qqrrrrqqquuuur/DypXXXXVVVddddVVV131r/T3f//3v/2O7/iOn/X6r//63HfffVy4cAEASUhCEpKQhCQkASAJAEk8kCTut1gsyEzm8zknT57ENhsbG2xsbHDNNdfwwtx33323/sM//MNv33fffbf+wz/8w+/8wz/8w29z1VVXXXXVVVdd9f8betCDHsRVV1111VVXXXXVVVf9a11zzTUPfsd3fMfPep3XeZ33vnjxIidOnGAYBmqtdF3HbDYDQBLjODIMA+v1mmEYsE1rjVormclsNmM+n/PcLl68yIkTJ3ig++6771aAf/iHf/jtf/iHf/gdwPfdd98z/uEf/uG3ueqqq6666qqrrrrquaEHPehBXHXVVVddddVVV1111b/VNddc8+B3fMd3/KxrrrnmwS/2Yi/22vw73XfffbcCnD179ta///u//22As2fPPuO+++679R/+4R9+m6uuuuqqq6666qqr/jXQgx70IK666qqrrrrqqquuuuo/wjXXXPNggDNnzjz4mmuueTDgM2fOPJjncvbs2WcA3Hfffbdyhf/hH/7hd7jqqquuuuqqq6666j8aetCDHsRVV1111VVXXXXVVVddddVVV1111VVXXfV/EpWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X8U/AlBOBPetNe/QAAAAAElFTkSuQmCC) +![Rendered example of bezierCurve 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABrRElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/inL8+HGuuuqqq6666qqrrrrqqqv+t3qxF3ux136d13md9wJ09uzZW7nqqquuuuqqqx4IPehBD+Kqq6666qqrrrrqqquuuup/i2uuuebBr/3ar/1e11xzzYNf53Ve570Bzp07R2be+qM/+qOf81u/9VvfzVVXXXXVVVdddT8qV1111VVXXXXVVVddddVV/8Ndc801D37t137t97rmmmse/Dqv8zrvzTOdO3eO06dPc+HCBR75yEc+mKuuuuqqq6666rlRueqqq6666qqrrrrqqquu+h/ommuuefBrv/Zrv9c111zz4Nd5ndd5bx7giU98IqdPn+ZP/uRP+MVf/EVe6ZVeiUc+8pH8wz/8w29z1VVXXXXVVVc9EJWrrrrqqquuuuqqq6666qr/Ia655poHv/Zrv/Z7vfiLv/hrv9iLvdhr8wDnz5/nD/7gD3i1V3s1nvKUp/C1X/u1AJw8eZJXfuVX5qqrrrrqqquuer6oXHXVVVddddVVV1111VVX/Te65pprHvzar/3a7/XiL/7ir/NiL/Zir8VzOX/+PKdOneLChQs87WlP41d+5VcAeNM3fVNe+ZVfmVOnTgHwmZ/5ma9z33333cpVV1111VVXXfVAVK666qqrrrrqqquuuuqqq/6LXXPNNQ9+7dd+7fd68Rd/8dd+sRd7sdcGOH/+PADnz5/n1KlTnD9/HoA/+ZM/4Y//+I85f/48p06d4k3f9E15szd7M+677z5OnTrFfffdd+uP/uiPfvY//MM//DZXXXXVVVddddVzo3LVVVddddVVV1111VVXXfVf4Jprrnnwa7/2a7/Xi7/4i7/2i73Yi702wPnz5/nDP/xDzp8/z1u8xVsA8MQnPpFHPepR/Mmf/Am/+Iu/CMDJkyd50zd9U97szd6M+/3Wb/3WZ//2b//299x33323ctVVV1111VVXvSDoQQ96EFddddVVV1111VVXXXXVVf8Zrrnmmge/9mu/9nu9+Iu/+Gu/2Iu92GsDnD9/nj/8wz/kD//wD3nVV31V3uIt3oLz58/zh3/4h7zqq74qv/RLv8Qf//EfA3Dy5Ene9E3flFd+5VcG4L777rv1t37rt777R3/0Rz+Hq6666qqrrrrqRYEe9KAH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+q3v/tEf/dHP4aqrrrrqqquuuup/HvSgBz2Iq6666qqrrrrqqquu+p/smmuuefBrv/Zrv9c7vdM7fTbAr/zKr/Bnf/ZnXLhwgf8IJ0+e5NM//dN5oN3dXZ7b8ePHeW6/9Vu/9d0A9913361nz559BsB9991369mzZ2+97777buWqq6666qqrrrrqvxd60IMexFVXXXXVVVddddVVV/1PdM011zz4tV/7td/rnd7pnT77woUL/Nmf/Rm/8iu/wn+0V3iFV+AFOXnyJA908uRJAGxz8uRJ7nfy5ElOnjzJczt79uwz7rvvvqffd999t/7DP/zD79x33323/sM//MNvc9VVV1111VVXXfVfAz3oQQ/iqquuuuqqq6666qqr/ie55pprHvzar/3a7/VO7/ROn33hwgX+7M/+jF/91V/lRWGb/04nT54E4MSJE5w8eZITJ05w8uRJTp48ycMf/nAA/uEf/uG377vvvlt/67d+63v+4R/+4be56qqrrrrqqquu+s+DHvSgB3HVVVddddVVV1111VX/E1xzzTUPfsd3fMfPep3XeZ33vnDhAn/2Z3/Gr/7qr/IfyTb/XU6ePMmJEyd42MMexiu+4ity8uRJfuu3fuu7v/7rv/59uOqqq6666qqrrvrPgR70oAdx1VVXXXXVVVddddVV/52uueaaB7/jO77jZ73O67zOe1+4cIE/+7M/41d/9Vf572Cb/yqv8AqvwBu90Rtx9913//ZnfuZnvg5XXXXVVVddddVV//GoXHXVVVddddVVV1111X+Ta6655sHv+I7v+Fmv8zqv894XLlzgV3/1V/nVX/1VACTxQLb5ryCJF8Y2/1H+7M/+jIc//OGcOHHitV/8xV/8tf/+7//+t7nqqquuuuqqq676j0Xlqquuuuqqq6666qqr/otdc801D37t137t93qnd3qnz75w4QK/+qu/yq/+6q/ywkjiX2Kb/2ySeEFs869x8uRJXuEVXoELFy5w33333cpVV1111VVXXXXVfzwqV1111VVXXXXVVVdd9V/kmmuuefBrv/Zrv9c7vdM7ffaFCxf41V/9VX71V3+V/yiSeGFs859JEi+IbR7o5MmTfOiHfigXLlzgb/7mb777vvvuu5Wrrrrqqquuuuqq/3hUrrrqqquuuuqqq6666r/AO77jO37WO73TO302wK/+6q/yq7/6q/xX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q6666qp/g8c//vG3vtRLvdSDX//1X5+Xe7mX42lPexpPe9rTuHjxIgAXL17k4sWLvCAnTpzgfidOnODEiROcOHECgBMnTnDy5EmOHz/OiRMneKCLFy9y8eJFrr32WgAODg4AeMYzngHAH//xH3P33XcDYBvb2OaBtre3ueGGG9ja2mJ7e5tHP/rRAFy4cIGTJ08CcN999936W7/1W9/9D//wD7/zD//wD7/NVVddddVVV1111f9OVK666qqrrrrqqquuuupf6ZprrnlwKeXBj3/841kulzziEY/gxIkTvMM7vAP/HhcvXgTg4sWLPOQhD+F+h4eHANx3330cHBwA8Ed/9Efcc8892MY2trGNbR5oa2uLra0trr/+eq6//npuuOEGnp/77rvv1t/6rd/67n/4h3/47X/4h3/4Ha666qqrrrrqqqv+b0APetCDuOqqq6666qqrrrrqqn+N13md13nv9Xr9Xl3Xvfb29jYbGxs8+MEP5uEPfzg7OzvMZjMk0VrjBRmGAdsALJdLjo6OODo6wjaHh4ccHBxweHjIwcEBmYltbJOZ2MY2trGNbWyzubnJtddey9bWFtdddx3XX38997tw4QLTNN16zTXXPPi+++679ezZs7f+/d///W//wz/8w+/8wz/8w29z1VVXXXXVVVdd9X8Tlauuuuqqq6666qqrrvpXOnv27K0v9VIvdesdd9zB/S5cuMAznvEMHvzgB3Ps2DF2dnYopTCOI0dHRxwcHLC3t8fBwQGHh4esVitWqxXDMDCOI9M00VqjtUZrjcwkMwGQhG0ANjc3sc0111zD5uYm1157LZubm2xtbfH83HfffbeePXv21r//+7//7X/4h3/4nX/4h3/4ba666qqrrrrqqqv+/6By1VVXXXXVVVddddVV/0p///d//9vv+I7v+Fmv//qvz3333ceFCxcAkIQkJCEJSUhCEgCSAJDEA0nifovFgsxkPp9z8uRJbLOxscHGxgbXXHMNL8x999136z/8wz/89n333XfrP/zDP/zOP/zDP/w2V1111VVXXXXVVf+/oQc96EFcddVVV1111VVXXXXVv9Y111zz4Hd8x3f8rNd5ndd5b55pGAZqrXRdx2w2A0AS4zgyDAPr9ZphGLBNa41aK5nJbDZjPp/z3C5evMiJEyd4oPvuu+9WgH/4h3/47X/4h3/4HcD33XffM/7hH/7ht7nqqquuuuqqq6666rmhBz3oQVx11VVXXXXVVVddddW/1TXXXPPgd3zHd/ysa6655sEv9mIv9tr8O9133323Apw9e/bWv//7v/9tgLNnzz7jvvvuu/Uf/uEffpurrrrqqquuuuqqq/410IMe9CCuuuqqq6666qqrrrrqP8I111zzYIAzZ848+Jprrnkw4DNnzjyY53L27NlnANx33323coX/4R/+4Xe46qqrrrrqqquuuuo/GnrQgx7EVVddddVVV1111VVXXXXVVVddddVVV131fxKVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwJp6/4GK24+awAAAABJRU5ErkJggg==) diff --git a/docs/kcl-std/functions/std-sketch-loft.md b/docs/kcl-std/functions/std-sketch-loft.md index a07586e1d..d236deccd 100644 --- a/docs/kcl-std/functions/std-sketch-loft.md +++ b/docs/kcl-std/functions/std-sketch-loft.md @@ -61,7 +61,7 @@ loft([triangleSketch, squareSketch]) ``` -![Rendered example of loft 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAE5BElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV131/8I111zz4Bd7sRd77TNnzjzot3/7t7/nvvvuu5Wrrrrqqquuuuqqq/6vQw960IO46qqrrrrqqquuuur/tnd8x3f8rHd6p3f6bJ7pvvvuu/W3fuu3vvtHf/RHP4errrrqqquuuuqqq/4vQw960IO46qqrrrrqqquuuur/pmuuuebBn/M5n/Nb11xzzYMB/vqv/5qLFy/yOq/zOgDcd999t37913/9+/zDP/zDb3PVVVddddVVV1111f9FlOPHj3PVVVddddVVV1111f897/iO7/hZn/RJn/TTm5ubx3d3d/nhH/5h/viP/5hnPOMZ/PVf/zWPfvSjOXXq1PEXe7EXe+3Nzc3j//AP//A7XHXVVVddddVVV131fw160IMexFVXXXXVVVddddVV/3e82Iu92Gt/7ud+7m/xTL/927/Nb//2b/Pcjh8/zku/9Evz2q/92gDcd999t/7Wb/3Wd//oj/7o53DVVVddddVVV1111f8VlOPHj3PVVVddddVVV1111f9+11xzzYPf533e56ve933f96sBdnd3+eEf/mH++q//mudntVpx66238td//ddcd9113Hjjjcdf/MVf/LWvueaaB996661/c3h4uMtVV1111VVXXXXVVf/bUY4fP85VV1111VVXXXXVVf+7vc7rvM57f+7nfu5vPeQhD3lpgN/+7d/mh3/4h9nd3eUFkYQk1us1z3jGM1itVjz4wQ/mIQ95yEu/4iu+4ltvbm4e/4d/+Iff4aqrrrrqqquuuuqq/83Qgx70IK666qqrrrrqqquu+t/pmmuuefCHf/iHf9eLvdiLvTbArbfeyk//9E+zu7vLc5PEv+T48eO81Eu9FK/92q8NwH333XfrZ33WZ73OfffddytXXXXVVVddddVVV/1vRDl+/DhXXXXVVVddddVVV/3v847v+I6f9Umf9Ek/fc011zx4d3eXX/7lX+aXf/mXWa1WAEhCEpKQxItitVrxjGc8g0uXLnHddddx6tSp46/4iq/41pubm8f/4R/+4Xe46qqrrrrqqquuuup/G/SgBz2Iq6666qqrrrrqqqv+97jmmmse/OEf/uHf9WIv9mKvDfDXf/3X/PRP/zSS+I8gCYDjx4/zUi/1UrzWa70WAPfdd9+tX//1X/8+//AP//DbXHXVVVddddVVV131vwXl+PHjXHXVVVddddVVV131v8M7vuM7ftYnfdIn/fQ111zz4N3dXX7kR36EP/mTP0ES/1aSkIQkJHG/1WrFM57xDP7mb/6GRz3qUZw6der4i73Yi7325ubm8X/4h3/4Ha666qqrrrrqqquu+t8APehBD+Kqq6666qqrrrrqqv/ZXuzFXuy1P/zDP/y7rrnmmgcD/PZv/za/8zu/w7+FJP61jh8/zku91EvxWq/1WgDcd999t/7oj/7o5/zWb/3Wd3PVVVddddVVV1111f9klOPHj3PVVVddddVVV1111f9M11xzzYPf7M3e7KM+4iM+4rs3NzeP7+7u8iM/8iP8zd/8DS8qSUhCEpL4t1itVtx222387d/+Lddddx033njj8Vd8xVd862uuuebBt956698cHh7uctVVV1111VVXXXXV/0ToQQ96EFddddVVV1111VVX/c/zOq/zOu/94R/+4d/FM/32b/82v/M7v8O/RBL/ESTx/Bw/fpyXfMmX5LVe67UAuO+++279rd/6re/+0R/90c/hqquuuuqqq6666qr/adCDHvQgrrrqqquuuuqqq676n+Oaa6558Id/+Id/14u92Iu9NsCtt97Kz/zMz7C7u8sLIol/L0n8axw/fpzXfM3X5KVe6qUAuO+++279rM/6rNe57777buWqq6666qqrrrrqqv8pKMePH+eqq6666qqrrrrqqv9+s9nswe/6ru/6VR//8R//3ddcc82Dd3d3+eM//mN+5md+htVqxQNJQhKSkMS/hSQkIQlJ/GutViue+MQnIoljx45x6tSp46/4iq/41sePH3/ppzzlKZemabqVq6666qqrrrrqqqv+u6EHPehBXHXVVVddddVVV13132c2mz34ZV7mZb7rnd/5nV/75ptvBuCv//qv+Zmf+RkeSBL/HpL4jyCJ53b8+HFe8iVfktd8zdcE4OLFi/zgD/7grX/0R3/0Psvl8re56qqrrrrqqquuuuq/C3rQgx7EVVddddVVV1111VX/9W688cbPOnPmzHu/7uu+7oNf7dVeDYDd3V1+5md+hltvvRVJ/HtJ4t9LEi+qBz3oQbzFW7wFx48f5+LFi/zFX/wFv/iLv3jrhQsXPmd/f/+7ueqqq6666qqrrrrqvxp60IMexFVXXXXVVVddddVV/zVms9mDT58+/V433XTTZ99888286Zu+KceOHQPgt3/7t/nd3/1d/j0k8e8liX+P48eP85Iv+ZK85mu+JgAXL17kR3/0R3niE5946/7+/ndfuHDhc7jqqquuuuqqq6666r8K5fjx41x11VVXXXXVVVdd9Z9rNps9+LrrrvuoRzziET99yy23vPbLv/zL86Zv+qbM53N2d3f5kR/5Ef72b/+WfwtJSEIS/1aSkIQk/j0ksV6vue222/jbv/1bHvWoR3H8+HFe/uVfnog4vlqtXrvruveOiOPTND0jM3e56qqrrrrqqquuuuo/E3rQgx7EVVddddVVV1111VX/OWaz2YNPnz79XjfeeONnS+LFX/zFedM3fVPu9zu/8zv8zu/8Dv8akvj3ksR/BEm8MMeOHeMlX/Ilec3XfE0ALl68yJ//+Z/z67/+64zjeOtyufztCxcufM40Tbdy1VVXXXXVVVddddV/BvSgBz2Iq6666qqrrrrqqqv+Y81mswffeOONn3X69On3Bjh+/Dhv+qZvys033wzArbfeys/+7M+yu7vLi0IS/16S+I8giX+tY8eO8RZv8RY86EEPAuBpT3saP/qjP8qFCxcA2N/f/+69vb3vWa1Wv81VV1111VVXXXXVVf+R0IMe9CCuuuqqq6666qqrrvqPsb29/do33njjZ+3s7Lw2gCRe7dVejVd7tVfjfru7u/zO7/wO/xJJ/E8giX8vSQC8xmu8BseOHQPg4sWL/Pmf/zm/9mu/xv3Gcbz14sWLn7O/v//dXHXVVVddddVVV131HwE96EEP4qqrrrrqqquuuuqqf58bbrjhs06fPv3e8/n8wTyTJN75nd+ZW265hatesKc+9al8y7d8C/ezzTRNt+7v73/3xYsXP4errrrqqquuuuqqq/490IMe9CCuuuqqq6666qqrrvrX6/v+wadPn36vG2+88bMBJAEgiWPHjvGmb/qm3Hzzzdx77738zd/8DS9MRFBKISKQREQAIImIwDb/U9nGNpmJbTKT1hqZyb/kpV7qpbj22mu5ePEi3/zN38zFixexzf2mabp1f3//uy9evPg5XHXVVVddddVVV131b4Ee9KAHcdVVV1111VVXXXXVi67v+wefPn36vW688cbP5pkkASCJY8eO8UEf9EEA3HvvvXzZl30Zf/M3f8NzK6Uwn8/p+55aK7VWSilEBBFBRBARjOOIJP6zSOLfq7VGZtJaY5omxnFkGAaWyyW2eUGuvfZavuIrvoJrr72Wixcv8s3f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//7vA/BO7/ROn8VVV1111VX/0xFcddVVV131P9o111zz4Bd7sRd7bYDf/M3f5PmRxL+VJP6tJPG/gST+LSTxryWJfy1J/GeTxL+WJP41JPGfRRIvKkn8Z5HEi0ISLypJvKgk8aKQxItKEi8KSbwoJPGikIQkXhSSeFFI4kUhiReFJCTxL5GEJP4lkpDEv0QSkviXSEIS/xJJSOJFIYkXhSReFJKQxL9EEpJ4UUhCEi8KSUjiRSEJSbwoJCGJF5UkJCGJF4UkJCGJF5UkJPGvIQlJSOJfQxK33XYbAC/2Yi/22i/+4i/+2lx11VVXXfU/GZWrrrrqqqv+R7Pt++6779ZLly492DanTp3igSTxbyWJ/w6S+LeQxL+FJP61JPGvJYl/LUn8a0niP5sk/jUk8a8hiReVJF5UkvjXkMSLShL/0STxopLEi0ISLypJvCgk8aKQxItCEi8KSfxHk8SLQhIvCkm8KCTxopDEi0IS/5Ek8aKQxItCEi8qSbwoJPGiksSLShL/WSTxryGJfy1J/GtJ4l9LEg9km/39fZbL5a333nvv07nqqquuuup/MipXXXXVVVf9j3fNNdc8+JprruHzP//zueqqq6666qqrrvqfYnt7+8GSxFVXXXXVVf+ToQc96EFcddVVV131P9uLvdiLvfaLvdiLvdbrvM7rvDdXXXXVVVddddVV/wOcPXv21q//+q9/n/vuu+9Wrrrqqquu+p8MPehBD+Kqq6666qqrrrrqqquuuuqqq6666qqrrvo/icpVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VfwjI/OWNLucqSsAAAAASUVORK5CYII=) +![Rendered example of loft 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAE490lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV131/8I111zz4Bd7sRd77TNnzjzot3/7t7/nvvvuu5Wrrrrqqquuuuqqq/6vQw960IO46qqrrrrqqquuuur/tnd8x3f8rHd6p3f6bJ7pvvvuu/W3fuu3vvtHf/RHP4errrrqqquuuuqqq/4vQw960IO46qqrrrrqqquuuur/pmuuuebBn/M5n/Nb11xzzYMB/vqv/5qLFy/yOq/zOgDcd999t37913/9+/zDP/zDb3PVVVddddVVV1111f9FlOPHj3PVVVddddVVV1111f897/iO7/hZn/RJn/TTm5ubx3d3d/nhH/5h/viP/5hnPOMZ/PVf/zWPfvSjOXXq1PEXe7EXe+3Nzc3j//AP//A7XHXVVVddddVVV131fw160IMexFVXXXXVVVddddVV/3e82Iu92Gt/7ud+7m/xTL/927/Nb//2b/Pcjh8/zku/9Evz2q/92gDcd999t/7Wb/3Wd//oj/7o53DVVVddddVVV1111f8VlOPHj3PVVVddddVVV1111f9+11xzzYPf533e56ve933f96sBdnd3+eEf/mH++q//mudntVpx66238td//ddcd9113Hjjjcdf/MVf/LWvueaaB996661/c3h4uMtVV1111VVXXXXVVf/bUY4fP85VV1111VVXXXXVVf+7vc7rvM57f+7nfu5vPeQhD3lpgN/+7d/mh3/4h9nd3eUFkYQk1us1z3jGM1itVjz4wQ/mIQ95yEu/4iu+4ltvbm4e/4d/+Iff4aqrrrrqqquuuuqq/83Qgx70IK666qqrrrrqqquu+t/pmmuuefCHf/iHf9eLvdiLvTbArbfeyk//9E+zu7vLc5PEv+T48eO81Eu9FK/92q8NwH333XfrZ33WZ73OfffddytXXXXVVVddddVVV/1vRDl+/DhXXXXVVVddddVVV/3v847v+I6f9Umf9Ek/fc011zx4d3eXX/7lX+aXf/mXWa1WAEhCEpKQxItitVrxjGc8g0uXLnHddddx6tSp46/4iq/41pubm8f/4R/+4Xe46qqrrrrqqquuuup/G/SgBz2Iq6666qqrrrrqqqv+97jmmmse/OEf/uHf9WIv9mKvDfDXf/3X/PRP/zSS+I8gCYDjx4/zUi/1UrzWa70WAPfdd9+tX//1X/8+//AP//DbXHXVVVddddVVV131vwXl+PHjXHXVVVddddVVV131v8M7vuM7ftYnfdIn/fQ111zz4N3dXX7kR36EP/mTP0ES/1aSkIQkJHG/1WrFM57xDP7mb/6GRz3qUZw6der4i73Yi7325ubm8X/4h3/4Ha666qqrrrrqqquu+t8APehBD+Kqq6666qqrrrrqqv/ZXuzFXuy1P/zDP/y7rrnmmgcD/PZv/za/8zu/w7+FJP61jh8/zku91EvxWq/1WgDcd999t/7oj/7o5/zWb/3Wd3PVVVddddVVV1111f9klOPHj3PVVVddddVVV1111f9M11xzzYPf7M3e7KM+4iM+4rs3NzeP7+7u8iM/8iP8zd/8DS8qSUhCEpL4t1itVtx222387d/+Lddddx033njj8Vd8xVd862uuuebBt956698cHh7uctVVV1111VVXXXXV/0ToQQ96EFddddVVV1111VVX/c/zOq/zOu/94R/+4d/FM/32b/82v/M7v8O/RBL/ESTx/Bw/fpyXfMmX5LVe67UAuO+++279rd/6re/+0R/90c/hqquuuuqqq6666qr/adCDHvQgrrrqqquuuuqqq676n+Oaa6558Id/+Id/14u92Iu9NsCtt97Kz/zMz7C7u8sLIol/L0n8axw/fpzXfM3X5KVe6qUAuO+++279rM/6rNe57777buWqq6666qqrrrrqqv8pKMePH+eqq6666qqrrrrqqv9+s9nswe/6ru/6VR//8R//3ddcc82Dd3d3+eM//mN+5md+htVqxQNJQhKSkMS/hSQkIQlJ/GutViue+MQnIoljx45x6tSp46/4iq/41sePH3/ppzzlKZemabqVq6666qqrrrrqqqv+u6EHPehBXHXVVVddddVVV13132c2mz34ZV7mZb7rnd/5nV/75ptvBuCv//qv+Zmf+RkeSBL/HpL4jyCJ53b8+HFe8iVfktd8zdcE4OLFi/zgD/7grX/0R3/0Psvl8re56qqrrrrqqquuuuq/C3rQgx7EVVddddVVV1111VX/9W688cbPOnPmzHu/7uu+7oNf7dVeDYDd3V1+5md+hltvvRVJ/HtJ4t9LEi+qBz3oQbzFW7wFx48f5+LFi/zFX/wFv/iLv3jrhQsXPmd/f/+7ueqqq6666qqrrrrqvxp60IMexFVXXXXVVVddddVV/zVms9mDT58+/V433XTTZ99888286Zu+KceOHQPgt3/7t/nd3/1d/j0k8e8liX+P48eP85Iv+ZK85mu+JgAXL17kR3/0R3niE5946/7+/ndfuHDhc7jqqquuuuqqq6666r8K5fjx41x11VVXXXXVVVdd9Z9rNps9+LrrrvuoRzziET99yy23vPbLv/zL86Zv+qbM53N2d3f5kR/5Ef72b/+WfwtJSEIS/1aSkIQk/j0ksV6vue222/jbv/1bHvWoR3H8+HFe/uVfnog4vlqtXrvruveOiOPTND0jM3e56qqrrrrqqquuuuo/E3rQgx7EVVddddVVV1111VX/OWaz2YNPnz79XjfeeONnS+LFX/zFedM3fVPu9zu/8zv8zu/8Dv8akvj3ksR/BEm8MMeOHeMlX/Ilec3XfE0ALl68yJ//+Z/z67/+64zjeOtyufztCxcufM40Tbdy1VVXXXXVVVddddV/BvSgBz2Iq6666qqrrrrqqqv+Y81mswffeOONn3X69On3Bjh+/Dhv+qZvys033wzArbfeys/+7M+yu7vLi0IS/16S+I8giX+tY8eO8RZv8RY86EEPAuBpT3saP/qjP8qFCxcA2N/f/+69vb3vWa1Wv81VV1111VVXXXXVVf+R0IMe9CCuuuqqq6666qqrrvqPsb29/do33njjZ+3s7Lw2gCRe7dVejVd7tVfjfru7u/zO7/wO/xJJ/E8giX8vSQC8xmu8BseOHQPg4sWL/Pmf/zm/9mu/xv3Gcbz14sWLn7O/v//dXHXVVVddddVVV131HwE96EEP4qqrrrrqqquuuuqqf58bbrjhs06fPv3e8/n8wTyTJN75nd+ZW265hatesKc+9al8y7d8C/ezzTRNt+7v73/3xYsXP4errrrqqquuuuqqq/490IMe9CCuuuqqq6666qqrrvrX6/v+wadPn36vG2+88bMBJAEgiWPHjvGmb/qm3Hzzzdx77738zd/8DS9MRFBKISKQREQAIImIwDb/U9nGNpmJbTKT1hqZyb/kpV7qpbj22mu5ePEi3/zN38zFixexzf2mabp1f3//uy9evPg5XHXVVVddddVVV131b4Ee9KAHcdVVV1111VVXXXXVi67v+wefPn36vW688cbP5pkkASCJY8eO8UEf9EEA3HvvvXzZl30Zf/M3f8NzK6Uwn8/p+55aK7VWSilEBBFBRBARjOOIJP6zSOLfq7VGZtJaY5omxnFkGAaWyyW2eUGuvfZavuIrvoJrr72Wixcv8s3f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ddVVV/1PR3DVVVddddX/aNdcc82DX+zFXuy1AX7zN3+T50cS/1aS+LeSxP8Gkvi3kMS/liT+tSTxn00S/1qS+NeQxH8WSbyoJPGfRRIvCkm8qCTxopLEi0ISLypJvCgk8aKQxItCEpJ4UUjiRSGJF4UkXhSSkMS/RBKS+JdIQhL/EklI4l8iCUn8SyQhiReFJF4UknhRSEIS/xJJSOJFIQlJvCgkIYkXhSQk8aKQhCReVJKQhCReFJKQhCReVJKQxL+GJCQhiX8NSdx2220AvNiLvdhrv/iLv/hrc9VVV1111f9kVK666qqrrvofzbbvu+++Wy9duvRg25w6dYoHksS/lST+O0ji30IS/xaS+NeSxL+WJP61JPGvJYn/bJL415DEv4YkXlSSeFFJ4l9DEi8qSfxHk8SLShIvCkm8qCTxopDEi0ISLwpJvCgk8R9NEi8KSbwoJPGikMSLQhIvCkn8R5LEi0ISLwpJvKgk8aKQxItKEi8qSfxnkcS/hiT+tSTxryWJfy1JPJBt9vf3WS6Xt957771P56qrrrrqqv/JqFx11VVXXfU/3jXXXPPga665hs///M/nqquuuuqqq6666n+K7e3tB0sSV1111VVX/U+GHvSgB3HVVVddddX/bC/2Yi/22i/2Yi/2Wq/zOq/z3lx11VVXXXXVVVf9D3D27Nlbv/7rv/597rvvvlu56qqrrrrqfzL0oAc9iKuuuuqqq6666qqrrrrqqquuuuqqq6666v8kKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9X8Y89Z5Ux0qEdfgAAAABJRU5ErkJggg==) ```kcl // Loft a square, a circle, and another circle. @@ -87,7 +87,7 @@ loft([ ``` -![Rendered example of loft 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAIP30lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVdd9b/eNddc82Ce6cyZMw/mma655poH8yK47777buUBzp49e+t99913K1ddddVVV1111VVX/W9H5aqrrrrqqquuuuqq/7GuueaaBwO82Iu92GufOXPmQQDXXHPNg6+55poHnzlz5sHXXHPNg3ku9913363XXHPNg/kPct99990KcPbs2Vvvu+++WwH+4R/+4XcA7rvvvlv/4R/+4be56qqrrrrqqquuuup/KvSgBz2Iq6666qqrrrrqqqv+e11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1+RdcvHgRgIsXLwJw8eJF7nfx4kX+NU6cOMH9Tpw4AcCJEyc4ceIE/5L77rvv1rNnz95633333foP//APv3Pffffd+g//8A+/zVVXXXXVVVddddVV/93Qgx70IK666qqrrrrqqquu+q91zTXXPPi1X/u13wvgnd7pnT6b5+PixYsAPO1pT+PixYsAPP3pTwfg4sWLXLx4kf9KJ06cAOChD30oAA95yEMAOHHiBA996EN5fu67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4be56qqrrrrqqquuuuq/EnrQgx7EVVddddVVV1111VX/ua655poHv/Zrv/Z7XXPNNQ9+ndd5nffmuVy8eJGnP/3pXLx4kac97Wk8/elP5z+bbf4jnThxghMnTnDixAke8pCHcOLECR760IfyQPfdd9+t//AP//Db//AP//A7v/Vbv/XdXHXVVVddddVVV131nw096EEP4qqrrrrqqquuuuqq/xzv+I7v+Fkv/uIv/tov9mIv9to8wMWLF/nLv/xLnva0p/H0pz+d/6tOnDjB8ePHOXHiBC/7si/LQx/6UO5333333Xr27Nlbf+u3fut7fuu3fuu7ueqqq6666qqrrrrqPwN60IMexFVXXXXVVVddddVV/3GuueaaB7/Yi73Ya3/4h3/4d/FMFy9e5C//8i952tOextOf/nT+vzpx4gTHjx/n5V7u5XjZl31Z7nfffffd+lu/9Vvf/du//dvfc999993KVVddddVVV1111VX/UdCDHvQgrrrqqquuuuqqq67697vmmmse/GIv9mKv/eEf/uHfxTM97WlP4y//8i/5y7/8S656TidOnOAhD3kID33oQ3nZl31ZAO67775bf+u3fuu7f/RHf/RzuOqqq6666qqrrrrqPwJ60IMexFVXXXXVVVddddVV/z4v9mIv9tqf+7mf+1s802/8xm/wV3/1V1y8eJH/DWzz3+nEiRO87Mu+LK/3eq8HwH333Xfr13/917/PP/zDP/w2V1111VVXXXXVVVf9e1COHz/OVVddddVVV1111VX/di/2Yi/22p/7uZ/7WwAXL17kG77hG3j84x/ParXifwtJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhidVqxdOf/nT+6q/+iuuvv56bbrrp+Iu92Iu99ubm5vF/+Id/+B2uuuqqq6666qqrrvq3ohw/fpyrrrrqqquuuuqqq/5tXuzFXuy1P/dzP/e3AH7jN36DH/iBH2C1WnHVv81qteLpT386y+WSl3iJlzh+zTXXPPjWW2/9m7Nnz97KVVddddVVV1111VX/FpTjx49z1VVXXXXVVVddddW/zUd8xEd81zXXXPPg3/iN3+A3f/M3uerfb7Va8fSnPx2Aa6+9dndzc/P4n/7pn/4MV1111VVXXXXVVVf9W1C56qqrrrrqqquuuurf7MVe7MVeG+C3fuu3kMT/Zrb5n+Sv/uqveL3Xe70HA699zTXXPPi+++67lauuuuqqq6666qqr/rWoXHXVVVddddVVV131b/JiL/Zir33ffffdenh4+GD+D5DE/yS7u7tcvHiRa6655sFcddVVV1111VVXXfVvRXDVVVddddVVV1111b/J2bNnb93d3eUhD3kID3nIQ7jqP9bx48c5ceIEAPfdd9+tXHXVVVddddVVV131b0Fw1VVXXXXVVVddddW/yX333Xfrn/7pnz4Y4G3f9m05fvw4V/3HOH78OG/3dm8HwF/+5V9y1VVXXXXVVVddddW/GcFVV1111VVXXXXVVf8mXde991Of+lQuXrzIiRMneP/3f38e+tCHIglJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxP8Ux48f5/3e7/14yEMewsWLF/mBH/gBSinvzVVXXXXVVVddddVV/xaU48ePc9VVV1111VVXXXXVv96xY8e+yvaDH//4x/PiL/7inDhxgoc85CHM53N2d3dZrVb8byIJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkceLECV71VV+Vd3u3d2OxWLC7u8tXfMVXkJnYPr5arb6Hq6666qqrrrrqqqv+tdCDHvQgrrrqqquuuuqqq67617vhhhvc9z21Vk6fPs3LvdzL8bqv+7oA7O7u8vSnP52/+qu/4ulPfzpXvWDHjx/nZV7mZXjd131d7ve7v/u7/NZv/RbTNDGOI/v7+7fec889D+Gqq6666qqrrrrqqn8t9KAHPYirrrrqqquuuuqqq/51aq3vfd11131X3/eUUiilUErh5MmTvM7rvA4v9VIvxf12d3f5y7/8S2699Vae/vSncxUcP36cl3mZl+FlX/ZlOX78OPf7+7//e37v936Pixcv0lpjmibGcWS9XnPbbbe9Tmb+NlddddVVV1111VVX/WugBz3oQVx11VVXXXXVVVdd9a+zvb39XSdOnHjvrusopVBKoZRCRBARnDhxgpd6qZfiNV7jNbh06RLHjh0DYHd3l6c//en81V/9Fbfeeiv/E9jmP9vx48c5ceIED37wg3nZl31Zjh8/zv329vb4h3/4B/7+7/+e3d1dMpPWGpnJNE1M08R6vebChQu/vbu7+zpcddVVV1111VVXXfWvgR70oAdx1VVXXXXVVVddddW/zg033OC+76m1UkqhlEJEEBFEBBGBJE6cOMGDHvQgbrnlFl78xV+cB9rd3QXg6U9/OrfeeisXL17k1ltv5f+C48eP8zIv8zIAPPjBD+YhD3kID7S/v8/jH/949vb2+Id/+Adsk5lkJplJa43MZJompmliHEf29/dvveeeex7CVVddddVVV1111VX/GuhBD3oQV1111VVXXXXVVVe96Eop73399dd/V9d11FoppVBKISKICCICSUQEkpBERPDiL/7ivMmbvAl7e3vs7e1x00038dx2d3cBePrTnw7ArbfeysWLF9nd3WV3d5f/SY4fP87x48c5ceIEx48f5/jx4xw/fpyHPOQhPD/7+/vs7+9zww038Gd/9mf86Z/+KZmJbTKTzMQ2rTUyk9YarTVaa4zjyGq14o477nid1tpvc9VVV1111VVXXXXVi4rKVVddddVVV1111VX/KovF4rUigohAEpKQhCQkASCJ+0kC4Oabbwbgj/7oj3jc4x7H8ePH2dnZ4dixY9x0003s7Oxwww03APAyL/MyALzMy7wM99vd3QXg4sWL7O7uArC7u8vu7i4AFy9e5H67u7vcb3d3lxfm+PHjPNDx48cBOHHiBMePH+d+x48f5/jx45w4cYLjx4/zghwcHABw9913s7+/z913382dd96JbV7u5V6OG264gftJwjaSkIRtJCEJSUQEmUlEUEphe3v7s3Z3d3+bq6666qqrrrrqqqteVFSuuuqqq6666qqrrvpX2dnZee+IQBKSkMQDSQJAEpJ4Qfb29tjf3+fuu+/miU98IhHBsWPHiAhuuOEGtre32dnZYWtri62tLY4fPw7A8ePH+Z/g8PAQgPvuu4/9/X0ODg7Y39/n7rvvxja2sY1t7nfXXXcBcOONNyIJ20jCNpKQhCQkIQkASUiilMJ8Pn8wV1111VVXXXXVVVf9a1C56qqrrrrqqquuuupFVkp5b0lIQhKSkIQkJCEJAEncTxKSuOWWWwC4/fbbeUH29/eJCJ785CcTEUQEpRRKKRw7doxSCjs7O2xvb1NKoes6Tpw4QUQwn8+JCCKCWiuSeFHZxja2GceRzGS9XnN0dERrjdYah4eH3HfffbTW2N/fp7VGZpKZZCaZiW2em23ut7+/D8D29jYAkrCNJGzzQJKQhCQigohgNps9WNJr2/5trrrqqquuuuqqq656UVC56qqrrrrqqquuuupFtlgsXquUQkQgCUlIQhKSAJDE/SRxv52dHQD29vaQxL/W4eEhtVbGcWRvb4++7+n7nt3dXebzOfP5nMViwXw+Zz6fM5/Pmc1m9H1PrZVSChGBbWzTWmMcR4ZhYLVasVqtWK1WLJdLlsslq9WK9XrNMAwMw8A4jkzTxDRNPJBt/j0kYRtJSEISkpCEJCQhCUmUUjh27Nhn7e7u/jZXXXXVVVddddVVV70oCK666qqrrrrqqquuepHt7Oy8d0QgCUlI4oEkASAJSfxb2MY2L4htXhDb/HvY5rnZ5n62eSDbPJBtHsg2D7S/v8/+/j7b29vs7OxwP0ncTxKSkIQkJCGJiCAimM/nD+aqq6666qqrrrrqqhcVwVVXXXXVVVddddVVL5KIeG9JSEISkpCEJCQhCQBJPJAkXvzFXxyA22+/nf8otrmfbV5UknhhbPPcbPNAtnkg27yo9vf3Adje3kYS95OEJB5IEpKQRERQSmE2mz04Il6bq6666qqrrrrqqqteFARXXXXVVVddddVVV71INjY2XquUQkQgCUlIQhL3k8T9JCGJB7p06RIvjG1eENvYBsA2z802ALb5j2Kb+9nmP8L+/j4AOzs7AEhCEveThCQkIQlJSEISkiilsLOz81lcddVVV1111VVXXfWiILjqqquuuuqqq6666kWys7Pz3hGBJCQhiftJQhIAkpDEAx07dgyAvb09/iPZxjb/0Wzzgtjm32Nvbw+A7e1tJHE/SUgCQBKSkIQkJCGJiCAimM1mD+aqq6666qqrrrrqqhcFwVVXXXXVVVddddVV/6KIeG9JSEISkpCEJCQhCQBJPJAkJLGzswPApUuXeFHZ5l/LNv9atnl+bPOf4a677gLghhtuAEASDySJB5KEJCQhiYhgPp8/OCJem6uuuuqqq6666qqr/iUEV1111VVXXXXVVVf9izY2Nl6rlEJEIAlJSEIS95PE/SQhifvdfPPNANx+++38V7CNbf41bGOb52ab58c2L4xtXpjt7W3uJwkASQBIQhKSkIQkJBERRASlFLa3tz+Lq6666qqrrrrqqqv+JQRXXXXVVVddddVVV/2LdnZ23jsikIQkJHE/SUjifpJ4bjs7O/xHs839bPMfxTb/mfb397mfJO4nCQBJ3E8SAJKQhCQigohgPp8/mKuuuuqqq6666qqr/iUEV1111VVXXXXVVVe9UBHx3pKQhCQkIQlJSEIS95PE/SQhCUncb29vj38L29zPNs+PbV4YSfxPsL+/z/7+Ptvb22xvbyMJSQBIAkASkgCQhCQkIQlJRATz+fzBEfHaXHXVVVddddVVV131whBcddVVV1111VVXXfVCbWxsvFYphYhAEpIAkMT9JCEJAElI4n433XQTALfffjv/FrZ5brYBsI1tXhDb/HvY5j/D3t4eANvb29xPEgCSAJCEJCQhCUlIIiKICEopbG9vfxZXXXXVVVddddVVV70wBFddddVVV1111VVXvVA7OzvvHRFIQhKSkASAJB5IEs/t2LFjAFy6dIn/Crb597LNA9kGwDb/Efb39wHY2dlBEveTBIAknpskJCGJiCAimM/nD+aqq6666qqrrrrqqheG4KqrrrrqqquuuuqqFygi3lsSkpCEJCQhCUkASAJAEg8kCUncfPPNAFy6dIn/TWzzn2Vvbw+Ara0tACRxP0kASEISkpCEJCQh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kEREIAlJSEISkpCEJCQhCQBJSEISkgCQhCQAJCEJAEkASEISAJIAkMTLvuzLcs011/BHf/RH3HHHHQBIAkASAJIAkASAJAAkASAJAEkASEISAJKQhCQAJCEJSUhCEpKQhCQkERFIIiKQREQgiYggIogIIoKIQBIRgSQigoggIogISilEBKUUIoJSCqUUSimUUiilEBGUUiilUEohIogIIoKIICKQhCQkIQlJPD+2AbCNbWxjG9tkJplJZpKZZCa2sY1tbJOZZCa2sU1mYhvbANjm+bGNbQBs80C2eW6SeG6SuJ8knpsknpsknpskACTxQOv1mtlsxk033cTOzg6Pe9zj+LeSxHOTxAPZ5oFs89xsA2Ab29zPNq01IgKA22+/nb/6q7/i6OiIBz3oQcdf+7Vf+61f93Vf9302NjaO/cM//MPvcNVVV1111VVX/X9BOX78OFddddVVV1111f9t11xzzYPf7M3e7KM+93M/97df/MVf/LVXq9XxX//1X+cbvuEbeOITn4htbGOb1hq1VkoplFKICCKCiEASEYEkIgJJSEISkpCEJCQhCUlIQhKSkASAJCQBIAlJAEhCEgCSkASAJAAkIQmAt3qrtwLgV3/1V1mv10jifpIAkASAJAAkASAJAElIAkASAJKQhCQAJCEJSUgCQBKSkEREIAlJSCIikEREIImIICKQhCQigoggIogIIoKIICKICCKCiKCUQkRQSqGUQimFiCAiiAgigoggIogIIoJSChGBJCICSUhCEpKQxPNjm/vZxja2sU1mYhvb2MY2trGNbWxjG9vYJjOxjW1sYxsA29jGNraxjW0AbANgm38NSdxPEveTxHOTxHOTBIAknpsk7re/v89Lv/RLA3D27Fn29vZ4YSTxopDEC2Kb+9nGNvezzf1sA2Cb+03TREQAsFwueeITn8hf/dVfsVwu2dzcPP5ar/Var/06r/M67725uXn87Nmzzzg8PNzlqquuuuqqq676v4zKVVddddVVV131f9Y111zz4Hd8x3f8rNd5ndd5b4Dz58/zB3/wB/zcz/0ctgGwjW1sM00TtVYiAklIQhKSkIQkJCEJAElIQhKSkIQkJCEJSTw3SdxPEveTxP0k8dwkcb83fuM3BuBxj3sce3t7PJAkACQBIAkASQBIAkAS95MEgCQeSBLPTRKSkIQkHkgSAJIAkMT9JCGJ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2zyQbR7INvezzQPZ5oFscz/bPJBt7mebB7LNA9nmgWxzP9s8kG0eyDYPZJsHss0D2eaBbPNAtnkg2zw32zyQbZ6bbS5cuMCNN94IwJkzZx70Yi/2Yq/9D//wD7/NVVddddVVV/3rUbnqqquuuuqqf6OzZ8/e+lu/9Vvf/Tqv8zrvDXDjjTdy1f9ttvmX2Oaqq64CSTw3SVx11b/WP/zDP/z22bNnb+Wqq6666qqr/m2oXHXVVVddddW/0X333Xfrb/3Wb33PfffddytXXXXVVVddddV/in/4h3/4nfvuu+9WrrrqqquuuurfBj3oQQ/iqquuuuqqq6666qqrrrrqqquuuuqqq676P4nKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4p/BMakffxqrmkjAAAAAElFTkSuQmCC) +![Rendered example of loft 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAIP3UlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVdd9b/eNddc82Ce6cyZMw/mma655poH8yK47777buUBzp49e+t99913K1ddddVVV1111VVX/W9H5aqrrrrqqquuuuqq/7GuueaaBwO82Iu92GufOXPmQQDXXHPNg6+55poHnzlz5sHXXHPNg3ku9913363XXHPNg/kPct99990KcPbs2Vvvu+++WwH+4R/+4XcA7rvvvlv/4R/+4be56qqrrrrqqquuuup/KvSgBz2Iq6666qqrrrrqqqv+e11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1+RdcvHgRgIsXLwJw8eJFAC5evMjzs7u7y/2OHz/OA504cYL7nThxAoATJ04AcOLECV6Y++6779azZ8/eet999936D//wD79z33333foP//APv81VV1111VVXXXXVVf/d0IMe9CCuuuqqq6666qqrrvqvdc011zz4tV/7td8L4J3e6Z0+m+fj4sWLADztaU/j4sWLADz96U8H4GlPexr/1U6cOAHAiRMnOHHiBMePH+fEiROcOHGChz70oTw/9913363/8A//8Nv/8A//8Dv33Xffrf/wD//w21x11VVXXXXVVVdd9V8JPehBD+Kqq6666qqrrrrqqv9c11xzzYNf+7Vf+72uueaaB7/O67zOe/NcLl68yF/+5V8C8LSnPY2nP/3p/GezzX+kEydOcOLECU6cOMFDHvIQTpw4wUMf+lAe6L777rv1H/7hH377H/7hH37nt37rt76bq6666qqrrrrqqqv+s6EHPehBXHXVVVddddVVV131n+Md3/EdP+vFX/zFX/vFXuzFXptnunjxIhcvXuTpT386T3va03j605/O/1UnTpzg+PHjnDhxgpd92ZfloQ99KPe77777bj179uytv/Vbv/U9v/Vbv/XdXHXVVVddddVVV131nwE96EEP4qqrrrrqqquuuuqq/zjXXHPNg1/sxV7stT/8wz/8u3imixcv8pd/+Zc87WlP4+lPfzr/X504cYLjx4/zci/3cjzkIQ/hxIkTANx33323/tZv/dZ3//Zv//b33Hfffbdy1VVXXXXVVVddddV/FPSgBz2Iq6666qqrrrrqqqv+/a655poHv9iLvdhrf/iHf/h38Ux/+Zd/yV/8xV/w9Kc/naue04kTJzh+/Dgv93Ivx8u+7MsCcN999936W7/1W9/9oz/6o5/DVVddddVVV1111VX/EdCDHvQgrrrqqquuuuqqq67693mxF3ux1/7cz/3c3+KZfuM3foPf/M3f5H8L2/x3OnHiBC/7si/L673e6wFw33333fr1X//17/MP//APv81VV1111VVXXXXVVf8elOPHj3PVVVddddVVV1111b/di73Yi732537u5/4WwMWLF/mGb/gGHv/4x/O/iSQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpDEarXi6U9/On/1V3/F9ddfz0033XT8xV7sxV57c3Pz+D/8wz/8DlddddVVV1111VVX/VtRjh8/zlVXXXXVVVddddVV/zYv9mIv9tqf+7mf+1sAv/Ebv8EP/MAPsFqtuOrfZrVa8fSnP53lcslLvMRLHL/mmmsefOutt/7N2bNnb+Wqq6666qqrrrrqqn8LyvHjx7nqqquuuuqqq6666t/mIz7iI77rmmuuefBv/MZv8Ju/+Ztc9e+3Wq14+tOfDsC11167u7m5efxP//RPf4arrrrqqquuuuqqq/4tqFx11VVXXXXVVVdd9W/2Yi/2Yq8N8Fu/9VtI4n8z2/xP8ld/9Ve83uu93oOB177mmmsefN99993KVVddddVVV1111VX/WlSuuuqqq6666qqrrvo3ebEXe7HXvu+++249PDx8MP8HSOJ/kt3dXS5evMg111zzYK666qqrrrrqqquu+rciuOqqq6666qqrrrrq3+Ts2bO37u7u8pCHPISHPOQhXPUf6/jx45w4cQKA++6771auuuqqq6666qqrrvq3ILjqqquuuuqqq6666t/kvvvuu/VP//RPHwzwtm/7thw/fpyr/mMcP36ct3u7twPgL//yL7nqqquuuuqqq6666t+M4Kqrrrrqqquuuuqqf5Ou6977qU99KhcvXuTEiRO8//u/Pw996EORhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUjif4rjx4/zfu/3fjzkIQ/h4sWL/MAP/ACllPfmqquuuuqqq6666qp/C8rx48e56qqrrrrqqquuuupf79ixY19l+8GPf/zjefEXf3FOnDjBQx7yEObzObu7u6xWK/43kYQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpI4ceIEr/qqr8q7vdu7sVgs2N3d5Su+4ivITGwfX61W38NVV1111VVXXXXVVf9a6EEPehBXXXXVVVddddVVV/3r3XDDDe77nlorp0+f5uVe7uV43dd9XQB2d3d5+tOfzl/91V/x9Kc/natesOPHj/MyL/MyvO7rvi73+93f/V1+67d+i2maGMeR/f39W++5556HcNVVV1111VVXXXXVvxZ60IMexFVXXXXVVVddddVV/zq11ve+7rrrvqvve0oplFIopXDy5Ele53Veh5d6qZfifru7u/zlX/4lt956K09/+tO5Co4fP87LvMzL8LIv+7IcP36c+/393/89v/d7v8fFixdprTFNE+M4sl6vue22214nM3+bq6666qqrrrrqqqv+NdCDHvQgrrrqqquuuuqqq67619ne3v6uEydOvHfXdZRSKKVQSiEiiAhOnDjBS73US/Ear/EaXLp0iWPHjgGwu7vL05/+dP7qr/6KW2+9lf8JbPOf7fjx45w4cYIHP/jBvOzLvizHjx/nfnt7e/zDP/wDf//3f8/u7i6ZSWuNzGSaJqZpYr1ec+HChd/e3d19Ha666qqrrrrqqquu+tdAD3rQg7jqqquuuuqqq6666l/nhhtucN/31FoppVBKISKICCKCiEASJ06c4EEPehC33HILL/7iL84D7e7uAvD0pz+dW2+9lYsXL3Lrrbfyf8Hx48d5mZd5GQAe/OAH85CHPIQH2t/f5/GPfzx7e3v8wz/8A7bJTDKTzKS1RmYyTRPTNDGOI/v7+7fec889D+Gqq6666qqrrrrqqn8N9KAHPYirrrrqqquuuuqqq150pZT3vv7667+r6zpqrZRSKKUQEUQEEYEkIgJJSCIiePEXf3He5E3ehL29Pfb29rjpppt4bru7uwA8/elPB+DWW2/l4sWL7O7usru7y/8kx48f5/jx45w4cYLjx49z/Phxjh8/zkMe8hCen/39ffb397nhhhv4sz/7M/70T/+UzMQ2mUlmYpvWGplJa43WGq01xnFktVpxxx13vE5r7be56qqrrrrqqquuuupFReWqq6666qqrrrrqqn+VxWLxWhFBRCAJSUhCEpIAkMT9JAFw8803A/BHf/RHPO5xj+P48ePs7Oxw7NgxbrrpJnZ2drjhhhsAeJmXeRkAXuZlXob77e7uAnDx4kV2d3cB2N3dZXd3F4CLFy9yv93dXe63u7vLC3P8+HEe6Pjx4wCcOHGC48ePc7/jx49z/PhxTpw4wfHjx3lBDg4OALj77rvZ39/n7rvv5s4778Q2L/dyL8cNN9zA/SRhG0lIwjaSkIQkIoLMJCIopbC9vf1Zu7u7v81VV1111VVXXXXVVS8qKlddddVVV1111VVX/avs7Oy8d0QgCUlI4oEkASAJSbwge3t77O/vc/fdd/PEJz6RiODYsWNEBDfccAPb29vs7OywtbXF1tYWx48fB+D48eP8T3B4eAjAfffdx/7+PgcHB+zv73P33XdjG9vYxjb3u+uuuwC48cYbkYRtJGEbSUhCEpKQBIAkJFFKYT6fP5irrrrqqquuuuqqq/41qFx11VVXXXXVVVdd9SIrpby3JCQhCUlIQhKSkASAJO4nCUnccsstANx+++28IPv7+0QET37yk4kIIoJSCqUUjh07RimFnZ0dtre3KaXQdR0nTpwgIpjP50QEEUGtFUm8qGxjG9uM40hmsl6vOTo6orVGa43Dw0Puu+8+Wmvs7+/TWiMzyUwyk8zENs/NNvfb398HYHt7GwBJ2EYStnkgSUhCEhFBRDCbzR4s6bVt/zZXXXXVVVddddVVV70oqFx11VVXXXXVVVdd9SJbLBavVUohIpCEJCQhCUkASOJ+krjfzs4OAHt7e0jiX+vw8JBaK+M4sre3R9/39H3P7u4u8/mc+XzOYrFgPp8zn8+Zz+fMZjP6vqfWSimFiMA2tmmtMY4jwzCwWq1YrVasViuWyyXL5ZLVasV6vWYYBoZhYBxHpmlimiYeyDb/HpKwjSQkIQlJSEISkpCEJEopHDt27LN2d3d/m6uuuuqqq6666qqrXhQEV1111VVXXXXVVVe9yHZ2dt47IpCEJCTxQJIAkIQk/i1sY5sXxDYviG3+PWzz3GxzP9s8kG0eyDYPZJsH2t/fZ39/n+3tbXZ2drifJO4nCUlIQhKSkEREEBHM5/MHc9VVV1111VVXXXXVi4rgqquuuuqqq6666qoXSUS8tyQkIQlJSEISkpAEgCQeSBIv/uIvDsDtt9/OfxTb3M82LypJvDC2eW62eSDbPJBtXlT7+/sAbG9vI4n7SUISDyQJSUgiIiilMJvNHhwRr81VV1111VVXXXXVVS8Kgquuuuqqq6666qqrXiQbGxuvVUohIpCEJCQhiftJ4n6SkMQDXbp0iRfGNi+IbWwDYJvnZhsA2/xHsc39bPMfYX9/H4CdnR0AJCGJ+0lCEpKQhCQkIQlJlFLY2dn5LK666qqrrrrqqquuelEQXHXVVVddddVVV131ItnZ2XnviEASkpDE/SQhCQBJSOKBjh07BsDe3h7/kWxjm/9otnlBbPPvsbe3B8D29jaSuJ8kJAEgCUlIQhKSkEREEBHMZrMHc9VVV1111VVXXXXVi4Lgqquuuuqqq6666qp/UUS8tyQkIQlJSEISkpAEgCQeSBKS2NnZAeDSpUu8qGzzr2Wbfy3bPD+2+c9w1113AXDDDTcAIIkHksQDSUISkpBERDCfzx8cEa/NVVddddVVV1111VX/EoKrrrrqqquuuuqqq/5FGxsbr1VKISKQhCQkIYn7SeJ+kpDE/W6++WYAbr/9dv4r2MY2/xq2sc1zs83zY5sXxjYvzPb2NveTBIAkACQhCUlIQhKSiAgiglIK29vbn8VVV1111VVXXXXVVf8Sgquuuuqqq6666qqr/kU7OzvvHRFIQhKSuJ8kJHE/STy3nZ0d/qPZ5n62+Y9im/9M+/v73E8S95MEgCTuJwkASUhCEhFBRDCfzx/MVVddddVVV1111VX/EoKrrrrqqquuuuqqq16oiHhvSUhCEpKQhCQkIYn7SeJ+kpCEJO63t7fHv4Vt7meb58c2L4wk/ifY399nf3+f7e1ttre3kYQkACQBIAlJAEhCEpKQhCQigvl8/uCIeG2uuuqqq6666qqrrnphCK666qqrrrrqqquueqE2NjZeq5RCRCAJSQBI4n6SkASAJCRxv5tuugmA22+/nX8L2zw32wDYxjYviG3+PWzzn2Fvbw+A7e1t7icJAEkASEISkpCEJCQREUQEpRS2t7c/i6uuuuqqq6666qqrXhiCq6666qqrrrrqqqteqJ2dnfeOCCQhCUlIAkASDySJ53bs2DEALl26xH8F2/x72eaBbANgm/8I+/v7AOzs7CCJ+0kCQBLPTRKSkEREEBHM5/MHc9VVV1111VVXXXXVC0Nw1VVXXXXVVVddddULFBHvLQlJSEISkpCEJAAkASCJB5KEJG6++WYALl26xP8mtvnPsre3B8DW1hYAkrifJAAkIQlJSEISkpCEJCKC+Xz+4Ih4ba666qqrrrrqqquuekEIrrrqqquuuuqqq656gTY2Nl6rlEJEIAlJPJAkACRxP0lI4rnt7e0hif9Mtnl+JPFAkvjvdNdddwFwww03cD9J3E8S95OEJCQhCUlEBBFBKYXt7e3P4qqrrrrqqquuuuqqF4Tgqquuuuqqq6666qoXaHt7+70jAklIQhKSkIQkACQBIAlJPLebbroJgNtvv53/qWzzL7HNf5T9/X0Atre3kcT9JCEJAElI4oEkIQlJRAQRwXw+fzBXXXXVVVddddVVV70gBFddddVVV1111VVXPV8R8d4RgSQkIQlJSEISAJIAkMQDSUISktjZ2QHg0qVLXPX8SeKBJAEgCUlIQhKSkIQkJBERzOfzB0fEa3PVVVddddVVV1111fNDcNVVV1111VVXXXXV87WxsfFapRQiAklI4oEkASCJ+0lCEvfb2dnh+ZHEfyTbvCgk8T/B/v4+e3t7bG9vc8MNNwAgCUncTxL3k4QkACQhiYggIiilsL29/VlcddVVV1111VVXXfX8EFx11VVXXXXVVVdd9Xxtb2+/d0QgCUlIQhKSkASAJO4nied20003AfD3f//3/Eewzb+XJP4n2N/f5/mRxANJ4n6SkIQkJBERRASLxeLBXHXVVVddddVVV131/BBcddVVV1111VVXXfU8aq3vHRFIQhKSkIQkJAEgCQBJSOK5SUIS/1Vs87/JnXfeCcANN9yAJB5IEgCSAJCEJCQhCUlIQhIRwWw2e3BEvDZXXXXVVVddddVVVz03gquuuuqqq6666qqrnsd8Pn+tUgoRgSQk8UCSAJDEA0lCEpIAuOmmmwC47bbbkMS/RBIvKtv8TyaJF2Z/fx+A66+/HgBJSOJ+kgCQxP0kASAJSUQEEUEphZ2dnc/iqquuuuqqq6666qrnRnDVVVddddVVV1111fPY3t5+74hAEpKQhCQkIQkASdxPEpJ4bjfddBMAly5d4vmRxL+GJP6v2N/f5/mRxP0kASAJSQBIQhKSkEREEBHM5/MHc9VVV1111VVXXXXVcyO46qqrrrrqqquuuuo51Frfu5SCJCQhCQBJ3E8S95PE8yOJ++3t7XE/SVwFe3t7AGxvbyOJB5KEJAAkASAJSUhCEpKQhCRKKcxmswdLem+uuuqqq6666qqrrnoggquuuuqqq6666qqrnsPW1tZ7RQQRgSQkIQkASUgCQBKSeCBJSEISADs7OwBcunSJ/w6S+JdIQhL/1fb399nb22N7e5vt7W0kIYkHkgSAJJ6bJCQREUiilMKxY8fei6uuuuqqq6666qqrHojgqquuuuqqq6666qrnsFgsXjsikIQkJCEJSUgCQBIPJAlJPNBjH/tYAG677TYk8cJI4rlJAkAS/xkk8Z9NEi/M/v4+AFtbW9xPEpK4nyQAJCEJSUhCEpKQRERQSmE+nz+Yq6666qqrrrrqqqseiOCqq6666qqrrrrqqmfpuu69SylIQhKSAJDE/SRxP0lI4oW5dOkS/xqS+P9ib28PgBtuuIHnJon7SeJ+kpAEgCQkIYmIYD6fP1jSZ3HVVVddddVVV1111f0Irrrqqquuuuqqq656ls3NzfeKCCICSUhCEgCSkMT9JPHcJCEJSdx0000A3H777dxPEveTxAsiiQeSxHOTxH8lSfxbSOIF2d/fB2B7extJSOKBJHE/SUjifpKQhCQiAklEBMePH39trrrqqquuuuqqq666H8FVV1111VVXXXXVVc+yWCxeOyKQhCQkIQlJPJAk7icJSUjigW666SauukISz8+dd94JwPb2NveThCTuJwlJAEhCEpKQhCQkIYmIoJTCzs7Oa0/T9NpcddVVV1111VVXXQVAcNVVV1111VVXXXXVZV3XvXcpBUlIQhIPJAkASQBIQhL/kttvv53/CSTx7yWJF0YSL4gkntve3h4AW1tbPDdJvCCSkASAJCQhiYhAEvP5/LW46qqrrrrqqquuugqA4Kqrrrrqqquuuuqqy44dO/ZZEUFEIAlJSEISkpCEJAAk8cJIYmdnB4BLly4BIIn/TJL415LEv5Uk7ieJF4UkHmh/f5+9vT22t7fZ2dnhuUlCEgCSAJDE/SQhCUlEBJKICE6cOPHeXHXVVVddddVVV10FQHDVVVddddVVV111FZn54K7rHhwRSEISkpCEJB5IEg8kCUlIQhKSeOxjHwvA3/3d3/H8SOJ+kvifThL/USTxQPv7+wBsbW0hCUk8N0kASAJAEpKQhCQkIYmIoJTCfD5/cGvttbnqqquuuuqqq666iuCqq6666qqrrrrqKjY3Nz+rlIIkJCGJB5IEgCTuJwlJ/EeRxL+VJP6jSeI/iyTud8cddwBw/fXXcz9JSOKBJAEgiftJAkASkpBERFBKYWNj47W46qqrrrrqqquuuorgqquuuuqqq6666io2NzdfOyKICCQhCUlIQhIAkgCQhCRemBtvvBGA22+/HQBJXPWcJPFAN9xwA89NEpK4nyQAJCEJAElIQhIRQURQSmFnZ+e9ueqqq6666qqrrrqK4Kqrrrrqqquuuur/Odvv3ff9gyMCSUhCEpKQBIAkACTx/EhCEpKQxE033QTAbbfdxnOTxItKEs9NEv9eknhhJAEgiRdGEpJ4IEm8qCRx5513cj9JPD+SkASAJAAkIQlJSEISkpBERLBYLB5s+7W56qqrrrrqqquu+v+N4Kqrrrrqqquuuur/uc3NzdeKCCQhCUk8kCQAJPFAkpCEJJ7bzs4O95PECyKJF5Uk/iWS+M8mCUn8R9nf3wdga2sLAElIQhLPTRIAknhukpCEJCKCUgqbm5vvxVVXXXXVVVddddX/bwRXXXXVVVddddVV/89tbGy8dkQQEUhCEpKQhCQAJHE/SUjiBdnZ2eF+ly5d4oEk8cJI4kUhiX+JJP41JPH8SOI/0/7+Pnt7e2xvb3P99dfzQJKQxANJAkASkpCEJCQhiYggIogItra2Xpurrrrqqquuuuqq/98Irrrqqquuuuqqq/4fi4j37vv+wRGBJCQBIAlJAEjifpL4l9x0000A/N3f/R2SeFFI4kUhiQeSxL9EEpIAkMS/RBL/1fb393lhJCGJ+0nifpKQBIAkJCGJiGA+nz8YeG2uuuqqq6666qqr/v8iuOqqq6666qqrrvp/bLFYvFYpBUlIQhKSuJ8kACQhiQeShCQkIQlJSGJnZweAS5cu8UCSeCBJPD+SAJAEgCQk8YJI4oEk8W8liX8rSdxPEv8ad9xxBwA33HADknhBJHE/SUjifpKQhCQigoiglMKxY8c+i6uuuuqqq6666qr/v6hcddVVV1111VVX/T+2vb393hFBRCAJSUhCEpIAkMQDSUISL8jOzg4Ae3t7/FtJ4l8iiX8LSdjmgSTxL5HEf5Y777wTgOuvvx4ASTyQbe4nCdsASEISkpCEJCQhiYggIpjNZg/mqquuuuqqq6666v8vgquuuuqqq6666qr/p0op7x0RSEISkgCQxP0kcT9JSOJfcuONNwJw2223cT9JPJAk/jNJ4t9LEveTBIAkXlSSeFHt7+8DsLW1xfMjCUncTxIPJAlJAEhCEpKICObz+YMj4rW56qqrrrrqqquu+v+J4Kqrrrrqqquuuur/qe3t7fcqpRARSEISkgCQhCTuJ4kXRhKSkMTOzg4Aly5d4r+KJCTxbyGJ5yYJAEn8e0jiRbG3twfA9vY229vbvCCSkASAJAAkcT9JSEISEUFEUEphe3v7s7jqqquuuuqqq676/4ngqquuuuqqq6666v+pxWLx2hGBJCQhCUlIQhL3k8QDSUISkpCEJO73mMc8BoDbbruN+0nigSTxQJIAkMSLQhL/E0jiRSEJSUhCEpKQxHO74447ANje3uZfIgkASQBIQhKSkIQkJBERRATz+fzBXHXVVVddddVVV/3/RHDVVVddddVVV131/1DXde8dEUhCEpIAkMT9JCGJ+0lCEi+KS5cuASCJfw9J3E8S95PEi0IS/16S+JdIAkASLypJSOJ+d955JwDXX389kpCEJCQhCUk8kCQAJAEgCUkASEISkiilMJ/PHxwRn8VVV1111VVXXXXV/z8EV1111VVXXXXVVf8PbW5uvldEEBFIQhKSAJCEJO4nCUm8KG666SYAbrvtNp4fSfx7SOKBJCGJ+0niRSWJ5yYJSbwwkpAEgCT+vSQhiTvuuAOA66+/nhdEEpK4nyQAJHE/SUhCEhGBJCKCM2fOvDdXXXXVVVddddVV//8QXHXVVVddddVVV/0/k5kPXiwWrx0RSEISkpCEJB5IEs9NEpKQhCQkIQlJ3HjjjQDcdtttSOJfIokHksTzI4nnJon/SJJ4YSTx/EjiP4IkALa2tviXSEISAJIAkIQkJCEJSUgiIiil0Pf9g1trr81VV1111VVXXXXV/y8EV1111VVXXXXVVf/PbG5uflZEEBFIQhIPJAkASdxPEpKQxAuzs7MDwN7eHs9NEi+IJJ6bJAAk8a8hiReVJF4QSdxPEv/Z9vf3Adje3uZFJQkASTw3SUgiIogIIoLFYvFaXHXVVVddddVVV/3/QnDVVVddddVVV131/8zGxsZrRwSSkIQkJCEJSQBIAkASknhR3HjjjQDcdtttPDdJPDdJPD+SkMS/hiQk8UCS+LeSBIAkHkgS/xJJ/Fvs7e1xxx13AHDDDTcgCUlIQhKSkIQkHkgSAJKQhCQkIQlJSCIiKKVw7Nix9+aqq6666qqrrrrq/xeCq6666qqrrrrqqv9HJL133/cPjggkIQlJSEISAJIAkMS/xs7ODgCXLl3igSTx3CTxbyWJf4kk/jUk8T/B/v4+ANdffz0vjCQkcT9JAEhCEpKQhCQkIYmIYD6fP9j2a3PVVVddddVVV131/wfBVVddddVVV1111f8jGxsbr1VKISKQhCQeSBIAknggSUhCEpKQhCQkIQlJ3HTTTQDcdttt3E8S/1EkcT9JAEjiP5okHkgSz48kHkgS95PEv8Xe3h4A119/PS8KSdxPEs9NEpKICCKCUgqbm5vvxVVXXXXVVVddddX/HwRXXXXVVVddddVV/4/s7Oy8d0QgCUlIQhKSkASAJO4nCUm8KG688UYAbrvtNgAk8fxI4oEkASCJ5yaJB5LE/SQBIIn7SeLfQxL/Ekn8Z7njjjsA2Nra4kUliftJQhKSkIQkJCGJiCAi2NzcfG2uuuqqq6666qqr/v8guOqqq6666qqrrvp/opTy3pKICCQhCUlIQhIAkgCQhCT+NXZ2dgC4dOkSknh+JPFvIYn/LJIAkMT9JCEJSQBIQhL3k8S/RBIviCQkIQlJSAJgf38fAElIQhKSkIQkJCEJSUjifpKQxP0kIQlJSEISkiilMJ/PHxwRr81VV1111VVXXXXV/w8EV1111VVXXXXVVf9PbG1tvVdEIAlJSOKBJAEgiX+txzzmMQDcdtttSOL5kcRzk8QDSeJ+kgCQxL9EEpIAkMQDSeI/iiQeSBIAknh+JCEJSUhCEpJ4fiSxv7/PHXfcwdbWFtdffz3/EklI4oEk8UCSkEREIIlSCltbW5/FVVddddVVV1111f8PBFddddVVV1111VX/TywWi9eOCCQhCUlIQhKSAJDEA0lCEpKQhCQkIQlJSEISkgC4dOkSz48k/qNIQhIAkvjPJokXRhL3k8S/1/7+PgDXX389LypJAEgCQBKSkIQkJCGJiKCUwmKxePA0Ta/NVVddddVVV1111f99BFddddVVV1111VX/D3Rd994RQUQgCUlIQhKSAJDE/SQhiRfVjTfeCMBtt93Gc5PE8yOJ+0nifpKQxHOThCTuJwkASbwgkvjXksR/p729PQCuv/56/jUkASAJAElIQhKSkEREEBHMZrMHz2az1+Kqq6666qqrrrrq/z6Cq6666qqrrrrqqv8HdnZ2PquUgiQkIYkHksT9JPGvdeONNwJw22238UCS+K8kCQBJSOKBJPGCSAJAEgCSkMR/hzvuuAOAra0tJCEJSUhCEpKQhCQkIYn7SQJAEg8kCUlIIiIopXDixIn35qqrrrrqqquuuur/PoKrrrrqqquuuuqq//teu+/7B0cEkpCEJCQhCUkASEISDyQJSUhCEpKQhCQeaGdnB4BLly4BIAlJvCCSeFFIAkASL4wkJPEfTRIAkpAEgCQAJPH8SOLfY39/H4Dt7W1eVJK4nyQAJCEJSUhCEpKQREQwn88fnJmvzVVXXXXVVVddddX/bQRXXXXVVVddddVV/8dtbGy8V0QgiYhAEpKQhCQAJPFAkpDECyMJSTz2sY8F4LbbbgNAEi+MJB5IEgCSeH4k8UCSkASAJJ6bJP4tJPH8SOJ+kgCQxHOTxH+Evb097rjjDgCuv/56XlSSkASAJAAkIQlJSEISEUFEUEphc3Pzvbjqqquuuuqqq676v43gqquuuuqqq6666v+4xWLx2hGBJCQhiQeSxP0kIYl/i0uXLiGJF0YSLypJPJAkHkgSAJL4l0jiRSWJF5Uknh9JvCgkIQlJSEISkrjjjjsAuP7663l+JCGJ50cSAJJ4IElIQhIRQUSwtbX12lx11VVXXXXVVVf930Zw1VVXXXXVVVdd9X9YRLx33/cPjggiAklIQhKSkASAJCTxb3HjjTcCcNttt/GCSEISz00SDyQJAEk8P5J4YSTxryGJB5IEgCQkIYkXhST+NSQhiRfkzjvvBOD6668HQBKSkIQk7icJSUhCEveTBIAkJCEJSUhCEhFBKYXZbPZgSa/NVVddddVVV1111f9dBFddddVVV1111VX/h+3s7LxXKQVJSAJAEpK4nyQeSBKSkIQkJCEJSUhCEg904403AnDbbbfx3CQhiX+JJO4niX8tSUjifpJ4YSRxP0n8SyQhCQBJPJAknh9JPD+S+Jfs7+8DsL29jSReVJK4nyTuJwkASUhCEhFBKYWtra3P4qqrrrrqqquuuur/LoKrrrrqqquuuuqq/8Nms9lrRwQRgSQkcT9JSOJ+kpDEi0ISkpDEzs4OAJcuXeJ+kpDECyOJf4kkACRxP0lIAkASknggSfxrSeIFkcT9JHE/STw3STyQJCQhCUlI4kWxt7cHwNbWFltbW/xrSEISAJKQBIAkJCEJSUiilMJisXhwZj6Yq6666qqrrrrqqv+bCK666qqrrrrqqqv+j+q67r1LKUhCEpKQhCQkIYn7SeLf4jGPeQwAf/d3fweAJCTxH0kSz48kXhhJ/GtIAkASAJJ4QSTxn+2OO+4AYHt7m+dHEpKQhCQk8UCSAJCEJCQhCUlIIiKICGaz2YO7rnsvrrrqqquuuuqqq/5vIrjqqquuuuqqq676P2pnZ+ezIoKIQBIAkpDEA0niuUlCEpJ4YW688UYAdnd3kcSLQhKSuJ8kACTxQJJ4IElI4vmRBIAkHkgSL4gkXhBJAEgCQBL/1e644w4Arr/+eu4nCUlI4vmRhCTuJ4n7SQJAEpKQRERQSuH48ePvzVVXXXXVVVddddX/TQRXXXXVVVddddVV/wdJeu2u6x4cEUhCEpK4nyQAJHE/SUhCEg8kCUlIQhKSuN+NN94IwN7eHi8KSbwwkgCQxAsiCUkASOJ+kvj3ksRzkwSAJJ6bJO4nCQBJ/FtIQhKSkMSdd94JwPXXX48kJPGiksT9JCEJAElIQhKSiAhKKczn8wdn5mtz1VVXXXXVVVdd9X8PwVVXXXXVVVddddX/QYvF4r1KKUQEkpCEJCQhCQBJAEhCEv8akpDEzs4OALfddhsvjCQk8dwk8dwkcT9JAEjiuUkCQBIvjCT+NSQBIInnJglJPJAkJPFvJQlJPLf9/X0Atre3+beQxANJQhKSkEREIImIoJTC5ubme3HVVVddddVVV131fw/BVVddddVVV1111f9B29vb7x0RSEISkpCEJAAkASCJf6vHPOYxANx2221cunSJB5KEJCQhiX+JJF4QSQBIQhL/EklI4l9LEveTBIAknh9JSOIFkcS/RBKSeEH29va444472Nra4vrrr+f5kYQkJCEJSUjifpIAkASAJAAkIQlJSKKUwubm5mtz1VVXXXXVVVdd9X8PwVVXXXXVVVddddX/MaWU944IJCEJSTyQJAAk8UCSkIQkJCEJSUjihbl06RIAkpCEJF4UkviPIglJSOLfQhIAknhukpCEJP41JPGCSOJFcccddwBw/fXX80CSkMQLIglJAEgCQBIAkpCEJCKCiCAimM/nD5b02lx11VVXXXXVVVf930Jw1VVXXXXVVVdd9X/M5ubme0UEEYEkJCEJSUgCQBL3k4QkXhhJSEIS97vxxhsBuO2225DEv5ckHkgSz48kJAEgCUk8P5J4UUji+ZHEv5YkHkgSDyQJSbyo7rzzTgCuv/56ACQhiReVJAAkASAJSUgCQBKSiAhKKWxvb38WV1111VVXXXXVVf+3EFx11VVXXXXVVVf9H7NYLF47IpCEJCQhCUkASAJAEpL415KEJG688UYAbrvtNv61JHE/SdxPEgCSAJAEgCSemyT+M0hCEgCSeCBJSOJ+kviXSEISknhRSUISe3t7AGxtbSGJfwtJAEjigSQhiYggIogItre3X7u19tpcddVVV1111VVX/d9BcNVVV1111VVXXfV/yGKx+K5SChGBJCTxQJIAkMTzI4kX1c7ODgCXLl3iRSUJSbwwknggSQBIQhIPJAkASUhCEpKQxH8USUhCEveThCQAJAEgiX8PSUhCEvfb399nb2+P7e1trr/+ep4fSUhCEpKQhCQkcT9JAEhCEpKQhCQkIYlSChHBYrF4L6666qqrrrrqqqv+7yC46qqrrrrqqquu+j9ksVi8dkQgCUlIQhKSkASAJO4nCUlIQhIAkpCEJCTx/DzmMY8B4O/+7u94fiQhCUlIQhKSeG6S+NeShCTuJ4l/K0ncTxKSuJ8kXlSSuJ8k/rUk8YLs7e3x/EhCEi+MJO4nCQBJSEISkpBERCCJUgrb29uvzVVXXXXVVVddddX/HQRXXXXVVVddddVV/0dExHv3ff/giEASkpCEJCQBIAkASUjiRSEJSUjifjfeeCMAz3jGM5CEJCQhCUn8a0niuUnifpJ4bpL4l0jiX0sSkgCQxANJQhL/Ekm8qCTxwtxxxx0AvOzLviz3k8SLShKSAJDEc5OEJCKCiGA+nz/Y9mtz1VVXXXXVVVdd9X8DwVVXXXXVVVddddX/EYvF4rVKKUgiIpDEA0kCQBL/VpKQxI033gjA7bffzr+VJB5IEveTBIAkJAEgCUkASAJAEgCSkMS/lSReEElIQhLPTRL/HpL4l9x5550AbG1tASCJF0YSknhukgCQhCQkIQlJSCIiiAhKKWxvb38WV1111VVXXXXVVf83EFx11VVXXXXVVVf9H7G1tfXeEUFEIAlJSEISkgCQxANJQhKSkIQkJPEv2dnZAeDSpUv8W0jifpK4nyQk8cJIAkASAJK4nyQkASCJfw9JvCCSkMRzk8T9JPGCSEISL4wkJLG/vw/A9vY229vbvCCSkMT9JCEJSdxPEgCSkIQkJCEJSUQEpRTm8/mDM/PBXHXVVVddddVVV/3vR3DVVVddddVVV131f0DXde8dEUhCEpKQhCQkASCJ+0lCEi+IJCQhief2mMc8BoC/+7u/499CEv/ZJPGvJQlJSEISAJJ4IEk8N0kASOK5SeK5SeKFkYQk7re3t8cdd9wBwPb2Ns9NEpJ4YSRxP0k8N0lIQhIRwXw+f3Ct9b246qqrrrrqqquu+t+P4Kqrrrrqqquuuur/gO3t7c+KCCICSQBIQhIAkgCQhCT+NSQhifvdeOONAOzu7iIJSUhCEpKQxPMjCUk8kCQAJPHcJHE/SUhCEgCSAJCEJCTxbyWJF0YSkpAEgCSemyReEElIQhKSeGEk8fzccccdAFx//fU8kCReVJKQBIAkJCEJSUhCEhFBRFBK4fjx4+/NVVddddVVV1111f9+BFddddVVV1111VX/y0l6777vHxwRSEISkrifJAAk8fxI4kUhCUnceOONANx+++28IJKQhCQkIYl/C0lI4oEkASCJB5KEJP6jSEISL4wknpsk/rUkIYkX5M477wTgEY94BPeTxAsiCUlIQhIPJAkASUhCEpKQhCQkERHM5/MH235trrrqqquuuuqqq/53I7jqqquuuuqqq676X26xWLxWRBARSEISkpCEJAAkcT9JSEISkgCQhCQkIYkXZmdnB4DbbruNfw9JPJAkJCEJSfxrSOJ+kvi3koQkJPHCSEIS/xEk8S/Z29sDYHt7GwBJPD+SkMRzk4Qk7ieJ+0kCQBKSiAgiglIKW1tbn8VVV1111VVXXXXV/24EV1111VVXXXXVVf/LbW1tvXdEIAlJSEISkgCQBIAkJPGikIQknttjHvMYAP7u7/6O/yiS+JdIQhKSAJAEgCQk8cJI4l8iiRdEEpKQhCQk8UCSuJ8kACTxopDECyMJSezv73PHHXcAcMMNN/DcJCGJf4kk7icJSQBIQhKSkEREUEphsVg8mKuuuuqqq6666qr/3Qiuuuqqq6666qqr/hfruu69SylEBJKQxANJAkAS/xaSkMT9brzxRu4nCUlI4l9LEv8SSUhCEg8kCQBJPJAkJAEgCUlI4kUliQeShCReFJKQxANJ4oWRxAsiCUk80B133AHA9ddfzwNJ4l9DEg8kCUlIQhKSiAgigtls9uCI+Cyuuuqqq6666qqr/vciuOqqq6666qqrrvpfbHt7+7MiAklIQhKSkIQkACTxQJKQhCQkIQlJvDCSkMSNN94IwG233cYDSUISkpCEJJ4fSUjifpIAkMQDSeL5kcQDSQJAEveTxHOTxItKEpK4nyQkASAJAEkASOLfQhIviCSenzvvvBOA66+/nvtJ4gWRhCQkIQlJ3E8SkpAEgCQkIQlJSCIiKKVw7Nix9+aqq6666qqrrrrqfy+Cq6666qqrrrrqqv+lJL1313UPjggkIQlJSEISAJK4nyQk8YJIQhIvzM7ODgB/93d/x79EEpKQhCQk8cJIAkASz00SkgCQhCQkASAJAEn8e0nifpJ4IEkASAJAEs+PJO4nCUk8kCReEEm8IHt7ewBsbW3xwkhCEs+PJCTxQJK4nyQkIYmIoJTCfD5/sO3X5qqrrrrqqquuuup/J4Krrrrqqquuuuqq/6UWi8VrlVKQREQgiQeSBIAkJPGikoQknttjHvMYAP7u7/6O/wiSeG6SuJ8kACTxopLEv4YkXhhJ/Esk8S+RhCQk8YJI4gWRxP7+PnfccQfb29tcf/31SOK5SeJFIQkASQBIQhKSkEREIImIoJTC1tbWZ3HVVVddddVVV131vxPBVVddddVVV1111f9SW1tb7x0RRASSkIQkJCEJAEk8N0lIQhIvjCQkcb8bb7yR+0lCEpL4t5DE/STxgkjigSQBIAkASUhCEg8kiReVJCQhCQBJSOJ+kpAEgCQAJPFAkgCQBIAk/jUk8fxIQhL3u+OOOwC44YYbeG6S+NeQBIAkACQhCUlIIiKICEopzOfzB3PVVVddddVVV131vxPBVVddddVVV1111f9CXde9d0QgCUlIQhKSkASAJO4nCUlI4oEkIQlJvCCSkMSNN94IwN/93d/xQJKQhCT+rSTxQJJ4IElIAkASAJJ4IEkASOLfShL3k4Qk7icJAEkASEIS95PEv4Uknh9JPLc777wTgEc84hE8kCSeH0lIQhKSkIQk7icJAEncTxKSkIQkIoLZbPZgSZ/FVVddddVVV1111f8+BFddddVVV1111VX/C21tbX1WKYWIQBIAkpAEgCQAJCGJF4UkJPGC7OzsAHDbbbfxgkhCEpJ4fiQhiftJ4n6SkIQkACQBIIkXRBIAkgCQxP0k8cJI4gWRxP0kIYl/LUn8SyTx/Eji+dnb2wNge3ub+0niuUlCEi+IJCQBIAkASUhCEpKQREQQEZRSOH78+Htz1VVXXXXVVVdd9b8PwVVXXXXVVVddddX/MhHx3n3fP1gSkpCEJO4nCQBJ/FtI4rk95jGPAeDv/u7veFFJQhKSkIQk/rUkASAJAElIQhKSAJDEfyRJAEhCEveThCQAJHE/STyQJO4niRdEEs+PJJ4fSezv73PHHXcAcP311/P8SOJFJQkASQBIQhIAkpBERFBKYT6fP9j2a3PVVVddddVVV131vwvBVVddddVVV1111f8y8/n8tSKCiEASkpCEJCQBIIn7SUISkpCEJCQhiRdEEpK434033gjApUuXkIQkJCGJfytJAEjiuUniuUniuUnifpJ4bpJ4UUniRSGJ+0kCQBIAknhuknhuknh+JPH8SOJ+d9xxBwCPfOQjkcQDSeIFkYQkJPFAkgCQxP0kIQlJRAQRQSmFzc3Nz+Kqq6666qqrrrrqfxeCq6666qqrrrrqqv9lNjc33zsikIQkJCEJSQBIAkASknhhJCGJF0QSADfeeCMAf/d3f8dzk4Qk/jUk8UCSeG6SAJDE/SQBIAlJAEhCEveThCT+LSQBIIn7SUISAJK4nyQeSBL3k8QDSUISkpDE8yOJ5yYJSTzQnXfeCcD111/Pi0ISknggSUjifpIAkIQkJCEJSUgiIiilsFgsHtxae22uuuqqq6666qqr/vcguOqqq6666qqrrvpfpO/7zyqlEBFIQhIPJAkASfxrSEISz48kdnZ2ALh06RIviCQk8S+RxP0kcT9JSEIS95MEgCQkASCJF0QS/xaSuJ8kACQhiftJAkASkviPJInnJonnZ29vD4Dt7W22t7e5nySemyReGElIAkASAJKQhCQkIYmIICKYzWYP7vv+tbjqqquuuuqqq67634Pgqquuuuqqq6666n+Rzc3N944IJCEJSUhCEpIAkMQDSUISkpCEJF4QSTy3xzzmMQD83d/9HZKQxAsjCUk8P5J4UUjihZEEgCQkIQlJ/GeQhCReEEk8kCQAJPGikMRzk8QLsr+/zx133AHA1tYWAJJ4bpJ4UUkCQBIPJAlJSCIiKKWwvb393lx11VVXXXXVVVf970Fw1VVXXXXVVVdd9b9ERLx33/cPjggiAklIQhKSAJDE/SQhiedHEpJ4fiQhifvdeOONANx2223cTxKSeGEkIQlJSEISDyQJAEk8P5KQhCTuJwlJAEji+ZEEgCReFJIAkIQkACQhCUncTxKSuJ8kJAEgiX8LSTw3STw/kpAEwB133AHAy73cy/H8SOK5SUISkpCEJB5IEgCSkIQkJCEJSUQEpRTm8/mDgdfmqquuuuqqq6666n8Hgquuuuqqq6666qr/JTY3N98rIogIJCEJSUgCQBIAkpDEi0ISknh+JAFw4403AnDbbbfx3CQhiX8vSdxPEs9NEpK4nyQAJHE/SUgCQBL3k8S/hiQeSBKSuJ8kJPHcJCGJB5LECyKJF5UkHujxj388AFtbW0jigSTx3CTx/EhCEveTBIAkJCEJSUhCEhFBKYXNzc3P4qqrrrrqqquuuup/B4Krrrrqqquuuuqq/x0evFgsXjsikIQkJHE/SQBI4t9CEs/PsWPH2NnZAWBvb48XRBKSeFFJAkAS95OEJAAkcT9J3E8SkgCQBIAkJPEfSRIAknhBJAEgiecmiftJ4rlJ4vmRxHOTxHPb29vjjjvuYHt7m+uvv54XRhL/EklIAkASDySJiEASEUEphe3t7dfOzNfmqquuuuqqq6666n8+gquuuuqqq6666qr/BRaLxWdFBBGBJCQhCUlIAkAS95OEJCQhCUlIQhKSeH4k8dxuvPFGAP7u7/4OAElI4gWRxL9EEi8KSUgCQBKSeG6S+M8iiQeShCQeSBIvCklIQhKSeH4k8dwk8dwkIYn7XX/99dxPEg8kiX8NSQBIQhKSkIQkIgJJlFKICGaz2Xtx1VVXXXXVVVdd9T8fwVVXXXXVVVddddX/AltbW+8dEUhCEpKQhCQAJAEgCUn8SyQhiecmCUnc7zGPeQwAt912Gw8kCUk8P5KQhCQeSBKSuJ8kACTxQJJ4QSQhCUlIAkASkpCEJCTxryUJSUhCEg8kCUncTxKSeCBJSAJAEgCSeFFJ4rlJ4rlJ4n5/8id/AsANN9wAgCQeSBLPTRKSkIQkJCEJSdxPEgCSkIQkACQREUQEpRQ2Nzdfh6uuuuqqq6666qr/+Qiuuuqqq6666qqr/oertb53RBARSEISDyQJAEn8a0ni+ZEEwI033gjA7bffzvMjiRdGEpKQxAsjCUlIAkAS95MEgCT+tSTxwkji+ZGEJCRxP0lI4n6SAJDE/STxryWJ5yaJ5yaJB9rb2wNga2uLF4UkXhhJ3E8S95OEJCQhCUlEBPP5/EGS3purrrrqqquuuuqq/9kIrrrqqquuuuqqq/6H297e/qyIQBIRgSQkIQlJAEjifpKQhCQkIQlJSOL5kcTz89jHPhaAv/u7v+PSpUtIQhLPTRKS+NeQBIAkXhBJSAJAEgCSAJCEJCQhiecmCUn8R5CEJO4nCUkASOL5kQSAJF4YSTw3STw3STy3vb097rjjDra3t7nhhht4IEk8kCReFJKQBIAkJAEgCUlIIiKICEopbG9vfxZXXXXVVVddddVV/7MRXHXVVVddddVVV/0PJum9u657cEQQEUhCEpKQBIAkACQhiRdGEpJ4bpJ4bjfeeCPPjySeH0m8KCTxQJJ4IEk8kCQeSBLPTRKSkIQk/q0kIQlJSEIS95OEJJ4fSbwgknh+JPGikMRzk4Qk7rjjDgCuv/56/rUkIQlJSOKBJAEgCUlIQhKSkEREUEphsVg82PZrc9VVV1111VVXXfU/F8FVV1111VVXXXXV/2CLxeK1IoKIQBIAkpAEgCQAJPGvIYnnJglJ3O/GG28E4O///u95bpKQxHOThCReEEncTxL3k4QkJAEgCQBJAEhCEveThCQk8Z9NEpK4nyQAJAEgCQBJSEISz00SkgCQhCSeH0k8kCSemyTud+eddwLwyEc+kvtJ4oEk8UCSkMRzk4Qk7ieJ+0kCQBKSiAgiglIKGxsbn8VVV1111VVXXXXV/1wEV1111VVXXXXVVf+DbW5uvndEIAlJSOJ+kgCQxP0kIQlJSEISknh+JPH8SAJgZ2cHgNtuuw1JPD+SeH4kIQlJSEISkvjXkMRzk4QkHkgSkpDEv4UkJCGJ5yaJ+0lCEgCSAJDECyKJ5yaJF0QSDySJ5yaJB9rb2wNge3ub66+/nucmiQeSxL9EEveThCQAJCEJSUgiIiilMJ/PH9xae22uuuqqq6666qqr/mciuOqqq6666qqrrvofaj6ff1dEEBFIQhKSkIQkACQBIAlJvCCSkMRzk8Tz89jHPhaAv/u7v+N+kpDEc5PEv5YkACTx3CTxQJKQhCTuJwlJSOKBJAEgiX8LSUhCEpIAkIQknpsk7ieJB5IEgCReFJL4l0jiue3v73PHHXcAcMMNNyCJ/wiSkASAJCQhCUlIQhIRQUQwm80e3Pf9e3HVVVddddVVV131PxPBVVddddVVV1111f9Qi8XitSMCSUhCEpKQBIAkACTxopLEc5PEc7vxxhsBuP3223luknhuknhRSeKBJCEJSUgCQBKSkMQDSUISDyQJSdxPEv9RJHE/SQBIQhIAkpAEgCT+LSTx3CTxQJJ4IElIAuBP/uRPALj++ut5IEk8kCSemyQkIQlJSOKBJHE/SUhCEhGBJCKCUgpbW1uvzVVXXXXVVVddddX/TARXXXXVVVddddVV/wPVWt+767oHRwQRgSQkIQkASUhCEg8kCUlI4gWRxHOTxAM95jGPAeC2225DEs9NEs9NEpJ4YSRxP0m8KCQhCUncTxIAkrifJP6jSEISAJKQBIAkXhhJSOKBJPGCSOK5SeKBJPHC7O3tAbC9vc0LIonnJonnRxKSuJ8kJHE/SUgiIogISinMZrMHA+/NVVddddVVV1111f88BFddddVVV1111VX/Ay0Wi/cqpRARSEIS95OEJO4nCUlI4oEkIQlJPDdJPDdJSOIxj3kMAH/3d3/HpUuXAJCEJB5IEs+PJCTxQJKQxP0kASCJ5yYJSQBI4oEkIQkASQBI4n6SuJ8k/jUkASCJ+0nifpIAkIQkJHE/STw3SdxPEpJ4IEk8N0k8kCSemyQeaG9vjzvuuIPt7W2uv/56ACTxwkjiXyKJ+0lCEpKQhCQkIYmIoNbK9vb2Z3HVVVddddVVV131Pw/BVVddddVVV1111f8wkl57Pp+/tiQkIQlJSEISkrifJF4Uknhuknh+brrpJl4QSTyQJCTx/EhCEpJ4YSQBIAlJ3E8SAJIAkMT9JAEgCQBJSOLfSxL3kwSAJCQBIIkHkoQkACRxP0k8P5KQhCT+LSTxQJKQxB133AHAox71KJ6bJB5IEi8qSUjifpKQhCQkERFEBKUU5vP5g22/NlddddVVV1111VX/sxBcddVVV1111VVX/Q+ztbX1WaUUIgJJSEISkpAEgCQk8UCSeGEkIYkHksRzu/HGGwH4gz/4AyTx3CTx3CTxopIEgCTuJ4n7SeK5SQJAEpIAkASAJB5IEpIAkMSLQhIPJIkXRBIAknhukpDE/STxopLEA0nigSTxQJK435133gnA9ddfz7+WJCQhCUlIQhKSuJ8kJPFAkpBERBAR1FqZz+efzVVXXXXVVVddddX/LARXXXXVVVddddVV/8PMZrPXjggkIQlJSOJ+krifJCQhCQBJSEISknh+JPFAknignZ0dAC5dugSAJCTxQJJ4bpL4l0jigSTxQJIAkIQkJCEJAEncTxIAkgCQBIAk/r0kcT9JSEISkpAEgCQAJAEgiRdEEv8SSTyQJB5IEg8kiQe64447ANje3uaGG27gBZHEA0nihZHE/SQhCUlIQhKSkEREUEphsVg8uLX22lx11VVXXXXVVVf9z0Fw1VVXXXXVVVdd9T/IfD7/rlIKkogIJHE/SUgCQBKS+JdIQhLPTRIPJAmAxzzmMQD83d/9Hc9NEg8kiecmCUk8N0lI4n6SuJ8kACTxgkgCQBKSAJAEgCQAJPHvIQlJAEhCEs+PJB5IEgCSeCBJvCgk8cJI4oEk8dwkcccddwBwww03cD9J3E8SDySJF4UkHkgSkpCEJCQREUQEs9nsQX3fvxdXXXXVVVddddVV/3MQXHXVVVddddVVV/0PsrW19d4RQUQgCUlIQhKSAJDEv5YknpskHkgSj3nMYwC4/fbbkYQkHkgSDySJ50cSkpCEJB5IEs9NEveThCQkIYn7SeJ+kpCEJJ6bJB5IEi+MJB5IEveThCQkIQlJAEhCEs9NEpKQxANJQhIPJAlJPDdJ/GtIAuBP/uRPALj++uv5l0ji+ZGEJCQhiftJQhKSAJCEJCQhCUlEBKUUNjc3X5urrrrqqquuuuqq/zkIrrrqqquuuuqqq/6HqLW+d0QQEUhCEpKQhCQAJHE/SUhCEpKQhCQk8fxI4l9y0003AfB3f/d33E8SDySJB5LEv4UknpsknpskJAEgCUk8N0kASAJAEpL495DE8yOJ+0lCEpJ4fiTxQJKQhCSeH0k8kCQeSBIPJIn77e3tAbC9vQ2AJF5UkpDEc5OEJO4nCUncTxIRQUQQEZRSmM/nD5b03lx11VVXXXXVVVf9z0Bw1VVXXXXVVVdd9T/E1tbWZ0UEkpCEJCQhCQBJAEhCEi+MJCTx3CTxQJK432Me8xgA/u7v/g5JPJAkHkgSDyQJSfxLJAEgCQBJSEISkgCQxP0kcT9J3E8SkpCEJAAk8R9FEgCSkIQkJCEJAElI4oEk8UCSAJDEi0ISDySJB5LEA0nigfb397njjjvY3t7mhhtu4IEkcT9JPJAk/iWSeCBJSEISkpCEJCKCUgobGxufxVVXXXXVVVddddX/DARXXXXVVVddddVV/wNExHt3XffgiCAikMQDSQJAEv8aknhuknggSQDcdNNNANx+++0ASOKBJPFAknhuknh+JCGJF5UkJAEgCUkASEISz00S/xEkIQkASTw/krifJAAkASAJAEn8a0jihZHEA0nigSQB8PjHPx6Al3u5l+NFIYkXlSQAJAEgCUkASCIiiAhKKSwWiwcDr81VV1111VVXXXXVfz+Cq6666qqrrrrqqv8BNjY23quUQkQgCUlIQhKSAJDE/SQhCUlIQhKSeH4k8dwk8UCSeMxjHgPAbbfdxv0k8UCSeCBJPDdJSEISkpDEA0kCQBLPTRIPJIn7SeJ+kpCEJCQBIAlJSOJfSxKSuJ8kACQhCUlIQhIAkpAEgCQeSBLPTRIviCSemyReEEk8kCTud8cddwCwvb3N/SRxP0n8SyQhCUlIQhL3kwSAJO4nCUlIIiKICGqtzGazz+Kqq6666qqrrrrqvx/BVVddddVVV1111X8zSa89n89fWxKSkIQkJCEJAEkASEISL4gkJPHcJPHCPOYxjwHgtttuY29vjweSxANJ4oEk8aKSxANJQhKSkASAJCQhCQBJSAJAEpJ4bpL4t5DECyKJB5LEc5PE/STx3CRxP0lI4oEk8dwk8UCSeEEk8UB7e3vccccdbG9vc8MNN/DCSOKBJCGJ50cSkgCQBIAkJCEJSUhCEhFBKYWtra3Xtv3aXHXVVVddddVVV/33Irjqqquuuuqqq676bzafz9+rlEJEIAlJSEISAJIAkMSLShLPTRIPJIn73XTTTQDcdtttAEjigSTxQJJ4IEn8SyRxP0k8P5J4IEncTxL3k4QkJCGJ/0iSuJ8kJCEJAElIQhKSAJCEJAAkcT9JAEjigSQhCUn8SyTxQJK4nyQeSBKSuOOOOwB45CMfyYtKEi8KSQBIAkASkpCEJCQREUQEpRRms9lncdVVV1111VVXXfXfi+Cqq6666qqrrrrqv9nGxsZ7RwSSkIQkJAEgCUlI4n6SkIQkJCEJSTw3SUjigSTxQJIAuPHGGwH4h3/4B+4niQeSxANJ4oEkIYnnJglJ3E8SAJJ4IEkASEISkgCQhCQAJCGJ50cSkgCQBIAk/jUkASCJ5yYJAEm8MJKQxL+FJF4QSbwgkrjf4x//eABuuOEGHkgS95PEi0ISknggSQBIAkASkpBERCCJiKDWynw+f3Br7bW56qqrrrrqqquu+u9DcNVVV1111VVXXfXfaD6ff1cpBUlEBJK4nyQkcT9JSOIFkYQk/iWSeKDHPvax7OzsAHDp0iUkcT9JPJAkHkgSz00SkpCEJB5IEg8kCUlIAkASDySJ+0kCQBKSkIQkJCGJ+0kCQBL/HpKQhCQkASAJAElIQhKSkIQknpskACTxL5HEA0niBZHEC7K3t8cdd9zB9vY2N954I/8SSTw3SUjifpKQhCQAJAEgiftJQhIRQUQQEcxmswf3ff9eXHXVVVddddVVV/33Ibjqqquuuuqqq676b7S5ufneEUFEIAlJSEISkgCQhCReVJJ4IEm8MDfddBMAf/d3f8f9JHE/STyQJB5IEv9aknhBJCEJSQBIQhIAkvjPIgkASUjiuUkCQBIviCTuJ4kHksTzIwlJPJAkHkgS95PEA0nifpKQxB133AHA9ddfz7+WJF4YSQBIQhKSkIQkJCGJiCAiKKWwWCxeh6uuuuqqq6666qr/PgRXXXXVVVddddVV/01qre8dEUQEkpCEJCQhCQBJPJAkJCEJSUji+ZHEA0nigSRxvxtvvBGAv//7v+eBJHE/STyQJB5IEi+MJCQBIAkASUgCQBKSeG6SAJCEJCQhCUlIQhKSkIQkJPHvIYn7SUISkpAEgCQAJCEJSdxPEgCSkMT9JHE/SUhCEpKQxL9EEi+IJO4nifvdeeedADzqUY/iuUnifpJ4IEm8KCTxQJKQhCQkIYmIoJTCbDZ7kKTP4qqrrrrqqquuuuq/B8FVV1111VVXXXXVf5PNzc3PKqUgCUlIQhKSAJDE/SQhiedHEpJ4bpJ4IEk8kCRuuukmdnZ2ALj99tuRxAsiiRdGEpJ4bpJ4YSRxP0lIAkASAJL4zyQJSfxLJAEgiQeShCSeH0n8a0niBZHE/STxguzt7QGwvb3NDTfcgCT+JZJ4bpKQhCQkIYn7SQJAEg8kCUlEBBFBrZXFYvHeXHXVVVddddVVV/33ILjqqquuuuqqq676b1BKee++7x8siYhAEpK4nyQAJCGJF4UknpskHkgSD7SzswPA3//933M/SdxPEg8kiftJQhLPTRKSkIQkHkgSAJJ4bpK4nyQAJAEgCUlIQhKSkIQkJCGJ+0lCEv9WkpCEJAAkIQkASQBIAkASDyQJSQBI4n6SeFFI4oEkcT9JvCCSeKD9/X0e97jHAXDDDTfwbyGJ50cSkgCQhCQkIQlJSEISkogISiksFosHA+/NVVddddVVV1111X89gquuuuqqq6666qr/Btvb258VEUQEkpAEgCQkASCJ+0lCEpKQhCSeH0k8N0m8IK/0Sq8EwN/93d8hiftJ4n6SeCBJ/FtIAkASAJKQhCQkASCJ+0kCQBLPTRLPTRKS+I8kiftJQhKSAJAEgCQkIYn7SeJ+kgCQxAsjiQeSxAsiiftJ4oEkAfD4xz8egEc96lHcTxL3k8T9JPFAkviXSOKBJCEJSUhCEhFBKYVSCovF4rO46qqrrrrqqquu+q9HcNVVV1111VVXXfVfLCLeu9b64IhAEpKQhCQkASAJAElI4vmRhCSemyReGEncb2dnB4Dbb78dAEncTxL3k8QLIglJvDCSeCBJPDdJAEhCEgCSkIQkJCEJSQBIQhL/USQhiecmCUk8kCQAJPFAknhhJCGJB5KEJF4YSdxPEveTxANJ4n57e3sAbG9vc8MNN/CiksSLShIAkgCQhCQkERFIIiIopTCfzx8MvDZXXXXVVVddddVV/7UIrrrqqquuuuqqq/6LbWxsvFdEIAlJSEISkgCQBIAkXhSSkMQDSeKBJPFAknjsYx8LwN///d8jiftJ4n6SuJ8k7ieJ5yYJSUhCEpKQhCTuJ4n7SeJ+kgCQxP0k8UCSuJ8k7icJSUjigSTxbyUJSUjifpKQhCQAJAEgCUlIAkASkpCEJAAk8UCSkIQknh9J3E8SLwpJPND+/j533HEHADfccAMviCReGElIQhKSkIQk7icJSUjifpKQREQgiVIKtVZms9lncdVVV1111VVXXfVfi+Cqq6666qqrrrrqv5Ck157NZq8dEUQEkpCEJAAkIQlJ3E8SkpCEJCTx/EjigSTxQJJ4oFd6pVcC4LbbbuNFJYn7SeJfQxIAkrifJCQBIAkASUgCQBKSkASAJCQBIAlJPDdJ/HtI4rlJ4oEkIQlJvKgk8aKQxAsiiftJ4n6SeCBJAPzJn/wJAI961KN4IEk8P5J4IEm8IJKQxP0kIQlJSEISkogIIoJSCovF4rVtvzZXXXXVVVddddVV/3UIrrrqqquuuuqqq/4LbWxsfFYphYhAEpKQBIAkJHE/SUji+ZGEJJ6bJB5IEi/Izs4OAH//938PgCTuJ4n7SeIFkYQk/iWSeCBJPJAkACRxP0k8kCTuJ4n7SUISAJIAkMS/lyQkIQkASUhCEg8kCQBJSOK5SeJFJYkHksT9JPGikMT99vb2ANje3uaGG27gX0MSLwpJPJAkJCEJSUgiIiilUGtlNpt9FlddddVVV1111VX/dQiuuuqqq6666qqr/uu89nw+f+2IQBKSkASAJCQBIAlJvCgk8dwk8YJIAuCxj30sAH//93+PJO4niftJ4n6SuJ8knpsknh9JSOJ+krifJCQhiQeShCQAJCEJSQBIQhIAknggSbwobPPcJAEgCQBJPJAkHkgSkpAEgCTuJwlJSEISAJIAkIQknpskJPFAknhBJHE/SdxPEg+0v7/PHXfcAcCNN97ICyOJf4kkJCEJSdxPEpKQBIAkACQhCUlEBKUUFovFa9t+ba666qqrrrrqqqv+axBcddVVV1111VVX/RdZLBbvFRFEBBGBJCQhCUkASOKBJCEJSUhCEs9NEi+MJB5IEq/0Sq8EwG233QaAJO4niftJ4n6SuJ8knpskJCEJSUjigSQBIInnRxKSuJ8kHkgSkpCEJAAkIYkXlW1eEEkASAJAEpKQBIAkJCGJB5LE/STxopCEJCQhiX+JJO4niftJ4n6SeCBJAPzJn/wJAI961KN4bpJ4fiTxQJKQxHOThCTuJwlJAEhCEhFBRBARlFKotdJ13Xtx1VVXXXXVVVdd9V+D4Kqrrrrqqquuuuq/xoMXi8V7RwSSkIQkJCEJAEkASEISknh+JCGJB5LEA0nigSTxQDs7OwD8wz/8A/eTxL9EEveTxItKEg8kCUkASEIS95OEJAAkIQlJPDdJ3E8SAJKQxP0k8W8hiQeSxANJQhKSAJCEJAAk8UCSAJDEi0oS/x6SuN/+/j4A29vb3HDDDUjiX0MS/xJJ3E8SkpCEJCQhCUlEBKUUZrPZ62Tma3PVVVddddVVV131n4/gqquuuuqqq6666r/AfD7/rFIKEYEkJCEJSQBIAkASLypJPJAkHkgSz89jH/tYAP7+7/8eAEk8N0ncTxIPJIn7SUISL4wk7ieJB5LE/STxQJKQBIAkJCEJSUgCQBKSAJDEfzRJSAJAEpKQxANJ4n6SAJCEJCTxQJL4l0jigSRxP0ncTxL3k8T9JHE/Sezt7XHHHXcAcMMNN/D8SOJ+kvi3kIQk7icJSQBIIiKICEop9H3/oK7r3ourrrrqqquuuuqq/3wEV1111VVXXXXVVf8FNjY23jsiiAgkIQlJAEhCEpK4nyQkIQlJSEISz00SDySJB5LE/SQB8Eqv9EoA3H777Tw3SdxPEveTxAsjCUlIAkASkpDE/SQBIInnJgkASUhCEveTBIAkHkgS95PEfwRJSAJAEgCSkIQkACQhCUlIAkASknhBJHE/STw/kpDEA0niP8Kf/MmfAPDoRz+afw1JPDdJSEISkpDEA0lCEveThCQkERFEBLVWZrPZa9t+MFddddVVV1111VX/uQiuuuqqq6666qqr/pPNZrPvKqUQEUhCEpIAkIQk7icJSbwgknhuknggSbwgktjZ2QHg7//+75EEgCTuJ4n7SeJ+krifJF4QSTw3SQBIAkASkpCEJAAkcT9JSEISkpAEgCQkIQkASUjifpIAkMSLShLPTRIAkgCQBIAkACRxP0k8kCQkIQlJSAJAEveThCQAJCGJ5yaJB5LE/SRxP0ncTxL3k8T99vf3Adje3uaGG24AQBLPTRL3k8QDSUISz48kJHE/SUhCEpKQhCQkERGUUpjNZg+utX4WV1111VVXXXXVVf+5CK666qqrrrrqqqv+k21ubr53RCAJSUgCQBKSAJCEJF4UkpDEA0niBZHE/d7gDd4AgL//+7/nuUnifpJ4fiRxP0lI4l8iiQeSxHOTBIAkJAEgiQeSxP0kIYkHkgSAJAAk8e8hCQBJAEhCEpIAkIQkACQhCUn8a0jiRSGJ+0nifpK4nyTuJ4n7SWJvb4/HPe5xANxwww38Z5GEJAAkIQlJSEISEUFEUEqhlMJsNnttrrrqqquuuuqqq/5zEVx11VVXXXXVVVf9J+r7/rMiAklIQhKSkIQkACTxQJKQhCQkIQlJPDdJPJAk7ieJ5+emm24C4O///u+RBIAk7ieJ5yaJF0YSknhukpDE/SRxP0lIQhKSAJDE/SQBIAlJSAJAEpK4nyQAJPHvJYnnJgkASTyQJO4niQeSxHOTBIAkXhSS+I/2+Mc/HoBHP/rRPJAk/iWSeG6SkIQkJPFAkrifJCQhCUlEBBFBKYW+7x8cEd/FVVddddVVV1111X8egquuuuqqq6666qr/RFtbW58dEUQEEYEkJCEJAEkASEISknhBJPHcJPGCSOJ+krjpppvY2dkB4Pbbb+eBJPHcJHE/SdxPEs+PJCQhCUk8kCQAJPH8SAJAEpIAkMQDSUISkpCEJAAk8e8lCQBJSEIS95MEgCQkIQkASUgCQBKSkASAJCQhCUkASAJAEpJ4fiQhiQeSxP0kcT9J3E8S95PE/SRxv/39ffb29tje3uaGG27ghZHE/STx3CTx3CQhiftJQhL3k4QkJCGJUgq1Vmaz2Wtz1VVXXXXVVVdd9Z+H4Kqrrrrqqquuuuo/Sdd1nxURRASSkIQkJAEgCQBJvKgk8cJI4gV57GMfC8Df//3fcz9JPDdJ3E8S95PE/SQhiReFJAAkASAJSQBIQhIAkpCEJCQBIAlJSEISDyQJSQBIQhKSeG6S+LeQxP0k8UCSkASAJB5IEi8KSUgCQBKSeG6S+JdI4n6SuJ8k7ieJvb09Hve4xwHw6Ec/mucmiReFJF4YSdxPEpKQhCQkIYmIICIopdB13YMlfRdXXXXVVVddddVV/zkIrrrqqquuuuqqq/6TbG9vf3ZEEBFIQhKSAJCEJCRxP0lIQhKSkIQknpskHkgSDySJ+0nifjfddBMAf//3f48k7icJAEncTxL3k8T9JPFAknhBJCGJF0QS95PEc5PE/SQBIAlJSOJ+kvjPIon7SUISkrifJAAkIQlJAEjifpKQBIAknpsknh9JPJAk7ieJF5Uk7nfnnXcCcOONN/JvIYkXhSQkASAJSUhCEpKQREQQEXRdx3w+f22uuuqqq6666qqr/nMQXHXVVVddddVVV/0n6LrusyKCiEASkpAEgCQkcT9JSOIFkYQkHkgSDySJF+axj30sOzs7ANx+++0ASOK5SeJfIokHkoQkJCEJSUjigSQBIAlJ3E8SkgCQhCQkIQkASUgCQBIPJAlJPDdJSOLfShKSkASAJCRxP0lIQhKSkMQDSQJAEpK4nyQAJPEvkcQDSeJ+krifJO4niftJ4vm58847ueOOO9je3uaGG27gXyKJ+0niuUlCEpKQhCQeSBL3k4QkJBERSCIiKKXQdd2DJX0XV1111VVXXXXVVf/xCK666qqrrrrqqqv+E2xvb392RCAJSUgCQBKSAJCEJF5UknggSbwgkrifJG666SYA/v7v/x5J3E8SAJK4nyQAJHE/STyQJF5UkgCQxP0kIYn7SeK5SUISkpAEgCQkIYn7SUISknhR2eZFIYn7SUISAJJ4IElIQhIAknggSTyQJF4QSTyQJP41JHE/SdxPEgB33HEHAI9+9KN5fiTxopDE8yMJSdxPEpK4nyQkERFEBKUUaq3M5/PX4aqrrrrqqquuuuo/HsFVV1111VVXXXXVf7Ba62dJIiKICCQhCUlIAkAS95OEJCQhCUlIQhLPTRIPJIn7SeIFeexjHwvAH/7hHwIgiecmiecmiftJ4oEkIYkXRBKSAJAEgCSemyQAJCEJSUhCEg8kCUncTxKSeCBJ/FtJQhLPTRKSkIQkJAEgCUlIQhL3kwSAJCQhiftJ4n6SkIQkJCEJSbwwkrifJO4niecmiftJ4n5PeMITALjxxhuRxItCEg8kiX+JJCQBIAlJSEISkpBERBARlFLouu5BwHdx1VVXXXXVVVdd9R+L4Kqrrrrqqquuuuo/2PHjxz+7lIIkJCEJSUgCQBIAkpDECyMJSTyQJF4QSdxPEgCPfexjAbj99tvZ29vjuUniuUnifpK4nySemyQkIQlJSEIS95PEA0lCEpKQBIAkHkgSAJKQhCTuJwlJ/GvZ5kUlCUlI4vmRxP0kASAJSQBI4rlJAkASLypJ3E8Sz48k7ieJf8ne3h533HEH29vb3Hjjjbwgknh+JPH8SEISz00SAJKQhCQkIQlJRASlFEopLBaL1+aqq6666qqrrrrqPxbBVVddddVVV1111X+grus+yzaSkIQkJCEJAEkASOJfQxIPJIn7SeKFuemmmwD4+7//ewAkASCJ+0kCQBL3k8TzI4kXlSTuJwlJPDdJAEhCEpIAkMT9JCEJSUhCEpKQhCQkIYkHksS/RBLPTRIPJAlJSEISkgCQhCQAJHE/SQBIAkASknggSfxLJPGCSOKFkcT9JHE/SQA8/vGPB+AVXuEV+PeShCTuJwlJSOJ+krifJCQhCUlIIiIopVBrfTDwXVx11VVXXXXVVVf9xyG46qqrrrrqqquu+g+0tbX12RFBRBARSEISkpCEJCQBIAlJSEISkpCEJCTx3CTxgkjifpK4nyQe+9jHAnD77bfz3CTx3CTx3CTxQJKQxAsjiftJ4n6SkIQkJAEgiQeSBIAkJAEgiX+JJCTxH0ESknh+JCEJAEkASEISDySJB5LE/STx/EhCEg8kiftJ4n6SuJ8knpsk7ieJ+915550AbG9vAyCJF4UkHkgSL4wkJAEgCUncTxIRQUQQEZRSKKUwn89fm6uuuuqqq6666qr/OARXXXXVVVddddVV/0G6rvusiCAikIQkJCEJAEkASEIS/xJJPDdJ3E8S/5LHPvaxAPz93/89e3t7SAJAEs9NEs9NEveTxHOThCQkIQlJSEIS95MEgCSeH0kASEISkgCQhCQkIQkASUhCEpKQhCQk8UCS+PeQxP0kIQlJSEIS95MEgCTuJwlJSOKBJAEgiftJQhKSkIQknpsk/iWSuJ8kXhhJ7O3tcccdd7C9vc2jH/1o7ieJ5yaJ50cSLypJAEhCEpKQhCQkERFEBLVWuq57sKTv4qqrrrrqqquuuuo/BsFVV1111VVXXXXVf5Ctra3PjggiAklIQhIAkgCQxANJQhKSkMRzk4QkXhBJ3E8S95MEwGMf+1gAbr/9dp6bJAAkcT9JAEjifpK4nyQk8aKSBIAkACQhCUlIQhIAkpCEJCQhCUncTxKSeGEk8dwk8aKQBIAkJPHCSEISkpCEJAAkIYkHkoQkJPFAknhRSOKBJHE/SbwwkrifJJ7bn/zJnwDwiq/4ivxHkYQkJCGJB5IEgCQkIQlJSEISEUEphVIKs9nstbnqqquuuuqqq676j0Fw1VVXXXXVVVdd9R+g67rPiggiAklI4n6SkIQkACQhCUk8N0lI4rlJ4n6SeFHcdNNN3HTTTQD8wz/8A5IAkMRzk8Rzk8T9JPFAknhhJCGJB5LE8yOJ5yYJAElI4n6SkIQkJCEJSfxnkIQkJCEJSUgCQBIPJAlJAEhCEs+PJO4niRdGEg8kiftJ4n6SuJ8knpsk7ieJ++3v7wOwvb3NjTfeyANJ4rlJ4n6SeCBJSOK5SUIS95PE/SQhCUlIIiKICEopdF334Ij4Lq666qqrrrrqqqv+/Qiuuuqqq6666qqr/gNsbW19dkQgCUlIQhKSkMT9JPGikMQLI4n7SeJ+krjfi73YiwHw93//99xPEgCSAJDEc5PE/SRxP0k8kCQkIQlJSEISkrifJCRxP0lIQhKSkASAJCQhCUkASEISkpCEJCTx/EgCQBL/VpK4nySeH0lIAkASkpDE/SRxP0lIQhKSkASAJO4nCUk8kCQk8UCS+JdI4n6SeG6SuJ8k9vb2eNzjHgfAox/9aP4zSUISAJKQxP0kERFEBBFBKYWIoO/7187MB3PVVVddddVVV13170Nw1VVXXXXVVVdd9e80m82+KyKICCICSUhCEpIAkIQk7icJSUhCEpJ4bpJ4IEn8a9x0000A/MM//AOSeEEkASCJ+0ni+ZHEi0oS95PE8yMJSUjigSTx3CQBIAlJSEIS95MEgCT+NSTxgkhCEpKQxP0kIQkASUhCEpKQhCSeH0kASOKBJCEJSfxLJHE/STw3SdxPEs9NEvf70z/9UwBuvPFGnh9J/Esk8aKSBIAkJCEJSUhCEhFBRFBrpeu6B9daP4urrrrqqquuuuqqfx+Cq6666qqrrrrqqn+njY2N944IJCEJSUhCEgCSAJCEJCTx/EhCEg8kiQeSxP0kcT9J3E8Sj33sY9nZ2eHSpUvcfvvtAEgCQBIAknhuknhuknggSUjihZHE/SQBIAlJSEISknggSUhCEgCSkIQkJAEgCUk8kCT+I0kCQBLPTRKSuJ8kACTx3CQhCQBJSOKBJPEvkYQk7ieJ+0nifpJ4YSTx/Ozt7XHHHXewvb3NjTfeyItCEveTxHOThCQkIQlJSOJ+kgCQhCQkIQlJSCIiiAgigtls9jq2H8xVV1111VVXXXXVvx3BVVddddVVV1111b/DbDb7roggIogIJCEJSQBIAkASLypJPJAkHkgS95PE83PzzTcD8Id/+IdI4gWRBIAknpsk7ieJ5yYJSUhCEpKQhCTuJwkASTw/kpCEJO4nCUlI4n6SkMT9JCGJ+0niP4IkACRxP0lIQhIAkpCEJCQhCQBJSEISkrifJB5IEveTxAsiiX8tSdxPEs9NEveTBMDjH/94AF7xFV+RF0QSLwpJvCCSkASAJAAkIQlJSEISEUEphVIKtdYH1Vo/i6uuuuqqq6666qp/O4Krrrrqqquuuuqqf7sHLxaL944IJCEJSUhCEpKQhCTuJwlJSEISkpDEc5PEA0niXyKJ+z32sY8F4I477gBAEgCSAJDEc5MEgCTuJ4n7SUISLypJAEgCQBKSkIQkJAEgCQBJSAJAEgCSkASAJCQhiftJQhL/WSRxP0lIAkASDySJ5yYJSdxPEpIAkMT9JCEJSUhCEpJ4bpK4nyTuJ4nnJon7SeK5SeJ+d955JwDb29v8e0jiRSEJAEk8kCQiAklEBKUUIoK+71/b9mtz1VVXXXXVVVdd9W9DcNVVV1111VVXXfVvtFgsvquUQkQgCUlIQhIAkgCQhCQk8YJIQhIPJIkHksT9JHE/STzQYx/7WAD+/u//nr29PV4QSQBI4rlJ4n6SeCBJvDCSkASAJAAk8fxIAkASkpCEJAAkIQlJSAJAEgCSkMQDSUISAJL495IEgCQkcT9JAEhCEpIAkIQkJCGJ+0lCEveTBIAkXlSS+JdI4rlJ4n6SeG6S2Nvb44477mBnZ4dXfMVX5EUliftJ4vmRhCQkIYn7SQJAEpKQhCQkERFIIiKICGqtD661vhdXXXXVVVddddVV/zYEV1111VVXXXXVVf8Gkl57Pp+/dkQgiYhAEpIAkASAJP41JPFAkvjXkMSrvMqrAHDHHXcAIAkASQBI4rlJAkAS95PE/STxQJKQhCQkIQlJSOJ+knggSUhCEpKQBIAknpskJPFAkgCQxP0kASCJ+0kCQBL/FpK4nyTuJwlJAEhCEgCSkMQDSUISknggSTyQJF4YSUjigSRxP0k8N0k8N0ncTxLP7U/+5E8AePSjH80LI4kXhSQk8dwkIQkASQBIQhKSkIQkIoKIoJRCRLBYLN7b9mtz1VVXXXXVVVdd9a9HcNVVV1111VVXXfVvsFgsPisikIQkJCEJAElIQhIAkpCEJCQhCUlIQhKSeCBJPJAk7ieJ+0nifpIAuOmmm9jZ2QHgH/7hH3hBJAEgiecmiftJ4n6SeFFJ4n6SkMTzIwkASUhCEpKQBIAkJCEJAEkASEISAJL4jyCJ+0lCEgCSkMT9JHE/SQBIQhKSkMQDSUISkrifJO4nCUk8N0k8N0ncTxL3k8Rzk8Rzk8T9JHG//f19AHZ2drjxxhv515DEA0niXyIJAEkASEISkpCEJCKCUgoRgST6vv8srrrqqquuuuqqq/71CK666qqrrrrqqqv+lSS99mw2e+2IICKQhCQAJCEJAElI4kUhiQeSxL/Fi73YiwHwD//wDwBIAkASAJJ4QSTx/EjifpKQxAsiCUncTxL3k4QkJCEJSQBIQhIAkpAEgCQkIQlJSAJAEveTxP0k8W8lCQBJvCCSkASAJCQhCUkASOJ+kpCEJJ6bJAAk8UCSkIQkJPHcJPH8SOJ+knhuknhukrifJPb29vjjP/5jAB7zmMfwL5HE8yOJF5UkACTxQJKICCQREZRSiAj6vn9t26/NVVddddVVV1111b8OwVVXXXXVVVddddW/0mKx+KyIQBKSkASAJCQBIIkHkoQkJCEJSTw3STyQJO4niftJ4n6SeKDHPvaxAPzhH/4hkgCQBIAkACQBIAkASTw3STyQJB5IEpKQhCQkIYkHkgSAJCTx/EjifpK4nySemyQkASAJSQBIQhIAkviPJAkASQBIQhKSeCBJAEhCEgCSAJCEJCQhCQBJAEjiRSGJB5LECyOJ5yaJ5yaJ+z3hCU8A4KabbgJAEv8RJCEJSUhCEveTBIAkJCEJSUgiIpBERBARRASz2ey7uOqqq6666qqrrvrXIbjqqquuuuqqq676VyilvPdsNnvtiCAikIQkJCEJAEkASEISknh+JCGJB5LEA0nifpJ4YV7sxV4MgNtvv529vT3+NSQBIIn7SeKBJPGikIQkACRxP0lIQhKSkASAJCQhCUlIAkASkpCEJAAkIQlJAEjiX8s2/xJJSAJAEgCSAJAEgCQkIQkASUhCEpIAkMRzk8QDSUISz48kJPFAkrifJO4niecmiecmiecmib29Pe644w62t7d5zGMew7+WJB5IEpJ4fiQhCQBJAEhCEpKQhCQigoggIogIuq57MPDeXHXVVVddddVVV73oCK666qqrrrrqqqv+FRaLxWdFBJKQhCQkIQlJSEISknhRSeKBJPEvkcT9JAHwYi/2YgD8wz/8A5IAkASAJAAkASAJAEk8N0ncTxIPJAlJPD+SkMT9JAEgCUk8N0lIQhIPJAlJSEISAJKQBIAkACTxr2Wbf4kk7icJAEkASAJAEpKQhCQk8dwkASAJSUhCEveTxANJQhKSkIQknpsknh9J3E8Sz00Sz00Sz+3xj388AI95zGO4nyReEEn8e0gCQBIAkpCEJCQhiYiglEJEEBHMZrPP5qqrrrrqqquuuupFR3DVVVddddVVV131Iqq1flbXdQ+OCCICSUhCEpIAkMT9JCEJSUhCEpKQxHOTxANJ4n6SuJ8knp+bbrqJm266CYB/+Id/4EUhCQBJAEjifpK4nySemyQkIQlJSOKBJAEgiftJQhKSkASAJAAkIQlJAEjifpK4nyQAJHE/SUhCEgCS+I8kCQBJAEjiuUlCEpKQhCQAJPH8SAJAEi8qSTyQJF4YSTw3STw3SdzvzjvvBODGG2/kxhtv5IEk8aKSxPMjCUlI4n6SAJDEA0kiIogIIoKIICKotT5I0mdx1VVXXXXVVVdd9aIhuOqqq6666qqrrnoRbW5ufnZEIAlJSEISkpCEJAAkIYkXRhKSeCBJ/GtI4n4v/uIvDsA//MM/IAkASQBIAkASAJJ4QSRxP0ncTxKS+JdIQhIAkgCQhCSemyQAJCEJSUhCEgCSkIQkJCEJAEkASEISz48k/r0kcT9JAEgCQBKSkIQkACTxQJIAkIQkJCEJSQBIAkASknhBJCGJB5LE/SRxP0k8N0k8N0k8N0ns7e3xuMc9DoDHPOYx/EeRhCQeSBKSAJAEgCQkIQlJSEISEUFEEBGUUuj7/r1tP5irrrrqqquuuuqqfxnBVVddddVVV1111YtgNpt9V0QQEUQEkpCEJCQBIAlJPDdJSOL5kcQDSeJ+krifJO4nief22Mc+FoB/+Id/4EUhCQBJAEjifpK4nyQeSBKSkMT9JCEJSdxPEgCSuJ8kJCEJSQBI4rlJQhKSeCBJSAJAEs+PJP49JAEgCQBJSAJAEgCSkMT9JCEJAElIQhIAknh+JAEgiftJQhKSAJCEJJ6bJO4niftJ4n6SAJDE/SQBIIn7SQJAEvf70z/9UwBuvPFGnh9JPDdJ3E8SDySJF0YSAJIAkIQkJCEJSUgiIogIIoJa64NLKZ/FVVddddVVV1111b+M4KqrrrrqqquuuupfIOm15/P5e0cEkpCEJCQhCQBJ3E8SkpCEJO4nCUlI4oEk8UCSuJ8kXhhJvNiLvRgAt99+O3fccQcAkgCQBIAkACTxgkjifpK4nySeH0lI4rlJAkASAJKQxANJQhIAkpCEJCQBIAkASUhCEveTxP0kIQlJ/HtJ4gWRBIAk7icJSdxPEpIAkIQkACQhCQBJSOKBJPHcJPH8SOJfIonnJonnJonnJom9vT3uuOMOdnZ2eMxjHsO/hyReFJIAkASAJCQhCUlIIiKICCRRSqHv+9e2/dpcddVVV1111VVXvXAEV1111VVXXXXVVf+C+Xz+WaUUIoKIQBKSkASAJAAkIYkXhSQeSBL/EkncTxL3e+xjHwvA4x73OAAkASAJAEkASAJAEgCSAJDE/SRxP0ncTxKSeGEkIQkASQBI4n6SkIQkACQhCUlIAkASkgCQhCQkIQlJSAJAEpJ4IEn8R5DE/SRxP0kASEISkpCEJCQhCQBJ3E8S95PE/SQhiftJ4l8iiQeSxP0k8dwk8dwk8dwk8dwe//jHA/CYxzyGF0QSz00S/xJJSEISkrifJCQhCQBJAEgiIogIIoKIICKotT6467rP4qqrrrrqqquuuuqFI7jqqquuuuqqq656Aa655poHv97rvd5vzWaz144IJCEJSUhCEpKQhCTuJwlJSEISkpDEc5PEA0nifpK4nyRekJtuuombb74ZgH/4h3/g30oS95PE/STxQJKQhCQkIQlJSOJ+kgCQBIAkJHE/SUgCQBL3kwSAJCQhiecmCUn8Z5OEJAAkIQkASUjiuUkCQBKSkIQkACQhiftJ4n6SuJ8kJPHcJCGJB5LE/SRxP0k8N0k8N0k8N0nc78477wTgpptu4sYbb+TfQhIPJAlJPDdJSOJ+kpAEgCQkIQlJRASSkERE0Pf9a3/4h3/406+55poHc9VVV1111VVXXfX8EVx11VVXXXXVVVc9l2uuuebB7/iO7/hZ3/RN3/T0pz3taa8dEUgiIpCEJCQBIIn7SUISL4gkJPFAkvjXkMQDvdiLvRgA//AP/wCAJAAkASAJAEkASAJAEgCSuJ8k7ieJ+0lCEi8KSQBIAkAS95OEJO4nCQBJSEISkgCQBIAkJCEJSdxPEpKQhCQk8Z9NEpIAkIQkJCEJAEk8kCQkcT9JSOJ+kgCQxANJQhKSkMRzk8S/RBLPTRLPTRLPTRJ7e3s87nGPA+Cxj30s/16S+JdI4n6SkIQkJCEJSUgiIogIIoKI4Kd/+qcf/Lmf+7m//Y7v+I6fxVVXXXXVVVddddXzIrjqqquuuuqqq656gHd8x3f8rG/6pm96+uu93ut99rd+67dy8eJFIoKIQBKSkASAJAAkIYkXlSQeSBL3k8T9JHE/STw3SbzYi70YAH/0R3+EJP4tJPH8SOKBJCGJ5yYJSUgCQBIAkgCQhCQkIQlJSAJAEpK4nyQkASAJSUhCEpKQhCReEElIAkAS/16SkIQk7icJSUhCEpKQBIAkJCGJ+0lCEpIAkIQkACQBIAlJ/Esk8UCSuJ8knpsknpskACRxP0kASOJ+f/qnfwrAjTfeyAsjiecmiReFJB5IEpIAkIQkJCEJSUQEEYEkJBERXLhwgR/90R990Du90zt99jd90zc9/R3f8R0/i6uuuuqqq6666qpnoxw/fpyrrrrqqquuuuqqF3uxF3vtz/3cz/2tV3qlV3rrn/mZn+Hrvu7ruOOOOyilEBFEBBFBRBARSCIikIQkIgJJSEISkpCEJCQhCQBJSEISAJKQhCQAJCEJAElIAkASAJKQBMCLv/iL8/CHP5x/+Id/4HGPexySAJAEgCQAJAEgCQBJAEgCQBKSAJAEgCQkIQkASUhCEpKQhCQkIQlJSCIikIQkJBERSEISkpCEJCKCiCAikEREEBFEBKUUIoJSChFBRBARRAQRQURQSqGUQimFUgoRQSmFiCAikEREIAlJSEISz49tbGMb29jGNrbJTDKTzMQ2tslMMpPMJDPJTGxjG9vYxja2sQ2AbWwDYBvbANgGwDYPZJsHksRzk8T9JHE/STw3Sbwgknhukliv19x4442cOXOG/f19zp49y7+FJJ6bJJ4f29zPNra5n23uZ5sHesYznsHv/M7vUGs9/vZv//av/Tqv8zrvvbW1deIf/uEffpurrrrqqquuuur/O8rx48e56qqrrrrqqqv+/3qxF3ux1/7cz/3c33rzN3/zj14ul8e//uu/nj/4gz8gM6m1UkqhlEJEEBFEBJKICCQREUhCEpKQhCQkIQlJSEISkgCQhCQkASAJSQBIQhIAkpAEgCQkASAJgLd6q7diNpvxV3/1V5w7dw4ASQBI4n6SAJAEgCQkASAJAEkASEISAJKQhCQkASAJSUhCEpKQREQgCUlEBJKICCQREUQEEUFEEBFIIiKQREQQEUQEEUFEUEohIiilUEqhlEIphVIKpRQigoggIogISilEBBFBRCCJiEASkpCEJJ4f29jGNgC2sU1mkplkJplJZpKZ2MY2trGNbTIT22QmtrGNbQBscz/b3M82ALYBsM2LShL3k8T9JHE/STw3SQBI4rlJ4rnt7e3x2Mc+ljNnzvDXf/3XvDCSeFFI4oWxzQPZxjb3sw2AbWxzv/39fZ70pCfxB3/wBzzmMY85/lqv9Vqv/Tqv8zrvfXR0dOnWW2/9a6666qqrrrrqqv+vKMePH+eqq6666qqrrvr/58Ve7MVe+3M/93N/683f/M0/erlcHv/hH/5hvvM7v5Nz587RWqOUQimFiCAiiAgigohAEhGBJCQhiYhAEpKQhCQkASAJSUhCEpIAkIQkACQhCQBJSAJAEgCSkASAJF78xV+cF3uxFwPg537u57ifJAAkASAJAEkASAJAEgCSkASAJAAkIQlJAEhCEpKQhCQkIQlJSEISkogIJCEJSUQEkpCEJCQhiYhAEhFBRCCJiKCUQkQQEZRSKKUQEUQEEUFEEBGUUogIIoKIICKICCKCiCAikEREIAlJSOL5sQ2AbWxjG9tkJraxjW1sY5vMJDPJTDIT29gmM7GNbWxjG9sA2MY2ALaxDYBtbHM/27wwknhRSOJ+kgCQxHOTxHOTBIAkAB760Ieys7PDnXfeyd7eHv8aknggSbyobPP82MY297PN/TKT5XLJH/zBH3Du3Dke85jHHH/t137tt36d13md9z46Orp06623/jVXXXXVVVddddX/N5Tjx49z1VVXXXXVVVf9//GO7/iOn/XhH/7h3/3mb/7mH71arY7/+q//Ot/wDd/Abbfdhm1sA1BKISIopRARRAQRgSQiAklIIiKQhCQkIQlJSEISkpAEgCQkIQlJAEhCEgCSkASAJAAkIQkASQBI4mVf9mW55ppr+KM/+iPuuOMOACQBIAkASQBIAkASAJIAkASAJAAkIQkASUhCEgCSkIQkJCEJSUhCEpKICCQREUgiIpBERBARRAQRQUQgiYhAEhFBRBARRASlFCKCUgoRQSmFUgqlFEoplFKICEoplFIopRARRAQRQUQQEUhCEpKQhCSeH9sA2MY2trGNbTKTzCQzyUwyE9vYxja2yUwyE9vYJjOxjW0AbPP82MY2ALZ5INs8N0k8N0ncTxLPTRLPTRLPTRIAknig9XrNbDbjpptuYmdnh8c97nH8W0niuUnigWzzQLZ5brYBsI1t7meb1hoRAcDtt9/OX/3VX3H77bfzmMc85vhrv/Zrv/Xrvu7rvs/Gxsaxf/iHf/gdrrrqqquuuuqq/y8ox48f56qrrrrqqquu+r/tmmuuefCbvdmbfdTnfu7n/vaLv/iLv/ZqtTr+67/+63zDN3wDT3ziE7GNbWzTWqPWSimFUgoRQUQQEUgiIpBERCAJSUhCEpKQhCQkIQlJSEISkgCQhCQAJCEJAElIAkASkgCQBIAkJAHwVm/1VgD86q/+Kuv1GkncTxIAkgCQBIAkACQBIAlJAEgCQBKSkASAJCQhCUkASEISkogIJCEJSUQEkogIJBERRASSkEREEBFEBBFBRBARRAQRQUQQEZRSiAhKKZRSKKUQEUQEEUFEEBFEBBFBRFBKISKQREQgCUlIQhKSeH5scz/b2MY2tslMbGMb29jGNraxjW1sYxvbZCa2sY1tbANgG9vYxja2sQ2AbQBs868hiftJ4n6SeG6SeG6SAJDEc5PE/fb393npl35pAM6ePcve3h4vjCReFJJ4QWxzP9vY5n62uZ9tAGxzv2maiAgAlsslt99+O3/1V3/Fcrlkc3Pz+Gu91mu99uu8zuu89+bm5vGzZ88+4/DwcJerrrrqqquuuur/MipXXXXVVVddddX/Wddcc82D3/Ed3/GzXud1Xue9Ac6fP88f/MEf8HM/93PYBsA2trHNNE3UWokIJCEJSUhCEpKQhCQAJCEJSUhCEpKQhCQk8dwkcT9J3E8S95PEc5PE/d74jd8YgMc97nHs7e3xQJIAkASAJAAkASAJAEncTxIAknggSTw3SUhCEpJ4IEkASAJAEveThCTuJwkASUjifpKQBIAkJHE/SUhCEpKQhCQAJPGfQRIvCkkASEISkpCEJAAkIQlJSEISkrCNJGwjCQDbvDCSALANgCRsAyAJ2wBIwjYPJAnbPD+SsM0DSWJvb4877riDm266icc+9rHccccd/HtJwjYviCQAbCMJSdgGQBKSkEREYJuIwDalFFprjONI13XYBuDcuXP89E//NKdPn+Yxj3kMr/Zqr/bgd3qnd/rs13md13nvf/iHf/idf/iHf/jt3/qt3/purrrqqquuuuqq/4uoXHXVVVddddVV/6dcc801D37t137t93qnd3qnz+aZzp8/z8/93M/xh3/4h9jmfraxjW0yE0lEBJKICCQhCUkASAJAEpJ4UUhCEg8kiftJ4n6SeG6SeG4333wzAP/wD/8AgCQAJAEgiReFJJ6bJB5IEpJ4YSQhCQBJAEgCQBKSkIQkJCEJAEncTxKSAJCEJCQBIAlJSEISknggSTyQJP41JGGb+0lCEg8kCUlIQhKSkIQkJAEgCUk8kCQkIYnnRxK2kYRtACQBYJsHkgSAbe4nCdu8MJKwzQNJwjaSsM0DScI2krANwJ/8yZ9w0003cdNNN/FvIQnb/GtJwjaSkIQkJCEJSUhCEpKICGxTa2UcRzITgIgAQBLnzp3j93//9/mDP/gDXu3VXo1Xe7VXe/DrvM7rPPh1Xud13usd3/EdP+u3fuu3vvsf/uEffucf/uEffpurrrrqqquuuur/CipXXXXVVVddddX/etdcc82DX/u1X/u9Xud1Xue9r7nmmgcDnD9/nj/8wz/kD//wDzl//jwAtgGwjW1sYxvbtNbo+56IICKQhCQkIQlJSEIS95OEJCQhCUlIQhLPTRL/GpJ4bpJ4sRd7MXZ2drjjjju44447kMQLIgkASQBIAkAS95MEgCTuJwlJPJAkJCEJSUhCEpK4nyQAJAEgiedHEpKQhCQkIQlJSAJAEgCSkMRzk4Qk/jNJAkASL4gkJCEJSQBIQhKSAJAEgCQkIQlJSMI2krCNJGxzP0k8kG0eSBK2uZ8kbAMgCds8kCRs8/xIwjbPjyTuvPNO7rjjDm666SYe+9jH8g//8A/8SyRhm+cmCds8kCQeyDb3k4RtJCEJSUgiIrCNbWwjCUlEBLVWhmGg6zoAIgIASdgG4A/+4A/4gz/4A06fPs2rvdqr8ZZv+ZYPfqd3eqfPBjh79uwzfvM3f/O7/uEf/uF3/uEf/uG3ueqqq6666qqr/jejctVVV1111VVX/a90zTXXPPi1X/u13+t1Xud13vuaa655MM90/vx5/vAP/5Cf//mfxzb3sw2AbWwDYBvbTNNErZWIQBKSkIQkJAEgiftJQhIvjCQk8UCSuJ8k7ieJ+0niuUnifi/2Yi8GwD/8wz/wQJIAkASAJAAk8UCSAJDEc5PEA0lCEv8SSUgCQBIAkgCQhCQkIQlJAEgCQBKSuJ8kJAEgiftJQhKSkMT9JPEfSRIPJIn7SUISkpCEJO4nCQBJSEISkpAEgCSeH0nYRhK2kQSAbV4YSdjmfpKwDYAkbAMgCds8kCRsIwnbPJAkbCMJ2zzQ4x//eG666SZe+ZVfmX/4h3/gP4okbPNAkgCwDYAkbCMJSUhCEpKQhCQkERHYxjYRwTiO9H2Pbe4nCQDbSOLcuXP87M/+LH/wB3/Aox71KF7t1V6NRz3qUQ96p3d6p88GuO+++279h3/4h9/+rd/6re/5h3/4h9/mqquuuuqqq67634bKVVddddVVV131v8I111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bR7gSU96Ek960pP4wz/8Q86fP89zsw2Abe5nG9tkJpKICCQREUhCEpKQhCQAJCGJB5KEJF4QSTyQJO4niRdGEg908803c/PNNwPwuMc9DkkASOJfIonnJgkASdxPEpJ4IElIQhKSkIQkJCGJ+0kCQBIAkpDEA0lCEgCSuJ8kJAEgCUlIQhKSkMQDSeKBJCGJ/yySeG6SkIQkACQhiecmCQBJSEISkpCEbSRhG0nYBkASALZ5IEkA2OZ+krANgCRsAyAJ2wBIwjaSsM0DScI2krDNA0nCNpK488472dvbY2dnh5tuuok77riDfy1J2OZ+krDNCyIJANtIwjYAkpCEJCQhCUlIIiKwTa2VcRwZx5Gu64gIHkgStpGEbc6fP88f/uEf8od/+IecPn2aV33VV+VRj3oUj3rUox58zTXXvPfrvM7rvPd999136z/8wz/89j/8wz/8zn333XfrP/zDP/w2V1111VVXXXXV/3RUrrrqqquuuuqq/3GuueaaBwO89mu/9nu9+Iu/+Gu/2Iu92GvzXM6fP88f/dEf8Ud/9EecP38eANvczzYAtgGwDYBtbJOZZCaZSdd1RAQRgSQkIQlJAEhCEgCSkIQkJHE/SUhCEpJ4IEn8SyTxL3mxF3sxAP7oj/4ISTw3SQBIAkASAJIAkASAJO4nCQBJPJAkXlSSkASAJAAkcT9JSEISAJKQBIAkJCEJSUgCQBIAkrifJCQhCQBJAEjifpL4jyAJSQBI4n6SkIQk7icJSUgCQBKSkIQkACQhiecmCdtIwjaSsM39JPFAtnkgSdjmhZGEbR5IErZ5fiRhm+e2t7fH4x//eF7plV6JV3mVV+HHfuzHeFFIwjbPTRK2eVFIwjaSkIRtACQREdjGNpKQhCRKKdhmGAYyE4CI4IEkYRtJ2EYSAOfOnePnfu7n+Lmf+zlOnTrFq73aq/HIRz6SRz3qUQ++5ppr3vt1Xud13hvg7Nmzz/j7v//73/qHf/iH37nvvvtu/Yd/+Iff5qqrrrrqqquu+p+GylVXXXXVVVdd9d/qmmuuefCZM2ce/GIv9mKvdc011zz4mmuuefCLvdiLvTbP5fz58/zRH/0RAD//8z/Pc7PN/WwDYBsA2wDYxja2sU1mUmslIogIJCEJSUgCQBIAkpDEi0oSDySJ+0nifpJ4bpJ4bpJ4sRd7MQAe//jHcz9JAEgCQBIvjCQAJHE/SQBIQhL3k4QkJPH8SEIS95MEgCQAJCEJSUhCEpIAkIQkJCEJSUhCEpIAkASAJCQhiftJAkAS/5kkASAJSdxPEpKQBIAkACQhCUlIQhKSkASAJCQhCUnY5rlJAsA2L4wkbHM/SdgGQBK2eSBJ2OaBJGEbSdjmgSRhG0nYBuDxj388r/RKr8TOzg433XQTt99+O/9RJPH82AZAEraRhCQkIQlJSEISkpBERGCbiKDWyjRN1FqRxHOThG0kYRtJPND58+f52Z/9WSRx6tQpHvWoR/HIRz6S06dP88hHPvJBr/M6r/Per/M6r/PePNPZs2ef8fd///e/9Q//8A+/A3Dffffd+g//8A+/zVVXXXXVVVdd9d+FylVXXXXVVVdd9d/icz/3c3/rxV7sxV6bF+D8+fP80R/9EQC/8Au/wAtjm/vZ5oFsA2Ab29jGNplJRBARRASSkIQkJCEJSUhCEveThCQkIQlJSEISz00SDySJ+0niuUniuUkC4I3f+I0BeNzjHsfe3h4AkgCQxHOTBIAkACTx3CRxP0ncTxLPTRKSkIQkJHE/SUgCQBIAkpDEc5OEJAAk8fxIQhKSkIQk7ieJ+0ni38o2L4gkHkgS95OEJO4nCUkASOL5kQSAJCTxQJKQhG0kAWAbAEkA2OZ+krifbe4nCdsASMI2AJKwzQNJwjaSsM0DScI2krDNA0lib2+Pxz/+8TzmMY/hxV7sxbj99tv5jyAJ2zw/kgCwjSRsIwlJSEISkpCEJCQhiYjANqUUMpPMRBIRAYAkbAMgCdtIwjaSsI0k7meb8+fP84d/+If84R/+IQCnT5/mkY98JI961KM4deoUj3zkIzlz5syDXud1Xue9X/IlX/K9T506BcDZs2efYduf9Vmf9Tr33XffrVx11VVXXXXVVf+VqFx11VVXXXXVVf/lPvdzP/e3XuzFXuy1AZ70pCcB8OQnPxmAJz3pSTz5yU/GNs+PbR7INvezzf1scz/b2MY2tslMAEopRASSkIQkJCEJAEkASEISknhhJCGJB5LEv0QSz00SD/RiL/ZiADzucY8DQBLPTRIAkgCQBIAkACQBIIn7SeJ+krifJCTxwkhCEveTBIAk7icJSUhCEgCSkASAJCQhCUlIAkASAJIAkIQkACTxQJKQxANJ4j+aJO4nCUkASEISkpCEJCQhCUkASOJ+kpCEJGwDIAnbAEjCNveTxP1s80CSALANgCRsAyAJ2wBIwjbPjyRs8/xIwjaSsA3An/zJn/CYxzyGm266iX8NSdgGQBK2+deQhG0kYRtJSEISkogIbCMJSUgiIrBNrZVpmshMACIC20gCwDaSeG62kcQLcu7cOc6fP88f/dEfAXDq1CkAHvnIR/KoRz2KU6dOcerUKc6cOfOg++6779bP+ZzP+a0P+ZAPeQhXXXXVVVddddV/JSpXXXXVVVddddV/qdd5ndd57xd7sRd77Sc96Ul89Vd/Nf8atnlR2AbANg9kG9vYppRCRCAJSUhCEpKQhCQkIYn7SUISkpCEJCTx3CQhiftJ4n6SuJ8knpskntuLvdiLAXDHHXdwxx138ECSAJDEv4Yk7ieJ+0nigSQhCUlIQhKSkMT9JCEJAEkASEISkrifJCQBIAlJSEISkpCEJCQBIAkASUgCQBIAkgCQxP0kASCJ58c2knhRSUISAJIAkIQkACQhCQBJAEhCEpKQhCQkASAJSUgCQBKSkIRtJGEbAEkA2OYFkYRt7icJ2zw3SdgGQBK2kYRtHkgStpGEbZ4fSezt7XHHHXdw00038WIv9mL8wz/8A/8ekrDNi0IStpGEbe4nCUlIQhIRgW0kERHYppRCaw1J2MY295OEbQAkYRtJANhGEgC2kcQLcv78eQD+6I/+iD/6oz9CEgCnTp3ivd7rvR78yEc+khd7sRd77X/4h3/4ba666qqrrrrqqv8qBFddddVVV1111X+pF3uxF3stgD/+4z/mBbHNi8I297MNgG0AbANgG9vYxja2iQgiAklIIiKICCQhCQBJAEhCEpJ4QSQhiecmiftJ4n6SeG6SeG6SAHi1V3s1AP74j/8YAEkASOK5SQJAEgCSAJAEgCTuJ4n7SeJ+kpDEv0QSkrifJAAkIYn7SUISAJKQBIAkJPHcJCEJAEncTxIAkgCQxH8WSdxPEgCSAJCEJO4nCQBJPD+SkIQk7ieJ+0lCEgCSkMT9JCEJSUhCEpKQxANJ4oEk8dwk8dwkASCJ5yYJAEk8tz/5kz8B4FVe5VX4jyYJSUhCEpKQxP0kASAJSUhCEpKQhCQkERFEBJKICCKCiCAzyUwyE9vYxjb3sw2Abe5nm/vZ5oFs8y85f/48f/RHfwTAO73TO30WV1111VVXXXXVfyWCq6666qqrrrrqv9TrvM7rvDfAk5/8ZJ4f2zw/tnkg29zPNg9kGwDb2MY2trENQEQgiYggIpAEgCQkIQlJSOK5SeIFkYQkHkgSL4wknpsk7vdiL/Zi7OzssLe3xx133IEknpskACTx/EgCQBIAkrifJO4niQeShCQkIQlJSEISkrifJCQBIAlJAEhCEpKQhCQAJCEJSQBIQhKSkASAJCQhCUlIAkASAJK4nyTuJ4l/K0lI4vmRBIAk7icJSQBIQhKSkIQkJCEJAEkASEISkpCEJO4niftJ4kUliQeSxP0k8dwk8YJIAkASz00SAJK48847edzjHsfOzg433XQT/1aSeCBJvCCSkASAJAAkIQlJSEISkpCEJCQREUgiIogIAGxjG9vYxja2sQ2AbQBs8/zY5oFs8/zY5n5PetKTADhz5syDueqqq6666qqr/isRXHXVVVddddVV/2Ve53Ve570B/viP/5jz58/zH80297PN/WxjG4CIQBIRgSQkIQlJSAJAEveThCQkIQkASUhCEpJ4bpJ4fiRxP0k8N0k8txd/8RcH4I//+I+RxP0kASCJ5yYJAEk8N0kASOJ+krifJCTxopCEJAAkIQlJAEhCEg8kCUkASAJAEpKQhCQkIQkASQBIAkASAJIAkIQkACTx3CTxH0kSAJKQBIAkJCEJAElIQhKSkIQkACQhiecmCUkASOJ+kpDECyIJSTyQJO4niftJ4rlJAkASL4gkXpA777wTgFd5lVfhX0MSz48kXhSSAJAEgCQkIQlJSAJAEpKQREQgiYggIrCNbWxjm/vZxjbPj21eGNu8MOfPn+dJT3oS11xzzYNf53Ve57256qqrrrrqqqv+qxBcddVVV1111VX/ZV7ndV7nvQCe9KQn8fzY5vmxzQPZ5n62AbANgG3uZxvb3C8iiAgiAklIQhKSkIQkJCEJSUjiRSEJSTyQJO4niftJ4rlJ4vm5+eabufnmmwF43OMex/0k8dwkASAJAEkASAJAEs9NEveTxANJQhKSkIQkACQhCUncTxIAkgCQxP0kIQlJAEhCEgCSkMRzk4QkACQBIAkASQBI4j+LJO4nCUncTxL3kwSAJAAk8fxIQhL3k4QkJCGJ+0kCQBKSuJ8kJCEJSUhCEs9NEveTxP0kcT9JAEjiuUkCQBLPTRIAkgCQxJ133gnAzTffzM0338x/Fkk8N0kASOJ+kpCEJCQhCUlIQhIRgSQigojANraxjW1scz/b2AbANvezzf1s86Kwzf3+6I/+CIDXeZ3XeS+uuuqqq6666qr/KgRXXXXVVVddddV/mRd7sRd7bYA//uM/5kVlmweyzf1sA2AbANsA2MY2trGNbQAkIQlJSEISkgCQBIAk7icJSUhCEpKQhCQk8dwk8UCSeGEk8YJI4lVf9VUB+OM//mMkASCJ+0kCQBIvjCQAJAEgiftJ4n6SkMQLIokHkoQkACQBIAkASUhCEpKQhCQAJCEJSQBIQhKSkASAJCQBIAkASQBI4vmRxH8kSdxPEveThCQAJAEgCQBJSEISkpAEgCQkIQlJPJAkJAEgiftJ4kUhCUncTxL3k8T9JPHcJPGCSAJAEs/P3t4ev/ZrvwbAq7zKq/AfTRKSAJCEJCRxP0kASEISAJKQhCQkIQlJSEISEUFEIAkA29jGNraxjW3uZxsA29zPNvezzQPZ5oV50pOeBMCZM2ce/OIv/uKvzVVXXXXVVVdd9V+B4Kqrrrrqqquu+i/xOq/zOu8N8Md//Mc8P7b517DN82Ob5ycikIQkJCEJSUhCEpKQhCQkIYl/iSQk8UCSeH4kcT9JPDdJAEgCYGdnh5tvvhmAxz/+8Tw3SQBI4n6SAJAEgCSemyQAJHE/SUjifpKQhCQk8UCSkIQk7icJAEkASEISz00SkgCQBIAkJCEJSUhCEgCSkIQkJAEgiftJQhKS+PeSxANJ4rlJ4n6SkASAJCQhCUlIQhKSkIQkACRxP0lIQhL3kwSAJO4nCUlI4rlJQhIPJIl/iSSemyQAJPGCSAJAEve78847Abj55pu5+eab+beSxANJ4gWRhCQAJAEgCUlIQhKSAJCEJCQhCUlIIiKICABsYxvb2MY2trENgG0AbPOisM1zsw3A+fPnedKTnsQ111zz4Mc+9rGvxVVXXXXVVVdd9V+B4Kqrrrrqqquu+i/xju/4jp8F8KQnPYkXlW0eyDbPzTYAtrmfbWxjGwBJSCIiiAgiAklIQhKSkIQkHkgSkpCEJCQhiecmCUncTxL3k8T9JPHcJPH8vOqrvioAj3vc49jb2wNAEgCSeG6SAJAEgCQAJAEgiftJAkASkrifJJ4fSUhCEg8kCUkASAJAEveThCQkIQkASUgCQBKSkIQkACQhCUkASAJAEpIAkIQkHkgS/xkkIYn7SUISAJKQhCQAJCGJ5yYJSQBIQhKSkIQkJCEJAEkASEISDyQJSUhCEs9NEg8kiftJAkAS95MEgCSemyQAJPGCSGJvb4/HP/7xALzYi70Y/xqSeH4k8aKQBIAkACQhCUlIQhKSkIQkJCEJSUhCEpIAsI1tnpttnh/b3M82LwrbAPz8z/88AK/7uq/7Plx11VVXXXXVVf8VCK666qqrrrrqqv9011xzzYOvueaaBwP88R//Mc/NNs/NNg9km/vZBsA2ALYBsI1tbPNAkpCEJCQhCUlIAkASAJKQhCQk8YJIQhLPTRL3k8T9JPHcJPGCSOLFX/zFAfiTP/kTACTx3CQBIIkXRhIAkrifJO4niftJQhKSeH4kIQlJAEhCEgCSkIQkJCEJSUhCEpIAkIQkJPFAkrifJCQBIIn7SeK/gyQkcT9JAEgCQBL3k4QkJCEJAElIQhLPjyQkASCJ+0lCEi+MJCTxQJK4nySemySemyQAJPHcJAEgCQBJ3O9P/uRPALj55pvZ2dnhP4sknpskACQBIAlJAEgCQBKSkEREEBFEBBGBJCRxP9vYxja2AbCNbQBscz/b3M82D2SbF+T8+fMAnDlz5kEv9mIv9tpcddVVV1111VX/2Qiuuuqqq6666qr/dO/4ju/4WQB//Md/zH8W2zyQbQAkERFIQhKSkIQkJCEJSUjigSQhCUlIQhLPTRKSeCBJ3E8Sz00SL4gkAN74jd8YgMc97nHs7e0hiftJAkASz00SAJIAkMRzk8T9JHE/SUjigSQhCUlIQhIPJIn7SeJ+kpDEc5OEJAAkASAJSUhCEpKQBIAkJAEgCUncTxKSkMQDSUISL4xtXhSSeG6SkASAJAAkASAJSUhCEpKQhCQAJAEgCUlIQhKSuJ8kACQhiftJQhKSkIQkJCGJB5KEJO4niftJ4rlJ4gWRBIAkXhBJ7O3tcccdd7Czs8Orvuqr8h9NEpIAkIQkJHE/SQBI4n6SkIQkJCEJSUhCEpKQhCTuZxvb2MY2trHN/WwDYJvnxzb/EtucP3+eP/qjPwLgxV7sxV6Lq6666qqrrrrqPxvBVVddddVVV131n+7FXuzFXhvgj/7oj3hutnlutnkg29zPNgC2AbDN/Wxjm/tJQhKSkIQkJAEgCQBJAEhCEpKQxPMjCUlI4oEk8S+RxHOTBIAkHujFX/zFAXj84x/PA0niuUkCQBIAkgCQBIAkACRxP0ncTxIPJAlJSOL5kYQkJAEgCUlIQhKSuJ8kJCEJSQBIQhKSkIQkJCEJSUhCEpIAkIQkACQhCUk8kCQAJPEvsc2/liQk8UCSAJAEgCQkIYnnJglJAEhCEs9NEpIAkMT9JPGiksQDSeJ+krifJJ6bJAAk8YJIAkASAJK436//+q8DcMstt/DvIYkHksQLIglJAEgCQBKSkASAJAAkIQlJSEISkpBERPAvsQ2AbQBsA2CbF8Q2L8gf/dEfAfA6r/M6781VV1111VVXXfWfjeCqq6666qqrrvpP9Tqv8zrvfc011zwY4MlPfjL/Wra5n20eyDYAtnlukpCEJCQREUhCEpKQhCQkIYl/LUk8kCTuJ4n7SeK5SeIFefEXf3EA7rjjDu644w4kASCJ+0kCQBIAknh+JAEgCQBJ3E8S95OEJJ6bJCQhCUlI4n6SkASAJAAkASAJSUhCEpKQhCQAJAEgCUk8P5KQxP0k8V9BEpK4nyTuJwlJ3E8SAJKQxP0kIQlJSAJAEpKQBIAkJCEJSdxPEgCSuJ8kJCGJ50cSknggSdxPEveTxP0kASCJ5yYJAEn8SySxt7fHHXfcwc7ODq/6qq/Kv4Yknh9JvCgkASAJAElIQhKSkIQkJCEJSUhCEhGBJCQhCQDb2MY2trENgG2eH9vczzYPZJvnZpsnPelJPOlJT+Kaa6558Iu92Iu9NlddddVVV1111X8mgquuuuqqq6666j/Vi73Yi70WwB//8R/z3Gzz3GzzL7HNc7PNA0lCEpKQhCQkIQlJSEISAJKQhCQkIQlJSEISkpCEJB5IEg8kiftJ4rlJ4gWRBMCrvuqrAvAnf/InSAJAEveTBIAknpskACTx3CQBIIn7SUIS95OEJCTxgkhCEveTBIAkACQhiecmCUlIAkASkgCQhCQkIQlJ3E8SkgCQhCQkIQlJSAJAEv+RJPGCSEISAJKQBIAkJCEJSUhCEpIAkASAJCQhCUlIQhKSAJAEgCQk8UCSkIQkJCGJ5yaJ+0nifpK4nySemyQAJPHcJAEgCQBJPLc/+ZM/AeDFXuzF+K8mCQBJAEhCEgCSkIQkJCEJSUQEkpCEJF4Y29zPNgC2+fd40pOeBMDrvM7rvBdXXXXVVVddddV/JoKrrrrqqquuuuo/1Yu92Iu9NsAv/MIv8K9lm/vZBsA2ALYBsM39bAMgCUlIQhKSAJCEJCQBIAlJ/GtIQhL3k8QDSeK5SeIFkcT9XvzFX5xjx45xxx13cOedd/LcJPHcJAEgCQBJAEgCQBL3kwSAJCRxP0k8N0lIQhKSkIQk7icJSQBIAkASkgCQhCQkIYn7SUISkgCQhCQkIQlJSEISkgCQhCT+NSTxH0kSkpDE/SQhCQBJSEISz00SkgCQhCSeH0lIAkAS95OEJP4lkpDE/STx/EjifpJ4QSQBIIkXRBIAkrjzzju54447OHbsGC/+4i/OfzRJSEISkpCEJO4nCQBJ3E8SkgCQBIAkJCEJSUgiIpDE/WxjG9vY5n62eX5scz/bPJBtnptt/uiP/giAF3uxF3ttrrrqqquuuuqq/0wEV1111VVXXXXVf5rXeZ3Xee9rrrnmwU960pM4f/48D2Sb52ab58c2L4xt7icJAElIQhKSkIQkACQhCQBJSEISkpCEJCQhCUlI4rlJ4n6SeH4k8dwkASCJ5/aqr/qqAPzJn/wJ95MEgCTuJwkASQBI4oEkASAJAEncTxL3k8T9JCEJSbwgkpCEJAAkIQkASUgCQBKSkIQkJCEJSQBIAkASkpDEc5OEJCRxP0lIQhKSuJ8k/jNIAkASDyQJSdxPEpK4nyQkIQlJAEhCEpIAkIQkJCEJSQBIQhIAkpDE/SQhCUlIQhKSkIQkHkgSDySJ5yaJ+0kCQBIviCQAJPGC/Mmf/AkAr/qqr8q/hyQeSBIviCQkASAJAElIQhIAkpCEJCQhCUlIQhKSkIQknh/b2OZ+tgGwzf1scz/bPJBtntu5c+d40pOexDXXXPPgF3uxF3ttrrrqqquuuuqq/ywEV1111VVXXXXVf5oXe7EXey2AP/7jP+ZfYpsHss1zsw2AbQBs80CSAJAEgCQkIQlJSEISAJKQxItKEpJ4IEncTxL3k8Rzk8QL8+Iv/uIcO3aMvb097rzzTgAk8dwk8YJI4rlJAkAS95PE/SQhiQeShCQkIQlJSOJ+kpAEgCQkIQkASUjiuUlCEpKQhCQkcT9JSEISkrifJCQhiecmif9IknhuknhBJCGJ+0lCEpKQhCQkIQkASQBIQhKSuJ8kJHE/SdxPEpJ4UUnigSRxP0k8N0k8N0kASOIFkQSAJAAksb+/zx133MGxY8d48Rd/cf4rSQJAEgCSAJCEJAAkIQlJAEhCEpKQhCQkIQkA29jmfraxDYBtAGzzb/VHf/RHALzTO73TZ3HVVVddddVVV/1nIbjqqquuuuqqq/7TvM7rvM57Azz5yU/mgWzzwtjmfrZ5YWzzQJKQhCQkIQlJSAJAEpIAkIQkJCEJSUhCEpKQxHOTxANJ4n6SeG6SeEEkASCJV33VVwXgT/7kTwCQxP0kASCJ+0kCQBIAkgCQBIAknpsk7ieJB5KEJCTxgkhCEveTBIAkACQhCQBJSEISkgCQhCQAJCEJSUhCEpKQhCQkIYl/iSTuJ4n/LJKQhCQkIQlJAEhCEpKQxHOThCQAJCGJ+0lCEveThCQAJCGJ+0lCEs+PJCQhiftJQhL3k8T9JPHcJAEgiecmCQBJAEji+dnb2+Pxj388AK/6qq/KfwRJvKgkASAJAElIAkASkgCQhCQkIQlJSEISknh+bHM/2zw/trmfbR7INs/tiU98IgBnzpx5MFddddVVV1111X8Wgquuuuqqq6666j/F67zO67w3wB//8R9z/vx5Xhjb/EtsA2AbANs8N0lIQhKSkIQkACQhCUlIQhIvCklI4oEk8UCSeG6SeG6SAJDEA734i784x44dY29vj8c//vFI4n6SeG6SAJAEgCQAJAEgCQBJAEhCEgCSuJ8kJPHcJCEJSUhCEpK4nyQkASAJAEncTxKSkIQkJCEJAElIQhIAkpCEJJ6bJCQhCUlIQhKSkMQDSQJAEv/RJPGCSEISDyQJSUhCEgCSkIQkACQhCUlIQhKSAJCEJO4niQeShCQkIQlJPDdJPJAk7ieJ+0kCQBLPTRIAknhBJAEgCQBJ3Hnnndxxxx0cO3aMm2++mReVJF5UkpCEJCQhiftJAkAS95OEJAAkIQlJSEISkpCEJCQhiQeyzf1scz/bANjmfra5n21emPPnz/OkJz2Ja6655sGv8zqv895cddVVV1111VX/GQiuuuqqq6666qr/FK/zOq/zXgBPetKTeCDbvDC2uZ9tXlSSkIQkJCEJSUhCEpKQxP0kIQlJSEISkpCEJJ6bJCRxP0k8P5J4bpJ4YV78xV8cgD/5kz9BEveTxP0kASAJAEm8MJIAkMT9JAEgCUncTxKSkMQLIglJSAJAEpIAkIQkJCEJSUgCQBKSkIQkACQBIAlJ3E8SkpCEJP4lkgCQxH80STw/kpCEJCRxP0lIQhKSkIQkJCEJAEkASEISz00SkgCQhCQkASAJSUjihZGEJB5IEveTxP0k8dwkASCJ5yYJAEm8MHt7ezz+8Y8H4E3f9E35jyaJ50cS95MEgCQkIQkASUhCEpKQhCQkIQlJSAJAEs/NNvezDYBtAGzzL7HNc/vDP/xDAF7ndV7nvbjqqquuuuqqq/4zEFx11VVXXXXVVf8pXuzFXuy1Af74j/+YF8Y2/xLbANgGwDb3k4QkJHE/SUgCQBKSAJCEJCTxL5GEJCTxQJK4nyTuJ4nnJokXRBIAL/ESL8HNN98MwOMf/3juJ4n7SQJAEs9NEgCSAJDEc5PE/SRxP0lI4oEkIQlJSEISkrifJCQBIAlJSAJAEpK4nyQeSBKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpK4nyT+o0kCQBL3k4QknpskJCEJSTw3SUhCEpKQhCQAJCEJSUjifpIAkASAJB5IEpKQhCQkIQlJPDdJ3E8S95PE/SQBIInnJgkASTw3SQBIAkAS97vzzjvZ29vj2LFj3HLLLfxbSeKBJPHCSEISAJJ4IElIQhIAkgCQhCQkIQkASQBI4n62uZ9tXhjb3M82L8yTnvQkAM6cOfPgF3/xF39trrrqqquuuuqq/2gEV1111VVXXXXVf7jXeZ3XeW+AP/7jP+aBbPPC2OZ+tvnXkoQkJCEJSUhCEpK4nyQkIQlJSEISkpDEc5PEA0nifpK4nyQAJPHcJAEgiQd68Rd/cQB+7dd+DUkASOJ+knhukgCQBIAkACQBIAkASdxPEveThCTuJwlJSOL5kYQkJHE/SQBIAkAS95OEJCQhCUlIAkASAJIAkIQkJCGJF5UkXhBJ/EeRxHOThCQkIYkHkoQkJCGJ+0kCQBIAkpCEJCQhCUlIAkASAJIAkIQkXlSSkMT9JHE/SdxPEs9NEi+IJAAk8YJIYm9vjz/5kz8B4FVf9VX5ryYJAElIQhKSuJ8kJCEJSQBIQhKSkIQknh/b3M82ALYBsM2/xDYPdP78eZ70pCdxzTXXPPixj33sa3HVVVddddVVV/1HI7jqqquuuuqqq/7DveM7vuNnATzpSU/ihbHNv8Q2ALZ5QSQhCUlIAkASkgCQhCQkIYl/iSQk8UCSeCBJ3E8SL4gkXpCbb76Zm2++GYAnPOEJPDdJ3E8SAJIAkASAJAAkASAJAEkASEISAJKQxP0kIYkHkoQkJCEJSdxPEpKQBIAkACQBIAlJSEISkpCEJCQhCUlIQhKSkIQk7icJSUhCEpKQhCQkIYn7SeK/giQAJCGJ5yYJSUhCEpKQhCQkIQlJSAJAEpJ4fiQhCQBJAEjifpKQhCQkcT9JSEISknggSdxPEveTxP0k8dwkASCJF0QSAJIAkMT97rzzTvb29rjlllu45ZZbsM2/hySeH0lIQhIPJAlJPJAkJCEJAElIQhKSkIQkJCEJSbwgtnlhbHM/2zyQbR7o537u5wB43dd93ffhqquuuuqqq676j0Zw1VVXXXXVVVf9h3qxF3ux177mmmseDPDHf/zH3M82L4xt7mebF4UkJCEJSUhCEpIAkIQk7icJSUhCEpKQhCQk8dwkIYn7SeJfIgkASfxLXv3VXx2AX//1X+d+kgCQxP0kASCJF4UkACRxP0ncTxIPJAlJSOK5SUISkrifJCQBIAlJSEISknh+JCEJAEkASEISAJKQhCQkIQlJSEISDySJ5yaJ/wiSeFFIQhKSkMTzIwlJSAJAEpKQBIAkJCEJSUjifpIAkASAJCTx3CQhiedHEpK4nyTuJ4n7SeJ+kgCQxHOTBIAkACTxgkhib2+PP/mTPwHg1V7t1fiPJglJPJAkJPFAkpCEJCQhCQBJSAJAEpIAkIQkJCEJSUjiBbENgG0AbPOvdf78eQDOnDnzoBd7sRd7ba666qqrrrrqqv9IBFddddVVV1111X+o13md13kvgD/+4z/mhbHNv8Q2L4gkACRxP0lIQhKSAJCEJCTxL5GEJCTxQJK4nyTuJ4n7SeIFkQSAJAAkcfPNN3PzzTcD8PjHPx4ASTw3STw3SQBIAkASAJK4nyQAJHE/SdxPEpJ4bpKQhCQk8UCSkASAJCQhCQBJSAJAEpKQhCQkASAJSUhCEpIAkIQkJPGCSEIS95PE/SQBIIn/LJIAkIQknpskJCEJSUjifpKQBIAkACQhCUlIQhKSkIQkACQBIIn7SUISknhBJCGJB5LE/SRxP0ncTxLPTRIAknhBJAEgCQBJ3O/OO+8E4JZbbuGWW24BwDb/2STxwkhCEpKQhCQkIQlJSEISAJIAkMT9bANgmxfGNvezzQPZ5n7nz5/nj/7ojwB4sRd7sdfiqquuuuqqq676j0Rw1VVXXXXVVVf9h3qxF3ux1wb4oz/6I15UtrmfbZ6bbR5IEg8kCUncTxKSkMT9JCEJSUhCEpKQhCSemyQeSBL3k8T9JPGCSOIFebVXezUA/vRP/xQASdxPEgCSuJ8kACQBIAkASQBIAkAS95MEgCTuJwlJ3E8SkpCEJCQhCUlIQhKSkASAJCQBIAkASUgCQBKSkIQkJCEJSQBIAkASAJKQxP0kIQlJSEISkrifJCRxP0n8Z5GEJO4niQeShCQkIQlJSEISkpCEJAAkIQlJSEISL4gkJAEgCQBJSOKBJCEJSUhCEpJ4bpK4nySeH0ncTxIAknhukgCQBIAkXhBJ7O3t8Wu/9msAvPqrvzoPZJsHss2LShL/EklIQhKSkIQkJCGJ+0lCEgCSkIQkACQBIIkXxjYAtgGwzf1scz/bvCB/+Id/CMDrvM7rvDdXXXXVVVddddV/JIKrrrrqqquuuuo/zOu8zuu89zXXXPNggCc/+cnczzYPZJt/iW3+JZKQhCQkIQlJAEhCEpKQxL9EEpJ4IElI4n6SuJ8knpskACTxwtx8883ccsstAPzJn/wJkrifJAAkcT9JAEgCQBIAkgCQBIAkACRxP0kASEIS95OEJF5UkpAEgCQkASAJSQBIQhKSkASAJCQhCUlIQhIAkpAEgCQkIQlJPDdJSOKBJPHcJPEfQRL3k8QDSUISL4wkJCEJSQBIAkASAJKQhCQkIQlJAEhCEgCSkASAJCQhiRdGEpKQxP0k8UCSeG6SeG6SAJDECyIJAEkASOJ+d955JwC33HILt9xyC8/NNv8dJCEJSQBIQhKSAJCEJCQBIIn/aLa535Oe9CSe+MQncs011zz4xV7sxV6bq6666qqrrrrqPwrBVVddddVVV131H+bFXuzFXgvgj//4j3lR2eZ+tnlRSUISkpCEJCQhCUncTxKSkIQkJCEJSUjiuUlCEg8kiftJ4rlJ4gWRBIAkACTxaq/2agD8yZ/8CZK4nySemyQAJPGikASAJO4niftJQhL3k4QkJCEJSUhCEpKQhCQAJCEJAElIQhIAkpDEA0nifpKQBIAkJCEJAElIQhL3k4QkJCGJ+0kCQBL/lSQBIIn7SUISkpCEJCQhiftJQhKSkIQkJCEJSUhCEpKQhCQkASAJSUgCQBIPJAlJSEISkpCEJJ6bJB5IEveTBIAk7icJAEk8N0kASOJfIom9vT1+7dd+DYBXf/VX5z+LJCQhCUlIQhKSkIQkJCEJSUhCEgCSkIQkACQhCUlIQhIAknhutgGwDYBtAGxzP9vczzYvyJOe9CQAXud1Xue9uOqqq6666qqr/qMQXHXVVVddddVV/2Fe7MVe7LUBfuEXfoH72eaBbPPvJQlJPDdJSEISkpDEv0QSkpDEA0niXyKJ5yYJAEk8PzfffDO33HILAH/2Z3/G/SRxP0kASOK5SQJAEgCSAJDE/SQBIIn7SUIS95OEJP4lkpCEJAAkIQkASQBIQhIAkpCEJCQhCUkASEISkpCEJCQhCUkASEISkpDE/SRxP0k8kCT+I0ni+ZHE/STx3CQhCUlIQhL3kwSAJAAkIYnnRxKSAJAEgCQAJCEJSbwoJCGJ+0lCEveTxHOTxHOTBIAknpskACQBIAkASdzvzjvvBOCWW27hlltu4V9LEveTxHOTxL+VJCQhCQBJSEISkgCQhCQAJCGJ/yi2ud8f/dEfAfBiL/Zir81VV1111VVXXfUfheCqq6666qqrrvoP8Tqv8zrvfc011zz4SU96EufPn+dfyzb3s83zIwlJ3E8SkpCEJB5IEpKQhCQkIQlJSEISz00SDySJ+0nifpK4nyQAJPGieLVXezUA/vRP/5T7SeJ+kgCQxP0kASAJAEkASAJAEgCSuJ8kACQhiftJQhL3k4QkJCEJSUhCEpK4nyQkASAJSQBIQhIAkpCEJCQhCUlIQhIAkgCQBIAkJAEgCUk8kCQkASCJB5KEJAAk8V9FEveThCQk8UCSkIQkJCEJSQBIQhIAkpCEJCQhCQBJSAJAEgCSeCBJSEISkpCEJCQhCUk8kCQeSBL3kwSAJO4nCQBJPDdJAEjiXyKJvb09fu3Xfg2A13iN1+A/kiReEElIQhKSkIQkJCEJSUjifpKQhCTuJ4n7SeKFsQ2AbQBscz/b3M82z8/58+d50pOexDXXXPPgF3uxF3ttrrrqqquuuuqq/wgEV1111VVXXXXVf4gXe7EXey2AP/7jP+Z+tnlhbPOikIQk7icJSUhCEpKQhCQkIYkXhSQk8UCSkMT9JHE/SdxPEv8SSQBIAuCWW27hlltuAeBP//RPAZDE/SQBIIn7SQJAEgCSAJAEgCQAJAEgiftJ4n6SkMT9JCEJSbwgkpCEJO4nCQBJSEISAJKQhCQkcT9JSEISkpCEJAAkIQkASUgCQBKSkMT9JAEgCQBJ/Esk8e8lCUncTxIAkpDE/SQhCUlI4n6SkASAJCQhCQBJSEISkpCEJCRxP0kASAJAEpKQxItKEpK4nyQkcT9JPDdJPDdJAEjiuUkCQBIAknhud955J3t7e9xyyy3ccsst/GeShCReVJKQhCQkASAJSUhCEpIAkMRzs82/h23u94d/+IcAvNM7vdNncdVVV1111VVX/UcguOqqq6666qqr/kO8zuu8znsDPPnJT+YFsc2/lyQk8fxIQhKSkIQkJCEJSUhCEpJ4IElI4oEkcT9J3E8SL4gkACTx/Lzaq70aAL/+678OgCTuJ4nnJgkASbwwkgCQBIAkJAEgCUncTxLPTRKSkIQkJCGJ+0lCEpIAkASAJAAkIQlJ3E8SkrifJCQBIAlJSAJAEpIAkIQk7icJSQBIAkASz48k7ieJf4ltXhhJ3E8S95PE/SQhiQeShCQkASAJSQBIAkASknh+JCEJSQBIAkASkrifJCQhiecmCUlI4oEk8UCSuJ8kACRxP0kASOK5SQJAEi+IJAAksbe3x5/8yZ8A8OZv/uZIAkAS/1aSeCBJSOKBJCEJSUhCEpKQhCQkIQlJ3E8SkpCEJCQhCUkASOJfYhsA29zPNvezzfPzpCc9CYAzZ848mKuuuuqqq6666j8CwVVXXXXVVVdd9e/2Oq/zOu8N8Md//MecP3+eF4Vt7mebF4Uk7icJSUhCEpL415CEJB5IEg8kiftJ4rlJAkAS/5KXeImX4JZbbgHgCU94ApK4nyTuJwkASQBI4n6SAJAEgCTuJwkASdxPEveTxP0kIQlJSEISDyQJSUhCEveThCQkIQlJSEISkgCQhCQkIQlJSAJAEpIAkASAJCQBIAlJAEhCEveTBIAk/rtI4oEkcT9JSEIS95OEJAAkIQlJSEISAJKQhCQkIYn7SUISkpCEJAAkIYkHkoQkJCGJ5yYJSdxPEpK4nySemySemyQAJPHcJAEgCQBJPLc777yTvb09jh07xi233MIDSQJAEi8KSTyQJB5IEpL415CEJCQhiedHEgCSuJ8k7mebfwvbAJw/f54nPelJXHPNNQ9+ndd5nffmqquuuuqqq6769yK46qqrrrrqqqv+3V7ndV7nvQCe9KQncT/bPJBtXhS2eX4kASAJSUhCEpKQhCQkIQlJSEISkpCEJCTx3CQhiftJQhL3k8Rzk8QLIgkASQBIAuDFX/zFAfj1X/91JHE/SdxPEgCSeG6SAJAEgCQAJHE/SQBI4n6SkASAJCQhiecmCUlI4oEkIQlJAEgCQBIAkrifJCQhCUlIQhKSkASAJCQhCUlIAkASkgCQhCQAJCEJAEncTxKSkMRzk8S/hSTuJ4nnRxIAkgCQhCTuJwlJSAJAEpIAkASAJAAkIQlJSEISkpCEJAAkASAJAEncTxKSkMTzIwlJSOKBJPFAkrifJAAkcT9JAEjiuUkCQBIviCQAJLG3t8ef/MmfAPDmb/7mvDCSAJDE/STx/EjifpKQxHOThCQkIQlJSEISkpCEJCRxP0lIQhKSkASAJAAkIYl/iW3uZ5v72eb5+cM//EMAXud1Xue9uOqqq6666qqr/r0Irrrqqquuuuqqf7cXe7EXe22AP/7jP+ZFYZt/DUkASEIS/x6SkIQkHkgS/xJJPDdJAEjiBXmJl3gJbrnlFvb29njiE5/I/SRxP0kASOJ+kgCQBIAkACQBIAkASdxPEgCSkMT9JPFAkpCEJCQhCUlIQhKSkMT9JCEJAEkASEISkpCEJCTxQJKQhCQkASAJAEkASEISAJKQBIAk7ieJ+0nigSTx7yWJF5UkACQBIAlJSAJAEpKQBIAkJCEJSUhCEpKQxHOThCQkASAJAEkASEISDyQJSUhCEpJ4bpKQxP0kIYn7SeK5SeK5SQJAEs9NEgCSAJDEc7vzzjvZ29vj2LFjvORLviQAkviXSOJ+krifJO4niQeShCQk8a8hCUlIQhKSkIQkJAEgiX+Jbf41bAPwpCc9CYAXe7EXe+0Xf/EXf22uuuqqq6666qp/D4Krrrrqqquuuurf5XVe53XeG+CP//iPuZ9tXlS2eSBJ3E8SkgCQxP0kIQlJSEISkpCEJCQhCUlIQhKSeG6SkMT9JHE/SdxPEveTBIAkXlSv9mqvBsCf/dmfcT9J3E8SAJK4nyQAJAEgCQBJAEgCQBIAkrifJO4nCUkASEISkviXSEISkpAEgCQkIQlJSAJAEpK4nyQkIYn7SUISkpCEJCQhCUkASEISAJIAkMQDSeL5kcR/BklIQhKSuJ8kACRxP0lI4n6SkASAJAAkASAJSQBIQhKSkMT9JCEJAEkASEISAJKQhCReGElI4oEk8UCSuJ8kACRxP0kASOK5SQJAEi+IJAAksbe3x5/8yZ8A8Bqv8Ro8kCQAJAEgiecmiftJ4n6SeCBJPDdJSEISkpCEJCQhCUlIQhKSkMRzk4QkACTxorLNi+r8+fM86UlPAuCxj33sa3HVVVddddVVV/17EFx11VVXXXXVVf8u7/iO7/hZAE960pN4QWzzryEJSdxPEgCSkIQkJCEJSUhCEpKQhCSeH0lIQhIPJIn7SeJ+krifJP4lkgCQBIAkXuIlXoJjx46xv7/PE57wBAAkcT9JPDdJAEgCQBIPJAkASQBIAkASkgCQhCTuJwlJ3E8SkpCEJCQhCUlI4n6SkIQkACQBIAkASUgCQBKSkIQkJCEJSQBIQhIAkgCQBIAkJAEgCQBJAEgCQBL/Ekn8e0jihZHE/SRxP0kASEISkgCQhCQkIQkASUgCQBKSkIQkJCEJSQBIQhIAkpAEgCQkcT9JSEISkpCEJCTxQJKQxP0kIYn7SeK5SeK5SQJAEs9NEgCSAJDEc7vzzju54447OHbsGC/5ki/Jv0QSz00S95PE/SQhiQeShCSeH0lIQhKSeG6SkIQkJHE/SQBI4l/LNvezzfPzcz/3cwC87uu+7vtw1VVXXXXVVVf9exBcddVVV1111VX/Zi/2Yi/22tdcc82DAf74j/+YF4Vt/jUkASCJfw1JSEISknhuknggSdxPEveTxHOTBIAkACTxgrzaq70aAL/xG78BgCTuJ4n7SQJAEgCSeG6SeG6SAJDE/SRxP0k8kCQkIYnnRxKSkIQk7icJSUhCEpKQhCQAJCEJSUhCEpKQhCQkASAJSUhCEpKQhCQAJAEgCQBJAEjifpKQhCT+M0ni+ZGEJAAkIQkASdxPEpIAkASAJCQhCQBJSEISkrifJCQhCQBJSEISAJK4nyQkIYkXRhKSeCBJPJAk7icJAEncTxIAknhukgCQxAsiCQBJ7O3t8fjHPx6A13iN1wBAEv8SSTw3SdxPEg8kCUk8kCQkIQlJPDdJSEISkpCEJCQhCUlIAkASAJJ4QWzzr2EbgPPnzwNw5syZB73Yi73Ya3PVVVddddVVV/1bEVx11VVXXXXVVf9mr/M6r/NeAH/8x3/M/WzzQLb5t5IEgCQAJCEJSUhCEpKQhCQkIQlJPDdJSEIS95OEJO4niftJ4rlJ4l/jJV7iJTh27Bh33nknd955J5K4nyTuJwkASQBI4n6SAJAEgCQAJHE/SQBIQhIAkpAEgCQkIYkHkoQkJCEJSTyQJCQhCQBJAEgCQBIAkpCEJCTxQJKQhCQkASAJAEkASAJAEgCSAJAEgCQAJCGJB5LEfzRJPD+SeEEkASAJSQBIQhKSkASAJAAkIQlJ3E8SkrifJCQBIAkASQBIQhIPJAlJSEISkpCEJB5IEpK4nyQkcT9JAEjifpJ4bpIAkMRzkwSAJAAk8dwe//jHc8cdd3Ds2DFe8iVfkvtJAkASAJJ4bpL4l0jigSQhiecmCUlIQhKSkIQkJPGCSOKBJCEJSbwgtrmfbe5nm+d2/vx5/uiP/giAF3uxF3strrrqqquuuuqqfyuCq6666qqrrrrq3+zFXuzFXhvgj/7oj/iPJgkASQBIQhKSeFFIQhKSeG6SeCBJ3E8Sz00SL4gkACQBIAkASbzaq70aAH/2Z3+GJO4niftJAkASz00SAJIAkASAJAAkIQkASdxPEveThCTuJwlJSEISkpCEJCQhCUlI4n6SkIQkJAEgCUlIQhKSuJ8kJCEJAElIQhKSkIQkACQBIAkASQBIAkASAJJ4QSQBIInnJol/L0lIAkASkgCQBIAkJCEJAElIAkASAJKQhCQkIQlJAEhCEpKQhCQkASAJSQBIAkASkgCQhCQk8S+RhCQeSBL3k4Qknpsk7icJAEk8N0kASOIFkQSAJAD+5E/+BIDXeI3X4F8iCQBJ3E8S95PE/SRxP0lI4oEkIQlJ/EskIQlJSEISkgCQhCT+o9kG4A//8A8BeJ3XeZ335qqrrrrqqquu+rciuOqqq6666qqr/k1e53Ve572vueaaBwM8+clPBsA2/xEk8UCSeCBJSEISkpCEJCQhCUk8kCQk8UCSeCBJPDdJPDdJAEjihXm1V3s1jh07xp133sldd93F/SRxP0kASOJ+kgCQBIAkACQBIAkASdxPEgCSkASAJCRxP0lIQhL/EklIQhKSAJAEgCQkIQkASUgCQBKSkIQkJCGJ+0lCEgCSkIQkJCEJSUhCEpKQBIAkHkgS/1q2+Y8kCQBJPJAkACQhCQBJAEgCQBKSAJCEJCQhCUlIQhKSAJCEJAAkIQkASUjifpKQhCQkIQlJSEISDyQJSdxPEveThCQAJHE/STw3SQBI4rlJAkASAJJ4IEnceeed3HHHHRw7dow3f/M3RxIAkgCQxAsiiftJ4n6SuJ8kHkgSknhukpCEJCQhCUlIQhKSkIQkJCEJSdxPEv9etnluT3rSk3jiE5/INddc8+AXe7EXe22uuuqqq6666qp/C4Krrrrqqquuuurf5MVe7MVeC+CP//iPeUFs80C2+ZdI4n6SuJ8kJCEJSUhCEi+IJCTxQJKQxP0k8fxI4n6SAJDEv8arv/qrA/Bnf/Zn3E8S95MEgCTuJwkASQBIAkASAJIAkASAJO4niftJ4n6SkMQDSUISkpCEJCQhCUncTxKSkIQkJAEgCQBJSAJAEpKQhCQkIQlJSEISAJKQBIAkACQBIAkASdxPEveThCQAJCGJ/yySAJDECyIJAEkASAJAEgCSkIQkJCEJSUgCQBKSkMRzk4QkJAEgCUlIAkAS95OEJCTxL5GEJB5IEveTxP0kcT9J3E8SAJJ4bpIAkMQLIon7SeJP/uRPAHjQgx7EsWPHeH4kASCJ5yaJ+0nifpJ4IEk8kCQkIYl/K0lIAkASLwrb3M82L4htAJ70pCcB8Dqv8zrvxVVXXXXVVVdd9W9BcNVVV1111VVX/Zu82Iu92GsD/MIv/AL/HpKQhCQkcT9JAEhCEpJ4fiQhCUlIQhIPJAlJPJAk7ieJ+0nifpJ4QSQBIAkASQBIAuDN3uzNAHjCE57AXXfdBYAk7icJAEncTxIAkgCQBIAkACQBIAkASQBIQhIAkpAEgCQkcT9JSEISkpDEA0lCEpKQhCQAJCEJAElIQhKSkASAJCQhCUlIQhKSkIQkJCEJAElIQhKSAJAEgCQAJCEJAElI4oWRxH82SUhCEveTBIAkJCEJAEkASAJAEgCSAJCEJCQBIAlJSEIS95OEJAAkASAJAElI4oEkIQlJSEISkpCEJB5IEpK4nyTuJ4n7SeJ+kgCQxP0kASCJ5yYJAEkASAJAEve76667uOOOOzh27Biv8RqvwYtCEs9NEveTxP0kIYn7SUISz00SkpCEJCQhCUlIQhKSkIQkJHE/SQBIQhL/kf7oj/4IgBd7sRd7ba666qqrrrrqqn8Lgquuuuqqq6666l/tdV7ndd77mmuuefCTnvQkzp8/D4Bt/qNIAkASkrifJCQhCUlIQhLPTRKSeCBJSOJ+krifJO4niecmCQBJ/EuOHTvGS7zESwDwhCc8AQBJ3E8SAJK4nyQAJAEgiedHEgCSAJDE/SRxP0ncTxKSkMRzk4QkJPFAkpCEJAAkIQkASQBIQhKSkIQkJPH8SEISkpCEJCQBIAlJAEgCQBL3k8QLI4l/L0n8SyTxQJKQBIAk7icJSUhCEgCSAJCEJCQhiftJQhKSkIQkJCEJAElIAkASAJKQBIAkJCGJf4kkJCGJB5LE/SRxP0ncTxLPTRLPTRIAkgCQxPMjifv9xm/8BgAPetCDeNCDHgSAJAAkASCJ5yaJ5yaJ+0nigSTxQJKQhCT+JZKQhCQkIQlJSAJAEveTxIvKNvezzXM7f/48T3rSk7jmmmse/GIv9mKvzVVXXXXVVVdd9a9FcNVVV1111VVX/au92Iu92GsB/PEf/zH/0SQBIIn7SUISknh+JCEJSTyQJCTxQJK4nyTuJ4n7SQJAEv9ab/ZmbwbAE57wBO666y4kcT9JAEjifpIAkASAJO4nCQBJ3E8SAJIAkIQkACQhCQBJSEIS95OEJCQhCUlIQhKSkIQk7icJSQBIQhKSkIQkACQhiftJQhKSkIQk7icJSQBIQhIAkpCEJCQBIAlJ3E8SkpCEJCTxn00SAJJ4QSQBIAlJAEgCQBKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEgCSkIQkJCEJAElI4n6SkIQkJCEJSUhCEs9NEpK4nyTuJ4n7SeJ+kgCQxP0kASCJF0QSAJK4nyQA9vb2ePzjH8+xY8d4yZd8SV4YSQBI4n6SAJDE/STxQJK4nyQk8UCSkIQkJCEJSUhCEi+IJCQBIIn7SUISkvi3sg3AH/7hHwLwTu/0Tp/FVVddddVVV131r0Vw1VVXXXXVVVf9q73O67zOewM8+clP5gWxzb+WJAAkASAJSTyQJCQhCUlI4oEkIQlJ3E8SkrifJO4niftJ4gWRBIAkACQBIAkASdxyyy3ccsstAPzZn/0ZkrifJAAkcT9JAEjiuUkCQBIAkrifJAAkcT9J3E8SkrifJCQhCUk8P5KQhCQkIQkASUgCQBIAkgCQhCQAJCEJSUhCEpKQhCQkASAJSQBIQhIAkgCQhCTuJwlJvDCS+K8iCUk8kCTuJwkASQBIAkASAJKQBIAkJCGJ50cSkpAEgCQAJAEgCUkASEISkviXSEISkrifJCRxP0ncTxL3k8RzkwSAJO4nCQBJAEjigSRxP0kA/Mmf/AkAL/mSL8mDHvQgXlSSeG6SuJ8kJHE/STyQJCTx/EhCEpKQhCQkIQlJSOJ+kgCQxL/ENi+IbZ7bk570JADOnDnzYK666qqrrrrqqn8tgquuuuqqq6666l/ldV7ndd4b4I//+I85f/48/1Ek8UCSuJ8kJCEJSTw3SUjiuUnigSRxP0ncTxLPTRIAknhRvfqrvzoAf/Znf8bBwQH3kwSAJO4nCQBJ3E8SAJIAkASAJAAkIQkASQBIQhIAkpDE/SQhiecmCUlIQhKSeCBJSEISAJKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpAEgCQkASAJSQBI4n6SkMQLI4n/SpK4nyQkIQkASUgCQBIAkgCQhCQkIQkASUjifpKQhCQkIYn7SUISAJIAkMT9JCGJ+0lCEpKQhCQkIQlJPDdJPJAk7ieJ+0nifpIAkMRzkwSAJJ6bJO4niftJYn9/nz/5kz8B4DVe4zUAkASAJAAkASCJ5yaJf4kk7icJSTyQJCQhCUn8SyQhCUkASAJAEv8atnlhzp8/z5Oe9CSuueaaB7/O67zOe3PVVVddddVVV/1rEFx11VVXXXXVVf8qr/M6r/NeAE960pO4n23+PSRxP0ncTxKSeG6SkIQkHkgSkpDE/SQhiftJ4n6SeG6S+JdIAkAS97vlllu45ZZbAPjzP/9z7icJAEncTxIAkrifJAAkASAJAEkASOJ+kgCQxP0kcT9JSOJ+kpCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSAJAEgCQkIQlJSEISknhukpCEJCQBIAlJAEhCEgCSkMT9JCEJSUhCEpL4ryIJAEm8IJK4nyQAJCEJSUgCQBIAkpAEgCQkIQlJSEISkpCEJAAkIQlJSEISkpDE/SQhCUn8SyQhCUncTxKSuJ8k7ieJ+0kCQBL3kwSAJJ6bJAAkASCJ+0nifpJ4whOeAMCDHvQgHvSgB/EvkcRzk8T9JHE/SdxPEg8kCUk8N0lIQhKSkIQkJCGJ+0lCEg8kif8ItgH4uZ/7OQBe53Ve57246qqrrrrqqqv+NQiuuuqqq6666qp/lRd7sRd7bYA//uM/5t9LEpK4nyQAJCGJ+0lCEpKQxANJQhKSeCBJPJAk7ieJ+0kCQBLPTRIAkgCQxPMjiVd/9VcH4Dd/8zcBkIQkACRxP0kASOJ+kgCQBIAkACQBIAkASUgCQBIAkpAEgCQkcT9JSEISkviXSEISkgCQhCQAJCEJSUhCEgCSkIQk7icJSUhCEgCSkIQkJAEgCUkASEIS95OEJP4lknggSUjiP5MkJCGJ+0lCEgCSkASAJAAkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQBIAkASQBIQhIPJAlJSEISkpCEJCTxQJKQxP0kIYn7SeJ+kgCQxP0k8dwkASCJ50cS95PE/fb39/n1X/91AN7iLd6CB5LECyIJAEncTxL3k8T9JPFAknggSUhCEi+IJCQhCUncTxKSuJ8k/i1s89zOnz8PwIu92Iu99ou/+Iu/NlddddVVV1111YuK4KqrrrrqqquuepG9zuu8znsD/PEf/zEvjG2eH0lIQhKSeCBJAEjifpKQhCQeSBKSkMQDSUIS95OEJO4niftJ4rlJAkAS/xov8RIvwS233ML+/j5PfOITkcT9JHE/SQBI4n6SAJAEgCQAJAEgCQBJ3E8SAJK4nyQkASAJSUjigSQhCUlIQhKSkIQkACQhCUkASEISAJIAkASAJCQhCQBJSEISkpCEJCRxP0lIQhIAkpAEgCQkIYkHkoQkHkgSz00S/9kk8UCSkMT9JCEJAEkASEISAJKQhCQkIQlJvCCSkASAJCQBIAkASUgCQBKSkIQkXhhJSEISDySJ+0lCEveTxHOTxP0kASCJ5yYJAEncTxL3k8T97rzzTu68806OHTvGS77kSyKJB5IEgCQAJPHcJHE/SdxPEveThCTuJwlJPDdJSEISkpDEc5OEJO4niftJQhIPJIl/DducP3+eJz3pSQA89rGPfS2uuuqqq6666qoXFcFVV1111VVXXfUie8d3fMfPAvijP/oj7mebfy9JAEgCQBKSeCBJSEISDyQJSTyQJB5IEveTxHOTxHOTBIAkACQBIAkASQBI4tVf/dUB+M3f/E0kcT9J3E8SAJK4nyQAJAEgCQBJAEgCQBIAkpAEgCQAJCGJ+0lCEveThCQkIQlJSEISkpCEJCQhiftJQhIAkpCEJCQhCUlIQhIAkpCEJCQhCUlIQhKSkASAJCQhCQBJSOKBJCEJSdxPEpK4nyTuJ4kXRhIvCklIQhL3kwSAJF4QSUjifpIAkIQkACQhCQBJSOJ+kpCEJCQhCUkASEISAJKQhCQkIQkASUjigSQhCUlIQhKSkMRzk4Qk7ieJ+0lCEgCSkASAJO4nCQBJ3E8SAJJ4IEncTxL3kwTA/v4+j3/84wF4zdd8TV5UknhukrifJO4niQeSxANJQhKSeG6SkIQkJCGJ+0lCEgCSeCBJSEIS/1Y/93M/B8Drvu7rvg9XXXXVVVddddWLiuCqq6666qqrrnqRvNiLvdhrX3PNNQ8GePKTn8x/FEkASAJAEveThCQk8UCSkIQk7icJSdxPEpK4nyTuJwkASdxPEgCS+Nd49Vd/dY4dO8Zdd93F3Xffzf0kcT9JAEjifpIAkASAJAAkASAJAEkASOJ+kgCQhCQAJCGJ+0lCEpKQxL9EEpKQhCQAJCEJSUgCQBIAkpAEgCQkIQlJSEISkpCEJCQhCUncTxKSuJ8kJCGJF0YS/xJJ/GeShCQkIYn7SUISAJKQBIAkJAEgCUkASEISkpCEJCQhCUlIAkASkgCQBIAkACQhCQBJSEISkpDE8yMJSUhCEveThCTuJ4n7SeJ+krifJJ6bJAAkcT9J3E8S95PE/SQB8IQnPIE777yTY8eO8RZv8RZIAkASAJJ4QSQBIIn7SeJ+krifJCRxP0lI4oEkIQlJSOK5SUISkrifJAAk8aKyzb/k/PnznD9/njNnzjzoxV7sxV6bq6666qqrrrrqRUFw1VVXXXXVVVe9SF7ndV7nvQD++I//mP8oknggSQBIQhIPJAlJSOKBJPFAknggSdxPEs9NEv9Wx44d49Vf/dUB+PM//3PuJ4n7SQJAEveTBIAkACQBIAkASQBIAkASAJKQBIAk7icJSQBIQhKSeCBJSEISkpCEJCQhiftJQhKSkIQkACQhCUlIQhKSkIQkJCGJF0QSkpCEJCQBIAlJSOJ+kpCEJCQhCUm8IJL4zyCJ+0nifpJ4bpKQxP0kIQkASUgCQBKSAJCEJCQhCUlIQhKSkIQkJAEgCUlIQhIAkpAEgCQk8dwkIQlJSEISz00SknggSdxPEveTxP0kcT9JAEjiuUkCQBL3k8T9JHE/SQD8+q//OgAPetCDOHbsGM+PJAAkASCJ5yaJ+0nifpJ4IEk8kCQk8dwkIQlJSOKBJCEJAEkASOLfwjYPZJvz58/zh3/4hwC82Iu92Gtx1VVXXXXVVVe9KAiuuuqqq6666qoXyYu92Iu9NsAv/MIv8B9BEveTxP0kcT9JSEISDyQJSdxPEpK4nyQkcT9JPDdJPDdJAEgCQBIAkgCQBIAkAF7jNV4DgCc+8YncddddAEjifpIAkMT9JAEgCQBJAEgCQBIAkgCQBIAk7icJAElI4n6SkMT9JCEJSUhCEpKQhCQkIQlJSEISAJKQBIAkJCEJSQBIQhIAkpCEJAAkIQlJSEISkrifJCQhCUncTxKSkMQLIon7SeK/giQeSBIvjCQkcT9JSAJAEpIAkIQkJCGJ50cSkpCEJAAkASAJSUgCQBKSAJCEJCQhCUlI4n6SkIQkJCGJB5KEJO4niftJ4n6SuJ8kACRxP0kASOKBJHE/SdxPEveTxP7+Po9//OM5duwYr/mar8m/hiSemyTuJ4n7SUIS95OEJB5IEpKQxANJQhKSkMT9JAEgCQBJ/Ef5oz/6IwBe53Ve57256qqrrrrqqqteFARXXXXVVVddddW/6HVe53Xe+5prrnnwk570JM6fP8+/lyTuJwkASUgCQBKSeCBJSOKBJCGJ+0nigSTx3CRxP0kASOJf65ZbbuElXuIlAPjzP/9zACQBIAlJAEjifpIAkASAJAAkASAJAEkASAJAEgCSkASAJCQBIAlJ3E8SkpCEJP4lkpCEJCQBIAlJAEgCQBKSkASAJCQhCQBJSEISkpCEJCQhCUncTxKSkIQkHkgSkpCEJB5IEg8kif8oknhRSUISkpCEJCRxP0lIQhIAkpAEgCQkIYn7SUISkpCEJO4nCUlIAkASAJIAkIQkACQhCUk8N0lI4vmRhCQkcT9JSOJ+krifJO4nCQBJ3E8SAJK4nyTuJ4n7SeJ+krifJP70T/8UgJd8yZfkwQ9+MACSAJAEgCQAJPHcJPHcJHE/STyQJO4nCUlI4oEkIQlJPJAkJCEJAEk8kCT+I5w/f54nPvGJXHPNNQ9+sRd7sdfmqquuuuqqq676lxBcddVVV1111VX/ohd7sRd7LYA//uM/5oFs8/xI4vmRhCTuJwkASdxPEveThCQkcT9JSOKBJHE/SUjifpIAkMT9JPGCSAJAEgCSAJDEA73Ga7wGAH/+53/O/v4+kgCQxP0kcT9JAEgCQBIAkgCQBIAkACQBIAkASUgCQBL3k4QkACQhCUlI4n6SkIQkJCEJSUhCEveThCQkASAJSUhCEgCSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpK4nyQkIQlJSOK5SUIS95PEfyVJAEjiXyIJSUjifpKQBIAkJCEJAElIQhKSkIQkJCEJSQBIQhKSkIQkJCEJSQBIQhL3k4QkJCEJSUhCEpKQhCQk8UCSkMT9JCGJ+0nifpIAkMT9JPHcJAEgiftJ4n6SuJ8k7ndwcMCf/umfAvAar/EavCgkASCJ+0kCQBL3k8T9JCGJ+0nigSQhCUk8kCQkIYn7SUIS95PE/STxH+GP/uiPAHid13md9+Kqq6666qqrrvqXEFx11VVXXXXVVf+iF3uxF3ttgCc/+cn8W0nigSQBIAkASdxPEpJ4IElI4n6SkMT9JPFAknhuknhukgCQxItCEi/xEi/BLbfcAsBf/MVfIAkASdxPEgCSkASAJAAkASAJAEkASAJAEgCSAJDE/SQBIAlJ3E8SknggSUhCEpKQhCQkIQlJSEISkgCQhCQkIQlJAEhCEpIAkIQkACQhCUlI4gWRhCQkIQlJPD+SkMRzk8QDSeK/gyQeSBKSkMQDSUIS95OEJCQBIAlJSEISkpCEJCQhCUlIAkASkgCQBIAkACQhCQBJSEISLypJSEISDySJ+0lCEveTBIAk7ieJ+0kCQBIAkgCQxP0kcT9J3E8S93vCE57A3t4eD3rQg3jJl3xJACQBIIl/iSSemyTuJ4kHksT9JCGJB5KEJCTxQJKQxP0kIQkASdxPEpJ4bpJ4brZ5INsAPOlJTwLgxV7sxV6bq6666qqrrrrqX0Jw1VVXXXXVVVe9UK/zOq/z3tdcc82D//iP/5jz58/zopKEJCQhiQeSBIAkACQBIAlJ3E8SknggSTyQJO4nCUk8N0ncTxIAkvi3eo3XeA0Afvu3f5v7SeJ+kgCQxP0kASAJAEkASAJAEgCSAJAEgCQAJCEJAElIAkASkpAEgCQkIQlJSOKFkYQkJCEJAElIAkASkpCEJCQhCUkASEISkrifJCQhCUlIQhIPJAlJSEISkpCEJO4nCUlI4n6SAJDEv5ckXlSSAJDE/SQhiQeShCQkIQkASUhCEveThCQkIYnnRxKSkIQkACQhCUlIAkASkgCQhCTuJwlJSEISkpCEJCQhCUk8N0lI4n6SuJ8kJAEgiftJ4n6SAJDEA0kCQBL3k8T9JHE/SQDs7+/zZ3/2ZwC81mu9Fs+PJAAkASCJ5yaJ5yaJ+0lCEveTxANJQhIPJAlJSOJ+kpDE/SQBIIkHkoQkJCGJf43z58/zpCc9iWuuuebBL/ZiL/baXHXVVVddddVVLwzBVVddddVVV131Qr3Yi73YawE86UlP4j+CJJ4fSdxPEpK4nyQkcT9JSOJ+knggSQBI4n6SeG6SAJAEgCQAJAEgCQBJAEji1V/91Tl27Bh33XUXT3ziEwGQxP0kASCJ+0kCQBIAkgCQBIAkACQBIAkASQBIQhIAkpAEgCQkcT9JSEISDyQJSUhCEpKQhCQAJCEJSUgCQBKSkIQkACQBIAlJSEISkpCEJCQhCUlIQhKSkIQkJCGJfy1JvDCS+K8kiReFJCQhCQBJSEISkrifJCQhCUlI4n6SkIQkACQBIAlJSAJAEpIAkIQkJPGikIQkJCGJ+0lCEveTxP0kcT9J3E8SAJK4nyTuJwkASdxPEveTxP0kAXDnnXdy5513cuzYMV7zNV+TF5UkACRxP0kASOJ+knggSdxPEpK4nyQkIYkHkoQk7icJSQBIAkAS/1H+8A//EIB3eqd3+iyuuuqqq6666qoXhuCqq6666qqrrnqhXud1Xue9Af74j/+Yfy9J3E8SAJKQBIAkJHE/SUjifpKQxP0kcT9JSOK5SeJ+kgCQxL/FsWPHeI3XeA0A/uIv/gIASdxPEgCSuJ8kACQBIAkASQBIAkASAJIAkASAJO4niftJQhIAkpCEJO4nCUlIQhKSkIQkJCEJSUjifpKQhCQkIQkASUhCEpKQBIAkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJO4nCQBJPJAkACTxn0kSAJK4nyQkIQlJSEISkpCEJO4nCUlIQhIAkpCEJCQhCUlIQhKSAJCEJCQhCUkASAJAEpIAkIQk7icJSUhCEpKQhCQkIYnnJglJ3E8SkrifJO4niftJ4rlJAkAS95MEgCTuJ4n7SeJ+ktjf3+fP/uzPAHipl3opjh8/jiQAJAEgCQBJvCCSeG6SuJ8kJHE/SdxPEpJ4IElIQhL3k4Qk7icJAEkASOI/wpOe9CQAzpw582Cuuuqqq6666qoXhuCqq6666qqrrnqBXud1Xue9Af74j/+Yfy9J3E8SAJK4nyTuJwlJ3E8SkrifJO4nCUncTxIAkrifJF4QSQBIAkASAJJ4bm/+5m8OwBOf+ETuuusuJAEgCUkASOJ+kgCQBIAkACQBIAkASQBIAkASAJIAkIQkACQhiftJQhL3k4QkJCEJSUjigSQhCUlIQhKSAJCEJAAkIQkASQBIQhKSkIQkACQhCUlIQhL/EklIQhKSkMTzI4kXRBIPJIn/KJJ4YSTxopCEJCTxQJKQhCQkIQlJSEISkpCEJAAkIQkASUhCEpKQBIAkJAEgCUlIQhIvjCQkIQlJ3E8SknggSdxPEveTxP0kASAJAEkASOJ+kgCQxP0kcT9J3E8Sd955J094whM4duwYr/Ear8G/RBIAknhuknhukrifJCRxP0k8kCQk8UCSkMT9JCEJAEkASAJAEv9WtgE4f/48T3rSk7jmmmse/Dqv8zrvzVVXXXXVVVdd9YIQXHXVVVddddVVL9DrvM7rvBfAH/3RH/HvIYn7SQJAEgCSuJ8kJHE/SUjifpK4nyQeSBLPTRLPTRIAknhRSALgQQ96ELfccgsAf/mXf4kkACRxP0kASEISAJIAkASAJAAkASAJAEkASAJAEgCSkASAJCQBIAlJSAJAEpKQhCSemyQkIYkHkoQkJCEJAElIAkASkpCEJCQBIAlJAEhCEpKQxP0kIQlJSEISkpCEJJ4fSUhCEpK4nyQAJHE/SfxnkQSAJB5IEgCSuJ8kJCEJSUhCEpKQhCTuJwlJSEISkpCEJB5IEpKQhCQkASAJSQBIAkASAJKQBIAkJCGJ+0lCEpKQhCQkIYnnJglJPJAkJAEgCUkASEISAJKQBIAkHkgSAJK4nyQAJHE/SdxPEveTxJ/+6Z8C8FIv9VI86EEP4n6SAJDECyIJAEncTxIAkrifJB5IEveThCQeSBKSuJ8kJHE/STw/kvj3+rmf+zkAXud1Xue9uOqqq6666qqrXhCCq6666qqrrrrqBXqxF3ux1wZ48pOfzL+VJO4niQeSBIAkJHE/STyQJO4niftJQhL3kwSAJO4nCQBJvCCSAJDEC/Iar/EaAPzFX/wF+/v7AEjifpIAkMT9JAEgCQBJAEgCQBIAkgCQBIAkACQhCQBJSAJAEpK4nyQkIYn7SUISkpCEJCQhCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxP0kIQlJSEISkpCEJCQhCUlIQhKSkMRzk8TzI4l/iST+LSTxQJJ4QSTxopCEJCQhCUlI4oEkIQlJ3E8SkpCEJAAkIQlJSEISkpAEgCQkcT9JSEISkpCEJCQhCUlIQhKSkMQDSUIS95PE/SRxP0ncTxL3k8T9JAEgiftJAkAS95PE/SRxv4ODA37zN38TgLd4i7dAEs+PJAAkASCJ5yaJ5yaJ+0lCEveTxANJQhL3k4Qk7icJSQBIQhIAkrifJP49zp8/D8CLvdiLvfaLv/iLvzZXXXXVVVddddXzQ3DVVVddddVVVz1fr/M6r/NeAH/8x3/MCyKJF0YS95PE/SRxP0ncTxL3k4Qk7ieJ+0lCEveTxHOTxHOTBIAkACTx/EgCQBIAL/mSL8ktt9zC/v4+f/EXfwGAJO4nCQBJ3E8SAJIAkASAJAAkASAJAEkASAJAEpIAkIQkACQhCQBJSEIS95OEJCQhCUlIQhKSkIQkJCEJSQBIQhKSAJCEJAAkASAJAElIAkASkgCQhCQkIQlJSEISLypJSEIS95MEgCT+u0jifpIAkMQDSUISkpCEJCQhCUlIQhIPJAlJSEISkpCEJCQBIAlJSEISkpAEgCQAJAEgCUkASEISkvjXkIQkJCGJ+0lCEveTxP0kcT9J3E8SAJK4nyQAJHE/SQBI4n6SuJ8k7nfnnXeyv7/P8ePHecmXfEn+NSQBIIn7SQJAEveTxANJ4n6SkMT9JCGJ+0lCEveTxP0kASCJ+0lCEs+PJF6Y8+fP83M/93MAPPaxj30trrrqqquuuuqq54fgqquuuuqqq656vt7xHd/xswH++I//mH8tSUji+ZEEgCQkASAJSQBIQhL3k8T9JCGJ+0nifpIAkMT9JAEgiX+PN3/zNwfgt3/7twGQBIAkJAEgCQBJSAJAEgCSAJAEgCQAJAEgCQBJAEhCEgCSuJ8k7icJSdxPEpKQhCQk8cJIQhKSkASAJCQhCQBJSEISkpCEJCQBIAlJAEhCEpKQhCQeSBKSkIQkJCEJSUhCEpJ4IEk8P5L4jyaJf4kknh9JSOJFJQlJSEISkpCEJCQhCUlIQhIAkpCEJAAkIQlJSEISkpAEgCQkIQkASUhCEpKQhCQkIQlJSEISz00SkrifJCRxP0ncTxL3kwSAJAAkcT9JAEjifpIAkMT9JHE/SUhif3+fP/uzPwPgNV/zNZEEgCQAJAEgCQBJvCCSeG6SuJ8kJHE/SdxPEpK4nyQkcT9JSOJ+kgCQBIAkHkgSkrifJF4UT3rSkwB43dd93ffhqquuuuqqq656fgiuuuqqq6666qrn8WIv9mKvfc011zwY4MlPfjIvjCQkIQlJSOK5SQJAEgCSuJ8k7ieJ+0nifpKQxP0kcT9JPDdJPDdJAEgCQBIAkgCQBIAkHujN3/zNAbjrrru45557kASAJO4nCQBJ3E8SAJIAkASAJAAkASAJAEkASEISAJIAkIQkACQhCUkASEISkpDEA0lCEpKQhCQkIQkASUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkpDE/SQhCUlIQhKSkIQkJCGJB5KEJO4nCQBJAEjiXyKJ/2ySAJDEA0lCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJAEgCUlIAkASAJIAkASAJCRxP0lIQhKS+JdIQhKSkMT9JCGJ+0lCEgCSkMT9JAEgCQBJAEjifpIAkMT9JAEgCUkASEIS95PEE57wBO68806OHz/OW7zFW/CikASAJAAkcT9JPDdJ3E8SkrifJO4nCUncTxKSuJ8kJAEgCQBJAEjiuUlCEi+qJz3pSTzpSU/izJkzD3qxF3ux1+aqq6666qqrrnpuBFddddVVV1111fN4ndd5nfcC+L7v+z5s8+8hCQBJAEgCQBL3k8T9JHE/SUjifpK4nyTuJwkASdxPEgCS+LeQxC233MJLvuRLAvCXf/mX3E8S95MEgCTuJwkASQBIAkASAJIAkASAJAAkcT9JAEhCEgCSkIQkACQhCUncTxKSkIQkJCEJSUhCEpKQxP0kIQlJAEhCEgCSAJAEgCQAJCEJAElIQhIAkpCEJCQhCUm8IJKQhCTuJ4n7SeIFkcR/JUk8P5KQxPMjCUlI4l9DEpKQhCQAJCEJSUhCEpKQhCQkIQlJSEISknggSUhCEpKQhCQkIYkHkoQkJHE/SUjifpK4nyQkASAJAEkASAJAEveTBIAk7ieJ+0nifpK4nyR+8zd/E4AHPehBPOhBDwJAEgCSAJAEgCReEEncTxIAkrifJO4nCUncTxIPJIkHksT9JPH8SOJfyzYP9MQnPhGAF3uxF3strrrqqquuuuqq50Zw1VVXXXXVVVc9jxd7sRd7bYAnP/nJ/HtI4vmRBIAk7icJSQBIQhL3k8T9JHE/STw3SbwgkgCQBIAkACTx/LzGa7wGAE960pO4++67AZAEgCQkASAJAElIAkASAJIAkASAJAAkASAJAEkASEISAJKQBIAkJHE/SUhCEgCSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhIAkpCEJCTxQJKQhCQkIQlJPJAkJAEgiQeSxP0kIQkASUjiP4Ik/iWSAJAEgCTuJwlJSEISknggSUhCEpKQhCQkIQlJSEIS95OEJCQBIAlJAEgCQBIAkpAEgCQkASAJSUhCEpKQhCQkIQlJSEISkpDEA0lCEg8kiftJ4n6SAJAEgCQAJAEgiftJAkAS95PE/SRxP0nc7+DggD/7sz/j+PHjvNVbvRUvCkkASOK5SeK5SeJ+krifJCRxP0lI4n6SkASAJCQBIAlJAEjifpL49/ijP/ojAF7ndV7nvbnqqquuuuqqq54bwVVXXXXVVVdd9Rxe53Ve572vueaaB//xH/8x58+f599KEveTBIAk7icJAElI4n6SuJ8k7ieJ+0nifpIAkMT9JAEgCQBJvCgkASCJl3zJl+RBD3oQAL/zO7+DJCQBIIn7SQJAEveTBIAkACQBIAkASQBIAkASAJKQBIAkJAEgCUkASEISkrifJCQhCUn8SyQhCUlIQhKSkIQkACQhCUlIAkASkpCEJAAkIQkASUhCEpIAkIQkJCEJSUjigSQhCUncTxIAkgCQxP0k8V9JEi+IJO4niecmCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEgCSkIQkJCEJSUgCQBKSAJCEJCTxryUJSUjifpKQhCQAJCGJ+0kCQBIAkgCQBIAkACRxP0kASOJ+krifJO4nifs98YlPZH9/n2PHjvFSL/VS/GtJAkAS95MEgCTuJ4n7SeJ+kpDE/SQhiftJ4n6SuJ8kACRxP0m8qCTxQOfPn+eJT3wi11xzzYNf7MVe7LW56qqrrrrqqqseiOCqq6666qqrrnoOL/ZiL/ZaAE9+8pMBkMS/liTuJwkASQBI4n6SuJ8k7ieJ+0nifpK4nySemyT+JZIAkMQL8+Zv/uYA/PzP/zySuJ8k7icJAEkASEISAJIAkASAJAAkASAJAEkASEISAJKQBIAkJAEgCUlIAkASkpCEJO4nCUlIQhKSkIQkJHE/SUhCEgCSkIQkJCEJAElIQhIAkgCQhCQAJCEJSUgCQBKSkIQkHkgSkpDEA0nifpJ4bpL4ryQJAElI4n6SeCBJ3E8SkpDEi0oSkpCEJCQhCUlIAkASkpCEJCQBIAkASQBIQhIAkpCEJAAkIQlJSEISkpCEJCQhCUlI4oEkIYkHksT9JCEJAEkASAJAEgCSAJAEgCTuJwkASdxPEveTxP0kAbC/v8+f/dmfAfCar/maAEgCQBIAkgCQBIAkACTx3CTx3CRxP0ncTxL3k4Qk7icJSdxPEveTBIAkACRxP0n8W/3RH/0RAK/zOq/zXlx11VVXXXXVVQ9EcNVVV1111VVXPYcXe7EXe22AJz/5yfxrSUIS95MEgCQAJAEgiftJ4n6SuJ8k7ieJ+0nifpIAkMRzkwSAJAAk8fxIAkAS93vzN39zAO6++27uuece7icJAElIAkASAJK4nyQAJAEgCQBJAEgCQBKSkIQkACQhCQBJSAJAEpK4nyQkIYn7SUISkpCEJCQhCUlIQhKSkASAJCQhCQBJSAJAEpKQhCQkIQlJSEISkpCEJCRxP0lIQhL3k4QkJCGJ+0lCEveTxANJ4kUhif9IknhukrifJAAkASAJSdxPEpKQhCQkIQlJSEISkpDEc5OEJCQhCUkASEISAJKQhCQkIQlJSAJAEpK4nyQkIQlJ/EskIQlJSOJ+kpCEJO4niftJAkASAJIAkASAJAAkASCJ+0kCQBL3k8T9JHE/SQA88YlP5M477+T48eO85Vu+Jf9akgCQxP0kASCJ+0nifpK4nyQeSBL3k4QkACQhCQBJAEgCQBL3k4Qk/rWe9KQnAfBiL/Zir81VV1111VVXXfVABFddddVVV1111bO8zuu8zntfc801D/7jP/5jzp8/z7+GJB5IEg8kCQBJAEhCEgCSkASAJO4niftJ4n6SeG6SAJDEv8eDHvQgXvIlXxKAv/zLvwRAEpIAkMT9JAEgCQBJSAJAEgCSAJAEgCQAJCEJAEkASEISAJKQBIAkJAEgCUlI4n6SkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQBIAkJCEJSQBIAkASAJKQBIAkJAEgCUlIQhIAkpCEJCRxP0lIQhIAkpAEgCQAJHE/SfxbSOK/kiQk8dwkIQlJSEISkpCEJCQhCUncTxKSkIQkJCEJSUhCEgCSAJCEJCQhCQBJSEISDyQJSUhCEpKQhCQk8UCSkIQkHkgSkrifJAAkASAJAEkASAJAEgCSAJDE/SQBIAlJAEjifpK4nyQk8Vu/9VsAPOhBD+JBD3oQkgCQBIAkACQBIAkASTw3STw3SdxPEveTxP0kIYn7SeJ+krifJAAk8UCSeCBJ/GucP3+eJz3pSVxzzTUPfrEXe7HX5qqrrrrqqquuuh/BVVddddVVV131LC/2Yi/2WgBPfvKT+deQxANJ4n6SeG6SuJ8k7icJAElIAkAS95PE/SQBIInnJgkASQBIAkASAJIAkMRze43XeA0A/vIv/5K7774bSdxPEgCSkASAJAAkASAJSQBIAkASAJIAkIQkACQBIAlJAEhCEgCSkASAJCQhCQBJSEISkpCEJF4QSUhCEpKQhCQAJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQkIQlJ3E8SkpDE/SQhCUncTxL3kwSAJO4nif9KknhBJHE/SQBIAkASDyQJSUji+ZGEJCQhCUlIQhKSAJCEJCQBIAlJAEhCEpKQhCQAJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQkIQlJPJAkJCGJ+0lCEgCSAJAEgCQAJAEgCQBJAEgCQBL3k8T9JAEgCUkASEIS9zs4OODP/uzPOH78OG/5lm/Jv5YkACRxP0kASOJ+krifJO4niftJQhIAkpDE/SQBIIn7SeJ+knggSUjifpKQxAvy8z//8wC80zu902dx1VVXXXXVVVfdj+Cqq6666qqrrnqW13md13lvgD/+4z/mgSTx/EhCEg8kiftJAkASAJK4nyTuJ4n7SeJ+kgCQxP0k8dwkASCJfwtJALzUS70UD3rQg9jf3+cv//IvkcT9JAEgiftJAkASAJIAkIQkACQBIAkASUgCQBIAkpAEgCTuJwlJAEhCEpIAkIQkJCGJB5KEJCQhCUlI4n6SkIQkJCEJAElIAkASkpCEJCQhCUlIQhIAkpAEgCQkASAJSUhCEgCSkIQk7icJSQBI4vmRxANJQhKSeEEk8aKQxL+FJO4nCQBJ3E8SkrifJCQhCUlIQhIPJAlJSEISkpAEgCQkIQkASUhCEpIAkASAJCQBIAlJAEhCEpKQxItKEpKQhCQeSBKSuJ8kACQBIAkASTyQJAAkASAJAEncTxL3k8T9JHE/SdzvSU96Evv7+xw/fpyXeqmX4n6SAJAEgCQAJPGCSOK5SeJ+krifJO4niftJ4n6SkASAJO4nCQBJ3E8Sz00SkviXnD9/HoAzZ848mKuuuuqqq6666n4EV1111VVXXXXVZa/zOq/z3gB//Md/zPMjCUlIQhKSeG6SuJ8kACQBIAkASUgCQBL3k8T9JHE/SQBI4n6SAJDEc5MEgCQAJAEgCQBJAEjiub35m785AL/7u7+LJAAkIQkASQBIQhIAkgCQBIAkACQhCUlIQhKSkASAJAAkIQkASQBIQhKSAJCEJO4nCUlI4n6SkIQkJCEJSUhCEpKQhCQAJCEJSUhCEpKQhCQkIQkASQBIAkASkpCEJAAkIQlJSEISkrifJCRxP0lI4n6SAJAEgCQAJPFAknggSTyQJP6rSOJ+krifJO4nCUk8kCQkIQlJSEISDyQJSUhCEgCSkIQkJCEJAElIQhKSkASAJCQBIAlJSOJ+kpCEJCQhCUlIQhKSkMRzk4QkJHE/SUgCQBIAkgCQxP0kcT9JAEgCQBIAkpAEgCTuJ4n7SeJ+kgDY39/nz//8zwF4zdd8TU6cOMGLQhIAkgCQxP0kASCJ+0nifpIAkIQk7ieJ+0nifpK4nyQAJAEgiftJ4t/i/Pnz/NEf/RHXXHPNg1/ndV7nvbnqqquuuuqqqwAIrrrqqquuuuqqy17ndV7nvQD++I//mH8LSdxPEgCSAJAEgCTuJwkASdxPEveTxP0kASCJ+0kCQBIAkvi3kATAu7/7uwNw9913c8899wAgiftJAkAS95MEgCQAJAEgCQBJAEgCQBIAkgCQhCQAJAEgCUlIAkASkgCQhCQkcT9JSEISkpCEJCQhCUlIQhKSkIQk7icJSUgCQBKSAJCEJCQhCUlIQhIAkpCEJCQhCQBJSAJAEpKQBIAkJHE/SdxPEgCSAJDE/SQhiedHEv/ZJCEJSTyQJB5IEgCSkMT9JCEJSTyQJCQhCUlIQhIAkpCEJCQBIAlJAEhCEpKQBIAkJCEJSQBIQhKSAJCEJCQhCUk8P5KQhCQkIQlJ3E8SkpAEgCQkASAJAEkASEISAJK4nyQAJAEgiftJAkAS95PE/SRxP0kAPPGJT+Suu+7i+PHjvOZrvibPTRIAkviXSAJAEveTxP0k8dwkIQkASUjifpK4nyQAJAEgCQBJ3E8S/xZ/9Ed/BMDrvM7rvBdXXXXVVVdddRUAwVVXXXXVVVddddmLvdiLvTbAk5/8ZP61JHE/STw/kgCQxP0kASCJ+0nifpJ4bpJ4QSQBIAkASQBIAkASAJJ4oAc96EE86EEPAuB3f/d3AZAEgCQkASAJAElIAkASAJIAkASAJAAkASAJAEkASEISAJIAkIQk7icJSQBIQhKSAJCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJAEgCUlIQhIAkpAEgCQkASAJSUgCQBKSAJCEJAAkIQkASQBI4n6S+K8gCQBJPJAkHkgSDyQJAEkASOJ+kpDE/SQhCUlI4n6SkIQkJCEJAElIQhKSAJCEJCQhCQBJSEISAJIAkIQkJAEgCUlI4oEkIQlJSEISz48kJCGJB5LE/SQBIAkASQBIQhIAkrifJAAkASCJ+0kCQBL3k8T9JHE/SQD81m/9FgAv9VIvxYMf/GAAJPH8SAJAEgCSAJDEc5PE/SQBIAlJAEjifpK4nyQkASAJSQBI4vmRxP0k8a/1pCc9iSc96Um82Iu92Gu/+Iu/+Gtz1VVXXXXVVVcRXHXVVVddddVVvM7rvM57AfzxH/8x/1qSeH4kASCJ+0kCQBL3kwSAJO4niftJAkAS95MEgCQAJPFvIQmAt3iLtwDgL//yLzk8PEQSAJK4nyQAJAEgCUkASAJAEgCSAJAEgCQAJAEgCUkASEISkpAEgCQkIQkASUhCEgCSkIQkJCGJ50cSDyQJSUhCEpKQhCQkIQkASUhCEpIAkIQkJAEgCUlIQhIAkpAEgCQkcT9JSAJAEpIAkMT9JAEgiftJ4kUhif8Mknh+JPFAkgCQxP0kcT9JSOJ+kpCEJCRxP0lIQhKSAJCEJCQhCUlIAkASkpCEJCQhCUlIQhKSAJCEJCQBIAlJSEISkpCEJCQhCUlIQhKSeCBJSEISAJKQBIAkACQBIIn7SQJAEpIAkASAJAAkcT9JAEhCEgCSuJ8k7ieJg4MDfuu3fguAt3zLt+TfQxIAkrifJJ6bJO4niftJ4n6SuJ8k7icJAEncTxL3k8S/1pOe9CQAHvvYx74WV1111VVXXXUVwVVXXXXVVVddxTu+4zt+NsAv/uIv8q8hiQeSBIAkACQBIIn7SQJAEveTBIAk7ieJ+0kCQBIviCQAJAEgCQBJAEji+XmN13gNjh07xt13381f//Vfcz9JAEhCEgCSAJDE/SQBIAkASQBIAkASAJKQhCQkASAJSQBIQhKSkIQkACQhCUkASEISkpDE/SQhCUlIQhKSkIQkJHE/SUhCEpIAkIQkJCEJSQBIQhKSkIQkJCEJAElIQhKSAJCEJAAkIQlJAEjifpIAkMTzI4n/ySTxgkgCQBKSAJCEJCRxP0lIQhKSuJ8kJCEJAElIQhIAkpCEJCQBIAkASQBIQhIAkpCEJAAkIQlJSEISL4wkJCEJSUjifpKQBIAkJAEgCQBJAEhCEgCSuJ8kACQBIAkASdxPEveTBIAkJAEgCUnc7+677+auu+7i+PHjvNZrvRYAkgCQBIAkACQBIAkASQBI4rlJ4n6SAJDE/SRxP0ncTxL3k8T9JAEgCQBJPD+S+Nf4oz/6IwBe93Vf93246qqrrrrqqqsIrrrqqquuuur/uRd7sRd77WuuuebBT37ykzl//jwvKkk8kCQAJAEgCQBJAEjifpIAkMT9JAEgiftJ4rlJAkASAJL415DE/Y4dO8ZrvuZrAvBXf/VXAEhCEgCSuJ8kACQBIAlJSEISAJIAkASAJAAkIQkASQBIQhIAkpAEgCQkASAJSUgCQBKSkMT9JCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkASAJSQBIQhKSkASAJAAkIQlJSAJAEgCSkASAJCRxP0kASEISAJIAkASAJAAk8dwkIQlJSOJ/AkncTxIAkgCQxP0kcT9JSEIS95OEJCQhCQBJSEISAJKQhCQkIQkASUhCEpKQhCQkASAJSUgCQBKSkMQDSUISkpCEJCQhiecmCUlIAkASkgCQhCQAJAEgCQBJSAJAEveTBIAkACQBIAlJAEjifpK4nyTuJwmA/f19/uIv/gKAl3qpl+JBD3oQ/1aSAJDE/SQBIIn7SeJ+krifJO4nCQBJSAJAEgCSAJAEgCQeSBKSeFGcP3+eJz3pSZw5c+ZBL/ZiL/baXHXVVVddddX/bwRXXXXVVVdd9f/c67zO67wXwB//8R/zopLEA0nihZEEgCTuJwkASdxPEgCSuJ8kACTxgkgCQBIAkgCQxAsiibd4i7cA4MlPfjL33HMPkrifJAAkIQkASQBIAkASAJKQBIAkJCEJSUhCEgCSAJCEJAAkIQkASUgCQBKSuJ8kJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJAEhCEpKQhCQAJAEgCUlIQhKSkIQkACQhCQBJSAJAEgCSAJAEgCQeSBKSeG6S+JdI4t9KEi8KSdxPEgCSAJCEJAAkIYn7SUISkgCQhCQkIQkASUhCEgCSkASAJCQhCUkASAJAEpKQhCQkASAJSUgCQBKSkIQkJCEJSUhCEpKQhCQkIYn7SUISAJKQBIAkJAEgCQBJAEhCEgCSkASAJAAkASCJ+0kCQBL3k8T9JHE/SQDcddddPPGJT+T48eO81mu9FgCSAJAEgCQAJAEgCQBJAEjiuUniuUnifpIAkIQkACQhCQBJ3E8SAJJ4IEkASOK5SUISz00SD/RHf/RHALzYi73Ya3HVVVddddVV/78RXHXVVVddddX/cy/2Yi/22gBPfvKT+ZdIQhIPJIn7SQJAEgCSuJ8kACTx3CRxP0kASOK5SQJAEgCSeFFIAkAS93vJl3xJHvSgBwHwe7/3e0gCQBKSAJAEgCQkASAJAEkASAJAEpKQBIAkACQBIAkASUgCQBKSAJCEJAAkIQkASUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJAEhCEgCSkIQkJCEJSUhCEpKQhCQAJCEJAEkASEISAJKQBIAkACQBIAkASTyQJF4YSTw3SfxnkIQkJCGJB5LE/SQBIIn7SeJ+kpAEgCQkIYn7SUISkgCQhCQkASAJSUhCEgCSkIQkJCEJAElIAkASkpAEgCQkIQlJ/EskIQlJSEISAJKQxP0kcT9JAEgCQBIAkpCEJAAkASAJAEkASOJ+kgCQxP0kcT9J3E8SAH/xF3/B/v4+D37wg3mpl3op/q0kASCJ+0kCQBL3kwSAJO4niftJ4n6SAJDE/STx3CTx/EhCEpKQxHN70pOeBMDrvM7rvDdXXXXVVVdd9f8bwVVXXXXVVVf9P/Y6r/M6733NNdc8+E/+5E+4cOECL4wknpsk7icJAEkASAJAEs9NEgCSuJ8knpskACTxgkgCQBIAkgCQxAsiibd4i7cA4Jd+6ZeQBIAk7icJAEncTxIAkgCQBIAkACQBIAkASQBIQhKSkASAJCQBIAlJAEhCEgCSkIQk7icJSUhCEpJ4UUlCEpKQhCQAJCEJSUhCEpKQhCQAJAEgCQBJAEhCEpKQBIAkJCEJSQBIQhIAkgCQBIAkACRxP0lI4l9DEv8WkviXSOK5SUIS95PE/SQBIAlJAEhCEgCSkMT9JCEJSQBIQhKSAJCEJCQhCUkASEISkpCEJCQhCUlIAkASkpAEgCQkIYn7SUISkpCEJCQhCUk8kCQkIYn7SUISAJKQBIAkACQBIAkASQBIAkASAJIAkASAJO4nCQBJSAJAEpIAkIQkACRxcHDAX/zFXwDwWq/1Whw/fpz7SQJAEgCSAJAEgCQAJPHcJAEgiftJ4rlJ4n6SuJ8kACRxP0kASAJAEveTxL/W+fPnedKTnsQ111zz4Bd7sRd7ba666qqrrrrq/y+Cq6666qqrrvp/7MVe7MVeC+DJT34yAJJ4bpKQxHOTxP0kASCJB5IEgCQAJHE/SQBI4n6SAJDE/SQBIAkASQBI4kUhCQBJ3O/d3/3dAbjnnnu45557AJAEgCQkASAJAElIQhKSAJAEgCQAJAEgCQBJAEhCEgCSAJCEJAAkIQkASUgCQBKSkASAJCQhCUlI4n6SkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpKQBIAkJAEgCUlIQhKSkIQkJCEJAEkASEISAJIAkIQkACQBIAkASQBI4n6S+N9EEveTxP0kcT9JAEhCEgCSkIQkACQhCUkASEISkgCQhCQAJCEJSUgCQBIAkgCQhCQkIQlJAEhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJ3E8SkpAEgCQkASAJSQBIAkASAJIAkASAJAAkASAJAEkASEISAJK4nyTuJ4n7SeJ+T3rSk7jrrrs4fvw4r/Var4Uk/i0kASCJ5yaJ+0kCQBL3k8T9JAEgiftJAkASAJIAkMT9JPGv9Ud/9EcAvM7rvM57cdVVV1111VX/fxFcddVVV1111f9jL/ZiL/baAH/8x3/M/SQhCUlI4vmRxP0k8dwkcT9JAEgCQBL3kwSAJO4nCQBJvCCSAJAEgCQAJPEvefCDH8yDHvQgAH7v934PSUgCQBL3kwSAJAAkcT9JAEgCQBIAkgCQhCQkIQkASQBIQhIAkpAEgCQkASAJSUgCQBKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpIAkIQkJCEJAElIQhKSkIQkJCEJSUgCQBIAkgCQhCQkIQkASQBIQhIAkgCQBIAkACRxP0k8kCQkIQlJSEISDySJ/yiSAJDE/STxL5HE/STxQJIAkASAJCQBIAlJSAJAEpKQBIAkJCEJSUhCEpKQBIAkJCEJSUhCEpIAkIQkACQhCUkASEISkpCEJF4YSUhCEpIAkIQkJAEgCUkASEISAJIAkASAJAAkASAJAEkASAJAEveTBIAk7ieJ+0nifpK43+/8zu8A8FIv9VI86EEP4n6SAJAEgCQAJAEgCQBJPDdJAEjifpIAkMT9JAEgCUkASOJ+kgCQBIAkACQBIIn7SeJf40lPehIAL/ZiL/baXHXVVVddddX/XwRXXXXVVVdd9f/U67zO67z3Nddc8+A//uM/5l9DEveTxP0kASAJAEk8N0kASOJ+kgCQxHOTBIAkACTxopAEgCQAJHG/t3iLtwDg937v9zg8POR+kgCQhCQAJAEgCQBJSEISkpCEJCQhCUlIQhIAkgCQhCQkIQkASUgCQBKSkIQkJCEJAElIQhKSuJ8kJCEJSUhCEpKQhCQkIQlJSEISkgCQhCQkIQkASUgCQBKSAJAEgCQkIQlJSEISkgCQBIAkJCEJSQBIAkASAJIAkMT9JPFAknhBJPE/jSTuJwkASQBIAkAS95PE/SQhCQBJSEISAJKQBIAkJAEgCUlIQhKSkIQkJCEJSUgCQBKSkASAJCQhCUncTxKSkIQkJCEJSdxPEpKQxP0kIQkASUgCQBKSAJAEgCQAJAEgCQBJAEgCQBIAkrifJAAkIQkASdxPEveTBMD+/j6//du/DcBbvdVbIYl/C0kASOK5SQJAEveTBIAk7ieJ+0kCQBIvjCTuJwlJvCjOnz/Pk570JK655poHv9iLvdhrc9VVV1111VX/PxFcddVVV1111f9TL/ZiL/ZaAE95ylN4UUni+ZEEgCQAJAEgCQBJ3E8SAJJ4bpIAkMQLIgkASQBIAkAS/5K3fMu35NixY9xzzz089alPBUASkgCQBIAkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAlJAEhCEpKQBIAkJCEJAElIAkASkpCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQkASQBIQhKSkASAJAAkASAJAEkASOJ+krifJCTxP5UkJCEJSTyQJCQBIAkASQBIAkASkgCQhCQAJCEJAElIQhKSkIQkACQhCUlIAkASAJIAkASAJCQhCUlIAkASkpDE/SQhCUlIQhKSkIQkJCEJSdxPEpKQBIAkJAEgCUkASEISAJIAkASAJAAkASAJAEkASAJAEpIAkMT9JAEgCUkASOJ+kpDE3XffzV133cXx48d5q7d6K56bJAAkASAJAEkASOK5SQJAEs9NEgCSuJ8k7icJAEncTxIAkgCQxP0k8UCSeFH8/M//PADv9E7v9FlcddVVV1111f9PBFddddVVV131/9TrvM7rvDfAH//xH/OikMQDSQJAEs+PJAAkASCJ5yYJAEncTxIAkgCQBIAkXhSSAJDEAz3oQQ/iJV/yJQH467/+awAkASAJSQBIAkASkgCQBIAkACQBIAkASQBIAkASkpCEJAAkIQkASUhCEpKQBIAkJAEgCUlIQhIAkpCEJCQhCUlIQhIviCQkIQlJSEISAJKQhCQAJCEJAElIQhKSAJAEgCQkIQlJSAJAEgCSAJAEgCQAJAEgCQBJSAJAEpJ4UUnihZHEv5ckHkgSz00SknggSQBIAkASAJIAkIQkACQhCQBJSAJAEpIAkIQkJCEJSQBIQhKSkIQkJCEJSUgCQBKSAJCEJCQBIAlJSEISkpDEc5OEJCQhCUkASEISkgCQhCTuJwkASUgCQBIAkgCQBIAkACQBIAkASdxPEgCSuJ8k7icJAElI4n4HBwf8zu/8DgAv9VIvxYMf/GAAJPGvIQkASQBI4n6SAJDEc5PE/SQBIIn7SQJAEgCSAJDE/STxQJL4l5w/fx6AM2fOPJirrrrqqquu+v+J4Kqrrrrqqqv+H3qd13md9wb44z/+Y14UknggSTw3SQBI4rlJAkASAJK4nyQAJPGCSAJAEgCSAJDEv0QSAK/5mq8JwF//9V9zzz33IAkASdxPEgCSAJCEJAAkASAJAEkASAJAEpKQhCQAJAEgCUkASEISAJKQBIAkJAEgCUlIQhIAkpCEJCQhCUk8kCQkIQlJSEISAJKQhCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJAAkASAJAEkASEISkpCEJAAkASAJAEncTxLPTRKSkIQkXhhJAEjiP4skXhhJPJAkACQBIAkASQBIQhIAkpAEgCQkASAJSQBIQhIAkpCEJCQBIAkASUhCEpKQhCQAJCEJSQBIQhKSkMQDSUISkpDE/SQhCUlI4n6SkMT9JCEJAEkASEISAJIAkASAJAAkASAJAEkASEISAJIAkMT9JHE/SdxPEvc7ODjgL/7iLwB4q7d6K56bJAAkASAJAEkASOIFkQSAJO4nCQBJ3E8SAJK4nyQAJAEgCQBJAEjifpJ4IElI4gW5cOECf/RHf8Q111zz4Nd5ndd5b6666qqrrrrq/x+Cq6666qqrrvp/6HVe53XeC+BP/uRP+JdI4oEkcT9JAEgCQBIAkgCQxHOTBIAknpskACQBIIkXhSQAJAEgiQd6zdd8TR70oAdxzz338Dd/8zdIAkASAJKQBIAkACQBIAlJSEISkpCEJCQhCUlIAkASAJKQhCQkASAJSQBIQhIAkpAEgCQkIQlJAEhCEpKQhCTuJwlJSEISkpCEJCQhCUncTxKSkIQkACQhCUkASEISAJKQhCQkASAJSUhCEpKQhCQkIQkASQBIQhIAkgCQxP0k8UCSkMRzk4Qk/jNI4j+CJCRxP0kASAJAEgCSAJCEJAAkIQkASUgCQBKSAJCEJCQhCQBJSEISkpAEgCQAJCEJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJCGJ+0lCEpKQBIAkJCEJAElIAkASAJKQBIAkACQBIAkASQBIAkAS95MEgCQAJCEJAEncTxL3k8T9nvzkJ3P33Xdz/Phx3vqt3xoASfxrSAJAEgCSeG6SAJDE/SQBIIn7SQJAEi+MJO4niecmCUk8kCQA/viP/xiA13md13kvrrrqqquuuur/H4Krrrrqqquu+n/oxV7sxV4b4MlPfjIviCQk8UCSuJ8kACQBIAkASQBIAkASAJK4nyQAJAEgiecmCQBJAEgCQBIAkviXSOJBD3oQr/marwnA3/zN3wAgCUkASAJAEpIAkASAJAAkASAJAEkASAJAEgCSAJCEJAAkASAJSQBIQhIAkpCEJCQhCUlIAkASkpCEJO4nCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSQBIQhKSkIQkJCEJSQBIQhKSkASAJAAkASAJAEkASAJAEpIAkASAJCRxP0lI4l8iiftJ4r+CJP41JHE/SQBIAkASAJIAkIQkACQhCQBJSAJAEpKQhCQAJCEJSUhCEpKQhCQkIQlJAEhCEgCSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEveThCQkASAJSUgCQBKSAJAEgCQkASAJAEkASAJAEgCSAJDE/SQBIIn7SQJAEpIAkIQkACQhif39fX7nd34HgAc96EE8+MEP5oEkASAJAEkASAJAEgCSeG6SAJDEc5MEgCTuJwkASdxPEgCSAJDE/SRxP0k8P5KQhCTu96QnPYknPelJvNiLvdhrv/iLv/hrc9VVV1111VX/vxBcddVVV1111f8zr/M6r/NeAH/8x3/MCyKJ5yaJ+0niRSEJAEkASOK5SQJAEgCS+NeQBIAkACTxQK/5mq8JwF//9V9zzz33IAkASUgCQBIAkpAEgCQAJAEgCQBJAEgCQBIAkpCEJCQBIAlJSEISAJKQBIAkJCEJAElIQhIAkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSAJCEJAAkIQkASUhCEpIAkIQkJCEJSUhCEpIAkASAJAAkIQkASdxPEpL4n0ISAJJ4QSQhCUlIQhKSeCBJ3E8SAJIAkASAJAAkIQkASUgCQBKSkIQkACQhCUlIAkASAJIAkIQkJCEJSUhCEpKQhCTuJwlJSEISkpCEJCQhCUlIQhKSkIQkACQhCUncTxKSAJCEJAAkASAJSQBIAkASAJIAkASAJAAkIQkASQBIQhIAkrifJO4niftJYn9/n7/4i7/g+PHjvNVbvRUAkvi3kASAJAAkcT9JAEgCQBL3kwSAJO4nCQBJAEgCQBLPjyReVE960pMAeOxjH/taXHXVVVddddX/LwRXXXXVVVdd9f/MO77jO342wC/+4i/y3CQhiecmiftJ4n6SAJAEgCQAJPHcJAEgCQBJPDdJAEgCQBIAkgCQBIAk/iWSeM3XfE0e9KAHcXBwwN/8zd8gCQBJ3E8SAJIAkIQkJCEJAEkASAJAEpKQhCQkIQkASQBIQhIAkpCEJCQhCUlIQhIAkpCEJAAkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUlIQhKSAJCEJCQhCQBJSAJAEgCSAJAEgCQkASAJAEncTxL3k8TzIwlJSEISz00S/1Uk8UCSeEEkIYn7SeJ+kgCQBIAkACQBIAlJAEhCEpKQBIAkJCEJSQBIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhKSeFFIQhKSkMT9JCEJSQBIQhIAkpAEgCQAJCEJAEkASAJAEgCSAJCEJAAkASCJ+0kCQBL3k8T9JHE/STz5yU/m7rvv5vjx47zWa70Wz48kACQBIAkASQBIAkASz00SAJJ4bpIAkMT9JAEgCQBJAEgCQBIAknggSbwo/viP/xiA133d130frrrqqquuuur/F4Krrrrqqquu+n/kxV7sxV77mmuuefCTn/xkLly4wP0kIYnnRxL3k8T9JAEgCQBJAEgCQBIAknhukgCQBIAk/i0kASAJAEnc70EPehCv+ZqvCcAf/MEfIAkASQBIQhIAkgCQBIAkACQhCUlIQhKSkASAJAAkASAJSUhCEgCSkASAJCQBIAlJAEhCEpIAkIQkJCEJAElIQhKSkIQkJPGCSEISkpCEJCQhCUkASEISkgCQhCQkIQlJAEhCEgCSkIQkJCEJSQBIAkASkgCQBIAkJAEgCUk8kCQkIYnnJol/DUn8Z5DEi0IS95OEJAAkASAJAEkASAJAEpKQhCQAJCEJAEkASEISkpCEJCQhCUlIQhKSAJCEJCQhCUkASEISkpAEgCQkIQlJSEISkpCEJO4nCUlIQhIAkpCEJAAkIQkASUgCQBIAkpAEgCQAJAEgCQBJ3E8SAJIAkMT9JAEgCUkASOJ+krjfwcEBf/mXfwnAS7/0S/PgBz8YSQBI4t9CEgCSAJDE/SQBIAkASdxPEgCSAJDE8yMJAEk8kCT+JefPn+dJT3oSZ86cedCLvdiLvTZXXXXVVVdd9f8HwVVXXXXVVVf9P/I6r/M67wXwJ3/yJ0hCEpJ4QSTx/EgCQBIPJAkASQBIAkASAJJ4bpIAkASAJAAkASAJAEkASOJfIonXfM3XBOCpT30q9957L5KQBIAkACQhCQBJAEgCQBIAkgCQBIAkACQBIAlJSEISAJKQhCQkASAJSQBIQhIAkpCEJAAkIQlJSAJAEpKQhCQkIYn7SUISkpCEJCRxP0lIQhKSkIQkJCEJSUhCEgCSkASAJCQBIAlJSEISAJIAkIQkACQBIAlJAEjifpJ4IElI4l8iiedHEgCS+JdI4r+KJCRxP0kASAJAEgCSAJAEgCQAJCEJAElIQhKSkIQkACQBIAkASQBIQhKSkASAJCQBIAlJSOJ+kpCEJCQhCUlIQhKSkIQkJHE/SUhCEgCSkIQkACQhCQBJSAJAEgCSkIQkJAEgCQBJAEhCEgCSAJAEgCQkASCJ+0kCQBKSAJCEJADuvvtu/vIv/5Ljx4/zVm/1Vjw/kgCQBIAkACQBIAkASbwgkgCQxHOTBIAknpskACTx3CTxQJL4l/zxH/8xAC/2Yi/2Wlx11VVXXXXV/x8EV1111VVXXfX/yIu92Iu9NsCTn/xk/iWSeCBJAEjiuUniXyIJAEkASOLfQxIAknhur/mar8mDHvQgDg4O+IM/+AMkASAJSQBIAkASkpCEJAAkASAJAEkASAJAEpKQhCQAJAEgCUkASEISkpAEgCQkIQlJSEISAJKQhCQkASAJSUhCEpKQBIAkJCEJSUhCEpKQhCQkcT9JSEISkpAEgCQkIQlJSEISkpCEJCQhCUkASEISAJIAkIQkACQBIAlJAEhCEveThCT+NSRxP0n8a0gCQBLPjyReGEk8N0lIQhKSkMRzk8T9JAEgCQBJAEhCEpIAkASAJCQhCUkASAJAEpKQhCQkIQlJSEISAJKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkJHE/SUgCQBKSAJCEJAAkASAJAElIAkASAJKQBIAkACQBIIn7SQJAEveTxP0kcT9JADzpSU9if3+f48eP81qv9VpIAkAS/xaSAJAEgCSemyQAJAEgiftJAkASAJIAkASAJO4niQeSxAvzpCc9CYDXeZ3XeW+uuuqqq6666v8Pgquuuuqqq676f+J1Xud13vuaa6558J/8yZ9w4cIFXhhJPJAknpskACQBIAkASQBIAkASz00SAJIAkASAJAAkASAJAEkASOIFkQTAgx/8YF7zNV8TgD/8wz9EEgCSAJCEJAAkASAJAElIQhKSkIQkJCEJSUhCEgCSAJCEJCQhCQBJSAJAEpKQhCQkASAJSUhCEpKQhCQAJCEJSUhCEveThCQkIQlJSEISkpCEJCQhCUkASEISkpCEJAAkIQlJAEhCEgCSkASAJCQBIAlJSEISAJKQBIAk7ieJ+0lCEs9NEpKQhCQkIYn/DJJ4UUji+ZGEJJ4fSUhCEveThCQAJAEgCUlIQhIAkpCEJCQBIAkASUhCEpKQhCQkIQkASUhCEpKQhCQAJCEJAElIQhIAkpCEJCQhCUlIQhL3k4QkJCEJSUhCEveThCQkASAJSQBIQhIAkpAEgCQAJAEgCUlIQhKSAJAEgCQAJAEgCUkASAJAEpIAkMT9JHE/SRwcHPC7v/u7ALz0S780D37wg3lukgCQBIAkACQBIAkASQBI4rlJAkASAJJ4bpIAkASAJAAkASAJAEncTxIPJAlJPD/nz5/nSU96Etdcc82DX+zFXuy1ueqqq6666qr/Hwiuuuqqq6666v+JF3uxF3stgCc/+cm8MJJ4IEncTxIAkgCQBIAkACQBIAkASQBIAkAS/xEkASCJ5/aar/maADz1qU/l3nvvRRKSAJAEgCQkASAJAEkASAJAEgCSAJAEgCQAJCEJSUgCQBKSkIQkACQhCQBJSAJAEpKQBIAkJCEJAElIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQxP0kIQlJSAJAEpKQBIAkJAEgCUkASEISAJIAkIQkACQhCQBJSAJAEpJ4IElIQhIviCQeSBL/2STxH0ESDyQJAElIAkASAJIAkASAJCQhCUkASAJAEgCSAJCEJCQBIAkASUhCEpKQhCQkIQkASUhCEpKQhCQeSBKSeG6SkIQkJCEJAElIQhIAkpAEgCQkASAJSQBIAkASAJIAkASAJAAkASAJAEncTxIAkrifJAAkIQkASUgCQBL33HMPf/mXf8nx48d5q7d6KyQBIIl/D0kASAJAEs9NEgCSAJDECyMJAEncTxLPTRLPzx//8R8D8Dqv8zrvxVVXXXXVVVf9/0Bw1VVXXXXVVf9PvNiLvdhrA/zJn/wJL4gkHkgS95MEgCT+NSQBIAkASQBIAkASAJIAkASAJAAkASAJAEk8N0kAvNZrvRYPetCDODg44A//8A+RxP0kASAJAElIQhKSAJAEgCQAJAEgCQBJSEISkgCQBIAkJAEgCQBJSAJAEpKQhCQkIQkASUhCEgCSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJSEISkpCEJAAkIQkASUhCEpIAkIQkACQhCQBJSOJ+kpCEJF5UknhRSeK5SeLfQxL3k8S/hiQkcT9J3E8SAJIAkASAJAAkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUkASEISkpCEJCQhCUncTxKSkIQkJCEJSUhCEveThCQkIQkASUhCEgCSkASAJCQBIAlJSEISAJIAkASAJAAkASAJAEkASEISAJIAkIQkACRxP0ncTxL3e/KTn8zdd9/N8ePHee3Xfm2emyQAJAEgCQBJAEgCQBIAkgCQxHOTBIAkACQBIIn7SQJAEgCSeG6SuJ8knpskJCGJ+z3pSU8C4MVe7MVem6uuuuqqq676/4Hgqquuuuqqq/4feJ3XeZ33vuaaax78J3/yJ7wgknggSdxPEs9NEgCSAJAEgCQAJPEvkQSAJAAk8aKSxAM96EEP4jVf8zUB+MM//EMkASAJSQBIAkASAJIAkIQkJCEJSUhCEpKQhCQkASAJAElIQhKSAJCEJCQhCUlIQhKSAJCEJAAkIQlJSEISkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkJAEgCUlIAkASkpCEJCQhCUlIAkASkgCQhCTuJ4n7SUISz48kJCGJfw1JAEjiX0sS/xEkIQlJSEISkpDEA0lCEgCSkASAJAAkASAJSUhCEpIAkASAJAAkASAJAEkASEISkpAEgCQkIQlJSAJAEpKQhCQAJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkASAJSUgCQBKSAJCEJAAkASAJSQBIAkASAJIAkASAJAAkIQkASQBI4n6SAJCEJAAkcT9JABwcHPC7v/u7ALzUS70UD3nIQwCQxH8ESQBIAkASAJJ4bpIAkASAJAAkASCJ+0nifpJ4QSQhiQsXLvCkJz2Ja6655sEv9mIv9tpcddVVV1111f99BFddddVVV131/8CLvdiLvRbAk5/8ZJ6bJCTxQJK4nyTuJwkASQBIAkASAJIAkASAJAAkASAJAEm8MJIAkASAJAAk8dwkAfBar/VaAPzt3/4t9913HwCSAJCEJCQhCQBJAEgCQBIAkgCQBIAkACQBIAlJSEISAJKQhCQkASAJSQBIQhIAkpCEJCQhCUlIAkASkpCEJAAkIQlJSEISkpCEJF4YSUhCEpKQhCQkIQkASUhCEgCSkIQkACQhCQBJSAJAEpIAkIQk7icJSQBIQhIPJAlJSEISDyQJSUjigSRxP0m8qCTxopLECyOJB5LECyMJSTyQJO4nCQBJAEhCEgCSAJCEJCQhCUlIQhKSkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISkrifJCQhCQBJSEISAJKQBIAkJAEgCQBJSAJAEgCSAJAEgCQAJHE/SQBIAkASkgCQxP0kASAJSQBIQhIHBwf85V/+JcePH+et3uqteG6SAJAEgCQAJAEgCQBJAEgCQBIAknhBJAEgCQBJAEgCQBIAkgCQxP0kcT9J/Et+4Rd+AYB3eqd3+iyuuuqqq6666v8+gquuuuqqq676f+B1Xud13hvgT/7kT3ggSTw3SdxPEveTBIAk/jUkASAJAEkASAJAEgCSAJDEv0QSD/Sar/maPOhBD+Lg4IC//du/RRKSAJAEgCQAJCEJSUgCQBIAkgCQBIAkJCEJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJCEJSUgCQBKSkASAJCQhCUkASEISkpCEJCQhiftJQhKSkIQkJCGJ+0lCEpKQhCQkIQlJSEISkgCQhCQkASAJSQBIQhIAkpDE/SQhCQBJSOKBJCGJF5UkHkgS/9Uk8fxI4kUlCUncTxKSAJAEgCQkASAJAEkASAJAEgCSAJCEJCQhCUlIQhKSAJCEJAAkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkACQhCUkASEISkgCQhCQAJCEJAEkASEISkpAEgCQAJAEgCQBJSAJAEgCSuJ8kACRxP0ncTxL3k8STn/xk7r77bo4fP85bv/VbAyCJf4kkACQBIIkXRBIAkgCQBIAkACTxopDE8yOJF+bChQsAnDlz5sFcddVVV1111f99BFddddVVV131f9zrvM7rvDfAn/zJn3A/SUjiuUni+ZHEc5MEgCQAJAEgCQBJ/HtIAkASAJJ4bpJ40IMexGu91msB8Ed/9EdIAkASkgCQBIAkACQBIAlJSEISkpCEJCQhCQBJAEhCEpKQBIAkACQhCQBJSAJAEpIAkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSuJ8kJCEJSUhCEpKQhCQkIYn7SUISkpCEJAAkIQlJSAJAEpKQBIAkJAEgCUkASEISkgCQhCTuJwlJSOLfQhL/WSTxgkjigSRxP0k8N0lIQhKSkMRzk4Qk7icJAElIAkASAJKQhCQkIQlJSEISkpAEgCQAJCEJSUhCEpKQhCQkIQlJSEISkgCQhCQkIQlJ/EskIQlJSEISkrifJCRxP0lIAkASkgCQhCQAJAEgCQBJSEISkgCQBIAkJAEgCQBJAEhCEgCSAJCEJAAkIQkASdzv8PCQ3/u93wPgpV/6pXnwgx/MA0kCQBIAknhhJAEgCQBJAEgCQBIAknhukgCQBIAkACRxP0kASOKBJPGCnD9/nj/+4z/mmmuuefDrvM7rvDdXXXXVVVdd9X8bwVVXXXXVVVf9H/c6r/M67wXwJ3/yJ0hCEs+PJB5IEs9NEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIIkXRBIP9JZv+ZYA/O3f/i333XcfAJIAkIQkJCEJAEkASAJAEgCSAJAEgCQAJCEJSUgCQBIAkpCEJCQBIAlJAEhCEgCSkIQkACQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkIQkASUhCEpIAkIQkJAEgCUkASEIS95OEJO4nCUk8kCQkIQlJSEISkpCEJCTx3CTx3CTx3CTx30ESz48kJCGJB5KEJAAkIQkASQBIQhIAkgCQBIAkACQhCUlIQhKSAJCEJCQhCQBJSEISkpCEJAAkIQlJSEISAJKQhCQkIQlJSEIS95OEJCQhCUlIAkASkpAEgCQkASAJSQBIQhKSkASAJAAkASAJSUhCEpIAkASAJAAkcT9JAEjifpK4nyQAJCEJgIODA/7qr/4KgLd+67cGQBIviCQAJAEgCQBJAEgCQBL/EkkASAJAEgCSAJAEgCSemyQeSBKSeH7+6I/+CIDXeZ3XeS+uuuqqq6666v82gquuuuqqq676P+7FXuzFXhvgKU95Ci+IJB5IEveTBIAkACTxX0USAJJ4bpJ4z/d8T44fP869997L3/3d3yEJSQBIAkASAJKQhCQkIQlJSEISkpCEJCQhCUlIAkASAJKQhCQkASAJSUhCEpKQhCQkIQlJSAJAEpKQBIAkJCEJSQBIQhKSkIQkACQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkcT9JSEISkgCQhCQkIQkASUhCEgCSkASAJCQhiftJQhL3k4QkJPGiksQLIokHksQLIon/aJJ4IEm8KCQhCUncTxL3kwSAJCQBIAkASUhCEpKQhCQAJAEgCUlIQhIAkpCEJCQhCQBJSEISkpCEJCQhCQBJSEISkpCEJCQhCUlIQhL3k4QkJCEJSQBIQhKSAJCEJAAkIQkASQBIQhIAkgCQBIAkACQBIAkASQBIAkASkgCQBIAkJAEgiftJ4n6SAHjyk5/M3XffzfHjx3nrt35rHkgSAJL4t5AEgCQAJAEgCQBJAEji+ZEEgCQAJHE/STw3STy3Jz/5yTzpSU/ixV7sxV77xV/8xV+bq6666qqrrvq/i+Cqq6666qqr/g97ndd5nfcC+JM/+RNeEEk8kCTuJwkASTw3SQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSeEEkcb8HPehBPOhBDwLg7/7u75AEgCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASQBIQhKSkASAJCQhCUkASEISAJKQBIAkJCEJSUhCEpKQhCQkIQkASUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUkASEISkpDE/SQhCUkASEISkgCQhCTuJwlJSOJ+kpDE8yOJf4kk/itI4oEk8aKSxAsiiRdEEpIAkIQkACQhCQBJSEISkgCQBIAkJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQAJCEJSUgCQBKSkIQkJCEJSUhCEpKQhCQkIYn7SUISkpAEgCQkIQkASUgCQBKSAJAEgCQkASAJAEkASAJAEgCSAJAEgCTuJwkASdxPEgCSkASAJCQBIInDw0N+7/d+D4CXfumX5sEPfjCSeEEkASAJAEkASAJAEgCSAJAEgCT+JZIAkMRzkwSAJO4niecmief25Cc/GYDHPvaxr8VVV1111VVX/d9FcNVVV1111VX/h73jO77jZwP80i/9Es+PJB5IEveTxHOTBIAkACQBIAkASQBIAkASAJIAkASAJAAk8YJIAkASz00S7/me7wnA3/3d33HfffcBIAkASQBIQhKSkASAJAAkASAJAEkASEISkpCEJCQBIAlJSEISAJKQhCQkIQlJSEISkpCEJAAkIQlJAEhCEpIAkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQBIAlJSEISkgCQhCQkASAJSUgCQBKSkMT9JCEJSTyQJCQhCUkASEISkpCEJJ6bJO4nif8uknhuknhukpCEJAAkIQlJSEISDySJ+0lCEgCSkASAJAAkIQlJSAJAEgCSkIQkJAEgCUkASEISAJKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhIAkpCEJCQBIAlJSAJAEpIAkIQkACQBIAlJSEISAJIAkASAJAAkASAJAElIAkASAJKQBIAk7ieJ+0nifoeHh/ze7/0eAG/91m/N8ePHuZ8kACTxH0ESAJIAkASAJAAkASAJAEk8N0ncTxLPTRKSuN8f//EfA/C6r/u678NVV1111VVX/d9FcNVVV1111VX/R73Yi73Ya19zzTUPvnDhAhcuXOC5SeKBJHE/SdxPEgCSAJDEfzRJAEjiBZHE/d7zPd8TgHvvvZe/+7u/QxKSAJAEgCQAJAEgCUlIQhKSkIQkJCEJSUgCQBIAkpCEJCQBIAlJSEISAJKQBIAkJAEgCUlIQhKSkASAJCQhCQBJSEISkpAEgCQkIQlJSEISkpCEJP4lkpCEJCQhCUlIAkASkpCEJCQBIAlJSOJ+kpDE/SQhCUncTxKSkIQkXlSSkMQDSeJFIYkHksS/lyQeSBLPjyQk8aKQhCTuJwlJ3E8SkgCQBIAkJAEgCQBJSEISkgCQhCQkIQlJSEISkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQAJCEJSUgCQBKSkASAJCQBIAlJSEISAJIAkIQkACQBIAkASQBIAkASkgCQBIAkJAEgCQBJSAJAEveTxP2e8pSncPfdd3P8+HHe+q3fGkk8N0kASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASdxPEveTxPMjCUmcP3+eJz3pSZw5c+ZBL/ZiL/baXHXVVVddddX/TQRXXXXVVVdd9X/U67zO67wXwC/90i/x3CTxQJK4nyTuJwkASTw3SQBIAkASAJIAkASAJAAkASAJAEkASOK5SQJAEs/tpV/6pXnQgx4EwB//8R8jCQBJSEISkgCQBIAkACQBIAkASQBIAkASkpCEJCQhCQBJAEhCEgCSkIQkJCEJSUhCEpKQhCQAJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJPJAkJCEJSUhCEpKQxP0kIQlJSEISkrifJCQhCUkASEISkpAEgCQkIYn7SUISknh+JCEJSUhCEi+IJJ4fSQBI4r+TJO4niX8LSUhCEgCSkMT9JAEgCUkASEISkpAEgCQkIQlJSEISkgCQhCQAJCEJSUhCEpKQBIAkJCEJSUhCEv8SSUhCEpKQhCTuJwlJSAJAEpKQhCQkIQlJSAJAEpIAkASAJCQhCUlIQhKSkIQkJCEJAEkASOJ+kgCQxP0kASAJSQBIQhIAv//7vw/Agx/8YF77tV+b+0niXyIJAEkASAJAEgCS+PeQBIAk7ieJ+0niBZHEk5/8ZABe7MVe7LW46qqrrrrqqv+bCK666qqrrrrq/6gXe7EXe22AJz/5yTyQJB5IEs+PJJ6bJAAkASAJAEkASAJAEgCSeFFJAkASz00SAMePH+ct3/ItAfiN3/gNjo6OAJAEgCQAJCEJSUhCEpKQhCQkIQlJSEISkpAEgCQAJAEgCUlIQhKSkIQkACQhCQBJSAJAEpKQhCQkIQkASUhCEgCSkIQkJAEgCUlIQhKSkIQkACQhCUlIQhKSkIQkJCEJSUhCEveThCQkIQlJSAJAEpKQhCTuJwlJSOJ+kpCEJB5IEpKQhCQk8fxIQhKSeG6SuJ8knh9J/EeQxH8USUhCEpKQhCQkIQlJSOKBJCEJAElIAkASkgCQhCQAJCEJSUgCQBKSAJCEJCQhCUlIQhKSAJCEJCQBIAlJSEISkpAEgCQkIQlJSEISkpDE/SQhCUlIQhKSAJCEJCQBIAlJAEhCEgCSkASAJCQBIAkASQBIAkASAJIAkASAJAAkASAJSQBIAkASkgCQxP0kcT9JHBwc8Hu/93sAvPRLvzQnTpzguUkCQBIAkvjXkASAJAAkASAJAEkASAJAEs9NEveTxP0k8YL8yZ/8CQCv8zqv895cddVVV1111f9NBFddddVVV131f9DrvM7rvPc111zz4D/5kz/hwoULAEhCEg8kiQeSxHOTBIAk/q0kASAJAEkASOIFkcRze6u3eisA7rvvPu677z4kIQlJSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBKSkIQkJCEJAElIAkASkpCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhiftJQhKSkIQk7icJSUhCEgCSkIQkJPFAkpCEJP4tJCGJ/wiS+PeQxHOTxHOTxANJ4kUlCUlI4n6SkASAJCQBIAlJAEhCEgCSkIQkJAEgCUkASEISAJKQhCQkIQlJSEISkpCEJCQhCQBJSEISkpCEJCQhCUlIQhL3k4QkJCEJSQBIQhKSAJCEJAAkIQkASUgCQBKSkIQkACQBIAkASQBIAkASAJIAkMT9JAEgiftJAkASkgCQhCQAJPHUpz6VpzzlKRw/fpz3fu/3RhIAknhBJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJK4nyTuJ4n7SeL5OX/+PE960pO45pprHvxiL/Zir81VV1111VVX/d9DcNVVV1111VX/B73Yi73YawE85SlPAUASz00SDySJ+0kCQBIAkrifJAAkASAJAEkASAJAEgCSAJDECyIJAEk8N0kAvNZrvRYPetCDODw85Dd+4zeQBIAkACQhCUlIQhKSAJAEgCQAJCEJSUhCEpKQhCQAJAEgCUlIQhKSkIQkACQhCQBJSAJAEpKQhCQkIQkASUhCEgCSkIQkJAEgCUlIQhKSuJ8kJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiftJQhKSkIQk7icJSUjigSQhCUlI4oEkIQlJSEISkpCEJCQhiedHEveTxItCEv9ZJPFAknh+JPGCSEISknh+JCGJ+0lCEgCSkASAJCQBIAlJAEhCEpKQhCQkIQlJSEISkgCQhCQkASAJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkASAJSUgCQBKSAJCEJAAkIQkASQBIQhIAkgCQBIAkACQBIAkASQBIQhIAkgCQhCQAJHE/SdxPEvf767/+aw4ODjh+/Div/dqvzXOTBIAk/qtIAkAS/xJJSOK5/cmf/AkAr/M6r/NeXHXVVVddddX/PQRXXXXVVVdd9X/Qi73Yi702wFOe8hQk8dwk8UCSuJ8kACTx3CQBIAkASQBI4kUlCQBJAEjiuUnigR70oAfxWq/1WgD8yZ/8CZKQhCQAJAEgCQBJAEhCEpKQhCQkIQkASQBIAkASkpCEJCQhCQBJSAJAEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISkpCEJCQhCQBJSEISkpAEgCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpK4nyQkIQlJSOJ+kpCEJCTxQJKQhCQk8aKShCReFJIAkMR/Bkn8a0jifpJ4bpKQhCQeSBKSkIQkHkgSkrifJCQBIAlJAEhCEgCSkASAJCQBIAlJAEhCEpKQhCQkASAJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkrifJCQhCUkASEISkgCQhCQAJCEJAElIAkASAJKQhCQkASAJAEkASAJAEpKQhCQAJAEgiftJAkASkgCQxP0kAXBwcMAv//IvA/DSL/3SPOQhDwFAEi+IJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJPDdJAEjifpJ4bpJ4oCc96UkAvNiLvdhrc9VVV1111VX/9xBcddVVV1111f8xr/M6r/Pe11xzzYP/9E//lAsXLvDcJPFAkrifJJ6bJAAk8S+RBIAkACQBIAkASbwgknhukgB4q7d6KwD+/u//nvvuuw9JAEhCEpKQBIAkACQBIAkASQBIQhKSkIQkJCEJSQBIQhKSkIQkJCEJSUgCQBKSAJCEJAAkIQlJSEISkgCQhCQkASAJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJvDCSkIQkJCEJSUhCEpKQxP0kIQlJSEIS95OEJCQhCUk8P5KQhCQkIYkXRBIPJIn7SeL5kcT/RJKQxItKEpKQxP0kIQlJAEhCEgCSkASAJCQBIAlJAEhCEpKQhCQkASAJSUhCEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJAAkIQlJAEhCEgCSkASAJCQhCUkASAJAEpKQhCQkIQlJSEISAJIAkASAJAAkIQkASdxPEgCSkASAJCRxcHDAX//1X3P8+HHe+q3fmucmCQBJvCCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAk7icJAEncTxLPTRL3u3DhAk9+8pO55pprHvxiL/Zir81VV1111VVX/d9CcNVVV1111VX/x7zYi73YawE8+clP5rlJ4oEkcT9J3E8SAJJ4bpIAkASAJAAkASAJAEm8IJIAkMRzkwSAJADe8z3fk+PHj3PffffxD//wD0gCQBIAkgCQhCQkIQlJSEISkpCEJCQBIAkASQBIQhKSkASAJCQhCUkASEISkpCEJCQhCUlIQhKSAJCEJCQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQkIQlJSOJ+kpCEJCQhCUlI4vmRhCQkIQlJSEIS95OEJCQhCUk8N0lIQhKSkIQknh9JSEISknggSTyQJP4tJPEfQRLPTRLPTRL3k8TzIwlJSEISkpDEc5OEJCRxP0lIAkASkgCQhCQkIQlJSEISkpAEgCQkIQlJSEISAJKQhCQkASAJSUhCEpKQhCQk8YJIQhKSkIQkJCEJAElIQhKSAJCEJCQBIAlJAEhCEgCSAJCEJAAkASAJAEkASAJAEgCSAJAEgCQAJCEJAEkASEISAJK4nyTuJ4mnPOUp3HPPPRw/fpy3eZu3AUASz00SAJIAkMR/FEkASAJAEs9NEveTxHOTxP1+4Rd+AYB3eqd3+iyuuuqqq6666v8Wgquuuuqqq676P+Z1Xud13hvgT//0T3kgSTyQJO4niftJ4rlJAkASAJIAkMS/RBIAkgCQxHOTBIAkHuhBD3oQD37wgwH4h3/4BwAkIQlJSAJAEgCSAJAEgCQAJAEgCUlIQhKSkIQkJAEgCUlIQhIAkpCEJCQhCUlIAkASkgCQhCQkIQlJSAJAEpKQhCQkIQlJAEhCEpKQhCQkIQlJSEISkpDE/SQhCUlIQhKSkIQkJCEJSUhCEpJ4IElIQhKSkIQkHkgSkpCEJCQhiX8PSTyQJF4YSTw3Sfxnk8QDSeJFIQlJvCCSkIQkJPFAkpDE/SQhCQBJSEISAJKQBIAkJAEgCUlIAkASkpCEJCQhCUkASEISkpCEJCQhiftJQhKSkIQkJHE/SUhCEpKQhCQAJCEJSUgCQBKSkASAJCQBIAlJSEISAJKQhCQkASAJAEkASAJAEgCSAJAEgCQkASAJAEncTxIAkpAEgCQkAXB4eMgf/MEfAPDSL/3SvPRLvzQAkgCQxAsiCQBJAEgCQBIAkgCQBIAkACQBIIkXRBIAkrifJO4niecmCUlcuHABgDNnzjyYq6666qqrrvq/heCqq6666qqr/g95ndd5nfcG+NM//VMeSBIPJInnRxL3kwSAJAAk8YJIAkASAJIAkMQLIokXRBLHjx/nvd7rvQD4rd/6Le677z4kASAJAElIQhKSkIQkJCEJSUhCEpKQBIAkACQBIAlJSEISAJKQhCQkASAJSQBIQhKSkIQkJCEJSQBIQhKSkIQkJAEgCUlIQhKSkIQkJCEJAElIQhKSkIQkACQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJPJAkJCEJSUhCEs9NEpKQhCQkIQlJSEISkpCEJCQhiecmiQeSxP0kASCJB5LEfwZJ/GtI4n6SuJ8kJPGvJQlJSOJ+kpCEJAAkIQlJAEhCEgCSkIQkJCEJSQBIQhKSAJCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSdxPEpKQhCQkASAJSUhCEgCSkIQkJCEJSQBIAkASkgCQBIAkJCEJSQBIAkASAJIAkASAJCQBIAkASQBIQhIAkpAEgCTuJwmAg4MD/uAP/gCA13md1+H48eM8P5IAkMS/RBIAkgCQBIAkACQBIAkASQBI4rlJ4n6SuJ8knp8LFy7w5Cc/mWuuuebBr/M6r/PeXHXVVVddddX/HQRXXXXVVVdd9X/I67zO67wXwJ/8yZ9wP0m8MJJ4bpJ4QSQBIAkASQBI4gWRBIAknpskACTxQG/5lm8JwH333cfZs2eRhCQkASAJAEkASAJAEgCSAJAEgCQkIQlJSEISkpAEgCQkIQlJAEhCEpKQhCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQhCUkASEISkpAEgCQkIQlJSOJ+kpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSOKBJCEJSUhCEpKQxL+VJCTxQJL4jyCJ/w6SuJ8knh9JSEISkpCEJCQhCUk8kCQkIYn7SUISkgCQhCQAJCEJSQBIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSUgCQBKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpK4nyQkIQkASUgCQBKSkIQkJAEgCUkASAJAEgCSkIQkJCEJSQBIQhKSkASAJAAkASAJSQBI4n6SAJCEJAAkIYmnPOUpPOUpT+H48eO8z/u8DwCSAJDEc5MEgCQAJAEgiReVJAAkASAJAEkASOJ+krifJO4niefnF3/xFwF4ndd5nffiqquuuuqqq/7vILjqqquuuuqq/0Ne7MVe7LUBnvKUpwAgiecmiftJ4n6SAJDE/SQBIAkASQBI4gWRBIAkACTx3CQBIInnJonXeq3X4sEPfjCHh4f89m//NgCSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEgCSAJAEgCQkIQlJAEhCEpKQhCQkIQkASUgCQBKSAJCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJSdxPEpKQhCQkIQlJSEISkpDE8yMJSUhCEpKQhCQkIQlJSEISknh+JCGJ+0nifpL4n0ASz00SAJJ4UUhCEi8KSUhCEpK4nyQkIYn7SUISAJKQhCQAJCEJSQBIQhKSAJCEJCQBIAlJSEISkrifJCQhCUlIQhKSkIQkJCEJSUhCEpK4nyQkIQlJSEISkpCEJAAkIQkASUgCQBKSAJCEJCQhCQBJAEgCQBIAkpCEJAAkASAJAEkASEISAJIAkIQkACRxP0ncTxJ/8zd/w8HBAcePH+e1X/u1eSBJAEjiBZEEgCQAJAEgCQBJAEjiXyIJAEncTxL3k8T9JPHczp8/D8CLvdiLvfaLv/iLvzZXXXXVVVdd9X8DwVVXXXXVVVf9H/E6r/M67wXwp3/6pwBI4rlJ4n6SuJ8knpskACTxgkgCQBIAknhBJAEgiecmifs96EEP4rVe67UA+NM//VMkIQlJSAJAEgCSAJAEgCQAJAEgCQBJAEhCEpKQhCQkASAJSUhCEgCSkASAJCQhCUlIQhKSkIQkJCEJSUhCEgCSkIQkACQhCUkASEISkpCEJCQhCUlIAkASkpCEJCQhCUlIQhIvjCQk8YJIQhKSkIQkJCEJSUhCEv8WkpCEJJ6bJO4niecmCQBJPDdJ/EeTxPMjiedHEveTxP0kIYnnRxKSkIQkJCGJ5yYJSUjifpKQhCQAJCEJSQBIQhKSAJCEJCQBIAlJSEISkpCEJCQhCQBJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEgCSkIQkJAEgCUlIQhIAkpAEgCQkASAJSQBIAkASkpCEJAAkASAJAEkASAJAEgCSAJCEJAAkASCJ+0kCQBKSAJDE/Q4PD/mVX/kVAF7ndV6HBz/4wUjiBZEEgCT+JZIAkASAJAAkASAJAEk8N0k8P5K4nyQe6MKFC/zxH/8xAI997GNfi6uuuuqqq676v4Hgqquuuuqqq/6PeMd3fMfPBviTP/kTJPHcJHE/SdxPEveTBIAknpskACQBIAkASTw3SQBIAkASz00Sz00S7/Ve7wXAP/zDP3Du3DkAJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUkASEISAJKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUkASEISkpCEJCQhCUncTxKSkIQkJCEJSUhCEpKQhCQkIQlJPD+SkIQkJCEJSUhCEpKQhCQkIQlJSEISknhukpDEv0QSz48knh9JvDCSkIQkJPEfTRIvjCQkIYkXRBKSkIQkJHE/SUhCEpIAkIQkJAEgCUlIAkASkpAEgCQkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJAAkIQlJSEISkpAEgCQkASAJSUhCEgCSAJCEJAAkASAJAEkASAJAEgCSkASAJAAkASAJSQBI4n6SAJCEJAAODw/5m7/5GwDe5m3ehuPHj3M/SQBI4rlJAkASAJIAkMS/RBIAkgCQBIAk7icJAEm8IJKQxP3+5E/+BIDXfd3XfR+uuuqqq6666v8Ggquuuuqqq676P+DFXuzFXvuaa655MMBTn/pUnpsk7ieJ+0nifpJ4bpIAkASAJF4QSQBI4gWRxHOTxP3e8z3fE4CzZ8/yuMc9DklIAkASAJIAkASAJAAkASAJAEkASEISkpCEJCQBIAlJSEISAJKQhCQkASAJSQBIQhKSkIQkJCEJSQBIQhKSkIQkJAEgCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJSUjifpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSfxHkIQknpsk7ieJ+0niP5ok/q0k8a8liQeSxL+VJCQhiQeShCQkASAJSUgCQBKSkASAJCQhCUkASEISkpAEgCQkIQlJSEISkpCEJCTx/EhCEpKQhCQkIQlJAEhCEpKQBIAkJCEJAElIQhIAkpAEgCQAJCEJAEkASEISkpCEJCQhCUkASEISkpAEgCQAJAEgCUkASAJAEpIAkIQkACQB8NSnPpV77rmH48eP8zZv8zZI4rlJAkASL4gkACQBIAkASQBI4gWRBIAknpsk7ieJ5yYJgCc/+ck8+clP5syZMw96sRd7sdfmqquuuuqqq/73I7jqqquuuuqq/wNe53Ve570A/vRP/5TnJon7SeL5kcT9JAEgCQBJPDdJAEgCQBLPTRIAknhuknhur/3ar82DH/xgAP7sz/4MSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEgCSkIQkJAEgCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSUhCEpKQhCQkASAJSUhCEgCSkIQkJCGJ+0lCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCTx/EhCEg8kiftJ4rlJAkASz00SLwpJPD+S+LeSBIAknpsk7icJSTw3SUhCEpKQhCQkIQlJSEISDyQJSUhCEveThCQkASAJSUgCQBKSkIQkACQhCUlIAkASkpCEJCQhCUlI4oEkIQlJSEISDyQJSUhCEpKQBIAkJCEJSQBIQhKSAJCEJCQhCUlIQhKSAJCEJCQhCQBJAEgCQBIAkpCEJAAkASAJAEkASEISAJIAkMT9JHE/SQBI4vDwkD/8wz/k4OCABz/4wbz2a78295PEc5MEgCQAJPEvkQSAJAAkASCJ5yYJAEncTxL3k8RzkwTAk5/8ZABe7MVe7LW46qqrrrrqqv/9CK666qqrrrrq/4AXe7EXe22AX/7lX+aBJPGCSAJAEveTBIAknpskACTxgkgCQBLPTRLPTRIAD37wg3mt13otAH7nd36Ho6MjACQBIAkASQBIAkASAJIAkASAJAAkIQlJSEISkgCQhCQkIQkASUhCEpKQhCQkASAJSQBIQhIAkpAEgCQkIQlJSEISAJKQhCQAJCEJSQBIQhKSkASAJCQhCUlIAkASkpCEJCQhCUlIQhL/nSQhCUk8N0k8kCSemySeH0n8R5LE8yOJ50cSz48kXhSSkMS/hiQkIQlJSOJ+kpCEJO4nCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQkIQlJ3E8SkpCEJCQhCUlIQhKSkMT9JCEJSUhCEgCSkIQkJAEgCUlIAkASkgCQhCQAJCEJAEkASEISkpAEgCQAJAEgCQBJAEgCQBIAkpAEgCQAJAEgCUkASOJ+krjf4eEhf/AHfwDAy7zMy/CQhzyE5yaJF0QSAJIAkASAJF4QSQBIAkAS95MEgCTuJ4n7SeK5SeKP//iPAXid13md9+aqq6666qqr/vcjuOqqq6666qr/5V7ndV7nva+55poHP+UpT+HChQvcTxIPJIn7SeK5SeK5SQJAEs9NEgCSAJDEc5MEgCTuJwkASdzvrd7qrQB43OMex9mzZ5GEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQBIAkJCEJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUkASEISkpCEJAAkIQlJSEISkpCEJO4nCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMRzk4QkHkgSz48k/i0k8fxI4r+SJO4niftJQhLPTRKSkIQkJCEJSUhCEpJ4bpKQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkASAJSUhCEgCSkIQkACQhCQBJSAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkACQBIAlJAEgCQBIAkpAEgCQAJCEJAElIAuC+++7jb/7mbzh+/Dhv8zZvgyQAJPHcJAEgiRdEEgCSAJAEgCSemyQAJPHcJHE/SdxPEs/t4sWLPPnJT+aaa6558Iu92Iu9NlddddVVV131vxvBVVddddVVV/0v92Iv9mKvBfCnf/qn3E8SDySJ+0nifpJ4bpIAkMRzkwSAJAAk8dwkASCJ5yaJ5/Ze7/VeHD9+nLNnz/L4xz8eSQBIAkASAJIAkASAJAAkASAJAElIQhKSkIQkACQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQBIAlJSAJAEpKQhCQkIQlJSEISAJKQhCQkIQlJPJAkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSeFFIQhKSeCBJSOJ+krifJJ6bJP4rSOJfIonnJgkASTw3SdxPEs9NEpJ4UUlCEpKQhCQeSBKSkMT9JCEJSUgCQBKSkIQkJAEgCUlIQhKSuJ8kJCEJSUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJSEISAJKQhCQkASAJSUhCEpKQBIAkJAEgCQBJSAJAEgCSAJCEJCQhCUlIQhKSkIQkJAEgCQBJAEhCEgCSAJCEJAAkcT9JADztaU/j3nvv5fjx47zN27wN95MEgCSemyQAJAEgiRdEEgCSAJDEc5MEgCTuJ4n7SeJ+knhuT37ykwF4ndd5nffiqquuuuqqq/53I7jqqquuuuqq/+Ve7MVe7LUBnvKUpwAgiQeSxP0kcT9J3E8SAJJ4bpIAkMQLIgkASTw3STw3SQC81mu9Fg9+8IMB+PM//3MAJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQBIAlJSEISkpAEgCQkIQlJAEhCEpKQhCQkIQkASUgCQBKSAJCEJAAkIQlJSEISkgCQhCQkIQlJSEISkpCEJCQBIAlJSEISAJKQhCQkIQlJAEhCEpKQhCQkIQlJSEISkvj3kIQkJCEJSUhCEpJ4bpKQxANJ4n6SeG6SeCBJPDdJ/Esk8e8hiedHEs+PJJ6bJB5IEpJ4fiQhCUlIQhKSkIQknpskJCEJSUgCQBKSkIQk7icJSUhCEveThCQkIQlJAEhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMT9JCEJSUgCQBKSkIQkACQhCQBJSEISkpCEJCQhCQBJSEISkgCQBIAkACQBIAkASQBIAkASAJIAkIQkACQBIIn7SQJAEpIAkMTh4SF/+Id/CMBLv/RL87qv+7o8N0kASOK5SQJAEgCSAJDEc5MEgCQAJPHcJHE/SdxPEveTxAP9yZ/8CQAv9mIv9tpcddVVV1111f9uBFddddVVV131v9jrvM7rvPc111zz4D/90z/l4sWLSOKBJHE/SdxPEveTxHOTBIAknpskACTxgkjiuUnigR784Afz2q/92gD87u/+LsvlEkkASAJAEgCSAJAEgCQAJAEgCUlIQhKSkASAJCQhCUlIQhIAkpCEJCQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSkIQkACQhCUkASEISkgCQhCQkIQkASUhCEpKQxP0kIQlJSEISkpDE8yMJSUhCEpKQhCQkIQlJSEISkpCEJCQhiRdEEpJ4bpJ4IEk8N0m8MJJ4fiTx7yWJ/yiSeH4k8dwkIQlJ/EskIQlJSEISknggSUhCEpIAkIQkJCEJSQBIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJSAJAEpKQhCQkIQlJAEhCEgCSkASAJCQBIAkASUhCEpIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkIQkASdxPEvc7PDzkD//wDwF46Zd+aR784AcDIInnJgkASbwgkgCQBIAknpskACQBIIn7SeL5kcT9JHG/Cxcu8OQnP5lrrrnmwS/2Yi/22lx11VVXXXXV/14EV1111VVXXfW/2Iu92Iu9FsBTn/pUnpsk7ieJ+0nifpK4nyQAJPHcJAEgiecmCQBJPDdJPDdJALzVW70VAI973OM4d+4cAJKQhCQkIQlJSEISkpCEJCQhCUlIAkASAJKQhCQkASAJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSAJCEJCQhCUlIAkASkpCEJCQhCUlIAkASkpCEJCQBIAlJSEISkpDEA0lCEpKQhCQkIQlJSEISkpCEJF4UkpCEJCQhiQeShCQeSBLPjyT+o0niP5okXhBJPDdJ3E8SDyQJSTw/kpCEJCQhCUlI4vmRhCQkIQlJ3E8SkpCEJO4nCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkJCEJSUhCEpKQBIAkJCEJSQBIQhKSAJCEJCQBIAlJAEhCEgCSkIQkJAEgCQBJSEISkpCEJAAkASAJAElIQhKSAJAEgCQAJCEJAEkASEISAJKQBMDTnvY0/vZv/5bjx4/ztm/7tjw3SbwgkgCQxHOTBIAkACTx3CQBIIn7SQJAEi+IJO73J3/yJwC80zu902dx1VVXXXXVVf97EVx11VVXXXXV/2Kv8zqv894AT3nKU3ggSfxLJHE/SQBI4n6SAJDEc5MEgCSemyQAJHE/STzQe73Xe3H8+HHOnj3LE57wBAAkASAJAEkASAJAEgCSAJCEJCQhCUlIQhKSAJCEJCQhCQBJSEISkgCQhCQkIQlJSEISAJKQBIAkJAEgCUkASEISkpCEJCQhCUlIAkASkpCEJCQhCUkASEISkpCEJCQhCUlIAkASkpCEJCRxP0lIQhKSkIQkJCEJSUjiBZGEJCQhCUlIQhKSkMTzIwlJPJAkJHE/SdxPEveTBIAkACQBIInnJon/KpJ4YSTxQJJ4bpJ4IEk8N0lIQhIvjCQkIQlJSEISknggSUhCEpKQBIAkJCEJSUhCEveThCQkIQlJSEISknhBJPHcJCEJSUhCEpKQhCQAJCEJSUgCQBKSkASAJCQhCUlIQhIAkpCEJCQBIAlJAEgCQBIAkgCQhCQkIQlJSEISAJIAkASAJAAkIQkASQBIQhIAkrifJACe+tSncu+993L8+HHe5m3eBgBJPDdJAEjiuUkCQBIviCQAJPHcJPHcJHE/STyQJCTx5Cc/GYAzZ848mKuuuuqqq67634vgqquuuuqqq/6Xep3XeZ33BvjTP/1TLly4wP0k8UCSuJ8knpsknpskACRxP0kASOK5SQJAEs9NEveTxGu91mvx4Ac/GIC/+Iu/QBKSkIQkJCEJSUhCEpKQhCQkIQlJAEgCQBKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSQBIQhKSkIQkJCEJSUgCQBKSkASAJCQhCUkASEISkpAEgCQkIQlJSAJAEpKQhCQkIQlJSOK5SUISkpCEJCQhCUlI4gWRhCQkIYkHkoQkHkgS95PE/STxopDE8yOJ5yaJfwtJvKgk8cJI4vmRxANJQhLPjyQkIQlJSEISknh+JCEJSUhCEpK4nyQkIQlJSOJ+kpCEJCQhCUlIQhL3k4QkJCEJSUhCEpKQhCQkcT9JSEISkpCEJCQBIAlJSEISAJKQhCQAJCEJAElIQhKSkASAJCQBIAlJSEISkpAEgCQAJAEgCQBJAEgCQBIAkgCQhCQAJAEgCUkASAJAEpIAkMTR0RF/+Id/CMDLvMzL8Dqv8zoASAJAEs9NEgCSeG6SAJAEgCSemyQAJHE/SQBI4n6SuJ8kntvFixd58pOfzDXXXPPg13md13lvrrrqqquuuup/J4Krrrrqqquu+l/qdV7ndd4L4KlPfSr3k8QDSeJ+krifJJ6bJAAk8dwk8dwkASCJ5yaJ5yaJBz/4wbz2a782AL/3e7/HcrkEQBIAkgCQBIAkACQBIAlJSEISkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEpKQhCQkIQlJSEISkpCEJCQBIAlJSEISAJKQhCQkcT9JSEISkpCEJB5IEpKQhCQkIQlJvCCSkIQkJCEJSTw3SUjigSTxQJK4nyReEEn8XyGJ+0nifpKQxHOThCQk8cJIQhKSkIQkJCEJSTyQJCQhCUlI4n6SkIQkJCEJSUhCEveThCQkIQlJSEISkpCEJCQhCUlIQhL3k4QkJCEJSUgCQBKSkIQkACQhCUkASEISAJKQBIAkJAEgCUlIQhIAkgCQhCQkIQkASQBIAkASAJIAkIQkJCEJAEkASOJ+kgCQhCQAJHG/o6Mj/vAP/xCAl3mZl+HBD34wDyQJAEk8N0kASOK5SQJAEgCSuJ8kACTx3CRxP0ncTxLP7Zd+6ZcAeJ3XeZ334qqrrrrqqqv+dyK46qqrrrrqqv+lXuzFXuy1Af70T/8UAEk8kCTuJ4n7SeJ+kgCQxHOTBIAk7icJAEk8N0k8N0k80Fu91VsB8PjHP55z584hCUlIQhKSkIQkJCEJSUhCEpIAkASAJCQhCUlIQhIAkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkIQkACQhCQBJSAJAEpKQhCQkIQlJSEISAJKQBIAkJCEJAElIQhIAkpCEJCQBIAlJSEISAJKQhCQkIQlJ3E8SkpCEJCQhCUk8kCQkIQlJSEISknh+JCEJSTyQJCRxP0k8kCSemyQAJPFAknhukvjPJIkXRhLPTRIAkgCQxHOTxP0k8UCSkIQknh9JSEISkpCEJCQhiedHEpKQhCQkIYn7SUISkpCEJCQhCUncTxKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISAJKQhCQkIQlJSEISkpCEJAAkIQkASUgCQBIAkpAEgCQAJAEgCUlIQhKSkIQkJCEJSUgCQBIAkgCQBIAkJAEgiftJAkASkgB4+tOfzt/+7d9y/Phx3vZt35bjx48jiecmCQBJPDdJAEjiuUkCQBLPTRIAkrifJO4niftJ4oEuXLgAwIu92Iu99ou/+Iu/NlddddVVV131vw/BVVddddVVV/0v9Dqv8zrvBfCnf/qnAEjigSRxP0ncTxL3k8RzkwSAJJ6bJJ6bJJ6bJJ6bJN7rvd6L48ePc+7cOZ74xCciCUlIAkASAJIAkASAJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEgCSkIQkJAEgCUkASEISkpCEJCQhCUlIQhKSAJCEJAAkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUncTxKSkIQkJCGJB5KEJCQhCUlI4rlJQhKSkMRzk4QkHkgS95PE8yOJF4Uknh9JPDdJ/EeTxPMjiRdGEs9NEg8kiecmCUlIQhL/EklIQhKSkIQkJCEJSdxPEpKQhCQkIQlJPJAkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhIAkpCEJCQhCUkASEISkgCQhCQkASAJSUhCEpKQhCQkIQlJSAJAEpKQhCQAJAEgCQBJAEgCQBIAkgCQBIAkACQhCUlIAkASAJKQBIAk7icJgKc97Wnce++9HD9+nLd927flgSTx3CQBIInnJgkASTw3SQBI4rlJ4n6SuJ8k7ieJ+124cIEnP/nJADz2sY99La666qqrrrrqfx+Cq6666qqrrvpf6B3f8R0/G+DP/uzPkMQDSeJ+knh+JHE/SQBI4rlJ4rlJAkAS95MEgCTuJ4n7vdZrvRYPfvCDAfjLv/xLACQBIAlJSEISkpCEJCQhCQBJAEhCEpKQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpIAkIQkJAEgCUlIAkASkpAEgCQkIQlJAEhCEpKQxP0kIQlJSEISDyQJSUhCEpJ4bpKQhCQkIYkHkoQkJPFAknggSdxPEveTxHOTBIAk/q+RxPMjiQeShCSeH0lIQhKSkIQkJCEJSUjiBZGEJCQhCUlIQhL3k4QkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQk7icJSUhCEpIAkIQkJAEgCUlIAkASkgCQhCQAJCEJAElIAkASAJKQhCQkIQlJAEgCQBIAkgCQBIAkACQhCQBJAEgCQBKSAJAEgCQkASCJo6Mj/uiP/ojDw0Me/OAH8zqv8zpI4rlJ4rlJAkASz00SAJJ4bpIAkMT9JHE/SdxPEveTxP1+6Zd+CYDXfd3XfR+uuuqqq6666n8fgquuuuqqq676X+bFXuzFXvuaa655MMBTn/pUHkgSL4gkACRxP0k8N0kASOJ+kgCQxHOTxHOTxP0e8pCH8Nqv/doA/P7v/z7L5RJJSEISkpAEgCQkIQlJSEISkpCEJCQBIAlJSEISkpAEgCQkIQlJAEhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkACQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEpIAkIQkJCEJAElIQhKSAJCEJCQhCUncTxKSkIQkJPFAkpCEJCQhiecmCUlI4oEkIYn7SUIS95PE/SRxP0kASOL5kcRzk8QLI4n/CJJ4YSTx3CQBIAkASQBI4n6SuJ8kHkgSDyQJSUhCEi8qSUhCEpKQhCQkIQlJSOKBJCEJSUhCEpKQhCQkIQlJSOJfIglJSEISkpCEJCQhCUkASEISkpCEJAAkIQlJAEhCEpKQhCQkASAJSQBIQhIAkpCEJCQBIAkASQBIQhKSkIQkJCEJSUhCEpKQhCQAJAEgCQBJSAJAEgCSkASAJO53dHTEH/3RHwHwMi/zMjz4wQ9GEgCSuJ8kACTx3CQBIInnJgkASdxPEgCSuJ8k/iWSALhw4QIAZ86cedCLvdiLvTZXXXXVVVdd9b8LwVVXXXXVVVf9L/M6r/M67wXwZ3/2ZzyQJB5IEveTxHOTxP0kASCJ5yaJ5yaJ5yaJ53bixAne673eC4AnPOEJnD9/HgBJAEgCQBKSkASAJAAkASAJSUhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJSEISkpAEgCQkASAJSUhCEpIAkIQkACQhCQBJSEISkpCEJAAkIQlJSEISkpCEJCQhCUkASEISkrifJCQhCUncTxKSkIQkJHE/SUhCEpKQxANJQhKSkMQDSUISDySJB5LE/SRxP0n8a0ji+ZHEfyVJPD+SeFFI4n6SuJ8kJPFAknh+JCEJSUhCEpKQhCQkIQlJSEISkpDEc5OEJCQhCUlIQhKSkIQkJPHcJCEJSUhCEpKQhCTuJwlJSEISkpCEJCQhCQBJSEISkpCEJCQhCUlIQhKSAJCEJCQhCUlIAkASkpCEJAAkIQlJSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkpAEgCQAJCEJAEkASEISAPfddx9/+7d/y/Hjx3nbt31bjh8/zv0k8dwkASCJ5yYJAEk8N0k8N0k8N0ncTxIPJIkLFy7wJ3/yJwC82Iu92Gtx1VVXXXXVVf+7EFx11VVXXXXV/zIv9mIv9toAf/qnf8r9JPFAkrifJO4nCQBJ3E8Sz00SAJK4nyQAJHE/STw3Sdzvrd7qrQA4d+4cT3ziE5GEJCQhCUlIQhKSkIQkJCEJSUhCEgCSkIQkJCEJSQBIQhKSkASAJCQhCUkASEISkpCEJCQhCQBJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkACQhCQBJSEISAJKQhCQAJCEJSQBIQhKSAJCEJCQhiftJQhKSkMQDSUISkpDEA0lCEpKQxANJQhIPJAlJ3E8SkrifJO4niecmCQBJAEji/wJJvCCSuJ8kHkgSknggSUhCEv8ekpCEJCQhCUlIQhKSkIQknpskJCEJSUhCEpKQhCQkIQlJSEIS95OEJCQhCUlIQhKSAJCEJCQhCQBJSEISAJKQhCQAJCEJAElIQhKSkASAJCQBIAkASUhCEpIAkASAJAAkASAJAEkASAJAEpKQhCQAJAEgiftJAkASkgCQBMDTn/507r33Xo4fP877vu/7IonnJonnJgkASTw3SQBI4rlJ4n6SAJDE/SRxP0k8kCT+5E/+BIDXeZ3XeW+uuuqqq6666n8Xgquuuuqqq676X+R1Xud13vuaa655MMBTn/pUACTxQJK4nyTuJ4nnJon7SQJAEs9NEs9NEveTxHN767d+ax784AdzdHTEH/zBHyAJAEkASAJAEgCSAJCEJCQhCUlIQhKSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIAkASkgCQhCQkIQlJSEISkpAEgCQkIQkASUhCEgCSkIQkACQhCUlIAkASkpCEJO4nCUlIQhIPJAlJSEISDyQJSUjifpKQhCTuJ4kHksT9JPHcJPHCSOK5SeKFkcR/JEm8MJJ4bpJ4IEkASOK5SeKBJPFAkpDEc5OEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJPDdJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpK4nyQkIQlJSEISkgCQhCQkIQkASUhCEgCSkIQkACQhCQBJSAJAEpIAkIQkJCEJAEkASEISkpCEJCQhCUkASAJAEpKQhCQAJAEgCQBJAEhCEgCSuJ8kACRxdHTEH//xH3N4eMjx48d5m7d5G+4niecmiecmCQBJPDdJAEjifpJ4bpK4nyTuJ4kHeupTn8qTn/xkrrnmmge/2Iu92Gtz1VVXXXXVVf97EFx11VVXXXXV/yIv9mIv9loAf/ZnfwaAJB5IEveTxP0kcT9JPDdJPDdJPDdJPDdJ3E8SAA9+8IN56Zd+aQD+6q/+CklIQhKSkIQkJCEJSUhCEpIAkASAJCQhCUlIQhIAkpCEJCQBIAlJSEISAJKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkASAJCQBIAlJAEhCEpKQhCQkIQlJAEhCEgCSkIQkJCEJSQBIQhKSAJCEJCQBIAlJSOJ+kpCEJCQBIAlJSEIS95OEJCQhiQeShCQk8UCSkMQDSeJ+kpDE/SRxP0kASOJfQxLPjyT+rSQhiX8LSTw/knhRSOL5kcT9JCGJB5KEJCTxn0ESkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrifJCQhCUlIQhIAkpCEJCQBIAlJSAJAEpKQhCQkIQkASUgCQBKSkIQkACQhCUlIAkASAJIAkASAJCQhCUlIAkASAJIAkASAJCQhCUkASAJAEpIAkMT9jo6O+PVf/3UAXuZlXobXfd3X5X6SAJDE/SQBIInnJgkASdxPEgCSuJ8kACRxP0ncTxL3k8QDPeUpTwHgdV7ndd6Lq6666qqrrvrfg+Cqq6666qqr/hd5sRd7sdcG+JVf+RUk8UCSeH4kcT9J3E8SAJK4nyQAJHE/SQBI4n6SeG6SADh+/Djv/d7vDcAf/MEfcP78eSQBIAkASQBIAkASkpCEJCQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpIAkIQkACQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISAJKQhCQAJCEJSQBIQhKSkMT9JCEJSdxPEpKQhCTuJwlJSOKBJCGJB5KEJO4niQeSxP0k8dwkASAJAEkASAJAEv8ZJCGJ+0niXyKJfytJAEjiuUnifpK4nyQeSBKSeG6SkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhIAkpCEJCQhCUkASEISkpAEgCQkIQlJSEISAJKQhCQkIQlJSEISAJKQBIAkACQhCUlIAkASAJIAkASAJAAkASAJAEkASEISAJIAkASAJCQBIAkASUgC4OjoiD/+4z8G4GVe5mV4yEMewnOTxHOTBIAknpsknpsknpsk7ieJ+0nifpK435/+6Z8C8GIv9mKvzVVXXXXVVVf970Fw1VVXXXXVVf9LvM7rvM57X3PNNQ9+ylOewsWLF3kgSTyQJJ6bJO4niecmiecmiecmiftJ4rm99Vu/NQDnzp3jwoULSEISkpCEJCQhCUlIQhIAkgCQhCQkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUgCQBKSAJCEJAAkIQkASUgCQBKSkIQkJCEJAElIAkASkpAEgCQkIQkASUhCEveThCQkcT9JSEISDyQJSUjifpKQhCTuJwlJPJAk7icJSdxPEs9NEv9WknhhJPHCSOL5kcS/hySemySeH0kASOJ+krifJB5IEg8kCUlI4gWRhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQk/j0kIQlJSEISkpCEJCQhCQBJSEISkpCEJAAkIQlJSEISkpAEgCQkIQkASUgCQBKSAJCEJAAkIQlJSAJAEgCSkIQkJCEJSUhCEgCSAJAEgCQkIQlJAEgCQBIAkpAEgCQAJCEJAEkAPP3pT+fv/u7vOH78OG/7tm/L/STx3CTx3CQBIIn7SQJAEs9NEveTxP0kcT9J3E8SABcuXOApT3kK11xzzYNf7MVe7LW56qqrrrrqqv8dCK666qqrrrrqf4kXe7EXey2AP//zP+eBJPFAkrifJJ6bJO4nCQBJ3E8Sz00Sz00S95MEwHu/93vz4Ac/mHPnzvFHf/RHAEgCQBIAkgCQhCQkIQlJSEISkgCQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQBIAlJAEhCEpKQhCQkIQlJSEISkpCEJCQhCUlIAkASkgCQhCQAJCEJSQBIQhKSAJCEJCQBIAlJSEISAJKQhCTuJwlJSOKBJCEJSdxPEpK4nyQkcT9JSOJ+krifJAAk8dwkASAJAEk8N0k8P5L415DECyOJfw1JPD+S+NeQxP0kcT9JSOJ+kpDEc5OEJCQhCUn8R5GEJCQhCUlIQhKSkIQkJCEJSUhCEg8kCUlIQhKSkIQkJHE/SUhCEpKQBIAkJCEJAElIQhIAkpCEJCQhCUkASEISAJKQhCQkASAJSUhCEgCSAJAEgCQAJCEJSUhCEpKQBIAkACQBIAkASUgCQBIAkpAEgCQAJCGJpz/96dx3330cP36ct33bt+W5SeJ+kgCQxHOTxHOTBIAk7ieJ+0ni+ZHE/SQB8Cd/8icAvNM7vdNncdVVV1111VX/OxBcddVVV1111f8Sr/M6r/PeAE996lO5nyQeSBL3k8T9JPHcJPHcJHE/SQBI4n6SeG6SAHjt135tHvzgBwPwN3/zN0hCEpKQhCQkIQlJSAJAEgCSkIQkJCEJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJSEISkgCQhCQkIQlJSEISAJKQhCQkIQlJSEISkpAEgCQkASAJSQBIQhIAkpAEgCQkASAJSUhCEpKQBIAkJCEJAElIQhIAkpCEJO4nCUlIAkASkpDE/SQhCUk8kCQkcT9JSOJ+knggSdxPEs9NEgCSeGEk8a8liRdEEi8KSbwgkvi3kgSAJAAk8dwkcT9JPJAkHkgSkpDEc5OEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSdxPEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISAJKQhCQAJCEJAElIQhKSkIQkJCEJAElIAkASAJKQhCQkASAJAEkASAJAEgCSAJAEgCQAJCEJSUgCQBIAkpAEgCQAJCEJgKOjI/74j/8YgJd5mZfhdV7ndQCQxP0k8dwkASCJ+0kCQBLPTRL3k8Rzk8QLIomnPOUpAJw5c+bBXHXVVVddddX/DgRXXXXVVVdd9b/A67zO67w3wJ/92Z9x4cIFnh9J3E8S95PE/SQBIIn7SeK5SeK5SeJ+knigBz/4wbz2a782AH/4h3/IcrkEQBIAkpCEJCQhCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpIAkIQkJCEJSUhCEgCSkIQkJCEJSUgCQBKSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUgCQBKSkASAJCQhCQBJSEISAJKQhCTuJwlJ3E8SkpDE/SQhCUncTxKSuJ8k7icJSdxPEs9NEv8WkrifJP4nk8Rzk8QLI4nnJokHksQDSeK5SUISkviXSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiftJQhKSkIQkJCEJAElIQhKSAJCEJCQhCQBJSEISAJKQBIAkJAEgCUkASEISAJKQhCQkASAJAElIQhKSkIQkACQBIAkASQBIQhKSkASAJAAkASAJSQBIAkAS95MEwNHREb/5m78JwMu+7MvykIc8BABJPDdJPDdJPDdJAEjifpK4nyQAJHE/SdxPEg908eJFnvKUp3DNNdc8+HVe53Xem6uuuuqqq676n4/gqquuuuqqq/4XeJ3XeZ33AnjqU5/K/SRxP0ncTxL3k8T9JPHcJHE/SQBI4n6SeG6SuJ8kjh8/znu/93sD8KQnPYkLFy4gCUlIQhKSAJAEgCQkIQlJSEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQAJCEJSUhCEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISkpCEJCQBIAlJAEhCEgCSkASAJCQBIAlJAEhCEgCSkIQkACQhCUkASEIS95OEJCQBIAlJSAJAEpKQxP0kIYkHkoQk7ieJ+0lCEveTxP0kASCJ+0kCQBIAkgCQBIAkXlSSeFFJ4l9DEi8qSTw/kvjXkMTzI4n7SUIS95OEJCTxQJKQhCQkIQlJSEIS/5EkIQlJSEISkpCEJCQhCUlIQhKSuJ8kJCEJSUhCEgCSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEpKQBIAkJCEJSUhCEpIAkIQkJCEJAEkASAJAEpKQhCQkIQlJSEISAJIAkASAJAAkIQkASQBIAkASkgCQhCTuu+8+/v7v/57jx4/ztm/7thw/fpwHksT9JAEgiftJAkASz00S95PEc5PE/SRxP0k80J/+6Z8C8Dqv8zrvxVVXXXXVVVf9z0dw1VVXXXXVVf8LvNiLvdhrA/zZn/0ZAJK4nySeH0ncTxL3k8Rzk8Rzk8T9JPHcJAHw1m/91gCcP3+eJz3pSUhCEpKQhCQkIQlJSEISAJIAkIQkJCEJSUhCEpKQhCQkASAJSUhCEgCSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJCQhCUkASEISkpCEJCQhCUlIQhKSkIQkACQhCQBJSEISkpCEJAAkIYn7SUISAJKQhCTuJwlJ3E8SkrifJCRxP0lI4oEkcT9JSOJ+krifJJ6bJP41JPGvJYn/CpL4t5IEgCQAJPHcJHE/SdxPEg8kiQeShCQk8fxIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCTx/EhCEpKQhCQkIQlJSEISkgCQhCQkIQlJSAJAEpKQhCQAJCEJSQBIQhKSAJCEJAAkIQlJSEISAJKQBIAkJCEJSQBIQhKSkASAJAAkASAJAEkASAJAEgCSAJAEgCQkASAJAEkASEISAJK4nyT+/u//nqc//ekcP36c93u/9wNAEveTxHOTxHOTBIAk7ieJ5yaJ+0nifpK4nyTu95SnPAWAF3uxF3vtF3/xF39trrrqqquuuup/NoKrrrrqqquu+h/udV7ndd4L4M/+7M8AkMQLIonnJon7SeJ+kgCQxP0k8dwkcT9JPNB7v/d78+AHP5ijoyP++I//GElIAkASAJIAkIQkJCEJSUhCEpIAkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQAJCEJSUhCEpKQBIAkJCEJSUhCEpIAkIQkJCEJAElIAkASkpCEJCQhCUkASEISAJKQBIAkJCEJSUhCEpKQBIAkJAEgCUkASEISkgCQhCQkASAJSdxPEpK4nyQkIQkASUhCEgCSkMT9JCGJ+0nifpK4nyQAJPHcJAEgCQBJAEjiuUnifpK4nyReVJL4t5DEv4UknpskXhhJAEjifpK4nyTuJwlJ3E8SknhukpCEJCTxwkhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMRzk4QkJCEJSUhCEpK4nyQkIQlJSAJAEpKQhCQAJCEJSQBIQhKSAJCEJAAkIQkASUgCQBKSAJAEgCQkASAJAElIQhKSkIQkACQBIAkASQBIQhKSkIQkJAEgCQBJAEhCEgCSAJCEJAAk8fd///ccHh5y/Phx3vZt3xYASTw3STw3STw3SdxPEgCSuJ8k7ieJ+0nifpIAuHDhAk95ylMAeOxjH/taXHXVVVddddX/bARXXXXVVVdd9T/cO77jO342wFOf+lQk8UCSuJ8k7ieJ5yaJ+0niuUnifpJ4bpK4nyRe+7Vfmwc/+MEA/O3f/i2SkIQkJCEJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJAAkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQhCUkASEISkpCEJCQhCUlIQhKSkASAJCQBIAlJSEISkpCEJAAkIQkASUgCQBKSAJCEJAAkIQkASUhCEgCSkMT9JCEJAElIQhIAkpCEJO4nCUncTxL3k4Qk7ieJ+0nifpJ4bpIAkMSLQhL/WpL47ySJ50cSL4gkXhBJ3E8S95PEA0nigSQhCUk8N0lIQhKSkIQkJPGCSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEveThCQkIQlJSEISkgCQhCQkIQlJAEhCEpKQBIAkJCEJAElIQhKSkIQkJCEJSQBIQhKSkIQkJCEJAElIQhKSAJAEgCQAJCEJSUhCEpKQhCQkASAJAEkASAJAEpKQhCQAJAEgCUkASALg6OiI3/qt3wLgZV7mZXid13kdHkgS95MEgCTuJwkASdxPEs9NEveTxP0kcT9J3E8SAL/8y78MwOu+7uu+D1ddddVVV131PxvBVVddddVVV/0P9mIv9mKvfc011zwY4M///M95IEncTxL3k8T9JPHcJHE/STw3SdxPEs/Pgx/8YF77tV8bgD/+4z/mwoULAEgCQBIAkpCEJCQhCUkASEISkpCEJCQBIAlJSEISAJKQhCQkIQlJSEISkgCQhCQkIQlJSEISkpCEJCQhCQBJSEISkpCEJCQBIAlJSEISAJKQhCQkIQlJSAJAEpIAkIQkJCEJAElIAkASkgCQhCQAJCEJAElIQhIAkpAEgCQkIQkASUjifpKQxP0kIYn7SeJ+kpDE/SRxP0ncTxL3kwSAJJ6bJAAkASCJF4Uk/i0k8e8hiedHEv9akgCQxANJAkASz00S95PE/SQhiftJQhIPJAlJSEISz00SkpCEJCQhCUlIQhL/EklIQhKSkIQkJCEJSUhCEpK4nyQkIQlJSEISkgCQhCQkIQlJAEhCEpKQhCQkIQlJSEISkgCQhCQAJCEJSUhCEgCSkASAJCQhCUkASEISkpAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkJAEgCQBJAEhCEgCSAJCEJA4PD/nTP/1TAF72ZV+WhzzkIUjifpJ4bpJ4bpJ4bpK4nyTuJ4nnRxL3k8SFCxcAOHPmzINe7MVe7LW56qqrrrrqqv+5CK666qqrrrrqf7DXeZ3XeS+AP/uzP+OBJHE/SdxPEveTxP0k8dwkcT9JPDdJ3E8S9ztx4gTv/d7vDcCTn/xkLly4gCQkIQlJSEISkgCQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISkpCEJCQhCUkASEISkpCEJCQhCUlIQhKSkASAJCQhCUkASEISkpCEJCQhCQBJSEISkpCEJCQBIAlJSEISkpCEJAAkIQkASUgCQBKSkASAJCQBIAlJ3E8SkgCQhCTuJwlJ3E8SkgCQhCTuJ4n7SeJ+krifJJ6bJAAk8cJI4rlJ4vmRxP90kvi3kgSAJO4niftJ4oEk8UCSkMQDSUISkpCEJJ4fSUhCEpKQhCQkIQlJSEISknh+JCEJSUhCEpKQhCQkcT9JSEISkpCEJAAkIQlJSEISkpCEJCQBIAlJSAJAEpKQBIAkJAEgCUkASEISAJKQhCQkASAJSUhCEgCSkIQkJCEJSQBIAkASAJIAkIQkJCEJSUgCQBIAkgCQhCQAJAEgCUkASOLpT386f//3f8/x48d527d9W44fP44knpsk7icJAEncTxIAkrifJF4YSbwgFy9e5E//9E8BeJ3XeZ334qqrrrrqqqv+5yK46qqrrrrqqv/BXuzFXuy1Af78z/+c+0nifpK4nyTuJ4n7SeJ+knhukrifJJ6bJO4nibd+67cG4Pz58zz5yU9GEgCSkIQkJCEJSUhCEgCSkIQkJCEJSQBIQhKSkASAJCQhCUlIQhKSkIQkACQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCQBJSEISkgCQhCQAJCEJSUhCEpKQhCQkIQlJAEhCEgCSkASAJCRxP0lIAkASkrifJCRxP0ncTxKSAJCEJAAkcT9J3E8SAJJ4QSTxgkjiX0sSz48k/iNI4kUhiedHEs9NEgCSAJAEgCSemyTuJ4n7SUIS95OEJB5IEpJ4bpKQhCQkIQlJPD+SkIQkJCEJSUhCEpKQhCQkcT9JSEISkpCEJCQhCUkASEISkpCEJCQBIAlJSEISAJKQhCQkASAJSUgCQBKSkIQkJCEJAElIQhKSkIQkJAEgCUkASAJAEpKQhCQAJAEgCUlIQhKSkIQkJCEJAEkASAJAEgCSAJCEJAAkASAJSQBIAkASj3vc43j605/O8ePHeb/3ez8eSBL3k8Rzk8Rzk8T9JAEgiftJ4n6SuJ8kHujP/uzPAHixF3ux1+aqq6666qqr/uciuOqqq6666qr/oV7ndV7nva+55poHAzz1qU8FQBL/GpK4nyTuJ4nnJon7SeL5ee/3fm8e/OAHs1wu+dM//VMkIQlJSAJAEgCSkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJAEgCQBJSAJAEpIAkIQkACQhCQBJSAJAEpIAkIQkACQhCQBJSOJ+kpAEgCQkcT9JSAJAEpK4nyTuJwkASdxPEs9NEgCSAJDEA0kCQBLPTRL3k8T/RJL415LEi0ISz00S95PEA0nifpKQhCQeSBKSkMRzk4QkJCEJSUhCEs9NEpKQhCQkIQlJSEISknggSUhCEpKQhCQkcT9JSEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJAElIAkASkpCEJCQBIAlJAEhCEgCSkIQkJAEgCQBJSEISkgCQBIAkACQBIAkASQBIAkASAJKQhCQkASAJAElIAkASAJKQBMDjHvc47rvvPo4fP87bvu3bIon7SeK5SeJ+kgCQxP0k8dwkcT9J3E8S95PE/Z7ylKfwlKc8hWuuuebBL/ZiL/baXHXVVVddddX/TARXXXXVVVdd9T/Ui73Yi70WwJ//+Z8DIIkHksT9JHE/STw3SdxPEveTxHOTxP0kcb/XeZ3X4cEPfjAAf/u3fwuAJCQhCUlIQhKSkASAJCQhCUlIQhIAkpCEJCQBIAlJSEISkpCEJCQhCQBJSEISkpCEJCQhCUlIQhKSAJCEJCQhCQBJSEISkgCQhCQkIQkASUhCEpIAkIQkJCEJAElIQhKSAJCEJCQhCUlIQhIAkpAEgCQkASAJSQBIQhIAkpAEgCQkASAJSQBIQhL3k4QkACQhiftJ4n6SuJ8k7icJAEncTxIAkvi3kMS/RBIvCkn8d5PEv5ckACRxP0ncTxKSuJ8kHkgSkpDEA0lCEpKQxHOThCQkIQlJSEISz48kJCEJSUhCEpKQxP0kIQlJSEISkpAEgCQkIQlJSAJAEpKQhCQAJCEJSUhCEpKQhCQkIQlJAEhCEgCSkASAJCQBIAlJSEISAJKQhCQkASAJAElIQhKSkIQkACQBIAkASUhCEpKQhCQAJAEgCQBJSAJAEgCSuJ8kDg8P+bM/+zMODw95mZd5GV7ndV4HSTw3SdxPEs9NEs9NEveTxP0kcT9J3E8S93vKU54CwOu8zuu8F1ddddVVV131PxPBVVddddVVV/0P9Tqv8zrvDfCrv/qrSOKBJHE/SdxPEveTxHOTxP0kcT9JPDdJ3O8hD3kIr/3arw3An/zJn3Dx4kUkIQkASQBIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkASAJAElIAkASkgCQhCQAJCEJAElIAkAS95OEJAAkIQkASUjifpK4nyTuJ4n7SeJ+krifJAAk8dwkASAJAEkASAJAEv8RJPFfQRIvCkk8P5J4bpIAkASAJAAkASCJ5yaJ+0nigSRxP0lI4oEkIQlJPJAkJCEJSUjigSQhCUlIQhKSkIQkJPFAkpCEJCQhCUlI4n6SkIQkJCEJSdxPEpKQhCQAJCEJSUgCQBKSkASAJCQhCQBJSEISkpCEJAAkIQlJSEISkpAEgCQkASAJAElIQhKSAJAEgCQAJCEJSUhCEpKQBIAkACQBIAkASQBIQhIAkgCQBIAkJAEgicPDQ/70T/8UgNd93dfldV7ndbifJO4niecmiftJAkAS95PE/SRxP0ncTxL3kwTAn/3ZnwHwYi/2Yq/NVVddddVVV/3PRHDVVVddddVV/wO9zuu8znsDPPWpT+XixYs8kCTuJ4n7SeJ+krifJJ6bJO4niftJ4rk9+MEP5r3f+70B+Lu/+zsuXryIJCQhCUlIQhKSAJCEJCQhCUlIAkASkpCEJAAkIQlJSEISkpCEJCQhCUlIQhKSAJCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIQhIAkpAEgCQkASAJSQBIAkASkrifJO4nCUkASEISAJKQBIAkJAEgCUkASOJ+knhukgCQxL+GJJ6bJO4nif/JJPGvJYl/DUk8N0ncTxKSuJ8kHkgSknggSUhCEg8kCUlIQhKSeG6SkIQkJCEJSUhCEg8kCUlIQhKSkMT9JCEJSUhCEpIAkIQkJCEJAElIQhKSAJCEJCQBIAlJSAJAEpIAkIQkJCEJSQBIQhIAkpAEgCQkIQlJAEgCQBKSkIQkACQBIAkASQBIAkASAJIAkASAJCQhCUkASAJAEgCSkASAJAAkce7cOf70T/+Uw8NDXvZlX5aHPvSh3E8Sz00S95PEc5PE/STx/EjifpK4nyQuXLjAU57yFK655poHv9iLvdhrc9VVV1111VX/8xBcddVVV1111f9AL/ZiL/ZaAH/+53/OA0nifpK4nyTuJ4n7SeJ+knhukrifJO4nCYDjx4/zNm/zNgBcuHCBO++8E0kASAJAEpKQhCQkIQkASUhCEpKQhCQkIQlJSEISAJKQhCQkIQlJSEISkpCEJCQhCUlIQhKSAJCEJCQhCQBJSEISkgCQhCQkIQkASUhCEpIAkIQkJCEJSUgCQBKSkIQkACQhCUlIAkASkpCEJAAkIQlJSAJAEpIAkIQkACRxP0kASEISAJKQBIAkJHE/SdxPEveTxP0kcT9JAEjifpIAkMRzkwSAJAAkASAJAEk8N0n8SyTxopDEfwZJ/GtJ4n6SeEEkASAJAEk8N0k8N0k8kCTuJwlJ3E8SkpDEA0lCEpJ4bpKQhCQkIYkHkoQkJCEJSUhCEpK4nyQkIQlJSEIS95OEJCQhCUkASEISkpAEgCQkIQlJAEhCEpIAkIQkJCEJSUgCQBKSAJCEJAAkIQkASUhCEpIAkIQkJCEJAEkASEISkpCEJCQhCUkASAJAEgCSkIQkJAEgCQBJAEhCEpKQBIAkACQhCYBnPOMZ3HrrrRw/fpy3fdu35cSJEzw3SdxPEs9NEveTxHOTxAsiiftJ4s/+7M8AeKd3eqfP4qqrrrrqqqv+5yG46qqrrrrqqv+BXud1Xue9AZ761KdyP0ncTxL3k8T9JHE/SdxPEveTxHOTxP0kcb+3eZu34fjx41y4cIE/+7M/QxKSkIQkJCEJAElIQhKSkIQkACQhCUlIAkASkpCEJCQhCUlIQhIAkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEgCSkIQkJCEJSQBIQhKSkASAJAAkIQkASQBIQhIAkgCQhCQAJCEJAEkASEISAJKQBIAkJAEgCUkASEISAJKQBIAk7ieJ+0nifpIAkMT9JAEgCQBJ/GtI4rlJ4n6SeGEk8T+RJF5UknhhJAEgiftJAkAS95OEJAAkIYn7SUISDyQJSUjigSQhCUlI4n6SkIQkJCEJSTyQJCQhCUlIQhKSuJ8kJCEJSUhCEgCSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkASAJCQBIAlJSEISAJKQhCQkASAJSUhCEgCSAJAEgCQAJCEJSUhCEpKQBIAkACQBIAkASUgCQBIAkgCQhCQAJAHwjGc8g7Nnz3L8+HHe7/3ej/tJ4n6SeG6SuJ8k7icJAEncTxL3k8QL8tSnPhWAM2fOPJirrrrqqquu+p+H4Kqrrrrqqqv+h3md13md9wb48z//cy5evAiAJP6tJHE/SdxPEi/M+7zP+/DgBz+Y5XLJn/3ZnwEgCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSkIQkJCEJSUgCQBKSkIQkACQhCUlIAkASkpCEJAAkIQlJSEISkgCQhCQkIQkASUhCEpKQhCQAJAEgCUlIQhIAkpCEJCQBIAlJSEISAJKQBIAkACQhCQBJSAJAEpIAkMT9JHE/SdxPEgCSkASAJCQBIIn7SQJAEs9NEgCSAJAEgCQAJPGCSOJfIokXhST+q0niX0sS/xaSeG6SuJ8kHkgSDyQJSTyQJCQhiQeShCQk8dwkIQlJSEISDyQJSUhCEpKQxP0kIQlJSEISAJKQhCQkIQkASUhCEpIAkIQkJAEgCUlIAkASkpAEgCQkASAJSUhCEpKQhCQkASAJSUhCEgCSkASAJAAkIQlJSEISkgCQBIAkACQBIAkASQBIAkASkpCEJAAkASAJAElIAkASAJI4Ojriz/7szzg8POT48eO83du9HfeTxP0kASCJ+0nifpJ4bpK4nyTuJ4n7SeJ+Fy5c4ClPeQrXXHPNg1/ndV7nvbnqqquuuuqq/1kIrrrqqquuuup/mNd5ndd5L4CnPvWpAEjigSRxP0ncTxL3k8Rzk8T9JHE/SdxPEgCv/dqvzYMf/GAA/v7v/x5JSEISAJIAkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQBIAlJSEISAJKQhCQkIQlJAEhCEpKQBIAkACQBIAlJSEISAJKQhCQkASAJAElIAkASAJKQBIAkACQhCQBJSAJAEveTBIAkJAEgCUkASOJ+krifJO4nCQBJPDdJAEjiX0MSAJL495DEfwdJ/GtJ4n6SeG6SAJAEgCQAJAEgCQBJ3E8SAJK4nyTuJwlJ3E8SkrifJCQhiftJQhKSkMT9JCEJSUhCEveThCQkIQlJSOJ+kpCEJCQhCUkASEISkpCEJO4nCUlIQhIAkpCEJCQBIAlJSAJAEpKQBIAkJCEJSUhCEgCSkASAJCQBIAlJSEISAJKQBIAkJCEJSQBIAkASAJKQhCQkIQlJSEISAJKQhCQkIQlJAEgCQBIAkgCQhCQAJAEgCUkAHB0d8Tu/8zsAvMzLvAyv+7qvywsjiftJ4rlJ4n6SuJ8k7ieJ+0nifn/2Z38GwOu8zuu8F1ddddVVV131PwvBVVddddVVV/0P82Iv9mKvDfDnf/7nSOKBJHE/SdxPEveTxP0k8cJI4n6SAHjwgx/M67zO6wDwZ3/2Z1y8eBFJSEISkpCEJCQBIAlJSEISkpCEJCQhCUlIAkASkpCEJAAkIQlJSEISkpCEJCQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQkIQlJSEISkpAEgCQkIQlJSEISAJKQhCQkIQlJSEISAJKQhCQkASAJAElIQhKSAJAEgCQkASAJAElIAkAS95MEgCQkASAJSQBI4n6SAJCEJAAkcT9JPDdJAEjiuUkCQBIAkgCQBIAkXhSSuJ8k/jeTxL9EEv8WknhukrifJO4nCUncTxKSeCBJSOKBJCEJSTyQJCQhCUk8kCQkIQlJSOKBJCEJSUjifpKQhCQkIQkASUhCEpIAkIQkJCEJAElIQhIAkpCEJAAkIQkASUhCEpKQhCQAJCEJSUgCQBKSAJCEJCQhCQBJSEISkpCEJAAkASAJAEkASEISkgCQBIAkACQBIAkASUhCEpIAkASAJCQBIAmAo6Mj/uzP/gyAl33Zl+VlXuZlAJDE/SRxP0k8N0ncTxL3k8T9JHE/SdxPEgBPfepTAXixF3ux137xF3/x1+aqq6666qqr/ucguOqqq6666qr/QV7ndV7nvQD+/M//nOcmiftJ4n6SuJ8k7ieJ+0nifpJ4QY4fP877vM/7APDUpz6VixcvIgkASQBIQhKSkIQkJAEgCUlIQhIAkpCEJCQhCUlIQhKSkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkgCQhCQkIQkASUhCEpKQhCQAJAEgCUlIQhIAkgCQBIAkJCEJSQBIAkASkpCEJAAkASAJSUhCEgCSAJCEJAAkASAJSQBIQhIAkrifJAAkIQkASdxPEgCSuJ8kACRxP0kASAJAEv8aknhukviXSOJFIYl/LUn8R5DEfwRJAEgCQBIAknhuknhukrifJB5IEg8kCUncTxKSkMT9JCEJSUjifpKQhCQkIYn7SUISkpCEJCRxP0lIQhKSuJ8kJCEJSQBIQhKSkASAJCQhCUkASEISkgCQhCQkIQlJSAJAEpIAkIQkJCEJSQBIQhIAkpCEJCQBIAlJSEISAJIAkIQkJCEJAEkASAJAEgCSAJAEgCQAJCEJSUgCQBIAkgCQhCQAJAEgCUk84xnP4HGPexzHjx/n9V7v9XjIQx4CgCTuJ4nnJon7SeJ+krifJJ4fSdxPEhcuXOApT3kKAI997GNfi6uuuuqqq676n4Pgqquuuuqqq/4Hecd3fMfPBnjqU5+KJO4niftJ4n6SuJ8k7ieJ+0nifpK4nyTuJ4njx4/zPu/zPgBcuHCBpz3taUhCEpKQhCQkASAJSUhCEpKQhCQkIQlJSAJAEpKQhCQAJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkJCEJAElIQhKSAJAEgCQkIQlJSEISAJIAkIQkJCEJSUgCQBIAkpCEJCQBIAkASQBIQhIAkgCQhCQkIQkASQBIQhIAkrifJAAkIQkASdxPEgCSuJ8kACRxP0kASOK5SQJAEgCSAJAEgCQAJPHcJPHcJPGiksS/lyQkASAJSbyoJPGvJYn7SeK5SeJFIQkASdxPEgCSuJ8k7icJSdxPEpK4nyQk8UCSkMQDSUISknggSUhCEpJ4IElIQhKSkASAJCQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQAJCEJSUhCEpIAkIQkJAEgCUkASEISAJKQBIAkJCEJSQBIQhIAkgCQhCQkIQkASQBIQhKSkIQkJCEJSUhCEpKQhCQkIQkASQBIAkASAJKQBIAkACRxP0k87nGP43GPexzHjx/n7d7u7Th+/DgAknhukrifJO4niRdGEg8kiftJ4ld+5VcAeN3Xfd334aqrrrrqqqv+5yC46qqrrrrqqv8hXuzFXuy1r7nmmgcD/MVf/AX3k8S/lSTuJ4n7SeJ+kgB4m7d5G44fP86FCxf4i7/4CwAkASAJSUhCEpKQBIAkJCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpAEgCQkIQlJAEhCEpKQhCQkASAJSUhCEpKQBIAkJCEJSUhCEpKQBIAkACQBIAlJSEISAJIAkASAJCQhCUkASAJAEpIAkASAJAAkIQkASQBIQhIAkrifJAAkcT9JAEhCEgCSAJDE/SQBIAkASfxbSOK5SeL5kcS/liReVJJ4fiTxH0kS/xJJvCCSAJDECyKJ5yaJ+0nifpKQxP0kIYn7SUISkrifJCQhiftJQhKSkMT9JCEJSUhCEveThCQkIYn7SUISkpAEgCQkIQlJ3E8SkpAEgCQkIQlJAEhCEgCSkIQkACQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkACQhCUlIAkASAJKQhCQkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJSEISkgCQBIAkACQhCQBJ3HrrrZw9e5bjx4/zfu/3fjw3SdxPEveTxHOTxP0kcT9JvCC7u7sAnDlz5kEv9mIv9tpcddVVV1111f8MBFddddVVV131P8TrvM7rvBfAn//5n3M/STyQJO4niftJ4n6SeFFJAuB93ud9ePCDH8xyueQv/uIvkIQkJCEJSQBIQhKSkIQkJAEgCUlIQhIAkpCEJCQBIAlJSEISkpCEJCQhCUlIQhIAkpCEJCQBIAlJSEISkpCEJCQhCUlIAkASkpCEJCQhCQBJSEISkpCEJAAkASAJAElIQhKSkIQkJCEJAEkASAJAEpKQhCQAJAEgCQBJSAJAEgCSAJCEJAAkASAJSQBIAkASkgCQBIAkJAEgiftJAkASAJJ4bpIAkASAJAAkASAJAEm8IJL415DEfyRJvDCS+LeSxH8ESTw/kgCQBIAk7icJAEncTxL3k8T9JCGJ+0lCEveThCQkcT9JSEIS95OEJCQhiQeShCQkIYn7SUISkpAEgCQkIQlJ3E8SkpCEJAAkIQlJAEhCEpKQhCQkIQkASUhCEgCSkASAJCQBIAlJAEhCEgCSkASAJCQhCUkASEISkpAEgCQAJCEJSUhCEpIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkIQlJSAJAEgDL5ZI///M/5/DwkBMnTvC2b/u2AEjifpK4nySemyTuJ4n7SeJ+krifJO534cIF/uzP/gyA13md13kvrrrqqquuuup/BoKrrrrqqquu+h/ixV7sxV4b4M///M8BkMQDSeJ+krifJO4niftJ4n6SuJ8kHui1X/u1efCDHwzAP/zDPyAJAElIQhKSkIQkACQhCUlIQhKSAJCEJCQhCUlIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhKSkASAJCQhCUkASEISkpCEJCQBIAlJSEISkpAEgCQAJCEJSUhCEpKQhCQAJAEgCQBJAEhCEpKQhCQkASAJAEkASEISkpAEgCQAJAEgCUkASAJAEpIAkASAJO4nCQBJ3E8SAJJ4bpIAkASAJP4tJAEgiecmiftJ4n6SeGEk8W8lif8okvjXksT9JPHcJPFvIYnnJon7SeJ+knggSdxPEpJ4IElI4oEkIYkHkoQkJCGJ+0lCEpKQBIAkJCEJSdxPEpKQhCQAJCEJSUgCQBKSkASAJCQhCQBJSEISAJKQhCQkIQlJAEhCEgCSkASAJCQBIAlJSEISAJKQhCQkASAJSUhCEgCSAJAEgCQkIQlJSEISkpCEJCQhCUlIQhKSAJAEgCQAJCEJAEkASAJAEpI4Ojrid3/3dwF42Zd9WV73dV8XAEncTxLPTRL3k8T9JHE/SdxPEveTxP3+7M/+DIAXe7EXe22uuuqqq6666n8Ggquuuuqqq676H+B1Xud13vuaa655MMDTnvY0npsk7ieJ+0nifpK4nyTuJ4n7SeJ+knjwgx/M67zO6wDwF3/xF+zu7iIJSUgCQBKSkIQkJCEJAElIQhKSkIQkJCEJSQBIQhKSkASAJCQhCUlIQhKSkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpIAkIQkJCEJSUgCQBKSkIQkJCEJSUgCQBIAkgCQBIAkJCEJSUhCEpKQBIAkACQBIAkASUhCEpIAkASAJAAkASAJSQBIAkAS95MEgCQAJCEJAEkASOJ+kgCQBIAknpskACQBIAkASQBIAkASAJJ4QSTxn0ES/5Ek8R9FEv8SSTw3SQBIAkASAJIAkMRzkwSAJO4niftJ4n6SkMT9JPFAkpDE/SQhCUncTxKSkMT9JCEJSUjifpKQhCTuJwlJSEISAJKQhCQkASAJSUhCEgCSkIQkACQhCUkASEISkgCQhCQAJCEJSUhCEpKQhCQkIQlJSEISkgCQhCQAJAEgCUkASAJAEpKQhCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAlJSEISAJIAkASAJCQBIImjoyP+/M//HIDXfd3X5XVf93V5QSRxP0ncTxL3k8T9JHE/SdxPEgBPfepTecpTnsI111zz4Bd7sRd7ba666qqrrrrqvx/BVVddddVVV/0P8GIv9mKvBfDnf/7nAEjifpK4nyTuJ4n7SeJ+krifJO4niftJ4sEPfjDv8z7vA8DjHvc4Ll68iCQkIQlJSEISAJKQhCQkIQlJAEhCEpKQBIAkJCEJSUhCEpKQhCQkIQlJAEhCEpKQhCQkIQlJSAJAEpKQhCQAJCEJSUhCEpIAkIQkJCEJSUgCQBIAkpCEJCQhCUlIQhKSkIQkJAEgCQBJAEgCQBIAkpCEJCQhCUkASAJAEgCSAJAEgCQkASAJAEkASEISAJIAkMT9JAEgCQBJ3E8SAJIAkASAJP49JAEgiX8rSfxHkcR/BUn8e0jiX0MSAJJ4bpK4nyTuJ4n7SUIS95OEJO4nCUncTxKSkMT9JCEJSdxPEpKQhCQAJCEJSUjifpKQhCTuJwlJSAJAEpKQhCQAJCEJSQBIQhKSAJCEJCQhCUlIAkASkgCQhCQAJCEJAElIAkASkgCQhCQkIQkASUhCEpIAkASAJCQhCUlIQhIAkgCQBIAkACQBIAkASQBIQhIAkgCQBIAkACQhCQBJAEjitttu43GPexwAL/MyL8NDHvIQJHE/SdxPEveTxP0kcT9JPD+SuJ8kAJ761KcC8Dqv8zrvxVVXXXXVVVf99yO46qqrrrrqqv8BXud1Xue9AX7t134NSdxPEveTxH+U48eP8z7v8z4A3HXXXdx9991IQhIAkpCEJCQhCUkASEISkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEgCSkIQkJCEJSUhCEpKQhCQAJCEJSUhCEpIAkIQkJCEJSUhCEpIAkASAJAAkASAJAEkASEISkpCEJCQhCUlIQhIAkgCQBIAkACQBIAkASUhCEpIAkASAJAAkIQkASQBIAkAS95MEgCQAJHE/SQBIAkASAJIAkASAJAAkASAJAEkASOJFIYn7SeJ+knhhJPFfRRL/Ekn8a0nifpJ4UUgCQBIAkgCQxHOTBIAk7ieJ+0nifpK4nyQkcT9JSOJ+kpDE/SQhCUncTxKSkMT9JCEJSdxPEpKQhCQAJCEJSUgCQBKSkMT9JCEJSQBIQhKSAJCEJCQBIAlJAEhCEpIAkIQkACQhCQBJSAJAEpIAkIQkJCEJAElIQhKSAJCEJCQhCQBJAEgCQBKSkIQkJCEJSUhCEpKQhCQkIQlJAEgCQBIAkpCEJCQBIAkASUgC4AlPeAKPe9zjOHHiBG/7tm/L8ePHkcT9JHE/SdxPEi+MJF4QSfzZn/0ZAC/2Yi/22lx11VVXXXXVfz+Cq6666qqrrvpv9jqv8zrvDfDUpz6V3d1d7ieJF0QS95PE/SRxP0ncTxL3k8TbvM3bAHDx4kUe//jHIwlJSEISkgCQhCQkIQlJSAJAEpKQhCQAJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIQhKSAJCEJCQhCUlIAkASAJIAkASAJCQhCUlIQhKSkIQkJCEJSQBIAkASAJIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkASCJ+0kCQBIAkgCQxP0kASAJAEn8SyQBIAkASfxLJPHcJPGfQRL/Ekn8TyeJ5yaJF4UkACTx3CRxP0ncTxL3k8T9JCGJ+0lCEveThCTuJwlJSOJ+kpCEJO4nCUlI4n6SkIQk7icJSUgCQBKSkIQkACQhCUkASEISkgCQhCQkASAJSQBIQhKSkIQkJCEJSUgCQBKSkIQkJCEJSQBIQhIAkgCQhCQkIQkASUhCEpKQhCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAlJAEgCQBIAkpAEgCQAbrvtNs6ePcuJEyd4v/d7PwAkcT9JvDCSuJ8k7ieJ+0nigXZ3d3nqU5/KNddc8+AXe7EXe22uuuqqq6666r8XwVVXXXXVVVf9N3uxF3ux1wL4i7/4C+4niQeSxP0kcT9J3E8S95PE/SRxP0m8z/u8Dw9+8INZrVb85V/+JZIAkIQkJCEJSUgCQBKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEpIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQBIAlJSEISkpAEgCQkIQlJSEISkpCEJCQhCUkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQhCQkIQlJSEISkgCQBIAkACQBIAkASUgCQBIAkgCQBIAk7icJAEkASAJAEgCSAJDECyMJAEkASOK5SeK5SeJ+knhBJPHfTRL/ESTxryGJf4kkXhBJAEjifpK4nyQAJCGJ+0nifpKQxP0kIYn7SUIS95OEJCRxP0lIQhL3k4QkJAEgCUlIQhIAkpCEJAAkIQlJSAJAEpKQBIAkJCEJAElIQhKSkIQkACQhCQBJSAJAEpKQhCQkASAJSQBIQhIAkpCEJCQBIAkASUhCEpIAkASAJCQhCUlIQhIAkgCQBIAkACQBIAkASUhCEpIAkASAJAAkIQkASQBIYrlc8hd/8RecPXuWEydO8PEf//G8IJK4nyTuJ4n7SeJ+krifJB7oz/7szwB4p3d6p8/iqquuuuqqq/57EVx11VVXXXXVf7PXeZ3XeW+Apz3taTw/krifJO4niftJ4n6SuJ8k7ieJ93mf9+HBD34wq9WKv/zLv0QSkpCEJAAkIQlJSEISkgCQhCQkIQkASUhCEpIAkIQkJCEJSUhCEpKQhCQkIQkASUhCEpIAkIQkJCEJAElIQhKSkIQkACQhCUlIQhKSAJAEgCQAJAEgCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhIAkgCQBIAkACQBIAkASQBIAkAS95MEgCQAJAEgCQBJPDdJAEgCQBIAkgCQBIAkACQBIIkXRBLPTRL/Ekm8MJL4t5DEfzVJvDCSuJ8kXhSSAJDEA0kCQBIAknhukrifJAAkcT9JSOJ+krifJCRxP0lI4n6SkMT9JCEJSdxPEpKQBIAkJCGJ+0lCEpK4nyQkcT9JSEISAJKQhCQAJCEJSQBIQhIAkpCEJAAkIQkASUgCQBKSAJCEJAAkIQkASUhCEpIAkIQkJCEJAEkASEISkpAEgCQAJAEgCUlIQhKSkIQkJCEJSUhCEpIAkASAJAAkASAJSQBIAkAS91sul/zFX/wFR0dHHD9+nLd927dFEveTxP0kcT9J3E8S95PE/SRxP0nc76lPfSoAZ86ceTBXXXXVVVdd9d+L4Kqrrrrqqqv+G73O67zOewP8xV/8BRcvXgRAEveTxP0kcT9J3E8SL4rXfu3X5sEPfjAAj3vc41itVkgCQBKSkIQkACQBIAlJSEISAJKQhCQkIQlJSEISkpCEJCQBIAlJSEISkpCEJCQhCUlIQhKSkASAJCQhCUkASEISkpCEJCQBIAlJSEISkpCEJCQhCUlIQhIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJ3E8SAJIAkASAJAAkASCJ/wiSAJDEc5PEfzZJ/HeTxH8USTw3SfxbSAJAEveTBIAk7ieJ+0lCEveTxP0kIYn7SUIS95OEJO4nCUlIAkASkpDE/SQhCUkASEISkpAEgCQkIQkASUhCEgCSkIQkACQhCUkASEISAJKQhCQkIQlJAEhCEgCSkASAJCQhCUlIQhKSAJCEJAAkASAJSUhCEgCSAJCEJCQhCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIQhKSkASAJAAkIQlJSAJguVzyu7/7uwC87Mu+LK/7uq+LJO4niftJ4n6SuJ8k7ieJ+0nifpIAuHjxIk996lO55pprHvw6r/M6781VV1111VVX/fchuOqqq6666qr/Rq/zOq/zXgBPfepTAZDE/SRxP0m8KCRxP0nc7yEPeQiv8zqvA8Bf/uVfcunSJSQhCUlIAkASkpCEJCQhCUlIQhKSkIQkJCEJAElIQhKSAJCEJCQhCUlIQhIAkpCEJCQBIAlJSEISkpCEJCQhCUlIAkASkpCEJCQhCQBJAEgCQBIAkgCQhCQkIQlJSEISkpCEJCQhCUkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBI4n6SAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIIkXRBLPTRL3k8T9JHE/STyQJP6nkMR/BEn8a0jiuUkCQBIAkgCQBIAkACTx3CTx3CRxP0ncTxKSAJCEJO4nCUncTxKSuJ8kJHE/SUjifpKQhCTuJwlJ3E8SkpAEgCQkIQkASUhCEgCSkIQkACQhCUlIQhKSAJCEJAAkIQlJSEISkpCEJCQhCUkASEISAJKQBIAkJCEJSQBIAkASkpCEJAAkASAJSUhCEpKQhCQkASAJAEkASAJAEgCSkIQkJAEgCQBJAEhCEgCSAJAEwHK55C/+4i8AeN3XfV1e93VfF0ncTxL3k8S/hiTuJwmAP/uzPwPgdV7ndd6Lq6666qqrrvrvQ3DVVVddddVV/41e7MVe7LUB/uIv/gJJ3E8SL4gk7ieJ+0nifpK430Me8hDe533eB4DHP/7xXLp0CQBJSEISkpCEJAAkIQlJSAJAEpKQhCQAJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIQhKSAJAEgCQkIQlJSEISkpCEJCQhCUkASAJAEgCSAJAEgCQAJCEJSUhCEpKQhCQkIQkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJDEc5MEgCQAJAEgCQBJAEgCQBIAkgCQxAsiCQBJPDdJ/EeSxL+FJP43kMT9JPHcJPFvIQkASdxPEgCSuJ8k7ieJ+0nifpKQxP0kIYn7SUISAJKQhCQAJCEJSdxPEpKQBIAkJCEJAElIQhIAkpCEJAAkIQlJAEhCEpIAkIQkACQhCUkASEISAJKQBIAkJAEgCUkASEISAJKQBIAkJCEJSQBIQhKSkASAJAAkIQlJSAJAEgCSAJAEgCQkIQlJSEISkpCEJCQhCQBJAEgCQBIAkpAEgCQAJAEgCUncdtttPP7xjwfgZV7mZXjIQx7Cv0QS95PE/STxgkjiqU99KgAv9mIv9tov/uIv/tpcddVVV1111X8Pgquuuuqqq676b/I6r/M67wXwF3/xF0jifpJ4IEncTxL3k8T9JHE/SdzvxIkTvM/7vA8A99xzD/fccw+SkIQkACQhCUlIQhKSAJCEJCQhCUlIQhKSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCQBJSEISkpCEJCQhCQBJAEgCQBIAkgCQhCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASQBIQhKSkIQkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkAS/5EkASAJAEk8N0m8MJK4nyT+r5PECyOJf4kkXhBJAEgCQBIAknhBJPHcJHE/SdxPEveTxP0kIYn7SUISAJKQxP0kIYn7SUISkgCQhCQkcT9JSOJ+kpAEgCQkIQkASUhCEgCSkIQkACQhCQBJSEISAJKQBIAkJAEgCUkASEISAJKQBIAkJCEJSQBIQhKSkASAJCQhCUkASAJAEpKQhCQkIQkASQBIAkASAJIAkASAJAAkASAJAEkASEISAJIAkASAJCQBIIknPOEJPP7xj+fEiRO87du+LSdOnOB+krifJO4niftJ4n6SuJ8kHmh3d5enPvWpADz2sY99La666qqrrrrqvwfBVVddddVVV/03ecd3fMfPBnja057GCyKJ+0nifpK4nySen+PHj/M+7/M+AOzu7vL4xz8eSUhCEpKQhCQAJCEJSUhCEpKQhCQkASAJSUhCEgCSkIQkJCEJSUgCQBKSkIQkACQhCUlIAkASkpCEJAAkIQlJSEISkgCQBIAkJCEJSUhCEpKQhCQkIQlJSEISAJIAkIQkJCEJSUhCEpKQhCQAJAEgCQBJAEgCQBIAkgCQhCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEi+IJJ6bJO4niX+JJB5IEi8KSfxPIYn/KpJ4UUgCQBIAkrifJAAkcT9J3E8S95PE/SRxP0lI4n6SuJ8kJHE/SUjifpKQxP0kIQlJAEhCEpIAkIQk7icJSQBIQhKSAJCEJCQBIAlJAEhCEpKQhCQkASAJSQBIQhIAkpCEJCQhCUlIAkASkgCQBIAkJAEgCQBJSEISkgCQBIAkACQhCUlIQhKSAJAEgCQAJAEgCQBJSEISkpCEJAAkASAJAElIAkASAJK4/fbbefzjH8+JEyd4//d/f06cOMH9JHE/SdxPEveTxP0kcT9JPNCv/dqvAfC6r/u678NVV1111VVX/fcguOqqq6666qr/Bi/2Yi/22tdcc82DAf7iL/6C+0nifpK4nyReFJK439u+7dty/Phxdnd3+eu//mskIQkASUhCEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSUhCEpKQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASEISkpCEJCQBIAkASQBIAkASAJKQhCQkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACTxL5EEgCSemyT+p5HEfxRJ/EeQxAsiiRdGEv8SSQBI4gWRxHOTxP0kASAJSQBIQhL3k8T9JCEJAElI4n6SkMT9JCEJAElIQhIAkpCEJAAkIQlJAEhCEpIAkIQk7icJSQBIQhKSAJCEJAAkIQkASUhCEpKQhCQkIQlJSEISAJKQBIAkJAEgCUlIQhIAkpCEJCQBIAkASUhCEpIAkASAJAAkASAJSUhCEpKQhCQkIQlJSAJAEgCSAJAEgCQAJCEJAEkASEISR0dH3H777Zw7d47jx4/zfu/3fkjifpK4nyTuJ4n7SeJ+krifJO534cIFAM6cOfOgF3uxF3ttrrrqqquuuuq/HsFVV1111VVX/Td4ndd5nfcC+Iu/+AvuJ4n7SeIFkcT9JHE/Sdzvfd/3fXnwgx/MarXir//6rwGQhCQkIQkASQBIQhKSkASAJCQhCUlIQhKSkIQkJCEJSQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkgCQhCQkIQkASQBIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIAkASAJIAkASAJAAkIQlJSAJAEgCSAJAEgCQAJCEJAEkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkviXSAJAEgCSeEEk8dwkcT9J3E8S95PEv4Yk/q+SxPMjiftJ4gWRBIAknh9JAEgCQBL3kwSAJO4nCQBJ3E8S95OEJAAkIYn7SeJ+kpAEgCQkIQkASUjifpKQxP0kIYn7SUISAJKQhCQAJCEJSQBIQhIAkpCEJAAkIQkASUgCQBKSAJCEJAAkIQkASUgCQBKSAJCEJCQhCQBJSEISkgCQhCQkIQkASQBIQhKSkIQkJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASUhCEpIAkASAJCQBIImjoyP+8i//kqOjI06cOMHbvu3b8q8liftJ4n6SALh48SJ//ud/DsDrvM7rvBdXXXXVVVdd9V+P4Kqrrrrqqqv+G7zYi73YawP8xV/8BQCSuJ8kHkgS95PE/SRxP0nc723f9m158IMfzGq14glPeAKSkIQkACQhCUlIQhKSkIQkJCEJSUhCEpIAkIQkJCEJAElIQhKSkIQkJAEgCUlIQhIAkpCEJCQBIAlJSEISkpAEgCQkIQlJSEISAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJCEJSUhCEpIAkASAJAAkASAJSQBIAkASAJIAkASAJCQBIAkASQBIAkASAJIAkASAJAAkASAJAEk8N0kASAJAEgCSAJDEc5MEgCSemyT+rSTxQJL4v0QS/xkk8e8hCQBJ3E8SAJK4nyTuJ4n7SeJ+kpAEgCQkcT9J3E8SkrifJCRxP0lIAkASkpAEgCQkcT9JSAJAEpKQBIAkJAEgCUlIAkASkgCQhCQAJCEJAElIAkASkgCQhCQAJCEJSUgCQBKSAJAEgCQkASAJAElIQhKSAJAEgCQAJCEJSUhCEpIAkASAJAAkASAJAElIQhKSkIQkACQBIAkASUgCQBIAkjg6OuL3f//3OTo64mVf9mV5u7d7O+4niftJ4n6SeEEkcT9JAPz5n/85AC/2Yi/22lx11VVXXXXVfz2Cq6666qqrrvov9jqv8zrvfc011zwY4GlPexqSeEEkcT9J3E8S95PE/V7ndV6Hl37plwbgCU94ApcuXUISkpCEJCQBIAlJSEISAJKQhCQkASAJSUhCEpKQhCQkIQlJSEISAJKQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhKSkASAJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJAAkASAJAEkASEISkpAEgCQAJAEgCUkASAJAEgCSAJAEgCQkASAJAEkASAJAEgCSAJAEgCReEEkASAJAEgCSeEEkASCJ5yaJF0YS95PEfzRJ/H8kiecmCQBJAEgCQBIAkgCQBIAknpskACRxP0ncTxL3k8T9JHE/SdxPEpIAkIQk7icJSQBIQhKSAJCEJO4nCUkASEISkgCQhCQAJCEJSQBIQhIAkpCEJCQhCUkASEISAJKQBIAkJAEgCUlIQhKSkIQkACQhCQBJSEISkgCQhCQkIQkASQBIQhKSkASAJAAkASAJAElIQhKSkIQkJCEJSUhCEgCSAJAEgCQAJAEgCUkASAJAEgCSWC6X/P7v/z4AL/uyL8vrvd7rcT9J3E8S95PE/STxgkjiqU99Kk996lO55pprHvxiL/Zir81VV1111VVX/dciuOqqq6666qr/Yi/2Yi/2WgB/8Rd/gSQeSBL3k8T9JHE/STw/D37wg3md13kdAP7mb/6GS5cuIQkASQBIQhKSkASAJCQhCUkASEISkpCEJCQhCQBJSEISkgCQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJSEISkgCQBIAkACQBIAlJAEgCQBIAkpAEgCQAJAEgCQBJ3E8SAJIAkASAJAAkASCJ5yYJAEkASAJAEi+IJAAk8YJI4rlJ4n6S+JdI4v8qSbwoJPGCSOJ+krifJJ6bJP49JAEgiecmiftJ4n6SAJCEJAAkIYn7SeJ+krifJCQBIAlJ3E8SkgCQhCQkASAJSdxPEpIAkIQkACQhCUkASEISAJKQBIAkJCEJAElIAkASkgCQhCQkIQkASUgCQBKSAJCEJCQhCQBJSAJAEgCSkIQkJAEgCQBJSEISkpCEJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJSAJAEgCSAJCEJACWyyV/+Zd/CcDrvu7r8nqv93rcTxL3k8T9JHE/SdxPEg8kiac+9akAvM7rvM57cdVVV1111VX/tQiuuuqqq6666r/Y67zO67w3wG/8xm/wQJK4nyTuJ4kXRBIAD37wg3nf931fAJ74xCeyu7uLJCQhCUlIQhIAkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQhCUkASAJAEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJAEgCQBJAEgCQBKSkIQkACQBIAkASUgCQBIAkgCQhCQAJAEgCQBJAEhCEgCSAJAEgCQAJPHcJAEgCQBJAEjiuUkCQBIAknhukgCQxHOTxH8ESTyQJJ6bJP4tJPG/hST+o0gCQBIAkgCQBIAkACTx3CQBIIn7SQJAEpIAkMT9JHE/SUgCQBKSAJCEJO4niftJQhIAkpDE/SQhCQBJSEISAJKQBIAkJAEgCUlIAkASkgCQhCQAJCEJSUhCEpKQhCQkIQlJAEhCEgCSkASAJCQhCUkASEISAJKQhCQkASAJAElIQhKSAJAEgCQAJCEJSUhCEpIAkASAJAAkASAJAEkASEISkpCEJCQBIAkASQBIQhIAkgC4/fbbecITngDAy77sy/KQhzyE+0nifpK4nyTuJ4n7SeKB/uIv/gKAF3uxF3ttrrrqqquuuuq/FsFVV1111VVX/Rd6ndd5nfcGeNrTnsbFixe5nyTuJ4kXRBL3kwTAgx/8YN73fd8XgFtvvZV7770XSUgCQBKSkIQkJCEJSUhCEgCSkIQkJAEgCUlIQhKSkIQkACQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQAJCEJSUhCEpKQhCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAlJSEISkpAEgCQAJAEgCUkASAJAEgCSkASAJAAkASAJSQBIAkASAJK4nyQAJAEgCQBJ3E8SAJIAkASAJJ6bJAAkASCJ5yYJAEk8N0k8N0ncTxL3k8T9JHHVfyxJPDdJ/FtIAkASz00Sz00S95PE/SRxP0ncTxL3k4QkACQhCQBJSOJ+kpAEgCQkcT9JSAJAEpIAkIQk7icJSQBIQhIAkpAEgCQkASAJSQBIQhIAkpAEgCQkASAJSUhCEgCSkASAJCQhCUkASEISkpAEgCQAJCEJSUgCQBIAkgCQBIAkJCEJSUhCEpKQhCQkIQlJSAJAEgCSAJAEgCQAJCEJAEkASEIST3ziE3nCE57A8ePHebu3ezse8pCH8C+RxP0kcT9J3O/ixYs89alP5Zprrnnwi73Yi702V1111VVXXfVfh+Cqq6666qqr/gu92Iu92GsB/OVf/iX3k8T9JPFAkrifJO4nCYDjx4/zvu/7vgDs7u5y2223IQlJSEISkgCQhCQkIQkASUhCEpIAkIQkJCEJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQhCUlIQhKSAJCEJCQhCQBJAEhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkACQBIAkASQBIQhIAkgCQBIAkJAEgCQBJAEhCEgCSAJDE/SQBIAkASdxPEgCSAJAEgCTuJwkASQBIAkAS95MEgCQAJPHcJAEgiecmiecmiX8rSfx/JIl/DUncTxL3k8Rzk8QLIgkASQBIAkASL4gkACRxP0kASOJ+krifJAAkIQkASUgCQBKSuJ8k7ieJ+0lCEgCSkMT9JCEJAElIAkASkrifJCQBIAlJAEhCEgCSkASAJCQBIAlJAEhCEgCSkASAJCQhCUkASEISAJKQhCQkASAJSQBIAkASkpCEJAAkASAJSUhCEpKQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJSUhCEgCSAJCEJAAk8cQnPpEnPOEJnDhxgrd7u7fjxIkTAEjifpJ4QSRxP0nc7y/+4i8AeKd3eqfP4qqrrrrqqqv+6xBcddVVV1111X+h13md13lvgKc97WkASOIFkcT9JPHcjh8/ztu8zdsAsLu7y9/+7d8iCQBJAEhCEpKQBIAkJCEJSQBIQhKSkIQkJCEJAElIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEhCEpKQhCQkASAJSUhCEpKQBIAkACQBIAkASQBIAkASAJIAkASAJAAkIQlJSAJAEgCSAJCEJCQhCQBJAEhCEgCSAJDE/SQBIAkASUgCQBIAkgCQhCQAJAEgCQBJ3E8SAJIAkMRzkwSAJJ6bJAAk8dwk8dwk8cJI4n6SuJ8kXhBJ/FtJ4qoXTBIvCkkASAJAEgCSuJ8kACRxP0kASEISAJK4nyTuJ4n7SUISAJKQBIAkJAEgCUncTxKSAJCEJAAkIQkASUhCEgCSkASAJCQBIAlJAEhCEgCSkASAJCQBIAlJAEhCEgCSAJCEJAAkIQkASQBIQhIAkpCEJCQBIAkASUhCEpIAkASAJAAkIQlJSEISkgCQBIAkACQBIAkASQBIAkASkpCEJAAkASAJAEncTxIAkrj99ts5d+4cJ06c4P3e7/04ceIEAJK4nyTuJ4kHksT9JAHw1Kc+FYAzZ848mKuuuuqqq676r0Nw1VVXXXXVVf9FXud1Xue9Af7iL/6CixcvIokHksT9JHE/STyQJADe5m3ehoc85CHs7u7yt3/7t0hCEpKQhCQkASAJSUhCEgCSkIQkJCEJSUgCQBKSkIQkJCEJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJSEISAJIAkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQBIAkASQBIQhKSkASAJAAkASAJSQBIAkASkgCQBIAkJAEgCQBJ3E8SAJIAkMT9JAEgCQBJ3E8SAJIAkMT9JAEgiecmCQBJPDdJPDdJPDdJ3E8S/xqSeGEk8dwk8X+VJB5IEv8aknhukviXSOJFJQkASdxPEgCSuJ8k7ieJ+0nifpK4nyTuJ4n7SeJ+kpAEgCQkASAJSQBIQhL3k4QkACQhCQBJSAJAEpIAkIQkACQhCQBJSAJAEpIAkIQkJCEJAElIAkASkpCEJAAkIQlJSAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkACQhCUlIQhKSkIQkJCEJSUhCEpKQBIAkACQBIAkASUhCEpIAkATAcrnkr//6rzl37hwnTpzg/d7v/bifJO4niftJ4gWRxMWLF3nqU5/KNddc8+DXeZ3XeW+uuuqqq6666r8GwVVXXXXVVVf9F3md13md9wJ4+tOfjiQeSBL3k8QLIgmA93mf9+EhD3kIq9WKv/u7v0MSkgCQhCQkIQlJSEISkpCEJCQhCUlIAkASkpCEJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIAkASkpCEJCQhCQBJAEgCQBIAkgCQBIAkACQBIAkASUhCEpIAkASAJAAkIQkASQBIAkASkgCQBIAkJAEgCQBJSAJAEgCSkASAJAAkcT9JAEgCQBL3kwSAJJ6bJAAkcT9JAEjiuUkCQBL3k8Rzk8QLI4n7SeKq/3qSeEEkASCJB5IEgCQAJAEgCQBJPDdJPDdJ3E8S95MEgCQkASAJSQBIQhIAkpAEgCQkASAJSQBIQhL3k8T9JCEJAElIAkASkgCQhCQAJCEJAElIAkASkgCQhCQAJCEJSUgCQBKSAJCEJCQhCQBJSAJAEgCSkASAJAAkIQlJSAJAEgCSkIQkJCEJSQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJCEJAAkASAJAElI4ujoiL/+67/m6OiIEydO8P7v//7cTxL3k8T9JHE/STyQJP7iL/4CgNd5ndd5L6666qqrrrrqvwbBVVddddVVV/0XebEXe7HXBvjLv/xLHkgS95PEA0nifpIAeJ/3eR8e8pCHsFqteNKTngSAJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQhCQkIQkASUhCEpIAkIQkJCEJAElIQhKSAJCEJCQhCQBJSEISkpCEJAAkASAJSUhCEpKQhCQkIQlJSEISkpCEJCQhCQBJAEgCQBKSkIQkACQBIAlJAEgCQBL3kwSAJO4nCQBJ3E8SAJK4nyQAJHE/SQBIAkAS95MEgCTuJwkASQBI4n6SAJDE/SQBIInnJon7SeK5SeJ+kviXSOKqfztJ3E8S95PECyMJAEn8R5AEgCTuJwkASdxPEgCSkASAJO4niftJ4n6SAJCEJO4niftJ4n6SkASAJCQBIAlJAEhCEgCSkASAJCQBIAlJAEhCEgCSkASAJCQBIAkASUgCQBKSAJAEgCQkASAJSUhCEgCSkIQkJAEgCQBJSEISkgCQBIAkACQhCUlIQhKSAJAEgCQAJAEgCQBJAEgCQBIAkpCEJCQBIAkASQBIQhIAkjg6OuIP//APOTo64iEPeQhv93Zvx/MjiftJ4n6SeKCnPe1pALzYi73Ya7/4i7/4a3PVVVddddVV//kIrrrqqquuuuq/wOu8zuu8F8Bf/MVf8ECSeEEkcT9JALzN27wND3nIQwB40pOexN7eHpKQBIAkJCEJSQBIQhKSkASAJCQhCUlIQhKSAJCEJCQhCQBJSEISkgCQhCQkIQlJSEISkpAEgCQkIQlJAEhCEpKQhCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASUhCEpIAkASAJAAkIQkASQBIQhIAkgCQhCQAJAEgCUkASAJAEpIAkASAJCQBIAkASUgCQBIAkrifJAAkcT9JAEjiuUniuUniuUniuUnifpL4zyCJq/79JPGikASAJAAkASAJAEkASAJAEgCSeG6SAJDE/SQBIIn7SeJ+kgCQhCQAJCEJAEncTxKSAJCEJAAkIQkASUgCQBKSAJCEJAAkIQkASUgCQBKSAJCEJAAkIQkASUgCQBKSkIQkACQhCQBJSEISkgCQhCQAJAEgCUkASAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkACQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkASAJAEkASAJAEpIAkASAJJbLJX/4h38IwMu+7Mvyuq/7ugBI4gWRxP0kcb+LFy/y1Kc+FYDHPvaxr8VVV1111VVX/ecjuOqqq6666qr/Au/4ju/42QBPf/rTuZ8kHkgS95PEc3uZl3kZXuZlXgaAv/3bv2Vvbw8ASUhCEpIAkIQkJCEJAElIQhKSAJCEJAAkIQlJSAJAEpKQhCQAJCEJSUhCEpKQBIAkJCEJSUhCEgCSkIQkJAEgCQBJAEhCEpKQhCQkIQlJSEISkpCEJAAkASAJAEkASEISkpAEgCQAJCEJAEkASEISAJIAkIQkACQBIAlJAEjifpIAkMT9JAEgiftJAkAS95MEgCTuJwkASdxPEgCSuJ8kACRxP0k8N0m8MJK4nyTuJ4n7SeIFkcQLI4mr/n0k8dwk8R9BEgCSeG6SAJDE/SRxP0kASOJ+krifJAAkIQkASUgCQBKSAJCEJAAkIQkASUgCQBKSAJCEJAAkIQkASUgCQBKSAJCEJAAkIQlJSAJAEpIAkIQkACQBIAlJAEhCEpKQBIAkJCEJSQBIAkASkgCQBIAkACQhCUlIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCUkASAJAEvdbLpf8+q//OgCv93qvx+u+7usCIIn7SeKBJHE/Sdzv13/91wF43dd93ffhqquuuuqqq/7zEVx11VVXXXXVf7IXe7EXe+1rrrnmwQB/+Zd/CYAkHkgS95PEA0niwQ9+MG/zNm8DwN/93d+xt7eHJCQhCQBJSEISkgCQhCQkIQkASUhCEpKQhCQkASAJSUhCEgCSkIQkJCEJSUgCQBKSkIQkACQhCUlIQhKSAJCEJCQhCUlIQhKSAJAEgCQAJAEgCQBJAEhCEpKQhCQkASAJAEkASEISAJIAkIQkACQBIAlJAEgCQBKSAJDE/SQBIAlJAEjifpIAkMT9JAEgiftJAkAS95MEgCTuJ4nnJonnJon7SeK5SeJ+kvi3ksR/N9v8fyWJF0QSAJIAkASAJAAkASAJAEk8N0kASOK5SQJAEpIAkMT9JAEgCUkASOJ+krifJO4niftJ4n6SAJCEJAAkIQkASUgCQBKSAJCEJAAkIQkASUgCQBIAkpAEgCQkASAJSUhCEgCSkASAJAAkIQkASQBIQhIAkgCQhCQkIQkASQBIAkASkpCEJCQhCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIQhKSkASAJAAkASAJSQAsl0v+6q/+CoDXe73X43Vf93UBkMT9JPGCSALg4sWLAJw5c+ZBL/ZiL/baXHXVVVddddV/LoKrrrrqqquu+k/2Oq/zOu8F8Jd/+Zc8P5K4nyQeSBIPfvCDed/3fV8AnvSkJ3Hp0iUkASAJSUhCEgCSkIQkJAEgCUlIQhKSkIQkACQhCUlIAkASkpCEJCQhCUkASEISkpAEgCQkIQlJAEgCQBKSkIQkACQBIAkASQBIQhKSkIQkJCEJAEkASAJAEgCSAJCEJCQhCQBJAEhCEgCSAJCEJAAkASAJSQBI4n6SAJCEJAAkcT9JAEhCEgCSuJ8kACRxP0kASOJ+knhukrifJAAkcT9JPDdJ3E8Sz00S95PE/SRxP0n8Z5LE/yS2+c8miRdEEveTxP0k8aKQxL+HJAAkASCJ+0kCQBLPTRL3kwSAJO4niftJAkASkgCQhCQAJCEJAElIAkAS95PE/SQBIAlJAEhCEgCSkASAJCQBIAlJSEISAJKQBIAkJAEgCQBJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQBIAlJSEISAJIAkASAJAAkIQlJSEISkpCEJAAkASAJAElIQhKSkIQkJCEJAEkASAJAEgCSkASAJADuuOMOnvjEJwLwsi/7srzsy74sAJK4nyTuJ4kHksTFixf5i7/4CwBe53Ve57246qqrrrrqqv9cBFddddVVV131n+zFXuzFXhvgL/7iLwCQxP0k8YJI4sEPfjDv+77vC8Btt93G2bNnkYQkJCEJAElIQhKSAJCEJCQhCUlIQhIAkpCEJCQhCUlIQhKSkIQkJAEgCUlIQhIAkpCEJCQBIAlJSEISkpAEgCQkIQlJSEISkpCEJCQBIAkASQBIQhKSkIQkJCEJSQBIAkASAJKQBIAkACQhCQBJAEhCEgCSuJ8kACQhCQBJ3E8SAJKQBIAk7icJAElIAkAS95MEgCTuJ4n7SQJAEveTxHOTxP0k8dwkcT9J/FtJ4gWRxANJ4qorJPHCSOJfQxLPTRL/EkkASAJAEgCSAJAEgCSemyQAJHE/SQBI4n6SAJDE/SQBIAlJAEjifpK4nyQAJCEJAElIAkASkgCQhCQAJHE/SQBIQhIAkpAEgCQkASAJAElIAkASkgCQhCQkIQkASUgCQBIAkpAEgCQAJCEJAEkASEISkpAEgCQAJCEJSUgCQBIAkgCQBIAkACQBIAlJSEISkpCEJAAkASAJAEkASAJAEgCSkIQkJAEgCQBJADzpSU/iiU98IidOnOD1Xu/1eMhDHsJzk8T9JPFAkvjzP/9zAF7sxV7stbnqqquuuuqq/1wEV1111VVXXfWf6HVe53Xe+5prrnkwwNOf/nQkcT9JPJAk7ieJ48eP877v+74A3Hvvvdx+++0ASAJAEpKQhCQAJCEJSUhCEpKQBIAkJCEJSQBIQhIAkpCEJCQBIAlJSEISAJKQhCQkASAJSUhCEgCSkIQkJCEJSQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSkASAJAAkASAJSQBIAkASkgCQxP0kASAJSQBI4n6SAJCEJAAkcT9J3E8SAJK4nyTuJwkASdxPEveTBIAk7ieJ+0niuUnifpJ4YSRxP0ncTxL3k8QLIomr/vtJ4gWRBIAk/i0kASAJAEncTxIAkrifJAAkcT9JAEjifpIAkIQkACQhCQBJ3E8SAJKQBIAkJAEgCUkASEISAJIAkIQkACQhCQBJSAJAEgCSkASAJCQBIAkASUgCQBKSkIQkACQhCUlIAkASkpCEJAAkASAJSUhCEgCSAJCEJCQhCUlIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQkASAJAEkASAJAEpJ40pOexBOf+ESOHz/O273d23HixAkk8UCSuJ8kHuhpT3saT33qU7nmmmse/GIv9mKvzVVXXXXVVVf95yG46qqrrrrqqv9EL/ZiL/ZaAH/5l3+JJO4niQeSxP0kcfz4cT72Yz8WgEuXLvGUpzwFSUhCEpKQBIAkJCEJSUhCEpIAkIQkJCEJAElIQhKSAJCEJAAkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQBIAkASUhCEpKQhCQkIQlJSEISkpCEJCQhCUkASAJAEgCSkIQkJAEgCQBJSAJAEveTBIAkJAEgiftJAkASkgCQxP0kcT9JAEhCEgCSuJ8k7icJAEncTxL3k8Rzk8T9JHE/STw3SdxPEveTxL+VJP49JPGfxTb/EWzzf4Ek/iWSAJAEgCQAJAEgiRdEEgCSuJ8kACRxP0kASOJ+kgCQxP0kcT9JAEhCEgCSuJ8kACQhCQBJSAJAEpIAkASAJCQBIAlJAEhCEgCSAJCEJAAkIQkASQBIQhIAkgCQhCQAJAEgCUkASAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkJCEJSUhCEpKQBIAkACQBIAkASQBIAkASkpCEJCQhCQBJAEgCQBIAkpAEgCTuuOMOnvjEJ3LixAne7/3ejxMnTiCJF0QS95PE0572NABe53Ve57246qqrrrrqqv88BFddddVVV131n+h1Xud13hvgN3/zN3lBJPFAx48f523e5m0AuHTpEn//93+PJAAkIQlJSEISkpCEJCQBIAlJSEISAJKQhCQkIQlJSEISkpCEJCQBIAlJSEISAJKQhCQkASAJSUhCEgCSAJCEJCQhCUlIAkASAJIAkASAJAAkASAJAEkASEISkpAEgCQAJAEgCUkASAJAEpIAkIQkACQBIAlJAEhCEgCSuJ8kACQhCQBJSAJAEveTxP0kcT9JAEjifpK4nyTuJ4nnJon7SeJ+knhukrifJO4niftJ4n6S+LeQxP92tvmfSBL3k8QLI4kXRBIAkvjXkASAJAAk8dwkASCJ+0kCQBL3kwSAJO4nCQBJSAJAEveTBIAkJAEgiftJAkASkgCQhCQAJAEgCUkASEISAJKQhCQkASAJSQBIQhKSkASAJCQBIAkASUhCEpIAkIQkJCEJAEkASEISAJIAkASAJCQhCUkASAJAEgCSAJAEgCQkIQlJSEISkpCEJCQhCUlIAkASAJIAkASAJAAkIQlJSAJAEgDL5ZI77riD8+fPc+LECd7v/d6PEydOIIn7SeKBJHG/v/zLvwTgxV7sxV6bq6666qqrrvrPQ3DVVVddddVV/0le53Ve570Bnv70p3Px4kXuJ4n7SeKBJPE2b/M2POQhD+HSpUv8/d//PZKQhCQkASAJSUhCEgCSkIQkJAEgCUlIQhIAkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUlIQhIAkgCQBIAkJCEJSUhCEpKQhCQkIQkASQBIAkASAJKQBIAkACQBIAlJAEjifpIAkIQkACRxP0kASEISAJKQBIAk7ieJ+0nifpK4nyQAJCEJAEncTxL3k8T9JHE/STw3SdxPEveTxH8ESbwgknhhJPFfzTb/VWzzn0kS/xJJvCgk8S+RBIAkACQBIIkXRBIAkgCQxP0kASCJ+0kCQBL3kwSAJO4nCQBJSAJAEveTBIAkJAEgiftJAkASkgCQBIAkJAEgCUkASAJAEpIAkIQkACQBIAlJAEhCEpKQBIAkACQhCQBJAEhCEgCSAJCEJCQhCQBJAEgCQBKSkIQkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSkASAJAAkASAJgOVyyV//9V9z/vx5Tpw4wfu93/sBIIn7SeKBJAFw8eJFnva0p3HNNdc8+MVe7MVem6uuuuqqq676z0Fw1VVXXXXVVf9JXuzFXuy1AP7yL/+S+0nifpJ4IEm8z/u8Dw95yENYr9f8wz/8A5KQBIAkJCEJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkASAJSUhCEgCSkIQkJAEgCUlIQhIAkpCEJCQBIAkASQBIQhKSkIQkJAEgCQBJAEgCQBIAkpCEJCQBIAkASQBIQhKSkASAJAAkIQkASUgCQBL3kwSAJCQBIIn7SeJ+krifJO4niftJAkASkgCQxP0kcT9J3E8S95PE/SRxP0k8N0ncTxL3k8T9JHE/SdxPEi8KSfxvYJt/C9v8byaJ5yaJF0QSAJJ4UUgCQBIAkgCQxHOTBIAk7icJAEncTxIAkgCQhCQAJHE/SQBIQhIAkgCQhCQAJCEJAEkASEISAJIAkIQkACQhCQBJAEhCEgCSkASAJAAkIQkASQBIQhIAkgCQhCQAJAEgCUlIQhIAkgCQhCQkIQkASQBIAkASkpCEJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJSEISkgCQBIAkACQBIAlJLJdL/vqv/5qjoyNOnDjBJ3zCJwAgiftJ4oEkAfAXf/EXALzTO73TZ3HVVVddddVV/zkIrrrqqquuuuo/yeu8zuu8N8DTn/50ACTxgkjifd7nfXjIQx7Cer3mL/7iLwCQhCQkIQkASUhCEpIAkIQkJCEJAElIQhKSkIQkJCEJSUhCEpIAkIQkJCEJAElIQhKSAJCEJCQhCQBJSEISkpCEJCQhCQBJAEgCQBIAkgCQBIAkACQBIAkASUhCEpIAkASAJAAkIQkASdxPEgCSkASAJCQBIIn7SeJ+kgCQhCQAJCEJAElIAkASkgCQxP0kcT9J3E8S95PE/SRxP0ncTxL3k8R/NEncTxL/W9nmX8M2/5dI4rlJAkASLypJAEgCQBIviCQAJAEgiftJAkASAJKQBIAkACRxP0kASEISAJIAkIQkACRxP0kASEISAJIAkIQkACRxP0kASEISAJIAkIQkACQhCQBJAEhCEgCSAJCEJAAkASAJSUhCEgCSAJCEJCQhCQBJAEhCEpKQBIAkACQBIAlJSEISkpCEJCQhCUkASAJAEgCSAJCEJCQhCUlIAkASAJIAkASAJCQhCUkASGK5XPJHf/RHHB0dcfz4cd7//d8fAEncTxLP7WlPexoAZ86ceTBXXXXVVVdd9Z+D4Kqrrrrqqqv+E7zO67zOewP85V/+JRcvXkQSDySJ+0nifd7nfXjIQx7Cer3myU9+MpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIAkASkgCQBIAkJAEgCUlIQhIAkpCEJCQBIAlJSEISAJKQhCQkASAJAEkASEISkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBIAkgCQhCQAJAEgiftJAkASkgCQxP0kASAJSQBIQhIAkpAEgCTuJ4n7SeJ+krifJO4niftJ4n6SuJ8k7ieJ+0nifpK4nyTuJ4n7SeJ+krifJO4niftJ4t9CEg8kif8stvm3sM2/xDa2+d9GEv8RJAEgCQBJAEjihZEEgCQAJAEgiecmCQBJPDdJAEjifpIAkMT9JAEgiftJAkASkgCQBIAkJAEgiftJAkASkgCQBIAkJAEgCQBJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQBIAlJAEgCQBIAkpAEgCQAJAEgCUlIQhIAkgCQBIAkACQBIAkASUhCEpKQhCQkIQlJAEgCQBIAkgCQBIAkACQhCQBJAEgCQBLL5ZI/+qM/4ujoiIc85CG83du9Hc9NEveTxMWLF3na057GNddc8+DXeZ3XeW+uuuqqq6666j8ewVVXXXXVVVf9J3id13md9wJ4+tOfjiQeSBL3k8TbvM3b8JCHPASAJz/5yezv7wMgCUlIQhIAkpCEJCQBIAlJSEISAJKQhCQkASAJSUhCEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIAkASAJKQhCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASUhCEpIAkASAJCQBIAkASUgCQBIAkpAEgCQkASCJ+0nifpK4nyTuJ4n7SeJ+krifJO4niftJ4n6SuJ8k7ieJ+0nifpK4nyTuJ4n7SeJ+krifJF4UknhBJPG/kW1sYxvbANjGNrb5t7LNfzVJPD+SuJ8knpsknpskXlSSAJAEgCQAJPGCSAJAEgCSuJ8kACQBIIn7SQJAEgCSkASAJAAkIQkASQBIQhIAkrifJAAkIQkASQBIQhIAkgCQhCQAJAEgCUkASAJAEpIAkASAJCQBIAkASUgCQBIAkpCEJCQBIAkASUhCEpIAkASAJAAkIQlJSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAlJAEgCQBIAkgCQxGq14o/+6I8AeNmXfVne7u3eDkk8kCTuJ4m/+Iu/AOB1Xud13ourrrrqqquu+o9HcNVVV1111VX/CV7sxV7stQH+6q/+igeSxAO9zdu8DS/zMi8DwN///d+zv7+PJCQhCQBJSEISkgCQhCQkIQkASUhCEpIAkIQkJCEJAElIAkASkpCEJAAkIQlJSAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkACQBIAlJSAJAEgCSAJAEgCQAJAEgCUkASAJAEpIAkASAJCQBIIn7SeJ+kgCQhCQAJCEJAElIAkASkgCQhCQAJCGJ+0nifpK4nyTuJ4n7SeJ+krifJO4niftJ4n6S+NeSxP0k8YJI4v8i2/xPJon/TJJ4QSQBIAkASbwoJAEgCQBJAEjiuUkCQBIAkrifJAAkASCJ+0kCQBL3kwSAJO4nCQBJSAJAEgCSkASAJAAkIQkASQBIQhIAkgCQhCQAJAEgCUkASAJAEpIAkASAJCQBIAkASQBIQhKSkASAJAAkIQlJSAJAEgCSAJCEJCQhCUlIAkASAJIAkASAJAAkASAJAEkASAJAEgCSkIQkJAEgCQBJAEgCQBKSAFitVvzGb/wGAC/7si/L677u6yKJB5LE/Z7+9KcD8GIv9mKv/eIv/uKvzVVXXXXVVVf9xyK46qqrrrrqqv9gr/M6r/NeAH/5l3/JA0nigV73dV+Xl3mZlwHgH/7hH9jf30cSAJIAkIQkACQhCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQkIQlJAEhCEpKQBIAkJCEJSQBIQhKSkIQkJAEgCQBJSEISkpCEJCQhCUlIAkASkpCEJCQhCUlIAkASAJIAkIQkACQBIAlJAEjifpIAkIQkACQhCQBJ3E8S95PE/SRxP0ncTxL3k4QkACQhiftJ4n6SuJ8k7ieJ+0nifpJ4UUjifpK4nyReFJL4jySJ/69s8z+BJF4UkviXSAJAEgCSAJAEgCReEEkASAJAEs9NEgCSAJDE/SQBIIn7SQJAEgCSkASAJAAkIQkASQBIQhIAkgCQhCQAJAEgCUkASAJAEpIAkASAJCQBIAkASUgCQBIAkpCEJCQBIAkASQBIQhIAkgCQBIAkJCEJSQBIAkASAJIAkIQkJCEJSUhCEpKQhCQAJAEgCQBJSEISkpCEJAAkASAJAEkASAJAEpIAkATAarXij/7ojwB4vdd7PV7v9V4PSTw/Fy9e5GlPexoAj33sY1+Lq6666qqrrvqPRXDVVVddddVV/8He8R3f8bMBnv70p3M/STzQy77sy/I6r/M6APzDP/wDe3t7SEISkpCEJCQBIAlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJCQBIAlJSEISAJKQhCQkASAJSUhCEgCSAJAEgCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASQBIQhIAkgCQBIAkJAEgiftJAkASkgCQxP0kcT9JAEhCEveTxP0kcT9J3E8S95PE/SRxP0lI4n6SuJ8k7ieJ+0niBZHE/SRxP0ncTxIviCTuJ4kXRBIPJIkHksR/Ndv8T2Gbfwvb/HeRxHOTxAsiCQBJ/GtIAkASAJIAkASAJO4nCQBJAEgCQBL3kwSAJAAkIQkASQBI4n6SAJDE/SQBIAkASUgCQBIAkpAEgCQAJCEJAEkASEISAJIAkIQkACQBIAlJSEISAJIAkIQkJCEJAEkASEISkpAEgCQAJAEgCUlIQhIAkgCQBIAkACQBIAkASQBIQhKSkIQkJCEJAEkASAJAEgCSAJAEgCQkIQlJAEgCQBIAFy5c4G/+5m8AeN3XfV1e93VfF0ncTxL3+43f+A0AXvd1X/d9uOqqq6666qr/WARXXXXVVVdd9R/oxV7sxV77mmuueTDAX/3VXwEgiQd6yEMewtu8zdsA8A//8A/s7+8jCUkASAJAEpKQhCQAJCEJAElIQhKSAJCEJCQhCQBJSEISkgCQhCQAJCEJSUgCQBKSkIQkACQBIAlJSEISkpAEgCQAJAEgCQBJSEISkpAEgCQAJAEgCQBJAEhCEgCSAJAEgCQkASAJSQBIAkASkgCQhCQAJCEJAEncTxKSAJCEJAAkIYn7SeJ+krifJO4niQeSxP0kcT9J3E8SDySJ+0nifpK4nyReEEncTxIviCT+PSRx1X8OSbwoJPGiksQLIol/iSQAJAEgCQBJAEgCQBIviCQAJAEgiecmCQBJAEjifpIAkASAJCQBIAkASUgCQBIAkrifJAAkASAJSQBIAkASkgCQBIAkJAEgCQBJSEISkgCQBIAkJAEgCQBJAEhCEgCSAJAEgCQkASAJAEkASAJAEpKQhCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJKQBIAkACQBIAkASUjijjvu4G/+5m8AeL3Xez1e93VfF0ncTxIAFy9eBODMmTMPerEXe7HX5qqrrrrqqqv+4xBcddVVV1111X+g13md13kvgL/8y78EQBIP9JCHPIT3fd/3BeApT3kK+/v7AEgCQBKSkIQkACQhCUlIAkASkgCQhCQkIQkASUhCEpIAkIQkJCEJAElIAkASAJKQBIAkACQhCUlIAkASAJIAkIQkJCEJSUhCEpIAkASAJCQhCUlIQhIAkgCQBIAkJAEgCQBJ3E8SAJKQBIAk7ieJ+0nifpK4nyTuJ4n7SeJ+kpAEgCQkcT9J3E8S95OEJO4niftJ4gWRxP0kcT9JvCCSuJ8kXhBJ/E9jm3+Jbf672eZ/Ckk8P5K4nyReFJJ4QSQBIIl/C0kASAJAEgCSAJDE/SQBIAkASQBI4n6SAJAEgCTuJwkASQBIQhIAkgCQhCQAJAEgiftJAkASAJKQBIAkACQhCQBJAEgCQBKSAJAEgCQkASAJAEkASEISkpAEgCQAJCEJSUgCQBIAkgCQBIAkJCEJSQBIAkASAJIAkASAJAAkASAJAEkASAJAEgCSkIQkJAEgCQBJAEgCQBKSAJDEHXfcwZOe9CQAXvZlX5bXfd3XRRL3k8TFixf5i7/4CwBe53Ve57246qqrrrrqqv84BFddddVVV131H+jFXuzFXhvgr/7qr5DEAz3kIQ/hfd/3fQF4ylOewrlz5wCQhCQkIQkASUhCEpIAkIQkJCEJAElIAkASkpCEJAAkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQBIAlJSEISkpAEgCQAJAEgCQBJAEgCQBIAkgCQhCQkIQkASQBIQhIAkgCQhCQAJHE/SQBIQhIAkpAEgCQkASAJSQBIQhL3k8T9JHE/STyQJO4niftJ4oEkcT9JPJAk7ieJ+0niBZHE/STxgkjiRSWJB5LEVVfY5l9im/9NJPGCSOIFkQSAJAAkASAJAEkASAJAEgCSeEEkASAJAEk8N0kASAJAEveTBIAkACRxP0kASAJAEpIAkASAJCQBIAkASQBIQhIAkgCQhCQkIQkASQBIQhIAkgCQhCQkIQkASQBIAkASkgCQBIAkACQhCUlIAkASAJIAkASAJCQhCUlIQhIAkgCQBIAkACQBIAkASUhCEpKQhCQAJAEgCQBJAEgCQBKSAJAEgCSe/OQn86QnPYkTJ07wsi/7srzu674uDySJv/zLvwTgxV7sxV6bq6666qqrrvqPQ3DVVVddddVV/0Fe53Ve572vueaaBwM8/elP54Ee8pCH8L7v+74AnD17lnPnziEJSUgCQBKSkIQkACQhCUlIAkASkpCEJAAkIQkASUhCEpIAkIQkJCEJAElIQhKSAJCEJCQhCQBJAEhCEpKQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAElIAkASAJKQBIAk7icJAElIAkAS95PE/SRxP0ncTxL3k4Qk7ieJ+0nifpKQxP0kcT9JPJAk7ieJB5LE/SRxP0k8kCTuJ4kXRBIviCQeSBL/GpL472Sb/w62+d9OEi8KSbwgkviPIAkASQBIAkASAJK4nyQAJAEgCQBJAEhCEgCSAJAEgCQkASAJAEkASEISAJIAkIQkACQBIAkASUgCQBIAkgCQhCQAJAEgCUkASAJAEgCSkASAJAAkASAJSUhCEgCSAJAEgCQkIQlJAEgCQBIAkgCQBIAkJCEJSUhCEpKQhCQkIQlJSAJAEgCSAJAEgCQAJAEgCQBJSAJAEgCSAJDEU57yFJ70pCdx4sQJXvZlX5aHPvShPNDTn/50nva0p3HNNdc8+MVe7MVem6uuuuqqq676j0Fw1VVXXXXVVf9BXuzFXuy1AP7qr/4KSdzvIQ95CO/7vu8LwNmzZ3nqU5+KJAAkIQlJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCQBJSEISkgCQhCQkIQkASUhCEpIAkASAJCQhCUkASAJAEgCSkIQkJCEJSUhCEpKQhCQkIQlJSAJAEgCSAJAEgCQkASCJ+0kCQBKSAJDE/SQBIAlJAEhCEgCSkMT9JHE/SdxPEpK4nyTuJ4n7SUIS95PE/SQhiftJ4oEkcT9JvCCSeEEk8YJI4v8a2/xPZJsXxDYvCtv8V5DEc5PEc5MEgCReEEkASAJAEgCSAJAEgCQAJAEgCQBJAEjiuUkCQBIAkgCQBIAk7icJAEkASOJ+kgCQBIAk7icJAEkASEISAJIAkASAJCQBIAkASQBIQhIAkgCQhCQkIQkASQBIQhKSkASAJAAkASAJSQBIAkASAJIAkIQkJCEJAEkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQhCUlIAkASAJIAkIQkAJ7ylKfwpCc9iRMnTvD2b//2PPShD+WBnv70pwPwOq/zOu/FVVddddVVV/3HILjqqquuuuqq/yCv8zqv894Av/Vbv8X9HvKQh/C+7/u+AOzt7fHUpz4VSUhCEpIAkIQkJCEJAElIQhKSAJCEJCQhCQBJSEISkgCQhCQAJAEgCUkASEISkpAEgCQAJCEJSUgCQBIAkpCEJCQhCUkASAJAEgCSAJAEgCQAJAEgCUlIQhIAkgCQxP0kASAJSQBIAkASkgCQhCQAJHE/SdxPEveThCTuJ4n7SeJ+kpDE/SRxP0k8kCTuJ4kHksQDSeJ+knggSdxPEg8kiftJ4oEk8YJI4oEk8UCS+O9km/+JbPN/mSSemyReEEkASOI/gyQAJAEgCQBJAEjiuUkCQBIAkrifJAAkASAJAElIAkASAJIAkIQkACQBIAkASUgCQBIAkgCQhCQAJAEgCQBJSAJAEgCSAJCEJAAkASAJAElIQhKSAJAEgCQAJAEgCUlIQhIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJSQBIAkASAJIAkIQkACQB8JSnPIUnPelJHD9+nLd7u7fjoQ99KPf7i7/4CwBe7MVe7LW56qqrrrrqqv8YBFddddVVV131H+B1Xud13hvg6U9/OhcvXgTg+PHjvO/7vi8Ae3t7PP7xj0cSkgCQBIAkJAEgCQBJSAJAEpKQhCQAJCEJSUgCQBKSkIQkACQhCUlIAkASkgCQBIAkJCEJSQBIAkASkpCEJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJSAJAEgCSkASAJAAkIQkASdxPEveTxP0kcT9J3E8S95OEJAAkIYn7SeJ+kpDE/STxQJK4nyQeSBIPJIn7SeKBJHE/STyQJF4QSTyQJP49JPE/lW1s85/JNrZ5UdjmX8s2/1kkcT9J/EeQxAsiCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASAJJ4bpIAkASAJAAkcT9JAEgCQBIAkrifJAAkASAJAElIAkASAJIAkIQkACQBIAkASUgCQBIAkgCQhCQAJAEgCQBJSAJAEgCSAJAEgCQkIQlJAEgCQBIAkgCQhCQkIQlJSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBKSkIQkACQBIAkASQBIQhIAkgCQBMCdd97Jk5/8ZE6cOMHbvd3bcfLkSQB2d3d52tOexjXXXPPgF3uxF3ttrrrqqquuuurfj+Cqq6666qqr/gO82Iu92GsB/NVf/RUAx48f5+M+7uMA2Nvb4/GPfzwAkgCQhCQkIQkASUhCEpIAkIQkACQBIAlJAEgCQBKSAJCEJCQhCQBJSEISkgCQhCQkIQkASQBIQhKSkASAJAAkASAJAElIQhKSkIQkJCEJSQBIAkASAJIAkASAJCQBIAkASUgCQBL3kwSAJCQBIAlJAEhCEgCSkASAJCRxP0ncTxIPJIn7SeKBJHE/SUjifpJ4IEk8kCTuJ4kHksQLIokHksT/Nbb517DNfwbb/Eexzb+Vbf4jSeKFkcRzk8RzkwSAJP61JAEgCQBJAEjiXyIJAEkASAJAEgCSAJCEJAAkASAJAEkASEISAJIAkASAJO4nCQBJAEgCQBKSAJAEgCQAJCEJAEkASAJAEpIAkASAJAAkIQlJSAJAEgCSAJAEgCQkIQlJAEgCQBIAkgCQBIAkJCEJSUhCEgCSAJCEJCQhCUlIQhKSkIQkACQBIAkASQBIAkASkgCQBIAkACSxXC654447ePKTn8yJEyd4v/d7P06ePAnAX/7lXwLwTu/0Tp/FVVddddVVV/37EVx11VVXXXXVf4DXeZ3XeW+Apz/96Rw/fpyP+7iPA2Bvb4/HP/7xAEhCEpKQBIAkJCEJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkASAJSUhCEgCSkIQkJAEgCQBJSEISkgCQBIAkACQhCUlIQhKSAJAEgCQAJAEgCUlIQhIAkgCQBIAk7icJAEncTxIAkpAEgCTuJ4n7SeJ+krifJO4nCUncTxL3k4Qk7ieJ+0lCEveTxANJ4oEkcT9JSOJ+knggSTyQJF4QSTyQJB5IEg8kiQeSxANJ4l8iiecmif9utvmPYhvb/GvY5n8CSfxrSOKFkcS/hSQAJAEgCQBJvCgkASAJAEkASAJAEgCSAJAEgCSemyQAJAEgCQBJ3E8SAJIAkASAJCQBIAkASQBIAkASkgCQBIAkACQhCQBJAEgCQBKSkIQkACQBIAkASUhCEpIAkASAJAAkASAJSQBIAkASAJIAkASAJAAkASAJSUhCEpIAkASAJAAkASAJAEkASAJAEgCSAJCEJAAkASAJAEkASGK1WnHHHXdw/vx5Tpw4wfu93/tx8uRJnv70pwNw5syZB3PVVVddddVV/34EV1111VVXXfXv9Dqv8zrvDfBXf/VXAHzcx30cAHt7ezz+8Y9HEpKQBIAkJCEJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJAEhCEgCSAJCEJAAkASAJSUhCEgCSAJAEgCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASUgCQBIAkgCQhCQAJAEgCUkASOJ+krifJO4niftJ4n6SuJ8k7icJSdxPEveThCTuJ4kHksQDSeJ+kpDE/STxQJJ4IEk8kCQeSBL/lSTxn8E2/xLb/GvZxja2+bewjW3+tWzzf4EkXhSSeG6SAJDEv0QSAJIAkASAJAAkASAJAEkASAJAEgCSAJDEc5MEgCQAJAEgCQBJ3E8SAJIAkASAJAAkIQkASQBIAkASAJKQBIAkACQBIAlJAEgCQBIAkgCQhCQAJAEgCQBJAEhCEgCSAJAEgCQAJCEJSUgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASEISAJIAkASAJAAkIQmA1WrF3/7t33L+/HlOnDjB+7//+yOJpz3taVxzzTUPfp3XeZ335qqrrrrqqqv+fQiuuuqqq6666t/pdV7ndd4L4OLFi7zt274tAHt7ezz+8Y9HEgCSkIQkJAEgCQBJSAJAEgCSkASAJAAkIQkASUhCEpIAkIQkJCEJAElIQhKSAJCEJCQhCQBJAEgCQBKSkIQkACQBIAkASQBIAkASAJIAkASAJAAkASAJSQBIAkAS95MEgCTuJwkASUgCQBKSAJCEJAAkIQkASUjifpK4nyQeSBL3k8QDSeKBJHE/SUjifpJ4IEk8kCQeSBIPJIkHksQDSeKBJPFAknggSTyQJP4vs41tbPOC2MY2trHNfxbbPD+2+Z9KEs9NEs9NEi+IJAAkASCJ/0ySAJAEgCQAJAEgCQBJ3E8SAJIAkASAJAAkcT9JAEgCQBIAkgCQhCQAJAEgCQBJSAJAEgCSAJAEgCQkASAJAEkASAJAEpKQhCQAJAEgCQBJAEhCEpKQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASAJAEpIAkASAJAAkASAJSQBIAmC1WvG3f/u3nD9/nuPHj/N+7/d+PP3pTwfgdV7ndd6Lq6666qqrrvr3oRw/fpyrrrrqqquu+vf48A//8O/mmR7ykIewt7fH4x//eCQBIAlJAEgCQBKSkIQkACQhCUlIAkASkpCEJAAkIQkASQBIQhIAkgCQhCQAJAEgCUkASAJAEgCSkIQkJAEgCQBJAEgCQBIAkpCEJCQhCQBJAEgCQBIAkgCQhCQAJAEgCUkASAJAEpIAkMT9JHE/SdxPEveTxP0kIYn7SeJ+kpDE/SRxP0lI4n6SkMT9JPFAknggSTyQJB5IEg8kiQeSxANJ4oEk8UCSeG6SeCBJPJAknpsknpsknpsknh9JvCCSeFFI4n8y2/xHss3/BpJ4QSTxgkgCQBIAkgCQBIAkACQBIAkASQBIAkASAJIAkASAJAAkASAJAEkASOJ+kgCQBIAkACQBIAkASdxPEgCSAJAEgCQAJHE/SQBIAkASAJK4nyQAJAEgiftJAkASAJIAkASAJO4nCQBJAEgCQBIAkgCQBIAk7icJAEkASAJAEgCSAJAEgCQAJAEgCQBJSAJAEgCSAJAEgCQAJCEJAEkASAJgmiYuXLjA9vY2J0+e5KEPfSgA11xzzYMf97jH/c599913K1ddddVVV131b0Nw1VVXXXXVVf8Or/M6r/NePNNDHvIQ9vb2ePzjH48kJCEJSQBIQhKSkASAJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQBIAkJCEJSQBIQhKSkASAJAAkIQlJSAJAEgCSAJCEJCQhCUlIQhKSAJAEgCQkIQlJAEgCQBIAkgCQhCQAJAEgCUkASOJ+krifJAAkIQkASUjifpK4nyTuJwlJ3E8S95OEJO4niQeSxANJ4oEk8UCSeCBJPJAkHkgSDySJB5LEv5Yk/qexzYvCNv9T2eZfYpv/iSRxP0m8MJJ4UUjiuUkCQBIvKkkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkrifJAAkASAJAEkASAJAEveTBIAkACQBIAkASQBIQhIAkgCQBIAkACQhCQBJAEgCQBKSkIQkACQBIAkASQBIQhKSkASAJAAkASAJAEkASAJAEpKQhCQkIQkASQBIAkASAJKQhCQkIQlJSEISAJIAkASAJAAkASAJSQBIAkASAJIAWC6X/N3f/R3nz5/ngR772Me+FlddddVVV131b0dw1VVXXXXVVf8O7/iO7/jZPNN6veYJT3gCkpAEgCQkIQlJAEgCQBKSAJAEgCQkASAJAElIAkASkpCEJAAkIQlJSAJAEpKQhCQAJAEgCUlIQhIAkgCQBIAkJCEJSQBIAkASAJIAkASAJAAkASAJSQBIAkASAJK4nyQAJHE/SQBIQhIAkpAEgCTuJ4n7SUIS95PE/SRxP0lI4n6SeCBJPJAkHkgSDySJB5LEA0nigSTxQJL415LEA0niXyKJ/wq2+Y9gm/9pbPMvsc0LYpv/apL4l0jihZHEc5PEc5PECyIJAEkASAJAEv9ekviXSAJAEgCSAJAEgCQAJHE/SQBIAkASAJIAkASAJO4nCQBJAEgCQBIAkpAEgCQAJAEgCQBJSAJAEgCSAJAEgCQAJCEJSUgCQBIAkgCQBIAkACQBIAkASUhCEpKQhCQkIQlJAEgCQBIAkgCQBIAkACQBIAkASUgCQBIAkgCQBIAkJLFcLvm7v/s7lssl93vd133d9+Gqq6666qqr/u2oXHXVVVddddW/0Yu92Iu99jXXXPNgnuncuXPceOON3E8S95PE/STxQJK4nyTuJ4kHksT9JHE/STyQJO4niftJ4oEk8UCSuJ8kHkgSDySJB5LEA0niuUnigSTx/EjiuUni+ZHE8yOJF0QSL4wknpttACQBYJsHss39JGGbF0QS/xJJvDCS+JdI4l8iiReVJP41JPEfRRL/3WzzH8E2Lwrb/Ets84LY5gWxzfNjm+dmm+fHNs/NNs+PJJ6bJABs89xs80C2eSDbPJBtHsg2D2SbB7LNA9nmgWxzP9s8kG0eyDYPZJv72eaBbPNAtrmfbR7INvezzQPZ5oFs80C2uZ9tHsg2D2SbB7LNA9nmgWzzQLZ5INs8kG2em20eyDbPzTYXLlzgxhtvBODMmTMPerEXe7HX/od/+Iff5qqrrrrqqqv+9ahcddVVV1111b/R2bNnb/2t3/qt736d13md9wa48cYbuer/Ntv8S2xz1VVXgSSemySuuupf6x/+4R9+++zZs7dy1VVXXXXVVf82VK666qqrrrrq3+i+++679bd+67e+57777ruVq6666qqrrrrqP8U//MM//M599913K1ddddVVV131b4Me9KAHcdVVV1111VVXXXXVVVddddVVV1111VVX/Z9E5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwIt/m7e3hdvrQAAAABJRU5ErkJggg==) ```kcl // Loft a square, a circle, and another circle with options. @@ -119,6 +119,6 @@ loft( ``` -![Rendered example of loft 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAIP30lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVdd9b/eNddc82Ce6cyZMw/mma655poH8yK47777buUBzp49e+t99913K1ddddVVV1111VVX/W9H5aqrrrrqqquuuuqq/7GuueaaBwO82Iu92GufOXPmQQDXXHPNg6+55poHnzlz5sHXXHPNg3ku9913363XXHPNg/kPct99990KcPbs2Vvvu+++WwH+4R/+4XcA7rvvvlv/4R/+4be56qqrrrrqqquuuup/KvSgBz2Iq6666qqrrrrqqqv+e11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1+RdcvHgRgIsXLwJw8eJF7nfx4kX+NU6cOMH9Tpw4AcCJEyc4ceIE/5L77rvv1rNnz95633333foP//APv3Pffffd+g//8A+/zVVXXXXVVVddddVV/93Qgx70IK666qqrrrrqqquu+q91zTXXPPi1X/u13wvgnd7pnT6b5+PixYsAPO1pT+PixYsAPP3pTwfg4sWLXLx4kf9KJ06cAOChD30oAA95yEMAOHHiBA996EN5fu67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4be56qqrrrrqqquuuuq/EnrQgx7EVVddddVVV1111VX/ua655poHv/Zrv/Z7XXPNNQ9+ndd5nffmuVy8eJGnP/3pXLx4kac97Wk8/elP5z+bbf4jnThxghMnTnDixAke8pCHcOLECR760IfyQPfdd9+t//AP//Db//AP//A7v/Vbv/XdXHXVVVddddVVV131nw096EEP4qqrrrrqqquuuuqq/xzv+I7v+Fkv/uIv/tov9mIv9to8wMWLF/nLv/xLnva0p/H0pz+d/6tOnDjB8ePHOXHiBC/7si/LQx/6UO5333333Xr27Nlbf+u3fut7fuu3fuu7ueqqq6666qqrrrrqPwN60IMexFVXXXXVVVddddVV/3GuueaaB7/Yi73Ya3/4h3/4d/FMFy9e5C//8i952tOextOf/nT+vzpx4gTHjx/n5V7u5XjZl31Z7nfffffd+lu/9Vvf/du//dvfc999993KVVddddVVV1111VX/UdCDHvQgrrrqqquuuuqqq67697vmmmse/GIv9mKv/eEf/uHfxTM97WlP4y//8i/5y7/8S656TidOnOAhD3kID33oQ3nZl31ZAO67775bf+u3fuu7f/RHf/RzuOqqq6666qqrrrrqPwJ60IMexFVXXXXVVVddddVV/z4v9mIv9tqf+7mf+1s802/8xm/wV3/1V1y8eJH/DWzz3+nEiRO87Mu+LK/3eq8HwH333Xfr13/917/PP/zDP/w2V1111VVXXXXVVVf9e1COHz/OVVddddVVV1111VX/di/2Yi/22p/7uZ/7WwAXL17kG77hG3j84x/ParXifwtJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhidVqxdOf/nT+6q/+iuuvv56bbrrp+Iu92Iu99ubm5vF/+Id/+B2uuuqqq6666qqrrvq3ohw/fpyrrrrqqquuuuqqq/5tXuzFXuy1P/dzP/e3AH7jN36DH/iBH2C1WnHVv81qteLpT386y+WSl3iJlzh+zTXXPPjWW2/9m7Nnz97KVVddddVVV1111VX/FpTjx49z1VVXXXXVVVddddW/zUd8xEd81zXXXPPg3/iN3+A3f/M3uerfb7Va8fSnPx2Aa6+9dndzc/P4n/7pn/4MV1111VVXXXXVVVf9W1C56qqrrrrqqquuuurf7MVe7MVeG+C3fuu3kMT/Zrb5n+Sv/uqveL3Xe70HA699zTXXPPi+++67lauuuuqqq6666qqr/rWoXHXVVVddddVVV131b/JiL/Zir33ffffdenh4+GD+D5DE/yS7u7tcvHiRa6655sFcddVVV1111VVXXfVvRXDVVVddddVVV1111b/J2bNnb93d3eUhD3kID3nIQ7jqP9bx48c5ceIEAPfdd9+tXHXVVVddddVVV131b0Fw1VVXXXXVVVddddW/yX333Xfrn/7pnz4Y4G3f9m05fvw4V/3HOH78OG/3dm8HwF/+5V9y1VVXXXXVVVddddW/GcFVV1111VVXXXXVVf8mXde991Of+lQuXrzIiRMneP/3f38e+tCHIglJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxP8Ux48f5/3e7/14yEMewsWLF/mBH/gBSinvzVVXXXXVVVddddVV/xaU48ePc9VVV1111VVXXXXVv96xY8e+yvaDH//4x/PiL/7inDhxgoc85CHM53N2d3dZrVb8byIJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkceLECV71VV+Vd3u3d2OxWLC7u8tXfMVXkJnYPr5arb6Hq6666qqrrrrqqqv+tdCDHvQgrrrqqquuuuqqq67617vhhhvc9z21Vk6fPs3LvdzL8bqv+7oA7O7u8vSnP52/+qu/4ulPfzpXvWDHjx/nZV7mZXjd131d7ve7v/u7/NZv/RbTNDGOI/v7+7fec889D+Gqq6666qqrrrrqqn8t9KAHPYirrrrqqquuuuqqq/51aq3vfd11131X3/eUUiilUErh5MmTvM7rvA4v9VIvxf12d3f5y7/8S2699Vae/vSncxUcP36cl3mZl+FlX/ZlOX78OPf7+7//e37v936Pixcv0lpjmibGcWS9XnPbbbe9Tmb+NlddddVVV1111VVX/WugBz3oQVx11VVXXXXVVVdd9a+zvb39XSdOnHjvrusopVBKoZRCRBARnDhxgpd6qZfiNV7jNbh06RLHjh0DYHd3l6c//en81V/9Fbfeeiv/E9jmP9vx48c5ceIED37wg3nZl31Zjh8/zv329vb4h3/4B/7+7/+e3d1dMpPWGpnJNE1M08R6vebChQu/vbu7+zpcddVVV1111VVXXfWvgR70oAdx1VVXXXXVVVddddW/zg033OC+76m1UkqhlEJEEBFEBBGBJE6cOMGDHvQgbrnlFl78xV+cB9rd3QXg6U9/OrfeeisXL17k1ltv5f+C48eP8zIv8zIAPPjBD+YhD3kID7S/v8/jH/949vb2+Id/+Adsk5lkJplJa43MZJompmliHEf29/dvveeeex7CVVddddVVV1111VX/GuhBD3oQV1111VVXXXXVVVe96Eop73399dd/V9d11FoppVBKISKICCICSUQEkpBERPDiL/7ivMmbvAl7e3vs7e1x00038dx2d3cBePrTnw7ArbfeysWLF9nd3WV3d5f/SY4fP87x48c5ceIEx48f5/jx4xw/fpyHPOQhPD/7+/vs7+9zww038Gd/9mf86Z/+KZmJbTKTzMQ2rTUyk9YarTVaa4zjyGq14o477nid1tpvc9VVV1111VVXXXXVi4rKVVddddVVV1111VX/KovF4rUigohAEpKQhCQkASCJ+0kC4Oabbwbgj/7oj3jc4x7H8ePH2dnZ4dixY9x0003s7Oxwww03APAyL/MyALzMy7wM99vd3QXg4sWL7O7uArC7u8vu7i4AFy9e5H67u7vcb3d3lxfm+PHjPNDx48cBOHHiBMePH+d+x48f5/jx45w4cYLjx4/zghwcHABw9913s7+/z913382dd96JbV7u5V6OG264gftJwjaSkIRtJCEJSUQEmUlEUEphe3v7s3Z3d3+bq6666qqrrrrqqqteVFSuuuqqq6666qqrrvpX2dnZee+IQBKSkMQDSQJAEpJ4Qfb29tjf3+fuu+/miU98IhHBsWPHiAhuuOEGtre32dnZYWtri62tLY4fPw7A8ePH+Z/g8PAQgPvuu4/9/X0ODg7Y39/n7rvvxja2sY1t7nfXXXcBcOONNyIJ20jCNpKQhCQkIQkASUiilMJ8Pn8wV1111VVXXXXVVVf9a1C56qqrrrrqqquuuupFVkp5b0lIQhKSkIQkJCEJAEncTxKSuOWWWwC4/fbbeUH29/eJCJ785CcTEUQEpRRKKRw7doxSCjs7O2xvb1NKoes6Tpw4QUQwn8+JCCKCWiuSeFHZxja2GceRzGS9XnN0dERrjdYah4eH3HfffbTW2N/fp7VGZpKZZCaZiW2em23ut7+/D8D29jYAkrCNJGzzQJKQhCQigohgNps9WNJr2/5trrrqqquuuuqqq656UVC56qqrrrrqqquuuupFtlgsXquUQkQgCUlIQhKSAJDE/SRxv52dHQD29vaQxL/W4eEhtVbGcWRvb4++7+n7nt3dXebzOfP5nMViwXw+Zz6fM5/Pmc1m9H1PrZVSChGBbWzTWmMcR4ZhYLVasVqtWK1WLJdLlsslq9WK9XrNMAwMw8A4jkzTxDRNPJBt/j0kYRtJSEISkpCEJCQhCUmUUjh27Nhn7e7u/jZXXXXVVVddddVVV70oCK666qqrrrrqqquuepHt7Oy8d0QgCUlI4oEkASAJSfxb2MY2L4htXhDb/HvY5rnZ5n62eSDbPJBtHsg2D7S/v8/+/j7b29vs7OxwP0ncTxKSkIQkJCGJiCAimM/nD+aqq6666qqrrrrqqhcVwVVXXXXVVVddddVVL5KIeG9JSEISkpCEJCQhCQBJPJAkXvzFXxyA22+/nf8otrmfbV5UknhhbPPcbPNAtnkg27yo9vf3Adje3kYS95OEJB5IEpKQRERQSmE2mz04Il6bq6666qqrrrrqqqteFARXXXXVVVddddVVV71INjY2XquUQkQgCUlIQhL3k8T9JCGJB7p06RIvjG1eENvYBsA2z802ALb5j2Kb+9nmP8L+/j4AOzs7AEhCEveThCQkIQlJSEISkiilsLOz81lcddVVV1111VVXXfWiILjqqquuuuqqq6666kWys7Pz3hGBJCQhiftJQhIAkpDEAx07dgyAvb09/iPZxjb/0Wzzgtjm32Nvbw+A7e1tJHE/SUgCQBKSkIQkJCGJiCAimM1mD+aqq6666qqrrrrqqhcFwVVXXXXVVVddddVV/6KIeG9JSEISkpCEJCQhCQBJPJAkJLGzswPApUuXeFHZ5l/LNv9atnl+bPOf4a677gLghhtuAEASDySJB5KEJCQhiYhgPp8/OCJem6uuuuqqq6666qqr/iUEV1111VVXXXXVVVf9izY2Nl6rlEJEIAlJSEIS95PE/SQhifvdfPPNANx+++38V7CNbf41bGOb52ab58c2L4xtXpjt7W3uJwkASQBIQhKSkIQkJBERRASlFLa3tz+Lq6666qqrrrrqqqv+JQRXXXXVVVddddVVV/2LdnZ23jsikIQkJHE/SUjifpJ4bjs7O/xHs839bPMfxTb/mfb397mfJO4nCQBJ3E8SAJKQhCQigohgPp8/mKuuuuqqq6666qqr/iUEV1111VVXXXXVVVe9UBHx3pKQhCQkIQlJSEIS95PE/SQhCUncb29vj38L29zPNs+PbV4YSfxPsL+/z/7+Ptvb22xvbyMJSQBIAkASkgCQhCQkIQlJRATz+fzBEfHaXHXVVVddddVVV131whBcddVVV1111VVXXfVCbWxsvFYphYhAEpIAkMT9JCEJAElI4n433XQTALfffjv/FrZ5brYBsI1tXhDb/HvY5j/D3t4eANvb29xPEgCSAJCEJCQhCUlIIiKICEopbG9vfxZXXXXVVVddddVVV70wBFddddVVV1111VVXvVA7OzvvHRFIQhKSkASAJB5IEs/t2LFjAFy6dIn/Crb597LNA9kGwDb/Efb39wHY2dlBEveTBIAknpskJCGJiCAimM/nD+aqq6666qqrrrrqqheG4KqrrrrqqquuuuqqFygi3lsSkpCEJCQhCUkASAJAEg8kCUncfPPNAFy6dIn/TWzzn2Vvbw+Ara0tACRxP0kASEISkpCEJCQh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kEREIAlJSEISkpCEJCQhCQBJSEISkgCQhCQAJCEJAEkASEISAJIAkMTLvuzLcs011/BHf/RH3HHHHQBIAkASAJIAkASAJAAkASAJAEkASEISAJKQhCQAJCEJSUhCEpKQhCQkERFIIiKQREQgiYggIogIIoKIQBIRgSQigoggIogISilEBKUUIoJSCqUUSimUUiilEBGUUiilUEohIogIIoKIICKQhCQkIQlJPD+2AbCNbWxjG9tkJplJZpKZZCa2sY1tbJOZZCa2sU1mYhvbANjm+bGNbQBs80C2eW6SeG6SuJ8knpsknpsknpskACTxQOv1mtlsxk033cTOzg6Pe9zj+LeSxHOTxAPZ5oFs89xsA2Ab29zPNq01IgKA22+/nb/6q7/i6OiIBz3oQcdf+7Vf+61f93Vf9302NjaO/cM//MPvcNVVV1111VVX/X9BOX78OFddddVVV1111f9t11xzzYPf7M3e7KM+93M/97df/MVf/LVXq9XxX//1X+cbvuEbeOITn4htbGOb1hq1VkoplFKICCKCiEASEYEkIgJJSEISkpCEJCQhCUlIQhKSkASAJCQBIAlJAEhCEgCSkASAJAAkIQmAt3qrtwLgV3/1V1mv10jifpIAkASAJAAkASAJAElIAkASAJKQhCQAJCEJSUgCQBKSkEREIAlJSCIikEREIImIICKQhCQigoggIogIIoKIICKICCKCiKCUQkRQSqGUQimFiCAiiAgigoggIogIIoJSChGBJCICSUhCEpKQxPNjm/vZxja2sU1mYhvb2MY2trGNbWxjG9vYJjOxjW1sYxsA29jGNraxjW0AbANgm38NSdxPEveTxHOTxHOTBIAknpsk7re/v89Lv/RLA3D27Fn29vZ4YSTxopDEC2Kb+9nGNvezzf1sA2Cb+03TREQAsFwueeITn8hf/dVfsVwu2dzcPP5ar/Var/06r/M67725uXn87Nmzzzg8PNzlqquuuuqqq676v4zKVVddddVVV131f9Y111zz4Hd8x3f8rNd5ndd5b4Dz58/zB3/wB/zcz/0ctgGwjW1sM00TtVYiAklIQhKSkIQkJCEJAElIQhKSkIQkJCEJSTw3SdxPEveTxP0k8dwkcb83fuM3BuBxj3sce3t7PJAkACQBIAkASQBIAkAS95MEgCQeSBLPTRKSkIQkHkgSAJIAkMT9JCGJ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2zyQbR7INvezzQPZ5oFscz/bPJBt7mebB7LNA9nmgWxzP9s8kG0eyDYPZJsHss0D2eaBbPNAtnkg2zw32zyQbZ6bbS5cuMCNN94IwJkzZx70Yi/2Yq/9D//wD7/NVVddddVVV/3rUbnqqquuuuqqf6OzZ8/e+lu/9Vvf/Tqv8zrvDXDjjTdy1f9ttvmX2Oaqq64CSTw3SVx11b/WP/zDP/z22bNnb+Wqq6666qqr/m2oXHXVVVddddW/0X333Xfrb/3Wb33PfffddytXXXXVVVddddV/in/4h3/4nfvuu+9WrrrqqquuuurfBj3oQQ/iqquuuuqqq6666qqrrrrqqquuuuqqq676P4nKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4p/BMakffxqrmkjAAAAAElFTkSuQmCC) +![Rendered example of loft 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAIP3UlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVdd9b/eNddc82Ce6cyZMw/mma655poH8yK47777buUBzp49e+t99913K1ddddVVV1111VVX/W9H5aqrrrrqqquuuuqq/7GuueaaBwO82Iu92GufOXPmQQDXXHPNg6+55poHnzlz5sHXXHPNg3ku9913363XXHPNg/kPct99990KcPbs2Vvvu+++WwH+4R/+4XcA7rvvvlv/4R/+4be56qqrrrrqqquuuup/KvSgBz2Iq6666qqrrrrqqqv+e11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1+RdcvHgRgIsXLwJw8eJFAC5evMjzs7u7y/2OHz/OA504cYL7nThxAoATJ04AcOLECV6Y++6779azZ8/eet999936D//wD79z33333foP//APv81VV1111VVXXXXVVf/d0IMe9CCuuuqqq6666qqrrvqvdc011zz4tV/7td8L4J3e6Z0+m+fj4sWLADztaU/j4sWLADz96U8H4GlPexr/1U6cOAHAiRMnOHHiBMePH+fEiROcOHGChz70oTw/9913363/8A//8Nv/8A//8Dv33Xffrf/wD//w21x11VVXXXXVVVdd9V8JPehBD+Kqq6666qqrrrrqqv9c11xzzYNf+7Vf+72uueaaB7/O67zOe/NcLl68yF/+5V8C8LSnPY2nP/3p/GezzX+kEydOcOLECU6cOMFDHvIQTpw4wUMf+lAe6L777rv1H/7hH377H/7hH37nt37rt76bq6666qqrrrrqqqv+s6EHPehBXHXVVVddddVVV131n+Md3/EdP+vFX/zFX/vFXuzFXptnunjxIhcvXuTpT386T3va03j605/O/1UnTpzg+PHjnDhxgpd92ZfloQ99KPe77777bj179uytv/Vbv/U9v/Vbv/XdXHXVVVddddVVV131nwE96EEP4qqrrrrqqquuuuqq/zjXXHPNg1/sxV7stT/8wz/8u3imixcv8pd/+Zc87WlP4+lPfzr/X504cYLjx4/zci/3cjzkIQ/hxIkTANx33323/tZv/dZ3//Zv//b33Hfffbdy1VVXXXXVVVddddV/FPSgBz2Iq6666qqrrrrqqqv+/a655poHv9iLvdhrf/iHf/h38Ux/+Zd/yV/8xV/w9Kc/naue04kTJzh+/Dgv93Ivx8u+7MsCcN999936W7/1W9/9oz/6o5/DVVddddVVV1111VX/EdCDHvQgrrrqqquuuuqqq67693mxF3ux1/7cz/3c3+KZfuM3foPf/M3f5H8L2/x3OnHiBC/7si/L673e6wFw33333fr1X//17/MP//APv81VV1111VVXXXXVVf8elOPHj3PVVVddddVVV1111b/di73Yi732537u5/4WwMWLF/mGb/gGHv/4x/O/iSQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpDEarXi6U9/On/1V3/F9ddfz0033XT8xV7sxV57c3Pz+D/8wz/8DlddddVVV1111VVX/VtRjh8/zlVXXXXVVVddddVV/zYv9mIv9tqf+7mf+1sAv/Ebv8EP/MAPsFqtuOrfZrVa8fSnP53lcslLvMRLHL/mmmsefOutt/7N2bNnb+Wqq6666qqrrrrqqn8LyvHjx7nqqquuuuqqq6666t/mIz7iI77rmmuuefBv/MZv8Ju/+Ztc9e+3Wq14+tOfDsC11167u7m5efxP//RPf4arrrrqqquuuuqqq/4tqFx11VVXXXXVVVdd9W/2Yi/2Yq8N8Fu/9VtI4n8z2/xP8ld/9Ve83uu93oOB177mmmsefN99993KVVddddVVV1111VX/WlSuuuqqq6666qqrrvo3ebEXe7HXvu+++249PDx8MP8HSOJ/kt3dXS5evMg111zzYK666qqrrrrqqquu+rciuOqqq6666qqrrrrq3+Ts2bO37u7u8pCHPISHPOQhXPUf6/jx45w4cQKA++6771auuuqqq6666qqrrvq3ILjqqquuuuqqq6666t/kvvvuu/VP//RPHwzwtm/7thw/fpyr/mMcP36ct3u7twPgL//yL7nqqquuuuqqq6666t+M4Kqrrrrqqquuuuqqf5Ou6977qU99KhcvXuTEiRO8//u/Pw996EORhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUjif4rjx4/zfu/3fjzkIQ/h4sWL/MAP/ACllPfmqquuuuqqq6666qp/C8rx48e56qqrrrrqqquuuupf79ixY19l+8GPf/zjefEXf3FOnDjBQx7yEObzObu7u6xWK/43kYQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpI4ceIEr/qqr8q7vdu7sVgs2N3d5Su+4ivITGwfX61W38NVV1111VVXXXXVVf9a6EEPehBXXXXVVVddddVVV/3r3XDDDe77nlorp0+f5uVe7uV43dd9XQB2d3d5+tOfzl/91V/x9Kc/natesOPHj/MyL/MyvO7rvi73+93f/V1+67d+i2maGMeR/f39W++5556HcNVVV1111VVXXXXVvxZ60IMexFVXXXXVVVddddVV/zq11ve+7rrrvqvve0oplFIopXDy5Ele53Veh5d6qZfifru7u/zlX/4lt956K09/+tO5Co4fP87LvMzL8LIv+7IcP36c+/393/89v/d7v8fFixdprTFNE+M4sl6vue22214nM3+bq6666qqrrrrqqqv+NdCDHvQgrrrqqquuuuqqq67619ne3v6uEydOvHfXdZRSKKVQSiEiiAhOnDjBS73US/Ear/EaXLp0iWPHjgGwu7vL05/+dP7qr/6KW2+9lf8JbPOf7fjx45w4cYIHP/jBvOzLvizHjx/nfnt7e/zDP/wDf//3f8/u7i6ZSWuNzGSaJqZpYr1ec+HChd/e3d19Ha666qqrrrrqqquu+tdAD3rQg7jqqquuuuqqq6666l/nhhtucN/31FoppVBKISKICCKCiEASJ06c4EEPehC33HILL/7iL84D7e7uAvD0pz+dW2+9lYsXL3Lrrbfyf8Hx48d5mZd5GQAe/OAH85CHPIQH2t/f5/GPfzx7e3v8wz/8A7bJTDKTzKS1RmYyTRPTNDGOI/v7+7fec889D+Gqq6666qqrrrrqqn8N9KAHPYirrrrqqquuuuqqq150pZT3vv7667+r6zpqrZRSKKUQEUQEEYEkIgJJSCIiePEXf3He5E3ehL29Pfb29rjpppt4bru7uwA8/elPB+DWW2/l4sWL7O7usru7y/8kx48f5/jx45w4cYLjx49z/Phxjh8/zkMe8hCen/39ffb397nhhhv4sz/7M/70T/+UzMQ2mUlmYpvWGplJa43WGq01xnFktVpxxx13vE5r7be56qqrrrrqqquuuupFReWqq6666qqrrrrqqn+VxWLxWhFBRCAJSUhCEpIAkMT9JAFw8803A/BHf/RHPO5x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yDYPZJv72eaBbPNAtrmfbR7INvezzQPZ5oFs80C2uZ9tHsg2D2SbB7LNA9nmgWzzQLZ5INs8kG2em20eyDbPzTYXLlzgxhtvBODMmTMPerEXe7HX/od/+Iff5qqrrrrqqqv+9ahcddVVV1111b/R2bNnb/2t3/qt736d13md9wa48cYbuer/Ntv8S2xz1VVXgSSemySuuupf6x/+4R9+++zZs7dy1VVXXXXVVf82VK666qqrrrrq3+i+++679bd+67e+57777ruVq6666qqrrrrqP8U//MM//M599913K1ddddVVV131b4Me9KAHcdVVV1111VVXXXXVVVddddVVV1111VVX/Z9E5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwIt/m7e3hdvrQAAAABJRU5ErkJggg==) diff --git a/docs/kcl-std/functions/std-sketch-sweep.md b/docs/kcl-std/functions/std-sketch-sweep.md index 53044a937..c04a271b6 100644 --- a/docs/kcl-std/functions/std-sketch-sweep.md +++ b/docs/kcl-std/functions/std-sketch-sweep.md @@ -118,7 +118,7 @@ sweep([rectangleSketch, circleSketch], path = sweepPath) ``` -![Rendered example of sweep 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFhP0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqr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Jq01Wmu01shMMpPMJDPJTDIT29jm30oStrmfJO4nifvVWh/EVVddddVV/+FsYxsA29zPNgC2AbDN/WwDYJv72QbANgC2uZ9tAGxzP9sA2OZ+tgGwzf1sA2Cb+9nmfrYBsM39bHM/29zPNgC2uZ9t7meb+9nmfra5n23uZ5v72eZ+trnqqquuuur/BSpXXXXVVVdd9ULY5oFscz/b/GvZ5n62sY1tbGObzCQzyUwyk8yktUZrjdYarTUAIgIA27TWaK2RmbTWyEwyk8zENraxDYBtbPOikIRtXlSSiAiuuuqqq676t7ONJJ6bbWxjm/vZBsA297MNgG3uZxsA2wDY5n62AbDN/WwDYJv72QbANvezzf1sA2Cb+9nmfra5n20AbHM/29zPNvezzf1sA2Cb+9nmfra5n23uZ5sHss39bHPVVVddddX/eVSuuuqqq6666l9gG9vczzYPZJt/LdsA2MY2trGNbWyTmbTWaK3RWqO1RmuNaZoAsA1AZtJao7VGa43MpLVGa43MJDOxjW1sYxsA29jmP5okrrrqqquuesGuueaaB1+8eJF/LdtkJvezDYBt7mcbANvczzYAtrmfbQBscz/bANjmfrYBsM39bHM/2wDY5n62uZ9t7mcbANvczzb3s839bHM/29zPNvezzf1scz/b3M8297PN/WxzP9vY5qqrrrrqqv/TqFx11VVXXXXVCxERt9oGwDYviG1scz/b2MY2trGNbQBsA2AbANvYJjPJTDKTzCQzaa3RWmOaJkopSAIgIgDITFprTNPENE201mitkZlkJplJZmIb2wDY5l9DErb5l0jiqquuuuqq/xyZiW1scz/bANjmfrYBsM39bHM/2wDY5n62AbDN/WxzP9sA2OZ+trmfbe5nm/vZBsA297PN/WxzP9vczzb3s839bHM/29zPNvezzf1s80C2uZ9t7jefzwG47777buWqq6666qr/i6hcddVVV1111b/ANrYBsA2AbWxjmweyjW0k8fzYBsA2trENgG1sY5vMJDNprdFaY5omaq1M04QkACICgMyktUZrjdYarTUyk8wkM7GNbWxjG9u8MJKwzb+WJAD6vn8wV1111VVX/Yc5fvw4ANM0kZkA2OZ+tgGwzf1scz/bANjmfra5n20AbHM/29zPNgC2uZ9t7meb+9nmfra5n23uZ5v72eZ+trmfbe5nm/vZ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rrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V/GPvfK9PmWioJMAAAAASUVORK5CYII=) +![Rendered example of sweep 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFhJ0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqr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SQDuu+8+rnr+bPOvcd111wHwD//wD7/NVVddddVVVwHBVVddddVVV/3Hu9U2trGNbV5UtvmX2OZfwzb3s83zY5v72cY2tnlukogIIoKIICKQhCQkIYnnJon7SWKxWDyYq6666qr/o6655poHX7hwgRfENlf959ra2gLgvvvuu5WrrrrqqquuAoKrrrrqqquu+k+QmdgGwDa2sY1t7mcb2wDY5n62eW62eSDb/EtsY5vnZpv72eZ+trGNbWwDYJv7SUISkogIIoKIICKQhCQAJCEJSUgCQBKSALDNVVddddX/Rddcc82D+Vc6ceIEAIeHh/xPZpsXhW1eFLb5j2abra0tAO67775bueqqq6666qorCK666qqrrrrqP1hE3NpauzUzsc1zs41tXhjb2MY297PNA9nGNs/NNrZ5UdnGNraxDYBtbGOb+0lCEhFBRBARRAQRQUQgCUlIQhL3k8T9JDGbzR7MVVddddX/QWfOnHkwwIULF/iX2OZfSxL/39jmX+O6664D4B/+4R9+m6uuuuqqq666guCqq6666qqr/hO01m61jW1sYxsA2zw32wDY5vmxzf1s89xsYxvb2OZFYRvbPD+2sY1tAGxzP0lIQhIRQUQQEUgiIpCEJAAkIQkASUgCICIopTyYq6666qr/Y6655poH86/wsIc9DID77ruPq/59bHPVVVddddVVLwDBVVddddVVV/0naK3dahvb3M82ALa5n20eyDbPj23uZ5t/LdvYxjYPZBvb2MY2trGNbWxjm/tJQhKSiAgigohAEhGBJCQBIInnRxIAtdYHc9VVV131f9CFCxd4UZ04cQKAw8NDrvqPcf311wPwD//wD7/DVVddddVVV11BcNVVV1111VX/CaZpujUzsY1tbANgGwDb2OZ+trmfbf4ltnlR2MY2D2SbF8Q2tgGwjW1scz9JRAQRQUQQEUQEkpCEJCQhCUlIQhIAkgCQRERw1VVXXfV/0YULF7jqqquuuuqqq/5HIbjqqquuuuqq/xy/Yxvb2AbANs+PbQBscz/b2OaBbPNAtrHNC2KbF8Y2ALaxjW1sYxvb2Oa5SUISEUFEEBFEBBGBJCICSTw3SQBIAqDrugdz1VVXXfV/zJkzZx50/vx5XlQnT54E4PDwkBeVJF4Ukvjfzjb/Wtdddx0A//AP//DbXHXVVVddddUVVK666qqrrrrq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JAFgG0nYBkAStpGEbSRhm/udPXv2Vq666qqrrrrqPweVq6666qqrrrrqqquuuuqqf6N/+Id/+J3Xf/3X54EiAtvcTxK2AZCEbQAkYZsXRBK2sY1tbGObzOQ/im3uJ4nnZhsASdzPNgCSALCNJABsIwkA20gCwDaSsI0kbCOJxWIBwH333XcrV1111VVXXfWfg8pVV1111VVXXXXVVVddddW/0dmzZ289deoU95MEgCRsIwnbAEjCNgCSsM1zk4RtbGOb5ycisE1m8h/JNgCSeG62AZDE/WwjCQDbAEjCNpIAsI0kAGwjCdtI4vjx4wD8wz/8w29z1VVXXXXVVf95qFx11VVXXXXVVVddddVVV/0b3Xfffbfed999t15zzTUPBpDE8yMJ2wBIwjbPTRK2eVFFBJnJfzTbAEjiudlGEvezjSTuZxtJ2AZAEraRBIBtJGGbxWIBwH333XcrV1111VVXXfWfh8pVV1111VVXXXXVVVddddW/w9mzZ2+95pprHgwgCUnYRhK2eSBJ2OaBJGEb2/xrRQSZyX8G2wBI4oFsAyAJANsASALANpIAsI0kbAMgCdtIYj6fA3DffffdylVXXXXVVVf956Fy1VVXXXXVVVddddVVV1317/D3f//3v/1iL/Zirw0QEQDY5gWxzXOzzQPZ5oFs80C2eSDb3M82D2SbB7LNc7PN/WzzQLZ5brZ5brZ5fmwjCds80Hw+B+Ds2bPP4Kqrrrrqqqv+81C56qqrrrrqqquuuuqqq676d/jt3/7t7zl79uwzPvzDP/y7eCZJvCCSuOqKH/mRH/ns3/qt3/purrrqqquuuuo/D3rQgx7EVVddddVVV1111VVXXXXVv8c111zz4DNnzjwYMCCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhO/od/+Iff4aqrrrrqqqv+c6EHPehBXHXVVVddddVVV1111VVXXXXVVVddddVV/ydRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V/GPOfizUMN4qlwAAAAASUVORK5CYII=) ```kcl // Sectionally sweep one sketch along the path @@ -137,6 +137,6 @@ sweep(circleSketch, path = sweepPath, sectional = true) ``` -![Rendered example of sweep 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADpjklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrvo/55prrnnwmTNnHvxiL/ZirwVwzTXXPPiaa655MA9w33333Xrffffdevbs2Wfcd999t/7DP/zDb3PVVVddddVVV1111f81VK666qqrrrrqqquu+j/hxV7sxV77mmuuefA7vuM7ftY111zzYJ7p3LlznD17FkmcO3eO+11//fVcf/31PPrRj+Z+9913363/8A//8Nu/9Vu/9T3/8A//8NtcddVVV1111VVXXfW/HXrQgx7EVVddddVVV1111VX/O11zzTUPfu3Xfu33ep3XeZ33vuaaax587tw5fvd3fxdJ/N7v/R7nzp0DQBLPjyQATp8+zaMf/Wge/ehHc/r0aR796Edz33333foP//APv/1bv/Vb3/MP//APv81VV1111VVXXXXVVf8boQc96EFcddVVV1111VVXXfW/yzXXXPPgd3zHd/ys13md13nvs2fP8nu/93v83u/9HufOnQNAEveTxANJ4l9y+vRpXu3VXo3XeI3X4PTp0/zDP/zDb//Ij/zI5/zDP/zDb3PVVVddddVVV1111f8m6EEPehBXXXXVVVddddVVV/3vcM011zz4tV/7td/rnd7pnT777Nmz/ORP/iS/93u/B4AkACRxP0ncTxL/WqdPn+ZRj3oUj3jEI3jt135tfuu3fuu7f/RHf/Rz7rvvvlu56qqrrrrqqquuuup/A/SgBz2Iq6666qqrrrrqqqv+53vHd3zHz3qnd3qnzz579iw/8RM/we/93u8hCQBJAEjifpK4nyReEEnczzbPj21e/dVfnbd5m7chM2/9rd/6re/+0R/90c/hqquuuuqqq6666qr/6dCDHvQgrrrqqquuuuqqq676n+uaa6558Id/+Id/14u92Iu99o//+I/zkz/5k0gCQBIAkgCQBIAk7ieJ5yaJf4ltHsg2p0+f5tVf/dV5m7d5G/7hH/7ht7/+67/+fe67775bueqqq6666qqrrrrqfyr0oAc9iKuuuuqqq6666qqr/me65pprHvw5n/M5vyXpwd/0Td/E4x//eCQhCUkASAJAEgCSuJ8kHkgS/1q2uZ9tAE6fPs2nfMqnkJm3ftZn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knhukpDECyIJSUjigSQBIIkHksRzk4QkAB7/+Mdz5syZB3PVVVddddVVV1111X81gquuuuqqq6666qqr/stdc801D77vvvu4nyTuJ4n7SUISkpDEA0kCQBIAkgCQxP0k8UCSkMS/hiQeSBIAkgCQxP0kIYnndu7cOa655poHc9VVV1111VVXXXXVfzWCq6666qqrrrrqqqv+S73Yi73Ya997771I4oWRxHOThCSemySemyTuJwlJPDdJSEISkpCEJJ6bJCRxP0kASOJ+krifJCQBIIlz587xuMc9jhd7sRd7ba666qqrrrrqqquu+q9E5aqrrrrqqquuuuqq/1LXXHPNg//mb/4GAElIQhKSkASAJF4YSQBI4oEkASCJ+0niuUnihZHE/WxzP0nY5rlJwjZXXXXVVVddddVVV/2PQ3DVVVddddVVV1111X+5e++9F0k8P5IAkIQkJCEJSTyQJAAkASAJAEncTxIPJAlJ/GtI4oEkASAJAEkASEISkpAEgCQAJPG7v/u7t15zzTUP5qqrrrrqqquuuuqq/0oEV1111VVXXXXVVVf9lzpz5syD7rvvPgAkASAJSUgCQBLPjyQk8dwk8dwkcT9JSOK5SUISkpCEJCTx3CQhiftJAkASAJJ4bpIAkATAhQsXHnzmzJkHcdVVV1111VVXXXXVfyUqV1111VVXXXXVVVf9l7vvvvuQBIAkHkgS/xJJAEjigSQBIIn7SeK5SeKFkcT9bHM/SdgGQBK2kYRtACRxP9vcTxIAZ8+efQZXXXXVVVddddVVV/1XIrjqqquuuuqqq6666r/c2bNneW6SeCBJSEISkpDEA0kCQBIAkgCQxP0k8UCSkMS/hiQkcT9JPD+SeCBJSOJ+586d48yZMw/iqquuuuqqq6666qr/SgRXXXXVVVddddVVV/2Xuuaaax583333IQlJAEgCQBIAknh+JPGiksT9JCGJ5yYJSUhCEpKQhCSemyTuJwkASQBI4gWRBMC5c+c4e/bsM7jqqquuuuqqq6666r8Slauuuuqqq6666qqr/ku11l6bB5DEA0nihZGEJAAkASAJAEkASOJ+knhukviXSALANveThG0AJGEbSdgGQBIPZBsASQA87nGP46qrrrrqqquuuuqq/1IEV1111VVXXXXVVVf9l8rMB0tCEveThCQkcT9JSEISkpDE8yMJAEkA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EpJ4bpK46qqrrrrqqquuuupfROWqq6666qqrrrrqqn+RJJ6bJAAkIQkASUhCEpK4nyQeSBIvjCQAJAEgCUncTxKSkIQkJCEJSUQEkogIIoKIICIopRARlFKICEopRAQRQUQgCUkA2MY2kpAEgG1KKdgmIogIMpOIIDORhCQAJCEJSUhCEraRhG0AJGEbAEnYBkAStnl+JAEgiauuuuqqq6666qqrXiRUrrrqqquuuuqqq656oa655poH7+3tIQkASdxPEi+MJF4YSdxPEgCSAJAEgCQkASAJSUhCEpKQhCQkERFIIiKQREQgiYggIogIIoJSChFBKYWIICKQhCTul5lIQhIAtrFNRBARRAQRQWYiCUlIQhKSeG6SsI0kbAMgCdsASMI295OEbe4nCQBJAMxmswdz1VVXXXXVVVddddW/hMpVV1111VVXXXXVVf+icRx5IEk8N0m8MJIAkMRzk8TzI4n7SUISkpCEJCQREUhCEpKICCQREUQEEUFEEBGUUogIIoJSChFBKYWIQBKSuJ8kJCEJ25RSyEwigohAEpKQhCQkIQlJAEjifpKwzYtKEra56qqrrrrqqquuuurfjcpVV1111VVXXXXVVf8iSUhCEpL415DE8yOJ5yYJAEncTxKSeCBJSEISkpBERCAJSUQEEUFEEBFEBBFBRFBKoZRCKYWIoJRCRCAJSUjCNhFBZtJawza2KaWQmUgiIpCEJCQhiftJAkASkrANgCRsIwnbAEjCNgCSsM0DSUISDyQJSVx11VVXXXXVVVdd9S+ictVVV1111VVXXXXVC3XmzJkH83xIAkASz00Sz48knpskACQBIAkASTyQJCQhCQBJSEISkpBERBARRAQRgSQigoggIogIIoKIICIopVBKISKQREQAYBvbSALANrbJTCKCiEASEYEkJCEJSUgCQBIPJAnb3E8StgGQhG2emyRscz9J3M82V1111VVXXXXVVVf9i6hcddVVV1111VVXXfUvksQDSQJAEgCSAJCEJAAkcT9JPJAkACTx/EgCQBKSkIQkJCEJSUhCEpKICCICSUhCEpKICCKCUgqlFEoplFIopVBKoZRCRFBKISKQxP0yE0kA2CYziQgigoggIpBERCAJAElIQhIAkpCEJGwDIAnbPDdJ2EYStpGEbe4nCQBJAEjiqquuuuqqq6666qp/EZWrrrrqqquu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v4ZtJPEvsc1zs81zkwSAJB5IEpKICCQBIIn72abve66//npuuOEGFosF93vc4x7H05/+dPb397nqqquuuuqqq6666j8Ulauuuuqqq6666qqr/kW2sc1zsw2AbR7o0qVL/NEf/RGPf/zjebEXezEe+9jHsrOzwyu8wivw6Ec/mv39fZ74xCfy5Cc/GQDb3E8SD2Sb/wi2kQSAbSTxQLb515KEJCQhiYhAEpKQhCTm8znXXnstx48f5/jx49xvuVxy22238fjHP57WGpnJC2Kb52abq6666qqrrrrqqqv+RVSuuuqqq6666qqrrvoXZSYAtvnX2Nvb44//+I95whOewE033cSNN97IYx7zGLa3t7nhhht4+Zd/eSTxpCc9iXvuuYd77rkH2zw/knhBbPMfxTbPjyQAbCOJB5KEJCQRESwWC6677jqOHz/OsWPHeKCLFy9y5513ctttt9Fa46qrrrrqqquuuuqq/1RUrrrqqquuuuqqq656oe67775bH/OYx/CC2OYFsY0kLl26xP7+Pk94whP4sz/7M2666SYe/ehHc8MNNwDwsi/7sgAcHBxwzz33cHBwwL333su9997L/Wzzgkjifrb5z2AbSTyQJDY2NtjY2ODkyZOcOHGC48eP89xWqxX33HMPT3/602mtkZn8e43j+Ayuuuqqq6666qqrrvqXULnqqquuuuqqq6666l9kG9v8R9jf3+eJT3wiT3rSk9jZ2eGGG27ghhtuYHt7m+uvv56HP/zhPNDBwQH33nsvkrj33ns5PDzk7NmzvCCSsM1/JEksFgskcfr0aRaLBRsbG5w8eZLFYsFzW61W3HfffazXa+677z4yE9sASAJAEv9atgGwzVVXXXXVVVddddVVLxIqV1111VVXXXXVVVf9i2zzQLaxzQPZ5kVlG0ns7+/zpCc9iSc/+clIYnt7mxtuuIHrr7+era0trrvuOra2ttja2gLgoQ99KPc7PDwE4L777kMSh4eHHB0dIYmjoyMAlsslkgCQxP0k8UCLxQKAjY0NADY2NgA4ffo0AKdOneKFWa1W3H333Uji9ttvRxKSuJ8kbCOJB5KEJCTxL7ENgG0AMpOrrrrqqquuuuqqq/5FVK666qqrrrrqqquu+k9hG0n8axwcHPDkJz+ZpzzlKUhie3sbSVx33XVce+21AGxtbXHttdeyubkJwEMe8hD+Mx0dHXG/5XLJ0dERFy5cYLVasVqtuHTpEhFBRBARSEISAJKwzVVXXXXVVVddddVV/22oXHXVVVddddVVV131L7rmmmuwjW1s829hG0nczzaSeGEODg6QxFOf+lSe+tSnIglJSGJra4utrS02NzeRxObmJpubmwBsbm4CsLm5yYvi6OgIgKOjIyRxdHQEwNHREcvlkvPnzyMJSUhCEpKICCKC50cSAJIAkASAJF4Utrnqqquuuuqqq6666t+NylVXXXXVVVddddVVL9TZs2dv5QWwzQPZxja2kQSAbSTx72EbSTzQ4eEhh4eHSEISkpAEgCQkASAJSdxPEveTxPMjiftJ4l9DEi+IJAAk8e81juOtXHXVVVddddVVV131LyG46qqrrrrqqquuuurfzTb/FraxzQtjm38v2zw/tnl+bHM/29zPNrb5l0hCEpJ4QSTxorDN82Obq6666qqrrrrqqqv+RQRXXXXVVVddddVVV/272OZFZZvnxzbPzTa2eUFs89xs8y+xzQPZ5j+TJCQhif8otrnqqquuuuqqq6666kVCcNVVV1111VVXXXXVi8Q2/5lsYxvb2OaFsc1zs80D2eZFZZt/iW1eGElIQhL3k8QDSUIS95PEVVddddVVV1111VX/qQiuuuqqq6666qqrrvoXXXfddUjCNgC2eVHY5rnZ5t/DNs/NNi+IbQBscz/b/Ets828lCUkASEISkrifJP69pmm6lauuuuqqq6666qqr/iUEV1111VVXXXXVVVe9UPfdd9+tAJkJgG0AbPOiss1/Fts8N9v8a9nm30oSV1111VVXXXXVVVf9j0Rw1VVXXXXVVVddddV/CNv8Z7PNv4dt7meb52abfy9J3E8SkrifJCQBIAkASbyobGMbANtcddVVV1111VVXXfUvIrjqqquuuuqqq6666t/MNi+IbV4Q2/xr2ea52ea52eZ+tgGwzfNjm+dmm/vZBsA2L4gk7icJAElI4n6SkMS/lW0eyDZXXXXVVVddddVVV71ICK666qqrrrrqqquuepHZ5oWxzQtimweyzYvKNv/TSeK5SeL5kcRVV1111VVXXXXVVf8lCK666qqrrrrqqquu+hdJupUXwjb3s41t7mebfw/bPD+2eW62uZ9tnh/bPJBtnptt/r0kASAJSUhCEpL4t7DNA7XWbuWqq6666qqrrrrqqn8JwVVX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npttnh/bPD+2eX5s89xs80C2+feQhCQkIQkASTyQJP4txnG8lauuuuqqq6666qqrXlQEV1111VVXXXXVVVf9p7INgG0eyDbPj23+JbZ5fmzz3GwDYJvnZpsXhW1eFJKQxHOThCQkIQlJ3E8S95PEv8Q2V1111VVXXXXVVVe9yAiuuuqqq6666qqrrvpXsc0D2eZ+tvnXsM0D2eb5sc3/ZJKQxP0kIQlJSEISAJKQBIAkJAEgiauuuuqqq6666qqr/lMQXHXVVVddddVVV131b2abfy/b2MY2Lwrb3M8297PN/WzzwtjmudkGwDb/VpKQxP0kIQlJSOJ+kvi3ss1VV1111VVXXXXVVS8ygquuuuqqq6666qqrXmTXXXcdz49tnh/bPJBt/rVs8x/FNs/NNv/RJCEJAEkASEISkrifJP61Wmu3ctVVV1111VVXXXXVi4rgqquuuuqqq6666qp/FdvYxjYPZBsA2/xXs83zYxsA2/xnkMT9JAEgCQBJSAJAEgCSAJCEJAAkASCJq6666qqrrrrqqqv+wxFcddVVV1111VVXXfUiue+++27lRWQb29zPNv8Wtnkg29zPNs+PbV4Utvn3kASAJO4nCQBJAEhCEpKQBIAk/j1sc9VVV1111VVXXXXVi4zgqquuuuqqq6666qr/Urb5j2Sbfw3bvCC2uZ9tbPOikMT9JCEJSQBIAkASkpCEJCQhiX8N29jmqquuuuqqq6666qoXGcFVV1111VVXXXXVVf8qtvmvYJsHss2/xDb3s82LyjYviG3+LSQhCQBJSEISz48kXhDbXHXVVVddddVVV131b0Zw1VVXXXXVVVddddWL7Nprr0US/162eWFs88LY5kVlGwDbPDfbPD+2+deShCQkIQkASUhCEveThCQkASCJf43W2q1cddVVV1111VVXXfWiIrjqqquuuuqqq6666kV233333QpgGwDbPJBtnpttAGzzQLZ5fmzzorLN/WzzP4kkACQhCUlI4oEk8aKyzVVXXXXVVVddddVV/2oEV1111VVXXXXVVVf9q9gGwDYAtrHNv4VtHsg2z49t7mebf4ltXhjb/GeSBIAk7icJSUhCElddddVVV1111VVX/ZcguOqqq6666qqrrrrqX8U2z49tnptt/iW2sY1t/q1s8/zY5oFs84LY5oWxzQsiCQBJSAJAEpKQhCTuJwkA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uuqqq676tyC46qqrrrrqqquuuurfxTbPzTYPZBsA2/x3s81zs82/h21s89xsY5t/L9tcddVVV1111VVXXfVvQnDVVVddddVVV1111b+Zbf6z2Ob5sQ2AbQBscz/b/Fezzf1scz/b3M82trHNc7PNc7MNgG0AbHPVVVddddVVV1111b8JwVVXXXXVVVddddVV/ybXXXcd97MNgG3+M9jmX2KbB7LN/Wzz3Gzz/NjGNrb5t7CNbf4ltnlRjeN4K1ddddVVV1111VVX/VsQXHXVVVddddVVV131H8o2ALYBsM0D2eZfYpv/iWzzgtjmudnGNlddddVVV1111VVX/bchuOqqq6666qqrrrrqX+2+++67lReBbf4j2eb5sc2LwjbPzTb3s82Lyja2AbANgG1sA2Cb+9nmgWxz1VVXXXXVVVddddV/CYKrrrrqqquuuuqqq/7NbHM/27wwtnlR2OaBbPPcbANgm+fHNvezzb+VbZ6bbWxzP9s8N9s8N9vYxjZXXXXVVVddddVVV/2XIbjqqquuuuqqq6666t/FNv9atnl+bPNfwTb/GWxzP9vYxjZXXXXVVVddddVVV/23Ibjqqquuuuqqq6666t/k2muvxTb/VrZ5INv8R7DN82ObF8Y2L4htbPPC2AbANrZ5INv8e4zjeCtXXXXVVVddddVVV/1bEFx11VVXXXXVVVdd9W9y33333SqJfw/b2MY2z49t7mebfy3bvDC2+Y9gm+fHNvezjW0eyDb/EttcddVVV1111VVXXfVvRnDVVVddddVVV1111b+ZbQBs80C2eSDbANjm38s2ALYBsM39bPMfzTYviG0eyDa2sY1tAGzzQLaxjW2uuuqqq6666qqrrvpPR3DVVVddddVVV1111X8Y2/xHsc2/hm1eFLZ5brb517INgG0AbPPcbANgmxfGNs/NNgARwVVXXXXVVVddddVV/2YEV1111VVXXXXVVVf9m81mM2zzQLYBsA2Abf69bPOvZZv72ea52eY/im0eyDa2AbANgG3+Jba56qqrrrrqqquuuuo/FMFVV1111VVXXXXVVf9m29vb3M82z802z802/xLb/GvY5j+SbZ4f2wDY5vmxjW2em20AbGObf42jo6Nbueqqq6666qqrrrrq34rgqquuuuqqq6666qp/k7Nnz95qm/9Ktnkg2zw/tnl+bPMvsQ2AbZ4f2zw/tnkg29jGNs/NNlddddVVV1111VVX/ZcguOqqq6666qqrrrrqv4Rt7mebF8Q2D2Sb52abF5VtXhjb/FvZxjb3s41tbPPcbPNAtrGNbQBs8/xI4qqrrrrqqquuuuqqfzOCq6666qqrrrrqqqv+XWxjm/8Itvn3ss2/xDbPj20eyDYvCts8N9vYxja2AbDNVVddddVVV1111VX/pQiuuuqqq6666qqrrvo3O3XqFM+Pbf4ltnkg2zw329zPNv+T2OaBbANgG9s8N9sA2OaFsc0DLZfLW7nqqquuuuqqq6666t+K4KqrrrrqqquuuuqqfzNJvChs8/zYxja2+beyzf1s80C2uZ9t/q1sY5t/iW3uZxvb2MY2ALYBsM1VV1111VVXXXXVVf8lCK666qqrrrrqqquu+je57777brXNA9nGNi+Ibf69bANgmweyzb+Wbe5nm38L29jGNgC2sc1zsw2AbQBsc9VVV1111VVXXXXVfzqCq6666qqrrrrqqqv+zWxzP9s8kG0AbPNvYZv72eY/im3+vWwDYJsHss39bGMb29jm38I2V1111VVXXXXVVVf9uxBcddVVV1111VVXXfXvYpsXxDb/XWxzP9v8W9nmX8M2tnl+bANgGwDb/EtWq9WtXHXVVVddddVVV131b0Vw1VVXXXXVVVddddW/2ZkzZwCwzYvKNv8S2zw/tnl+bPOvZZv72eZFYRvbPDfb2MY297ONbWxjG9sA2Oa52eaqq6666qqrrrrqqv8UBFddddVVV1111VVX/Zvcd999t9rmRWWbfwvbPDfbANjm+bHNfzbbANjmgWxjG9vY5oFscz/bANjmhbHNVVddddVVV1111VX/ZgRXXXXVVVddddVVV/2Xs80LYpv/SLa5n21eFLb597DN/WxjG9vczzZXXXXVVVddddVVV/2XILjqqquuuuqqq6666t/MNrZ5brb5t7DNv5dt/jVs80C2AbDNv8Q2ALaxjW1sA2Ab2zyQbWxzP9tcddVVV1111VVXXfWfiuCqq6666qqrrrrqqn+za665hudmmxeFbR7INs/NNvezzfNjm/vZ5kVhm/9MtrmfbWxjm6uuuuqqq6666qqr/ssRXHXVVVddddVVV131b2ab+9nGNs+PbQBs80C2sY1tXlS2AbDNv8Q297PNv8Q2D2Sb58c297PN/WxzP9vY5rnZxja2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++679Ud+5Ec+h6uuuuqqq6666qqr/iMRXHXVVVddddVVV131H+q+++679TM/8zNf5+TJk3zkR34kALZ5INu8ILb517DNfxTbvKhs88LYxjb3s41tbANgG9s85jGP4eTJk3z913/9+/zDP/zDb3PVVVddddVVV1111X8kyvHjx7nqqquuuuqqq6666j/W2bNnbwV4hVd4hdd+xVd8RX73d38XSUhCEpIAkIQkJCEJSQBIQhKSAJAEgCQAJAEgCQBJAEhCEpKQhCQkIQkASUhCEpIAkIQkJAEgCUlIQhKSkASAJCQREUgiIpBEKYWIoJRCKYWIoJRCKYWIQBIAtrFNa43WGo9+9KM5fvw4P/qjP/o5v/Vbv/XdXHXVVVddddVVV131H41y/Phxrrrqqquuuuqqq676j3fffffdenh4uPsKr/AKr/0Kr/AK/P3f/z2r1QpJSEISkpCEJCQBIAlJSAJAEpIAkASAJAAkASAJAElIQhKSkIQkJAEgCUlIAkASkpCEJAAkIQlJSAJAEpKQhCQkERFIIiKICEopRASlFEoplFKICCICSdwvMyml8JCHPISdnR3+4R/+4be//uu//n246qqrrrrqqquuuuo/A+X48eNcddVVV1111VVXXfUf7+jo6NLZs2efcXh4uPsKr/AKr/3iL/7i/MM//APr9RpJSOK5SUISkpAEgCQkASAJAEkASOJ+kpCEJCQhCUlIAkASkpCEJAAkIQlJAEhCEpKQhCQkIQlJSEISkogIIoKIICIopVBKoZRCRFBKISIopRARSMI2pRQe8pCHsLGxwT/8wz/89md+5me+DlddddVVV1111VVX/WehHD9+nKuuuuqqq6666qqr/nMcHh7unj179hmHh4e7r/AKr/DaL/7iL858PufpT386kpCEJCQhCUlIQhKSAJCEJAAkASAJAEncTxKSkIQkJCEJSQBIQhKSkASAJCQhCQBJSEISkpCEJCQhCUlIQhIRQUQQEUQEEUEphYiglEIphVIKEYEkABaLBQ996EMppfAP//APv/2Zn/mZr8NVV1111VVXXXXVVf+ZKMePH+eqq6666qqrrrrqqv88h4eHu2fPnn3G4eHh7su//Mu/9sMe9jAAnv70pyMJSUhCEpKQhCQAJCEJAElI4n6SAJAEgCQkIQlJSEISAJKQhCQkASAJSUhCEgCSkIQkJCEJSUhCEpKQhCQigohAEhFBKYWIoJRCRFBKISKICCRx+vRprr/+egB+67d+67u/5Eu+5G246qqrrrrqqquuuuo/G+X48eNcddVVV1111VVXXfWf6/DwcPcf/uEffgfgxV/8xV/7oQ99KC/3ci/H4x//eFarFZKQhCQkIQkASUgCQBIAkgCQBIAkACQhCUlIQhIAkpCEJCQhCQBJSEISAJKQhCQkIQlJSAJAEpKQhCQigoggIogISimUUogISilEBBHBfD7n5ptv5vjx49x33323ftd3fdfH/OiP/ujncNVVV1111VVXXXXVfwXK8ePHueqqq6666qqrrrrqv8Y//MM//M5v//Zvf88rvuIrvvXp06ePP/axj2WxWPD0pz8dSUhCEgCSkIQkACQBIAkASQBIAkASkpCEJAAkIQlJSEISAJKQhCQkASAJSUhCEpKQhCQkIQlJSEISkpBERBARRAQRQSmFiKCUwo033siDH/xg+r7nvvvuu/Xrv/7r3+dP//RPf5qrrrrqqquuuuqqq/6roAc96EFcddVVV1111VVXXfVf65prrnnwi73Yi732h3/4h38XwMWLF/mt3/ot/vqv/xpJAEhCEgCSkASAJAAkcT9JAEhCEpKQhCQkIQlJSAJAEpKQBIAkJCEJSUhCEpKQhCQiAklEBKUUIoJSCrVWaq3UWum6jq7rOHPmDI985COZzWYA/MiP/Mhn/+iP/ujncNVVV1111VVXXXXVfzX0oAc9iKuuuuqqq6666qqr/ntcc801D/6cz/mc37rmmmseDLC7u8tP/uRP8oxnPANJSAJAEpIAkASAJO4nCQBJSEISkpCEJCQhCQBJSEISkgCQhCQkIQlJSEISkpBERCCJiKCUQkRQSqHWSimFruvY2dnhJV7iJThx4gQA9913361f//Vf/z7/8A//8NtcddVVV1111VVXXfXfAT3oQQ/iqquuuuqqq6666qr/PmfOnHnQ67zO67z367zO67z3Nddc82CA3d1dfvu3f5u/+Zu/AUASAJIAkASAJAAkASAJSUhCEpKQhCQkASAJSUhCEgCSkIQkJCEJSUhCEpKICCQREUQEpRRKKZRSePEXf3Ee9KAHsbGxAcB9991362/91m9994/+6I9+DlddddVVV1111VVX/XdCD3rQg7jqqquuuuqqq6666r/fNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe22A3d1d/vqv/5pnPOMZPOMZz0ASAJIAkMT9JCEJSUhCEpKQhCQAJCEJSUgCQBKSkIQkJAEgiYhAEpKICCQREUQEOzs7PPzhD+fFX/zFAbjvvvtuBfit3/qt7/7RH/3Rz+Gqq6666qqrrrrqqv8J0IMe9CCuuuqqq6666qqrrvqf45prrnnwi73Yi73W67zO67z3i73Yi702z7S7u8vf/M3f8IxnPIPbbrsNAEncTxKSkIQkJCEJSUgCQBKSkIQkACQhCUlIAkASkpBERCAJSezs7PDIRz6Shz/84WxtbXG/++6779bf+q3f+u4f/dEf/Ryuuuqqq6666qqrrvqfBD3oQQ/iqquuuuqqq6666qr/ma655poHv/Zrv/Z7vdM7vdNn8wC7u7s84xnP4BnPeAZ7e3s84xnPQBKSkIQkJCEJSQBIQhKSkIQkACQhCUkASEISktjZ2eHRj340N9xwA9dffz0PdN999936W7/1W9/927/9299z33333cpVV1111VVXXXXVVf8ToQc96EFcddVVV1111VVXXfU/2zXXXPPgM2fOPOh1Xud13vuaa6558Iu92Iu9Ns/l0qVL3HbbbQDcfvvtAOzt7bG3tweAJPb395HEsWPHAJDEzs4OkrjpppsAuPHGG9nZ2WF7e5vndt999936W7/1W9/9D//wD7/9D//wD7/DVVddddVVV1111VX/06EHPehBXHXVVVddddVVV131v8s111zz4Bd7sRd77Rd7sRd7rWuuuebBL/ZiL/ba/Ce47777bv2t3/qt7wb40R/90c/hqquuuuqqq6666qr/bdCDHvQgrrrqqquuuuqqq6763+2aa655MMCLvdiLvTbgF3uxF3ttgGuuuebBZ86ceTDPdM011zwY4L777ruVZzp79uytAH//93//2wBnz559xn333XfrP/zDP/w2V1111VVXXXXVVVf9b4ce9KAHcdVVV1111VVXXXXVVVddddVVV1111VVX/Z9E5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6v4R1oewojDsY7PAAAAAElFTkSuQmCC) +![Rendered example of sweep 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADpiElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrvo/55prrnnwmTNnHvxiL/ZirwVwzTXXPPiaa655MA9w33333Xrffffdevbs2Wfcd999t/7DP/zDb3PVVVddddVVV1111f81VK666qqrrrrqqquu+j/hxV7sxV77mmuuefA7vuM7ftY111zzYJ7p3LlznD17FkmcO3eO+11//fVcf/31PPrRj+Z+9913363/8A//8Nu/9Vu/9T3/8A//8NtcddVVV1111VVXXfW/HXrQgx7EVVddddVVV1111VX/O11zzTUPfu3Xfu33ep3XeZ33vuaaax587tw5fvd3fxdJ/N7v/R7nzp0DQBLPjyQATp8+zaMf/Wge/ehHc/r0aR796Edz33333foP//APv/1bv/Vb3/MP//APv81VV1111VVXXXXVVf8boQc96EFcddVVV1111VVXXfW/yzXXXPPgd3zHd/ys13md13nvs2fP8nu/93v83u/9HufOnQNAEveTxANJ4l9y+vRpXu3VXo3XeI3X4PTp0/zDP/zDb//Ij/zI5/zDP/zDb3PVVVddddVVV1111f8m6EEPehBXXXXVVVddddVVV/3vcM011zz4tV/7td/rnd7pnT777Nmz/ORP/iS/93u/B4AkACRxP0ncTxL/WqdPn+ZRj3oUj3jEI3jt135tfuu3fuu7f/RHf/Rz7rvvvlu56qqrrrrqqquuuup/A/SgBz2Iq6666qqrrrrqqqv+53vHd3zHz3qnd3qnzz579iw/8RM/we/93u8hCQBJAEjifpK4nyReEEnczzbPj21e/dVfnbd5m7chM2/9rd/6re/+0R/90c/hqquuuuqqq6666qr/6dCDHvQgrrrqqquuuuqqq676n+uaa6558Id/+Id/14u92Iu99o//+I/zkz/5k0gCQBIAkgCQBIAk7ieJ5yaJf4ltHsg2p0+f5tVf/dV5m7d5G/7hH/7ht7/+67/+fe67775bueqqq6666qqrrrrqfyr0oAc9iKuuuuqqq6666qqr/me65pprHvw5n/M5vyXpwd/0Td/E4x//eCQhCUkASAJAEgCSuJ8kHkgS/1q2uZ9tAE6fPs2nfMqnkJm3ftZn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knhukpDECyIJSUjigSQBIIkHksRzk4QkAB7/+Mdz5syZB3PVVVddddVVV1111X81gquuuuqqq6666qqr/stdc801D77vvvu4nyTuJ4n7SUISkpDEA0kCQBIAkgCQxP0k8UCSkMS/hiQeSBIAkgCQxP0kIYnndu7cOa655poHc9VVV1111VVXXXXVfzWCq6666qqrrrrqqqv+S73Yi73Ya997771I4oWRxHOThCSemySemyTuJwlJPDdJSEISkpCEJJ6bJCRxP0kASOJ+krifJCQBIIlz587xuMc9jhd7sRd7ba666qqrrrrqqquu+q9E5aqrrrrqqquuuuqq/1LXXHPNg//mb/4GAElIQhKSkASAJF4YSQBI4oEkASCJ+0niuUnihZHE/WxzP0nY5rlJwjZXXXXVVVddddVVV/2PQ3DVVVddddVVV1111X+5e++9F0k8P5IAkIQkJCEJSTyQJAAkASAJAEncTxIPJAlJ/GtI4oEkASAJAEkASEISkpAEgCQAJPG7v/u7t15zzTUP5qqrrrrqqquuuuqq/0oEV1111VVXXXXVVVf9lzpz5syD7rvvPgAkASAJSUgCQBLPjyQk8dwk8dwkcT9JSOK5SUISkpCEJCTx3CQhiftJAkASAJJ4bpIAkATAhQsXHnzmzJkHcdVVV1111VVXXXXVfyUqV1111VVXXXXVVVf9l7vvvvuQBIAkHkgS/xJJAEjigSQBIIn7SeK5SeKFkcT9bHM/SdgGQBK2kYRtACRxP9vcTxIAZ8+efQZXXXXVVVddddVVV/1XIrjqqquuuuqqq6666r/c2bNneW6SeCBJSEISkpDEA0kCQBIAkgCQxP0k8UCSkMS/hiQkcT9JPD+SeCBJSOJ+586d48yZMw/iqquuuuqqq6666qr/SgRXXXXVVVddddVVV/2Xuuaaax583333IQlJAEgCQBIAknh+JPGiksT9JCGJ5yYJSUhCEpKQhCSemyTuJwkASQBI4gWRBMC5c+c4e/bsM7jqqquuuuqqq6666r8Slauuuuqqq6666qqr/ku11l6bB5DEA0nihZGEJAAkASAJAEkASOJ+knhukviXSALANveThG0AJGEbSdgGQBIPZBsASQA87nGP46qrrrrqqquuuuqq/1IEV1111VVXXXXVVVf9l8rMB0tCEveThCQkcT9JSEISkpDE8yMJAEkA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i86fP8/GxgaS+M8gCQBJ3E8Sz48kJCEJSUhCEpKICCKCiCAiKKVQSiEiiAgigoggIiilUEohIiilEBFI4n6SkASAbTKTzCQzaa0REUQEkpCEJCRxP0k8N0nY5n6SsM2/xXw+fzBXXXXVVVddddVVV/1LqFx11VVXXXXVVVdd9a8iiedHEs9NEveTBIAkACTx/EjifpKQhCQkIQkASUhCEpKQhCQigoggIogIIoKIICKICCKCUgqlFCKCiKCUQimFiEAS95OEJGwTEUQEEUFEEBFIQhKSkIQkACQhiecmCdsASMI2AJKwDYAkbCMJ27wgkrjqqquuuuqqq6666kVC5aqrrrrqqquuuuqqf5EknpskXhSSeGEkASCJ+0ni+ZGEJCQhCUlIIiKICCQREUQEEUFEEBFEBKUUSilEBBFBKYVSCqUUSilEBJK4nyQkYRvbZCatNSKCiCAikIQkJCEJSTyQJCQhCds8kCRs8y+RhCQAJHHVVVddddVVV1111b8Klauuuuqqq6666qqrXqhrrrnmwQCSuJ8k7ieJ/wySkASAJCQBIAlJSCIiiAgkIYmIQBIRQUQQEUQEpRQigoiglEIphYiglEIphYggIogI7icJSdgmM4kISim01pCEJCICSUhCEpKQhCQk8fxIwjYPJAnbPDdJ2OaBJHHVVVddddVVV1111YuM4Kqrrrrqqquuuuqqf5EkACQhiftJAkASLwpJAEjigSQBIInnJgkASUhCEpIAkIQkJBERRAQRQURQSiEiKKUQEUQEpRQigoiglEJEEBGUUiilEBGUUogISilEBKUUSimUUogIJBERRASSkIQk7ieJ+0nigSTxQJJ4bpIAkMQDSeK5lVIezFVXXXXVVVddddVVLwyVq6666qqrrrrqqqteqHvvvZd/DUlI4oEk8fxI4rlJ4rlJAkAS95OEJCQREUQEkogIIoKIICKICCKCUgoRQURQSiEiiAgigoggIogI7peZANgmIogIIoKIICKQhCQkIQlJSAJAEpIAkASAJGwDIAnbPJAkbPOikMRVV1111VVXXXXVVS8SKlddddVVV1111VVX/Ysk8aKQxP0k8a8hiftJQhKSkASAJAAkIYmIQBIRgSQkERFEBBFBRFBKISIopRARRASlFCKCiKCUQimFUgoRgSQkYRtJAEQEEUFEIImIQBIRgSQkIQlJAEjiuUnCNlddddVVV1111VVX/ZejctVVV1111VVXXXXVi0QSDySJfwtJAEgCQBL/EkkASEISkpCEJCQREUQEEUFEEBFEBBFBKYWIICIopRARRAQRQUQQEUQEEYEkJGEb29gmIogIIoKIICKICCQhCUlIQhKSeCBJPDdJ2OZ+krANgCRsIwnbAEji+ZHEVVddddVVV1111VX/IipXXXXVVVddddVVV/2rSeK5SeK5SeJ+kviXSOK5SQJAEpKQhCQkIQlJSEISEUFEEBFEBBFBRBARlFKICCKCiCAiiAgigoggIpCEJGxjG9tEBBGBJCICSUhCEpKQxP0kASAJSbwwkrDNi0ISAJKQxFVXXXXVVVddddVVLzIqV1111VVXXXXVVVe9QNdcc82DeQBJSOI/miTuJwlJSEISAJK4nyQkIYmIICKICCKCiCAiiAhKKZRSiAhKKUQEEUFEEBFEBBFBRCCJiEASkrCNbWwTEUQEEYEkJCEJSUhCEpKQBIAkHkgS95OEbZ6bJGzz3CRhm+cmCQBJXHXVVVddddVVV131QhFcddVVV1111VVXXfVC3XPPPbwwknhhJPHvIQkASUgCQBKSkIQkJBERRAQRQSmFiCAiKKUQEUQEpRQigoggIpCEJCICSUQEkogIJCEJSUhCEhGBJCQhCUkASOKBJPFAkpDEc5PEc5PE8yOJB5JEKeXBXHXVVVddddVVV131wlC56qqrrrrqqquuuupfJInnRxL/FpIAkMT9JPHcJAEgCUlIQhKSkIQkJBERRASSiAgigoggIogISimUUogIIoKIICKICCICSUhCEveTREQQEUQEEYEkJCEJSUhCEgCSkIQkACQhiedHErZ5YSRhmxdGElddddVVV1111VVXvVBUrrrqqquuuuqqq656kUjiBZHEi0ISL4wkACQhiedHEpKQhCQiAklIIiKICCKCUgqlFEopRAQRQURQSiEiiAgkIYmIICKQhCRsIwlJSEISkpCEJCRxP0lI4t9LEra56qqrrrrqqquuuuo/FMFVV1111VVXXXXVVf+hJPGvIYkHksQDSUISkpCEJCQhCUlIIiKICCKCiCAiiAgigoggIogIIoKIICKQREQgCUlIQhIAkpCEJCTxQJIAkIQk/rUk8UCSuOqqq6666qqrrrrqPw2Vq6666qqrrrrqqqv+RZL495DEv4UkHkgS95NE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V1111YvENs+Pbf6tbPPC2OZFZZvnxzYAtnlBbPNvIYnnJglJAEjihZEEgCSuuuqqq6666qqrrvpPQXDVVVddddVVV1111b+Kbf4j2cY2D2Qb27wgtnkg2/xr2ObfSxL3kwSAJJ6bJCQBIAkASUjiX2Kb50cSV1111VVXXXXVVVe9SAiuuuqqq6666qqrrnqRzGYz7mebfwvbvCC2sY1t/jVs89xs869lmweyDYBt/rUkIQlJ3E8SAJK46qqrrrrqqquuuuq/DMFVV1111VVXXXXVVf+is2fP3rq1tYVt7mebf4lt/qPZ5kVlmweyzf1s89xs828lCQBJPJAk/qMtl8tbueqqq6666qqrrrrqRUFw1VVXXXXVVVddddWLxDbPzTb3s80LYpv72ebfyjYPZJvnZpvnZpvnxzb/kSRxP0ncTxKSkMRzk8S/hm2uuuqqq6666qqrrnqREVx11VVXXXXVVVdd9b+Cbf4ltvmX2OaFsc2/hyQkASAJSTyQJCQhCUncTxIvKklcddVVV1111VVXXfUiIbjqqquuuuqqq6666kVim3+Jbe5nmxfENv9etnlhbPOisM0LYpt/iSSeH0ncTxKSkMS/h22uuuqqq6666qqrrvpXIbjqqquuuuqqq6666kVy6tQpbGObB7KNbf4z2eZfYpvnxzYAtrmfbR7INv8eknggSQBIQhL/0Var1a1cddVVV1111VVXXfWiILjqqquuuuqqq6666l9033333cqLyDa2eW62eSDbvChs8y+xzQPZ5t/DNv9akpCEJAAkcT9JSAJAEpK46qqrrrrqqquuuuq/BMFVV1111VVXXXXVVf9qtnlR2eYFsc0LYhvbPD+2+bewzf1s80C2eWFs868lCUncTxL3k8SLwjbPzTZXXXXVVVddddVVV71ICK666qqrrrrqqquuepHY5rnZ5t/LNs/NNi+IbR7INg9km/vZBsA2/x62+deQhCTuJwlJPDdJAEgCQBL/EttI4qqrrrrqqquuuuqqFwnBVVddddVVV1111VUvEtvY5n62+deyzfNjG9vYxjb/VWzzQLa5n22em21eGElI4n6SkMT9JCEJSdxPEi8K29zPNlddddVVV1111VVXvUgIrrrqqquuuuqqq656kZw5c4YXxjbPzTb/kWzzQLZ5INvczzbPj23+NWzzopDE/SQhiftJ4t/DNg80DMOtXHXVVVddddVVV131oiC46qqrrrrqqquuuupfdN99991qGwDb/GvZ5t/LNv8WtgGwzfNjmweyzYtKEgCSeH4kIQkASUhCEgCS+LeyzVVXXXXVVVddddVVLxKCq6666qqrrrrqqqteJLZ5fmzzr2Gb/wi2eSDbvKhs8x9FEveThCQkIYn7SUIS95PEVVddddVVV1111VX/JQiuuuqqq6666qqrrnqR2QbANg9kGwDb3M82/1Fs88LY5oFs869hm/8MkpDE/SQhiftJ4vmxzVVXXXXVVVddddVV/yEIrrrqqquuuuqqq656kZw5c4YXhW1s88LY5kVlm+dmmxeFbR7INvezzQtiGwDbvKgkASAJAElIAkASknggSfxb2eaqq6666qqrrrrqqhcJwVVXXXXVVVddddVV/6KzZ88+IzP597DNA9nmX2Kbf4ltHsg2z802/xLb/HtJAkAS95OEJAAkASCJ+0nigSTxgtjGNsMw3MpVV1111VVXXXXVVS8Kgquuuuqqq6666qqr/lVscz/b/Ets84LY5gWxzfNjm38P29zPNv8RJPHcJCGJ+0kCQBJXXXXVVVddddVVV/2XIbjqqquuuuqqq6666kViG9vczzb/EWzzQLaxzYvCNg9km/vZ5l/LNv9WkgCQhCTuJwlJAEjigSQBIAlJvKgyk6uuuuqqq6666qqrXiQEV1111VVXXXXVVVe9SGzzwtjm38o2trHNC2Obfy3bANjm+bHN82Obfy1J3E8SkpAEgCQAJCEJSVx11VVXXXXVVVdd9Z+O4Kqrrrrqqquuuuqqf9F999136zXXXINtnpttXlS2+beyzQtjmxeVbf6jSOKBJCGJB5IEgCReVLZ5QaZpegZXXXXVVVddddVVV70oCK666qqrrrrqqquuepHY5n62eSDbPD+2+c9im/vZ5oFs869hm/vZ5j+CJCQhCQBJAEhCEv8etrnqqquuuuqqq6666kVCcNVVV1111VVXXXXVi8Q2ALb517LN/Wzzr2WbfwvbPJBt7mebF5VtXhhJSEISkpDEA0kCQBL3k4QkJPGvZZurrrrqqquuuuqqq14kBFddddVVV1111VVX/Yexzf1s8x/BNs/NNvezzQPZ5rnZ5l9im+fHNi+IJF4QSUhCEpKQxH8E29jmqquuuuqqq6666qoXCcFVV1111VVXXXXVVS+Sa665hheFbWzzwtjmv4tt7meb58c2z802LypJAEhCEveThCQk8a9lm6uuuuqqq6666qqr/tUIrrrqqquuuuqqq676F509e/ZWANvczza2eVHZ5l/LNs/NNi+Ibe5nm38v27wgknhukpAEgCTuJwlJPJAk/iW2eSDbAEzTdCtXXXXVVVddddVVV70oCK666qqrrrrqqquu+k9lm+fHNrZ5fmxjm3+Jbf4ltgGwzfNjm/vZ5t9KEveTBIAkJAEgCUlIQhIAkgCQxL+Gba666qqrrrrqqquuepEQXHXVVVddddVVV131IrONbWzz3Gzzb2GbB7LNC2KbF8Q2Lyrb/EeRhCQAJCEJAEncTxIviCReGNvY5oFsc9VVV1111VVXXXXVi4TKVVddddVVV1111VX/Lrb597LN/STxorCNJJ4f20jiv4skJCGJ+0lCEpIAkMRVV1111VVXXXXVVf/pCK666qqrrrrqqquuepFcd911vCC2eX5s80C2+beyzQtim+fHNgC2AbDN/WxzP9vczzYAtvnXkASAJO4nCUk8N0n8e0zTdCtXXXXVVVddddVVV70oCK666qqrrrrqqquu+hfdd999twLY5r+DbV5UtvnvIgkASUjifpKQhCQkcT9J3E8SLwrbXHXVVVddddVVV131IiO46qqrrrrqqquuuuo/jG2eH9vczzb/Xra5n23+NWzz/Njm30oSz48kJCEJSdxPEpK46qqrrrrqqquuuuo/HcFVV1111VVXXXXVVf8qtnlR2OY/gm1eVLa5n23+Jbb5jyIJAElIQhKSkMT9JCGJB5LE/STxorDNVVddddVVV1111VUvEoKrrrrqqquuuuqqq15ktrmfbWzz3GxjmxfGNi8K2zw329zPNv8S2wDY5kVlmxeVJO4niedHEpKQBIAkHkgSV1111VVXXXXVVVf9pyC46qqrrrrqqquuuupFIulWSQDY5j+bbf41bPOiss39bHM/2zw32zyQbe4niecmCUlIQhKSkIQkACQBIAlJ/GvYxjattVu56qqrrrrqqquuuupFQXDVVVddddVVV1111YvMNs/NNgC2eX5sA2CbB7LNC2Kb58c2Lwrb/EeyDYBtXhhJ3E8SAJK4nyT+vSRx1VVXXXXVVVddddWLjOCqq6666qqrrrrqqn8V2zw32/xb2MY297ONbV4UtrmfbZ4f2wDYBsA2z49tnh/bvCgkIQkASUgCQBIAkpAEgCQk8a9lm6uuuuqqq6666qqr/tUIrrrqqquuuuqqq656kdnmP4NtbPPC2OZFYZsXhW3+s0hCEpKQhCQAJHE/SUhCEv8akrjqqquuuuqqq6666kVGcNVVV1111VVXXXXVi+z06dP8a9jmgWzzb2GbB7LN/WzzH8k2ALb515KEJB5IEgCSkIQkJPFvZZurrrrqqquuuuqqq15kBFddddVVV1111VVXvUjOnj17q21eGNv8T2Gb58c297PN/Wzz7yGJ+0lCEpIAkIQkACQBIIl/i9VqdStXXXXVVVddddVVV72oCK666qqrrrrqqquu+lezjW1eVLa5n23+NWzzorLNc7MNgG3+PWzz/EhCEveTBIAkJCEJSQBIAkASDyQJSVx11VVXXXXVVVdd9R+O4KqrrrrqqquuuuqqF5ltbHM/29jmgWxjG9v8e9nmudnmfrb5t7DNfwZJAEjifpIAkASAJO4niX8tSVx11VVXXXXVVVdd9SIjuOqqq6666qqrrrrqRXb69Gn+p7LN/WzzorLN/WwDYJt/LUk8kCQkASAJSUgCQBKSAJDEv8Q297PNVVddddVVV1111VUvMoKrrrrqqquuuuqqq/5D2OZFZZt/iW2em22eH9s8P7YBsA2Abf4zSUISkpCEJCQhCQBJSOLfyjar1epWrrrqqquuuuqqq656URFcddVVV1111VVXXfUiue+++261zfNjmxfENgC2eSDbvCC2+ZfY5t/DNvezzb+WJCTxL5EEgCTuJwlJSOKqq6666qqrrrrqqv9UBFddddVVV1111VVX/avYxjb/EWzzQLaxzfNjm+fHNg9km/9qkrifJCQhCUkASEISkpDEVVddddVVV1111VX/ZQiuuuqqq6666qqrrnqR2eY/mm1sY5sXlW3+JbZ5fmzzwtjmfraxzYtCEpJ4IElIQhKSkASAJO4nCUlcddVVV1111VVXXfWfguCqq6666qqrrrrqqhfZ6dOnuZ9tnpttHsg2D2SbfwvbvChs89xsA2Cb52ab+9nm30ISDyQJSUgCQBIPJAkASUjiX2KbB1qv17dy1VVXXXXVVVddddWLiuCqq6666qqrrrrqqhfJfffdd6ttnptt/jPZ5oFscz/b/Gexzf1s868hCUlIQhKSkIQkJPGCSOIFsc1VV1111VVXXXXVVf9qBFddddVVV1111VVX/avY5n62eUFscz/b/Gezzf1s88LY5n62+feShCQkIYn7SQJAEpK4nyQk8UCSuOqqq6666qqrrrrqPxzBVVddddVVV1111VUvMtv8S2xjmxfENi8q2/x72OaBbPNfQRKSAJCEJAAkIYn7SUISV1111VVXXXXVVVf9pyG46qqrrrrqqquuuupFdubMGQBs80C2sc1/JNs8N9vczzb3s80LY5vnZpvnZhsA2/xbSEIS95OEJAAkIQkASfxb2MY2V1111VVXXXXVVVe9yAiuuuqqq6666qqrrvovZ5v/LLb517LNv5ck7icJSUgCQBKSAJCEJCRxP0m8qIZhuJWrrrrqqquuuuqqq15UBFddddVVV1111VVXvUjOnj37jMzENgC2eVHYBsA2D2Sb58c2tnlutnl+bPOvYZv/SJJ4IEkASAJAEpIAkMS/l22uuuqqq6666qqrrnqREVx11VVXXXXVVVdd9d/GNg9kmxeFbZ4f29zPNgC2AbDNc7PNfwRJAEgCQBIAkpAEgCQkIQkASUhCEs9NEgC2eW62ueqqq6666qqrrrrqRUZw1VVXXXXVVVddddWLzDbPzTb3s82/lm1sY5sXxDb/VWzzopLEc5MEgCQkIQlJSAJAEpK46qqrrrrqqquuuuq/BMFVV1111VVXXXXVVS+ya665BgDbvChs80C2+feyzf1scz/bvKhs89xs8+8hCUkASEIS95MEgCT+vcZxfAZXXXXVVVddddVVV72oCK666qqrrrrqqquuepHcd999t9rmgWzzn802/1q2eVHZ5gWxzf1s86KQhCQAJCEJSUhCEpKQhCQk8dwkcdVVV1111VVXXXXVfxiCq6666qqrrrrqqqteZLaxzXOzjW0AbANgm/vZ5t/CNi8K2zw/tgGwDYBtXlS2AbDNv0QSz00SkpAEgCTuJ4n7SUISknhRZCZXXXXVVVddddVVV73ICK666qqrrrrqqquu+g9nmxfENv9WtrmfbZ4f27wobPOvZZsXRBKSkIQkHkgSkpCEJAAk8aKyDYBtrrrqqquuuuqqq676VyG46qqrrrrqqquuuupFdu2112IbANv8Z7LNfzXb/GtJ4vmRhCQkIQkASUhCEgCSeFHZ5qqrrrrqqquuuuqqfzWCq6666qqrrrrqqqteJGfPnr3VNgC2+fewzQtjm+dmm+fH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5vmxzb+HbV4UknhhJCGJB5LEv4Vtrrrqqquuuuqqq676VyG46qqrrrrqqquuuurfxDYviG0AbPMvsY1tXhS2eWFs86KyDYBtAGxzP9sA2ObfShKSuJ8kJCEJAElIQhKSuOqqq6666qqrrrrqPwXBVVddddVVV1111VX/Ktdeey22eSDbPDfbPDfb/FezDYBtAGzzr2WbF5UkJHE/STw3STw/knhBbDNN061cddVVV1111VVXXfWvQXDVVVddddVVV1111b+LbQBsY5vnxzb/Fra5n23uZ5vnZpv72ebfyjbPj20AbPOCSOJ+kpAEgCQkIQlJXHXVVVddddVVV131X4bgqquuuuqqq6666qoX2X333Xcr/062eVHY5l9im//pJPHcJCEJSVx11VVXXXXVVVdd9Z+K4KqrrrrqqquuuuqqfzXbANjmfwLbPD+2eWFsA2CbF8Q2z802DySJB5IEgCQAJCEJSUjigSTxorLNVVddddVVV1111VX/KgRXXXXVVVddddVVV/2b2OY/i20eyDb3s80LY5vnZhsA2wDY5j+aJAAkASAJAEk8N0lI4kVlm6uuuuqqq6666qqr/k0Irrrqqquuuuqqq676V7n22muRxAtimweyDYBt7mebF8Q2Lwrb/EezzX8GSUhCEpK4nyQAJCGJf8k0Tbdy1VVXXXXVVVddddW/BsFVV1111VVXXXXVVf8q99133622+feyzXOzzb+Wbe5nm/vZ5r+bJK666qqrrrrqqquu+m9FcNVVV1111VVXXXXVfzjbANjmhbGNbQBs8/zY5n62+d9AEveThCQkIQlJSEISz48krrrqqquuuuqqq676D0Nw1VVXXXXVVVddddW/mm1sA2Ab29jGNvezzYvKNv9etnl+bANgGwDbANgGwDYAtnkg2/xrSeJ+kviXSEISLwpJXHXVVVddddVVV131r0Zw1VVXXXXVVVddddW/2unTp/m3sM2/hm2eH9u8MLb597DNv8Q2z48k7ieJ5yYJSVx11VVXXXXVVVdd9V+C4Kqrrrrqqquuuuqqf5X77rvvVp7JNi8K2/x72ea52QbANv8ZbPPvJQlJSEIS95PEv8ZyubyVq6666qqrrrrqqqv+tQiuuuqqq6666qqrrvovZZsXhW3+vWzzr2WbF8Q2LwpJSOIFkQSAJAAk8YLY5qqrrrrqqquuuuqqfzOCq6666qqrrrrqqqv+1Wzz38U2L4xtnpttAGwDYBsA2wDY5oWxzb+HJCQhCUk8kCReFJK46qqrrrrqqquuuupfjeCqq6666qqrrrrqqn+106dPY5vnxzYPZJvnZpsXxjYPZJvnZpv/6SQhiedHEv8atrnqqquuuuqqq6666l+N4Kqrrrrqqquuuuqq/xK2eVHY5l/DNvezzf1s869lmxfENv8RJCGJ5yYJSbwgq9XqVq666qqrrrrqqquu+tciuOqqq6666qqrrrrqX+Xs2bO32uZ+tvm3sM1zs81zs839bPNfzTb/FpK4nyQkIYkHksRVV1111VVXXXXVVf+pCK666qqrrrrqqquu+lezDYBtAGxjG9sA2AbANi+MbWxjG9v8e9jm+bENgG0eyDb/FrZ5UUlCEs9NEpIAkMRVV1111VVXXXXVVf9pCK666qqrrrrqqquu+k9hm+dmm/8ItnlhbPOC2OaBbPMfSRKSeH4kIYnnJokXxjZXXXXVVVddddVVV/2bEFx11VVXXXXVVVdd9a/WdR22+c9mmxfGNgC2+feyzX8mSfx7rNfrW7nqqquuuuqqq6666l+L4Kqrrrrqqquuuuqqf5X77rvv1mPHjvGvYZt/L9v8a9nm38o2/1qSeH4kcT9JAEhCElddddVVV1111VVX/aciuOqqq6666qqrrrrqX802/1a2eVHY5vmxzQtjm+dmm38N27wwtnlRSeJ+kgCQxIvCNvezzVVXXXXVVVddddVV/2oEV1111VVXXXXVVVf9q9kGwDbPzTb/XrZ5INs8N9v8a9kGwDYAtgGwzf1scz/bvDC2sc3zIwlJ3E8Sz48krrrqqquuuuqqq676T0Nw1VVXXXXVVVddddW/Wq0V2wDYBsA2z49tnptt/qPY5n62uZ9t/qeQxP0kASCJq6666qqrrrrqqqv+0xFcddVVV1111VVXXfWvduLECR7INgC2eUFs86Kwzf80tgGwzb+HJAAkASCJF9V6vb6Vq6666qqrrrrqqqv+tQiuuuqqq6666qqrrvpXOXv27K22eWFsA2CbF8Q2z802z80297PNC2Kb58c2Lyrb/EeTxL9EElddddVVV1111VVX/acguOqqq6666qqrrrrqX802tnlhbPMvsY1tbGObF5VtXhjbPDfbANgGwDb/lSTxwkjihbHNVVddddVVV1111VX/agRXXXXVVVddddVVV/2r2ebfwjb/GrZ5YWwDYJt/K9u8MLYBsM0D2ebfQhKSkASAJF4Utrnqqquuuuqqq6666l+N4Kqrrrrqqquuuuqqf7VrrrkGANu8KGzz72Wbfy3bvKhs8x9FEgCSAJAEgCQeSBIvqnEcn8FVV1111VVXXXXVVf9aBFddddVVV1111VVX/avcd999t/IAtnkg2/xHsM2/hW3+r7HNVVddddVVV1111VX/JgRXXXXVVVddddVVV/2b2OaBbPOisM2/h23+tWwDYJt/L9s8N9v8SyQBIAkASfxrZCZXXXXVVVddddVVV/2rEVx11VVXXXXVVVdd9a9mm+fHNv8RbPNAtnlutgGwzf1scz/bvCC2AbDN82Mb2/x7SOIFkcRVV1111VVXXXXVVf8lCK666qqrrrrqqquu+le79tpreSDbvCC2eW62+Z/ENvezzf1s869hm+cmiftJ4l/LNlddddVVV1111VVX/ZsRXHXVVVddddVVV131r2YbANs8P7YBsM39bPOisM0D2eZ+tnlBbPP82OY/mm3+I0hCEveTxAsyjuOtXHXVVVddddVVV131r0Vw1VVXXXXVVVddddW/yn333XcrgG1eGNu8MLZ5brb5j2Cb52ab/y6SuJ8knpsk/iW2ueqqq6666qqrrrrqX43gqquuuuqqq6666qr/NraxjW1s86KyDYBtAGzzorINgG2em22eH9s8P7axzb+WJCTxr2Gbq6666qqrrrrqqqv+1Qiuuuqqq6666qqrrvp3sc2Lyjb/Gra5n23+tWzzL7HNi8o2/1aSuOqqq6666qqrrrrqvxzBVVddddVVV1111VX/atdddx22eSDbANjmudnmv4pt/iPZ5n+CcRxv5aqrrrrqqquuuuqqfy2Cq6666qqrrrrqqqv+zWzzn8U2z49t/rVs8y+xzQtjmweyzQPZ5l8iiauuuuqqq6666qqr/ksRXHXVVVddddVVV131r3L27Nln8FxsA2Cbf4lt/rVs89xsA2Cb+9nmfrZ5brb5r2CbF4Uk7ieJq6666qqrrrrqqqv+wxFcddVVV1111VVXXfVvYpsXhW3+tWzzn8k2ALb5j2CbF5UkJCGJfw3bXHXVVVddddVVV131r0Zw1VVXXXXVVVddddV/ONu8MLZ5QWzzb2Gb58c2/xLbPJBtbPP82OaFsQ2AbV4Ukrjqqquuuuqqq6666j8NwVVXXXXVVVddddVV/2rXXnstkgCwzfNjG9vczzYPZJvnZpvnZpv72eb5sc0D2ebfyjb/09hmmqZbueqqq6666qqrrrrqX4vgqquuuuqqq6666qp/tfvuu+9W29jm38M297PNi8o2ALZ5UdnmP5ttrrrqqquuuuqqq676H4Xgqquuuuqqq6666qr/ULb517CNbZ4f2/xHsw2Abf4ltnl+bANgG9tcddVVV1111VVXXfU/FsFVV1111VVXXXXVVf8mtnkg2/xLbPNvZZsXhW3uZ5t/iW3uZ5t/K9v8W0nihYkIrrrqqquuuuqqq676NyG46qqrrrrqqquuuurf5NSpU9zPNgC2eX5s89/JNv8etgGwzX8kSbwobHPVVVddddVVV1111b8JwVVXXXXVVVddddVV/2pnz569VRL/mWzz/NgGwDYAtrmfbf6r2OZ+tnlRSOJ+knhRLZfLW7nqqquuuuqqq6666t+C4Kqrrrrqqquuuuqq/3C2eUFs8y+xzQPZ5l/LNs/NNi+IbZ4f2wDY5kVhG9u8MJK46qqrrrrqqquuuuq/BMFVV1111VVXXXXVVf8mtrGNbV4Y2/xXsM2LyjYAtvmPZJt/iST+tSRx1VVXXXXVVVddddW/CcFVV1111VVXXXXVVf8mfd/zwtjGNvezzf1s84LY5oFscz/bvChscz/b/EeyzYvCNv8etrHNVVddddVVV1111VX/LgRXXXXVVVddddVVV/2bbG9v8+9hm+dmmxeFbR7INv8etnkg27yobANgm+dmm/8Iy+XyVq666qqrrrrqqquu+rcguOqqq6666qqrrrrqX+2+++67FcA2z802Lyrb3M82/1q2eVHZ5l/DNv8S2/xns81VV1111VVXXXXVVf9mBFddddVVV1111VVX/bvZxja2+deyjW2eH9vczzYvCtvczzbPzTYvjG3+JbZ5INvczza2uZ9tXhhJ/EskcdVVV1111VVXXXXVvwnBVVddddVVV1111VX/JrZ5UdkGwDb/U9jmX2Kbfw3bXHXVVVddddVVV131PwrBVVddddVVV1111VX/JrYBsM1/Bts8P7Z5INvczzbPj21eENvczzYvKtv8V1mtVrdy1VVXXXXVVVddddW/BcFVV1111VVXXXXVVf9q9913361nzpzhBbHNfyTbPDfbvDC2+Y9mmxfENg9km/8otrnqqquuuuqqq6666t+E4KqrrrrqqquuuuqqfxPb2OZfYpsHss2/xDb/Wrb5l9jm38I2L4htHsg297PNA9nmqquuuuqqq6666qr/UgRXXXXVVVddddVVV/2nsI1t/iPZ5j+CbZ6bbf61bANgGwDbANjmgWxz1VVXXXXVVVddddV/C4Krrrrqqquuuuqqq/5NbPOvYZv72eYFsc0D2eZfYpsHss39bPOC2OZfYhsA2wDY5qqrrrrqqquuuuqq/zUIrrrqqquuuuqqq676N7nmmmsAsI1tAGxjmxeFbZ6bbV4UtgGwzYvKNv+ZbPNAtgGwzb/Xer2+lauuuuqqq6666qqr/i0Irrrqqquuuuqqq676Vzt79uwzbGOb+9nmX8s2trGNbf4j2OZfyzb/GrZ5QWxjGwDbXHXVVVddddVVV13134rgqquuuuqqq6666qp/E9v8Z7PN/Wzzr2Wb52abf4ltbPPC2AbANvezzQtiGwDb/GvZ5qqrrrrqqquuuuqqfxOCq6666qqrrrrqqqv+TWzzorINgG3+vWzzH8E2z49t/rVs85/JNlddddVVV1111VVX/ZsQXHXVVVddddVVV131H842/162eWFsA2Cb+9nmfra5n23+M9jmfrYBsA2AbQBsY5t/K9tcddVVV1111VVXXfVvRnDVVVddddVVV1111b/afffdd+s111yDbf4ltvn3ss2/xDb/Fra5n20eyDYPZJsXxjYAtgGwzX+EYRiewVVXXXXVVVddddVV/xYEV1111VVXXXXVVVf9u9jm+bHN82Obf4lt/jPY5r+Tbf4tMpOrrrrqqquuuuqqq/5NCK666qqrrrrqqquu+jexzf1sA2Ab29zPNvezzYvCNi+IbZ4f2zyQbe5nm+dmm38N27wgtrHN/WwDYJsXxDZXXXXVVVddddVVV/2XILjqqquuuuqqq6666t/k2muvxTb3s82LyjYvKts8N9sA2OY/im1eGNsA2Ob5sc39bHM/29jGNlddddVVV1111VVX/ZcjuOqqq6666qqrrrrq38Q2kvi3ss1zs81/Fts8N9v8W9jGNs/NNg9km6uuuuqqq6666qqr/lsRXHXVVVddddVVV131r3b27NlbAWzz72Eb29jGNs/NNvezzYvCNvezzb+XbV4Q2zw329jGNs+Pbf61hmG4lauuuuqqq6666qqr/i0Irrrqqquuuuqqq676d7HNc7PNA9kGwDb/3Wzz3Gzz72Eb2zw329jm38s2V1111VVXXXXVVVf9mxBcddVVV1111VVXXfVvZpv/LLZ5fmwDYBsA29zPNv/VbHM/29zPNvezjW1s89xs89xsA2AbANtcddVVV1111VVXXfVvQnDVVVddddVVV1111b/Jddddx/1sA2Cb/wy2+ZfY5oFscz/bPDfbPD+2sY1t/i1sY5t/iW1eVOM43spVV1111VVXXXXVVf8WBFddddVVV1111VVX/YeyDYBtAGzzQLb5l9jmfyLbvCC2eW62sc1VV1111VVXXXXVVf9tCK666qqrrrrqqquu+le77777buVFYJv/SLZ5fmzzorDNc7PN/WzzorKNbQBsA2Ab2wDY5n62eSDbXHXVVVddddVVV131X4Lgqquuuuqqq6666qp/M9vczzYvjG1eFLZ5INs8N9sA2Ob5sc39bPNvZZvnZhvb3M82z802z802trHNVVddddVVV1111VX/ZQiuuuqqq6666qqrrvp3sc2/lm2eH9v8V7DNfwbb3M82trHNVVddddVVV1111VX/bQiuuuqqq6666qqrrvo3ufbaa7HNv5VtHsg2/xFs8/zY5oWxzQtiG9u8MLYBsI1tHsg2/x7jON7KVVddddVVV1111VX/FgRXXXXVVVddddVVV/2b3HfffbdK4t/DNraxzfNjm/vZ5l/LNi+Mbf4j2Ob5sc39bGObB7LNv8Q2V1111VVXXXXVVVf9mxFcddVVV1111VVXXfVvZhsA2zyQbR7INgC2+feyDYBtAGxzP9v8R7PNC2KbB7KNbWxjGwDbPJBtbGObq6666qqrrrrqqqv+0xFcddVVV1111VVXXfUfxjb/UWzzr2GbF4Vtnptt/rVsA2AbANs8N9sA2OaFsc1zsw1ARHDVVVddddVVV1111b8ZwVVXXXXVVVddddVV/2az2QzbPJBtAGwDYJt/L9v8a9nmfrZ5brb5j2KbB7KNbQBsA2Cbf4ltrrrqqquuuuqqq676D0Vw1VVXXXXVVVddddW/2fb2NvezzXOzzXOzzb/ENv8atvmPZJvnxzYAtnl+bGOb52YbANvY5l/j6OjoVq666qqrrrrqqquu+rciuOqqq6666qqrrrrq3+Ts2bO32ua/km0eyDbPj22eH9v8S2wDYJvnxzbPj20e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17LN82MbANv8S2xzP9vYxja2sY1tbGMb29gGwDa2sc39HvWoR/EP//APv8NVV1111VVXXXXVVf8eBFddddVVV1111VVX/bv8wz/8w2+fPn2aRz/60byobPOC2OZfwzYAtrHNC2KbB7LNv4Vt7mcbANvczza2AbCNbWxzP9s8kG2e29bWFtvb25w9e/ZWrrrqqquuuuqqq6769yC46qqrrrrqqquuuurf5b777rv17//+73/71V7t1bDNA9kGwDb/XrYBsA2Abf4nsA2AbWwDYBvbPJBtbANgG9vY5vl5mZd5Gf7hH/7ht++7775bueqqq6666qqrrrrq34Pgqquuuuqqq6666qp/t9/+7d/+nkc/+tEA2OaBbHM/29zPNs/NNg9km/8Itnkg2zyQbf6j2AbANraxjW1sYxvb/Ese8YhH8Fu/9Vvfw1VXXXXVVVddddVV/14EV1111VVXXXXVVVf9u/3Wb/3Wd58+fZr3eZ/34V/DNraxjW3+rWzzX80297PNA9kGwDa2sY1tbGMb29gGwDa2ud9LvuRLct999936W7/1W9/NVVddddVVV1111VX/XgRXXXXVVVddddVVV/2H+K3f+q3vftSjHsWpU6f4n8Q2/162eSDbPDfb2MY2ALYBsI1tHsg2ALZ5oM3NTa677rpb/+Ef/uG3ueqqq6666qqrrrrqPwLBVVddddVVV1111VX/IX70R3/0c06fPs17v/d7A2Cbfw/b3M82z49tXhjbPDfbPJBt/q1sY5vnZhvb2OZ+trGNbQBs80C2eYVXeAUAvv7rv/59uOqqq6666qqrrrrqPwLBVVddddVVV1111VX/Ie67775bv/7rv/59HvnIR/LKr/zKPDfbANjm38o2ALb5n8g2trmfbWxjG9vYxja2AbDN/W655RauueYafvRHf/RzuOqqq6666qqrrrrqPwrBVVddddVVV1111VX/YX7rt37ru//hH/7ht9/szd6MRzziEfxb2ebfyzb/VraxzYvKNra5n21sA2Ab29jmgWwDYJv5fM7LvuzL8g//8A+//Vu/9VvfzVVXXXXVVVddddVV/1EIrrrqqquuuuqqq676D/X1X//173Pq1Cne4z3egxMnTvDvZZsXhW1sYxvbPD+2eSDbPDfb3M82D2Qb27wgtrGNbQBsYxvbANjGNra533w+5yVf8iW57777bv2RH/mRz+Gqq6666qqrrrrqqv9IBFddddVVV1111VVX/Ye67777bv3Mz/zM1zl58iQf+ZEfCYBtHsg2L4ht/jVs8x/FNi8q27wwtrHN/WxjG9sA2MY2j3nMYzh58iRf//Vf/z7/8A//8NtcddVVV1111VVXXfUfiXL8+HGuuuqqq6666qqrrvqPdfbs2VsBXuEVXuG1X/EVX5Hf/d3fRRKSkIQkACQhCUlIQhIAkpCEJAAkASAJAEkASAJAEgCSkIQkJCEJSUgCQBKSkIQkACQhCUkASEISkpCEJCQBIAlJRASSiAgkUUohIiilUEohIiilUEohIpAEgG1s01qjtcajH/1ojh8/zo/+6I9+zm/91m99N1ddddVVV1111VVX/UejHD9+nKuuuuqqq6666qqr/uPdd999tx4eHu6+wiu8wmu/wiu8An//93/ParVCEpKQhCQkIQlJAEhCEpIAkIQkACQBIAkASQBIAkASkpCEJCQhCUkASEISkgCQhCQkIQkASUhCEpIAkIQkJCEJSUQEkogIIoJSChFBKYVSCqUUIoKIQBL3y0xKKTzkIQ9hZ2eHf/iHf/jtr//6r38frrrqqquuuuqqq676z0A5fvw4V1111VVXXXXVVVf9xzs6Orp09uzZZxweHu6+wiu8wmu/+Iu/OP/wD//Aer1GEpJ4bpKQhCQkASAJSQBIAkASAJK4nyQkIQlJSEISkgCQhCQkIQkASUhCEgCSkIQkJCEJSUhCEpKQhCQigoggIogISimUUiilEBGUUogISilEBJKwTSmFRz3qUcxmM/7hH/7htz/zMz/zdbjqqquuuuqqq6666j8L5fjx41x11VVXXXXVVVdd9Z/j8PBw9+zZs884PDzcfYVXeIXXfvEXf3Hm8zlPf/rTkYQkJCEJSUhCEpKQBIAkJAEgCQBJAEjifpKQhCQkIQlJSAJAEpKQhCQAJCEJSQBIQhKSkIQkJCEJSUhCEpKICCKCiCAiiAhKKUQEpRRKKZRSiAgkAbBYLHjoQx8KwD/8wz/89md+5me+DlddddVVV1111VVX/WeiHD9+nKuuuuqqq6666qqr/vMcHh7unj179hmHh4e7L//yL//aD3vYwwB4+tOfjiQkIQlJSEISkgCQhCQAJCGJ+0kCQBIAkpCEJCQhCUkASEISkpAEgCQkIQlJAEhCEpKQhCQkIQlJSEISkogIIgJJRASlFCKCUgoRQSmFiCAikMTp06e5/vrrAfit3/qt7/6SL/mSt+Gqq6666qqrrrrqqv9slOPHj3PVVVddddVVV1111X+uw8PD3X/4h3/4HYAXf/EXf+2HPvShvNzLvRyPf/zjWa1WSEISkpCEJAAkIQkASQBIAkASAJIAkIQkJCEJSQBIQhKSkIQkACQhCUkASEISkpCEJCQhCQBJSEISkogIIoKIICIopVBKISIopRARRATz+Zybb76Z48ePc9999936Xd/1XR/zoz/6o5/DVVddddVVV1111VX/FSjHjx/nqquuuuqqq6666qr/Gv/wD//wO7/927/9Pa/4iq/41qdPnz7+2Mc+lsViwdOf/nQkIQlJAEhCEpIAkASAJAAkASAJAElIQhKSAJCEJCQhCUkASEISkpAEgCQkIQlJSEISkpCEJCQhCUlIQhIRQUQQEUQEpRQiglIKN954Iw9+8IPp+5777rvv1q//+q9/nz/90z/9aa666qqrrrrqqquu+q+CHvSgB3HVVVddddVVV1111X+ta6655sEv9mIv9tof/uEf/l0AFy9e5Ld+67f467/+ayQBIAlJAEhCEgCSAJDE/SQBIAlJSEISkpCEJCQhCQBJSEISAJKQhCQkIQlJSEISkogIJBERlFKICEop1FqptVJrpes6uq7jzJkzPPKRj2Q2mwHwIz/yI5/9oz/6o5/DVVddddVVV1111VX/1dCDHvQgrrrqqquuuuqqq67673HNNdc8+HM+53N+65prrnkwwO7uLj/5kz/JM57xDCQhCQBJSAJAEgCSuJ8kACQhCUlIQhKSkIQkACQhCUlIAkASkpCEJCQhCUlIQhIRgSQiglIKEUEphVorpRS6rmNnZ4eXeImX4MSJEwDcd999t37913/9+/zDP/zDb3PVVVddddVVV1111X8H9KAHPYirrrrqqquuuuqqq/77nDlz5kGv8zqv896v8zqv897XXHPNgwF2d3f57d/+bf7mb/4GAEkASAJAEgCSAJAEgCQkIQlJSEISkpAEgCQkIQlJAEhCEpKQhCQkIQlJSCIikEREEBGUUiilUErhxV/8xXnQgx7ExsYGAPfdd9+tv/Vbv/XdP/qjP/o5XHXVVVddddVVV1313wk96EEP4qqrrrrqqquuuuqq/37XXHPNg1/7tV/7vV78xV/8tV/sxV7stQF2d3f567/+a57xjGfwjGc8A0kASAJAEveThCQkIQlJSEISkgCQhCQkIQkASUhCEpKQBIAkIgJJSCIikEREEBHs7Ozw8Ic/nBd/8RcH4L777rsV4Ld+67e++0d/9Ec/h6uuuuqqq6666qqr/idAD3rQg7jqqquuuuqqq6666n+Oa6655sEv9mIv9lqv8zqv894v9mIv9to80+7uLn/zN3/DM57xDG677TYAJHE/SUhCEpKQhCQkIQkASUhCEpIAkIQkJCEJAElIQhIRgSQksbOzwyMf+Uge/vCHs7W1xf3uu+++W3/rt37ru3/0R3/0c7jqqquuuuqqq6666n8S9KAHPYirrrrqqquuuuqqq/5nuuaaax782q/92u/1Tu/0Tp/NA+zu7vKMZzyDZzzjGezt7fGMZzwDSUhCEpKQhCQkASAJSUhCEpIAkIQkJAEgCUlIYmdnh0c/+tHccMMNXH/99TzQfffdd+tv/dZvffdv//Zvf8999913K1ddddVVV1111VVX/U+EHvSgB3HVVVddddVVV1111f9s11xzzYPPnDnzoNd5ndd572uuuebBL/ZiL/baPJdLly5x2223AXD77bcDsLe3x97eHgCS2N/fRxLHjh0DQBI7OztI4qabbgLgxhtvZGdnh+3tbZ7bfffdd+tv/dZvffc//MM//PY//MM//A5XXXXVVVddddVVV/1Phx70oAdx1VVXXXXVVVddddX/Ltdcc82DX+zFXuy1X+zFXuy1rrnmmge/2Iu92Gvzn+C+++679bd+67e+G+BHf/RHP4errrrqqquuuuqqq/63QQ960IO46qqrrrrqqquuuup/t2uuuebBAC/2Yi/22oBf7MVe7LUBrrnmmgefOXPmwTzTNddc82CA++6771ae6ezZs7cC/P3f//1vA5w9e/YZ9913363/8A//8NtcddVVV1111VVXXfW/HXrQgx7EVVddddVVV1111VVXXXXVVVddddVVV131fxKVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r+IfAYKdxSKivd0UAAAAAElFTkSuQmCC) diff --git a/docs/kcl-std/functions/std-solid-chamfer.md b/docs/kcl-std/functions/std-solid-chamfer.md index 215c1fbd1..c9acc2792 100644 --- a/docs/kcl-std/functions/std-solid-chamfer.md +++ b/docs/kcl-std/functions/std-solid-chamfer.md @@ -63,7 +63,7 @@ mountingPlate = extrude(mountingPlateSketch, length = thickness) ``` -![Rendered example of chamfer 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAACtpUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXV/wEv9mIv9tpcddVVV1111X+Cf/iHf/htrrrqqquuuup/LypXXXXVVVdd9b/MNddc8+DXfu3Xfq9rrrnmwa/zOq/z3lx11VVXXXXVf5L77rvvVoB/+Id/+O1/+Id/+J1/+Id/+O377rvvVq666qqrrrrqfw/0oAc9iKuuuuqqq676n+6aa6558Gu/9mu/14u/+Iu/9ou92Iu9Ns/H0572NK666qqrrrrqP8pDH/pQnp/77rvv1t/6rd/67n/4h3/4nX/4h3/4ba666qqrrrrqfzb0oAc9iKuuuuqqq676n+aaa6558Gu/9mu/F8A7vdM7fTYPcPHiRS5evMjTnvY0fuM3foOrrrrqqqtedLa56l/nxIkTPPShD+WhD30oL/dyL8cDnT179hl///d//1v/8A//8Du/9Vu/9d1cddVVV1111f886EEPehBXXXXVVVdd9T/BNddc8+DXfu3Xfq8Xf/EXf+0Xe7EXe20e4OLFi/zFX/wFT3/603na057GVf//SOKqF41trrrqP5JtrrrixIkTnDhxgpd7uZfjxIkTPPShD+V+9913360Av/3bv/09f//3f//b//AP//DbXHXVVVddddV/P/SgBz2Iq6666qqrrvrvcM011zz4zJkzD36xF3ux13qnd3qnz+a5XLx4kb/4i7/gL//yL7l48SJX/eeQxFVX/VezzVX/t9nm/4MTJ07w0Ic+lJd7uZfjoQ99KA9033333foP//APv/0P//APv/Nbv/Vb381VV1111VVX/fdAD3rQg7jqqquuuuqq/yrXXHPNg1/7tV/7vV78xV/8tV/sxV7stXmAixcv8hd/8Rfs7u7yF3/xF/x/J4mrrrrq38c2V/3vYJv/7U6cOMFDH/pQHvrQh/LQhz6UEydOcL+zZ88+47777nv63//93//2P/zDP/zOP/zDP/w2V1111VVXXfVfAz3oQQ/iqquuuuqqq/4zvdiLvdhrv9iLvdhrvc7rvM57X3PNNQ/mAS5evMhf/MVf8Jd/+ZdcvHiR/60kcdVVV/3/YJur/nvZ5n+DEydO8HIv93I89KEP5aEPfSgPdN999936D//wD7/zW7/1W9/9D//wD7/NVVddddVVV/3nQQ960IO46qqrrrrqqv9I11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5gIsXL/IXf/EXAPzGb/wG/90kcdVVV13138E2V/3ns83/BCdOnOChD30oD33oQ3m5l3s5Hui+++679R/+4R9++x/+4R9+57777rv1H/7hH36bq6666qqrrvqPgx70oAdx1VVXXXXVVf9e11xzzYNf+7Vf+71e53Ve572vueaaB/MAFy9e5C/+4i94+tOfztOe9jT+I0niqquuuur/I9tc9R/HNv+VTpw4wcu93Mvx0Ic+lIc+9KE80H333XfrP/zDP/z2b/3Wb33PP/zDP/w2V1111VVXXfXvgx70oAdx1VVXXXXVVf9a11xzzYNf+7Vf+70A3umd3umzeYCLFy9y8eJFnva0p/Ebv/Eb/EskcdVVV1111X8N21z1b2eb/2gnTpzgoQ99KA996EN5uZd7OR7ovvvuu/Uf/uEffucf/uEffvu3fuu3vpurrrrqqquu+tdDD3rQg7jqqquuuuqqF8U111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bR7g4sWL/OVf/iVPe9rTePrTn85VV/17SeKq/1i2ueqqfyvbXPWis82/xYkTJzhx4gQPfehDeehDH8pDH/pQHui+++679bd+67e++x/+4R9+5x/+4R9+m6uuuuqqq676l6EHPehBXHXVVVddddXzc8011zz4xV7sxV77zJkzD3qnd3qnz+a5PO1pT+PpT386v/Ebv8FV/3tJ4qqr/jvZ5qr/e2xz1Qtnm3/JiRMneOhDH8rLvdzL8dCHPpQHuu+++279h3/4h9/+h3/4h9/5rd/6re/mqquuuuqqq54/9KAHPYirrrrqqquuut8111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bR7g4sWL/OVf/iVPe9rTePrTn85V/7kkcdVVV/3HsM1V/7PZ5qrnZZv7nThxghMnTvByL/dynDhxgoc+9KHc77777rtVkn7zN3/zu/7hH/7hd/7hH/7ht7nqqquuuuqqK9CDHvQgrrrqqquu+v/rmmuuefCZM2ce/GIv9mKv9U7v9E6fzXO5ePEif/mXf8lf/uVfcvHiRa56wSRx1VVX/f9gm6v++9jmKjhx4gQPfehDedmXfVke+tCH8kD33Xffrf/wD//w2//wD//wO7/1W7/13Vx11VVXXfX/GXrQgx7EVVddddVV/79cc801D37t137t93rxF3/x136xF3ux1+YBLl68yF/+5V9y8eJF/vIv/5L/DyRx1VVXXfXfwTZX/eexzf8XJ06c4CEPeQgPfehDebmXezke6L777rv17Nmzt/7Wb/3W99x33323/sM//MNvc9VVV1111f8n6EEPehBXXXXVVVf933fNNdc8+LVf+7Xf63Ve53Xe+5prrnkwD3Dx4kX+8i//kqc97Wk8/elP538bSVx11VVX/X9jm6v+49jm/5ITJ07wsi/7sjz0oQ/loQ99KA909uzZZ/z93//9b/3Wb/3W9/zDP/zDb3PVVVddddX/dehBD3oQV1111VVX/d9zzTXXPPi1X/u13+uaa6558Ou8zuu8Nw9w8eJF/vIv/xKA3/iN3+B/CklcddVVV131n8s2V/3b2OZ/oxMnTvDQhz6UhzzkIbzcy70cD3Tffffd+g//8A+//Q//8A+/8w//8A+/fd99993KVVddddVV/9egBz3oQVx11VVXXfV/wzXXXPPg137t136v13md13nva6655sE8wMWLF/nLv/xLnva0p/H0pz+d/0ySuOqqfytJXPVfwzZXXfWiss1VLxrb/E914sQJAF72ZV+Whz70oTz0oQ/lge67775bf+u3fuu7/+Ef/uF3/uEf/uG3ueqqq6666v8C9KAHPYirrrrqqqv+93rHd3zHzwJ4p3d6p8/mAS5evMjFixd5+tOfzm/8xm/w7yGJq/7vksRVV/1PYJur/u+wzVUvmG3+Jzhx4gQPfehDechDHsLLvdzL8UBnz559xt///d//1j/8wz/8zm/91m99N1ddddVVV/1vhR70oAdx1VVXXXXV/04f/uEf/l0v9mIv9trXXHPNgwEuXrzIX/7lX/K0pz2Npz/96bwgkrjqfwdJXHXVVf8xbHPV/0y2uep52ea/0okTJzhx4gQPechDeOhDH8pDH/pQAP7hH/7ht++7775bv/7rv/59uOqqq6666n8j9KAHPYirrrrqqqv+93nHd3zHz3qnd3qnzwZ42tOexk/+5E9y8eJFrvrvJYmrrrrq/wfbXPVfzzZXXWGb/0wnTpzg9V7v9Xi5l3s5AH7kR37ks3/0R3/0c7jqqquuuup/G8rx48e56qqrrrrqf5cXe7EXe+2P+IiP+G6Ab//2b+c3f/M3Wa1WXPXvIwlJSEISkpCEJCQhCUlIQhKSkIQkJCGJq6666v8PSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlc9a8nCUlIQhKSkIQkJCEJSUji/zpJSEISkpCEJCQhCUn8e6xWKx73uMfx9Kc/nZd7uZfjmmuuefAznvGMv7nvvvtu5aqrrrrqqv9NKMePH+eqq6666qr/Pa655poHf8VXfMVfAfzGb/wGf/VXf8VVV0hCEpKQhCQkIQlJSEISkpCEJCQhCUlcddVVV/1Xk4QkJCEJSUhCEpKQhCQkIQlJSEISV/3LJCEJSUhCEpKQhCQkIYn/yyQhCUlIQhKSkIQkXhQXL14E4CVe4iWOv/iLv/jr/Omf/ulPHx4e7nLVVVddddX/FgRXXXXVVVf9r/LhH/7h3wXw9Kc/nd/8zd/k/yJJSEISkpCEJCQhCUlIQhKSkIQkrrrqqqv+P5GEJCQhCUlIQhKSkIQkJCEJSUjiquclCUlIQhKSkIQkJCGJ/6skIQlJSEISkpCEJO73l3/5lzztaU/jzJkzD/rwD//w7+Kqq6666qr/TSjHjx/nqquuuuqq/x3e8R3f8bNe53Ve570vXrzI13/91/O/gSQkIQlJSEISkpCEJCQhCUlI4qr/3yQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISV/3/IglJSEISkpCEJCQhCUlIQhKSuAokIQlJSEISkpCEJCQhif9rJCGJ1WrF05/+dB772Mdyyy23PBjgH/7hH36Hq6666qqr/jegHD9+nKuuuuqqq/7ne7EXe7HX/oiP+IjvBviBH/gBdnd3+e8gCUlIQhKSkIQkJCEJSUhCElf97yAJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSOKq/3qSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCSu+p9JEpKQhCQkIQlJSEISkpCEJP4/k4QkJCEJSUhCEpKQxP9Wq9WKu+++m5d7uZfjmmuuefCtt976N2fPnr2Vq6666qqr/qejHD9+nKuuuuqqq/5nu+aaax78FV/xFX8F8Bu/8Rv81V/9Ff9RJCEJSUhCEpKQhCQkIQlJSOKq/x6SkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhJXXfU/hSQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxFX/NSQhCUlIQhKSkIQkJCEJSUji/xtJSEISkpCEJCQhif/Jdnd3AXiJl3iJ4y/2Yi/22n/2Z3/2M4eHh7tcddVVV131PxnBVVddddVV/+N9+Id/+HcBPP3pT+c3f/M3+ZdIQhKSkIQkJCEJSUhCEpK46j+HJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJXHXVVf8xJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlc9R9HEpKQhCQkIQlJSEISkvj/QhKSkIQkJCEJSUhCEv+dfuM3foOnPe1pXHPNNQ/+nM/5nN/iqquuuuqq/+kox48f56qrrrrqqv+53vEd3/GzXud1Xue9L168yDd8wzcgCUlIQhKSkIQkJCGJq/59JCEJSUhCEpKQhCQkIQlJSEISkpCEJCRx1VVX/d8nCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmr/nUkIQlJSEISkpCEJCQhCUn8XycJSUhCEpKQhCQk8Z/t6U9/Oo997GM5ffr0cUn6h3/4h9/mqquuuuqq/6kIrrrqqquu+h/rxV7sxV77nd7pnT4b4Cd/8ie56kUnCUlIQhKSkIQkJCEJSUhCEpKQhCSuuuqqq/6rSEISkpCEJCQhCUlIQhKSkIQkJCGJq144SUhCEpKQhCQkIQlJ/F8mCUlIQhKSkIQkJPHvdfHiRb79278dgHd8x3f8rBd7sRd7ba666qqrrvqfinL8+HGuuuqqq676n+eaa6558Fd8xVf8FcBv/uZv8ld/9Vf8fyQJSUhCEpKQhCQkIQlJSEISkpDEVVddddX/dZKQhCQkIQlJSEISkpCEJCQhCUlc9WySkIQkJCEJSUhCEpKQxP9FkpCEJCQhCUlIQhIvitVqBcBDH/pQXuzFXuy1/+zP/uxnDg8Pd7nqqquuuup/GoKrrrrqqqv+R/rwD//w7wJ4+tOfzm/+5m/yf4EkJCEJSUhCEpKQhCQkIQlJSOKq/58kIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCElf9/yEJSUhCEpKQhCQkIQlJSEISkvj/ThKSkIQkJCEJSUhCEv/XSEISkpCEJCQhiQf6jd/4DZ72tKdxzTXXPPhzPudzfourrrrqqqv+J6IcP36cq6666qqr/md5x3d8x896ndd5nfe+ePEi3/AN38D/VJKQhCQkIQlJSEISkpCEJCRx1f98kpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMRV//UkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlc9T+PJCQhCUlIQhKSkIQkJCGJ/68kIQlJSEISkpCEJCTxf4UkJCEJSTz96U/nsY99LKdPnz5+zTXXPPhP//RPf4arrrrqqqv+J6EcP36cq6666qqr/ud4sRd7sdf+iI/4iO8G+MEf/EF2d3f5ryIJSUhCEpKQhCQkIQlJSEISV/3Xk4QkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSuOqq/wkkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxFX/+SQhCUlIQhKSkIQkJCEJSUji/xNJSEISkpCEJCQhCUn8b7RarXj84x/Pq77qq/KQhzzkpc+ePfuMW2+99a+56qqrrrrqfwrK8ePHueqqq6666n+Ga6655sFf8RVf8VcAv/mbv8lf/dVf8R9BEpKQhCQkIQlJSEISkrjqP4ckJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiauuuurfRxKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpDEVf8xJCEJSUhCEpKQhCQkIYn/LyQhCUlIQhKSkIQk/qdarVbs7u7y2Mc+lgc/+MEv/Wd/9mc/c3h4uMtVV1111VX/ExBcddVVV131P8aHf/iHfxfA05/+dH7zN3+TF0YSkpCEJCQhCUlIQhKSkMRV/3aSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrjqqqv+b5KEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxFUvOklIQhKSkIQkJCEJSUji/zpJSEISkpCEJCQhif9Of/mXf8lf/uVfcs011zz4cz/3c3+bq6666qqr/qcguOqqq6666n+Ed3zHd/ysF3uxF3vt3d1dvvM7vxNJSEISkpCEJCQhiatedJKQhCQkIQlJSEISkpCEJCQhCUlI4qqrrrrqP5MkJCEJSUhCEpKQhCQkIQlJSEISkrjq+ZOEJCQhCUlIQhKSkIQk/q+ShCQkIQlJSEISkvjP9pu/+ZtcvHiRM2fOPOjDP/zDv4urrrrqqqv+J6AcP36cq6666qqr/nu92Iu92Gt/xEd8xHcD/OAP/iC7u7tc9bwkIQlJSEISkpCEJCQhCUlIQhKSuOqqq676v0gSkpCEJCQhCUlIQhKSkIQkJHHVs0lCEpKQhCQkIQlJSOL/IklIQhKSkIQkJCGJf6/VasXjH/94XvVVX5WHPOQhL3327Nln3HrrrX/NVVddddVV/50ox48f56qrrrrqqv8+11xzzYO/4iu+4q8AfvInf5LHP/7x/H8gCUlIQhKSkIQkJCEJSUhCEpK46v8fSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSuOr/PklIQhKSkIQkJCEJSUhCEpKQxP9nkpCEJCQhCUlIQhKS+L9GEpKQhCQkIQlJvKhWqxW7u7s89rGP5cEPfvBL/9mf/dnPHB4e7nLVVVddddV/F4Krrrrqqqv+W334h3/4dwE8/elP56/+6q/430oSkpCEJCQhCUlIQhKSkIQkrvqfTRKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpK46r+WJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJHHV/yySkIQkJCEJSUhCEpKQhCT+P5KEJCQhCUlIQhKSkMT/FZKQhCQkIQlJSOK5/eVf/iV/+Zd/yTXXXPPgz/mcz/ktrrrqqquu+u9EOX78OFddddVVV/33+NzP/dzferEXe7HX3t3d5Ru/8Rv5n0YSkpCEJCQhCUlIQhKSkMRV//UkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxFVX/XeShCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCElf955KEJCQhCUlIQhKSkIQkJPH/iSQkIQlJSEISkpCEJP63k4QkJCEJSdx999085jGP4fTp08evueaaB//pn/7pz3DVVVddddV/B4Krrrrqqqv+W7zYi73Ya7/Yi73YawP85E/+JP9VJCEJSUhCEpKQhCQkIQlJXPUfSxKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJK666qp/PUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISV/37SEISkpCEJCQhCUlIQhKS+P9AEpKQhCQkIQlJSOJ/o93dXb7jO74DgNd5ndd579d5ndd5b6666qqrrvrvQDl+/DhXXXXVVVf917rmmmse/BVf8RV/BfCd3/mdPP3pT+ffSxKSkIQkJCEJSUhCEpK46t9OEpKQhCQkIQlJSEISkpCEJCQhCUlI4qqrrvq/RRKSkIQkJCEJSUhCEpKQhCQkIQlJSOKqF50kJCEJSUhCEpKQhCQk8X+ZJCQhCUlIQhKSkMT/VKvViosXL/LYxz6WhzzkIS/zp3/6pz99eHi4y1VXXXXVVf+VCK666qqrrvov9+Ef/uHfBfD0pz+dpz/96bwwkpCEJCQhCUlIQhKSkMRVLxpJSEISkpCEJCQhCUlIQhKSkIQkJHHVVVdd9R9JEpKQhCQkIQlJSEISkpCEJCQhCUlc9fxJQhKSkIQkJCEJSUhCEv8XSUISkpCEJCQhCUn8d/qrv/or/vIv/5IzZ8486HM+53N+i6uuuuqqq/6rUY4fP85VV1111VX/dT73cz/3t17sxV7stXd3d/mmb/omJCEJSUhCEpKQhCSuev4kIQlJSEISkpCEJCQhCUlIQhKSuOqqq676v0ASkpCEJCQhCUlIQhKSkIQkJHHVs0lCEpKQhCQkIQlJSOL/GklIQhKSkIQkJPFf4e677+b666/npptuOn7NNdc8+E//9E9/hquuuuqqq/6rUI4fP85VV1111VX/NV7sxV7std/pnd7pswF+8Ad/kN3dXa66QhKSkIQkJCEJSUhCEpKQhCSu+v9HEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlI4qr/+yQhCUlIQhKSkIQkJCEJSUhCEv+fSUISkpCEJCQhCUlI4v8KSUhCEpKQhCQkIYn/CKvViqc//em86qu+Kg95yENeGuAf/uEffoerrrrqqqv+K1COHz/OVVddddVV//muueaaB3/FV3zFXwF853d+J7feeiv/l0lCEpKQhCQkIQlJSEISkpDEVf9zSUISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhJX/eeShCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJK76n0USkpCEJCQhCUlIQhKSkMT/R5KQhCQkIQlJSEIS/1dIQhKSkIQkJCGJf43VasXFixd57GMfyzXXXPPgW2+99W/Onj17K1ddddVVV/1nI7jqqquuuuq/xId/+Id/F8DTn/50br31Vv43koQkJCEJSUhCEpKQhCQkcdV/HUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiauu+q8kCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJK76zyUJSUhCEpKQhCQkIQlJSOL/C0lIQhKSkIQkJCEJSfxvJwlJSEISkpCEJJ6fv/qrv+I3f/M3ueaaax784R/+4d/FVVddddVV/xUox48f56qrrrrqqv9cn/u5n/tbL/ZiL/bau7u7fNM3fRP/k0hCEpKQhCQkIQlJSEISkrjqP44kJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiauuuupFIwlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUjiqn8fSUhCEpKQhCQkIQlJSOL/A0lIQhKSkIQkJCGJ/80kIQlJSEISktjd3eX666/npptuOn7NNdc8+E//9E9/hquuuuqqq/4zUY4fP85VV1111VX/eV7ndV7nvd/8zd/8owF+8Ad/kN3dXf4rSEISkpCEJCQhCUlIQhJX/dtIQhKSkIQkJCEJSUhCEpKQhCQkIQlJXHXVVf+7SUISkpCEJCQhCUlIQhKSkIQkJCEJSVz1opGEJCQhCUlIQhKSkIQk/i+ThCQkIQlJSEISkvjfaLVa8fSnP51XfdVX5SEPechLA/zDP/zD73DVVVddddV/Fsrx48e56qqrrrrqP8eLvdiLvfYnfdIn/RTAd37nd3Lrrbfy7yUJSUhCEpKQhCQkIQlJXPUvk4QkJCEJSUhCEpKQhCQkIQlJSEISV1111VX/HpKQhCQkIQlJSEISkpCEJCQhCUlI4qrnJQlJSEISkpCEJCQhCUn8XyQJSUhCEpKQhCT+J1utVuzu7vKYxzyGa6655sG33nrr35w9e/ZWrrrqqquu+s9AcNVVV1111X+ad3qnd/osgL/6q7/i1ltv5V8iCUlIQhKSkIQkJCGJq54/SUhCEpKQhCQkIQlJSEISkpDEVVddddX/RpKQhCQkIQlJSEISkpCEJCQhiauukIQkJCEJSUhCEpKQxP8lkpCEJCQhCUlIQhL/3f7qr/6K3/zN3+Saa6558Id/+Id/F1ddddVVV/1noRw/fpyrrrrqqqv+433u537ub73Yi73Yaz/96U/nh37oh5CEJCQhCUlIQhKSkMRVV0hCEpKQhCQkIQlJSEISkpCEJK76/0cSkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSuOr/B0lIQhKSkIQkJCEJSUhCEpL4/0wSkpCEJCQhCUlIQhL/V0hCEpKQhCQkIYn/Kru7u1x//fXcdNNNx6+55poH/+mf/unPcNVVV1111X80yvHjx7nqqquuuuo/1uu8zuu895u/+Zt/NMBP//RPc+nSJf4/k4QkJCEJSUhCEpKQhCQkIYmr/ueShCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCRx1X8MSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISV/3PIQlJSEISkpCEJCQhCUlIQhL/30hCEpKQhCQkIQlJ/F8gCUlIQhKSkIQk/iOtViue/vSn86qv+qo85CEPeWmAf/iHf/gdrrrqqquu+o9EOX78OFddddVVV/3HebEXe7HX/qRP+qSfAviu7/oubr31Vv4vkoQkJCEJSUhCEpKQhCQkcdV/LUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCRx1VX/mSQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpDEVf+5JCEJSUhCEpKQhCQkIQlJ/H8gCUlIQhKSkIQkJCGJ/80kIQlJSEISkpDEv8VqtWJ3d5fHPOYxXHPNNQ9+xjOe8Tf33XffrVx11VVXXfUfheCqq6666qr/UB/+4R/+XQB//dd/za233sr/NpKQhCQkIQlJSEISkpDEVf+xJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlcddVVz0sSkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQxFX/PpKQhCQkIQlJSEISkpDE/3WSkIQkJCEJSUhCEv9bSUISkpCEJCQhiRfmr/7qr/jN3/xNrrnmmgd/+Id/+Hdz1VVXXXXVfyTK8ePHueqqq6666j/G537u5/7WQx7ykJe+9dZb+aEf+iH+J5GEJCQhCUlIQhKSkIQkrvrXk4QkJCEJSUhCEpKQhCQkIQlJSEISkpDEVVdd9b+HJCQhCUlIQhKSkIQkJCEJSUhCEpKQxFUvGklIQhKSkIQkJCEJSUji/ypJSEISkpCEJCTxv5UkJCEJSUhCEpIA2N3d5frrr+fGG288fs011zz4T//0T3+Gq6666qqr/iNQjh8/zlVXXXXVVf9+7/iO7/hZr/M6r/PeAN/1Xd/FarXiv4IkJCEJSUhCEpKQhCQkcdW/TBKSkIQkJCEJSUhCEpKQhCQkIYmrrrrqqn8NSUhCEpKQhCQkIQlJSEISkpCEJCRx1fOShCQkIQlJSEISkpDE/zWSkIQkJCEJSUhCEv8bSWK9XnPrrbfyKq/yKjzkIQ95aYB/+Id/+B2uuuqqq67696IcP36cq6666qqr/n1e7MVe7LU/4iM+4rsBvuu7vot77rmH/wiSkIQkJCEJSUhCEpK46nlJQhKSkIQkJCEJSUhCEpKQhCQkcdVVV131P50kJCEJSUhCEpKQhCQkIQlJSOIqkIQkJCEJSUhCEpKQxP8lkpCEJCQhCUlI4n+61WrF7u4uj3nMY7jmmmsefOutt/7N2bNnb+Wqq6666qp/D/SgBz2Iq6666qqr/n2+6Zu+6enXXHPNg3/rt36L3/7t3+ZFIYmrXjSSuOqqf4kkrnrR2eaqq54f21z1/Nnm/zrb/E/wOq/zOrzO67wO9913360f8iEf8hCuuuqqq67696AcP36cq6666qqr/u0+93M/97ce8pCHvPStt97KT//0TwMgCUlIQhKSkIQkJCGJ/88kIQlJSEISkpCEJCQhCUlI4qr/mSQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUjiqn8dSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrjqfw5JSEISkpCEJCQhCUlIQhL/30hCEpKQhCQkIQlJ/F8gCUlIQhKSkIQk/ivt7u5y3XXXcdNNNx2/5pprHvynf/qnP8NVV1111VX/VpTjx49z1VVXXXXVv807vuM7ftbrvM7rvDfAd3/3d7Ner5HE/0eSkIQkJCEJSUhCEpKQhCSu+q8jCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJK666j+SJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrjqP48kJCEJSUhCEpKQhCQkIYn/DyQhCUlIQhKSkIQk/reThCQkIQlJSEIS/9FWqxW33norj3nMY3jMYx7z0pL0D//wD7/NVVddddVV/xaU48ePc9VVV1111b/ei73Yi732R3zER3w3wHd/93dzzz338H+RJCQhCUlIQhKSkIQkJHHVfxxJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEldddRVIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrjq304SkpCEJCQhCUlIQhKS+L9MEpKQhCQkIQlJSOJ/M0lIQhKSkIQk/j1WqxV33303L/MyL8M111zzkKc//el/ffbs2Vu56qqrrrrqX4ty/Phxrrrqqquu+tf73M/93N/a3Nw8/tu//dv89V//Nf/bSEISkpCEJCQhCUlIQhJX/etJQhKSkIQkJCEJSUhCEpKQhCQkIQlJXHXVVf9zSUISkpCEJCQhCUlIQhKSkIQkJCEJSVz1L5OEJCQhCUlIQhKSkIQk/i+ShCQkIQlJSEISkvjfSBKSkIQkJCEJSbwodnd3AXixF3ux4y/2Yi/22n/2Z3/2M4eHh7tcddVVV131r0Fw1VVXXXXVv9rnfu7n/tY111zz4FtvvZXf/u3f5n8SSUhCEpKQhCQkIQlJSOKqF04SkpCEJCQhCUlIQhKSkIQkJCEJSVx11VVXvSCSkIQkJCEJSUhCEpKQhCQkIQlJXPW8JCEJSUhCEpKQhCQk8X+NJCQhCUlIQhKSkMT/NpKQhCQkIQlJSOKB/uqv/oqnP/3pXHPNNQ/+8A//8O/iqquuuuqqfy3K8ePHueqqq6666kX3ju/4jp/1Oq/zOu8N8N3f/d2sViv+q0hCEpKQhCQkIQlJSOKq5yUJSUhCEpKQhCQkIQlJSEISkrjqqquu+p9EEpKQhCQkIQlJSEISkpCEJCRxFUhCEpKQhCQkIQlJSOL/EklIQhKSkIQkJPG/jSQkIYn1es2tt97KYx7zGG655ZYHA/zDP/zD73DVVVddddWLinL8+HGuuuqqq6560bzYi73Ya3/ER3zEdwN893d/N/fccw//USQhCUlIQhKSkIQkJHHVFZKQhCQkIQlJSEISkpCEJCRx1f9fkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkcdX/L5KQhCQkIQlJSEISkpCEJCTx/5UkJCEJSUhCEpKQhCT+L5CEJCQhCUlIQhL/G6xWK+655x5e5mVehmuuuebBt95669+cPXv2Vq666qqrrnpRUI4fP85VV1111VX/smuuuebBX/EVX/FXAL/927/NX//1X/OvIQlJSEISkpCEJCTx/5kkJCEJSUhCEpKQhCQkIQlJXPU/kyQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlI4qrnJAlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSuOp/DklIQhKSkIQkJCEJSUhCEpL4/0QSkpCEJCQhCUlI4n87SUhCEpKQhCQk8T/J7u4uAC/+4i9+/MVe7MVe+8/+7M9+5vDwcJerrrrqqqv+JQRXXXXVVVe9SD78wz/8uwBuvfVWfvu3f5sHkoQkJCEJSUhCEpKQxP83kpCEJCQhCUlIQhKSkIQkrvqvIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkcdVV/xaSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhJX/eeRhCQkIQlJSEISkpCEJP4/kIQkJCEJSUhCEpL430wSkpCEJCQhCUn8d/jrv/5rbr31Vq655poHf/iHf/h3c9VVV1111YuCcvz4ca666qqrrnrh3vEd3/GzXud1Xue9d3d3+ZZv+RYkIQlJSOL/E0lIQhKSkIQkJCEJSUjiqv8YkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCSuuur/I0lIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSOKqfztJSEISkpCEJCQhCUlI4v8ySUhCEpKQhCQkIYn/rSQhCUlIQhKSkMR/ltVqxa233spjHvMYbrnllgcD/MM//MPvcNVVV1111QtDOX78OFddddVVV71gL/ZiL/baH/ERH/HdAD/yIz/C7u4u/xdJQhKSkIQkJCEJSUhCElf960hCEpKQhCQkIQlJSEISkpCEJCQhCUlcddVV/zNIQhKSkIQkJCEJSUhCEpKQhCQkIQlJXPUvk4QkJCEJSUhCEpKQhCT+L5KEJCQhCUlIQhKS+N9IEpKQhCQkIYn/CKvVinvuuYeXeZmX4Zprrnnwrbfe+jdnz569lauuuuqqq14QyvHjx7nqqquuuur5u+aaax78FV/xFX8F8Nu//dv8zd/8Df8bSUISkpCEJCQhCUlI4qoXThKSkIQkJCEJSUhCEpKQhCQkIYmrrrrqKgBJSEISkpCEJCQhCUlIQhKSkIQkJHHVc5KEJCQhCUlIQhKSkMT/NZKQhCQkIQlJSOJ/G0lIQhKSkIQkJPGvsbu7C8CLv/iLH3+xF3ux1/6zP/uznzk8PNzlqquuuuqq54fgqquuuuqqF+jDP/zDvwvg1ltv5Xd+53f4n0YSkpCEJCQhCUlIQhKSuOo5SUISkpCEJCQhCUlIQhKSkIQkrrrqqqv+u0hCEpKQhCQkIQlJSEISkpCEJP6/k4QkJCEJSUhCEpKQxP8VkpCEJCQhCUlI4n8bSUhCEpKQhCRekL/+67/m1ltv5Zprrnnw53zO5/wWV1111VVXvSCU48ePc9VVV1111fN6x3d8x896ndd5nffe3d3lW77lW/jvIAlJSEISkpCEJCRxFUhCEpKQhCQkIQlJSEISkpCEJK66CkASkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhJX/f8lCUlIQhKSkIQkJCEJSUhCEv8fSUISkpCEJCQhCUlI4n87SUhCEpKQhCQk8b+JJCQhCUlIQhKr1Ypbb72VxzzmMZw6deo4wD/8wz/8DlddddVVVz03gquuuuqqq57Hi73Yi732O73TO302wM/8zM/wn0ESkpCEJCQhCUlIQhL/X0lCEpKQhCQkIQlJSEISkrjqfy5JSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCGJ/w8kIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkMRV/7NIQhKSkIQkJCEJSUhCEpL4/0QSkpCEJCQhCUlI4n8zSUhCEpKQhCQk8b+FJC5dusR3f/d3A/BO7/ROn/3iL/7ir81VV1111VXPjXL8+HGuuuqqq656tmuuuebBX/EVX/FXAL/927/N3/zN3/BvIQlJSEISkpCEJCTx/40kJCEJSUhCEpKQhCQkIYmr/mtIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlcddULIwlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkcdV/HklIQhKSkIQkJCEJSUji/wNJSEISkpCEJCQhif+tJCEJSUhCEpKQxP9Eq9UKgAc/+MG8+Iu/+Ov86Z/+6U8fHh7uctVVV1111f0Irrrqqquueg4f/uEf/l0At956K7/zO7/DCyIJSUhCEpKQhCQk8f+FJCQhCUlIQhKSkIQkJHHVfwxJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEldd9X+ZJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmr/m0kIQlJSEISkpCEJCQhif/LJCEJSUhCEpKQhCT+N5KEJCQhCUlIQhL/nX77t3+bW2+9lTNnzjzocz7nc36Lq6666qqrHohy/PhxrrrqqquuuuId3/EdP+t1Xud13nt3d5dv/dZvRRKSkIQkJCEJSfxfJwlJSEISkpCEJCQhCUlc9a8jCUlIQhKSkIQkJCEJSUhCEpKQhCQkcdVVV/3Xk4QkJCEJSUhCEpKQhCQkIQlJSEISkrjqhZOEJCQhCUlIQhKSkIQk/i+ShCQkIQlJSEIS/xtJQhKSkIQkJPFf5dZbb+XRj340p06dOg7wD//wD7/DVVddddVVAJTjx49z1VVXXXUVvNiLvdhrf8RHfMR3A/zIj/wIly5d4v8qSUhCEpKQhCQkIQlJXPWCSUISkpCEJCQhCUlIQhKSkIQkJCGJq6666v8fSUhCEpKQhCQkIQlJSEISkpCEJK56TpKQhCQkIQlJSEISkvi/RBKSkIQkJCEJSfxvIwlJSEISkpCEJP4jrVYrnvCEJ/DKr/zKvPiLv/hrnz179hm33nrrX3PVVVdddRXl+PHjXHXVVVf9f3fNNdc8+Cu+4iv+CuB3fud3+Ju/+Rv+t5KEJCQhCUlIQhKSkMRVzyYJSUhCEpKQhCQkIQlJSEISkrjqqquu+q8gCUlIQhKSkIQkJCEJSUhCEpL4/04SkpCEJCQhCUlIQhL/F0hCEpKQhCQkIQlJ/G8iCUlIQhKSkMS/1Wq1Ynd3l0c/+tE8+MEPfuk/+7M/+5nDw8Ndrrrqqqv+fyO46qqrrrqKD//wD/8ugFtvvZXf+Z3f4X8qSUhCEpKQhCQkIQlJ/H8nCUlIQhKSkIQkJCEJSUhCElddddVV/5dIQhKSkIQkJCEJSUhCEpKQxP9HkpCEJCQhCUlIQhL/F0hCEpKQhCQkIYn/LSQhCUlIQhKSeFH89V//NX/913/NNddc8+DP+ZzP+S2uuuqqq64iuOqqq676f+4d3/EdP+vFXuzFXnt3d5fv/d7v5b+TJCQhCUlIQhKSkMT/V5KQhCQkIQlJSEISkpCEJK76v0kSkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCRx1f8NkpCEJCQhCUlIQhKSkIQk/r+QhCQkIQlJSEISkpDE/2aSkIQkJCEJSUjifwNJSEISkpCEJJ7bb//2b7O7u8s111zz4A//8A//Lq666qqr/n+jHD9+nKuuuuqq/69e7MVe7LU/4iM+4rsBfuRHfoRLly7xn0kSkpCEJCQhCUlI4v8TSUhCEpKQhCQkIQlJSEISV/3PIglJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrjqfx5JSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrjqv58kJCEJSUhCEpKQhCQk8f+BJCQhCUlIQhKS+N9MEpKQhCQkIYn/DSQhCUlIYr1e88QnPpFXfuVX5iEPechLnz179hm33nrrX3PVVVdd9f8T5fjx41x11VVX/X90zTXXPPgrvuIr/grgd37nd/ibv/kb/r0kIQlJSEISkpCEJP4/kIQkJCEJSUhCEpKQhCSu+q8hCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkrjqqv8OkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmr/nNIQhKSkIQkJCEJSUhCEv9XSUISkpCEJCQhCUn8byQJSUhCEpKQhCT+J1utVly6dIlHP/rRPPjBD37pP/uzP/uZw8PDXa666qqr/v8huOqqq676f+rDP/zDvwvg1ltv5Xd+53d4UUhCEpKQhCQkIQlJ/F8mCUlIQhKSkIQkJCEJSVz1H0cSkpCEJCQhCUlIQhKSkIQkJCEJSUhCElddddULJglJSEISkpCEJCQhCUlIQhKSkIQkJCGJq/7tJCEJSUhCEpKQhCQkIYn/ayQhCUlIQhKSkIQk/reRhCQkIQlJSOJ/ir/+67/mr//6r7nmmmse/Dmf8zm/xVVXXXXV/0+U48ePc9VVV131/83nfu7n/taLvdiLvfbu7i7f+q3fyv0kIQlJSEISkpCEJP6vkoQkJCEJSUhCEpKQxFX/NpKQhCQkIQlJSEISkpCEJCQhCUlI4qqrrvqfTxKSkIQkJCEJSUhCEpKQhCQkIQlJXPWikYQkJCEJSUhCEpKQxP8lkpCEJCQhCUlI4n8TSUhCEpKQhCQk8V/t3nvv5dGPfjSnTp06fs011zz4T//0T3+Gq6666qr/Xwiuuuqqq/6febEXe7HXfrEXe7HXBvjZn/1ZJCEJSfxfJAlJSEISkpCEJCQhiav+ZZKQhCQkIQlJSEISkpCEJCQhCUlcddVVV70gkpCEJCQhCUlIQhKSkIQkJCEJSVz1vCQhCUlIQhKSkIQkJPF/gSQkIQlJSEISkvjfRBKSkIQkJCGJ/yy7u7t8z/d8DwCv8zqv896v8zqv895cddVVV/3/Qjl+/DhXXXXVVf9fXHPNNQ/+iq/4ir8C+N7v/V6e8Yxn8L+dJCQhCUlIQhKSkMRVz0sSkpCEJCQhCUlIQhKSkIQkJHHVVVdd9T+FJCQhCUlIQhKSkIQkJCEJSVx1hSQkIQlJSEISkpDE/3aSkIQkJCEJSUjifwtJSEISkpCEJP4jrFYrLl26xKMf/Wge/OAHv/Sf/dmf/czh4eEuV1111VX/P1C56qqrrvp/5MM//MO/C+AZz3gGz3jGM/ifThJXvWgkcdX/L5K46r+Oba7630kSLyrb/H8liRfGNv9bSeIFsc3/dJJ4fmzzr/HXf/3XPOhBD+KlX/qlH/y5n/u5v/3BH/zBD+aqq6666v8HyvHjx7nqqquu+v/gcz/3c3/rxV7sxV57d3eXb/u2b+N/AklIQhKSkIQkJCGJ/+8kIQlJSEISkpCEJCQhCUlc9d9HEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIYmr/mtJQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJHHVfy1JSEISkpCEJCQhCUlIQhL/30hCEpKQhCQkIQlJ/G8lCUlIQhKSkMT/BpKQhCQkIQlJvDD33nsvj370ozl16tTxa6655sF/+qd/+jNcddVVV/3fRzl+/DhXXXXVVf/XvdiLvdhrv9M7vdNnA/zoj/4oly5d4r+CJCQhCUlIQhKSkMT/V5KQhCQkIQlJSEISkpDEVf/xJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhJXXfWfSRKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCRx1X8MSUhCEpKQhCQkIQlJSOL/C0lIQhKSkIQkJCGJ/20kIQlJSEISkpDE/3SSkIQkJCEJSQCsViue+MQn8sqv/Mo85CEPeWmAf/iHf/gdrrrqqqv+b6McP36cq6666qr/6775m7/56QDf+73fyzOe8Qz+I0lCEpKQhCQkIYn/byQhCUlIQhKSkIQkJCGJq/71JCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiauuugokIQlJSEISkpCEJCQhCUlIQhKSkIQkJHHVi04SkpCEJCQhCUlIQhKS+L9OEpKQhCQkIQlJ/G8jCUlIQhKSkMT/dJKQxHq9Znd3l0c/+tFcc801D/6zP/uznzk8PNzlqquuuur/LoKrrrrqqv/jXuzFXuy177vvvlsBHvSgB/GvJQlJSEISkpCEJCTx/4EkJCEJSUhCEpKQhCQkcdULJwlJSEISkpCEJCQhCUlIQhKSkIQkrrrqqv9ZJCEJSUhCEpKQhCQkIQlJSEISkpDEVc+fJCQhCUlIQhKSkIQk/q+ShCQkIQlJSEIS/5tIQhKSkIQkJCGJ/0mOHz/OS73US3G/M2fOPJirrrrqqv/bqFx11VVX/T9wzTXXPBjgtV7rtXipl3op/uZv/obf/d3f5X6S+P9KElf960niqquuuurfQhL/Frb5/04S/xLb/F8iiRfENv9bSOL5sc1/pQc96EG813u9F/e75pprHnz27Nlbueqqq676v43KVVddddX/cWfPnr2VZ3rKU57Cwx/+cF7rtV4LSfzu7/4u/9dJ4qoXThJXXXXVVf/TSeJfwzb/H0nihbHN/xWSeEFs87+BJJ4f2/xHOn78OC/1Ui/Fa73WawFw9uxZzpw5w1VXXXXV/xNUrrrqqqv+j7vvvvtuve+++2695pprHvynf/qnPOUpT+GN3/iNec3XfE1e8iVfkp/7uZ/jGc94Bv8bSeKq508SV/3/JImr/v1sc9X/bpJ4Udnm/wtJvDC2+b9AEi+Ibf6nk8TzY5t/rQc96EG81Vu9FcePHwfgH/7hH7j11lt5szd7MwDuu+++W7nqqquu+r+NylVXXXXV/wNnz5699ZprrnnwhQsX+LM/+zP+7M/+jHd5l3fh4Q9/OO/xHu/B7/7u7/K7v/u7/E8jiaueTRJX/c8niav+95PEfyfbXPVfRxIvKtv8XyaJF8Y2/9tJ4gWxzf9kknh+bPP8vNZrvRav9VqvBcDh4SG/8zu/w9HREQ960IMA+K3f+q3v5qqrrrrq/z7K8ePHueqqq676v+7MmTMPfvEXf/HXvnDhAk996lNZLpc89alPZblc8vCHP5wHPehBvORLviT33nsvly5d4r+SJCQhCUlIQhKS+P9CEpKQhCQkIQlJSEISkrjqP54kJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlI4qqr/iNIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJK76jyEJSUhCEpKQhCQkIQlJ/F8lCUlIQhKSkIQkJPG/nSQkIQlJSEIS/9NJQhKSkMSJEyf4wA/8QB796EcD8LjHPY4/+qM/YhxHAG688UbOnDnDn/7pn/70P/zDP/wOV1111VX/t1G56qqrrvp/4B/+4R9+B+DhD384v/zLv4wkLly4wK/8yq/wZ3/2Z3zYh30YJ0+e5C3e4i3427/9W373d3+X/yiS+P9KElf955DEVVdd9a8jiX8v21z1opHEi8I2/5dI4gWxzf9Wknh+bPM/zWu+5mvyWq/1WgAcHh7y53/+55w9e5YH2tjYAODs2bPP4Kqrrrrq/z4qV1111VX/D5w9e/ZWgJMnT/LcLly4wDd8wzfwCq/wCrzxG78xr/mar8lLvuRL8nM/93M84xnP4F8iif+PJHHVv48krrrqqv9dJPFvZZurnpck/iW2+b9AEi+Ibf43ksQLYpv/SsePH+c93/M9OXbsGACPe9zjeNzjHsfzc+bMGQD+4R/+4be56qqrrvq/j8pVV1111f8jJ0+eBMA2krjfhQsX+JVf+RX+7M/+jA/7sA/j5MmTvMVbvAV/+7d/y+/+7u8iif9PJHHVv44krrrqqqteGEn8W9jm/ztJvDC2+d9OEi+Mbf63kcTzY5v/aK/5mq/Ja73WawFweHjIn//5n3P27FlekM3NTQDuu+++W7nqqquu+r+Pcvz4ca666qqr/q87PDzcffEXf/HXvuaaax78lKc8hQsXLiCJ57ZcLvn7v/97VqsVL/7iL86DHvQgXuqlXoonPvGJrNdr/i+QhCQkIQlJSEISkpDE/3eSkIQkJCEJSUhCEpKQhCQkIYmrrrrqqv8skpCEJCQhCUlIQhKSkIQkJPH/kSQkIQlJSEISkpCEJP63k4QkJCEJSUjifyNJSEISkpCEJP4tjh8/zju+4zvyUi/1UgA87nGP44/+6I84Ojri+ZHENddcw4Me9CDuu+++W3/hF37ha7jqqquu+r+PylVXXXXV/zMnT54EwDaSeG4XLlzgV37lV/izP/szPvRDP5STJ0/yHu/xHvzN3/wNv/d7v8f/dJK46nlJ4qr/3yRx1Qtmm6v+b5DEi8o2/19I4oWxzf9GknhBbPO/iSSeH9s8P6/5mq/Ja73WawFweHjIn//5n3P27FmemyQeaGNjA4B/+Id/+G2uuuqqq/5/oHLVVVdd9f/E3//93//2i73Yi732yZMn+ZfY5sKFC3zjN34jr/AKr8AbvdEb8Zqv+Zq81Eu9FN/3fd/HpUuX+O8iiauukMRV/ztI4qr/2STx3802V/3XksSLyjb/l0nihbHN/zaSeEFs87+FJB7o+PHjvMVbvAUPetCDAHjc4x7H4x73OJ6bJJ6fM2fOAHDffffdylVXXXXV/w9Urrrqqqv+n/iHf/iH3wF4+MMfzovqwoUL/Mqv/Ap/9md/xod+6Idy8uRJ3uM93oO/+Zu/4fd+7/f4zyCJ/+8kcdV/D0lcddV/F0n8Z7DNVf9+knhR2Ob/Ikm8ILb530YSz49t/id7zdd8TV7zNV8TgMPDQ/78z/+cs2fPcj9JvKjOnj37DK666qqr/n+gctVVV131/8TZs2dvBTh58iT3s40knh/bSALgwoULfOM3fiOv8AqvwBu90Rvxmq/5mrzUS70U3/d938elS5f415DE/1eSuOo/hySuuuqq508S/162uepFI4l/iW3+L5HEC2Ob/y0k8YLY5r/L8ePHeYu3eAse9KAHAXDrrbfy53/+59xPEi+qM2fOAPAP//APv81VV1111f8PVK666qqr/p+47777bgU4efIkJ0+e5MKFC/xrXLhwgV/5lV/hKU95Cu/yLu/CyZMneY/3eA/+5m/+ht/7vd/jgSTx/40krvr3kcRVV131P5Mk/q1sc9VzksS/xDb/V0jiBbHN/xaSeH5s85/pNV/zNXnN13xNAA4PD/nzP/9zzp49iyReVJK438bGBgD33XffrVx11VVX/f9AcNVVV131/8g//MM//DbAyZMnuZ9t/jWe+tSn8o3f+I38yq/8CseOHeM1X/M1+fAP/3COHz+OJCTxf40kJCEJSUhCEpKQhCSuejZJSEISkpCEJCQhCUlIQhKSkIQkrrrqqv+bJCEJSUhCEpKQhCQkIQlJSEISkvj/ThKSkIQkJCEJSUhCEv8XSEISkpCEJCQhif8tJCEJSUhCEpL49zp+/Djv8R7vwWu+5msCcPbsWX7pl36Jc+fOIYkXhSQkcb8HPehBAPzDP/zD73DVVVdd9f8Hlauuuuqq/0f+/u///rdf7MVe7LUf/vCH85SnPIV/iW0k8dwuXLjAr/7qr3Lx4kXe8A3fkJMnT/Lu7/7u/O3f/i2/93u/x/8mkrjqhZPEVVddddV/NUn8a9jm/xtJvDC2+d9MEi+Ibf6nk8TzY5t/yUu+5Evylm/5lgAcHh7y53/+55w7dw5J/Esk8S+57777buWqq6666v8PKlddddVV/w89/OEP54FsI4l/Ddv82Z/9GU996lN5+Zd/ed7ojd6I13iN1+CWW27h53/+57l06RL/E0jiqucliauueiBJ/H9gm6v+b5LEi8o2/x9I4l9im/+NJPH82OZ/Okk8P7Y5fvw4b/EWb8GDHvQgAM6ePcvv/u7v8qKQxL/k9OnTAPzDP/zDb3PVVVdd9f8Hlauuuuqq/0f+4R/+4Xf4V7KNJF6QCxcu8Ku/+qsAvNEbvREPetCDePd3f3f+9m//lt/7vd/jP5skrrpCElf97yGJq/7rSeJ/Ettc9V9PEi8q2/xfJokXxDb/20jiBbHN/2QPfvCDefd3f3cAjo6OeNzjHscznvEM/iWSeFFI4syZMwCcPXv2Vq666qqr/v+gctVVV131/8jZs2dvBTh58iT/EWwjCYBf/dVf5c///M95+Zd/ed7ojd6I13iN1+DYsWP83u/9HpcuXeLfShL/30niqv8ekrjqqv9MkvjPYJur/mNI4kVhm/9rJPHC2OZ/E0k8P7b573Ts2DHe4i3eggc96EEAnD17lt/93d/lhZHEi0oS99vY2ADgvvvuu5Wrrrrqqv8/qFx11VVX/T9y33333Xrffffdes011zz44Q9/OE95ylO4n20k8fzYRhL/kgsXLvCrv/qrALzRG70RL/mSL8mDHvQg/vZv/5bf+73f4wWRxP9HkrjqP4ckrrrq/zNJ/EewzVUvGkn8S2zzf4kkXhDb/G8hiRfENv+ZHvSgB/Hu7/7u3O9xj3scj3/843lBJPGikMRz29jY4H733XffrVx11VVX/f9B5aqrrrrq/5mzZ8/ees011zyY/yC2kcQD/eqv/ip//ud/zju/8zvzsIc9jNd4jdcA4Pd///f5/0ISV/37SOKqq6767yWJfyvbXPWcJPEvsc3/BZJ4QWzzv4Uknh/b/HscO3aMl3zJl+Q1X/M1ATh79ix//ud/ztHREc+PJF4UknhBTp8+DcBv/dZvfTdXXXXVVf+/UI4fP85VV1111f8nZ86cefCLv/iLv/aFCxd4ylOewnOTxPMjiRdEEs9tuVzyZ3/2Z0jiYQ97GA960IN4yZd8SWazGbfddhv/m0lCEpKQhCQkIQlJSOKqZ5OEJCQhCUlIQhKSkIQkJCEJSUjiqquu+t9NEpKQhCQkIQlJSEISkpCEJCQhif/vJCEJSUhCEpKQhCQk8b+dJCQhCUlIQhKS+N9CEpKQhCQkIYkXxYMe9CDe//3fnwc96EEAPO5xj+Mv/uIvGMeRB5KEJCTxL5GEJF6Y66+/njNnznDrrbf+9Z/+6Z/+DFddddVV/39Queqqq676f+Yf/uEffgfg4Q9/OP8atpHEv9av/uqv8md/9me88zu/Mw972MN4jdd4DQB+//d/n/+pJHHVCyaJq6666qr/LJL417DN/zeSeGFs87+VJF4Q2/xPJ4nnxzYAr/Ear8FrvuZrAnB0dMTv/M7vcHR0xANJ4kUhiReFJAA2NzcB+Id/+Iff4aqrrrrq/xcqV1111VX/z5w9e/ZWgJMnT/L82EYS/xq2kcQLcvHiRX74h3+YV3iFV+AN3/ANeY3XeA1e8iVfkp//+Z/ntttu47+SJK56TpK46qoXlST+p7LNVf//SOJFZZv/DyTxwtjmfyNJvCC2+Z/sQQ96EG/xFm/BsWPHAHjc4x7H4x//eB5IEi8KSbwoJPFAp0+fBuAf/uEffpurrrrqqv9fqFx11VVX/T918uRJ/rVsI4l/DdtI4uLFi/zqr/4qf/Znf8aHfMiHcPLkSd7t3d6N3/u93+P3f//3+Y8kiatAElf97yKJq/7tJPG/gW2u+u8hiReVbf6vksQLY5v/bSTx/Njmv9trvMZr8Bqv8RoAHB0d8Tu/8zscHR0BIIkXlSReFJJ4fjY2NgC47777buWqq6666v8XyvHjx7nqqquu+v/k8PBw98Vf/MVf+5prrnnwU57yFC5cuMDzI4nnRxIviCSeH0ncb7Va8fd///esVise9rCH8aAHPYiXfMmX5N577+XSpUu8KCQhCUlIQhKSkIQk/q+ThCQkIQlJSEISkpCEJK76jycJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJHHV/w+SkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlI4qr/OJKQhCQkIQlJSEISkpDE/0WSkIQkJCEJSUjifxtJSEISkpCEJP4rHDt2jPd///fnkY98JACPe9zj+KM/+iPGcUQSkviXSEISknhhJCEJSTw/p0+f5pZbbuG+++679Rd+4Re+hquuuuqq/1+oXHXVVVf9P3by5En+tWwjiX8N20jifhcvXuRXf/VX+bM/+zM+5EM+hJMnT/Lmb/7m/O3f/i2///u/jyT+P5LEVf85JHHVVf8fSOI/gm2uetFI4l9im/8rJPHC2OZ/A0m8ILb593qN13gNXuM1XgOAo6Mj/vzP/5yzZ88iiReFJF4UknhRbG5uAvAP//APv81VV1111f8/lOPHj3PVVVdd9f/NmTNnHvziL/7ir33jjTfyd3/3dyyXS56bJF4QSbwgknh+JPHcVqsVf//3f89qteLFXuzFeNCDHsRLvuRL8uQnP5n1es3/JZKQhCQkIQlJSEISkrjqhZOEJCQhCUlIQhKSkIQkJCEJSUhCElddddW/jiQkIQlJSEISkpCEJCQhCUlIQhKSuOp5SUISkpCEJCQhCUlI4v8KSUhCEpKQhCQk8b+FJCQhCUlIQhIvimPHjvH2b//2vORLviQAj3vc4/ijP/ojlsslkviXSEIS/xJJSOKFkYQkNjc3edSjHsXBwcGt//AP//Db//AP//A7XHXVVVf9/0I5fvw4V1111VX/3/zDP/zD71xzzTUPfuxjH/vSL/ESL8FiseApT3kKz00Sz48kXhBJvCCSeG6r1YqnPvWp/Pmf/zkv/uIvzvHjx3nkIx/JfD7ntttu438DSUhCEpKQhCQkIQlJXPVskpCEJCQhCUlIQhKSkIQkJCEJSVx11VX/O0hCEpKQhCQkIQlJSEISkpCEJK4CSUhCEpKQhCQkIQlJ/G8nCUlIQhKSkIQk/jeQhCQkIQlJSOJ+r/Ear8Hbv/3bc/z4cY6OjvijP/ojbrvtNiTxL5GEJF4YSUhCEi+MJCQBcPr0aV77tV+bjY0Nbr311r/++q//+vfhqquuuur/H/SgBz2Iq6666qr/j6655poHv/Zrv/Z7vdM7vdNnA/zyL/8yv/zLv8wDSeIFkcQLIonnRxIviCROnDjBy7/8y/OGb/iGAFy6dIm/+7u/46r/2SRx1VVXXfVfzTZX/d9nm/8NHvSgB3HLLbcA8PjHP57HP/7x/Esk8aKQxItCEg/0qEc9ikc/+tEA/MM//MNvf+ZnfubrcNVVV131/xN60IMexFVXXXXV/2fv+I7v+Fnv9E7v9NkAFy5c4Ou//uu5cOEC95PE8yOJF0QSL4gknh9J3O/EiRN8yId8CCdOnOCqq6666qqrrrrqf4OjoyP+/M//nHPnzvHCSOJFIYl/iSSe28bGBq/2aq/GxsYGAD/yIz/y2T/6oz/6OVx11VVX/f+FHvSgB3HVVVdd9f/dNddc8+DP+ZzP+a1rrrnmwRcuXOBP//RP+eVf/mUAJPGCSOL5kcQLIokXRBL3e9jDHsYHf/AHs7+/zxOe8AT+K0nifwpJ/E8iif9JJPE/lST+p5LE/3SS+J9MEv9TSOK/gyT+K0jiP4sk/qNJ4j+SJP4zSOI/gyT+O0niv9rDH/5wAH73d3+Xc+fO8YJI4kUhiX+JJJ6fRz3qUTz60Y8G4L777rv167/+69/nH/7hH36bq6666qr/36hcddVVV13Ffffdd+tnfdZnvc5rv/Zrv9c7vdM7ffYbv/Eb84qv+Ip8/dd/PRcuXEAS/xq2kcS/x4ULF7jfn/3Zn/GiksR/BEn8R5DEv5ck/iNI4j+CJP6jSOI/giT+o0jiP4ok/iNJ4j+SJP4jSeI/kiT+o0niP4ok/iNI4t9LEv9Wkvi3ksS/liT+NSTxryGJF5UkXlSSeFFI4kUhiReFJF4UknhRSOJFJYkXlST+tSTx7yWJ/2433ngji8WCo6Mjnh9JvCgk8S+RxPOzsbHBy7zMy3D69GkAfuRHfuSzf/RHf/RzuOqqq666CoBy/PhxrrrqqquugsPDw91/+Id/+J1/+Id/+J0Xe7EXe+3Tp08ff4mXeAkWiwVPfepTeUEk8fxI4gWRxAsiCYDVasUbvuEbMpvNeMITnsAwDPxrSOLfSxL/ESTxH0ES/xEk8R9BEv8RJPEfRRL/USTxH0US/5Ek8R9JEv+RJPEfSRL/0STxH0US/16S+PeSxL+VJP4tJPGvJYl/LUm8qCTxopLEi0ISLypJ/Esk8aKQxItCEi8KSbyoJPGiksS/hiQk8W8hCUlIQhL/lSQhCUlIQhKSePSjHw3A3/7t33I/SUhCEi+MJCQhiRdGEpJ4fk6fPs1rv/Zrs7GxwX333Xfrl3zJl7zNb//2b38PV1111VVX3Y9y/PhxrrrqqquuerazZ8/e+md/9mc/c3h4uPsKr/AKr/3whz8cgKc+9ak8P5J4QSTx/EjiBZHE/R72sIdx8uRJnv70p7O/v8+/liT+I0jiP4Ik/r0k8R9BEv8RJPEfRRL/USTxH0US/1Ek8R9JEv+RJPEfSRL/kSTxH0kS/1Ek8e8liX8vSfxbSeLfQhL/WpL415DEi0oSLypJvCgk8aKQxItCEv8SSbwoJPGikMSLQhKSeFFIQhIvKklI4l9LEpKQxH8kSUhCEpKQhCQkIQlJSEISknh+Tp48yY033sjZs2e57bbbkIQk/iWSkMS/RBKSeEEe/ehH8zIv8zIA/MM//MNvf/zHf/zLnD179lauuuqqq656IMrx48e56qqrrrrqOR0eHu7+wz/8w+8AvPiLv/hrP/zhD+cVX/EV+fu//3uWyyXPTRLPjyReEEm8IJIAeNjDHsYNN9zAXXfdxblz5/i3ksS/lyT+I0jiP4Ik/iNI4j+CJP6jSOI/giT+o0jiP5Ik/qNI4j+SJP4jSeI/kiT+o0niP4Ik/r0k8e8hiX8rSfxbSOJfSxL/GpJ4UUniRSWJF4UkXhSS+JdI4kUhiX+JJF4UknhRSOJFIQlJvKgkIYl/DUlIQhL/XpKQhCQkIQlJ/Ec4efIk11xzDefPn+fuu+/mXyIJSbwwkpCEJF6Qzc1NXvEVX5FbbrkFgB/5kR/57K//+q9/H6666qqrrnp+KMePH+eqq6666qrn7x/+4R9+57d/+7e/5xVf8RXf+vTp08df4iVegsViwVOf+lQeSBIviCSeH0m8IJIAuOGGG3jYwx7GuXPnuOuuu/j3kMR/BEn8R5DEv5ck/iNI4j+KJP4jSOI/iiT+o0jiP5Ik/qNI4j+SJP4jSeI/kiT+I0niP4Ik/r0k8e8hiX8rSfxrSeJfSxL/GpJ4UUniRSGJF5Uk/iWSeFFI4l8iiX+JJF4UknhRSOJFIYkXlSQk8a8hCUn8W0lCEpKQhCT+Mz3oQQ9iZ2eHu+66i3PnzvGCSEISL4wkJPHCSOLRj340r/iKr8jGxgb33XffrV/yJV/yNr/927/9PVx11VVXXfWCUI4fP85VV1111VUv2OHh4e6f/dmf/czh4eHuK7zCK7z2wx/+cB7+8Ifz1Kc+leVyCYAkXhBJvCCSeEEkIYmXf/mXB+CJT3wi/16S+I8gif8IkviPIIn/CJL4jyCJ/yiS+I8iif8okviPIon/SJL4jySJ/0iS+I8iif9IkviPIIl/L0n8e0ji30IS/xaS+NeQxL+GJF5UknhRSOJFIYkXhST+JZL4l0jiXyKJF4UkXhSSeFFI4kUhCUm8qCQhCUn8a0lCEpKQxH+1a665hp2dHW677TYuXbrEA0lCEpJ4YSQhiRdGEpubm7zCK7wCt9xyCwC/9Vu/9d2f9Vmf9Tpnz569lauuuuqqq14YyvHjx7nqqquuuuqFOzw83P2Hf/iH3/mHf/iH33mxF3ux17755puPv8RLvASLxYKnPvWpAEji+ZHECyKJF0QSAK/xGq+BJP7mb/4GSfxHkMR/BEn8e0niP4Ik/qNI4j+CJP4jSOI/iiT+I0niP4ok/iNJ4j+SJP6jSOI/kiT+I0ni30sS/16S+PeQxL+FJP61JPGvJYkXlSReVJJ4UUjiRSGJf4kkXhSS+JdI4l8iiX+JJF4UkviXSEIS/xJJSOJFJQlJ/GtJQhKS+I8kCUlIQhKSkIQkJCEJSUhCEpJ49KMfTdd1/N3f/R3jOAIgCUn8SyQhiRdGEpI4deoUr/3ar83Gxgb33XffrV/yJV/yNr/wC7/wNVx11VVXXfWioBw/fpyrrrrqqqteNGfPnr31z/7sz35mc3Pz+GMf+9iXfvjDHw7AU5/6VCTxgkji+ZHECyKJxWLBa7zGazAMA3/zN38DgCT+I0jiP4Ik/iNI4j+CJP4jSOI/giT+o0jiP4ok/qNI4j+SJP6jSOI/kiT+I0niP4ok/iNJ4j+CJP49JPFvJYl/C0n8W0jiX0MSLypJvKgk8aKQxItCEv8SSfxLJPEvkcS/RBL/Ekn8SyQhiX+JJF4UknhRSUIS/xqSkIQk/j0kIQlJSEISkpDEv8WjH/1oAP7u7/4OSUjiXyIJSbwwkpAEwKMe9She5mVeBoB/+Id/+O2P//iPf5mzZ8/eylVXXXXVVS8qyvHjx7nqqquuuupFd3h4uPunf/qnPwPw4i/+4q/98Ic/nFd8xVfk7/7u71itVjw/knhBJPGCrFYrXuEVXoFjx45x1113sb+/z/0k8R9BEv9ekviPIIn/CJL4jyKJ/wiS+I8iif8okviPIon/KJL4jySJ/0iS+I8kif8okviPIon/CJL495DEv5Uk/i0k8a8liX8NSbyoJPGiksSLQhL/Ekm8KCTxL5HECyOJf4kk/iWS+JdI4kUhiX+JJCTxopCEJF5UkpCEJP4tJCEJSUhCEv+RFosFD3rQgzg6OuJpT3sa/xJJSOKFkYQkADY2NniFV3gFbrnlFgB+5Ed+5LO//uu//n246qqrrrrqX4ty/Phxrrrqqquu+tf7h3/4h9/57d/+7e95xVd8xbc+ffr08Zd4iZdgsVjw1Kc+ledHEs+PJF4QSbzYi70YJ0+e5AlPeAL7+/s8kCT+I0jiP4Ik/iNI4j+CJP4jSOI/iiT+I0jiP4ok/iNJ4j+KJP4jSeI/kiT+o0jiP4ok/qNI4j+CJP49JPFvJYl/LUn8a0niX0MSLypJvKgk8aKQxL9EEv8SSfxLJPEvkcQLI4kXhSReGEn8SyQhiX+JJF4UkpDEi0oSkvjXkoQkJCGJ/2zXXHMN11xzDXfffTd33303z48kJCGJF0QSkpDE/R71qEfxiq/4imxsbHDffffd+iVf8iVv89u//dvfw1VXXXXVVf8WlOPHj3PVVVddddW/zeHh4e6f/dmf/czh4eHuK7zCK7z2wx/+cB72sIfx1Kc+leVyyQNJ4gWRxAty8uRJHvawh7G3t8ddd93F8yOJfy9J/EeQxH8ESfxHkMR/FEn8R5DEfxRJ/EeRxH8USfxHksR/FEn8R5LEfyRJ/EeQxH8kSfx7SeLfQxL/FpL4t5DEv5YkXlSSeFFJ4kUliX+JJF4UkviXSOJfIokXRhL/Ekn8SyTxwkjiXyKJf4kkJPEvkYQkXhSSkIQk/jUkIQlJ/EeShCQkIQlJSEISkpDEzs4O11xzDZcuXeLuu+/mgSQhiRdGEpJ4oI2NDV7hFV6BW265BYDf+q3f+u7P+qzPep2zZ8/eylVXXXXVVf9WlOPHj3PVVVddddW/3eHh4e4//MM//M7Zs2ef8Yqv+IpvffLkSV78xV+c5XLJXXfdxQNJ4vmRxAvysIc9jIc97GHs7+/z9Kc/nRdEEv8RJPEfQRL/ESTxH0ES/xEk8R9FEv9RJPEfRRL/USTxH0kS/1Ek8R9JEv9RJPEfRRL/USTx7yWJfytJ/FtJ4l9LEv9aknhRSeJFJYkXlST+JZJ4UUjihZHEv0QS/xJJvDCS+JdI4oWRxL9EEv8SSfxLJCGJF4UkJPGvIQlJSOLfQxKSkIQkJCEJSbwobrnlFra3t3nqU5/KpUuXAJCEJF4YSUjiuZ06dYrXfu3XZmNjg/vuu+/WL/mSL3mbX/iFX/garrrqqquu+veiHD9+nKuuuuqqq/79br311r/+7d/+7e95yEMe8tIPetCDHvwSL/ESADz1qU/lfpJ4QSTxgrzCK7wC6/WaJzzhCbwwkviPIIn/CJL4jyCJ/yiS+I8gif8IkviPIon/KJL4jySJ/yiS+I8kif8okviPIon/KJL4jyKJfy9J/FtJ4t9CEv8WkvjXkMS/hiReFJJ4UUjiRSGJf4kk/iWS+JdI4oWRxAsjiX+JJF4YSfxLJPEvkcS/RBIvCklI4kUlCUlI4l9LEpKQhCQkIYl/r0c96lF0XcdTn/pUlsslknhhJCGJ5+dRj3oUL/MyLwPAP/zDP/z2x3/8x7/M2bNnb+Wqq6666qr/CJTjx49z1VVXXXXVf4zDw8Pdf/iHf/idw8PD3Rd/8Rd/7Yc//OG8wiu8An//93/PcrkEQBLPjyRekNd8zddEEn/zN3/Di0IS/xEk8R9BEv8RJPEfQRL/ESTxH0US/1Ek8R9FEv9RJPEfSRL/USTxH0kS/1Ek8R9BEv9RJPHvJYl/K0n8W0jiX0sS/xqS+NeQxItCEi8KSbwoJPEvkcS/RBIvjCReGEn8SyTxwkjihZHEv0QSL4wkJPHCSEIS/xJJSOJFIQlJSOJfQxKSkIQk/rPccsstdF3HE5/4RMZx5AWRhCSen42NDV7hFV6BW265BYAf+ZEf+eyv//qvfx+uuuqqq676j0Q5fvw4V1111VVX/cc5PDzc/Yd/+Iff+e3f/u3vecVXfMW3Pn369PEXf/EXZ7FY8NSnPhVJvCCSeG6r1Yo3fMM3ZDab8YQnPIFhGHhRSOI/giT+I0jiP4Ik/qNI4j+CJP6jSOI/iiT+o0jiP4ok/qNI4j+SJP6jSOI/iiT+o0jiP4Ik/j0k8e8hiX8LSfxrSeJfQxIvKkm8KCTxopDEi0IS/xJJvDCS+JdI4oWRxAsjiRdGEi+MJP4lknhhJPEvkcS/RBKSeFFIQhL/GpKQhCT+I0hCEpKQhCQkIQlJSOJRj3oUAH//93/P8yMJSbwgt9xyC6/6qq/KxsYG9913361f8iVf8ja//du//T1cddVVV131H41y/Phxrrrqqquu+o93eHi4+2d/9mc/c3h4uPsKr/AKr/3whz+ckydP8vd///e8IJJ4fh72sIdx8uRJnv70p7O/v8+LShL/USTxH0ES/xEk8R9BEv9RJPEfQRL/USTxH0US/5Ek8R9FEv+RJPEfRRL/USTxH0ES/xEk8e8hiX8rSfxbSOJfSxL/GpJ4UUniRSGJF4Uk/iWS+JdI4l8iiRdGEi+MJF4YSfxLJPGCSOKFkYQkXhhJvDCSkMQLIwlJvCgkIYkXlSQkIYl/K0lIQhKSkIQk/iUnTpzghhtu4Ny5c9x+++3cTxKSkMQLsrm5ySu+4ivy0Ic+FIDf+q3f+u7P+qzPep2zZ8/eylVXXXXVVf8ZqFx11VVXXfWf5r777rv1R3/0Rz8H4J3e6Z0++xVe4RV42MMexg//8A/z1Kc+lX+t7e1t/jVsAyCJfy/bSOLfyzaS+PeyjST+vWwDIIl/L9tI4t/LNgCS+PeyDYAk/r1sAyCJ/wi2kcR/BNsASOI/gm0k8R/BNpL4j2AbSfx72UYS/162kcS/lW0k8W9hG0n8a9lGElf97yeJfytJ/Esk8cJI4l8iiReFJF5Ukvi3ksR/lPl8DsDR0REAkviXSOLUqVO86qu+KgD33XffrV//9V//Pv/wD//w21x11VVXXfWfiXL8+HGuuuqqq676z/UP//APv/Pbv/3b3/OQhzzkpR/0oAc9+GEPexiLxYKnPvWpPDdJPLeTJ0/ysIc9jHPnznHXXXfxbyGJ/wiS+I8gif8okviPIIn/KJL4jyCJ/yiS+I8kif8okviPIon/SJL4jyKJ/wiS+I8gif8Ikvj3kMS/lST+tSTxryWJF5UkXlSSeFFI4kUhiX+JJP4lknhhJPHCSOKFkcQLI4kXRhIvjCReEEm8MJKQxAsjiRdGEpL4l0hCEv8SSUhCEv8akpCEJCTxH+maa67hxIkT3HPPPZw/f54XRhKSeOQjH8nLvMzLAPAP//APv/2lX/qlb3Prrbf+NVddddVVV/1noxw/fpyrrrrqqqv+8x0eHu7+wz/8w+8cHh7uvsIrvMJrP/zhD+cVXuEV+Id/+AeWyyX3k8Tz8wqv8AoAPOEJT+DfQxL/ESTxH0ES/xEk8R9FEv8RJPEfRRL/USTxH0US/1Ek8R9JEv9RJPEfRRL/USTx7yWJ/wiS+PeQxL+FJP4tJPGvIYl/DUm8KCTxopDEi0IS/xJJ/Esk8cJI4oWRxAsjiRdEEi+MJF4YSbwgknhhJPHCSEISL4wk/iWSkMS/RBKSeFFJQhKSkMS/hyQkIQlJSEISkpDEDTfcwPb2Nrfffjt7e3s8P5KQxMbGBq/wCq/AzTffDMCP/MiPfPbXf/3Xv8/h4eEuV1111VVX/VegHD9+nKuuuuqqq/5rHB4e7v7DP/zD7/z2b//297ziK77iW58+ffr4i7/4i7NYLHjqU5/K/STx3F7zNV8TSfzN3/wN/16S+I8gif8IkviPIon/CJL4jyKJ/yiS+I8iif8okviPIon/KJL4jySJ/yiS+I8gif8Ikvj3ksS/hyT+LSTxryWJfw1J/GtI4kUhiReFJF4UkviXSOKFkcQLI4kXRhIvjCReGEm8MJJ4QSTxwkjiBZHECyOJF0YSknhhJCGJf4kkJPGikIQkJPFvIQlJSEISkpDEv+SRj3wktVb+4R/+gXEceSBJSALg5ptv5lVf9VXZ2Njgvvvuu/VLvuRL3ua3f/u3v4errrrqqqv+K1GOHz/OVVddddVV/7UODw93/+zP/uxnDg8Pd1/hFV7htR/+8IcD8NSnPhUASTzQYrHgNV/zNVmv1/zt3/4t/xEk8R9FEv8RJPEfQRL/USTxH0ES/1Ek8R9FEv9RJPEfSRL/USTxH0US/1Ek8R9BEv8RJPHvJYl/K0n8W0ji30IS/xqSeFFJ4kUhiReFJF4UkviXSOKFkcQLI4kXRhIvjCReEEm8MJJ4QSTxwkjiBZHECyOJF0YSL4wkJPHCSEISkviXSEISkvjXkIQkJCEJSfxbPfKRjwTg7//+7wGQhCQkAbCxscErvMIr8NCHPhSAf/iHf/jtj//4j3+Zs2fP3spVV1111VX/1SjHjx/nqquuuuqq/3qHh4e7//AP//A7AC/+4i/+2g9/+MN5hVd4Be666y4uXLiAJO63Wq14+Zd/eY4fP86dd97J3t4ekviPIIn/CJL4jyCJ/yiS+I8gif8okviPIon/KJL4jyKJ/yiS+I8kif8okviPIIn/CJL4jyCJfy9J/FtJ4t9CEv9akvjXkMSLShIvKkn8SyTxopDECyOJf4kkXhhJvCCSeGEk8YJI4oWRxAsiiRdGEi+IJF4YSbwgkpDECyOJF0YSknhRSEISLypJSEISkviPIInFYsHNN98MwJOe9CQk8UCnTp3iFV7hFTh27BgAX//1X/8+3/Vd3/UxXHXVVVdd9d+F4Kqrrrrqqv9WP/qjP/o5H/IhH/KQ++6779aTJ0/yzu/8zrzhG74hz+3ixYs8kG3+I9jmP4Jt/iPYxjb/EWzzH8E2tvmPYJv/KLb5j2Kb/yi2sc1/BNvY5j+Kbf6j2OY/gm1s8+9lG9v8e9nm38s2/1a2+bewzf93kvj3ksQLI4n/DpL4t5LECyKJF0QSknhBJPHCSEISL4wk/iWSkIQkXhSSkIQk/i0kIQlJSEISkpCEJABOnDgBwO23385ze+QjH8mrvuqrsrGxwX333Xfrh3zIhzzkt37rt76bq6666qqr/jtRjh8/zlVXXXXVVf+9Dg8Pd//sz/7sZw4PD3df4RVe4bUf/vCH8/Iv//L8/d//PavVCoCTJ0/ysIc9jP39fe68807uJ4n/KJL4jyCJ/wiS+I8iif8IkviPIon/KJL4jyKJ/yiS+I8iif9IkviPIIn/KJL4jyCJfy9J/HtJ4t9CEv8WkvjXksS/hiReFJJ4UUniXyKJf4kk/iWSeGEk8cJI4oWRxAsiiRdEEi+MJF4QSbwgknhBJPGCSOKFkcQLIglJvDCSkMQLIwlJvCgkIQlJ/GtIQhKSkIQkXhTb29ucOXOGvb097rnnHgA2NjZ4hVd4BW6++WYAfuRHfuSzv/RLv/RtDg8Pd7nqqquuuuq/G+X48eNcddVVV1313+/w8HD3H/7hH37nt3/7t7/nFV/xFd/69OnTx1/8xV+cxWLBU5/6VB72sIfxsIc9jL29PZ7+9Kfz3CTxH0ES/xEk8R9FEv8RJPEfRRL/ESTxH0US/1Ek8R9JEv9RJPEfRRL/USTxH0ES/xEk8e8liX8PSfxbSeLfQhL/GpL415DEi0oSLwpJ/Esk8S+RxL9EEi+MJF4YSbwgknhhJPGCSOIFkcQLIokXRBIviCReEEm8IJKQxAsiiRdGEpJ4YSQhiX+JJCQhiReVJCQhCUn8W918881sb2/z9Kc/nb29PU6dOsVrvdZrsbGxwX333Xfrl3zJl7zNb//2b38PV1111VVX/U9BOX78OFddddVVV/3PcXh4uPtnf/ZnP3N4eLj7Cq/wCq/9sIc9DICnPvWpvMIrvALDMPCEJzyB50cS/xEk8R9FEv8RJPEfRRL/ESTxH0US/1Ek8R9FEv9RJPEfRRL/USTxH0US/1Ek8e8liX8vSfx7SOLfShL/WpL415LEi0oSLypJvCgk8S+RxL9EEv8SSbwwknhBJPHCSOIFkcQLIokXRBIviCReEEm8IJJ4QSTxgkjihZHECyIJSbwwkpDECyMJSUjiRSEJSUhCEv8WkpCEJCQhiZtvvpn5fM7TnvY0HvWoR/HiL/7iAPzDP/zDb3/8x3/8y5w9e/ZWrrrqqquu+p+Ecvz4ca666qqrrvqf5fDwcPcf/uEffgfgxV/8xV/7YQ97GK/wCq/A/f7mb/6GF0YS/xEk8R9BEv9RJPEfQRL/USTxH0US/xEk8R9JEv9RJPEfRRL/USTxH0US/xEk8e8liX8vSfx7SOLfQhL/FpL415DEi0oSLypJvCgk8S+RxL9EEi+MJF4YSbwwknhBJPHCSOIFkcQLIokXRBLPjyReEEm8IJJ4QSTxgkhCEi+IJF4YSUjihZGEJF4UkpCEJP41JCEJSUhCEpJ4fh7ykIdQa+XUqVOcPn0agB/5kR/57K//+q9/H6666qqrrvqfCD3oQQ/iqquuuuqq/7muueaaB3/O53zOb11zzTUP5pn+9E//lP8qkvifRhL/00jifyJJ/E8kif+JJPE/jST+J5DEfwdJ/GeTxH8GSfxHkcS/lyT+PSTxbyGJfwtJ/FtI4l9LEv8Wkvi3ksR/FEn8V3rIQx7C/e67775bP/MzP/O1z549+wyuuuqqq676nwo96EEP4qqrrrrqqv/Zrrnmmge/9mu/9nu90zu902ffd999t15zzTUP5qqrrrrqqquuuuq/0Y/8yI989o/+6I9+DlddddVVV/1Phx70oAdx1VVXXXXV/x6v8zqv895nzpx5EFddddVVV1111VX/Dc6ePfuMf/iHf/jt++6771auuuqqq6763wA96EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6v4h8BH1M0Jr3K4/MAAAAASUVORK5CYII=) +![Rendered example of chamfer 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAACrtElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqq/wOuueaaB3PVVVddddVV/8Huu+++W7nqqquuuuqq/92oXHXVVVddddX/Qtdcc82DX/u1X/u9XvzFX/y1z5w58+BrrrnmwVx11VVXXXXVf7B/+Id/+G2A3/qt3/qe++6779Z/+Id/+G2uuuqqq6666n8X9KAHPYirrrrqqquu+t/gmmuuefBrv/Zrv9frvM7rvPc111zzYJ7LxYsXueqqq6666qr/KCdOnOC53Xfffbf+wz/8w2//1m/91vf8wz/8w29z1VVXXXXVVf/zoQc96EFcddVVV1111f9E11xzzYNf+7Vf+72uueaaB7/O67zOe/MAFy9e5GlPexoXL17k6U9/OgBPe9rTuOqqq6666gWzzVUvmhMnTnDixAkATpw4wUMf+lBe7uVejge67777bv2Hf/iH3/mHf/iH3/6t3/qt7+aqq6666qqr/mdCD3rQg7jqqquuuuqq/ymuueaaB7/2a7/2e734i7/4a7/Yi73Ya/MAFy9e5C/+4i94+tOfztOe9jSu+v9JElc9f7a56qr/DLa5Ck6cOMGJEyd46EMfykMf+lAe+tCH8kD33Xffrb/1W7/13f/wD//wO//wD//w21x11VVXXXXV/wzoQQ96EFddddVVV1313+Waa6558Iu92Iu99pkzZx70Tu/0Tp/Nc3na057G0572NH7jN36Dq/5zSeKqq/4r2Oaq/9ts8//BiRMneOhDH8pDH/pQXu7lXo4Huu+++279h3/4h9/+h3/4h9/5rd/6re/mqquuuuqqq/77oAc96EFcddVVV1111X+la6655sGv/dqv/V4v/uIv/tov9mIv9to8wMWLF/mLv/gLnv70p/O0pz2N/+8kcdVVV/3b2eaq//ls87/diRMnOHHiBC/3ci/HiRMneOhDH8r97rvvvlvPnj37jL//+7//rX/4h3/4nX/4h3/4ba666qqrrrrqvw560IMexFVXXXXVVVf9Z3uxF3ux136xF3ux13qnd3qnz+a5XLx4kb/4i7/gL//yL7l48SL/W0niqquu+r/NNlf997PN/3QnTpzgoQ99KC/3ci/HQx/6UB7ovvvuu/Uf/uEffvu3fuu3vucf/uEffpurrrrqqquu+s+FHvSgB3HVVVddddVV/9GuueaaB7/2a7/2e734i7/4a7/Yi73Ya/MAFy9e5C/+4i/Y3d3lL/7iL/jvJomrrrrqqv9KtrnqP59t/ic4ceIED33o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uuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1X8I2/CXMDp8j3WAAAAAElFTkSuQmCC) ```kcl // Sketch on the face of a chamfer. diff --git a/docs/kcl-std/functions/std-solid-hollow.md b/docs/kcl-std/functions/std-solid-hollow.md index f3907d483..5b2a442bb 100644 --- a/docs/kcl-std/functions/std-solid-hollow.md +++ b/docs/kcl-std/functions/std-solid-hollow.md @@ -84,6 +84,6 @@ hollow(case, thickness = 0.5) ``` -![Rendered example of hollow 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEgJElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/lWuuuebBAGfOnHnwNddc8+AzZ848iGe65pprHgxwzTXXPJgHOHPmzIN5gLNnz9565syZBwOcPXv2Vp7pvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj1763333XcrV1111VVXXXXVVVf9b4Ee9KAHcdVVV1111VVXXXXV/xzXXHPNg8+cOfPgF3uxF3stgGuuuebB11xzzYNf7MVe7LV5IXZ3d7nfxYsXAdjd3eVFcfz4ce534sQJbHPixAlekPvuu+/Ws2fP3nrffffdCvAP//APv3Pffffdevbs2Vvvu+++W7nqqquuuuqqq6666n8K9KAHPYirrrrqqquuuuqqq/7rXXPNNQ8+c+bMg1/sxV7sta655poHX3PNNQ9+sRd7sdfmAXZ3dwF4+tOfzsWLFwHY3d1ld3cXgIsXL7K7u8t/puPHj3PixAlsc/z4cU6cOMHx48cBOHHiBA95yEN4oPvuu+9WgH/4h3/47X/4h3/4nfvuu+/Ws2fP3nrffffdylVXXXXVVVddddVV/9XQgx70IK666qqrrrrqqquu+s91zTXXPPjMmTMPfrEXe7HXevEXf/HXfrEXe7HX5gF2d3d5+tOfzsWLFwG49dZbefrTn879JPFfwTYvKtvc7/jx45w4cYLjx4/zkIc8BIATJ07wkIc8hPvdd999t549e/bW++6779bf+q3f+p5/+Id/+G2uuuqqq6666qqrrvrPhh70oAdx1VVXXXXVVVddddV/rGuuuebBr/3ar/1eAO/0Tu/02TzT7u4uAH/5l38JwK233srTn/50HkgS/9PY5l9im+d2/PhxAB7ykIfwkIc8hBMnTvCQhzyE+9133323/sM//MNv/8M//MPv3Hfffbf+wz/8w29z1VVXXXXVVVddddV/JPSgBz2Iq6666qqrrrrqqqv+fa655poHv/Zrv/Z7AbzTO73TZ/NMFy9e5K/+6q8AuPXWW3n605/OA0niX0MS/xls869hmxfGNs+PbQBOnDjBQx7yEB7ykIdw/PhxHvrQhwJw33333foP//APv/0P//APv/Nbv/Vb381VV1111VVXXXXVVf9e6EEPehBXXXXVVVddddVVV/3rXXPNNQ9+7dd+7fd6ndd5nfcGuOaaax588eJF/uqv/gqA3/qt3+L5kcS/RBL/U9jmX2KbF8Q2z802D3TixAke/OAH89CHPpTjx4/z0Ic+FID77rvv1t/6rd/67n/4h3/4nX/4h3/4ba666qqrrrrqqquu+tdCD3rQg7jqqquuuuqqq6666kXzYi/2Yq/9Yi/2Yq/1Tu/0Tp/NMz396U/n6U9/Or/5m7+JJJ4fSbwgkvi3kMS/h23+LWzzwtjm+bHNc7PNc7PNiRMneMhDHsJDH/pQXvZlXxaA++6779Z/+Id/+O1/+Id/+J3f+q3f+m6uuuqqq6666qqrrnpRoAc96EFcddVVV1111VVXXfWCvdiLvdhrv9iLvdhrvdM7vdNnA1y8eJG/+qu/4ulPfzpPf/rTkcTzI4nnRxIvCkn8d7LNi8I2L4htnh/bPDfbPJBtAE6cOMFDHvIQHvKQh/DQhz6UEydOcN999936D//wD7/9D//wD7/zW7/1W9/NVVddddVVV1111VUvCHrQgx7EVVddddVVV1111VXP6Zprrnnwa7/2a7/XO73TO302wMWLF/mrv/or/vIv/5Ld3V0AJPHcJPH8SOKFkcS/lyReGNv8e9nmhbHNC2Kb52ab52abB7LN/Wxz4sQJXvZlX5aHPvShPPShD+W+++679R/+4R9++7d+67e+5x/+4R9+m6uuuuqqq6666qqrHgg96EEP4qqrrrrqqquuuuoquOaaax782q/92u/1Oq/zOu99zTXXPPjixYv85V/+JbfeeitPf/rTuZ8knpsknpskXhBJvKgk8V/JNi8q27wgtnl+bPPcbPPcbHM/2zyQbQBOnDjBy77sy/L6r//6ANx33323/tZv/dZ3//Zv//b33Hfffbdy1VVXXXXVVVdddRV60IMexFVXXXXVVVddddX/Z6/zOq/z3i/2Yi/2Wq/zOq/z3hcvXuQv//IvefrTn86tt97KA0nigSTx3CTxgkjihZHE/2S2eWFs84LY5vmxzQPZ5oFs80C2eSDbAJw4cYLjx4/zci/3crzcy70cAP/wD//w27/1W7/1Pb/1W7/13Vx11VVXXXXVVVf9/4Ue9KAHcdVVV1111VVXXfX/zTXXXPPg137t136vd3qnd/psgIsXL/KXf/mX/OZv/iaSeCBJPJAknpsknh9JvCCS+NeQxH8m2/xr2OYFsc3zY5vnxzYPZJsHss0D2eZ+trmfbU6cOMFDH/pQXu7lXo6HPvSh3Hfffbf+6I/+6Of8wz/8w2/fd999t3LVVVddddVVV131/wt60IMexFVXXXXVVVddddX/F9dcc82DX/u1X/u93umd3umzAX7jN36Dv/qrv+LixYsASOJ+knggSTw3STw3SbwgkviXSOJ/Etv8S2zzgtjm+bHNc7PNA9nmgWxzP9s8kG3uZxuA48eP8wZv8Aa83Mu9HPfdd9+t//AP//Dbv/Vbv/U9//AP//DbXHXVVVddddVVV/3/gB70oAdx1VVXXXXVVVdd9X/dNddc8+AP//AP/64Xe7EXe+2LFy/yl3/5l/zmb/4m95PE/STxQJJ4IEk8N0k8P5J4YSTxbyGJ/wi2+deyzb/ENs+PbZ6bbZ6bbR7INg9km/vZ5n62uZ9t7nf8+HFe7uVejpd/+ZfnxIkT3Hfffbf+6I/+6Of81m/91ndz1VVXXXXVVVdd9X8betCDHsRVV1111VVXXXXV/1Xv+I7v+Fmv8zqv897XXHPNgy9evMhv/MZv8Fd/9VfcTxIPJIn7SeKBJPHcJPH8SOL5kcSLQhL/3WzzorDNC2Ob52ab52ab52abB7LN/WxzP9s8kG0AbHM/2wC83Mu9HC/3ci/Hwx72MO67775bf/RHf/Rzfuu3fuu7ueqqq6666qqrrvq/CT3oQQ/iqquuuuqqq6666v+ad3zHd/ys13md13nva6655sEXL17kN37jN/jLv/xLJHE/SdxPEg8kiftJ4rlJ4rlJ4vmRxAsjiX8vSfxLbPPvZZt/iW2eH9s8P7Z5INs8kG0eyDYPZJv72eZ+trmfbQBsc7/jx4/zju/4jjzsYQ/jvvvuu/W3fuu3vvtHf/RHP4errrrqqquuuuqq/1vQgx70IK666qqrrrrqqqv+r3jHd3zHz3qd13md977mmmse/LSnPY2f+Imf4OLFiwBIAkAS95PEA0nigSTxQJJ4IEk8P5J4QSTxopLEfzXbvKhs88LY5vmxzXOzzQPZ5oFs80C2uZ9t7meb+9nmfra5n20AbHPixAne4A3egJd/+Zfnvvvuu/VHf/RHP+e3fuu3vpurrrrqqquuuuqq/xvQgx70IK666qqrrrrqqqv+t3uxF3ux1/7wD//w77rmmmse/LSnPY0f//EfZ3d3FwBJ3E8S95PE/STxQJJ4IEk8kCSemyReEEn8SyTxP5Vt/iW2eUFs8/zY5rnZ5oFs80C2eSDb3M8297PN/WwDYJv72QbANgDHjx/n5V/+5XnDN3xD7rvvvlt/9Ed/9HN+67d+67u56qqrrrrqqquu+t8NPehBD+Kqq6666qqrrrrqf6trrrnmwR/+4R/+XS/2Yi/22hcvXuTHf/zHefrTn879JAEgiftJ4n6SeCBJPJAkHkgSz00Sz48kXhhJ/GtJ4j+abf4tbPPC2Ob5sc1zs81zs80D2eaBbHM/29zPNvezzf1scz/bANgGwDb3O378OO/0Tu/Ewx72MO67775bv/7rv/59/uEf/uG3ueqqq6666qqrrvrfCT3oQQ/iqquuuuqqq6666n+ba6655sGv/dqv/V7v9E7v9NkXL17kx3/8x3na056GJAAkcT9J3E8S95PE/STxQJJ4IEk8N0k8N0m8IJJ4UUjifwrbvChs84LY5vmxzXOzzXOzzQPZ5n62eSDb3M8297MNgG3uZxsA2wDY5n62edjDHsYbvMEb8LCHPYzf+q3f+u4f/dEf/Zz77rvvVq666qqrrrrqqqv+d0EPetCDuOqqq6666qqrrvrf5HVe53Xe+8M//MO/6+LFi/zFX/wFv/EbvwGAJAAkcT9JAEjifpJ4IEncTxIPJIkHksTzI4nnRxIvjCT+PSTxr2Gbfw/b/Ets84LY5rnZ5rnZ5oFs80C2eSDb3M8297PN/WxzP9sA2AbANvezDYBtTpw4wUMf+lDe8A3fkGmabv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqfw/0oAc9iKuuuuqqq6666qr/DV7sxV7stT/8wz/8u6655poH//qv/zq/8Ru/wf0kASAJAEncTxL3k8T9JHE/STyQJB5IEs9NEs+PJF4YSbwoJPFAx44dA+DYsWMcP34cgGPHjgFw7NgxAI4dO8YDHT9+nBfV7u4u97t06RIAu7u7AFy6dAmAS5cusbu7y6VLlwCwzQtjm+fHNs+PbR7INg9kmweyzf1scz/b3M8297PN/WwDYBsA29zPNgC2ATh+/Div8AqvwBu+4Rty33333fpbv/Vb3/2jP/qjn8NVV1111VVXXXXV/3zoQQ96EFddddVVV1111VX/k11zzTUP/vAP//DverEXe7HXftrTnsa3fuu3IgkASdxPEgCSuJ8kACRxP0k8kCTuJ4kHksRzk8Rzk8QLIol/iSSOHTsGwIMe9CCOHTvGsWPHOHbsGMePH+fYsWP8T3Pp0iUAdnd3uXTpEs94xjOwzaVLl7h06RK7u7s8kG2eH9s8N9s8kG0eyDYPZJv72eZ+trmfbQBscz/bANjmfrYBsA2AbQBsc+LECV7+5V+eN3qjN+If/uEffvvrv/7r3+e+++67lauuuuqqq6666qr/udCDHvQgrrrqqquuuuqqq/6nesd3fMfPeqd3eqfPvnjxIj/2Yz/G0572NCQBIAkASdxPEgCSuJ8k7ieJ+0nigSRxP0k8N0k8N0k8P5J4QY4dO8bx48d50IMexLFjxzh27BgPetCD+I80TRP/WrVW/iPt7u4C8IxnPINnPOMZAFy6dIlnPOMZ2Oa52ea52eaBbHM/2zyQbe5nm/vZ5n62uZ9tAGxzP9sA2AbANgC2AbANwEMf+lDe+Z3fmWmabv2t3/qt7/7RH/3Rz+Gqq6666qqrrrrqfyb0oAc9iKuuuuqqq6666qr/aa655poHf/iHf/h3vdiLvdhr/9qv/Rq/8Ru/AYAkACQBIIn7SQJAEveTBIAkHkgS95PEA0nigSTxQJJ4fiTx3I4dO8ZLvuRLIolbbrmFBz3oQfxrTdMEwDiOrFYr7jdNE+M4AjBNE9M08R+l1sr9aq10XQdArZVaKwC1Vrquo9bKv8bu7i6XLl1id3eXZzzjGezu7vKMZzyD+9nmgWzzQLZ5INvczzYPZJv72QbANvezDYBt7mcbANsA2AbANgC2AThx4gQv//Ivzxu90Rtx33333fpZn/VZr3PffffdylVXXXXVVVddddX/LOhBD3oQV1111VVXXXXVVf+TvOM7vuNnvdM7vdNnP+1pT+NHf/RH2d3dBUASAJIAkASAJO4nCQBJ3E8S95PE/STxQJJ4IEk8kCSeH0kAHDt2jOPHj3PLLbfwoAc9iAc96EG8KKZpAmC5XDKOI9M0MU0T4zgyTRP/WpL4j2CbF1Wtla7rqLVSa6XrOmqtLBYLXhS7u7tcunSJW2+9lUuXLvE3f/M32OaBbPNAtnkg29zPNvezzf1scz/bANjmfrYBsA2AbQBsA2AbANsA2ObEiRO88zu/M+v1+rf//u///rd/9Ed/9HO46qqrrrrqqquu+p8DPehBD+Kqq6666qqrrrrqf4JrrrnmwR/+4R/+XS/2Yi/22r/2a7/Gr//6ryMJAEkASAJAEgCSAJDE/SRxP0ncTxL3k8T9JPFAknggSTw3SRw7dowHPehBHDt2jAc96EE86EEP4l8yjiPL5ZJpmlgulyyXS14QSfxvZJsHqrXSdR21VhaLBV3XsVgs+Jfs7u7yjGc8g1tvvZW/+Zu/4X62eSDb3M8297PN/WxzP9vczzYAtrmfbQBsA2AbANsA2AbANrYBsM0bvdEb8UZv9Ebcd999t37WZ33W69x33323ctVVV1111VVXXfXfDz3oQQ/iqquuuuqqq6666r/bO77jO37WO73TO332xYsX+ZEf+RGe/vSnIwkASQBIAkASAJIAkMT9JAEgiftJ4n6SuJ8kHkgSDySJ5/bgBz+YW265hQc96EE86EEP4oUZx5G9vT0Alssly+WS+0niP4ok/ivY5j9KrRWAxWLBYrGg6zoWiwUvzO7uLs94xjP467/+a57xjGdgm/vZ5oFscz/b3M82ALa5n20AbHM/2wDYBsA2ALYBsA2AbWwDYJsTJ07wYR/2YUzTdOtv/dZvffeP/uiPfg5XXXXVVVddddVV/73Qgx70IK666qqrrrrqqqv+u1xzzTUP/vAP//DverEXe7HX/rVf+zV+7dd+DUlIAkASAJIAkASAJAAkASCJ+0nifpK4nyTuJ4n7SeKBJHG/48eP85Iv+ZI86EEP4kEPehAvyDiOjOPIcrnk6OiI5XKJJP61JPF/hW3+Nbquo9bKYrFgsViwsbHBC7K7u8sznvEMbr31Vm699VZ2d3cBsM39bHM/29zPNvezDYBt7mcbANsA2AbANgC2AbANgG1sA2CbEydO8Aqv8Aq88Ru/Mf/wD//w21//9V//Pvfdd9+tXHXVVVddddVVV/33QA960IO46qqrrrrqqquu+u/wYi/2Yq/9uZ/7ub918eJFfuRHfoSnPe1pSEISAJIAkASAJAAkASAJAEncTxIAkrifJO4niQeSxP0kAXD8+HFe8iVfkgc96EE86EEP4gUZx5FLly6xXC5ZLpe8KCTxH0ES/51s8x/BNi9I13UA7OzssFgs2NjY4AXZ3d3lr//6r3nGM57B05/+dB7INvezDYBt7mcbANvczzYAtgGwDYBtAGwDYBvbANgGwDa2OXnyJB/2YR/GNE23/uiP/ujn/NZv/dZ3c9VVV1111VVXXfVfDz3oQQ/iqquuuuqqq6666r/aO77jO37WO73TO332n//5n/OjP/qjAEhCEgCSAJAEgCQkcT9JAEgCQBL3k8T9JHE/SdxPEg904sQJXvIlX5KXfMmX5Pjx4zw/4zhy6dIllsslR0dHvCCS+NeSxP9ltvnXss0DdV1H13Xs7OzQdR0bGxs8P7u7u/z1X/81t956K7feeisAtrmfbe5nGwDb3M82ALYBsA2AbQBsA2AbANvYBsA2ALaxzYkTJ3jFV3xFXvZlX/bW3/qt3/ruH/3RH/0crrrqqquuuuqqq/5roQc96EFcddVVV1111VVX/Ve55pprHvzhH/7h3/ViL/Zir/0jP/Ij/MVf/AUAkpAEgCQAJCEJAEncTxIAkgCQxP0kASCJ+0nigSQBcPz4cV7qpV6Kl3zJl+T48eM8P+M4cunSJS5dusQ4jjw3SbyoJPHvIYn/iWzz72WbF5VtALquY2Njg2PHjrGxscHzs7u7y1//9V/z13/911y8eJH72eZ+tgGwzf1sA2AbANsA2AbANgC2AbCNbQBsYxsA29jmFV/xFXnXd31X/uEf/uG3v/7rv/597rvvvlu56qqrrrrqqquu+q+BHvSgB3HVVVddddVVV131X+Gaa6558Dd90zc9/cKFC/zoj/4oT3va0wCQhCQAJAEgCUkASAJAEveTBIAkACRxP0ncTxL3kwTAa77ma/LgBz+YBz3oQTw/4ziyu7vLuXPnuJ8kXhSS+NeQxP8ntvnXsM2LotbKxsYGx48fZ2Njg+fn1ltv5a//+q/5q7/6KwBscz/b3M82ALYBsA2AbQBsA2AbANsA2MY2ALaxDYBtbHPixAk+4iM+gmmabv2sz/qs17nvvvtu5aqrrrrqqquuuuo/H3rQgx7EVVddddVVV1111X+2F3uxF3vtz/3cz/2tpz71qXzzN38zkgCQhCQAJAEgCUkASAJAEgCSuJ8kACRxP0kASOJ+kjh+/Dgv+ZIvyWu91mvx/IzjyO7uLmfPnkUS/xJJvKgk8W8lif9NbPPvYZsXhW1ekK7r2NjY4NixY2xubvLcdnd3ufXWW/mrv/orbr31VmwDYJv72QbANgC2AbANgG0AbANgGwDb2AbANrYBsI1tTpw4wSu+4ivyci/3crf+1m/91nf/6I/+6Odw1VVXXXXVVVdd9Z8LPehBD+Kqq6666qqrrrrqP9M7vuM7ftY7vdM7ffav/uqv8mu/9msASEISkgCQBIAkJAEgCQBJAEgCQBL3kwSAJO4nifu91mu9Fi/1Ui/F8ePHeW7jOLK7u8vZs2d5YSTxL5HEv4Yk/jNI4j+Sbf4z2OZfwzYvCts8UNd1HD9+nI2NDTY3N3luu7u7/NZv/RZ/9Vd/BYBt7mcbANsA2AbANgC2AbANgG1sA2AbANvYxjYAtrHNG7/xG/Mmb/Im/MiP/Mhn/+iP/ujncNVVV1111VVXXfWfBz3oQQ/iqquuuuqqq6666j/L537u5/7Wi73Yi732N33TN/G0pz0NAElIQhIAkgCQhCQAJAEgCQBJAEjifpIAkMT9JHH8+HFe6qVeitd6rdfiuY3jyMWLF9nd3WUcR56bJF4YSbyoJPFvIYn/C2zzb2WbF4Vt/iW2Aei6juPHj3PNNdfw3HZ3d/mrv/or/uqv/ord3V1sA2AbANsA2AbANgC2AbANgG1sA2Ab2wDYxjYAtrHNiRMn+OzP/mz+4R/+4bc/8zM/83W46qqrrrrqqquu+s+BHvSgB3HVVVddddVVV131H+2aa6558Id/+Id/1/XXX//aP/IjP8JTn/pUJCEJSQBIQhIAkpAEgCQAJAEgCQBJAEjifpIAkMTx48d5rdd6LV7qpV6K5zYMA7u7u9x3333cTxIvjCReFJJ4UUniP4ok/jvY5j+Kbf41bPOisM0L0nUdGxsbnDhxgs3NTR5od3eXpz/96fzVX/0VT3/60wGwDYBtAGwDYBsA2wDYBsA2tgGwjW0AbGMb2wDY5sSJE3zkR34k0zTd+lmf9Vmvc999993KVVddddVVV1111X8s9KAHPYirrrrqqquuuuqq/0jXXHPNg7/pm77p6RcuXOALvuALkIQkJCEJAElIAkASkgCQBIAkACQBIAkASdxPEgAPfvCDea3Xei0e/OAH89zuvfdednd3GceRF0YS/xJJvCgk8W8hif+rbPNvYZsXhW3+JbZ5bl3XceLECa655hqe2+7uLr/5m7/JX/3VX2EbANsA2AbANgC2AbANgG1sA2Ab2wDYxja2sY1tTpw4wUd+5EfSWrv1sz7rs17nvvvuu5Wrrrrqqquuuuqq/zjoQQ96EFddddVVV1111VX/UV7sxV7stT/3cz/3t57ylKfwTd/0TUhCEpKQBIAkJAEgCUkASAJAEgCSAJAEgCQAJAHwWq/1Wrz0S780x48f54GGYeDixYvcd999PD+S+JdI4l8iiReVJP69JPE/kW3+I9jmRWWbF4VtXhjbAPR9z/Hjxzlx4gR93/NAu7u7/OVf/iW/+Zu/CYBtAGwDYBsA2wDYxjYAtgGwjW1sA2Ab29jGNidOnOCVXumVePmXf/lbv/7rv/59/uEf/uG3ueqqq6666qqrrvqPQTl+/DhXXXXVVVddddVV/xFe7MVe7LU/93M/97f+7M/+jO/+7u9GEpKQBIAkJCEJAElIAkASAJIAkASAJAAkASCJ13qt1+Kt3/qtefSjH818Pud+wzBw7tw5nvGMZ3B4eAiAJP4lknhhJPGikMS/liT+v7HNv5ZtXhS2+ZfY5rm11jg8PGR/f5/lckkphb7vAZjP5zzkIQ/hZV/2ZZnP59x6660ASAJAEgCSAJDE/SRxP0k8kCTut1wuOX/+PBFx/K3f+q1fe3Nz8/g//MM//A5XXXXVVVddddVV/36U48ePc9VVV1111VVXXfXv9Tqv8zrv/Umf9Ek/9UM/9EP86q/+KpKQhCQAJCEJSQBIQhIAkgCQBIAkACQBIAmAl3mZl+Gd3umdePSjH818Pud+wzBw6623ctddd3F4eMgLIol/iST+JZJ4UUni30MS/9vY5t/DNi8q2/xLbPMvsQ1Aa43VasXFixe5ePEi8/mcvu8BmM/nPOQhD+FlXuZlWCwWPP3pT0cSAJIAkASAJO4niftJ4rlJAmC5XPLkJz+Zzc3N46/2aq/24M3NzeP/8A//8DtcddVVV1111VVX/ftQjh8/zlVXXXXVVVddddW/x+u8zuu894d/+Id/1w/90A/x53/+50gCQBKSkIQkACQhCQBJSAJAEgCSAJAEgCQe/OAH897v/d689Eu/NPP5nPsdHBxw++23c9dddzEMA89NEi+IJF4UkviXSOJfSxL/GSTxH802/xls869lmxeFbf4ltnlhpmni4sWLXLx4kVIKi8UCgMViwY033sgrvMIrsFqtuOeeewCQBIAkACRxP0ncTxIvzJOf/GQ2NjaOv83bvM1rA/zDP/zD73DVVVddddVVV131b0c5fvw4V1111VVXXXXVVf9Wr/M6r/PeH/7hH/5d3/AN38Df//3fIwlJSEISkpAEgCQkASAJSQBIAkASAJIAOHHiBO/8zu/Ma7/2azOfz7nfwcEBT3nKUzh79izDMAAgiRdGEi+MJP4lknhRSeLfShL/V9jm38o2LyrbvChs88LY5rm11tjb2+PixYuUUlgsFpRSWCwWPPaxj+VlX/Zlueeee7h48SKSAJDE/SRxP0ncTxIvyJOf/GTOnz/Pu77ru742wD/8wz/8DlddddVVV1111VX/NpTjx49z1VVXXXXVVVdd9W/xOq/zOu/94R/+4d/1Dd/wDTz1qU9FEpKQhCQkIQkASUgCQBKSAJAEgCQAJHHixAne5V3ehTd+4zfm+PHj3G8YBp72tKdxzz33kJm8IJJ4YSTxwkjiRSWJfw1J/EeRxH8n2/xHsc2/hm1eVLZ5YWzzwtgGoLXGpUuXuHDhAovFgr7vAVgsFrzsy74sJ06c4O6772a1WgEgiftJ4n6SeCBJPD933HEH586d493e7d1eG+Af/uEffoerrrrqqquuuuqqfz3K8ePHueqqq6666qqrrvrXep3XeZ33/vAP//Dv+oZv+Aae+tSnIglJSEISkgCQhCQkASAJSQBIAkASkjhx4gSv8iqvwju/8ztz/Phx7jcMA0972tO48847GYaB5yaJF0QSL4wk/iWSeFFJ4t9CEv8f2ObfwjYvKtv8S2zzwtjmBWmtcf78eS5cuMDGxgZ93wNw/fXX89jHPpbFYsHTn/50ACRxP0ncTxLPTRLP7Y477uD8+fO827u922sD/MM//MPvcNVVV1111VVXXfWvQzl+/DhXXXXVVVddddVV/xqv8zqv894f/uEf/l1f//Vfz9Oe9jQkIQlJSAJAEpKQhCQAJCEJAEkASEISr/3ar827vMu78OAHP5j7DcPAfffdx9Oe9jSGYQBAEi+IJF4YSbwwknhRSOJfQxL/XpL4n842/xFs869hmxeFbV4Y27wwtnmg1hoXLlxgGAY2NjYopbBYLHjoQx/Ky77sy7JYLHja056GJO4niQeSxL/kjjvu4I//+I/5iI/4iNcG+Id/+Iff4aqrrrrqqquuuupFRzl+/DhXXXXVVVddddVVL6rXeZ3Xee8P//AP/66v//qv56lPfSqSiAgAJCEJSUhCEgCSkIQkACQBIIkTJ07wLu/yLrzMy7wMD3TXXXfx1Kc+lYODA14QSbwgknhhJPEvkcSLQhL/FpL4ryaJ58c2/9Vs829hmxeFbf4ltnlhbPPC2Ga5XLK7u0trje3tbQAWiwUPfehDebmXeznuvvtuLl68iCTuJ4n7SeJfslwu+aM/+iM+8iM/8rUB/uEf/uF3uOqqq6666qqrrnrRUI4fP85VV1111VVXXXXVi+LFXuzFXvuTPumTfurrv/7reepTn4okJCEJSUhCEpKQBIAkJAEgCUkAnDhxgld5lVfhXd7lXTh+/Dj3O3/+PI9//OM5ODjggSTxwkjiBZHECyOJF4UkXlSS+PeSxP92tvn3sM2/hm3+Jbb5l9jmBbHNc2utcXBwwPnz55mmie3tbQAWiwUPfehDWSwWPO1pT0MS95PEA0niBbHNcrnk/PnzvNu7vdtrA/zDP/zD73DVVVddddVVV131L6McP36cq6666qqrrrrqqn/Ji73Yi732537u5/7W133d1/G0pz0NSUhCEpKQhCQkASAJSUgCQBKSAHjIQx7Ch37oh/KQhzyE+63Xa5761Kdy7733AiCJF0QSL4gkXhhJ/Esk8aKQxL+GJP4zSOK/km3+M9jmX8M2Lyrb/Ets88LY5gWxDUBrjYODA86fP8+JEycopbBYLHjoQx/Ky73cy7FYLHj605/O/STx/EgCwDYPdMcdd3Du3Dne4A3e4MGbm5vH/+Ef/uF3uOqqq6666qqrrnrhKMePH+eqq6666qqrrrrqhXmxF3ux1/7cz/3c3/qBH/gB/v7v/x5JRASSkIQkJCEJAElIQhIAkpDE8ePHedd3fVde93Vflwe68847eepTn8owDDw/knhBJPGCSOKFkcSLQhIvKkn8W0ji/wvb/FvY5kVlm3+Jbf4ltnlhbPP8tNa4ePEirTW2t7cBWCwWPPShD+XEiRPcddddrFYr7ieJF9Xtt9/O5ubm8Vd/9Vd/8K233vo3Z8+evZWrrrrqqquuuuqqF4xy/Phxrrrqqquuuuqqq16Qa6655sFf8RVf8Ve/9Eu/xO/+7u8iCUlIIiIAkIQkJCEJSUgCQBKSeJmXeRne7/3ejxMnTnC//f19/vZv/5b9/X3uJ4kXRBIviCReGEn8SyTxopDEv4Yk/r0k8b+Bbf4j2OZfwzYvCtv8S2zzwtjmBbHN/Vpr7O/vc+7cOVprbG9vA3DDDTfwYi/2Ysznc57+9KfzQJJ4YWwD8KQnPYmNjY3jb/u2b/vaf/Znf/Yzh4eHu1x11VVXXXXVVVc9f5Tjx49z1VVXXXXVVVdd9fxcc801D/6cz/mc3/r7v//74z/1Uz9FRCAJSUhCEpKQhCQkIQkASUjixIkTvOu7viuv+qqvyv3W6zVPfvKTufPOO5HECyKJF0QSL4gkXhhJvCgk8aKQxL+FJP4rSeJfYpv/Srb5t7DNi8o2/xLbvDC2eWFs84JM08T+/j7DMLCxsUGtlcViwcMe9jBOnjzJ3XffzWq14oEk8dxs80BPetKT2NjYOP7u7/7ub/1nf/ZnP3N4eLjLVVddddVVV1111fOiHD9+nKuuuuqqq6666qrn55M+6ZN+apqml/6O7/gOJBERSEISkpCEJCQhCUkASEISD3nIQ/iwD/swTpw4wf3OnTvHE57wBIZh4IEk8YJI4gWRxAsjiX+JJP4lkvjXkMS/hyT+r7DNv4dt/jVs86KwzQtjmxfGNi+MbR7o6OiI3d1dpmliZ2cHgBtuuIEbbriBEydO8LSnPY1/rXPnznH69Onjb/d2b/fWv/ALv/A1XHXVVVddddVVVz0vyvHjx7nqqquuuuqqq656bp/7uZ/7W9ddd91rf+mXfikRgSQkERFIQhKSkIQkACQhCUm87uu+Lm/3dm/H/dbrNU9+8pO55557AJDECyKJF0QSL4gkXhhJ/Esk8aKSxL+WJP6jSeK/mm3+M9jmX8s2Lwrb/Ets8y+xzQtimxdmmib29/fZ29tjZ2eHWisnTpzgYQ97GABPfepTkcS/xDYAR0dH3H777TzqUY86/pjHPObBf/qnf/ozXHXVVVddddVVVz0nyvHjx7nqqquuuuqqq656oHd8x3f8rNd5ndd572//9m/n4sWLRASSkIQkIgJJAEhCEpKQxIkTJ3i3d3s3XvZlX5b77e3t8fd///es12uemyReEEm8IJJ4YSTxL5HEv0QSLypJ/FtJ4v8L2/xb2eZfwzb/Etv8S2zzwtjmBbHNcxuGgd3dXVpr7OzsAPCwhz2MV3iFV+Dv//7vWS6XSOJFsVwueeITn8hbv/Vbv/TGxgb/8A//8DtcddVVV1111VVXPRvl+PHjXHXVVVddddVVV93vxV7sxV77Iz7iI777a7/2a3nqU5+KJCICSUhCEpKQhCQkIQlJvOzLvizv//7vz4kTJ7jfHXfcwVOf+lTuJ4kXRBIviCReEEm8MJL4l0jiRSGJfw1J/EeRxP8GtvmPYJt/Ldu8KGzzL7HNC2ObF8Y2L4htpmlib28PgJ2dHQAWiwUv/uIvzmKx4KlPfSoAkngg2zy3o6Mj/uqv/oqP/uiPfu2zZ88+49Zbb/1rrrrqqquuuuqqq66gHD9+nKuuuuqqq6666iqAa6655sFf8RVf8Vdf8zVfw1Of+lQiAklEBJKQhCQkIQlJSEIS7//+78+rvuqrcr/1es3f/d3fcfHiRZ4fSbwgknhBJPHCSOKFkcSLQhIvKkn8a0niv4MkXhjb/Fezzb+Fbf41bPMvsc2/xDYvjG1eENs8t/39fc6dO8eJEyeotbJYLHjYwx4GwNOe9jReVEdHR5w9e5a3eZu3eek/+7M/+5nDw8Ndrrrqqquuuuqqq4By/PhxrrrqqquuuuqqqwA+6ZM+6af+7M/+7MF/+qd/SkQQEUhCEhGBJCQhCUlI4sSJE7z7u787D3nIQ7jf7bffzhOf+ESmaeJ+knh+JPGCSOKFkcQLI4l/iSReFJJ4UUni30sS/5fY5t/LNv8atnlR2OZfYpsXxjYvjG1eENtM08TFixdprbGzswPAwx72MF7hFV6Bv//7v2e1WvEvkcTtt9/OYrE4/h7v8R5v/Qu/8Atfw1VXXXXVVVdddRVQjh8/zlVXXXXVVVddddXnfu7n/lbf96/9Az/wA0QEkogIJCEJSUQEkgCQxEMf+lA+4iM+ghMnTnC/v//7v+fcuXO8IJJ4QSTxgkjihZHECyOJf4kkXlSS+NeSxH80Sfx3ss1/NNv8W9jmRWGbF4VtXhjbvDC2eWFs80CtNfb29liv15w8eRKAxWLBS7zES7BYLHjqU5/KA9nm+Tl37hyPfvSjjz/mMY958J/+6Z/+DFddddVVV1111f93lOPHj3PVVVddddVVV/3/9jqv8zrv/eZv/uYf/TVf8zWs12siAklEBJKQhCQkIQlJvP7rvz5v//Zvz/3W6zV/8zd/w9HREfeTxAsiiRdEEi+MJF4YSbwwknhRSOJFJYl/K0n8f2Sbfyvb/GvY5kVhm3+JbV4Y27wwtnlBbHN4eMjZs2c5efIktVYWiwUPe9jDAHjqU5/Kv+To6IgnPOEJvM3bvM1Lb2xs8A//8A+/w1VXXXXVVVdd9f8Z5fjx41x11VVXXXXVVf9/vdiLvdhrf9InfdJPffVXfzV33XUXEUFEIImIQBKSkIQkJPEBH/ABvNzLvRz3u3TpEn/9139Na40XRBIviCReEEm8IJL4l0jiXyKJF4Uk/rUk8R9BEv/b2OY/gm3+tWzzorLNv8Q2L4xtXhjbvDC2eaDWGhcuXGCaJo4dOwbAwx/+cB7+8IfzZ3/2Z/xLjo6OuO2223ibt3mbB996661/c/bs2Vu56qqrrrrqqqv+v6IcP36cq6666qqrrrrq/6+P+IiP+K4/+7M/e/Cf/umfEhFEBBGBJCQREUhCEidPnuQ93uM9eOhDH8r9brvtNp7ylKfwQJJ4QSTxgkjiBZHECyOJf4kk/iWSeFFJ4t9CEv9VJPHvZZv/Krb5t7DNi8o2Lwrb/Ets88LY5oWxzQsyTRN7e3sAHDt2DICTJ0/yCq/wCvzDP/wDy+USANs8P+fOnWOxWBx/u7d7u9f+hV/4ha/hqquuuuqqq676/4py/Phxrrrqqquuuuqq/58+/MM//LuOHz/+1t///d9PKYWIQBIRgSQkIYmI4GEPexgf+ZEfyYkTJwBYrVY8/vGP57777kMSz48kXhBJvCCSeGEk8cJI4l8iiReFJP41JPHvIYn/62zz72Gbfw3bvKhs8y+xzQtjmxfGNi+MbR5ob2+PS5cucc011wCwWCx48Rd/cf7hH/6Bo6Mjnpsk7nfu3Dke/ehHH3/sYx/74D/90z/9Ga666qqrrrrqqv+PKMePH+eqq6666qqrrvr/58Ve7MVe+33f932/+qu/+qtZr9dEBBGBJCICSUhCEg972MP4wA/8QO63Wq148pOfzKVLl3ggSTw/knhhJPGCSOKFkcQLI4kXhSReFJL4t5DEfyRJ/E9jm/9otvnXss2LyjYvCtv8S2zzwtjmhbHNC7Jarbjvvvs4deoUtVYWiwUv/uIvzmKx4KlPfSovyNHREU94whP4wA/8wJf+h3/4h985e/bsrVx11VVXXXXVVf/fUI4fP85VV1111VVXXfX/zzd/8zc//au+6qu46667iAgigohAEhGBJCTx8i//8rzne74n97t06RJ/9Vd/xXq95gWRxAsiiRdEEi+MJF4YSfxLJPEvkcS/hiT+rSRxFdjm38o2/xq2eVHY5l9im3+JbV4Y27wgtrlfa43z58+zubnJfD5nsVhw8uRJFosFT33qU7HN83N0dMR9993He7zHe7z2n/3Zn/3M4eHhLlddddVVV1111f8nlOPHj3PVVVddddVVV/3/8rmf+7m/tbu7++Bf+qVfIiKICCKCiEASkogI3uAN3oC3eIu34H6XLl3ib//2b3kgSbwgknhBJPGCSOKFkcS/RBL/Ekm8KCTxryWJfy9J/F9hm/8ItvnXss2Lyjb/Etv8S2zzwtjmhbHN89NaY3d3l9Yax44dY7FY8PCHPxyApzzlKbwgt912GzfffPPxxzzmMcf/9E//9Ge46qqrrrrqqqv+P6EcP36cq6666qqrrrrq/48Xe7EXe+13eqd3+uzP+IzPICIopRARSCIikIQkPviDP5iXe7mX43733nsvj3vc43hBJPGCSOIFkcQLI4kXRhL/Ekn8SyTxryGJfy1J/GeSxH8l2/xnss2/hW1eVLZ5UdjmX2Kbf4ltXhjbvCC2AWitcenSJQCOHTsGwMMf/nAk8ZSnPIUHkoRtAG677Tbe5m3e5qUPDw+fceutt/41V1111VVXXXXV/xeU48ePc9VVV1111VVX/f/xzd/8zU//yq/8Si5evEgphYggIpBERCCJD/7gD+ahD30o93viE5/IM57xDO4niRdEEi+IJF4YSbwwknhhJPEvkcSLQhL/GpL495DE/0e2+feyzb+GbV4UtnlR2OaFsc2/xDYviG2en0uXLgFw7NgxAB7+8Idz6tQp/vZv/5bn5+joiIODA17zNV/z+D/8wz/8zuHh4S5XXXXVVVddddX/B5Tjx49z1VVXXXXVVVf9//C5n/u5v3Xx4sUH/9Iv/RKlFCKCiCAikERE8MEf/ME89KEP5X5/8zd/w/nz53l+JPHCSOIFkcQLIokXRhL/Ekn8SyTxopLEv5Yk/qNI4n8j2/xHss2/lm1eVLZ5UdjmX2KbF8Y2L4xtXhjbXLp0ifV6zalTpwC48cYbeaVXeiV+53d+h+dmm9tuu41Xf/VXf/CDHvSg43/6p3/6M1x11VVXXXXVVf8fUI4fP85VV1111VVXXfV/34u92Iu99ju90zt99ld/9VezXq+JCCKCiCAikMQHf/AH87CHPYz7/c3f/A27u7sASOIFkcQLI4kXRBIvjCReGEn8SyTxopDEv4Yk/i0k8V9JEv9etvmvZJt/K9v8a9jmRWGbf4lt/iW2eWFs88LY5oEODw9Zr9ecOnUKgMViwSu90ivx27/92zw/j3/84/mgD/qgl/6Hf/iH3zl79uytXHXVVVddddVV/9dRjh8/zlVXXXXVVVdd9X/fR3zER3zX933f9z347rvvppRCRBARSCIi+OAP/mAe9rCHcb+/+Zu/YXd3l+cmiRdEEi+MJF4YSbwwknhhJPEvkcSLShL/GpL495LE/xe2+feyzb+WbV5UtnlR2OZfYpsXxjYvjG1ekMPDQ+69915uvPFGABaLBa/8yq/Mb//2b/Pcjo6OuPfee3nP93zP1/6FX/iFr+Gqq6666qqrrvq/jnL8+HGuuuqqq6666qr/297xHd/xs2644Yb3/sVf/EUigoggIogIJPEhH/IhPOxhD+N+f/3Xf83u7i4Aknh+JPHCSOIFkcQLI4kXRhL/Ekm8KCTxopLEv4Uk/iNJ4n862/xHs82/hW3+NWzzorDNv8Q2/xLbvDC2eWFsAzBNE/feey833ngjAIvFgld+5Vfmt3/7t5EEgG0AnvGMZ/AyL/Myx8+cOcM//MM//A5XXXXVVVddddX/ZZTjx49z1VVXXXXVVVf933XNNdc8+JM+6ZN++nu+53vY3d2llEJEEBFEBB/yIR/Cwx72MO7313/91+zu7vLcJPGCSOIFkcQLI4kXRhIvjCT+JZJ4UUniRSWJfw9JXPW8bPPvYZt/Ddu8qGzzL7HNv8Q2/xLbvDC2eW7TNHHvvfdy4403ArBYLHjlV35lfvu3f5v72QbgcY97HO/xHu/x4D/7sz/7mcPDw12uuuqqq6666qr/qyjHjx/nqquuuuqqq676v+uTPumTfuopT3nKg3/nd36HUgoRQUQQEXzoh34oD3vYw7jfX/3VX7G7u4skXhBJvCCSeEEk8cJI4oWRxL9EEi8KSbwoJPGvJYn/CJL4v8w2/xFs829hmxeVbV4UtvmX2OaFsc2/xDYvzDiO3Hvvvdx0000ALBYLXvmVX5nf+q3f4oGOjo64+eabjz/2sY89/qd/+qc/w1VXXXXVVVdd9X8VwVVXXXXVVVdd9X/Wi73Yi732i73Yi732937v9xIRRAQRQUTwoR/6oTzsYQ/jfn/1V3/F7u4uALaxzfNjG9s8P7axzfNjG9u8ILaxjW2eH9vYxjYviG1sY5sXxja2sc0LYxvb2MY2tvmX2MY2trGNbWzzr2Ub29jGNraxjW1sYxvb/E9jG9vYxja2sY1tbGMb2/xb2MY2trGNbV5UtrGNbWzzL7GNbWzzwtjGNrZ5QWxjG9u8ILaxzQtjG9u8ILaxDcBqteJP/uRPuN/Jkyd5j/d4DyQhiYggIvjpn/5pXud1Xue9X+zFXuy1ueqqq6666qqr/q+iHD9+nKuuuuqqq6666v+mj/iIj/iuX/iFX3jw3XffTUQQEUQEH/ZhH8bDHvYw7veXf/mXXLp0iRdEEi+IJF4QSbwwknhhJPEvkcS/RBIvKkn8a0ji30MSVz0n2/x72OZfyzYvKtu8KGzzL7HNv8Q2L4xtnp9pmrj33nu56aabALjppps4deoUf/M3fwOAbY6Ojrjnnnt4r/d6r9f+hV/4ha/hqquuuuqqq676v4hy/Phxrrrqqquuuuqq/3te53Ve571f+ZVf+aO/7/u+j1IKpRQignd913flxV/8xbnfX/7lX7K7u8v9JPGCSOIFkcQLIokXRhL/Ekn8SyTxopDEi0oS/1qS+I8iif+LbPMfxTb/Wrb517DNi8I2/xLbvChs88LY5oWxzTRNrFYrTp8+DcBNN92EJJ70pCdxv6OjIx71qEcdB55x6623/jVXXXXVVVddddX/NZTjx49z1VVXXXXVVVf93/NJn/RJP/U93/M9xy9dukQphYjgTd7kTXjN13xN7veXf/mX7O7u8vxI4gWRxAsiiRdGEi+MJP4lkviXSOJFIYl/DUn8W0niP5Mk/jvZ5j+Tbf6tbPOvZZsXhW1eFLZ5UdjmhbHNC2ObBzo4OGC1WnH69GkAHvnIRyKJJz/5yQAcHR1x33338Z7v+Z4v/Qu/8Atfw1VXXXXVVVdd9X8N5fjx41x11VVXXXXVVf+3vM7rvM57X3fdde/9y7/8y5RSKKXwiEc8gnd5l3fhfo973OM4e/YsAJJ4QSTxgkjiBZHECyOJF0YSLwpJ/Esk8aKSxL+WJP49JHHVs9nm38s2/1q2eVHZ5kVhmxeFbf4ltnlhbPOCHBwcYJsTJ04A8MhHPhKAJz/5yQCcPXuWl37plz4u6Rm33nrrX3PVVVddddVVV/1fQnDVVVddddVVV/2f847v+I6f9Yu/+ItEBJJ4xCMewYd92Idxv6c97Wncfffd3M82L4htbPP82MY2z49tbGOb58c2trHN82Mb29jmhbGNbWzzgtjGNraxzQtjG9vYxjYvCtvYxja2sc2/hm1sYxvb2MY2trHN/0W2sY1tbGMb29jmX8s2trGNbWzzorKNbWzzL7GNbWzzL7GNbf4ltrHNC2Mb27wgtrHNC2ObW2+9lac//enc71Ve5VV41KMehSRKKXz7t3877/iO7/hZXHXVVVddddVV/9dQjh8/zlVXXXXVVVdd9X/H67zO67x3rfW9f+d3fodSCmfOnOETPuETuN/Fixd5/OMfzwsiiRdGEi+IJF4YSbwwkviXSOJFIYkXhST+NSTxbyWJ/wqS+K9mm/8Ktvn3sM2/hm1eVLZ5UdjmRWGbF8Y2/xLbPNDu7i4AJ06cYGNjg0c+8pH8zd/8DUdHRxwdHfHSL/3Sx4Fn3HrrrX/NVVddddVVV131fwXBVVddddVVV131f8o7vuM7ftaf/umfUkohInjXd31X7nfx4kX+4i/+AtvY5vmxjW1eENvY5vmxjW1s8/zYxjYviG1sY5sXxDa2sc0LYxvb2OaFsY1tbGObf4ltbGMb29jmRWUb29jGNraxjW3+I9nGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW3+o9nGNraxjW1s869hG9vYxja2eVHYxja2+ZfYxja2+ZfYxjYvjG1sY5sXxDa2eWFsY5vn55577uHixYsAnDp1io/7uI/jzJkzRATf/u3fzju+4zt+FlddddVVV1111f8llOPHj3PVVVddddVVV/3f8Dqv8zrvXWt979/93d+llMJHfuRH8vCHPxyA5XLJn/zJn/D8SOIFkcQLI4kXRhIvjCT+JZL4l0jiRSGJfw1J/FtI4j+SJP4vsc1/NNv8W9jmX8M2LyrbvChs8y+xzb/ENi+MbaZpYnd3lzNnzlBrZWNjg5d5mZfhN37jNzg6OuKGG244vrm5+Yxbb731r7nqqquuuuqqq/4vILjqqquuuuqqq/7PeMd3fMfP+uVf/mUignd/93fn4Q9/OPf7h3/4B2zz/NjGNs+PbWxjm+fHNrZ5QWxjmxfENrZ5YWxjmxfGNraxzQtjG9vYxjb/EtvYxja2eVHZxja2sY1t/j1sYxvb2MY2trGNbWxjG9vY5r+DbWxjG9vYxja2sY1tbGObfw/b2MY2trGNbV5UtrGNbWzzorCNbWzzorCNbf4ltrHNC2Mb27wwtrHNC2Ob+61WK/7yL/+S+506dYr3fd/3pZTCz/7sz/KO7/iOn8VVV1111VVXXfV/BeX48eNcddVVV1111VX/+73O67zOe3dd995//ud/zqMe9Sje9m3flvv9+Z//ORcvXuSBJPGCSOKFkcQLIol/iSReGEn8SyTxopDEv4Yk/rUk8e8liauek23+I9jmX8s2/1q2eVHY5kVhm3+Jbf4ltnl+pmni4sWLXH/99QDcfPPNRAR/9Vd/xY033nj88PDwd86ePXsrV1111VVXXXXV/3YEV1111VVXXXXV/wnv+I7v+Fm/9Eu/xKMe9Sg+8iM/kvs99alP5eLFizw329jm+bGNbV4Q29jm+bGNbWzzgtjGNi+IbWxjmxfENraxzQtjG9vY5kVhG9vYxjYvCtvYxja2sc2/lm1sYxvb2MY2trHN/0W2sY1tbGMb29jGNv8WtrGNbWxjmxeVbWxjmxeVbWxjm3+JbWzzL7GNbV4Y29jmhbGNbV4Q21y8eJGnPe1p3O9VX/VVecxjHsPP/uzP8uEf/uHfxVVXXXXVVVdd9X8B5fjx41x11VVXXXXVVf+7vc7rvM57933/3n/2Z3/GR3/0R7NYLAC4cOEC//AP/wCAJF4YSbwgknhhJPHCSOJfIokXRhIvCkm8qCTxryWJfytJ/FeRxH8H2/xXsc2/h23+LWzzorLNi8I2Lwrb/Ets8y+xzf12d3cBOHHiBBsbGzz60Y/mD//wD2mtHbf9O2fPnr2Vq6666qqrrrrqfzOCq6666qqrrrrqf73XeZ3Xea/v//7v56M/+qM5efIkAMvlkj//8z/nfraxzQtiG9s8P7axzQtiG9u8ILaxzQtjG9u8ILaxjW1eGNvYxjb/EtvYxjYvKtvYxja2+dewjW1sYxvb2MY2/9FsYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2tvnPYBvb2MY2trHNv5ZtbGMb27yobGMb29jmX2Ib29jmX2Ib2/xLbGObF8Y2tnlhbGOb53b33Xdz8eJFAE6dOsX7v//780d/9Ee80zu902dx1VVXXXXVVVf9b0c5fvw4V1111VVXXXXV/14v9mIv9tqLxeKzH/OYx/DKr/zK3O+v//qvWa1WvCCSeGEk8YJI4oWRxL9EEv8SSfxLJPGiksSLShL/VpL4jyaJ/6ts8x/NNv8etvnXsM2LyjYvCtu8KGzzL7HNCzNNExcuXOCWW24B4PTp06xWK/7hH/7hwYvF4nfOnj17K1ddddVVV1111f9WBFddddVVV1111f9qr/M6r/Nef/qnf8qbvumbcr8/+7M/48KFC9jmBbGNbV4Q29jm+bGNbWzz/NjGNrZ5QWxjmxfGNraxzQtiG9vY5l9iG9vY5l9iG9vYxjb/GraxjW1sYxvb/HvYxja2sY1tbGMb29jGNrb5n8I2trGNbWxjG9vYxja2+feyjW1sYxvb/GvZxja2sc2Lwja2sc2Lwja2+ZfYxjb/EtvY5oWxjW1eGNvYZrVa8Q//8A/c79Ve7dWotfJiL/Zi78VVV1111VVXXfW/GeX48eNcddVVV1111VX/e11zzTU//d7v/d5sbGwAcOedd/KMZzyD5yaJF0YSL4wkXhhJvDCS+JdI4l8iiReFJP41JPGvJYn/CJK46l9mm/8otvm3sM2/hm1eVLZ5UdjmX2Kbf4ltntvBwQEAJ06cYGNjgwc96EH88i//8vF77rnna7jqqquuuuqqq/63ohw/fpyrrrrqqquuuup/p9d5ndd579d93dd965tuugmA5XLJn/7pnyKJF0QSL4wkXhhJvDCS+JdI4l8iiX+JJF5UkvjXkMS/hST+o0ni/wvb/Gewzb+Vbf41bPOiss2Lyjb/Etu8KGzzgiyXS7a3t1ksFmxsbHDttdcev/fee59x9uzZv+aqq6666qqrrvrfiOCqq6666qqrrvpfazabvdcjHvEI7vd3f/d3ANjmBbGNbV4Q29jmBbGNbV4Q29jmhbGNbV4Y29jmhbGNbWzzL7GNbWzzorCNbWxjmxeVbWxjG9vY5t/LNraxjW1sYxvb2MY2tvmfzDa2sY1tbGMb29jGNrb5j2Ab29jGNrb517CNbWxjmxeFbWxjmxeFbWzzL7GNbWzzwtjGNv8S29jmhVkul/zDP/wD93v0ox/N673e630WV1111VVXXXXV/1aU48ePc9VVV1111VVX/e/zYi/2Yq/98R//8Z/NMz3lKU/hzjvv5LlJ4oWRxAsjiRdGEv8SSfxLJPEvkcSLQhL/GpL415LEv5ckrvq3s81/BNv8W9jmX8M2LyrbvChs86Kwzb/ENvebponVasU111wDwIMf/ODjv/Vbv/U7R0dHt3LVVVddddVVV/1vQ3DVVVddddVVV/2v9E7v9E6fxTNduHCBJz/5yTw/trHNC2Ib27wgtrHNC2Ib27wwtrHNC2Mb27wwtrGNbV4Y29jGNrb5l9jGNrZ5UdnGNraxjW3+tWxjG9vYxja2sc1Vz2Yb29jGNraxzb+VbWxjG9v8a9jGNrZ5UdjGNrZ5UdjGNv8S29jmX2Ib27wwtrHNc7vrrru4ePEi9/uIj/iIz+Kqq6666qqrrvrfiHL8+HGuuuqqq6666qr/XV7ndV7nvd/8zd/8o3mmP/mTP2GaJgAk8cJI4oWRxAsjiX+JJP4lkviXSOJFIYkXlST+NSTx7yGJ/wyS+L/CNv9ZbPPvYZt/Ldv8a9jmRWWbF4VtXhS2eWEuXrzILbfcAsA111zz4LNnzz7j1ltv/Wuuuuqqq6666qr/TSjHjx/nqquuuuqqq6763+Oaa6558Od+7uf+Fs/0J3/yJ+zv7/PcJPHCSOKFkcQLI4l/iST+JZJ4UUjiRSGJF5Uk/i0k8e8hif8ukvjPYpv/Trb597LNv4Vt/rVs86KyzYvCNi8K2/xLbDOOI8vlkmuuuQaABz/4wS/9Z3/2Zz9zeHi4y1VXXXXVVVdd9b8F5fjx41x11VVXXXXVVf97fNInfdJPXXPNNQ8GOH/+PE95ylN4YSTxwkjihZHEv0QS/xJJ/Esk8aKQxItCEv8akvi3kMR/FElc9cLZ5j+Kbf6tbPOvZZsXlW1eVLZ5UdjmRWGb++3v73PixAkWiwWbm5vHH/KQh7z0b/3Wb30PV1111VVXXXXV/xYEV1111VVXXXXV/xov9mIv9tov9mIv9to809/+7d9iG9u8ILaxzQtiG9u8ILaxzQtjG9u8MLaxzQtjG9v8S2xjm3+JbWxjG9v8S2xjG9vY5kVlG9vYxja2+beyjW1sYxvb2MY2tvn/wDa2sY1tbGMb29jm38M2trGNbf61bGMb27yobGMb27wobGObF4VtbPMvsY1t/iW2sc1z+4d/+Afu92Iv9mKv/WIv9mKvzVVXXXXVVVdd9b8FwVVXXXXVVVdd9b/Gh3/4h38Xz/S3f/u3LJdL7mcb27wgtrHNC2Ib27wgtrGNbV4Q29jmhbGNbV4Y29jGNi+MbWxjG9v8S2xjG9u8KGxjG9vY5l/DNraxjW1sY5t/L9vYxja2sY1tbGMb29jGNv/T2MY2trGNbWxjG9vYxjb/UWxjG9vYxjb/WraxjW1s86KyjW1s86KyjW1eFLaxzb/ENrb5l9jGNi/Icrnk7//+77nfh3/4h38XV1111VVXXXXV/xaU48ePc9VVV1111VVX/c/3ju/4jp/1Sq/0Sm8NcP78eR7/+MfzwkjihZHECyOJf4kk/iWS+JdI4kUhiReVJP41JPFvIYn/CJK46t/GNv9RbPNvZZt/Ldv8a9jmRWWbF4VtXhTjOLK9vc1isWBzc/P4Nddc8+A//dM//Rmuuuqqq6666qr/6SjHjx/nqquuuuqqq676n+3FXuzFXvsjPuIjvptn+tu//VuOjo4AkMQLI4kXRhIvjCT+JZL4l0jiRSGJF4UkXlSS+NeQxL+VJP6jSeIqsM1/NNv8e9jm38I2/xq2eVHZ5kVhmxeFbQCmaeLixYs86EEPAmBzc/P4rbfe+jdnz569lauuuuqqq6666n8ygquuuuqqq6666n+8d3qnd/osnumOO+7g/Pnz3M82L4xtbPOC2MY2L4htbPPC2MY2L4xtbGObF8Y2tvmX2MY2tvmX2MY2tnlR2MY2trHNv4ZtbGMb29jGNv8etrGNbWxjG9vYxja2+d/ONraxjW1sYxvb2MY2/xFsYxvb2Obfwja2sc2/hm1sY5sXhW1sY5sXhW1s8y+xjW3+JbaxzQMtl0vuvPNOAK655poHv9M7vdNncdVVV1111VVX/U9HOX78OFddddVVV1111f9cr/M6r/Peb/7mb/7RPNPv/d7v8YJI4l8iiRdGEv8SSfxLJPEvkcSLQhIvKkn8a0ji30IS/16S+J9EEv9WtvmfxDb/UWzzb2Wbfy3b/GvY5kVhmxeVbV6Q/f19rrnmGrqu45prrnnw2bNnn3Hrrbf+NVddddVVV1111f9UBFddddVVV1111f9o7/iO7/hZPNNf//VfY5sXxDa2eWFs88LYxjYvjG1s88LYxjYvjG1sY5sXxja2sc2/xDa2sc2Lwja2sc2/hm1sYxvb/FvYxja2sY1tbGOb/w62sY1tbGMb29jGNraxjW1sYxvb2Oa/i21sYxvb2MY2/x62sY1tbPOvZRvb2OZFZRvb2OZFYRvb2OZFYZsXhW1s88Isl0ue8pSncL93fMd3/Cyuuuqqq6666qr/ySjHjx/nqquuuuqqq676n+kd3/EdP+uVXumV3hrg/PnzPO5xj+OBJPHCSOKFkcS/RBL/Ekn8SyTxopDEi0oSLypJ/GtJ4t9DEv9ZJPH/hW3+M9nm38s2/xa2+dewzb+GbV4UtnlR2WaaJnZ2dlgsFmxubh4H+Id/+Iff4aqrrrrqqquu+p+Icvz4ca666qqrrrrqqv+ZPvdzP/e3eaa/+Zu/Yblc8vxI4oWRxL9EEi+MJP4lknhRSOJFIYkXlST+NSTxryWJfy9J/FeTxP9EtvmvZpv/CLb5t7LNv5Zt/jVs86KyzYvCNvebponlcsmNN94IwDXXXPPgP/uzP/uZw8PDXa666qqrrrrqqv9pKMePH+eqq6666qqrrvqf58M//MO/6yEPechLA5w/f54nPelJvDCS+JdI4l8iiRdGEi8KSfxLJPGiksSLShL/GpL4t5LEfxRJXPUfxzb/kWzzb2Wbfwvb/GvY5kVlmxeVbZ7bcrnk5MmTLBYLNjc3j29ubh7/0z/905/hqquuuuqqq676n4bgqquuuuqqq676H+eaa6558Ou8zuu8N8/0xCc+EdvY5gWxjW1eGNvY5oWxjW1eENvYxjYvjG1s88LYxja2+ZfYxja2+ZfYxja2eVHYxja2sc2/hm1sYxvb/HvYxja2sY1tbHPVC2cb29jGNraxzb+XbWxjG9v8a9nGNrb517CNbWzzorKNbV4UtrHNi8I2tnlB/u7v/o77vdiLvdhrv9iLvdhrc9VVV1111VVX/U9DcNVVV1111VVX/Y/zju/4jp/FM91+++2cP3+e+9nGNi+IbWzzwtjGNi+MbWzzwtjGNi+MbWxjmxfGNraxzb/ENrZ5UdjGNrZ5UdnGNraxzb+GbWxjG9vY5t/LNraxjW1sYxvb2MY2/5fZxja2sY1tbGMb2/xHsI1tbGMb2/xb2MY2tvnXso1t/jVsY5sXhW1s86Kyzb9kuVxy5513AnDNNdc8+HVe53Xei6uuuuqqq6666n8agquuuuqqq6666n+Ua6655sGv8zqv894805Oe9CSeH9vY5gWxjW1eGNvY5oWxjW1eGNvY5l9iG9v8S2xjm3+JbWxjmxeFbWxjG9u8qGxjG9vY5l/LNraxjW1sY5v/SLaxjW1sYxvb2MY2trGNbWxjm/8utrGNbWxjG9vYxja2sY1tbPOfwTa2sY1t/j1sYxvb/GvZxja2eVHZxja2eVHZ5kVlG9u8KGzz5Cc/mfu92Iu92Gu/2Iu92Gtz1VVXXXXVVVf9T0I5fvw4V1111VVXXXXV/xzv8z7v81UPechDXhrg9ttv5/bbb+dfIol/iST+JZL4l0jiRSGJF4UkXhSS+NeQxL+GJP6tJPEfSRJX/cewzX802/x72Obfwjb/WrZ5UdnmRWWb+03TxMbGBjs7O2xubh4H+NM//dOf4aqrrrrqqquu+p+C4Kqrrrrqqquu+h/jmmuuefDrvM7rvDfP9MQnPhHb2OaFsY1tXhjb2OaFsY1tXhjb2OZfYhvb/EtsY5t/iW1sY5sXhW1sY5sXhW1sYxvb/GvYxja2sY1t/j1sYxvb2MY2trHNVc+fbWxjG9vYxjb/EWxjG9vY5t/CNraxzb+WbWzzr2Eb27yobPOiss1ze/KTn8z9XuzFXuy1X+zFXuy1ueqqq6666qqr/qcguOqqq6666qqr/sd4x3d8x8/imW6//XaOjo64n21s88LYxjYvjG1s88LYxjYvjG1sY5sXxja2+ZfYxja2+ZfYxja2eVHYxja2eVHZxja2sc2/lm1sYxvb2OY/gm1sYxvb2MY2trGNbf4vso1tbGMb29jGNrb5j2Qb29jGNv9WtrGNbf61bGMb2/xr2MY2Lyrb2OZFYRvbPD/L5ZI777wTgGuuuebBr/M6r/NeXHXVVVddddVV/1NQjh8/zlVXXXXVVVdd9d/vmmuuefCHf/iHfzfP9Gd/9meM48gLIol/iST+JZL4l0jiRSGJF4UkXhSS+NeQxL+WJP4tJPEfRRL/E0jiv4Jt/qewzX8k2/x72Obfwjb/Grb517DNv2Rvb48HP/jBAGxubh6/9dZb/+bs2bO3ctVVV1111VVX/XejHD9+nKuuuuqqq6666r/f+7zP+3zVQx7ykJcGuO2227jtttuQxL9EEv8SSfxLJPEvkcSLQhIvCkm8qCTxryGJfy1J/HtI4j+SJK76j2Ob/wy2+fewzb+Vbf61bPOiss2LapomFosFOzs7bG5uHgf40z/905/hqquuuuqqq67670Zw1VVXXXXVVVf9j/A6r/M6780zPfGJTwTANrZ5YWzzL7GNbV4Y29jmhbGNbWzzwtjGNrZ5YWxjG9v8S2xjG9u8KGxjG9u8qGxjG9vY5l/LNraxjW3+vWxjG9vYxja2sc1VL5htbGMb29jGNv9RbGMb29jm38o2tvnXso1tbPOvYRvbvKhs86KyjW2e/OQnc78Xe7EXe22uuuqqq6666qr/CSjHjx/nqquuuuqqq6767/U6r/M67/2Kr/iKbw1w2223cfvtt/PcJPEvkcSLQhL/Ekm8KCTxopDEi0oSLypJ/GtJ4t9CEv9ekvivIon/i2zzX8k2/1Fs829lm38L2/xr2OZfwzb3m6aJkydPsrGxwebm5nGAf/iHf/gdrrrqqquuuuqq/04EV1111VVXXXXVf7t3fMd3/Cye6fbbb+f5sY1tXhjb2OZfYhvbvDC2sc2/xDa2+ZfYxjYvCtvY5kVhG9vY5kVlG9vY5l/DNraxjW3+LWxjG9vYxja2+c9gG9vYxja2sY1tbGMb29jGNraxzX8l29jGNraxjW1sYxvb2MY2trHNfybb2MY2trHNv5dtbGObfwvb2OZfyza2+dewzb+GbZ7bk5/8ZO73Oq/zOu/NVVddddVVV131343gqquuuuqqq676b/ViL/Zir33NNdc8GODcuXOcPXuWF8Y2tnlhbGObf4ltbPPC2MY2tnlhbGMb27wwtrGNbf4ltrGNbV4UtrGNbV5UtrGNbf61bGMb29jm38M2trGNbWxjm/8OtrGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbf472cY2trGNbf4j2MY2trHNv4VtbGObfy3b2OZfwza2eVHZxjbPz4ULFzh//jwA11xzzYNf7MVe7LW56qqrrrrqqqv+OxFcddVVV1111VX/rd7pnd7ps3im2267DQDb2OaFsY1tXhjb2OZfYhvb/EtsY5t/iW1s8y+xjW1s8y+xjW1s86KwjW1s86KyjW1sY5t/LdvYxja2sc2/l21sYxvb2MY2trnqRWMb29jGNraxzX8k29jGNv8etrHNv4VtbPOvZZt/Ddv8S+68807u907v9E6fxVVXXXXVVVdd9d+J4Kqrrrrqqquu+m/zYi/2Yq/9Yi/2Yq/NM9122208kG1s88LYxjYvjG1s8y+xjW3+Jbaxzb/ENrZ5UdjGNi8K29jGNi8K29jGNrZ5UdnGNraxzb+FbWxjG9vY5j+KbWxjG9vYxja2sY1t/r+wjW1sYxvb2MY2/xlsYxvb2Obfwza2sc2/hW1s869lG9v8a9jmRXH+/Hnu92Iv9mKv/WIv9mKvzVVXXXXVVVdd9d+F4Kqrrrrqqquu+m/zOq/zOu/FM9122228ILb5l9jGNi+MbWzzL7GNbf4ltrHNv8Q2trHNv8Q2trHNi8I2trHNi8o2trHNv4ZtbGMb2/xb2cY2trGNbf6z2MY2trGNbWxjG9vYxja2+Z/GNraxjW1sYxvb2MY2trHNfzbb2MY2tvn3so1tbPNvZRvb/GvZxjb/GraxzYvq6OiIJz3pSdzvdV7ndd6Lq6666qqrrrrqvwuVq6666qqrrrrqv83rvM7rvDfP9PjHP54XxjYAknhhbAMgiRfENgCSeGFsAyCJF8Y295PEC2MbAEn8S2xzP0n8S2xzP0m8KGxzP0n8a9jmgSTxb2Wb50cS/1VscxXY5j+Dbf4j2Obfwjb/Frb517ANwB133MEjH/lIAF7sxV7stbnqqquuuuqqq/67EFx11VVXXXXVVf8tXud1Xue9eabbbruNo6MjbGObF8Y2tvmX2MY2L4xtbPMvsY1tbPMvsY1t/iW2sY1tXhS2sc2Lyja2sc2Lyja2sY1t/rVsYxvb2MY2/162sY1tbGMb29jmqn8/29jGNraxzX8k29jGNv8etrGNbf4tbPOvZRvb/GvY5n7L5ZLz588DcM011zz4dV7ndd6bq6666qqrrrrqvwPBVVddddVVV1313+J1Xud13otnOnv2LA9kG9u8MLaxzb/ENv8S29jmRWEb2/xLbGObF4VtbPOisI1tbPOiso1tbPOvYRvb2MY2/xa2sY1tbGOb/yi2sY1tbGMb29jGNlddYRvb2MY2trGNbf4z2MY2tvn3so1t/q1sY5t/Ldv8a9nmuT35yU/mfq/zOq/zXlx11VVXXXXVVf8dCK666qqrrrrqqv9y11xzzYNf7MVe7LV5pttuu43nxzb/EtvY5oWxjW3+JbaxzYvCNrb5l9jGNrb5l9jGNrZ5UdjGNrZ5UdnGNrb517KNbWxjm38r29jGNraxzX8G29jGNraxjW1sYxvb/F9gG9vYxja2sY1tbPOfzTa2sY1t/r1sYxvb/FvZxjb/Wraxzb+GbWzz/BwdHXG/F3uxF3vtF3uxF3ttrrrqqquuuuqq/2oEV1111VVXXXXVf7l3fMd3/Cye6RnPeAYvjG1s8y+xjW1eGNvY5l9iG9u8KGxjmxeFbWzzorCNbWzzorCNbWzzorKNbWxjm38t29jGNrb597CNbWxjG9v8V7CNbWxjG9vYxja2sY1tbGMb29jGNraxjW3+rWxjG9vYxja2sY1tbGMb29jGNraxjW1s81/NNraxjW3+o9jGNv8etrHNv4Vt/rVs88Isl0vuuOMO7vdiL/Zir8VVV1111VVXXfVfjeCqq6666qqrrvov92Iv9mKvzTM94xnPwDa2eWFsY5t/iW1s88LYxjb/EtvYxjb/EtvYxjb/EtvYxjYvCtvY5kVlG9vY5l/DNraxzb+FbWxjG9v8e9nGNraxjW1s8z+RbWxjG9vYxja2sY1tbGMb29jGNv/T2cY2trGNbf4j2cY2tvn3sI1t/i1sY5t/Ldu8KO644w7u9zqv8zrvzVVXXXXVVVdd9V+N4Kqrrrrqqquu+i/1Oq/zOu99zTXXPJhnOnfuHPezzb/ENrb5l9jGNi+MbWzzorCNbV4UtrHNi8I2tnlR2MY2tnlR2cY2tvnXsI1tbGObfwvb2MY2trHNfwTb2MY2trGNbWxz1b+dbWxjG9vY5j+DbWxjm38v29jm38o2/xa2eVGdP3+e8+fPA3DNNdc8+MVe7MVem6uuuuqqq6666r8SwVVXXXXVVVdd9V/qxV7sxV6LZ3rGM57Bc7ONbf4ltrHNv8Q2tnlhbGMb2/xLbGObF4VtbPOisI1tbPOisI1tbPOiso1tbPOvZRvb2MY2/1a2sY1tbGOb/0i2sY1tbGMb29jGNrb5/8w2trGNbWxjG9v8Z7KNbWzzH8E2tvm3so1t/i1s8691/vx57vc6r/M678VVV1111VVXXfVfieCqq6666qqrrvov9WIv9mKvzTM9/vGP5wWxjW3+Jbaxzb/ENrb5l9jGNv8S29jmRWEb29jmRWEb27yobGMb27yobGMb29jmX8s2trGNbf49bGMb29jGNv+ZbGMb29jGNraxjW1sY5v/bWxjG9vYxja2sY1tbPNfxTa2sY1t/qPYxjb/Hrb5t7CNbf61bHP77bdzvxd7sRd7ba666qqrrrrqqv9KBFddddVVV1111X+Z13md13nva6655sE80+HhIf8S29jmX2Ib2/xLbGObf4ltbPMvsY1tXlS2sc2Lwja2sc2Lyja2sc2/hm1sY5t/C9vYxja2+feyjW1sYxvb/FezjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGOb/062sY1tbPMfyTa2sc2/h21s829hm38L2wAsl0vOnz8PwDXXXPPgF3uxF3ttrrrqqquuuuqq/yoEV1111VVXXXXVf5kXe7EXey2e6RnPeAYAtrHNv8Q2tvmX2OZFYRvb/EtsY5t/iW1sY5sXhW1sY5sXhW1sY5sXlW1sY5t/DdvYxja2+bewjW1sY5v/CLaxjW1sYxvb2Oaq/1q2sY1tbPOfwTa2+feyjW3+rWzzb2GbBzp//jz3e7EXe7HX4qqrrrrqqquu+q9CcNVVV1111VVX/Zd5sRd7sdfmmZ7xjGfwQLaxzb/ENv8S29jmRWEb2/xLbGObF4VtbPOiso1tXlS2sY1tXlS2sY1t/rVsYxvb/FvZxja2sY1t/iPZxja2sY1tbHPVv59tbGMb29jmP4ttbGObfy/b2Obfyja2+bewzXM7f/4893ud13md9+aqq6666qqrrvqvQnDVVVddddVVV/2Xueaaax7MM509e5bnxzb/EtvY5l9iG9u8KGxjm3+JbWzzorCNbV5UtrGNbV5UtrHNv4ZtbGObfy3b2MY2tvn3sI1tbGMb2/xHs41tbGMb29jGNraxzVVX2MY2trGNbWzzn802trHNfxTb/HvY5t/KNs/P+fPnOX/+PADXXHPNg1/8xV/8tbnqqquuuuqqq/4rEFx11VVXXXXVVf8lXud1Xue9eaZnPOMZvDC2sc2/xDa2+ZfYxjYvCtvY5l9iG9u8KGxjG9u8qGxjmxeVbWxjm38N29jGNrb517KNbWxjm38v29jGNraxzX8229jGNraxjW1sYxvb2OZ/O9vYxja2sY1tbGOb/0q2sY1t/iPZxjb/Hrb5t7LNC3P+/Hnu99jHPva1uOqqq6666qqr/isQXHXVVVddddVV/yVe53Ve5714pvvuuw/b/EtsY5t/iW1s8y+xjW1eFLaxzb/ENraxzYvCNrZ5UdnGNrZ5UdnGNrb517KNbWzzb2Eb29jGNv8RbGMb29jGNv8dbGMb29jGNraxjW1sYxvb2MY2trGNbWxjm38r29jGNraxjW1sYxvb2MY2trGNbWxjm/9utrGNbf6j2cY2/x62sc2/lW3+JefPn+d+L/7iL/46XHXVVVddddVV/xWoXHXVVVddddVV/yVe7MVe7LV5pmc84xkA2AZAEi+MbQAk8cLYBkASL4xtACTxL7ENgCT+JbYBkMS/xDb3k8SLwjb3k8SLwjb3k8S/hm3uJ4l/C9s8kCT+I9jm+ZHE/3S2+f/ANv/ZbPMfwTb/HrZ5URwdHXG/a6655sFcddVVV1111VX/FQiuuuqqq6666qr/dK/zOq/z3jzTrbfeynOzjW3+Jbaxzb/ENrb5l9jGNi8K29jmRWEb27yobGObfw3b2MY2Lyrb2MY2/1q2sY1tbPNvZRvb2MY2tvmPZBvb2MY2trHNVf/5bGMb29jmP5NtbPMfwTb/HrZ5US2XS86fPw/AmTNnHvRiL/Zir81VV1111VVXXfWfjeCqq6666qqrrvpP92Iv9mKvxTOdPXuWF8Q2LwrbvChsY5t/iW1s86KwjW1eFLaxjW1eFLaxjW3+NWxjm38N29jGNrb517KNbWxjm38P29jGNrb5z2Ab29jGNraxjW1sc9W/jm1sYxvb2OY/m21sY5v/CLaxzb+Hbf61zp8/z/1e7MVe7LW46qqrrrrqqqv+sxFcddVVV1111VX/6V7sxV7stXmms2fP8sLYxjb/EtvY5kVhG9v8S2xjmxeFbWzzorKNbV5UtrHNv4ZtbGObfy3b2MY2/xa2sY1t/r1sYxvb2MY2/9lsYxvb2MY2trGNbf6/so1tbGMb29jmv5JtbPMfyTb/Xrb5tzh37hz3e53XeZ335qqrrrrqqquu+s9G5aqrrrrqqquu+k93zTXXPJhnOjw8BEASL4xtACTxwtgGQBL/EtsASOKFsc39JPHC2OZ+kviX2AZAEi8K29xPEi8q29xPEv8atrmfJP61bPNAkvj3ss1zk8R/Fdu8qCTxv4Vt/ieyzX8G2/xHsM2/1XK55H7XXHPNg7nqqquuuuqqq/6zEVx11VVXXXXVVf+pXud1Xue9eaZbb72V+9nGNv8S29jmX2Ib27wobGObF4VtbPOisI1tXhS2sY1tXlS2sc2/lm1sY5t/LdvYxjb/VraxjW1s8x/FNraxjW1sY5v/braxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1t/qexjW3+M9jmP4Jt/q1sc3R0xPnz57nfi73Yi702V1111VVXXXXVfyaCq6666qqrrrrqP9WLvdiLvRbPdPbsWZ6bbV4UtrHNv8Q2tnlR2MY2Lwrb2OZFYRvbvKhsY5sXlW1sY5t/LdvYxjb/WraxjW1s829lG9vYxja2+Y9kG9vYxja2sc1V/zPZxja2+c9gG9v8R7DNv5Vt7nfu3Dnu92Iv9mKvxVVXXXXVVVdd9Z+J4Kqrrrrqqquu+k91zTXXPJhnOjw85PmxjW1eFLZ5UdjGNi8K29jmRWEb27wobGMb27wobGMb27yobGMb2/xr2cY2tvm3sI1tbPPvZRvb2MY2/xlsYxvb2MY2trnqv5ZtbGMb2/xnss1/FNv8Rzl//jz3e/EXf/HX5qqrrrrqqquu+s9E5aqrrrrqqquu+k/1Yi/2Yq/NM509e5YXxjYAknhhbAMgiX+JbQAk8S+xDYAk/iW2AZDEi8I2AJJ4UdgGQBIvKtvcTxL/Gra5nyT+tWzzQJL497DNA0niP4ttXhBJXPXvY5v/arb5j2Sbfw/bPNByueR+Z86ceTBXXXXVVVddddV/JoKrrrrqqquuuuo/zYu92Iu9Ns903333YZsXhW1eFLaxzYvCNrZ5UdjGNi8K29jmRWUb27yobGMb2/xr2MY2/xa2sY1t/q1sYxvb2Obfyza2sY1tbPNfwTa2sY1tbGMb29jmqudlG9vYxjb/1WzzH8k2/9GOjo44f/48ANdcc82DX+zFXuy1ueqqq6666qqr/rMQXHXVVVddddVV/2muueaaB/NMR0dHANjGNv8S29jmRWEb27wobGObF4VtbPOisI1tXlS2sY1tXlS2sc2/hm1sY5t/C9vYxja2+beyjW1sY5v/CLaxjW1sY5v/araxjW1sYxvb2MY2tvm/yja2sY1tbGOb/y62sc1/JNv8e9nm+Tk6OuJ+L/ZiL/ZaXHXVVVddddVV/1kIrrrqqquuuuqq/zQv9mIv9lo803333ccD2cY2/xLb2OZFYRvbvChsY5sXhW1s86KwjW1s86KyjW1eVLaxjW3+NWxjG9v8W9nGNrb597CNbWzzH8k2trGNbWzz3802trGNbWxjG9vYxja2sY1t/iewjW1sYxvb2MY2trHN/xS2sc1/NNv8e9nmBTk6OuJ+L/7iL/7aXHXVVVddddVV/1moXHXVVVddddVV/2le7MVe7LV5prNnz/L82EYS/xLbAEjiX2IbAEn8S2wDIIl/iW0AJPGisA2AJF4UtgGQxIvKNveTxIvKNveTxL+Fbe4niX8r2zyQJP4j2ea5SeJ/Kttc9S+zzX8W2/xnO3/+PFddddVVV1111X8JKlddddVVV1111X+aa6655sE80+HhIS+IbQAk8S+xDYAk/iW2AZDEv8Q2AJL4l9gGQBIvCtsASOJFYZv7SeJFZRsASfxr2OZ+kvi3sM0DSeLfyjbPTRL/kWzz/Ejiqv/ZbPOfyTb/FY6OjrjfmTNnHsxVV1111VVXXfWfheCqq6666qqrrvpPcc011zyYZzo8PORFYRvbvChs86KyzYvKNrZ5UdjGNi8q29jGNi8q29jmX8M2trHNv5ZtbGObfw/b2MY2/xFsYxvb2OY/i21sYxvb2MY2V/33s41t/rewzQuzXC45f/48ANdcc82DX+zFXuy1ueqqq6666qqr/jNQueqqq6666qqr/lO82Iu92GvzTPfddx+2AZDEv8Q2kviX2AZAEv8S2wBI4kVhGwBJ/Etscz9JvChsAyCJF4Vt7ieJF5Vt7ieJfw3b3E8S/1a2eSBJ/HvZ5oEk8Z/JNs+PJK76z2Ob/0q2+e9y9uzZW7nqqquuuuqqq/4zEFx11VVXXXXVVf8pzpw58yCe6fDwkPvZxjb/EtvY5kVhG9u8KGxjmxeVbWzzorKNbV5UtrHNv4ZtbPOvZRvb2OZfyza2sc2/l21sY5v/KLaxjW1sY5v/CraxjW1sYxvb2Oaqfzvb2Oa/km3+o9jmRXHu3Dnu99qv/drvxVVXXXXVVVdd9Z+B4Kqrrrrqqquu+k9xzTXXPJhnOjo64rnZ5kVhG9u8KGxjmxeFbWzzorKNbV5UtrHNi8o2trHNi8o2trHNv5ZtbPNvYRvb2Obfyza2sY1t/iPZxja2sc1/NdvYxja2sY1tbHPVc7KNbWxjm/9qtvnvcP78ee734i/+4q/NVVddddVVV131n4HKVVddddVVV131n+LFXuzFXptnuu+++3h+bAMgiX+JbQAk8S+xDYAk/iW2AZDEi8I2AJJ4UdgGQBIvKtsASOJFZZv7SeJFZZv7SeJfyzYPJIl/D9s8kCT+o9jmuUniv4NtXhhJ/F9nm/8JbHPVVVddddVVV/2fRuWqq6666qqrrvpvZxsASfxLbAMgiX+JbQAk8S+xDYAkXhS2AZDEi8I2AJJ4UdkGQBL/GrYBkMS/hm3uJ4l/C9vcTxL/Xra5nyT+o9nmgSTxP4Ft/iWS+N/CNv8T2eY/mm1eVMvlkvudOXPmwVx11VVXXXXVVf8ZqFx11VVXXXXVVf8prrnmmgfzTIeHh7wobCOJF4VtJPGisA2AJP4ltgGQxIvCNgCSeFHY5n6SeFHY5n6SeFHZ5n6S+Newzf0k8W9hm/tJ4t/LNg8kif9otnlukvifyDb/WpL4z2Cb/21s89/t6OiIo6MjNjY2uOaaax7MVVddddVVV131n4Hgqquuuuqqq676D/diL/Zir80z3XfffdjGNi8K29jmRWEb27yobGObF4VtbPOiso1t/jVsY5t/DdvY5l/LNrb5t7CNbWzzb2Ub29jmP4ptbGMb2/xnsY1tbGMb2/xvZRvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxzVX/dsvlkvu9+Iu/+Gtz1VVXXXXVVVf9R6Ny1VVXXXXVVVf9pzo8POR+tgGQxL/ENgCS+JfYBkASLwrbAEjiX2IbAEm8KGwDIIkXlW0AJPGiss39JPGiss39JPGvZZv7SeLfwjYPJIn/CLZ5IEn8Z7HNc5PEVf872Oaqq6666qqrrvp/g+Cqq6666qqrrvoPd8011zyYF8I2Lyrb2OZFYRvbvKhs86KyjW1eVLaxjW1eVLaxzb+WbWzzr2Ub29jm38I2trHNv4dtbGOb/0i2sY1tbPOfzTa2sY1tbHPV/zy2+Z/k3Llz3O+xj33sa3HVVVddddVVV/1Ho3LVVVddddVVV/2HO3PmzIN4pvvuu4/nxzYAknhR2EYSLwrbAEjiX2IbAEm8KGwDIIkXlW0AJPGisM39JPGiss39JPGvYRsASfxb2OZ+kvi3ss39JPEfyTYPJIn/bLZ5bpK46qqrrrrqqquuuuq/DJWrrrrqqquuuuo/3DXXXPNgXkS2AZDEv8Q2AJJ4UdgGQBL/EtsASOJFYRsASbyobAMgiReVbQAk8a9hGwBJ/GvY5n6S+Lewzf0k8W9lm/tJ4j+abR5IEv8VbPPcJHHVfz7b/E+zXC653zXXXPMQrrrqqquuuuqq/2hUrrrqqquuuuqq/3DXXHPNg3mmw8NDXhS2AZDEv8Q2AJJ4UdhGEi8K2wBI4kVhGwBJvKhsAyCJF5VtACTxr2Gb+0niX8M295PEv4Vt7ieJfyvbPJAk/qPZ5n6S+K9km+cmiav+49jmf6KjoyOuuuqqq6666qr/VFSuuuqqq6666qr/cGfOnHkwz3RwcIBtJPGisI0kXhS2AZDEv8Q2AJJ4UdgGQBIvCtvcTxIvCtsASOJFZZv7SeJfwzYAkvjXss39JPFvYZv7SeLfwzb3k8R/NNs8kCT+q9nmgSRx1f89y+WS+11zzTUP5qqrrrrqqquu+o9G5aqrrrrqqquu+i9hGwBJ/EtsAyCJF4VtJPGisA2AJF4UtgGQxIvKNgCSeFHY5n6SeFHZBkAS/xq2uZ8k/rVsAyCJfyvb3E8S/x62uZ8k/jPY5oEk8V/NNs9NElf9y2zzv8E111zzYK666qqrrrrqqv9oVK666qqrrrrqqv9w11xzzYN5psPDQx7INpJ4UdgGQBL/EtsASOJFYRsASbwobAMgiReVbQAk8aKyDYAkXlS2uZ8k/jVsAyCJfy3b3E8S/1a2uZ8k/j1s80CS+M9gmweSxH8H2zw3SVz130cStnlRHR0dcdVVV1111VVX/aeictVVV1111VVX/ZezDYAkXhS2kcSLwjYAknhR2AZAEi8K2wBI4kVlGwBJvKhsAyCJfw3bAEjiX8M295PEv5Zt7ieJfyvb3E8S/162uZ8k/rPY5n6S+O9kmweSxFX/O5w5c+ZBXHXVVVddddVV/9EIrrrqqquuuuqq/za2sc2Lwja2eVHZxjYvKtvY5kVlG9v8a9jGNv8atrHNv5ZtbPNvYRvb/FvZxjb/XraxzX8U29jGNv+ZbGMb29jmv5ttbGMb29jm/xPb/E93dHTE/a655poHc9VVV1111VVX/UeictVVV1111VVX/Ye65pprHswzHR4e8qKwjSReFLYBkMSLwjYAknhR2AZAEi8K2wBI4kVlGwBJvKhsAyCJfw3b3E8S/xq2uZ8k/rVscz9J/FvZ5n6S+I9gm/tJ4j+Tbe4nif8JbPNAkrjqP44kbHPVVVddddVVV/2PQHDVVVddddVVV/2nss2Lwja2eVHZxjYvKtvY5kVlG9u8qGxjm38N29jmX8M2trHNv5ZtbPNvYRvb/FvZxja2+fewjW1s8x/FNraxzX8229jGNv+T2MY2trHNVf+1lsslV1111VVXXXXVfxqCq6666qqrrrrqP9SZM2cezDMdHBwAYJsXlW1s86Kyzb+Gbf41bGObF5VtbPOvYRvb/GvZxjb/Wraxzb+FbWxjm38r29jGNv8etrGNbf6j2MY2tvnPZhvb2OZ/GtvYxjZX/dtI4t/izJkzD+aqq6666qqrrvqPROWqq6666qqrrvovYRsASbwobCOJF4VtACTxorANgCReVLYBkMSLwjYAknhR2QZAEv8atgGQxL+Gbe4niX8t2wBI4t/KNgCS+Pewzf0k8R/BNveTxH8m29xPEv+T2OZ+kvjfRhK2+e8gCdtcddVVV1111VX/rahcddVVV1111VX/pWwjiReFbQAk8aKwDYAkXhS2AZDEi8o2knhR2QZAEi8q29xPEi8q2wBI4l/LNgCS+Neyzf0k8W9hm/tJ4t/DNveTxH8E29xPEv+ZbHM/SfxPYpv7SeJ/C0nY5r+DJGxz1VVXXXXVVVf9t6Fy1VVXXXXVVVf9l7MNgCReFLYBkMSLwjYAknhR2AZAEi8K2wBI4kVlGwBJ/GvYBkASLyrb3E8S/xq2AZDEv4VtACTxb2UbAEn8e9kGQBL/UWwDIIn/bLa5nyT+J7HN/SRx1QsmCdtcddVVV1111VX/LahcddVVV1111VX/bWwDIIkXhW0AJPGisA2AJF4UtgGQxIvCNgCSeFHZBkAS/xq2AZDEv4ZtACTxr2Gb+0niX8s295PEv4Vt7ieJfw/b3E8S/xFscz9J/GezDYAk/qexDYAk/qeSBIBt/jtIwjZXXXXVVVddddV/OYKrrrrqqquuuuq/nW3+NWzzr2Gbfw3b2OZFZRvb/GvYxjb/Wraxzb+WbWzzb2Eb2/xb2cY2/x62sc1/BNvY5j+SbWxjm/9strHN/0S2sc3/ZJL47yKJq6666qqrrrrqvxyVq6666qqrrrrqfwTbAEjiRWEbAEm8KGwDIIkXlW0AJPGisA2AJF5UtgGQxL+GbQAk8a9hGwBJ/GvZBkAS/xa2uZ8k/i1scz9J/HvY5n6S+I9iGwBJ/GeyDYAk/qexjST+p5IEgG3+q0nCNlddddVVV1111X8Zgquuuuqqq6666j+VbWzzorKNbV5UtrHNi8o2tvnXsM2/hm1s869hG9v8a9nGNv9atrGNbf61bGMb2/xb2cY2/x62sc1/BNvY5j+SbWzzn802tvmfxjb/00niv4Mkrrrqqquuuuqq/zIEV1111VVXXXXVfwnb2OZFZZt/Ddv8a9jGNi8q29jmX8M2tvnXsI1t/rVsY5t/C9vY5t/CNrb5t7KNbf49bGMb2/x72cY2/5FsY5v/bLaxzf8ktvmfThKS+K8miauuuuqqq6666r8Elauuuuqqq6666r+UbSTxorANgCReFLYBkMSLyjaSeFHZBkASLyrbAEjiRWUbAEn8a9gGQBL/WrYBkMS/lm0AJPFvYRsASfx72AZAEv8etrmfJP4j2AZAEv+ZbAMgiatedJK4n23+K0jiqquuuuqqq676T0dw1VVXXXXVVVf9hzp79uyt9913360AW1tbPD+2sc2Lyja2eVHZxjYvKtvY5l/DNrb517CNbf41bGObfy3b2Obfwja2+bewjW3+rWxjG9v8e9jGNv8RbGOb/yi2sc1/Ntv8T2Cb/20kIYn/KovFgvudPXv2Vq666qqrrrrqqv9IBFddddVVV1111X+4a6655sG8CGzzr2Gbfw3b2OZFZRvb/GvYxjb/Graxzb+GbWzzr2Ub29jmX8s2tvm3sI1tbPNvZRvb/HvYxjb/EWxjm/8otrHNfybbXPVvJwlJXHXVVVddddVV/6sRXHXVVVddddVV/61sY5sXlW1s869hm38N29jmX8M2tvnXsI1t/jVsY5t/C9vY5l/LNrb5t7KNbf6tbGObfw/b2OY/gm1s8x/FNv+ZbGObq/7tJCEJSVx11VVXXXXVVf/rEFx11VVXXXXVVf+h7rvvvlt5Jtu8qGxjmxeVbWzzorKNbf41bGObfw3b2OZfwza2+dewjW3+LWxjm38t29jm38o2tvm3so1t/j1sY5v/CLb5j2Ib2/xnss1V/36SkMR/pI2NDe5333333cpVV1111VVXXfUfieCqq6666qqrrvpPs7W1hW3+NWzzr2Gbfw3b2OZfwzb/Wrb517KNbf41bGObfwvb2OZfyza2+beyjW3+rWxjm38P29jm38s2tvmPYpv/ayTxf5EkJCGJ/yj33XffrVx11VVXXXXVVf/RCK666qqrrrrqqv9w991336080+bmJraxzYvKNrZ5UdnGNv8atrHNi8o2tvnXsI1t/rVsY5t/DdvY5t/CNrb517KNbf6tbGObfyvb2Obfwza2+feyjW3+I9jGNv8ZbHPVfzxJSOLfYrFYcL9rrrnmwVx11VVXXXXVVf/RCK666qqrrrrqqv9wZ8+evZVn2tra4n62+dewzb+GbWzzr2Gbfw3b2OZfwza2+deyzb+WbWzzb2Eb2/xr2cY2/1a2sc2/lW1s8+9hG9v8e9nmP4pt/jPY5qr/HJKQhCT+Lc6ePfsMrrrqqquuuuqq/2gEV1111VVXXXXVfynb2OZFZRvb/GvY5l/DNrb517CNbf41bGObfw3b2OZfyza2+bewjW3+tWxjm38r29jm38o2tvn3sM2/l21s8x/BNv8ZbPNfQRL/X0lCEv+SjY0N7nfffffdylVXXXXVVVdd9R+N4Kqrrrrqqquu+m9hm38N29jmRWUb2/xr2MY2/xq2sc2/hm1s869hG9v8a9nGNv8Wtvm3sI1t/q1sY5t/K9v8e9jGNv9etvmPYJur/veShCQk8fwsFgvud999993KVVddddVVV131H43gqquuuuqqq676D3fffffdyjNde+21vCC2sc2/hm3+NWxjm38N2/xr2eZfyza2+dewjW3+tWxjm38t29jm38I2tvm3ss2/lW1s8+9hm38v2/xHsM3/NpK46jlJQhJXXXXVVVddddV/KYKrrrrqqquuuuo/3H333Xcr/wq2sc2Lyja2+dewzb+GbWzzr2Eb2/xr2eZfyza2+deyjW3+tWxjm38L29jm38I2tvm3so1t/q1sY5t/D9v8R7DNfyTbXPXfQxKSkMTGxgb3u++++57OVVddddVVV131H43gqquuuuqqq676D3f27Nln8Eybm5u8qGzzr2Eb27yobGObfw3b2OZfwza2+dewjW3+tWxjm38t29jmX8s2tvm3sI1t/i1sY5t/K9v8e9jm38M2tvn3ss3/BpK46kWzsbHB/c6ePfsMrrrqqquuuuqq/2gEV1111VVXXXXVf7j77rvvVp5pa2uLfw3b2OZfwzb/Graxzb+GbWzzr2Eb2/xr2MY2/1q2sc2/lm1s869lG9v8W9jGNv8WtrHNv4VtbPNvZRvb/HvY5qqrrrrqqquuuuqq/1IEV1111VVXXXXVfzrb/GvZ5l/DNrb517DNv5Zt/rVs869lG9v8a9nm38I2/xa2sc2/hW3+rWzzb2Wbfw/b/HvY5t/DNv+TSeJ/GklIQhKSkIQkJCEJSUhCEpKQxH+VxWLB/c6ePXsrV1111VVXXXXVfzQqV1111VVXXXXVf7izZ8/eyjNtbm4CYBsASbyobAMgiReVbSTxorINgCReVLYBkMSLyjYAkvjXsI0k/jVsAyCJfw3bAEjiX8s2kvjXsg2AJP61bAMgiX8t2wBI4t/CNpL43842kviPIon/LpL4jySJF8Y2/xE2Nja433333XcrV1111VVXXXXVfzSCq6666qqrrrrqv5Rt/rVs869hG9v8a9jGNv8atrHNv4ZtbPOvYRvb/GvZxjb/Wraxzb+WbWzzb2Gbfyvb/FvZ5t/KNv9Wtvn3sM3/d5KQhCQk8V9NEpKQhCQk8W+xWCy46qqrrrrqqqv+U1G56qqrrrrqqqv+w91333238kxbW1s8N9sASOJFZRsASbyobAMgiReVbSTxr2EbSfxr2AZAEi8q2wBI4l/DNgCS+NewDYAk/jVsAyCJfw3bAEjiX8s2AJL417KNJP4tbCOJfwvbSOL/Ckn8Z5PE/2SSeG62eVHdd999t3LVVVddddVVV/1HI7jqqquuuuqqq/5T3HfffbfyTFtbWzw/tvnXso1t/jVs869hG9v8a9jGNv9atvnXso1t/rVs829hm38L2/xb2MY2/xa2+bewzb+Vbf6tbPNvZZv/KSTxn0kSkvjfSBKSkMRzWywW3O++++67lauuuuqqq6666j8DwVVXXXXVVVdd9Z/i7Nmzt/JMm5ubvCC2sc2/lm3+NWxjm38N29jmX8M2tvnXsI1t/rVs869lG9v8a9nGNv9atrHNv4Vt/i1s829hG9v8W9jmfyNJ/E8mCUn8XyEJSUhCEhsbG9zv7Nmzt3LVVVddddVVV/1nILjqqquuuuqqq/5HsM2/lm1s869hm38t2/xr2eZfyza2+dewjW3+tWxjm38t2/xb2Obfwjb/Fraxzb+Fbf4tbPNvYZv/zSTxH00Skvi/bmNjg/vdd999t3LVVVddddVVV/1nILjqqquuuuqqq/5T3HfffbfyTFtbW7wobGObfy3b/GvYxjb/Graxzb+GbWzzr2Wbfy3b2OZfyzb/Wraxzb+WbWzzr2Ub2/xb2Obfwjb/G9jmv5Mk/iNJQhJXXXXVVVddddVV/4EIrrrqqquuuuqq/xT33XffrTzT5uYm/xq2+deyjW3+NWxjm38N29jmX8M2tvnXsI1t/rVs869lG9v8a9nm38I2/xa2+bewzb+Fbf61bPNvYZv/zyQhif9vFosF97vvvvtu5aqrrrrqqquu+s9A5aqrrrrqqquu+i9hG0m8qGwDIIl/DdtI4l/DNpL417CNJP41bCOJfw3bSOJfwzYAkvjXsI0k/jVsAyCJfw3bAEjiX8M2kvjXso0k/ivYRhL/10niP4Ik/rtI4t/KNv9ei8WC+509e/YZXHXVVVddddVV/xmoXHXVVVddddVV/ynOnj37DJ5pa2sLANsASOJFZRtJ/GvYBkASLyrbAEjiRWUbAEm8qGwDIIkXlW0AJPGvYRtJ/GvYBkAS/xq2kcS/lm0k8a9hGwBJ/GvYRhL/GraRxL+WbSTxr2EbSfxXkcS/lST+vSTxX0ES/xkk8cLY5qqrrrrqqquu+h+B4Kqrrrrqqquu+k9x33333cozbW5u8kC2+dewjW3+tWzzr2Wbfy3b/GvZ5l/LNrb517CNbf61bPOvZRvb/GvZ5t/CNv9atvnXss1VzyaJfy9J/GeRhCQkIYn/LpKQhCQkIQlJPNBiseB+9913361cddVVV1111VX/GQiuuuqqq6666qr/FGfPnr2VZ9ra2uK52cY2/xq2+deyjW3+NWxjm38N29jmX8M2tvnXss2/lm3+tWxjm38t2/xr2cY2/1q2+deyzb+Wbf61bHPVc5KEJP4jSUISkpDE/3SSkIQkNjY2uN/Zs2dv5aqrrrrqqquu+s9AcNVVV1111VVX/beyzb+GbWzzr2Wbfy3b/GvZ5l/LNv9atrHNv4ZtbPOvZZt/LdvY5l/LNv9atvnXss2/lm3+s9nmfzJJ/FtJ4j+KJCQhiauuuuqqq6666qp/AcFVV1111VVXXfWf4r777ruVZ9ra2uKFsY1t/jVs869lG9v8a9jGNv8atrHNv4ZtbPOvZZt/Ldv8a9nGNv9atvnXss2/lm3+tWzzn802/xNJ4l9LEv9WkviPIAlJ/F+xWCy433333XcrV1111VVXXXXVfwaCq6666qqrrrrqP8199913K8+0tbXFv8Q2/xq2sc2/lm1s869hm38t2/xr2eZfyza2+dewjW3+tWzzr2Wbfy3b/GvZ5l/LNv8atrnqX0cS/x6SkIQkrrrqqquuuuqqq/4NqFx11VVXXXXVVf8lNjc3OTg44F9iGwBJvKhsI4l/LdtI4kVlGwBJvKhsAyCJF5VtACTxr2EbSfxr2EYS/xq2kcS/hm0k8a9hG0n8a9hGElf9x5LEv5Yk/j0k8V9BEv8ZbPPCLBYL7nfffffdylVXXXXVVVdd9Z+F4Kqrrrrqqquu+k9z9uzZW/k3ss2/hm1s869lm38t2/xr2eZfyzb/Wraxzb+GbWzzr2Eb2/xr2MY2/xq2+deyzb+Gbf41bPOvYZv/SSTxryGJfy1J/FtJQhL/0SQhCUlIQhKS+M8iCUlIQhKSkIQkABaLBfc7e/bsrVx11VVXXXXVVf9ZCK666qqrrrrqqv8ytvnXsM2/lm3+tWxjm38N29jmX8M2tvnXsI1t/rVs869lm38t2/xr2eZfwzb/Wrb517DNv4Ztrnr+JPFvIQlJ/EeRhCQkIYn/SSSxsbHB/e67775bueqqq6666qqr/rMQXHXVVVddddVV/2n+/u///rd5pq2tLQBs869hG9v8a9jGNv9atvnXss2/lm3+tWzzr2Wbfy3b/GvZ5l/LNv8atvn/wjb/WSTxryGJfw1J/FtI4t9LEpKQhCSuuuqqq6666qqrnongqquuuuqqq676L7G5ucn9bGObfw3b/GvZ5l/LNrb517CNbf41bGObfw3b2OZfwza2+dewjW3+NWzzr2Wbfw3b/GvY5l/DNv9ZbPOfQRL/WSTxryGJfy1JSOLfShKSkMT/NovFgvvdd999t3LVVVddddVVV/1nIbjqqquuuuqqq/7TnD179hk809bWFs/NNv8atrHNv4ZtbPOvZZt/Ldv8a9nmX8s2/1q2+deyzb+Gbf61bPOvYZt/Ddv8a9jmRWWb/6sk8a8hiX8NSUji30oSkvivJglJSEISkpDEv8ViseB+Z8+efQZXXXXVVVddddV/FipXXXXVVVddddV/mvvuu+9Wnmlra4vnxzaS+NewjST+NWwjiX8N2wBI4kVlGwBJvKhsAyCJF5VtJPGvYRtJ/GvYRhIvKtsASOJFZRtJvKhsI4kXlW0k8f+dJP4zSOJfQxL/FpL4zyCJfy9J/GvY5qqrrrrqqquu+i9DcNVVV1111VVX/bezjW3+NWxjm38N29jmX8s2/1q2+deyzb+GbWzzr2Eb2/xr2OZfyzb/Grb517DNfxbbvKhs83+NJF5UkvjXkMS/liQk8R9BEpKQhCQk8d9BEovFgvvdd999t3LVVVddddVVV/1nIbjqqquuuuqqq/7TnD179laeaWtri3+Jbf61bPOvZZt/LdvY5l/DNv9atvnXss2/lm3+NWzzr2Wbfw3b/GvY5kVlm//PJPGikMSLShIvKklI4l9DEpL495CEJCQhif9JFosF9zt79uytXHXVVVddddVV/1kIrrrqqquuuuqq/1FsY5t/Ddv8a9nm38I2/xq2sc2/hm1s869hm38t2/xr2OZfyzb/Grb5z2KbF5Vt/rtI4kUhif8uknhRSeJfQxKS+LeQhCQkIYn/Le67775bueqqq6666qqr/rNQueqqq6666qqr/tPcd999t/JMW1tb/GvYRhIvKtsASOJFZRsASfxr2EYS/xq2kcS/hm0k8aKyDYAkXlS2kcSLyjYAknhR2UYSLyrbSOJFYRtJ/G9gG0n8V5PEi0ISLwpJvKgk8aKSxL+FJP4rSOJfyzYvyGKx4Kqrrrrqqquu+i9BcNVVV1111VVX/ae67777buWZNjc3+dewzb+Wbf61bPOvZRvb/GvYxjb/Grb517LNv4Zt/rVs869hm/8stnlR2eY/mm3+t5PEi0ISLwpJSOJFJYl/LUlI4j+CJCQhCUlIQhKSkIQk/i0kIQlJSEISktjY2OB+9913361cddVVV1111VX/mQiuuuqqq6666qr/VGfPnr2VZ9ra2sI2/xq2sc2/hm1s869hm38L2/xr2eZfwza2+dewzb+GbWzzr2Gbfw3bvKhs89/NNv/bSeI/iiReFJJ4UUlCEi8qSUhCEv9WkpCEJCQhif9q8/mc+509e/ZWrrrqqquuuuqq/0wEV1111VVXXXXVfznb/GvZ5l/LNv8atrHNv5Zt/rVs869lm38N2/xr2eZfwzb/WWzzorLNi8o2/9tJ4j+KJP4lknhRSOJFIQlJvKgkIYl/C0lIQhKS+J9gsVhwv/vuu+9Wrrrqqquuuuqq/0wEV1111VVXXXXVf6r77rvvVp5pa2uL+9nGNv8atvnXss2/lm3+tWxjm38N2/xr2eZfwzb/Wrb517DNi8o2/xq2eVHZ5qp/HUn8R5HEi0ISLypJSOJfSxKSkMRVV1111VVXXfX/HpWrrrrqqquuuuo/1X333Xcrz7S1tcVzs40kXlS2AZDEi8o2AJJ4UdlGEv9atpHEi8o2AJJ4UdlGEi8q2wBI4kVlG0m8qGwjiReFbSTx38k2kviX2EYS/xtJ4j+CJP4lkviXSOJFJYl/LUn8R5HEf6bFYsH97rvvvlu56qqrrrrqqqv+MxFcddVVV1111VX/7Wzzr2Wbfy3b/GvYxjb/Wrb517LNv4Zt/rVs869hm38N27yobPOiss2Lyjb/10niP4Ik/iWS+JdI4l8iiReFJCTxopKEJCTxbyEJSUhCEpKQxH+2xWLB/c6ePfsMrrrqqquuuuqq/0wEV1111VVXXXXVf6qzZ88+g2fa2triBbGNbf41bPOvZZt/Ldv8a9nGNv8atvnXsI1t/jVs869hm/8stnlR2eZ/Mtv8R5DEfwRJ/HtJ4l8iiX+JJP4lkpDEi0oSkvjXkoQkJCGJq6666qqrrrrq/wWCq6666qqrrrrqP9V99913K8+0tbXFv8Q2/xq2sc2/hm1s869hm38L2/xr2OZfyzb/Grb517DNi8o2/91s86Kwzf9XknhhJPEvkcQLIwlJ/Esk8aKQhCQk8aKShCQkIYn/KRaLBfe77777buWqq6666qqrrvrPROWqq6666qqrrvpPdfbs2Vt5pq2tLV4UtpHEv4ZtJPGvYRtJvKhsAyCJfw3bSOJFZRtJ/GvYRhIvKttI4kVlG0m8KGwjiReFbSTxorCNJP6r2UYS/16S+PeSxL9EEi+MJF4YSfxLJPHCSOJfIokXhST+NSTxH0US/xnm8zn3O3v27K1cddVVV1111VX/mQiuuuqqq6666qr/kWxjm38N2/xr2eZfyzb/Wrb517CNbf41bPOvYZt/Ddu8qGzzorLNfzTbXPWfQxIvjCT+JZL4l0hCEi8KSUhCEv8WkpCEJCQhCUlcddVVV1111VX/JxBcddVVV1111VX/qe67775beaatrS3+tWzzr2Eb2/xr2OZfyzb/Wrb517LNv4Zt/jVs85/FNv/RbPMfyTb/l0jihZHECyOJF0YSL4wkXhhJSOKFkYQkXhSSkMS/hiQkIQlJSOK/2mKx4H733XffrVx11VVXXXXVVf+ZCK666qqrrrrqqv90991336080+bmJv9atvnXss2/hm1s869hm38t29jmX8M2/xq2+dewzYvKNv8ZbPP/nSReGEn8e0jihZHECyOJF0YSL4wk/iWSeFFIQhIvKklIQhL/kSQhCUlIQhKSkIQkJCEJSUhCElddddVVV1111X85gquuuuqqq6666j/d2bNnb+UBbGObfw3b/GvZ5l/LNv8atrHNv5Zt/jVs869hm38N27yobPOiss2LyjYvCtu8KGzz/4kk/q0k8cJI4oWRxAsjiRdGEpJ4YSQhCUn8SyQhCUlI4t9CEpKQhCQkIQlJSEIS/xaLxYL73Xfffbdy1VVXXXXVVVf9ZyO46qqrrrrqqqv+S21tbXE/2/xr2MY2/xq2+deyzb+Wbf61bPOvYZt/Ddv8a9jmRWWbF5VtrvrvJYkXRBIvjCReEElI4gWRhCReEElI4oWRhCReFJKQxL+GJCQhCUlIQhL/WRaLBfc7e/bsrVx11VVXXXXVVf/ZCK666qqrrrrqqv9099133628ALb517LNv4ZtbPOvYZt/Ldv8a9nmX8M2/xq2+c9im/9otnlR2OY/im3+p5PECyOJF0QS/1aSeEEk8cJI4oWRxAsjCUn8SyQhCUm8KCQhCUlI4r/afD7nfvfdd9+tXHXVVVddddVV/9moXHXVVVddddVV/+nuu+++W3mmra0tnpttJPGvYRtJ/GvYRhIvKtsASOJFZRtJ/GvYRhIvKttI4kVlG0m8KGwjif9otpHEfzXbSOJ/Okn8d5DECyKJF0QSL4wkXhBJ/Esk8S+RxItKEv9ekviPIImrrrrqqquuuuq/FMFVV1111VVXXfVfamtri+fHNrb517DNv5Zt/rVs869hm38t2/xr2OZfwzYvKtu8qGzzorLNi8I2Lwrb/G8hiX8rSbwwknhBJPGCSOIFkcQLIokXRBKSeEEk8cJIQhIvjCQk8S+RhCQk8aKShCQkIQlJSEIS/1Hm8zn3u++++27lqquuuuqqq676z0Zw1VVXXXXVVVf9pzt79uwzeKbt7W1eGNv8a9jGNv8atvnXss2/hm3+tWzzr2Gbfw3bvKhs86KyzVX/d0jiBZHECyKJF0YSL4gkJPGCSEISknhhJCEJSbwoJCEJSUjiv8J8Pud+Z8+efQZXXXXVVVddddV/NipXXXXVVVddddV/uvvuu+9Wnmlra4t/iW0k8a9hG0m8qGwjiX8N20jiRWUbSfxr2EYSLyrbSOJFZRtJvChsI4kXhW0k8S+xjST+JbaRxP8WkvjvIIkXRBIviCT+tSTxgkjiBZHECyOJF0YSL4wkXlSS+I8giX8rSVx11VVXXXXVVf+lqFx11VVXXXXVVf8j2UYS/xq2kcSLyjYAknhR2UYSLyrbSOJfwzaSeFHZRhL/H9lGEi+MbSTxP5UkXhBJ/FtI4gWRxAsiiedHEi+IJF4QSbwgknhhJPHCSOJFIYl/C0n8Z5jP59zvvvvuu5Wrrrrqqquuuuo/G8FVV1111VVXXfWf7uzZs7fyTFtbW7yobPOvZZt/Ldv8a9jmX8M2/1q2+dewzYvKNi8q27yobPOisM2LwjZXvWCS+NeSxAsiiedHEi+IJF4QSbwgknhBJCGJF0QSknhhJCEJSbwoJCEJSUhCEv9Z5vM59zt79uytXHXVVVddddVV/9moXHXVVVddddVV/6PZBkASLyrbSOJfwzaSeFHZRhIvKtsASOJFZRtJvKhsI4kXhW0k8aKwjSSu+t9BEv9aknh+JPGCSOL5kcQLIokXRBIvjCReGEm8qCTx7yWJf6/77rvvVq666qqrrrrqqv9sBFddddVVV1111X+6++6771aeaWtrC9v8a9nmX8M2tvnXsM2/hm3+tWzzr2Gbfw3bvKhs86KyzYvCNi8K2/xHsc2/l23+s0jiBZHECyKJF0QS/1qSeH4k8a8liedHEi+IJF4QSbwgkpDECyIJSfxLJCEJSbyoJCEJSUhCEpKQxL/VfD7nqquuuuqqq676L0Vw1VVXXXXVVVf9l7jvvvtu5Zm2trawzb+Wbf61bPOvYZt/Ddv8a9nmX8M2/xq2eVHZ5j+abf6j2OaqF50knh9J/GtJ4vmRxPMjiRdEEs+PJCTx/EhCEi+IJCTxwkhCEpL4l0hCEpKQhCT+o83nc+539uzZZ3DVVVddddVVV/1XILjqqquuuuqqq/5LnD179laeaWtrCwDb/GvZ5l/LNv8atvnXsI1t/jVs869hm/9utvmPZJv/Krb530QSL4gk/qNI4vmRxPMjiedHEs+PJCTx/Eji+ZGEJF4QSUjiBZGEJCTxwkhCEpKQxL+GJCQhCUlIQhKSkIQkJCEJSUhCEovFgvvdd999t3LVVVddddVVV/1XoHLVVVddddVVV/23sg2AJF5UtpHEv4ZtJPGiso0k/jVsI4kXlW0k8aKyjSReFLaRxIvCNpJ4UdhGEv8S20jiP4JtJPF/jST+I0ni+ZHE8yOJ50cSz48knh9JPD+SeH4k8YJI4gWRxAsiiX+JJP61JPEfaT6fc7/77rvvVq666qqrrrrqqv8KBFddddVVV1111X+J++6771aeaXt7m+dmm38N29jmX8M2/xq2+deyzX8m27yobPOiss1/B9v8R7DN/0SS+I8kiedHEs+PJJ4fSTw/knh+JPH8SOL5kcTzI4nnRxKSeH4kIYnnRxKSeGEkIYl/iSQkIQlJSOKqq6666qqrrvo/gcpVV1111VVXXfVf4r777ruVZ9ra2uL5sY0k/jVsI4kXlW0k8aKyjST+NWwjiReFbSTxr2EbSbwobCOJ/0i2kcS/xDaS+L9OEv+RJPHfQRLPjySeH0k8P5J4fiTx/Eji+ZHECyKJF0YS/xJJ/FtI4t9qPp9zv/vuu+/pXHXVVVddddVV/xWoXHXVVVddddVV/6PYRhL/GraRxIvKNpJ4UdkGQBIvKttI4kVhG0n8d7ONJK76n0kSz48knh9JPD+SeG6SeH4k8fxI4rlJ4vmRxPMjiedHEi+IJF4QSfxLJPGiksR/tPl8zv3Onj37DK666qqrrrrqqv8KVK666qqrrrrqqv8S//AP//A7PNPW1hYvjG0k8a9hG0m8qGwjiX8N20jiRWUbSbwobCOJF5VtJPGisI0kXhS2kcS/xDaS+JfYRhIvjG0k8cLYRhL/V0ji+ZHEfwRJPD+SeFFJ4vmRxHOTxPMjiedHEs+PJJ4fSbwgknhhJPGikMS/lySuuuqqq6666qr/cahcddVVV1111VX/5ba2tviX2EYS/xq2kcSLyjaS+NewjST+M9hGEi8q20jiRWEbSVz1X0cS/1Ek8fxI4kUliedHEs9NEs+PJJ6bJJ4fSTw3STw/knh+JPGCSOIFkcS/RBL/GpL495rP59zv7Nmzt3LVVVddddVVV/1XILjqqquuuuqqq/5LnD179laeaXt7mxeFbf61bPOvYZt/Ldu8qGzzr2Gbfw3bvKhs86KwzYvCNv9RbHPVfwxJvKgk8dwk8fxI4rlJ4vmRxHOTxPMjiedHEs+PJCTx/EhCEi+IJCQhiRdGEpKQhCQk8R9hNptxv/vuu+9Wrrrqqquuuuqq/wpUrrrqqquuuuqq/9FsAyCJF5VtJPGiso0k/jVsI4kXhW0k8aKyjSReVLaRxH8k20jiP4JtJPGfzTaS+K8kiX8tSTw/knh+JPH8SOJFJYnnJokXlSSemySemySeH0k8N0k8P5J4fiTxgkjiBZHEv0QS/1aSuOqqq6666qqr/kejctVVV1111VVX/Ze47777buWZtra2+NeyjSReVLaRxIvKNpL4z2IbSbyobCOJ/2i2kcR/FNtI4r+CbSRx1QsmiecmiReVJJ6bJJ6bJJ6bJJ4fSTw3STw3STw/knhBJPH8SOJfIokXlST+I8znc+5333333cpVV1111VVXXfVfgeCqq6666qqrrvovc999993KM21ubvKvZZt/Ddv8a9jmX8M2/xq2+c9imxeVbV4UtvmPYpv/rSTxryWJfw1JPD+SeH4k8dwk8aKSxHOTxHOTxHOTxHOTxHOThCSemySemySeH0k8P5KQxHOThCSeH0lIQhKSeEEkIQlJSEIS/1qSkIQkJCEJSVx11VVXXXXVVf8tCK666qqrrrrqqv8yZ8+evZUHsM2/lm3+NWzzr2Gbfw3b/GvY5kVlm38N2/x3sM1/BNv8XyeJfy9JvKgk8dwk8dwk8dwk8dwk8dwk8dwk8dwkIYnnJonnJglJPDdJSOK5SUISz48kJPGCSEISkpDEv0QSkpCEJCQhCUlIQhLPz2w243733XffrVx11VVXXXXVVf9VCK666qqrrrrqqv8W29vbANjmX8s2/xq2+dewzb+Gbf41bPOiss1/Btu8KGzz/4Ek/jeTxHOTxHOTxHOTxHOTxHOTxHOTxHOTxHOTxHOThCQeSBKSeG6SkMRzk4QknpskJCGJ50cSkpDECyMJSUhCEpL4t5rP59zv7Nmzt3LVVVddddVVV/1XIbjqqquuuuqqq/7L3HfffbfyfNjmX8s2/xq2+dewzb+Gbf41bPOiss2Lyjb/HWzzL7HN/yWS+I8giedHEs9NEv/ZJPHcJPHcJPHcJPHcJPHcJPHcJPHcJCGJ5yYJSTw3SUji+ZGEJCTxgkhCEpKQxL9EEpKQhCQkIQlJSEISkpDEfD7nfvfdd9+tXHXVVVddddVV/1WoXHXVVVddddVV/2Xuu+++W3mmra0tHsg2kvjXsI0kXlS2kcSLyjaSeFHZRhL/3WwjiX+JbSTxL7GNJK560Uji+ZHEfwZJPDdJPDdJPDdJ/Esk8dwk8dwk8dwk8UCSeG6SeH4k8dwk8fxI4gWRxAsiiReFJK666qqrrrrqqv+1qFx11VVXXXXVVf8ttra2eG62AZDEi8o2knhR2UYSLyrbSOJFZRtJvChsI4kXhW0k8X+dbSTxgthGEv9XSOL5kcRzk8Rzk8Rzk8Rzk8Rzk8Rzk8QDSeK5SeK5SeKBJPHcJPHcJPHcJPHcJPH8SOL5kcQLIokXRhL/WpL4l8xmM+5333333cpVV1111VVXXfVfhcpVV1111VVXXfVf5uzZs8/gmba3t3lBbCOJF5VtJPGiso0kXlS2kcSLyjaSeFHYRhIvCttI4kVhG0n8S2wjiX+JbSTxwthGElf9zyeJ5yaJf4kknpskHkgSz00Sz00SDySJ50cSz00Sz48knh9JvDCSeFFI4t9qPp9zv7Nnzz6Dq6666qqrrrrqvwqVq6666qqrrrrqv8x99913K8+0tbXFC2MbSbyobCOJF5VtJPGiso0kXlS2kcSLwjaSeFHYRhIvCttI4n8S20jifwtJ/EeQxItKEs9NEs9NEs9NEs9NEv8SSTw3STyQJJ6bJB5IEs9NEg8kiecmiecmiecmiedHEs+PJF4QSbwwkvjXksRVV1111VVXXfU/DpWrrrrqqquuuup/LNtI4kVlG0m8qGwjiReVbSTxf41tJHHVi04Sz48kXlSS+M8miecmiQeSxHOTxANJ4rlJ4oEk8dwk8UCSeG6SeCBJPDdJPD+SeG6SeEEk8YJI4kUhiX+L2WzG/f7hH/7ht7nqqquuuuqqq/6rULnqqquuuuqqq/7LnD179laeaXt7mxeFbSTxorKNJF5UtpHEi8o2knhR2EYSLwrbSOJFYRtJvChsI4n/CLaRxAtjG0lc9W8jiecmiecmiecmiX+JJP4lknggSTw3STyQJB5IEs9NEg8kiecmiecmiecmiecmiedHEi+IJF4YSfxbSOK5zWYzrrrqqquuuuqq/xZUrrrqqquuuuqq//FsI4kXlW0k8aKyjSReVLaRxIvCNpJ4UdhGEv8dbCOJq/7jSeK5SeI/kiSemyQeSBLPTRIPJIkHksRzk8QDSeKBJPHcJPFAknggSTw3STw3STw3STw/knh+JPGCSOJFIYl/j/vuu+9Wrrrqqquuuuqq/ypUrrrqqquuuuqq/zL33XffrTzT1tYW/xq2kcSLyjaSeFHZRhL/GWwjiReFbSTxL7GNJF4UtpHEfwTbSOLfwzaSeEFsI4n/bSTx7yGJ5yaJ5yaJf4kk/iWSeCBJ/Esk8UCSeCBJPJAknpskHkgSz00Sz00SDySJ50cSz00SL4gkXhhJ/FtI4oFmsxlXXXXVVVddddV/C4Krrrrqqquuuuq/1H333Xcrz7S1tcW/hm3+NWzzr2GbF5Vt/rvZ5j+Sbf4j2OZ/E0n8a0jiRSWJ/2yS+JdI4oEk8S+RxANJ4oEk8UCSeCBJPJAkJPFAknggSUjigSQhiQeSxHOThCQeSBKSeG6SkIQknpskJCEJSbwgkpCEJCQhCUlIQhIPNJvNuN999913K1ddddVVV1111X8lgquuuuqqq6666r/U2bNnb+WZtra2+Neyzb+Gbf41bPOiss2LyjYvKtv8R7PNVf86kvjPIIkXhSSemyT+JZJ4IEn8SyTxQJJ4IEk8kCQeSBIPJIkHksQDSUISDySJB5KEJB5IEpJ4IElI4oEkIYkHkoQkJPHcJCEJSTw/kpCEJCQhiX+JJCQhidlsxv3Onj17K1ddddVVV1111X8lKlddddVVV1111X8r20jiX8M2knhR2UYS/xlsI4kXhW0k8aKwjST+JbaRxH8U20jihbGNJK76jyOJfwtJPJAk/iWSeCBJPJAkHkgSDySJB5LEA0nigSTxQJJ4IEk8N0k8kCSemySemySemySeH0m8IJL4l0jiRTWbzbjffffddytXXXXVVVddddV/JYKrrrrqqquuuuq/1H333Xcrz7S1tQWAbf6z2eZFZZt/Ddu8qGzz38U2V/3nkMRzk8S/lSSemyQeSBL/Ekk8kCQeSBIPJIkHksQDSeKBJPFAknggSTyQJB5IEg8kCUk8kCQeSBKSeCBJSOKBJCGJB5KEJCTxQJKQhCQk8dwkIQlJSEIS/xJJSEISV1111VVXXXXVfysqV1111VVXXXXVf6n77rvvVp5pe3ub+9lGEi8q20jiP4ttJPHfyTaS+JfYRhL/k9hGEi+IbSTxv40k/j0k8dwk8S+RxL9EEg8kiQeSxANJ4oEk8UCSeCBJPJAkHkgSDySJB5LEA0nigSTxQJJ4IEk8N0k8N0k8N0k8P5J4fiTxL5HEi2o2m3G/++6771auuuqqq6666qr/SlSuuuqqq6666qr/MWwjiReVbSTxorKNJF5UtpHEi8I2knhR2EYS/x1sI4kXxjaSeGFsI4mr/uNJ4l8iif9KknggSTyQJB5IEg8kiftJ4rlJ4oEk8UCSeCBJPDdJPDdJPDdJPD+SeEEk8a8hiRfk7Nmzz+Cqq6666qqrrvqvROWqq6666qqrrvov9Q//8A+/wzNtbW3x3GwjiReVbSTxorKNJF5UtpHEi8I2knhR2EYS/xLbSOJfYhtJXPUfQxIvKkk8N0k8N0k8N0n8SyTxL5HEA0nigSTxQJJ4IEk8kCTuJ4kHksQDSeKBJPFAkrifJB5IEg8kiQeSxANJ4rlJ4oEk8dwk8fxI4vmRxL9EEi+q2WzGVVddddVVV13134bKVVddddVVV13132Z7e5vnxzaSeFHZRhIvKttI4j+DbSTxH8k2kviPYhtJvDC2kcT/FZJ4fiTxv40kHkgSDySJB5LEA0nigSTxQJJ4QSTxQJJ4IEncTxIPJIkHksQDSeKBJPFAknggSTyQJJ6bJJ6bJJ4fSbwgknhRSeK59X3P/e67775bueqqq6666qqr/itRueqqq6666qqr/kudPXv2Vl4EtpHEi8o2knhR2UYSLwrbSOI/mm0k8R/FNpK46n8vSTyQJP4zSeKBJPFAkrifJB5IEg8kiftJ4oEk8UCSeCBJ3E8SDySJB5LEc5PEA0niuUniuUniBZHECyOJF9VsNuN+Z8+evZWrrrrqqquuuuq/EpWrrrrqqquuuuq/zdbWFi+MbSTxorKNJF5UtpHEi8I2knhR2EYS/5FsI4n/SWwjiRfENpL4t7CNJP4nkcRzk8Rzk8Rzk8Rzk8S/liQeSBIPJIkHksQDSeIFkcQDSeIFkcQDSeJ+knggSTyQJO4niQeSxANJ4oEk8UCSeCBJPDdJPDdJPDdJvCCSeFFI4qqrrrrqqquu+h+HylVXXXXVVVdd9V/qvvvuu5Vn2t7e5l9iG0m8qGwjif8MtpHEi8I2kviX2EYS/1FsI4l/iW0kcdX/HJJ4IEn8e0jigSTxQJJ4QSTxQJK4nyQeSBL3k8QDSeKBJHE/STyQJO4niQeSxANJ4oEk8dwk8UCSeG6SeH4k8cJI4l+j73vud999993KVVddddVVV131X4ngqquuuuqqq676L3fffffdyr+Cbf41bPOiss1/N9u8KGzzX8k2/x9J4j+SJJ6bJP61JPFAknggSbyoJPFAkrifJB5IEveTxANJ4n6SeCBJ3E8SkrifJO4nCUncTxIPJIkHksT9JCGJB5KEJO4nCUk8kCQk8UCSkIQknpskJCEJSTw/kpCEJCQhCUlI4n733XffrVx11VVXXXXVVf/VCK666qqrrrrqqv9yZ8+evZVn2tra4kVhm/8stnlR2eZFZZv/Drb538A2/1tI4kUhiX8LSTyQJP41JPFAknggSbwgknhBJHE/STyQJO4niQeSxP0k8UCSuJ8kHkgS95OEJO4nCUncTxIPJAlJ3E8SkrifJCQhiftJQhKSeCBJSEISknggSUhCEpKQhCRekNlsxv3Onj17K1ddddVVV1111X81gquuuuqqq6666r/V9vY2/xls869hmxeVbV5UtnlR2OZFYZv/KLb597LN/1aS+PeQxH8VSTyQJF5UknggSdxPEg8kiftJ4gWRxP0k8UCSuJ8kHkgS95PE/SQhiftJ4oEkcT9JSOJ+kpDE/SQhiftJQhIPJAlJPJAkJCGJB5KEJCQhiecmCUlIQhKSkIQkJNH3Pfe77777buWqq6666qqrrvqvRnDVVVddddVVV/2Xu++++27l38A2/xq2+c9im//JbPMfwTZX/dtJ4rlJ4oEk8a8hiQeSxANJ4gWRxAsiiftJ4oEkcT9J3E8SDySJ+0nigSRxP0ncTxIPJIn7SUIS95PE/SQhiftJQhL3k4QkHkgSkrifJCQhiQeShCQk8UCSkIQkJCGJ50cSkpBE3/dcddVVV1111VX/rahcddVVV1111VX/5e67775beaatrS3+NWwjiReVbSTxorCNJP6j2UYS/xLbSOJfYhtJ/G9gG0n8d5LEfwVJ/EeQxANJ4kUliQeSxP0k8UCSuJ8kXhBJ3E8SL4gk7ieJ+0nigSRxP0ncTxIPJIn7SeKBJHE/STyQJB5IEs9NEs9NEs+PJF4QSVx11VVXXXXVVf/jUbnqqquuuuqqq/5bbW1tYRtJvKhsI4kXlW0k8aKwjSReFLaRxP9mtpHE/wWS+PeSxHOTxHOTxL+FJP49JPFAknhBJPGCSOIFkcT9JHE/STyQJO4niftJ4n6SeCBJ3E8S95PE/STxQJK4nyQeSBIPJIn7SeK5SeKBJPHcJPH8SOJfIonn1vc997vvvvtu5aqrrrrqqquu+q9G5aqrrrrqqquu+i939uzZZ/BM29vbANhGEi8q20jiP4NtJPEfyTaS+JfYRhL/EttI4oWxjSSu+u8hiX+JJB5IEg8kiReVJF4QSbwgkrifJO4niRdEEveTxP0kcT9JPJAk7ieJ+0nifpK4nyQeSBL3k8QDSeKBJHE/STw3STyQJJ4fSbwgknhR9H3P/c6ePfsMrrrqqquuuuqq/2pUrrrqqquuuuqq/3L33XffrTzT9vY297ONJF5UtpHEi8I2kviPZhtJ/F9mG0lc9YJJ4l8iiX8PSTyQJF4QSbwgkrifJO4niRdEEveTxP0kcT9J3E8S95PEA0nifpK4nyTuJ4n7SeKBJHE/STyQJB5IEg8kiQeSxHOTxHOTxL9EElddddVVV1111f9IVK666qqrrrrqqv9RbCOJ/wy2kcSLwjaSeFHYRhL/EttI4l9iG0n8V7GNJP6tbCOJ/00k8W8lif8IknggSTyQJF4QSTyQJO4niQeSxP0kcT9JvCCSuJ8k7ieJ+0nifpK4nyTuJ4kHksT9JHE/SdxPEveTxP0k8UCSuJ8kHkgS95PEc5PEA0niuUniBZHEv0QSAH3fc79/+Id/+G2uuuqqq6666qr/alSuuuqqq6666qr/cmfPnr2VZ9ra2uK52UYSLwrbSOJFZRtJvChsI4n/SLaRxH8E20jihbGNJK76l0niuUni30IS/5Ek8YJI4gWRxItCEveTxP0kcT9J3E8S95PE/SRxP0ncTxL3k8T9JPFAkrifJO4niftJ4n6SeCBJPJAk7ieJ5yaJB5LE8yOJF0QSL0zf91x11VVXXXXVVf+tqFx11VVXXXXVVf/r2UYS/51sI4n/KLaRxFX/80niXyKJB5LEA0nigSTxgkjiBZHECyKJ+0nifpK4nyTuJ4n7SeJ+kviXSOJ+krifJO4niftJ4n6SuJ8kHkgS95PE/STxQJK4nyQeSBLPTRLPTRLPTRIvjCRemPvuu+9Wrrrqqquuuuqq/2pUrrrqqquuuuqq/3L33XffrTzT9vY2z49tJPGiso0kXhS2kcSLwjaSeFHYRhL/EttI4j+CbSRx1fMnif9qkviPJIkXRBIviCTuJ4n7SeI/iiTuJ4nnJon7SeJ+krifJO4niftJ4n6SuJ8kHkgS95PE/STxQJJ4IEk8N0k8N0k8P5L4l0ii6zquuuqqq6666qr/VgRXXXXVVVddddV/i/vuu+9Wnml7e5vnxzb/GrZ5UdnmRWWb/w62+Y9gm3+JbV4Y21wFkviPJokHksQLIokXRBL3k8SLQhL3k8T9JHE/SdxPEveTxP0kcT9JAEjifpK4nyTuJ4n7SeJ+krifJO4niftJQhIAkpDE/SRxP0lI4n6SkMT9JCEJSdxPEpKQxP0kIQlJSOKBJCEJSUhCEpLouo773Xfffbdy1VVXXXXVVVf9dyC46qqrrrrqqqv+W5w9e/ZWnmlra4sXxDb/WWzzH802LwrbXPXfQxIvCkn8SyTxL5HEA0niRSWJF0QSLwpJ3E8S95PE/SRxP0ncTxL3k8T9JHE/SdxPEs9NEveTxP0kcT9J3E8S95PE/SRxP0ncTxL3k4QkACQhiftJQhL3k4Qk7icJSUjifpKQhCTuJwlJSEISknggSUhCEn3fc7+zZ8/eylVXXXXVVVdd9d+BylVXXXXVVVdd9T+ebSTxorCNJP6j2UYS/9VsI4kXxjaS+P9MEv8ekviPIIl/D0m8IJJ4QSRxP0ncTxL3k8S/RBL3k8T9JHE/SdxPEveTxP0kASCJ+0nifpK4nyTuJwkASdxPEveTxP0kcT9JPJAk7ieJB5LEA0nigSTx3CTx/Ejihem6jvvdd999t3LVVVddddVVV/13ILjqqquuuuqqq/5b3HfffbfyTNvb2/xHss2LyjYvKtu8KGzzorDNfxXbXPXvI4l/LUk8kCQeSBIviCReEEncTxL/WpK4nyReGEncTxL3k8T9JHE/SQBI4n6SuJ8k7icJAElIAkAS95PE/SRxP0ncTxL3k4QkACQhiftJQhIAkpCEJAAkIQlJ3E8SkpDE/SQhCUlI4n6SkIQkJCEJSUjiqquuuuqqq676b0flqquuuuqqq676b3HffffdyjNtbW3xL7GNJF5UtpHEi8I2kvj/zjaS+LewjSSeH9tI4l9DEs+PJP6vksQLIokXhSTuJ4n7SeJ+krifJO4niftJ4oWRxP0kcT9JAEjifpK4nyTuJwkASdxPEveTxP0kASCJ+0nifpJ4IEncTxL3k8QDSeKBJPHcJPHcJPGCSOJ+Xddxv/vuu+9Wrrrqqquuuuqq/w5Urrrqqquuuuqq/xZnz559Bv9KtpHEfyfbSOJfYhtJ/EtsI4kXxjaSeGFsI4mrnk0S/1aS+JdI4oEk8a8hiRdEEi+IJO4niX8rSdxPEveTxP0kcT9JPDdJ3E8Sz00S95PE/SQBIIn7SeJ+kgCQxP0kcT9J3E8S95PE/SRxP0k8kCQeSBIPJIkHksTzI4kX1dmzZ5/BVVddddVVV13134HKVVddddVVV1313+K+++67lWfa3t7mRWUbSbwobCOJF4VtJHHVC2YbSfxvJonnJon/DJJ4IEm8IJJ4QSTxopDE/SRxP0ncTxIvjCTuJ4n7SeJ+kgCQxP0kcT9JAEjifpK4nyQAJHE/SQBI4n6SuJ8k7icJAEncTxIPJIn7SeJ+krifJB5IEg8kiecmiedHEs9P13VcddVVV1111VX/7ahcddVVV1111VX/7ba2tvjPYhtJ/EeyjST+JbaRxH8E20ji38M2krjqX08S/5Ek8YJI4gWRxP0kcT9J3E8S95PE/SRxP0ncTxLPTRL3k8T9JPHcJHE/SQBI4n6SuJ8kACRxP0kASOJ+krifJAAkcT9J3E8S95PE/SRxP0ncTxIPJIkHksQDSeK5SeIFkcT9uq7jfvfdd9+tXHXVVVddddVV/x2oXHXVVVddddVV/y3Onj17Kw9gG0m8KGwjif9otpHEfzXbSOLfyzaSuOo/nyQeSBIvjCT+LSTxn0kS95PECyOJ+0kCQBL3k8Rzk8T9JAEgiftJAkAS95MEgCTuJ4n7SQJAEveTxP0kcT9JPJAk7ieJ+0nigSTx3CTx3CTxgkii6zrud/bs2Vu56qqrrrrqqqv+O1C56qqrrrrqqqv+221vb/OvZRtJvChsI4kXhW0k8S+xjST+JbaRxFX/e0ji30sSLypJvCgkcT9J3E8S95PE/SRxP0ncTxLPTRL3k8T9JAEgiftJ4rlJ4n6SAJDE/SQBIIn7SQJAEveTBIAk7icJAEncTxL3k8T9JHE/SdxPEveTxP0k8UCSeCBJPJAknh9JXHXVVVddddVV/2NRueqqq6666qqr/lvcd999t/JM29vbANhGEi8q20jiRWEbSfxPZRtJvDC2kcR/JttI4n8TSfxbSeJfIon/SJJ4QSRxP0n8R5PE/STx3CRxP0k8N0ncTxIAkrifJAAkcT9JAEjifpIAkMT9JAEgiftJAkAS95PE/SQBIIn7SeJ+krifJO4niQeSxP0k8UCSeG6SeH4k8UC1Vu5333333cpVV1111VVXXfXfgeCqq6666qqrrvpvc999993Kc7HNfzfbvChs86Kwzf8Utvn/QBLPTRL/ESTxQJJ4IEk8kCReEEm8KCRxP0ncTxL3k8T9JHE/STw3SdxPEs9NEveTxHOTxHOTBIAk7icJAEncTxIAkrifJAAkASAJSQBIAkASkgCQhCQAJHE/SQBIQhIAkpAEgCQkcT9JSAJAEpK4nyQkcT9JSEIS95OEJCQhiftJQhL3O3v27DO46qqrrrrqqqv+uxBcddVVV1111VX/bc6ePXsrz7S9vc39bPOiss2Lyjb/19nmqn87SfxnksQLIon/aJK4nySemyTuJ4nnJon7SQJAEveTBIAknpskACRxP0kASOJ+kgCQBIAk7icJAEncTxL3kwSAJCQBIIn7SeJ+krifJCQBIAlJAEhCEpIAkIQkJAEgCUlIQhL3k4QkJCEJgFor97vvvvtu5aqrrrrqqquu+u9CcNVVV1111VVX/Y+wtbXFv5VtXlS2eVHY5kVhmxeFbf4ltvmX2Oaq/z0k8YJI4gWRxP0kcT9J3E8S95PE/STxwkjiuUnifpJ4bpJ4bpIAkMT9JAEgCQBJ3E8SAJK4nyQAJAEgiftJAkAS95MEgCQkASAJAElIAkASkgCQhCQAJCEJAElIAkASkrifJCQBIAlJSOJ+kpCEJCQBIAlJSEISXddxv/vuu+9Wrrrqqquuuuqq/y4EV1111VVXXXXVf5v77rvvVl4A21x11QNJ4j+SJP4lknggSTyQJB5IEv8WkviPIIn7SeJ+knhuknhukrifJAAkcT9JAEjiuUkCQBLPTRIAkrifJAAkASCJ+0kCQBL3kwSAJAAkIQkASdxPEgCSkASAJCQBIAlJAEhCEgCSkIQkACQhiftJQhKSAJCEJCQhiftJQhJd13HVVVddddVVV/2PQHDVVVddddVVV/23ue+++27lmba3t3lutnlR2eZFZZsXhW1eFLb5j2Kbq/5vksSLQhL3k8T9JHE/SdxPEi+MJO4niecmiecmiecmCQBJ3E8SAJIAkMT9JAEgCQBJ3E8SAJIAkMT9JAEgCQBJSAJAEgCSuJ8kACQhCQBJAEhCEgCSkASAJCQBIAlJAEhCEpIAkIQkJAEgCUlI4n6SkIQkJPH83HfffU/nqquuuuqqq67670Llqquuuuqqq676H2F7e5vnxzaSeFHYRhL/kWwjif8ItpHEfzbbSOIFsY0k/i1sI4n/KSTxopDEv0QS/5Ek8YJI4j+aJO4niecmiftJ4rlJ4rlJAkASz00SAJJ4bpIAkASAJO4nCQBJAEgCQBL3kwSAJO4nCQBJAEjifpIAkMT9JHE/SQBI4n6SuJ8kHkgS95PEA0niuUniudVaud/Zs2efwVVXXXXVVVdd9d+FylVXXXXVVVdd9d/m7Nmzz+CZtre3+a9kG0n8R7GNJP4r2EYS/1lsI4n/rSTxH0ESDySJB5LEA0niBZHECyKJ+0nifpK4nyTuJ4n7SeKFkcRzk8T9JPHcJAEgiecmCQBJPDdJAEgCQBLPTRIAkgCQBIAk7icJAEkASOJ+kgCQBIAk7icJAEncTxL3kwSAJO4niftJ4oEkcT9JPDdJPDdJ3K/WylVXXXXVVVdd9T8Clauuuuqqq6666r/NfffddyvPtLW1xQtiG0m8KGwjif9ItpHEfwTbSOKFsY0k/r+SxP9lkviPJon7SeK5SeK5SeJ+kgCQxHOTBIAknpskACQBIInnJgkASQBIAkASz00SAJIAkMT9JAEgCQBJ3E8SAJIAkMT9JHE/SQBI4n6SeCBJ3E8SDySJB5LE8yOJBzp79uytXHXVVVddddVV/12oXHXVVVddddVV/23Onj17Ky8i20jiRWEbSfxLbCOJ/yi2kcRV//NJ4j+TJF4UkrifJO4niftJ4n6SuJ8kXhhJPDdJPDdJPDdJAEjiuUkCQBIAknhukgCQBIAkACQBIIn7SQJAEgCSAJAEgCTuJwkASQBI4n6SAJAEgCTuJ4n7SQJAEveTxANJ4n6SeCBJPDdJPLdaK/e77777buWqq6666qqrrvrvQuWqq6666qqrrvofYXt7m/8OtpHEv8Q2kvifwjaSeEFsI4mrXjSS+NeQxANJ4gWRxH8mSdxPEs9NEs9NEs9NEgCSeG6SAJAEgCSemyQAJAEgCQBJAEgCQBL3kwSAJAAkASAJAEncTxIAkgCQBIAk7icJAEncTxIAkrifJAAkcT9JPJAk7ieJB5LEc5PEA9Vaueqqq6666qqr/kegctVVV1111VVX/be57777buVfwTaSeFHYRhL/1WwjiRfGNpK46r+GJP61JPFAkviPIIn7SeJfQxL3k8QLI4nnJonnJgkASTw3SQBI4gWRBIAkACQBIAkASbwgkgCQBIAkACQBIAkASdxPEgCSAJAEgCTuJwkASQBI4n6SuJ8kACRxP0k8kCTuJ4kHksRzk8Tzc999993KVVddddVVV13134Xgqquuuuqqq676b3XffffdCrC9vc2Lwjb/0WzzorDNfxXb/F8niReVJF4UkvjvJol/LUncTxL3k8QLI4n7SeK5SeK5SeIFkQSAJJ6bJAAkASAJAEkASOIFkQSAJAAkASAJAEkASAJAEgCSuJ8kACQBIAkASQBIQhIAkgCQBIAkJAEgCUkASAJAEpIAkIQkJAEgCUkASEISkrifJCQhiftJopTCVVddddVVV131PwLBVVddddVVV131P8b29jb/kWxz1fNnm//tJPFvIYl/D0k8kCReEEn8R5DE/STxwkjiuUkCQBL3kwSAJF4QSQBIAkASAJJ4QSQBIAkASQBIAkASAJIAkASAJAAkASAJAElIAkASAJIAkASAJAAkIQkASQBIAkASkgCQhCQAJAEgCUncTxKSAJCEJAAkIQlJSAJAEpKQhCRKKdzvvvvuu5Wrrrrqqquuuuq/E8FVV1111VVXXfXf6uzZs7fyTFtbW7wobPOiss2Lwjb/UWzzL7HN/xeS+J9MEg8kiQeSxItKEi+IJO4niftJ4n6SuJ8kXhhJ3E8Sz00SL4gknpskACQBIIl/iSQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkASkgCQBIAkACQBIAkASUgCQBIAkgCQhCQAJCEJSUgCQBKSkIQkJCEJAElIAkASkpCEJAAkIQlJ1Fq539mzZ2/lqquuuuqqq67670Tlqquuuuqqq676X8k2kvivZhtJ/FewjSReENtI4qoXTBL/l0jihZHEc5MEgCSemyQAJPGCSAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAkASQBIAkAS95MEgCQAJAEgCQBJAEjifpIAkMT9JHE/SQBI4n6SeCBJ3E8Sz00SALVW7nfffffdylVXXXXVVVdd9d+J4Kqrrrrqqquu+m/193//97/NM21vb/OfwTYvCtv8R7HNfzfbXPWfSxIviCTuJ4l/DUncTxIvjCSemyQAJPHcJPGCSAJAEgCSAJAEgCT+PSTx/EgCQBIAkgCQBIAkACQhCQBJAEgCQBIAkgCQBIAkJAEgCQBJSAJAEpKQhCQAJCEJAElIQhIAkpAEgCQkIQlJAEjiqquuuuqqq676H4XKVVddddVVV131P8bW1ha2kcSLwjaS+K9mG0n8e9lGElf9x5DEv0QS/xqSeCBJvCCSeFFI4n6SuJ8kXhhJ3E8Sz00SL4gknpskACQBIIkXlSQAJAEgCQBJAEgCQBIAknggSQBI4rlJAkASAJIAkASAJAAkASCJ+0kCQBIAkgCQBIAk7ieJ+0kCQBL3k8T9JPFAkrifJJ6bJO5333333cpVV1111VVXXfXficpVV1111VVXXfXf6uzZs8/gudhGEv+RbCOJf4ltJHHVfw9J/FeSxANJ4j+CJP4jSOKFkcRzkwSAJJ6bJAAk8YJIAkASAJIAkASAJAAkASAJAEkASAJAEgCSAJAEgCQAJAEgCQBJ3E8SAJIAkASAJAAkASAJAEkASOJ+kgCQBIAkACRxP0kASOJ+krifJO4niftJ4oEk8UARwf3Onj37DK666qqrrrrqqv9OVK666qqrrrrqqv9W991336080/b2Nv9atpHEfzXbSOKFsY0k/j1sI4kXxDaS+I9mG0n8TyCJ5yaJ/26SeFFI4n6SuJ8k7ieJ+0nihZHEc5PECyKJF0QSAJIAkASAJP41JAEgCQBJAEgCQBIAkgCQBIAkACQBIIn7SQJAEgCSAJAEgCQAJAEgCQBJAEjifpIAkASAJO4nCQBJ3E8S95PE/SRxP0k8kCTuV0rhqquuuuqqq676H4PKVVddddVVV131P8b29jb3s40kXhS2kcS/xDaS+JfYRhL/FWwjiav+40niP5IkXhBJ/EeTxP0k8dwk8dwkASCJ5yYJAEm8qCQBIAkASQBIAkASL4gkACQBIAkASQBIAkASAJIAkMT9JAEgCQBJAEgCQBIAkgCQBIAkACRxP0kASAJAEgCSuJ8k7icJAEk8kCTuJ4kHkgSAJO5333333cpVV1111VVXXfXficpVV1111VVXXfXf6uzZs7fyAthGEldd9R9BEv8akvi3kMS/hiTuJ4kXRhLPTRIviCReEEkASAJAEgCSAJAEgCQAJAEgCQBJAEgCQBIAknhBJAEgCQBJAEgCQBIAkpAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIIn7SQJAEveTBIAk7ieJ+0nigSTxQJLouo77nT179lauuuqqq6666qr/TlSuuuqqq6666qr/Mba3t/m3so0k/iW2kcR/BNtI4oWxjST+J7KNJP4vkMS/liQeSBIvKkm8KCRxP0ncTxIvKkk8N0k8N0kASOK5SQJAEgCS+I8gCQBJAEgCQBIAkgCQxP0kASAJAEkASAJAEveTBIAkACQBIAkASQBIAkASAJIAkASAJAAkASCJ+0kCQBIAkrifJO4niftJ4oEk8YLcd999t3LVVVddddVVV/13onLVVVddddVVV/23uu+++27lhbCNJP6r2UYS/xPYRhL/FraRxP80kvjfRBIviCT+I0jifpJ4bpJ4bpJ4QSTxL5EEgCQAJAEgCQBJAEgCQBIAknhBJAEgCQBJAEjiuUkCQBIAkgCQhCQAJAEgCQBJAEgCQBIAkpDE/SQBIAkASQBIAkASAJK4nyQAJHE/SdxPEveTxANJ4n4RwVVXXXXVVVdd9T8GwVVXXXXVVVdd9d/uvvvuuxVge3ubfw/bvChs8x/FNv9etrnqRSeJ/2yS+LeQxL9EEveTxAsjiecmiecmiRdEEgCSAJDEv4UkACQBIAkASQBI4n6SAJAEgCQAJAEgiftJAkASAJK4nyQAJAEgCQBJAEhCEpKQBIAkJCEJSUhCEpKQBIAkACQBIAlJSEISAJKQBIAkJCEJSUgCQBKSkIQkJCGJ+9133323ctVVV1111VVX/XcjuOqqq6666qqr/tudPXv2Vp5pe3ub52ab/w62+Y9gm/9MtrnqOUniX0MSLypJvCgkcT9JvKgk8aKQxHOTBIAk/iWSAJAEgCQAJAEgCQBJvCCSAJAEgCSemyQAJAEgCQBJSAJAEgCSAJCEJAAkASAJAEkASEISAJIAkASAJAAkASAJAElIQhKSkIQkACQBIAlJAEhCEpKQBIAkJCEJSUhCEgCSKKVwv7Nnz97KVVddddVVV131343gqquuuuqqq676H2V7e5vnxzYvCtu8KGxz1f8sknhukviPIIkHksSLShIviCT+I0jihZHECyKJF0QSAJIAkMSLQhIAkgCQBIAkACTx3CQBIAkASTw3SQBI4n6SAJAEgCTuJwkASQBIAkASkgCQBIAkACQBIAkASQBIAkASAJIAkIQkJCEJAElIQhKSAJCEJAAkIQkASUhCEgARwf3uu+++W7nqqquuuuqqq/67EVx11VVXXXXVVf/t7rvvvlv5H8o2/xLbXHWVJO4niftJ4n6SuJ8kXhhJPDdJvCCSAJDEv0QSAJIAkASAJP4lkgCQBIAk7icJAEkASAJAEveTBIAk7icJAEkASEISAJIAkASAJCQBIAkASQBIAkASAJKQhCQkIQlJSAJAEgCSAJCEJCQhCQBJSAJAEpIAkIQkACQhCUlEBFddddVVV1111f8oVK666qqrrrrqqv92991336080/b2Ni+IbSTxL7GNJP4ltpHE/wS2kcQLYhtJXPW8JPEfSRL/XSTx3CTx3CQBIIkXRBIAkgCQxAsjCQBJAEgCQBIAknhukgCQxHOTBIAkACRxP0kASOJ+kgCQxP0kASAJAElIAkASAJIAkASAJCQBIAkASQBIAkASAJIAkMT9JAEgiftJAkAS95PEA0kCQBL3u++++27lqquuuuqqq67670blqquuuuqqq676H2Vra4v/i2wjiav+80niX0MSLypJ/EeQxP0k8dwk8dwk8YJIAkAS/xJJAEgCQBL/EkkASAJAEveTBIAkACRxP0kASAJAEpIAkASAJCQBIAkASUgCQBIAkpAEgCQAJAEgCUkASAJAEgCSAJAEgCQAJAEgCQBJAEjifpIAkMT9JHE/SdxPEgARwf3Onj37DK666qqrrrrqqv9uVK666qqrrrrqqv92Z8+efQbPtLOzwwtjG0n8S2wjif8ItpHEC2MbSVz1nCTxH0kS/1qSeCBJvKgk8YJI4n6SuJ8k7ieJ+0nihZHEc5PEc5PEv0QSAJJ4UUgCQBIAkgCQxHOTBIAknpskACRxP0kASOJ+kgCQxP0kASCJ+0kCQBL3kwSAJAAkIQkASQBIAkASAJIAkIQkACQBIIn7SQJAEgCSuJ8kACTxQJK4nyQigquuuuqqq6666n8UKlddddVVV1111X+7++6771aeaWtri/9KtpHEVVf9d5DEv5UkACTxL5EEgCQAJAEgiRdEEgCSAJDEc5MEgCTuJwkASdxPEgCSuJ8kACRxP0kASEISAJIAkIQkACQBIAlJAEgCQBIAkpAEgCQAJAEgCQBJAEgCQBIAkrifJAAkcT9J3E8SL8h99913K1ddddVVV1111X83KlddddVVV1111X+7s2fP3sq/gm0k8S+xjST+p7CNJF4Q20ji38I2kvi/RBL/1STxgkjiP4IkXhhJPDdJAEjiBZEEgCT+NSQBIAkASbwgkgCQxP0kASCJ5yaJ+0kCQBL3kwSAJCQBIIn7SQJAEpIAkASAJCQBIAkASQBIQhIAkgCQBIAkACQBIAkASQBIAkASAJK4nyTuJ4n7SeJ+EcH9zp49eytXXXXVVVddddV/NypXXXXVVVddddX/KNvb2/xXs40kXhjbSOKFsY0k/qexjST+p5DEc5PEv4Uk/j0k8YJI4gWRxP0kcT9J3E8S95PECyOJ5yaJF0QS/xJJAEgCQBIAkgCQxAsiCQBJAEjifpIAkMRzkwSAJO4niftJAkAS95PE/SQBIAlJAEjifpIAkMT9JAEgCQBJSAJAEgCSAJCEJAAkASAJAEkASOJ+kgCQxP0kASCJB5IEgCSuuuqqq6666qr/UahcddVVV1111VX/7e67775b+VeyjST+JbaRxP8FtpHEVS+YJB5IEg8kif8pJPHcJPHcJPGCSAJAEv8WkgCQBIAknpskACTx3CQBIIn7SQJAEpIAkMT9JAEgCUkASEISAJK4nyQAJCEJAEkASEISAJIAkIQkACQBIAlJAEgCQBIAkgCQBIAkACQBIIn7SQJAEveTxP0k8dzuu+++W7nqqquuuuqqq/67EVx11VVXXXXVVf8j3HfffbcCbG9v89/BNv8S21z1f5ckXhBJ/EeQxL+VJP4lkgCQBIAkACQBIAkASbwgkgCQxHOTBIAk7icJAEncTxL3kwSAJO4niftJ4n6SAJCEJAAkcT9JAEhCEgCSAJCEJAAkASAJSQBIAkASAJKQhCQkIQlJSAJAEgCSkIQkJAEgCUkASEISAJKQxFVXXXXVVVdd9T8KwVVXXXXVVVdd9T/C2bNnb+WZtra2eFHY5kVhm/8pbPN/kST+s0nifwJJ3E8Sz48k7ieJF0YSz00SL4gkACQBIIl/D0kASOK5SQJAEs9NEveTBIAk7ieJ+0kCQBKSAJDE/SRxP0ncTxIAkpAEgCQkASAJAElIAkASkpCEJAAkASAJSUhCEgCSAJAEgCQkIQlJSEISAJKQhCQkIQlJSEISEcH97rvvvlu56qqrrrrqqqv+JyC46qqrrrrqqqv+x9ne3uZ/K9v8e9jmqv8aknhBJPGvJYkXlSSemySemyQAJPEvkQSAJAAkASAJAEkASAJAEs9NEgCSeG6SAJDE/STx3CRxP0ncTxL3kwSAJCQBIAlJAEhCEgCSuJ8k7icJAElIAkASkgCQBIAkJCEJSQBIAkASAJIAkASAJAAkASAJSUhCEgCSkASAJCTxQGfPnr2Vq6666qqrrrrqfwKCq6666qqrrrrqf4T77rvvVh7ANi8K27wobPMvsc2/xDZX/eeTxL9EEg8kiRdGEv+dJPGikMQLIon/SJIAkMRzkwSAJO4nCQBJ3E8SAJK4nyTuJ4n7SeJ+krifJO4niftJAkASkgCQhCQAJCEJAElIAkASAJKQBIAkACQBIAlJSEISkpCEJCQhCUlIAkASAJKQBIAkJCEJSUQE97vvvvtu5aqrrrrqqquu+p+AylVXXXXVVVdd9T/CfffddyvPtL29DYBtJHHVVf8WknhRSeIFkcT9JPEvkcT9JPHCSOIFkcQLIgkASbwoJAEgCQBJvCCSeG6SeG6SuJ8kACRxP0ncTxL3k8T9JCEJAElIAkASkgCQhCQAJCEJAElIAkAS95MEgCQkASAJAElIAkASAJIAkASAJAAkASAJAEkASOJ+krifJK666qqrrrrqqv+RqFx11VVXXXXVVf/jbG9v869hG0n8T2EbSVz1opHE/0aSuJ8kXlSSeG6SeEEk8S+RBIAkACQBIIl/iSQAJHE/SQBI4n6SAJDE/SRxP0kASEISAJKQBIAkJAEgCUncTxL3k8T9JHE/SdxPEveTBIAkJAEgCUkASAJAEpIAkASAJAAkIQkASQBIAkAS95MEgCTuJwkASUjifvfdd9+tXHXVVVddddVV/xNQueqqq6666qqr/kc4e/bsM3g+bCOJ/wi2kcQLYxtJ/GeyjST+LWwjif8NJPHcJPFvIYn/SJJ4QSTxH00Sz00Sz00SL4gkACTxbyEJAEkASOK5SeK5SeK5SeJ+krifJO4niftJ4n6SuJ8k7ieJ+0lCEgCSkASAJCQBIAlJAEhCEgCSkASAJCQBIAkASQBIQhIAkgCQBIAkACQBIAkASdxPEgCSuJ8k7nf27NlncNVVV1111VVX/U9A5aqrrrrqqquu+h/hvvvuu5Vn2t7e5l/LNpL4r2AbSfxPYxtJXPW8JPFvIYl/DUncTxL/VpL4l0gCQBIAkgCQBIAkACTxgkgCQBLPTRL3kwSAJO4niftJ4n6SuJ8k7ieJ+0nifpKQBIAkJHE/SdxPEveThCQAJCEJAElIAkASkgCQBIAkJAEgCQBJAEhCEgCSAJAEgCTuJwkASdxPElddddVVV1111f9YVK666qqrrrrqqv9xtre3eSDbSOI/gm0k8cLYRhL/XWwjif+JJPE/gSQeSBIPJIkXlSReFJK4nyTuJ4kXlSSemyReEEkASOI/giQAJPHcJAEgiftJ4rlJ4n6SuJ8k7ieJ+0nifpK4nyQkcT9J3E8S95OEJAAkIYn7SeJ+kpAEgCTuJwkASUgCQBIAkpAEgCQAJAEgCQBJAEgCQBL3kwSAJAAkcb/77rvvVq666qqrrrrqqv8JqFx11VVXXXXVVf8jnD179lb+nWwjif8JbCOJq/71JPHfRRL/0STx3CTx3CTxL5EEgCReGEkASAJAEi+IJJ6bJJ6bJO4niftJ4n6SuJ8k7icJSQBIQhL3k8T9JCEJAElI4n6SkASAJCQBIAlJ3E8SAJKQBIAkJAEgCQBJSAJAEgCSkASAJAAkcT9JAEgCQBL3k8QDnT179lauuuqqq6666qr/CahcddVVV1111VX/42xvb/PcbCOJ/ylsI4mr/veRxH82SfxbSeJFJQkASQBI4l8iCQBJPDdJ3E8SAJK4nyTuJ4n7SeJ+krifJB5IEveTxP0kIYn7SeJ+kpDE/SQhCQBJSAJAEpIAkIQkACQhCQBJSAJAEgCSkASAJAAkASAJAEkASAJAEveTBIAkbHO/++6771auuuqqq6666qr/CahcddVVV1111VX/I9x333238h/ANpJ4YWwjiRfGNpL4z2IbSVz1n08S/xaSuJ8k7ieJ+0nifpJ4YSTx3CTxgkgCQBL/HpIAkMRzkwSAJO4niecmiftJ4n6SuJ8k7ieJ+0lCEveTxP0kIYn7SUISAJKQxP0kIYn7SeJ+kpAEgCQkASAJSQBIQhIAkgCQhCQAJAEgCQBJSAJAEveTBIAkACRx1VVXXXXVVVf9j0Zw1VVXXXXVVVf9j3HffffdCrC9vc3zY5ur/m+RxL9EEv8aknhRSeI/kySemySemyT+JZIAkASAJAAkASAJAEkASOIFkcRzk8Rzk8T9JHE/SdxPEveTxP0kIYn7SeJ+kpDE/SQhiftJ4n6SkMT9JCEJAElI4n6SkASAJCQBIAlJAEhCEpKQBIAkJCEJSUhCEgCSAJCEJCQhCUlIAkASkrjffffddytXXXXVVVddddX/FARXXXXVVVddddX/GGfPnr2VZ9re3uY/k22u+t9JEg8kif8IkviPIIl/K0kASOI/kiQAJPHcJPHcJHE/SdxPEveTxP0kcT9JPJAk7icJSdxPEg8kiftJQhL3k4Qk7icJSQBIQhL3k4QkACQhCQBJSAJAEgCSkASAJAAkASAJSUhCEpIAkASAJCQhCUnc7+zZs7dy1VVXXXXVVVf9T0Fw1VVXXXXVVVf9j7S9vc2/lW3+K9jmhbHN/weSeFFI4r+bJP4zSOKFkcRzk8S/RBIAkvjXkASAJJ6bJAAkcT9JAEjifpK4nyTuJ4n7SeJ+krifJCRxP0lI4n6SuJ8kJHE/SUjifpKQxP0kIYn7SUISAJKQxP0kIQkASUgCQBIAkpAEgCQkIQlJSEISAJIAkIQkJCEJSUjiud133323ctVVV1111VVX/U9BcNVVV1111VVX/Y9x33333cq/wDb/VWzz38U2/5tJ4t9CEv+RJPFvIYn7SeJ+krifJF4YSTw3STw3SbyoJAEgCQBJAEgCQBIviCSemySemyTuJ4n7SeJ+krifJO4niQeSxANJ4n6SkMT9JCGJ+0lCEveThCTuJwlJ3E8SkgCQhCTuJ4n7SQJAEpIAkIQkACQBIAkASUhCEpKQBIAkACQhCdtcddVVV1111VX/IxFcddVVV1111VX/Y9x333238kzb29v8e9jmX2Kb/062+bewzVX/fpL4jyaJfytJAEjiP4IkACTx3CTx3CRxP0n8SyRxP0ncTxKSuJ8kJHE/SUjifpKQxP0kIYn7SUIS95OEJCQBIAlJ3E8SkgCQhCQAJCEJAElIAkASkgCQBIAkJCEJSQBIAkASkpCEJAAkIYn73Xfffbdy1VVXXXXVVVf9T0Hlqquuuuqqq676H2l7e5sXxDaS+J/ANpL4v0YS/xNI4l9DEv8Wkvi3ksQLI4nnJol/iSQAJAEgiRdGEgCSeEEk8dwkcT9JPDdJ3E8SDySJ+0nigSTxQJJ4IEk8kCQkcT9JSOJ+kpCEJO4nCUkASEIS95OEJAAkIQkASUgCQBKSAJCEJAAkASAJAEkASAJAEgCSAJDEA509e/YZXHXVVVddddVV/1NQueqqq6666qqr/sf4h3/4h9/hmba3t/mfwDaSuOp/Bkk8kCReVJJ4UUji+ZHE/STxH0ES/1qSAJAEgCT+JZJ4bpK4nySemyTuJ4n7SeKBJHE/SUjifpKQxP0kIYn7SUISDyQJSdxPEpJ4IElI4n6SkASAJCQhCQBJSAJAEpIAkIQkACQhCQBJAEhCEgCSAJAEgCQAJHHVVVddddVVV/2PR3DVVVddddVVV/2PtL29zQtjm3+Jbf4ltvnPZJurnj9J/E8niX8LSTw3SbwgkgCQxH8ESQBI4rlJ4oWRxP0kcT9J3E8SkrifJB5IEg8kiQeSxANJQhIPJAlJ3E8SkpDE/SQhiftJQhL3k4QkACQhCQBJSAJAEpIAkIQkJCEJAEkASAJAEgCSAJCEJB7ovvvuu5Wrrrrqqquuuup/CipXXXXVVVddddX/GGfPnr2Vq676DyKJF0QS/9Ek8dwk8dwk8S+RBIAkACTxwkgCQBIviCSemyTuJ4n7SeJ+krifJB5IEveTxANJQhL3k4Qk7icJSTyQJCTxQJKQxANJQhL3k4Qk7icJSdxPEpIAkIQkACQhCQBJSAJAEgCSkASAJAAkASAJAEkA2OZ+Z8+evZWrrrrqqquuuup/CoKrrrrqqquuuup/pO3tbf4ltvmX2ObfyzZX/eeTxL+HJP4tJPFvJYl/K0n8a0kCQBIAknhBJAEgiecmiftJ4n6SeH4kcT9JPJAk7icJSTyQJB5IEpK4nyQkIYn7SUISkrifJCQhiftJQhL3k4QkJAEgCUlIAkASkgCQhCQAJCEJAElIQhKSAJAEgCQAJAEgCQBJ2Oaqq6666qqrrvoficpVV1111VVXXfU/xn333Xcr/w1sI4l/K9tI4qoXTBL/0STxopLEi0IS95PE/SRxP0m8MJJ4bpJ4QSTxH0kSz00SAJK4nyReGEk8kCTuJ4kHksQDSeKBJCGJB5KEJB5IEpJ4IElI4oEkIYn7SUISkrifJCRxP0lIAkASkgCQhCQAJCEJAEkASEISAJIAkASAJJ6f++6771auuuqqq6666qr/KQiuuuqqq6666qr/Ue67775bAba3t/n/wDYviG3+P5PEA0nifypJvCgk8YJIAkASAJJ4YSQBIAkASTw3STw3STw3SdxPEveTxANJ4n6SeCBJPJAkJPFAkpDEA0lCEg8kCUk8kCQkIYn7SUISkrifJCRxP0lI4n6SkASAJCQBIAlJAEgCQBKSAJAEgCQAJAEgCUnY5qqrrrrqqquu+h+J4Kqrrrrqqquu+h/lvvvuu5Vn2tra4l9im3+Jbf472eb/Akm8KCTx300SL4gk/iNI4oWRxAsiiReVJAAkASCJf4kknpsknpsk7ieJ+0nifpJ4IEncTxKSuJ8kJPFAkpDEA0lCEg8kCUk8kCQkIYkHkoQkHkgSkrifJCQhCQBJSEISAJKQBIAkJAEgCUlIQhIAkgCQhCQkIQlJSEIS9zt79uwzuOqqq6666qqr/ichuOqqq6666qqr/sfa3t7mv4ptXhjb/G9gm/9Kkvi3kMT/BJL415DECyOJ5yaJF0QS/5Ek8dwk8dwkcT9J3E8S95PE/STxQJJ4IEk8kCSemySemyQk8UCSkIQkHkgSkpDE/SQhCUncTxKSkMT9JCGJ+0lCEgCSkASAJCQBIAkASUhCEpIAkASAJAAyk/vdd999t3LVVVddddVVV/1PQnDVVVddddVVV/2Pcvbs2Vv5V7LNfzfbXPXfRxIviCReFJK4nyTuJ4n/bJIAkMS/hiQAJPHcJPHcJPGvIYn7SeKBJPFAknggSUjigSQhiecmCUk8N0lIQhIPJAlJPJAkJCGJ+0lCEveThCTuJwlJAEhCEgCSAJCEJAAkASAJAEkASOKB7rvvvlu56qqrrrrqqqv+JyG46qqrrrrqqqv+R7nvvvtu5Zm2t7exzX8E21z1P5ck/jUk8T+FJJ6bJJ6bJF5UkgCQBIAkACQBIIkXRBLPTRLPTRL3k8T9JPGCSOKBJPFAkpDEA0lCEg8kCUlI4oEkIQlJPDdJSOKBJCEJSTyQJCRxP0lIQhIAkpCEJAAkIQkASUhCEpIAkIQkJCEJSUhCEpKwzVVXXXXVVVdd9T8Wlauuuuqqq6666n+s7e1trvr/SRIPJIn/CJL4jyCJfytJAEjiP5Iknpsknpsk7ieJ+0nifpK4nyQeSBIPJAlJPJAkJPFAkpDEc5OEJJ6bJCQhiQeShCQk8UCSkIQk7icJSUjifpKQxP0kcT9JSAJAEgCSkASAJAAkASAJAEnc77777ns6V1111VVXXXXV/yQEV1111VVXXXXV/yhnz569ledim3+Jbf69bPPC2Oaqfz1J/FeSxItCEv8aknhhJPHcJPEvkcS/hSQAJPHcJPHcJHE/SfxLJHE/STyQJCTxQJJ4bpJ4bpKQxHOThCQk8dwkIQlJPJAkJCEJSdxPEpKQxP0kIQlJAEhCEgCSkMT9JAEgCUkASAJAEpKQhCQkkZnc7+zZs8/gqquuuuqqq676n4Tgqquuuuqqq676H+W+++67lWfa2dnhP5Jt/rvY5gWxzb+Wba76jyOJ+0nifpJ4YSTxopDEv0QSAJIAkASAJAAkASCJF0QSz00SL4wk7ieJB5LE/STx3CTxQJKQxANJQhLPTRKSkMRzk4QkJPHcJCEJSTw3SUhCEveThCQkcT9JSAJAEpIAkIQkACQhCQBJSEISkgCQBIAkbHPVVVddddVVV/2PRXDVVVddddVVV/2Ptb29zf1s8y+xzX8n21z1X08SL4gk/qtJ4gWRxH8GSTw3STw3SdxPEveTxP0k8UCSuJ8kJPFAknhuknhukpDE8yMJSUjiuUlCEpJ4bpKQhCQk8UCSkIQk7icJSdxPEpIAkIQkACQhCQBJSAJAEgCSAJDEc/uHf/iH3+aqq6666qqrrvqfhMpVV1111VVXXfU/yn333Xcr/41sI4mr/m0k8S+RxL+HJP4tJPEfQRLPTRLPTRIviCQAJPFvIQkASTw3STw3SfxrSOKBJPFAknggSUjigSQhiecmCUlI4vmRhCQk8dwkIQlJSOK5SUISknggSUjifpKQxP0kIQkASUgCQBKSAJAEgCQkASAJgGmauOqqq6666qqr/sciuOqqq6666qqr/sfa3t7mP5pt/j1sc9V/LEm8MJJ4UUniRSGJf4kk7ieJfytJ/EskASAJAEk8kCQAJPGCSOK5SeK5SeJ+krifJB5IEg8kiQeSxHOTxHOThCSeH0lIQhLPjyQkIQlJPDdJSEISknggSUhCEveThCQkASAJSUgCQBKSAJCEJAAkIQlJSAJAEgCSeKD77rvvVq666qqrrrrqqv9JCK666qqrrrrqqv9Rzp49+wxeANv8S2zzf4lt/r+RxH8lSdxPEi8qSTw3SfxHksS/RBIvCkncTxL3k8T9JPFAknggSTyQJCTxQJKQxHOThCQk8fxIQhKSkMTzIwlJSEISz00SkpDEA0lCEpK4nyQkcT9JSAJAEpIAkIQkACQBIAkASQBkJlddddVVV1111f9YBFddddVVV1111f849913360A29vbXPU/lyT+u0niBZHEfzRJ/FtJAkAS/xEk8YJI4n6S+NeQxANJ4oEk8dwk8dwkIYnnRxKSkMQLIglJSOIFkYQkJCGJB5KEJCTxQJKQxP0kIYn7SUISAJKQBIAkACQhCUlIQhL3u++++27lqquuuuqqq676n4bgqquuuuqqq676H+fs2bO38kzb29s8kG3+vWzzwtjm38o2L4ht/jeQxHOTxL+FJP4nkMS/lSReGEk8N0n8SyQBIIkXhSQAJPGCSOKFkcT9JHE/STyQJB5IEg8kiecmCUk8N0lI4gWRhCQkIYnnRxKSkIQkJPH8SEISknggSUhCEveThCQkASAJSdxPEveTBIAkJAEgCQDb3O/s2bO3ctVVV1111VVX/U9DcNVVV1111VVX/Y+2vb3Nv5Ztrvq/SRL/XpL4l0jiP4IkXlSSAJAEgCQAJPEvkcRzk8T9JHE/SdxPEveTxANJ4oEk8UCSkMRzk8TzIwlJSOKFkYQkJPHCSEISkpDEc5OEJCTxQJKQhCTuJwlJAEhCEgCSkASAJCQBIAkASbTWuN999913K1ddddVVV1111f80BFddddVVV1111f8499133638D2abq/7nkcS/liTuJ4kXlSSemyReEEn8Z5DEc5PEv5UkHkgSDySJ5yaJ5yYJSbwgkpCEJCTxgkhCEpKQhCReEElIQhKSeCBJSEISDyQJSdxPEpIAkIQkACQhCQBJAEgCIDO56qqrrrrqqqv+RyO46qqrrrrqqqv+x7nvvvtu5Zm2t7d5brb597LN/yS2+f9AEg8kiQeSxANJ4t9CEv/RJPGikMQLIol/D0kASOK5SeK5SeJ+krifJO4niX8NSTw3SUjiuUlCEpJ4YSQhCUlI4oWRhCQkIQlJPD+SkIQkHkgSkpDE/SQhiftJQhIAkpAEgCQAJAEgCUnc77777ruVq6666qqrrrrqfxqCq6666qqrrrrqf7Tt7W3+LWzz72Gbq/5nk8SLQhL/VpJ4YSTxbyEJAEkASAJAEg8kCQBJvCCSeG6S+NeQxP0k8UCSkMQDSUISz00SL4gkJCGJf4kkJCEJSUjihZGEJCQhCUk8kCQkIQlJ3E8SkrifJCRxP0ncTxIAkpCEJCTRWuN+Z8+efQZXXXXVVVddddX/NARXXXXVVVddddX/OP/wD//wO/wLbHPV/yyS+J9OEv8SSfxHkMS/lST+JZJ4UUjifpK4nyReEEk8N0k8N0k8N0lI4oWRhCQkIYkXhSQkIQlJSEISL4gkJCGJ5yYJSdxPEpKQBIAkJAEgCUkASEISAJIAyEyuuuqqq6666qr/0Qiuuuqqq6666qr/0W688Ub+t7HNVf/xJPGCSOJfSxL3k8SLShLPTRIviCT+I0niBZHE/STxL5HE/STxQJJ4bpJ4bpKQxHOThCQk8S+RhCQkIQlJvKgkIQlJSEISz00SkpCEJO4nCUlI4n6SkASAJCQBIIn7SQJAEg9033333cpVV1111VVXXfU/DcFVV1111VVXXfU/ztmzZ2/lP4BtXhjb/FvZ5qr/PyTxopDECyIJAEn8W0jiBZHECyOJ+0niBZHEA0niuUni+ZHECyIJSUjiRSUJSUhCEpKQhCT+JZKQhCQk8dwkIYkHkoQk7ieJ+0kCQBKSAJAEQGZyv7Nnz97KVVddddVVV131Pw3BVVddddVVV131P9r29jYviG3+M9nmP5pt/r+QxL+HJP4tJPEfQRIvjCT+PSQBIAkASQBIAkASAJJ4QSTx3CRxP0ncTxL3k8T9JPFAknggSTw3SUjiuUlCEi+MJCQhCUlI4l9LEpKQhCQkIQlJPD+SkIQkHkgSkpDE/SQhCQBJSAJAEpIAkASAJFprXHXVVVddddVV/6NRueqqq6666qqr/se57777buWq/9Ek8a8liRdGEi8qSbwoJHE/SfxLJPEfQRL/mSTx3CTxbyWJB5LEA0ni+ZHE8yMJSUjiRSEJSUhCEpKQhCT+tSQhCUlI4rlJQhKSeCBJSOJ+kpAEgCTuJwkASUjige67775bueqqq6666qqr/qchuOqqq6666qqr/ke67777bgXY3t7m38M2Vz1/kvjvJIn/LpK4nyReVJJ4bpJ4QSQBIIn/CJJ4bpJ4bpK4nyTuJ4n7SeKFkcQDSeL5kYQkXhBJSEIS/xaSkIQkJCEJSUhCEpJ4YSQhCUlI4oEkIQlJ3E8SkrifJAAkIQkASdyvtcZVV1111VVXXfU/GsFVV1111VVXXfU/0tmzZ2/lmba3t3lBbPPvYZur/ueTxAsiif9MknhRSOJfIol/DUkASOI/mySemyQeSBKSeH4k8S+RhCQkIQlJ/EeQhCQkIQlJSOL5kYQkJPFAkpDE/SRxP0lIAkASAJKQxP3+4R/+4be56qqrrrrqqqv+JyK46qqrrrrqqqv+x9ve3uZ/Itv8fyCJ/28k8cJI4gWRxL9EEgCSAJAEgCQAJPEvkcRzk8T9JHE/SdxPEveTxANJ4rlJ4rlJ4vmRhCQk8aKShCQkIQlJSEISkpCEJP4tJCEJSUjiuUlCEpK4nyQkASAJSdxPEgCSkMQwDNzvvvvuu5Wrrrrqqquuuup/IoKrrrrqqquuuup/pPvuu+9W/oPY5t/KNv8Wtvn/RBL/kSTxbyGJ+0ni/yJJPDdJ/FtJ4oEk8dwk8dwkIYkXRBKSkMR/BElIQhKSkIQkJCEJSUjihZGEJCQhiQeShCTuJ4n7SUISAJK46qqrrrrqqqv+VyG46qqrrrrqqqv+R7rvvvtu5Zm2t7d5YWzz72Gb/wls8/zY5qpnk8S/liSeH0ncTxIvjCSemyReEEkASOI/giSemySemyTuJ4n7SeJ+knggSTyQJJ6bJJ4fSfxLJCEJSUjiP5MkJCEJSUhCEs+PJCTxQJK4nyQkcT9JAEhCEq01rrrqqquuuuqq//GoXHXVVVddddVV/+Ntb29z1X8NSfxHkMS/hiT+q0jiRSWJF4Uk/iWSAJDEi0ISAJJ4UUjiX0MSL4wknpsknh9JSOJFJQlJSEISkpCEJCQhCUlIQhKSkIQk/q0kIQlJSOKBJCGJ+0lCEveThCQAJHE/Sdzvvvvuu5Wrrrrqqquuuup/IipXXXXVVVddddX/SGfPnn0GV/2fIYkHksR/BEn8V5PECyKJF5UkACQBIAkASfxLJPHCSOJ+krifJF4QSTw3STw3SbwgkpDEfyZJSEISkpCEJCQhCUlIQhIvjCQk8UCSkMT9JCGJ+0kCQBKSmKaJ+509e/YZXHXVVVddddVV/xMRXHXVVVddddVV/yPdd999t/JM29vb2OaFsc0LY5t/K9v8R7LNVS86SbwoJPEfQRL/U0niuUni30oSDySJ5yaJ5yYJSbwgkpCEJCTx30USkpCEJCTx3CQhCUncTxKSuJ8k7ieJ+7XWuOqqq6666qqr/scjuOqqq6666qqr/sfb2dnhP5tt/i1s8/+NJP6nk8T9JPEvkcQLI4nnJokXRBIAkviPIInnJonnJon7SeJ+krifJF4YSTw3STw/knhRSEISkpCEJCQhCUn8W0hCEv9akpCEJJ6bJCRxP0ncTxKSAJDEc/uHf/iH3+aqq6666qqrrvqfiMpVV1111VVXXfU/0tmzZ2/lqv+XJPGCSOLfQxL3k8QLI4kXhST+JZIAkMSLQhIAkvjPJonnJonnJonnRxKS+PeQhCQkIQlJSEISkpCEJCQhCUncTxKSkIQkJCEJSUhCEpJ4fiQhCUk8kCTuJwlJ3E8SAJJYr9dcddVVV1111VX/4xFcddVVV1111VX/421vbwNgmxfGNi+Mbf4r2eaq/1sk8R9BEgCSAJAEgCT+JZJ4bpK4nyTuJ4n7SeJ+knggSbwoJPGCSEIS/1NJQhKSkMRzk4Qk7icJSdxPEveTBIAk7nfffffdylVXXXXVVVdd9T8Rlauuuuqqq6666n+k++6771au+n9BEv8WkviPJol/K0n8Z5LEc5PEv5UkHkgSDySJ50cSknhBJCEJSfxPJglJSOKBJCGJ+0nifpK4nySmaeKqq6666qqrrvofj+Cqq6666qqrrvof67777rsVYHt7m/9utrnq+ZPEv4YkXlSSeFFI4t9KEi+MJJ6bJF4QSfxHksSLQhL3k8T9JHE/SfxrSOIFkcS/RBKSkIQkJCEJSUhCEs9NEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSbwgkpDEA0nifpKQBIAkJPFA9913361cddVVV1111VX/UxFcddVVV1111VX/Y509e/ZWnml7exsA27wwtvm3ss2/hW2uejZJPJAk/itJ4n6SeH4k8R9BEi+IJAAk8a8hCQBJvCCS+I8giQeSxHOTxAsiiX8vSUhCEpL4zyQJSUhCEs9NEpK4nyQkcT9J3K+1xv3Onj17K1ddddVVV1111f9UBFddddVVV1111f8K29vb/EewzVUvOkn8XyGJF5Uknpsk/j0kASAJAEkASAJAEv8SSTw3SfxLJHE/STyQJB5IEs9NEi+IJCTxv5EkJPHcJPFAkrifJACmaeJ+9913361cddVVV1111VX/UxFcddVVV1111VX/Y9133323ctULZJv/ayTxgkjiP5Mk/q0k8Z9JEs9NEs9NEveTxL+VJJ6bJCTxgkhCEpL4zyIJSUhCEpKQhCQkIQlJSEISkpCEJCTxgkhCEg8kCUncTxL3k0Rrjauuuuqqq6666n8Fgquuuuqqq6666n+s++6771aeaWdnh/vZ5oWxzf90trnq304S/xUk8dwk8YJI4j+SJF4UkvjXkMQDSeK5SeL5kcS/RBKSkIQk/rUkIQlJSEISkvj3koQkJCGJ5yYJSTyQJO4niefnvvvuu5Wrrrrqqquuuup/KoKrrrrqqquuuup/rLNnzz6DZ9re3ua/gm1eENtc9R9LEv9ekvi3ksR/BkkASOLfQhIviCReGEncTxL3k8QLI4nnJonnRxL/GpKQhCQkIQlJSEISkpCEJCTxX0USknhukpDE/SRxP0kATNPE/c6ePfsMrrrqqquuuuqq/6kIrrrqqquuuuqq/7Huu+++W/lPYJv/Krb517DNVVdI4l9LEveTxP0kcT9JvDCSeFFI4kUlCQBJAEjigSQBIIkXRBLPTRL/VpJ4UUji+ZHE/zSSkIQkJCEJSfxLJCGJ5yaJ+0nifpJorXHVVVddddVVV/2vQHDVVVddddVVV/2vcMMNN/BAtnlhbHPVfzxJ/HtI4n8jSbwgkvi3ksR/FEncTxL3k8T9JPFAknggSTw/knh+JCGJ/yqSkIQkJCEJSUhCEi+IJCQhCUlI4vmRhCQeSBL3k8Tzc999993KVVddddVVV131PxXBVVddddVVV131P9bZs2dv5X8J21z1n0cS/5kk8aKQxAsiif8MknhukvjPIonnRxIviCQk8R9NEpKQhCT+I0lCEpJ4bpJ4IEncTxIA0zRxv7Nnz97KVVddddVVV131PxXBVVddddVVV131v8LOzg7/VWzz/5Ek/rUk8UCSeCBJvKgk8V9JEi+MJP4tJPEfQRIvCkn8a0jigSTx3CTx/EjihZGEJCQhiX8tSUhCEpL4ryIJSTyQJCRxP0ncTxLTNHHVVVddddVVV/2vQHDVVVddddVVV/2Pdd99993KC2GbfyvbXPW/kyT+u0niXyIJAEm8KCQBIIkXRBIvjCTuJ4n7SeKFkcSLShIvKklIQhKSkIQkJCEJSUhCEpL495KEJCQhCUlIQhKSkMQLI4nnJon7SeL5ue+++27lqquuuuqqq676n4rgqquuuuqqq676H+2+++67FWB7e5t/Ldv8R7PN/wWS+L9AEveTxP0kcT9J3E8SL4wknpsk/iNIAkASAJIAkMS/RBLPTRL/VpL4l0jiBZHEfzdJSEISkpDEi0ISkpDE8yMJSTyQJO4nCYBpmgC47777buWqq6666qqrrvqfjOCqq6666qqrrvof7ezZs7fyTNvb21z1f4ckXhBJ/G8gif9MknhRSOJ+krifJO4niQeSxANJ4rlJ4gWRxH8lSUhCEpL4jyAJSTw/knggSdxPEvc7e/bsrVx11VVXXXXVVf+TEVx11VVXXXXVVf9rbG9v89xsc9VV/x6SeG6SeG6SeEEk8R9JEi+IJP4rSeIFkYQk/jNJQhL/mSQhiecmiQeSBMA0Tdzvvvvuu5Wrrrrqqquuuup/MoKrrrrqqquuuup/tPvuu+9W/h1s84LY5gWxzb+WbZ4f2/x72eZ/O0n8W0jiP5ok/jNIAkAS/xaSeEEk8dwk8a8hiQeSxANJ4vmRxAsjif9IkpCEJP49JCEJSbwoJCGJB5LEA0limiauuuqqq6666qr/NQiuuuqqq6666qr/0e67775beaadnR3+L7HN/2SS+K8iiReFJP6tJPEfQRIvKkkASAJAEg8kCQBJ/HtJ4n6SuJ8k/jUk8fxI4oWRhCQk8W8hCUlI4t9CEpKQhCQk8UCSkIQkJPHCSOKBJPFA0zRxv/vuu+9Wrrrqqquuuuqq/8kIrrrqqquuuuqq/zW2t7d5fmzzX8k2V/33k8T9JHE/SdxPEi8qSTw3Sbwgkvi3ksSLShLPTRL/VpJ4IEm8qCTxopCEJCQhCUlIQhKSAJCEJCQhiX8LSUhCEv9akpCEJJ4fSTyQJJ6fs2fPPoOrrrrqqquuuup/MipXXXXVVVddddX/aGfPnn0GV/2vJIn/DyTxn0ESLwpJPD+SuJ8k/jUk8Z9JEv8ekpDEfxRJSOK5SeKBJAEwTRNXXXXVVVddddX/GgRXXXXVVVddddX/aPfdd9+tPNP29jb/FrZ5QWxz1YtGEi+MJP4jSOK/iiSemySemyT+JZL4jyCJF0QSL4wkXhSSeCBJPDdJPD+S+O8gCUlI4j+LJJ6bJJ7bNE3c77777ruVq6666qqrrrrqfzKCq6666qqrrrrqf7SzZ8/eyjNtb2/zgtjmP5ptrnrBJPFvJYn/LpL4t5LEv0QS/xaSeEEk8dwk8Z9NEs+PJCTxX0ESkvivIonnJon7SeKBzp49eytXXXXVVVddddX/ZFSuuuqqq6666qqrrvofSxL/W0kCQBIAknggSQBI4t9LEveTxPMjiQeSxANJ4l9LEv+ZJPFvIQlJSEISkpCEJCTxL5HEC7NcLrnqqquuuuqqq/7XILjqqquuuuqqq/5Hu++++27lmXZ2dvifzjb/Xra56nlJ4t9KEi+MJJ6bJF4QSfxbSeJFJYnnJokXlST+NSTx3CTxwkjiP5okJPGvJQlJ/EskIQlJvCCSeCBJPD/33XffrVx11VVXXXXVVf+TEVx11VVXXXXVVf/j3XfffbfyIrDNC2KbF8Q2/1q2+dewzf9nknhBJPGvJYn7SeJ+krifJP6zSeI/gyReFJL415DEA0niRSGJF0YSkvj3koQk/rUkIYl/C0lI4vmRxANJAmCaJq666qqrrrrqqv81qFx11VVXXXXVVf9rbG9vc9VV/1Ek8dwk8dwk8S+RxH8ESbwgknhhJHE/SdxPEv8aknh+JPEvkYQk/rUkIYl/LUlI4j+CJJ4fSbwgZ8+efQZXXXXVVVddddX/dARXXXXVVVddddX/ePfdd9+tPNPW1hb/lWxz1VUAkviXSOLfQhL/VSTxQJL4jyYJSUjihZGEJP4tJPEfTRL/ktYa97vvvvtu5aqrrrrqqquu+p+O4Kqrrrrqqquu+l9lZ2eHfyvbXPU/myT+M0niv4IkACQBIIkHkgSAJP4lknhukvjPJInnRxL/WpKQhCQkIQlJSOLfShL/WSTx3CRxv3Ecud999913K1ddddVVV1111f90BFddddVVV1111f94Z8+evZUXkW3+LWzz38E2/9kk8V9NEv9TSOKFkcRzk8QLIol/K0m8qCTxopDE/STx/EjihZHEi0oS/50k8Z9NEi/INE1cddVVV1111VX/qxBcddVVV1111VX/491333238kzb29vY5qr/vSTxopDEv4Yk7ieJ/2yS+M8giRdEEi8qSbwgkviXSOJ/EklI4r+LJJ7bfffd93Suuuqqq6666qr/6Qiuuuqqq6666qr/8c6ePXsrz7S9vc3/FLZ5fmxz1X8sSdxPEveTxL+FJF4UkviXSOK/gyT+NSTxryWJ50cS/1tIQhKSkIQkXhSSeH7GceR+Z8+efQZXXXXVVVddddX/dARXXXXVVVddddX/ePfdd9+t/CvY5gWxzb+Wba564STxv50k/j0k8W8hCQBJvCCSeGEkcT9J3E8SL4gkHkgS/xqS+K8iiX8tSUji+ZGEJP61JDFNE1ddddVVV1111f8qBFddddVVV1111f8qN954IwC2ueo/jiT+O0jiv4ok/q0k8aKSBIAkACTx/EjiXyKJ5yaJ/0qSeEEk8Z9NEv9aknhRSEISL4gkXpizZ8/eylVXXXXVVVdd9T8dwVVXXXXVVVdd9T/efffddyv/BWzzn8k2/1dI4kUlif+pJPHcJPGCSOLfShIAkvjvIokXRhL/WpL4zyKJfy1J/Geapon73Xfffbdy1VVXXXXVVVf9T0dw1VVXXXXVVVf9r7Kzs8OLwjZX/e8iif9okvjfSBLPTRLPTRL3k8TzI4kXRBIvCkm8MJL430wSL4gkHmgcR+5333333cpVV1111VVXXfU/HcFVV1111VVXXfU/3tmzZ5/B82GbfwvbXPXCSeKBJPH/jSReEEn8Z5DEfwRJ/FtJ4t9CEv+RJPGvJYl/K0lcddVVV1111VX/JxFcddVVV1111VX/K9x33323Amxvb/PfwTbPj22u+o8niX+JJO4niftJ4oWRxHOTxL+FJP4jSOIFkcRzk8S/lSQeSBJXveimaQLgvvvuu5Wrrrrqqquuuup/A4Krrrrqqquuuup/hbNnz97KM21vb/OfxTb/EWzz72Gb52ab/48kcT9J/FeTxL9EEgCS+NeQxL+XJP6jSeK5SeJfIon/CJL4n+7s2bO3ctVVV1111VVX/W9AcNVVV1111VVX/a+zs7PD/WzzgtjmfwPb/F8iiRdEEv8dJPFfSRIAkgCQBIAkACTxL5HEv5Yk7ieJ+0niP4Ik/iWS+L9qmibud999993KVVddddVVV131vwHBVVddddVVV131v8J99913K/+BbPP/hW2uel6SeG6SeEEk8d9NEv8RJPFAkviPJIl/K0n8TzWOI1ddddVVV1111f86VK666qqrrrrqqv8V7rvvvlt5pu3tba666l8iif8MkvjPJIkXhST+M0ni30MS/1dIAmCaJu5333333cpVV1111VVXXfW/AcFVV1111VVXXfW/zvb2Ng9kmxfENv9RbPPvZZv/SLb530oS/1NJ4l8iif9IknhBJPHCSOJfIon/CJJ4UUni/6qzZ88+g6uuuuqqq6666n8Dgquuuuqqq6666n+Fs2fPPoP/Irb517DNVf8zSOKFkcRzk8S/hyT+PSTxH0kS95PECyKJB5LEc5PEv5ck/rezDcA4jlx11VVXXXXVVf/rEFx11VVXXXXVVf8r3HfffbfyTDs7O/xHsM1V/zNI4t9KEv9ZJPGikgSAJF4UkviXSOK5SeK/myT+NSTxX8E2/5mmaeJ+9913361cddVVV1111VX/GxBcddVVV1111VX/K5w9e/ZWnml7e5vnZpv/aWzz/4EkXhBJ/GtJ4vmRxP0k8T+dJAAkASAJAEn8SyTxopDEv4Yk/q+zzb+Fbf41zp49eytXXXXVVVddddX/BgRXXXXVVVddddX/eba56n8nSfx7SeK5SeK5SeIFkcR/N0m8MJL415LEA0niuUniP4IkXhS2+feyzb+GbV4Uy+WSq6666qqrrrrqfx2Cq6666qqrrrrqf4X77rvvVp5pZ2eH/2y2eX5sc9X/X5L4zySJ/wiSuJ8k/jNI4n8y27wobPNvcd99993KVVddddVVV131vwHBVVddddVVV131v8Z99913K//BbHPV/z2S+LeSxH81Sbwgknhukvi/zDb/EWxjGwDbPJBtbPMvsc39pmniqquuuuqqq676X4fgqquuuuqqq676X+Ps2bO3Amxvb/P82Oa/i23+PWxz1f8ekviPIIn/apJ4YSTxP4Ft/qPYBsA2trHNv8d99913K1ddddVVV1111f8WBFddddVVV1111f9KOzs7/GvY5n8K27wobPN/iST+O0niuUni30MSAJL415DEv0QSLwpJ/HtI4t9KEv+ZbPPfyTb3m6aJ+509e/ZWrrrqqquuuuqq/y0Irrrqqquuuuqq/zXuu+++W3mm7e1trrpKEveTxH8kSfxrSQJAEs+PJP49JPHCSOJ+krifJP49JPHfxTb/E0zTxP3uu+++W7nqqquuuuqqq/63ILjqqquuuuqqq/7XuO+++27lX2Cbfy3bPD+2eX5s86KyzVX/u0ni30oSAJJ4UUniqudkG9vY5r+KbR5oHEeuuuqqq6666qr/lQiuuuqqq6666qr/lba3t/nXss3/drb5l9jmfzpJ/FtJ4kUliReFJP4nk8Rzk8S/lSReGEn8T2Ub2/xnss0Lc999993KVVddddVVV131vwXBVVddddVVV131v8bZs2efwTNtb2/zP41t/j+QxP9mkvi3kMR/Jkn8W0ni30MS/9ls8x/JNrb5j2ab52ccR+539uzZZ3DVVVddddVVV/1vQXDVVVddddVVV/2vcd99993Ki8A2V/33kMS/liT+JZL4ryCJf4kk/iNJ4r+CJP4zSOK/k21s8+9lG9u8INM0cdVVV1111VVX/a9EcNVVV1111VVX/a9044038h/JNs+Pba76ryOJ+0nifzJJ/GeTxHOTxAsjiftJ4j+KJP4ns41tbPOvYRvbvDC2eaD77rvvVq666qqrrrrqqv8tqFx11VVXXXXVVf9rnD179lYewDaS+NewjST+vWwjiX8r20jiqv94knhRSOI/giT+LSRx1X8O27yoJPHC2EYS0zRxv7Nnz97KVVddddVVV131vwXBVVddddVVV131v9LOzg4vjG3+p7DNi8I2V/3nkMS/hiT+tSQBIInnRxIAkviXSOJFIYl/K0n8V7HN/0a2ud80Tdzvvvvuu5Wrrrrqqquuuup/C4Krrrrqqquuuup/jfvuu+9Wrnoetrnqfx5JAEjiP4Ik/jNJ4oEk8f+Zba666qqrrrrqqv8TCK666qqrrrrqqv9V7rvvvlsBtre3AbDNv5Ztnh/bPD+2eVHZ5j+Sba76l0niP4Mk/itJ4j+TJK564Wxjm+c2TRMA9913361cddVVV1111VX/mxBcddVVV1111VX/q5w9e/ZWnml7e5sXxjZXXfUvkcT/BZK4nyTuJ4n/Trb538A2tvmXnD179lauuuqqq6666qr/TahcddVVV1111VX/a73Xe70XV1111f99trHN/wT33XffrVx11VVXXXXVVf+bEFx11VVXXXXVVf+r3Hfffbdy1VVXXXXVVVddddVVV131oqEcP36cq6666qqrrrrqf49bb731bw4PD3df/MVf/LW56qqrrvov9Fu/9Vvf/fVf//Xvw1VXXXXVVVdd9b8JetCDHsRVV1111VVXXfW/yzXXXPNg25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLbPnj37DK666qqrrrrqqv9t0IMe9CCuuuqqq6666qqrrrrqqquuuuqqq6666qr/k6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1X8I5uPj6O5UA4YAAAAAElFTkSuQmCC) +![Rendered example of hollow 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEgI0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/lWuuuebBAGfOnHnwNddc8+AzZ848iGe65pprHgxwzTXXPJgHOHPmzIN5gLNnz9565syZBwOcPXv2Vp7pvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj1763333XcrV1111VVXXXXVVVf9b4Ee9KAHcdVVV1111VVXXXXV/xzXXHPNg8+cOfPgF3uxF3stgGuuuebB11xzzYNf7MVe7LV5AXZ3d3mgixcvArC7u8uL4vjx49zvxIkT2ObEiRO8IPfdd9+tZ8+evfW+++67FeAf/uEffue+++679ezZs7fed999t3LVVVddddVVV1111f8U6EEPehBXXXXVVVddddVVV/3Xu+aaax585syZB7/Yi73Ya11zzTUPvuaaax78Yi/2Yq/NA+zu7gLw9Kc/nYsXLwKwu7vL7u4uABcvXmR3d5f/TMePHwfg+PHjHD9+nBMnTnD8+HEATpw4wUMe8hAe6L777rsV4B/+4R9++x/+4R9+57777rv17Nmzt9533323ctVVV1111VVXXXXVfzX0oAc9iKuuuuqqq6666qqr/nNdc801Dz5z5syDX+zFXuy1XvzFX/y1X+zFXuy1eYDd3V2e/vSnc/HiRXZ3d9nd3eXpT38695PEfwXbvKhsc7/jx49z4sQJjh8/zokTJzh+/DgnTpzgIQ95CPe77777bj179uyt9913362/9Vu/9T3/8A//8NtcddVVV1111VVXXfWfDT3oQQ/iqquuuuqqq6666qr/WNdcc82DX/u1X/u9AN7pnd7ps3mm3d1dAP7yL/8SgFtvvZWnP/3pPJAk/qexzb/ENs/t+PHjADzkIQ/hIQ95CCdOnOAhD3kI97vvvvtu/Yd/+Iff/od/+Iffue+++279h3/4h9/mqquuuuqqq6666qr/SOhBD3oQV1111VVXXXXVVVf9+1xzzTUPfu3Xfu33Anind3qnz+aZLl68yF/91V8BcOutt/L0pz+dB5LEv4Yk/jPY5l/DNi+MbZ4f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Nv8S29jmRWEb27wobGObF5VtbPOvYRvb2OZFZRvb2OZfyza2sY1t/q1sYxvb2MY2/5FsYxvb2MY2trnqP59tbGMb2/xnso1t/iPY5t/DNi+q5XLJ+fPnAThz5syDXuzFXuy1ueqqq6666qqr/rMRXHXVVVddddVV/+le7MVe7LV4prNnz/KC2OZFYZsXhW1s8y+xjW1eFLaxzYvCNraxzYvCNraxzb+GbWzzr2Eb29jGNv9atrGNbWzz72Eb29jGNv8ZbGMb29jGNraxjW2u+texjW1sYxvb/GezjW1s8x/BNrb597DNv9b58+e534u92Iu9FlddddVVV1111X82gquuuuqqq6666j/di73Yi702z3T27FleGNvY5l9iG9u8KGxjm3+JbWzzorCNbV5UtrHNi8o2tvnXsI1tbPOvZRvb2Obfwja2sc2/l21sYxvb2OY/m21sYxvb2MY2trHN/1e2sY1tbGMb2/xXso1t/iPZ5t/LNv8W586d436v8zqv895cddVVV1111VX/2ahcddVVV1111VX/6a655poH80yHh4cASOKFsQ2AJF4Y2wBI4l9iGwBJvDC2uZ8kXhjb3E8S/xLbAEjiRWGb+0niRWWb+0niX8M295PEv5ZtHkgS/162eW6S+K9imxeVJP63sM3/RLb5z2Cb/wi2+bdaLpfc75prrnkwV1111VVXXXXVfzaCq6666qqrrrrqP9XrvM7rvDfPdOutt3I/29jmX2Ib2/xLbGObF4VtbPOisI1tXhS2sc2Lwja2sc2Lyja2+deyjW1s869lG9vY5t/KNraxjW3+o9jGNraxjW1s89/NNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sc3/NLaxzX8G2/xHsM2/lW2Ojo44f/4893uxF3ux1+aqq6666qqrrvrPRHDVVVddddVVV/2nerEXe7HX4pnOnj3Lc7PNi8I2tvmX2MY2Lwrb2OZFYRvbvChsY5sXlW1s86KyjW1s869lG9vY5l/LNraxjW3+rWxjG9vYxjb/kWxjG9vYxja2uep/JtvYxjb/GWxjm/8Itvm3ss39zp07x/1e7MVe7LW46qqrrrrqqqv+MxFcddVVV1111VX/qa655poH80yHh4c8P7axzYvCNi8K29jmRWEb27wo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bUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPY9tmzZ5/BVVddddVVV131vw160IMexFVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Slauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/in8EYiGPo75wV0EAAAAASUVORK5CYII=) diff --git a/docs/kcl-std/functions/std-solid-patternLinear3d.md b/docs/kcl-std/functions/std-solid-patternLinear3d.md index ffa7958e6..30729e43e 100644 --- a/docs/kcl-std/functions/std-solid-patternLinear3d.md +++ b/docs/kcl-std/functions/std-solid-patternLinear3d.md @@ -102,7 +102,7 @@ patternLinear3d( ``` -![Rendered example of patternLinear3d 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD96UlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV/2fd8011zyYZzpz5syDr7nmmgfzTGfOnHkQD3DNNdc8mH+j++6771ae6ezZs8/gme67775bAc6ePXsrwH333XcrV131/9Q111zzYIAzZ848GOCaa655MM905syZB/EA11xzzYN50QgwD3Dffffdevbs2WecOXPmQWfPnn0Gz3TffffdCnD27NlbAe67775bueqqq6666qqr/i+jctVVV1111VVX/a90zTXXPBjgzJkzD36xF3ux1wK45pprHnzNNdc8GODMmTMPvuaaax7Mf4ALFy7wQCdPnuTf67777rsV4OzZs7fed999twLcd999t549e/YZ9913361nz5699b777ruVq676X+Kaa6558JkzZx58zTXXPPjMmTMPArjmmmsefM011zz4zJkzD77mmmsezH+ACxcucL+TJ0/yH+G+++67FeDs2bO3Atx3333PuO+++55+9uzZZwDcd999t549e/bW++6771auuuqqq6666qr/bdCDHvQgrrrqqquuuuqq/3muueaaB585c+bB11xzzYMBXuzFXuy1rrnmmgefOXPmwddcc82DeQEuXLgAwMWLF7lw4QIAFy5cAODixYsAXLhwgftdvHgRgAsXLvDvdfLkSR7oxIkTAJw8eZL7nThxgpMnTwJw8uRJTpw4wcmTJ3lB7rvvvlvPnj1763333Xfrfffdd+vZs2efcd999936D//wD7/NVVf9F7rmmmseDPBiL/Zir33mzJkHXXPNNQ8GeJ3XeZ335gW4cOECABcuXADgwoULXLhwAYALFy4AcOHCBe534cIFAC5cuMCLyjbPz8mTJ3mgkydPAnDy5EkATp48CcCpU6cAOHnyJCdPngTg5MmTvCD33XffrWfPnr31vvvuuxXQP/zDP/z2fffdd+vZs2dvve+++27lqquuuuqqq676nwY96EEP4qqrrrrqqquu+u9zzTXXPPjFXuzFXvvMmTMPuuaaax58zTXXPPjFXuzFXpvn48KFC1y8eJELFy5w4cIFAJ761KcCcPHiRS5cuMD/VidPngTgxIkTnDx5EoCHPexhnDx5EoCHPexhPLf77rvv1rNnz95633333foP//APv3Pffffd+g//8A+/zVVX/Ttdc801D36xF3ux1z5z5syDXvzFX/y1X+zFXuy1eT4uXLjAhQsXeMpTngLAhQsXuHDhAhcuXODChQv8d7PNv9XJkycBOHnyJCdPnuTkyZOcOnWKkydPcvLkSU6ePMlzu++++26VpL//+7//LYB/+Id/+J377rvv1n/4h3/4ba666qqrrrrqqv8u6EEPehBXXXXVVVddddV/vmuuuebBZ86cefCLvdiLvdY111zz4GuuuebBL/ZiL/baPJcLFy7w1Kc+lQsXLnDx4kUuXLjAU5/6VK6CkydPcuLECU6ePMnDHvYwTp48ycMe9jAe6L777rsV4B/+4R9++x/+4R9+57777rv1H/7hH36bq656Aa655poHv/Zrv/Z7Abz4i7/4a7/Yi73Ya/MAFy5c4MKFCzzlKU8B4KlPfSoXLlzgwoUL/GvY5n8a2/x7nDx5kpMnT3Ly5Eke8YhHAHDy5Eke/vCH80Bnz559hm3/wz/8w2//wz/8w+/cd999t549e/bW++6771auuuqqq6666qr/bOhBD3oQV1111VVXXXXVf6xrrrnmwWfOnHnwi73Yi73Wi7/4i7/2i73Yi702z+XChQs89alP5eLFizz1qU/lqU99Klf925w4cYKTJ09y4sQJHvawh3Hy5Eke9rCHcb/77rvv1rNnz97693//97/9D//wD7/zD//wD7/NVf9vXXPNNQ9+7dd+7fd68Rd/8dd+sRd7sdfmAS5cuMBTnvIULly4wFOf+lSe8pSn8F/FNv+T2Obf4+TJk5w8eZKTJ0/yiEc8gpMnT/Lwhz+cB7rvvvtuPXv27K333Xffrb/1W7/1Pf/wD//w21x11VVXXXXVVf/R0IMe9CCuuuqqq6666qp/n2uuuebBr/3ar/1eAO/0Tu/02TzAhQsXuHjxIk996lMBeOpTn8pTn/pUrvrPdeLECU6ePMmJEyd4hVd4BR72sIdxv/vuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv81V/2ddc801D37t137t93rxF3/x136xF3ux1+aZLly4wIULF3jqU5/KU57yFJ761Kdim/+pbPM/iW3+LU6ePMnDH/5wHvGIR3Dy5Eke/vCHc7+zZ88+w7b/4R/+4bf/4R/+4Xfuu+++W//hH/7ht7nqqquuuuqqq/490IMe9CCuuuqqq6666qp/nWuuuebBr/3ar/1eL/7iL/7aL/ZiL/baPMCFCxf48z//cwD+7M/+jIsXL3LV/wwnTpzgYQ97GA972MN4hVd4Be5333333foP//APv/0P//APv/Nbv/Vb381V/+u92Iu92Gu/2Iu92Gu90zu902fzTBcuXODChQs89alP5SlPeQpPfepT+bewzf9Etvmfwjb/GidPnuThD384j3jEIzh58iQPf/jDud/Zs2ef8fd///e/9Q//8A+/c9999936D//wD7/NVVddddVVV131r4Ee9KAHcdVVV1111VVXvXDXXHPNg1/7tV/7vQDe6Z3e6bN5pgsXLgDw53/+5zz1qU/lqU99Klf973DixAkAXuEVXoGHPexhPOxhDwPgvvvuu/Uf/uEffvsf/uEffue3fuu3vpur/td4x3d8x88CeKd3eqfP5pkuXLjAn/3Zn/GUpzyFpz71qfxXsc3/NLb572abF8XJkyc5efIkD3/4w3nEIx7Bwx/+cO5333333foP//APv/MP//APv/0P//APv33ffffdylVXXXXVVVdd9cKgBz3oQVx11VVXXXXVVc/rmmuuefBrv/Zrv9eLv/iLv/aLvdiLvTbPdOHCBf78z/+cpz71qTz1qU/lv4Mk/i+xzX+3EydO8LCHPYxXeIVX4GEPexgA9913363/8A//8Nu/9Vu/9T3/8A//8Ntc9T/ONddc8+DXfu3Xfq93eqd3+mye6cKFC/zZn/0Zv/Irv8L/VLb5n8Q2/91s84KcPHmSkydP8vCHP5xHPOIRPPzhD+d+9913363/8A//8Nu/9Vu/9T3/8A//8NtcddVVV1111VXPDT3oQQ/iqquuuuqqq6664sVe7MVe+8Ve7MVe653e6Z0+m2e6cOECf/7nf87TnvY0nvrUp3LV/33Hjx/nYQ97GK/wCq/Awx72MADuu+++W3/rt37ru3/7t3/7e+67775bueq/zTXXXPPg137t136v13md13nva6655sEAFy5c4M/+7M/41V/9VV5Utvmfyjb/U9jmv5ttHujkyZM8/OEP5xGPeAQnT57k4Q9/OAD33Xffrf/wD//w2//wD//wO7/1W7/13Vx11VVXXXXVVQDoQQ96EFddddVVV131/9mLvdiLvfaLvdiLvdY7vdM7fTbPdPHiRf7sz/6MP//zP+fixYtc9f/XiRMnePmXf3le4RVegRMnTnDffffd+g//8A+//Vu/9Vvf8w//8A+/zVX/Za655poHv+M7vuNnvc7rvM57A1y4cIE/+7M/41d/9Vf5z2Kb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Ng8kCds8kCRs80CSsM0DScI2DyQJ2zyQJGzzQJKwzQNJwjYPJAnbPJAkbPNAkrDNVf/zHTt2DID77rvvVq666qqrrvqfjspVV1111VX/4/3Wb/3W9wC8zuu8zntz1VVX/Z/wIz/yI5/9D//wD7/N/xO//du//T0A7/RO7/TZXHXVVf8n/NZv/dZ3/+iP/ujncNVVV1111f906EEPehBXXXXVVVf9z3fNNdc8mP8kti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUn33Xffrfw/c8011zwYwLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYlCeC+++67lauuuuqqq/43QA960IO46qqrrrrqqquuuuqqq6666qqrrrrqqqv+T6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r+IfAdCwJMO1SDrVAAAAAElFTkSuQmCC) +![Rendered example of patternLinear3d 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAD+BUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV/2fd8011zyYZzpz5syDr7nmmgfzTGfOnHkQD3DNNdc8mH+j++6771ae6ezZs8/gme67775bAc6ePXsrwH333XcrV131/9Q111zzYIAzZ848GOCaa655MM905syZB/EA11xzzYN50QgwD3Dffffdevbs2WecOXPmQWfPnn0Gz3TffffdCnD27NlbAe67775bueqqq6666qqr/i+jctVVV1111VVX/a90zTXXPBjgzJkzD36xF3ux1wK45pprHnzNNdc8GODMmTMPvuaaax7Mf4ALFy7wQCdPnuTf67777rsV4OzZs7fed999twLcd999t549e/YZ9913361nz5699b777ruVq676X+Kaa6558JkzZx58zTXXPPjMmTMPArjmmmsefM011zz4zJkzD77mmmsezH+ACxcucL+TJ0/yH+G+++67FeDs2bO3Atx3333PuO+++55+9uzZZwDcd999t549e/bW++6771auuuqqq6666qr/bdCDHvQgrrrqqquuuuqq/3muueaaB585c+bB11xzzYMBXuzFXuy1rrnmmgefOXPmwddcc82DeQEuXLgAwMWLF7lw4QIAFy5cAODixYsAXLhwgftdvHiR+124cIF/j5MnT/JAJ06cAODkyZPc78SJE5w8eRKAkydPcuLECU6ePMkLct9999169uzZW++7775b77vvvlvPnj37jPvuu+/Wf/iHf/htrrrqv9A111zzYIAXe7EXe+0zZ8486JprrnkwwOu8zuu8Ny/AhQsXALhw4QIAFy5c4MKFCwBcuHABgAsXLnC/CxcuAHDhwgVeVLZ5fk6ePMkDnTx5EoCTJ08CcPLkSQBOnToFwMmTJwE4efIkJ0+e5AW57777bj179uyt9913362A/uEf/uG377vvvlvPnj1763333XcrV1111VVXXXXV/zToQQ96EFddddVVV1111X+fa6655sEv9mIv9tpnzpx50DXXXPPga6655sEv9mIv9to8HxcuXODixYtcuHCBCxcuAPDUpz4VgKc+9an8b3by5EkATpw4wcmTJwF42MMexsmTJwF42MMexnO77777bj179uyt9913363/8A//8Dv33Xffrf/wD//w21x11b/TNddc8+AXe7EXe+0zZ8486MVf/MVf+8Ve7MVem+fjwoULXLhwgac85SkAXLhwgQsXLnDh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Nv/dbPPfyTb/VidPnuQVX/EVefjDH87DH/5w7rvvvlv/4R/+4bd/67d+63v+4R/+4be56qqrrrrqqv8b0IMe9CCuuuqqq6666n+7a6655sHv+I7v+Fmv8zqv894AFy9e5Nd+7df48z//c6666r/aQx/6UN7pnd6JEydOcN999936WZ/1Wa9z33333cpVz+Oaa6558Id/+Id/14u92Iu99sWLF/mRH/kRnvrUp3I/2/xvYpv/KWzz3802/11s86/xiq/4irziK74iD3/4wwE4e/bsM77u677uvf/hH/7ht7nqqquuuuqq/93Qgx70IK666qqrrrrqf7PP/dzP/a0Xe7EXe22AX/u1X+PP//zPuXjxIv8dJHHVfz/b/Hc7ceIEL//yL88bvMEbcN999936W7/1W9/9oz/6o5/DVc/yOq/zOu/94R/+4d8F8Od//uf8yI/8CP9WtvnfwDb/E9jmv5tt/jvY5oU5efIkr/iKr8gbv/EbA3Dffffd+vVf//Xv8w//8A+/zVVXXXXVVVf974Qe9KAHcdVVV1111VX/21xzzTUP/vAP//DverEXe7HXBvi1X/s1/vzP/5yLFy/ygkjiqqv+o9jmRfHQhz6UD/7gDwbgR37kRz77R3/0Rz+Hq/jwD//w73qd13md97548SI/8iM/wlOf+lT+s9nmfzLb/E9gm/9OtvnvYJsHOnnyJK/4iq/IG7/xG3PffffdCvD1X//17/MP//APv81VV1111VVX/e+CHvSgB3HVVVddddVV/1tcc801D37Hd3zHz3qd13md9wb4tV/7Nf7iL/6CixcvctVV/1OdOHGCD/qgD+LEiRPcd999t37Ih3zIQ/h/7HM/93N/68Ve7MVe++LFi3zTN30TFy9e5H8K2/xPZZv/brb572Kb/w4nTpzgFV/xFXnjN35jAH7rt37ru3/0R3/0c+67775bueqqq6666qr/HdCDHvQgrrrqqquuuup/g3d8x3f8rHd6p3f6bICnPe1p/OiP/igXL17kqqv+Nzhx4gTv+I7vyEMf+lDuu+++Wz/rsz7rde67775b+X/kmmuuefCHf/iHf9eLvdiLvfZTn/pUvuVbvoUHss3/dLb5n8g2/91s89/BNv8VTp48yRu90Rvxiq/4itx33323/tZv/dZ3/+iP/ujncNVVV1111VX/86EHPehBXHXVVVddddX/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cP311/P/SURgG9vY5n62ecYznsHtt9/OH/7hH3LLLbdw8803I4nHPvax7OzsAPBiL/Zi3G9vb49Lly6xt7fH/fb29gDY29vjfjs7OzzQzs4OOzs7ANx88828IAcHBxwcHHDPPffw5Cc/mf39fWyTmdxPErZ5UUji38I2/xGOHz8OwIULF/i/4ty5cwAcP36cF5UkXhjb/HtI4kV11113cffddyOJ7e1tbrjhBq6//noe8YhHcOzYMY4dOwbAS7zES3C/S5cuAXDp0iUuXboEwKVLl7jfpUuXADh27BgPdOzYMY4dOwbALbfcwgty6dIl/uZv/oaLFy/yV3/1V7TWyEwAbPNAtrHNxYsXeVFI4rnZ5j+DJJ6bbf69SilIAkASkrifJO4nCQBJPNDR0RHL5ZLz588DsLGxwenTpzl9+jSLxYIzZ85w7NgxXuqlXoqXeqmX4oF2d3cBuHTpEru7uwDs7u5yv93dXQCOHz/OAx0/fpxjx44B8OAHP5gX5OLFi/zlX/4lv/Zrv0ZrjczkfraZpulWrrrqqquuuuoFo3LVVVddddVVL0RmYpv72Qbg4sWLXLp0ib/7u7/jxIkTHDt2jOPHj3PLLbews7PDzTffzM7ODgA7Ozv8ex0eHnJ0dMR9992HJM6dO8f58+eRREQQEUQEAJIAkASAJCQhCUkASEISknhukvj/KDOJCO5nm+d26dIl/uEf/oHHPe5xRAR/8id/wk033cTOzg47Ozvs7Oxw4403srOzw87ODv9eh4eHHBwccO+99wJw7733cs8992AbgMzENi+MJCQhied26dIl/j0k8a9lmxdEEhcuXOCq508SL4ht/j0k8YIcHBzw5Cc/mac85Sn8/u//Ptvb21x33XUAXH/99WxtbXHttddy7NgxAI4dO8a/197eHpcuXeK2227jtttu4xnPeAaZSWaSmdjmudkGwDYAp06d4o477uDfShLPj23+o0niudnmX6OUwnOTxP0kcT9JAEgCQBKSkMT9jo6OuO2223jGM56BbTY2NrDN6dOnOXPmDBsbGwBsbm5y/PhxAI4fP86pU6fY2tri3+rSpUvceuut7O7u8vSnP52nPe1ptNbITGwDYBvb2MY24zj+NlddddVVV131glG56qqrrrrqqhdiGIbftv3atrENgG0eaHd3l729Pe644w4e97jHIQlJHD9+nJ2d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ADh79uwz+H/m5ptv5v3f//256oWzDYAkbPNAkrDNA0nCNg8kCds8kCRs80CSsM0DScI2DyQJ2zyQJGzzQJKwzQNJwjYPJAnbPJAkbHPV/3zHjh0D4L777ruVq6666qqr/qejctVVV1111f94v/Vbv/U9AK/zOq/z3lx11VX/J/zIj/zIZ//DP/zDb/P/xG//9m9/D8A7vdM7fTZXXXXV/wm/9Vu/9d0/+qM/+jlcddVVV131Px160IMexFVXXXXVVf/zXXPNNQ/mP4ltSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1L0n333Xcr/89cc801DwawbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUkCuO+++27lqquuuuqq/w3Qgx70IK666qqrrrrqqquuuuqqq6666qqrrrrqqv+TqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+r+EdmfC4RM5oR1gAAAABJRU5ErkJggg==) ```kcl // Pattern an object on a face. @@ -130,6 +130,6 @@ patternLinear3d( ``` -![Rendered example of patternLinear3d 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADQY0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV/2Pd8011zyYZzpz5syDeaZrrrnmwTzTmTNnHsS/4Jprrnkwz3Tffffdygtw9uzZZ/Bc7rvvvlt5prNnz94KcN99993KVVddddVVV1111VX/k1G56qqrrrrqqquuuuq/zDXXXPNggDNnzjz4mmuuefCZM2cexDNdc801D77mmmseDHDmzJkHX3PNNQ/mf4n77rvvVoCzZ8/eCnDffffdCnDffffdevbs2WcA3HfffbcC/MM//MNvc9VVV1111VVXXXXVfxX0oAc9iKuuuuqqq6666qqr/v2uueaaB585c+bB11xzzYPPnDnzIIBrrrnmwddcc82Dz5w58+BrrrnmwfwrXbhwAYALFy4AcOHCBe534cIFHujixYs8PxcuXOCFOXnyJM/PiRMnuN/Jkyd5oJMnTwJw8uRJAE6ePMm/xn333XcrwNmzZ2+97777bgX4h3/4h98BuO+++249e/bsrffdd9+tXHXVVVddddVVV13174Ue9KAHcdVVV1111VVXXXXVv+yaa655MMCLvdiLvfaZM2ceBPDiL/7ir33mzJkHX3PNNQ/mX3DhwgUALly4wMWLF7lw4QIAFy5c4MKFCwBcvHiRCxcu8L+RbU6ePAnAyZMnATh58iQAJ06c4OTJk5w8eRKAkydPcvLkSV6Y++6771aAs2fP3nrffffd+g//8A+/A3Dffffd+g//8A+/zVVXXXXVVVddddVVLwr0oAc9iKuuuuqqq6666qqrnu2aa6558JkzZx78Yi/2Yq8F8OIv/uKv/WIv9mKvzQtx4cIFAJ761Kdy4cIFAJ7ylKcA8NSnPpWrnr+TJ08C8LCHPQyAhz/84QCcOHGCkydPcvLkSV6Q++6779azZ8/eet999936D//wD79z33333foP//APv81VV1111VVXXXXVVQ+EHvSgB3HVVVddddVVV131/9U111zz4Nd+7dd+L4AXf/EXf+0Xe7EXe21egAsXLnDhwgWe+tSnAvCUpzyFixcvcuHCBa76z3Hy5EkATpw4wcmTJ3n4wx/OiRMnAHj4wx/O83Pffffdevbs2Vvvu+++W//hH/7hd+67775b/+Ef/uG3ueqqq6666qqrrvr/CT3oQQ/iqquuuuqqq6666v+Da6655sGv/dqv/V4AL/7iL/7aL/ZiL/baPB8XLlzgqU99KhcuXOApT3kKFy9e5MKFC1z1P8vJkycBeNjDHgbAwx/+cE6cOMHDH/5wntt99913K8A//MM//PY//MM//M5999136z/8wz/8NlddddVVV1111VX/96EHPehBXHXVVVddddVVV/1fc8011zz4xV7sxV77zJkzD3rxF3/x136xF3ux1+a5XLhwgYsXL/KUpzyFixcvcuHCBZ761Kfyv5Ftrnq2kydP8rCHPYyHP/zhnDhxgpMnT3Ly5Eke6L777rsV4B/+4R9++x/+4R9+57777rv1H/7hH36bq6666qqrrrrqqv9b0IMe9CCuuuqqq6666qqr/re75pprHvzar/3a7wXwTu/0Tp/Nc7lw4QIXL17kKU95Ck996lN56lOfylX/9Wzz3+XkyZOcOHGChz/84TzsYQ/j4Q9/OM/tvvvuu/Uf/uEffvsf/uEffue+++679R/+4R9+m6uuuuqqq6666qr/3dCDHvQgrrrqqquuuuqqq/63ueaaax782q/92u/14i/+4q/9Yi/2Yq/Nc7lw4QJ/9md/BsCv/uqvctX/D7b51zh58iQPe9jDePjDH86JEyd4+MMfzgPdd999t/7DP/zDb//DP/zD79x33323/sM//MNvc9VVV1111VVXXfW/C3rQgx7EVVddddVVV1111f9011xzzYNf7MVe7LXPnDnzoHd6p3f6bJ7LhQsX+LM/+zOe+tSn8tSnPpWrrvq3OHnyJCdOnOBhD3sYD3/4w3nYwx7GA9133323/sM//MNv/8M//MPv/NZv/dZ3c9VVV1111VVXXfU/H3rQgx7EVVddddVVV1111f9E11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5gAsXLvBnf/ZnPPWpT+WpT30qV131n+HkyZOcOHGChz3sYTz84Q/nYQ97GPe77777bgX4rd/6re/+h3/4h9/5h3/4h9/mqquuuuqqq6666n8e9KAHPYirrrrqqquuuuqq/ymuueaaB7/2a7/2e73O67zOe19zzTUP5pkuXLjAn//5nwPwq7/6q1z1H8s2V/3LTp48ycMe9jAe9rCH8Qqv8Ao80H333XfrP/zDP/z2b/3Wb33PP/zDP/w2V1111VVXXXXVVf8zoAc96EFcddVVV1111VVX/Xe65pprHvzar/3a7/VO7/ROn80DXLhwgT//8z/nqU99Kk996lO56v8u2/xvdPLkSV7+5V+ehz/84TzsYQ/jfvfdd9+t//AP//Dbv/Vbv/U9//AP//DbXHXVVVddddVVV/33QQ960IO46qqrrrrqqquu+q92zTXXPPi1X/u13+ud3umdPpsHuHDhAn/+53/Or/7qr3LVVf8RbPNf4eTJkzzsYQ/jFV7hFXjYwx7G/e67775b/+Ef/uG3f+u3fut7/uEf/uG3ueqqq6666qqrrvqvhR70oAdx1VVXXXXVVVdd9V/hmmuuefBrv/Zrv9frvM7rvPc111zzYJ7pwoUL/Pmf/zm/+qu/ylVX/U9lmxfVyZMnedjDHsYrvMIr8LCHPYz73Xfffbf+1m/91nf/9m//9vfcd999t3LVVVddddVVV131nw896EEP4qqrrrrqqquuuuo/0zXXXPPgd3zHd/ys13md13lvnunChQv8+Z//OX/2Z3/GxYsXueqq/6tOnDjBK7zCK/Cwhz2Mhz3sYQDcd999t/7DP/zDb//DP/zD7/zWb/3Wd3PVVVddddVVV131nwc96EEP4qqrrrrqqquuuuo/2jXXXPPg137t136vd3qnd/psnunChQv8+Z//OX/2Z3/GxYsX+beSxFX/fra56r/WiRMneIVXeAXe8A3fkPvdd999t/7Wb/3Wd//2b//299x33323ctVVV1111VVXXfUfCz3oQQ/iqquuuuqqq6666j/KNddc8+DXfu3Xfq93eqd3+mye6eLFi/zZn/0Zv/Zrv8ZVVz2Qbf4/OnHiBA972MN4hVd4BR72sIcBcN999936W7/1W9/9D//wD7/zD//wD7/NVVddddVVV1111X8M9KAHPYirrrrqqquuuuqqf68Xe7EXe+13eqd3+qwXe7EXe22e6Vd/9Vf58z//cy5evMhVV/1Xs83/BidOnOAVXuEVeMM3fEPud9999936oz/6o5/zW7/1W9/NVVddddVVV1111b8PetCDHsRVV1111VVXXXXVv9U7vuM7ftbrvM7rvPc111zzYICLFy/yZ3/2Z/zar/0aV131f4Ft/iucOHGCV3iFV+DlX/7lOXnyJAD33Xffrb/1W7/13T/6oz/6OVx11VVXXXXVVVf926AHPehBXHXVVVddddVVV/1rveM7vuNnvc7rvM57X3PNNQ8GuHjxIn/2Z3/Gr/3ar3HVVVc9m23+NU6cOMHDHvYw3vAN35CTJ08CcN999936W7/1W9/9oz/6o5/DVVddddVVV1111b8OetCDHsRVV1111VVXXXXVi+rFXuzFXvvDP/zDv+uaa655MMDFixf5sz/7M37t136Nfy9JXPU/i22u+u9x/PhxHvawh/EKr/AKPOxhDwPgvvvuu/VHf/RHP+e3fuu3vpurrrrqqquuuuqqFw160IMexFVXXXXVVVddddW/5Jprrnnwh3/4h3/Xi73Yi702wMWLF/nzP/9zfu3Xfo2rrvqPZJurntPLv/zL84Zv+IacOHECgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq1449KAHPYirrrrqqquuuuqqF+Saa6558Gu/9mu/1zu90zt9NsDFixf58z//c37t136Nq67638I2/9udOHGChz3sYbzhG74hJ06cAOC3fuu3vvtHf/RHP+e+++67lauuuuqqq6666qrnDz3oQQ/iqquuuuqqq6666vl5x3d8x896p3d6p8/mmX7t136NX/u1X+Oqq/4/ss3/BCdOnODlX/7lecM3fEMA7rvvvlt/+7d/+3t+5Ed+5LO56qqrrrrqqquuel7oQQ96EFddddVVV1111VUPdM011zz4wz/8w7/rxV7sxV4b4KlPfSo/+qM/ysWLF7nqqqv+9WzzH+3EiRO8/Mu/PG/4hm8IwH333XfrZ33WZ73OfffddytXXXXVVVddddVVz4Ye9KAHcdVVV1111VVXXXW/d3zHd/ysd3qn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V1111VXPD3rQgx7EVVddddVVV131vF7ndV7nvT/8wz/8uwC+6qu+in8tSfxfs7Ozw0033cTOzg433XQTN910Ew+0t7cHwJ133sne3h77+/scHBywt7fHwcEBAJKQBIAkACQhCUlIQhKSkIQkJLG1tYUktra2uO666wC47rrrOHPmDM/P3t4ej3vc4wD4kz/5E/4/sM1V/zo7OzvcdNNN3HTTTezs7HDTTTfx3Pb399nf32d/f5+7776b/f19AA4ODtjf3+cFkYQkJCEJSUhCEpKQxNbWFtvb22xtbbG5ucnW1habm5tcc8013G9vb4+dnR329vb4h3/4B+644w7uuOMO/qPY5n8q2/xL3vEd35Gbb76Zz/qsz3qdv//7v/9trrrqqquuuuqq50blqquuuuqqq656vl7sxV7stQD+6I/+iAeSxP9Xe3t7PO5xj+N+Ozs73HTTTdx0000APPaxjwVgZ2eH52d/f5/77e/vAyAJ20jifpIA2NraYmtrixdkb28PgL29Pfb29rjjjju44447uPPOO/n/SBL/FWzzf8Xe3h6Pe9zjeNzjHgfAzs4OOzs77OzscNNNN7Gzs8POzg433HADAI961KN4bvv7+wDs7+8jCdsASAJAEraRBMDW1hZbW1u8MHt7e+zt7XH77bezt7fH4x73OP6zSOIFsc1/J0k8P7a53+23387NN9/Ma7/2a7/X3//93/82V1111VVXXXXVc0MPetCDuOqqq6666qqrntdP/MRPGOA7v/M72dvb4/8bSfxb7OzsAHDjjTdy0003AbCzs8POzg47Ozv8a+3t7QGwt7cHwB133AHA/v4+ly5d4s477+Sq/31s87/Fzs4OADfddBMAN910EwA7Ozvs7Oyws7PDi2pvb4+dnR329vYA2NvbY29vj9tvv52dnR3uuOMO7rjjDv6ns83/FDs7O7z/+78/Z8+efcYHf/AHP5irrrrqqquuuuq5Ubnqqquuuuqqq57H67zO67w3wOMe9zj29vb430wS/5X29vYA2Nvb4/GPfzzPz87ODv+Svb09rvq/SxL/Vrb5r7S3twfA4x73OAAe97jH8fzs7OzwL9nb2+NfIokHss3/NJJ4QWzzX2lvb4/bb7+dm2+++UGv8zqv896/9Vu/9d1cddVVV1111VUPROWqq6666qqrrnoer/M6r/NeAHfccQf/k0ji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V1111f9T9913360AOzs7/FvZxja2+e9kG9vYxjb/09nGNraxjW1sY5urrvrvZhvb2MY2trGNbf4ns41tbGMb2/x3sI1tbGOb/wq2sY1tbPP83Hfffbdy1VVXXXXVVf8/Ubnqqquuuuqq/6fuu+++WwG2t7f5j2CbB5LEfxfbPD+S+J/ONi+MJK666t/DNv/b2eZ/Ctv8d7DNi2J7exuA++6771auuuqqq6666v8nKlddddVVV131/9z29jb/GWzz3CTx38k2z00S/5vY5l8iiav+f7LN/zW2+Z/ENv9dbPOvtbOzA8DZs2efwVVXXXXVVVf9/0Tlqquuuuqqq/6f+od/+IffAdje3ua/im0eSBL/3Wzz3CTxv5ltXlSSuOp/Ptv8X2eb/4ls89/FNlddddVVV1111b8blauuuuqqq676f25nZwfbAEjiv5JtHkgS/xPY5vmRxP81tvnXksRV/za2uQps8z+Vbf472eY/0o033gjAP/zDP/w2V1111VVXXfX/E5Wrrrrqqquu+n/q7Nmzt/JcbHM/SfxXs81zk8T/FLZ5fiTx/4lt/qNJ4n8i21z1b2Ob/+ls89/NNlddddVVV1111X8qKlddddVVV131/9R99913K8D29jbPj20eSBL/HWzzQJL4n8Y2L4gkrvqX2eaq/51s87+Fbf672ea/0vb2NgD33XffrVx11VVXXXXV/08EV1111VVXXfX/2H333XcrwM7ODv8S29jGNrb572Ib29jGNrb5n8w2trGNbWxjG9tcddX/FraxjW1sYxvb2OZ/KtvYxja2sc1/F9vYxjb/VWyztbUFwH333XcrV1111VVXXfX/F8FVV1111VVX/T929uzZWwG2t7f517KNbWxjm/9OtrGNbWxjm/8NbGMb29jGNraxzVVX/VeyjW1sYxvb2MY2tvmfzja2sY1tbPPfyTa2sY1t/qvYxja2AdjZ2QHg7Nmzt3LVVVddddVV/39Rueqqq6666qqr2N7e5t/LNg8kif9Otnlukvjfwjb/EklcddWLwjb/V9jmfxrb/HewzQuzvb0NwH333XcrV1111VVXXfX/F8FVV1111VVX/T/293//978NsL29zX8029jGNrb5n8A2trGNbWzzv5ltbGMb29jGNraxjW1sc9X/XbaxjW1sYxvb2MY2trHN/1a2sY1tbGOb/wlsYxvb2Oa/km1sY5t/yc7ODlddddVVV111FVSuuuqqq6666qr/ErZ5IEn8T2Cb50cS/1fY5kUliav+e9nm/xvb/E9mm/8utvm32t7eBuAf/uEffoerrrrqqquu+v+L4Kqrrrrqqqv+H/uHf/iH3wG48cYb+a9mG9vYxja2+Z/ENraxjW1sY5v/62xjG9vYxja2sY1tbGMb29jGNraxjW2uAtvYxja2sY1tbGMb29jGNraxjW1sY5v/y2xjG9vYxja2+Z/ENraxjW1s81/NNraxzVVXXXXVVVdd9e9G5aqrrrrqqquuusw295PEfwfbPJAk/qexzfMjiavANlddZZv/LWzz3802/xluvPFGAO67775bueqqq6666qr/v6hcddVVV1111f9jZ8+evRVgZ2eHB7LNA0niv4Ntnpsk/ieyzQsiiauu+r/INv+b2OZ/Ctv8Vzl79uytXHXVVVddddX/X1Suuuqqq6666v+x++6771aA7e1tXhjbPJAk/rvY5rlJ4n8y27wgkrjqqv+pbPO/lW3+J7HNf7WdnR0A7rvvvlu56qqrrrrqqv+/CK666qqrrrrq/7n77rvvVoDt7W1eVLaxjW1s89/NNraxjW1s87+FbWxjG9vYxja2sc1VV/1nso1tbGMb29jGNrb538I2trGNbWzz3802trGNbf6r2eaqq6666qqrrrqM4Kqrrrrqqqv+nzt79uytADs7O/xb2cY2trHN/wS2sY1tbGOb/41sYxvb2MY2trGNbWxz1VUviG1sYxvb2MY2trHN/0a2sY1tbGOb/wlsYxvb2Oa/g21sY5sbb7wRgH/4h3/4ba666qqrrrrq/zcqV1111VVXXXXVfzjbPJAk/iewzXOTxP92tnlRSOKq//1s8/+Fbf6nss1/N9u8IDs7OwDcd999t3LVVVddddVV/78RXHXVVVddddX/c3//93//2wA33ngj/1lsYxvb2OZ/EtvYxja2sY1t/i+yjW1sYxvb2MY2trGNbWxjG9tc9Z/PNraxjW1sYxvb2MY2trGNbf4vso1tbGMb29jmfwrb2MY2trHNfxfb2MY2V1111VVXXXXVi4TKVVddddVVV131X842z00S/5PY5vmRxP8ntvmPIIn/a2xz1b+Obf43sM3/FLb5t9je3gbgvvvuu5Wrrrrqqquu+v+NylVXXXXVVVf9P3f27NlnANx44438d7LNA0nifyLbvCCSuOr5s81V/3/Y5n8L2/xPY5t/r52dHQDOnj37DK666qqrrrrq/zcqV1111VVXXfX/3H333Xcrz2QbAEn8d7PNc5PE/2S2eUEkcdVV/5fY5n8j2/xPY5v/aDs7OwDcd999t3LVVVddddVV/79Rueqqq6666qr/586ePXsrwPb2NvezzQNJ4n8C2zw3SfxvYJsXRBJXXfU/jW3+t7PN/0S2+c+2vb0NwNmzZ2/lqquuuuqqq/5/o3LVVVddddVVV/2LbPNAkvifwjbPTRL/m9jmhZHEVVf9R7PN/yW2+Z/KNv/VdnZ2ALjvvvtu5aqrrrrqqqv+f6Ny1VVXXXXVVf/P3XfffbcC7OzssLOzw97eHv8S2zyQJP4nsc1zk8T/VrZ5UUjiqqsAbPN/mW3+J7PNfyfbXHXVVVddddVVz0Jw1VVXXXXVVVfx93//978NsL29zb+FbWxjG9v8T2Qb29jGNraxzf8ltrGNbWxjG9vYxja2sc1V/zvZxja2sY1tbGMb29jGNrb5v8I2trGNbWxjm/9pbGMb29jmv5ptbGMb29x4440AnD179hlcddVVV1111VVUrrrqqquuuuqq/3C2eSBJ/E9lm+dHEv9X2ebfQhJX/cewzVXPZpv/TWzz3802L8jOzg4Af//3f//bXHXVVVddddVVVK666qqrrrrqKs6ePXsrwM7ODnfeeSf/0Wzz3CTxP5ltnh9J/H9lm/9okvifzjZX/cewzf9GtvnvZpurrrrqqquuuurfhMpVV1111VVXXcV99913K8D29jb/VWzzQJL438A2z48krvrXs81V//fY5n8r2/xPYZt/i52dHQDuu+++p3PVVVddddVVV1G56qqrrrrqqqs4e/bsrQA7Ozv8d7HNc5PE/xa2eUEkcdVV/9fY5n872/xPYpv/CDs7OwCcPXv2GVx11VVXXXXVVVSuuuqqq6666iruu+++WwG2t7exzf0k8d/JNs9NEv/b2OaFkcRVV/1PY5v/a2zzP4lt/jNsb29z1VVXXXXVVVc9C5Wrrrrqqquuuor77rvvVoCdnR0eyDYPJIn/brZ5bpL438w2L4wkrrrqP5pt/i+zzf80tvmvsLOzA8A//MM//DZXXXXVVVdddRWVq6666qqrrrrqRWabB5LE/wS2eW6S+L/CNi8KSVx1lW3+P7HN/1S2+e+ws7PDVVddddVVV131LFSuuuqqq6666irOnj37DICdnR3+NWzzQJL4n8I2z48k/q+yzYtKElf972Gbq8A2/5PZ5r+bbe5333333cpVV1111VVXXUVw1VVXXXXVVVdddt99990KcOONN/JvZRvb2MY2tvmfxja2sY1tbGOb/29sYxvb2MY2trGNbWxjG9vYxja2uerfxza2sY1tbGMb29jGNraxjW1sY5v/b2xjG9vYxja2+Z/GNraxjW3+O9jGNraxzc7ODgD33XffrVx11VVXXXXVVQBUrrrqqquuuuqqy86ePXvrNddc82D+g9nmgSTxP5Ftnh9JXPVstvnPIon/CWxz1X8N2/xvYZv/KWzzgtx0000AnD179lauuuqqq6666ioAgquuuuqqq6666rL77rvvVoCdnR3+M9nGNraxjW3+J7ONbWxjG9vY5qr/eLaxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trHNVf/xbGMb29jGNrb5n8w2trGNbf472cY2trHNi+K+++67lauuuuqqq666CoDKVVddddVVV1112X333XcrwM7ODv/VbPNAkvifzjYviCSuuur/G9v8b2Wb/0ls82+1vb0NwH333XcrV1111VVXXXUVAJWrrrrqqquuuuo5bG9v89/NNs9NEv9b2OYFkcRVV/1vZZv/7WzzP41t/qPs7OwAcPbs2Wdw1VVXXXXVVVcBULnqqquuuuqqqy77h3/4h98B2NnZwTYPJIn/brZ5bpL438Y2L4wkrrrqv4tt/i+xzf9Etrnqqquuuuqqq/7LULnqqquuuuqqq57Dzs4Oz802DySJ/wls8/xI4n8r2/xLJHHVVf9atvm/zDb/U9nmv8pNN90EwD/8wz/8NlddddVVV111FQCVq6666qqrrrrqsrNnz97Ki8g2DySJ/0ls89wk8X+FbV5Ukrjq/zbb/H9im//pbHPVVVddddVVV/2PQeWqq6666qqrrrrsvvvuuxVgZ2eHfy3bPJAk/qexzfMjif/LbPOvIYmr/vvY5qpns83/Brb5n8A2Ozs7ANx33323ctVVV1111VVXAVC56qqrrrrqqque5b777rv1mmuuefDOzg57e3v8W9nmuUnifyLbPD+S+P/INv9ekvj/yDZX/dvY5n8L2/xPYZsH2tnZAeC+++67lauuuuqqq6666n5UrrrqqquuuuqqZzl79uyt11xzzYN3dnbY29vjP5JtHkgS/5PZ5vmRxFUvnG2uuuq52eZ/I9v8T2KbF2RnZweAs2fP3spVV1111VVXXXU/KlddddVVV1111fPY2dnhP5ttnpsk/qezzQsiiauu+v/ONv9b2eZ/Gtu8qHZ2dgC47777buWqq6666qqrrrofwVVXXXXVVVdd9Sx///d//9sA29vb/HewjW1sYxvb/G9iG9vYxja2sY1tbHPVVf8X2MY2trGNbWxjG9v8b2Eb29jGNrb5n8A2trGNbf41dnZ2uOqqq6666qqrngeVq6666qqrrrrqfzTbPDdJ/G9kmxdGEldd9d/NNv/X2OZ/Ktv8R9nZ2QHgH/7hH36Hq6666qqrrrrqfgRXXXXVVVddddWz/MM//MPvANx0003Yxja2sc3/JLaxjW1sY5v/C2xjG9vYxja2sY1tbHPVVf8etrGNbWxjG9vYxja2+d/ONraxjW1s8z+JbWxjG9tcddVVV1111VX/6ahcddVVV1111VUvEts8kCT+J7HN8yOJ/0ts86KQxFX/f9jm/yPb/E9nm/8qN910EwD33XffrVx11VVXXXXVVfejctVVV1111VVXPcvZs2dvBdjZ2eFfYpvnJon/aWzz/Eji/zLb/GtI4qr/OWxz1bPZ5n8D2/xPcPbs2Vu56qqrrrrqqqvuR+Wqq6666qqrrnqW++6771aAnZ0d/i1s80CS+J/KNs+PJP4/ss2/lySuAttc9W9jm/9NbPM/hW12dnYAuO+++27lqquuuuqqq666H5Wrrrrqqquuuuo53Hfffbdec801D97Z2WFvb49/D9s8N0n8T2ab50cSV71wtrnqqn+Jbf43ss3/NLa56qqrrrrqqqv+RQRXXXXVVVddddVzOHv27K0AOzs7/GewjW1sY5v/LWxjG9vYxja2sc1VV131vGxjG9vYxja2+d/CNraxjW3+J7CNbWxjmwe66aabAPiHf/iH3+aqq6666qqrrnogKlddddVVV1111X8r2zw3SfxvYpsXRBJXXfV/kW3+r7DN/0S2eVHt7OwAcN99993KVVddddVVV131QARXXXXVVVddddVz+Pu///vfBrjpppv472Ib29jGNrb538o2trGNbWxjG9vY5qqr/qeyjW1sYxvb2MY2tvnfyja2sY1tbPM/hW1sYxvbXHXVVVddddVV/yGoXHXVVVddddVVz5dt/iexzfMjif/NbPMvkcRVV/1Hs83/dbb5n8w2/1F2dnYAuO+++27lqquuuuqqq656IIKrrrrqqquuuuo5nD179hkAN998M7axjW1s8z+RbWxjG9vY5v8a29jGNraxjW1sYxvb2OaqqwBsYxvb2MY2trGNbWxjm/9LbGMb29jGNrb5n8Y2trGNbf4jHTt2DICzZ88+g6uuuuqqq6666oGoXHXVVVddddVVz+G+++67lRfANg8kif+JbPP8SOL/Mtv8a0jiqv/5bHPVFbb538I2/5W2t7cBuO+++27lqquuuuqqq656ICpXXXXVVVddddVzOHv27K0AOzs7/Ets89wk8T+VbZ4fSfx/ZJt/D0lc9S+zzVX/Orb538Y2/52OHTsGwNmzZ2/lqquuuuqqq656ICpXXXXVVVddddV/KNs8N0n8T2ab50cSV71gtrnqqn8P2/xvZJv/aXZ2dgC47777buWqq6666qqrrnoggquuuuqqq6666jncd999t95333237uzssLOzw38E29jGNrb538I2trGNbWxjG9tcddVVLxrb2MY2trGNbWzzv4VtbGMb2/xPYBvb2MY2V1111VVXXXXVC0Rw1VVXXXXVVVc9j7Nnz94KsLOzw38G29jGNraxzf82trGNbWxjG9vYxjZXXfX/iW1sYxvb2MY2tvnfxja2sY1tbPM/gW1sYxvbPNBNN90EwH333XcrV1111VVXXXXVc6Ny1VVXXXXVVVf9j2Cb5yaJ/61s84JI4qqr/jexzf9FtvmfyjYvqmPHjgHwD//wD7/NVVddddVVV1313Aiuuuqqq6666qrncd99990KsLOzw38n29jGNraxjW3+t7ONbWxjG9vYxja2sc1VV/1Xso1tbGMb29jGNrb5v8A2trGNbWzzP4ltbGMb21x11VVXXXXVVf9hqFx11VVXXXXVVc/jvvvuuxVgZ2eH/4ls89wk8X+JbV4UkrjqqhfENv/f2OZ/A9v8R9nZ2QHgvvvuu5Wrrrrqqquuuuq5Ubnqqquuuuqqq57H2bNnnwGws7ODbR5IEv8T2eb5kcT/ZbZ5UUniqv/9bHPVFbb538I2/1l2dnYAOHv27DO46qqrrrrqqqueG5Wrrrrqqquuuup53HfffbcC7Ozs8Nxs80CS+J/MNs+PJP6/sc2/lSSu+o9jm6tedLb538Q2/5V2dna46qqrrrrqqqteICpXXXXVVVddddXzOHv27K0Ax44d419im+cmif/pbPP8SOKq52Wb/yyS+J/INlf917HN/1a2+e907NgxAP7hH/7ht7nqqquuuuqqq54blauuuuqqq6666j+cbZ6bJP43sM0LIomr/uPZ5qr/P2zzv5lt/qfZ2dnhqquuuuqqq656gahcddVVV1111VXP47777rsVYGdnh/8otnlukvjfxDYviCSuuuqqK2zzf4Ft/qeyzXO77777buWqq6666qqrrnpuBFddddVVV1111fN133333Qpw00038Z/FNraxjW1s87+VbWxjG9vYxja2sc1VV/1fYhvb2MY2trGNbWzzv5FtbGMb29jmfxLb2MY2trnfzs4OAGfPnn0GV1111VVXXXXV80Nw1VVXXXXVVVc9X/fdd9+t/DewjW1sYxvb/F9gG9vYxja2sY1tbHPVVf+T2MY2trGNbWxjG9v8b2cb29jGNrb5n8Y2trGNbV6Qm2++GYD77rvvVq666qqrrrrqqueH4Kqrrrrqqquuer7Onj17K8CxY8f472Yb29jGNrb5v8Y2trGNbWxjG9vYxja2ueqqfw/b2MY2trGNbWxjG9vY5v8S29jGNraxzf9EtrGNbWzzr3XffffdylVXXXXVVVdd9fxQueqqq6666qqrnq/77rvvVoCdnR3+J7LN8yOJ/8ts86KQxFX/P9jmKrDN/ya2+Y+ws7MDwH333fd0rrrqqquuuuqq54fKVVddddVVV131fJ09e/ZWgJ2dHWzzQJL4n8o2z48k/j+xzb+FJK7672Obq1442/xvY5v/LMeOHQPg7Nmzz+Cqq6666qqrrnp+qFx11VVXXXXVVc/XfffddyvAzs4Oz802DySJ/+ls8/xI4qpns81/BEn8f2Gbq/7j2eZ/K9tcddVVV1111VX/Y1C56qqrrrrqqqteqGPHjvEvsc1zk8T/BrZ5QSRx1b+Nba666kVhm//NbPPf6eabbwbgH/7hH36bq6666qqrrrrq+aFy1VVXXXXVVVc9X/fdd9+t/DvY5rlJ4n8T27wgkrjqqqteNLb5v8A2V1111VVXXXXV/zpUrrrqqquuuuqq5+vs2bPPANjZ2eE/im2emyT+N7LNCyKJq676/8Q2/9fY5n8y2wDs7OwAcN99993KVVddddVVV131/BBcddVVV1111VUv0H333XcrwM7ODv9ZbGMb29jGNv/b2cY2trGNbWxjG9vY5qqr/jexjW1sYxvb2MY2tvnfzja2sY1tbPM/jW1sYxvbAOzs7ABw33333cpVV1111VVXXfWCEFx11VVXXXXVVS/Q2bNnbwU4duwY/5VsYxvb2MY2/9fYxja2sY1tbGMb29jmqqv+K9jGNraxjW1sYxvb2Ob/EtvYxja2sc3/RLaxjW1s8/wcO3YMgLNnz97KVVddddVVV131glC56qqrrrrqqqv+RTs7O/x3s83zI4n/q2zzopDEVVc9N9v8f2ab/01s86+1s7MDwH333XcrV1111VVXXXXVC0Jw1VVXXXXVVVe9QH//93//2wA7Ozv8T2Ub29jGNraxzf8ntrGNbWxjG9vYxja2sY1tbHPV/062sY1tbGMb29jGNraxjW1s8/+JbWxjG9vY5n8y29jGNraxzb/FsWPHuOqqq6666qqr/kVUrrrqqquuuuqqF4lt7ieJ/+ls8/xI4v872/x7SOKqfz3bXPXvY5v/jWzzn2FnZweAf/iHf/gdrrrqqquuuuqqF4TKVVddddVVV131Av3DP/zD7wDcfPPNPJBtnpsk/jewzfMjiateNLb57ySJfwvbXPU/n23+N7PNVVddddVVV131PwqVq6666qqrrrrqRfJiL/Zi/GtI4v8KSVx11VX/cWzzf4Vt/rvcfPPNANx33323ctVVV1111VVXvSBUrrrqqquuuuqqF+js2bO3/sM//MNvv9iLvdhr33zzzVx11VVXXfU/y2/91m9999mzZ2/lqquuuuqqq656QdCDHvQgrrrqqquuuuqqF+yaa6558Du+4zt+FlddddVVV/2P86M/+qOfc999993KVVddddVVV131gqAHPehBXHXVVVddddVVV1111VVXXXXVVVddddVV/ydRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9V/CNZ1lgMnNOdoQAAAABJRU5ErkJggg==) +![Rendered example of patternLinear3d 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADQYklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV/2Pd8011zyYZzpz5syDeaZrrrnmwTzTmTNnHsS/4Jprrnkwz3Tffffdygtw9uzZZ/Bc7rvvvlt5prNnz94KcN99993KVVddddVVV1111VX/k1G56qqrrrrqqquuuuq/zDXXXPNggDNnzjz4mmuuefCZM2cexDNdc801D77mmmseDHDmzJkHX3PNNQ/mf4n77rvvVoCzZ8/eCnDffffdCnDffffdevbs2WcA3HfffbcC/MM//MNvc9VVV1111VVXXXXVfxX0oAc9iKuuuuqqq6666qqr/v2uueaaB585c+bB11xzzYPPnDnzIIBrrrnmwddcc82Dz5w58+BrrrnmwfwrXLhwgftduHABgAsXLnC/Cxcu8EAXL17k+blw4QIvzMmTJ3lBTpw4wf1OnjzJ/U6ePMn9Tp48ycmTJ/nXuO+++24FOHv27K333XffrQD/8A//8DsA9913361nz5699b777ruVq6666qqrrrrqqqv+vdCDHvQgrrrqqquuuuqqq676l11zzTUPBnixF3ux1z5z5syDAF78xV/8tc+cOfPga6655sH8Cy5cuADAhQsXuHjxIhcuXADgwoULXLhwAYCLFy9y4cIF/jeyzcmTJwE4efIkACdPngTgxIkTnDx5kpMnTwJw8uRJTp48yQtz33333Qpw9uzZW++7775b/+Ef/uF3AO67775b/+Ef/uG3ueqqq6666qqrrrrqRYEe9KAHcdVVV1111VVXXXXVs11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1eSEuXLjAhQsXuHjxIhcuXADgKU95CgBPfepTuer5O3nyJAAnTpzg5MmTnDx5kpMnT3LixAlOnjzJyZMneUHuu+++W8+ePXvrfffdd+s//MM//M5999136z/8wz/8NlddddVVV1111VVXPRB60IMexFVXXXXVVVddddX/V9dcc82DX/u1X/u9AF78xV/8tV/sxV7stXkBLly4wIULF3jqU58KwFOe8hQuXrzIhQsXuOo/x8mTJwE4ceIEJ0+e5OEPfzgnTpwA4OEPfzjPz3333Xfr2bNnb73vvvtu/Yd/+Iffue+++279h3/4h9/mqquuuuqqq6666v8n9KAHPYirrrrqqquuuuqq/w+uueaaB7/2a7/2ewG8+Iu/+Gu/2Iu92GvzfFy4cIGnPvWpXLhwgac85SlcvHiRCxcucNX/LCdPngTgYQ97GAAPf/jDOXHiBA9/+MN5bvfdd9+tAP/wD//w2//wD//wO/fdd9+t//AP//DbXHXVVVddddVVV/3fhx70oAdx1VVXXXXVVVdd9X/NNddc8+AXe7EXe+0zZ8486MVf/MVf+8Ve7MVem+dy4cIFLl68yFOe8hQuXrzIU5/6VC5cuMD/Rra56tlOnjzJwx72ME6ePMnDHvYwTp48ycmTJ3mg++6771aAf/iHf/jtf/iHf/id++6779Z/+Id/+G2uuuqqq6666qqr/m9BD3rQg7jqqquuuuqqq6763+6aa6558Gu/9mu/F8A7vdM7fTbP5cKFC1y8eJGnPOUpPPWpT+WpT30qV/3Xs81/l5MnT3LixAlOnjzJwx/+cF7hFV6B53bffffd+g//8A+//Q//8A+/c9999936D//wD7/NVVddddVVV1111f9u6EEPehBXXXXVVVddddVV/9tcc801D37t137t93rxF3/x136xF3ux1+a5XLhwgT/7sz8D4Fd/9Ve56v8H2/xrnDx5koc97GE8/OEP58SJEzz84Q/nge67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4be56qqrrrrqqquu+t8FPehBD+Kqq6666qqrrrrqf7prrrnmwS/2Yi/22mfOnHnQO73TO302z+XChQv82Z/9GU996lN56lOfylVX/VucPHmSEydO8LCHPYyHP/zhPOxhD+OB7rvvvlv/4R/+4bf/4R/+4Xd+67d+67u56qqrrrrqqquu+p8PPehBD+Kqq6666qqrrrrqf6Jrrrnmwa/92q/9Xi/+4i/+2i/2Yi/22jzAhQsX+LM/+zOe+tSn8tSnPpWrrvrPcPLkSU6cOMHDHvYwHv7wh/Owhz2M+9133323AvzWb/3Wd//DP/zD7/zDP/zDb3PVVVddddVVV131Pw960IMexFVXXXXVVVddddX/FNdcc82DX/u1X/u9Xud1Xue9r7nmmgfzTBcuXODP//zPAfjVX/1VrvqPZZur/mUnT57kYQ97GA972MN4hVd4BR7ovvvuu/Uf/uEffvu3fuu3vucf/uEffpurrrrqqquuuuqq/xnQgx70IK666qqrrrrqqqv+O11zzTUPfu3Xfu33eqd3eqfP5gEuXLjAn//5n/PUpz6Vpz71qVz1f5dt/jc6efIkL//yL8/DH/5wHvawh3G/++6779Z/+Id/+O3f+q3f+p5/+Id/+G2uuuqqq6666qqr/vugBz3oQVx11VVXXXXVVVf9V7vmmmse/Nqv/drv9U7v9E6fzQNcuHCBP//zP+dXf/VXueqq/wi2+a9w8uRJHvawh/EKr/AKPOxhD+N+9913363/8A//8Nu/9Vu/9T3/8A//8NtcddVVV1111VVX/ddCD3rQg7jqqquuuuqqq676r3DNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3ThwgX+/M//nF/91V/lqqv+p7LNi+rkyZM87GEP4xVe4RV42MMexv3uu+++W3/rt37ru3/7t3/7e+67775bueqqq6666qqrrvrPhx70oAdx1VVXXXXVVVdd9Z/pmmuuefA7vuM7ftbrvM7rvDfPdOHCBf78z/+cX/3VX+Wqq/4vO3HiBK/wCq/Awx72MB72sIcBcN999936D//wD7/9D//wD7/zW7/1W9/NVVddddVVV1111X8e9KAHPYirrrrqqquuuuqq/2jXXHPNg1/7tV/7vd7pnd7ps3mmCxcu8Od//uf82Z/9GRcvXuTfShJX/fvZ5qr/WidOnOAVXuEVeMM3fEPud9999936W7/1W9/927/9299z33333cpVV1111VVXXXXVfyz0oAc9iKuuuuqqq6666qr/KNdcc82DX/u1X/u93umd3umzeaaLFy/yZ3/2Z/zar/0aV131QLb5/+jEiRM87GEP4xVe4RV42MMeBsB9991362/91m999z/8wz/8zj/8wz/8NlddddVVV1111VX/MdCDHvQgrrrqqquuuuqqq/69XuzFXuy13+md3umzXuzFXuy1eaZf/dVf5c///M+5ePEiV131X802/xucOHGCV3iFV+AN3/ANud99991364/+6I9+zm/91m99N1ddddVVV1111VX/PuhBD3oQV1111VVXXXXVVf9W7/iO7/hZr/M6r/Pe11xzzYMBLl68yJ/92Z/xa7/2a1x11f8FtvmvcOLECV7hFV6Bl3/5l+fkyZMA3Hfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVdd9W+DHvSgB3HVVVddddVVV131r/WO7/iOn/U6r/M6733NNdc8GODixYv82Z/9Gb/2a7/GVVdd9Wy2+dc4ceIED3vYw3iFV3gFHvawhwFw33333fpbv/Vb3/2jP/qjn8NVV1111VVXXXXVvw560IMexFVXXXXVVVddddWL6sVe7MVe+8M//MO/65prrnkwwMWLF/nVX/1V/vzP/5x/L0lc9T+Lba7672Gbl3/5l+cVXuEVeNjDHgbAfffdd+uP/uiPfs5v/dZvfTdXXXXVVVddddVVLxr0oAc9iKuuuuqqq6666qp/yTXXXPPgD//wD/+uF3uxF3ttgIsXL/Jrv/Zr/Pmf/zlXXfUfyTZXPaeXf/mX5w3f8A05ceIEAPfdd9+tX//1X/8+//AP//DbXHXVVVddddVVV71w6EEPehBXXXXVVVddddVVL8g111zz4Nd+7dd+r3d6p3f6bICLFy/y53/+5/zar/0aV131v4Vt/rc7ceIEL//yL88rvMIrcOLECQB+67d+67t/9Ed/9HPuu+++W7nqqquuuuqqq656/tCDHvQgrrrqqquuuuqqq56fd3zHd/ysd3qnd/psnunXfu3X+LVf+zWuuur/I9v8T3DixAle/uVfnjd8wzcE4L777rv1t3/7t7/nR37kRz6bq6666qqrrrrqqueFHvSgB3HVVVddddVVV131QNdcc82DP/zDP/y7XuzFXuy1AZ761KfyLd/yLVx11VX/Nrb5j3bixAle/uVfnjd8wzcE4L777rv1sz7rs17nvvvuu5WrrrrqqquuuuqqZ0MPetCDuOqqq6666qqrrrrfO77jO37WO73TO302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V1111VVXXfUsVK666qqrrrrqKs6ePfsMgJ2dHf41bPNAkvifwjbPjyT+r7LNi0oSV/3vYZurwDb/k9nmv5tt7nfffffdylVXXXXVVVddRXDVVVddddVVV11233333Qpw44038m9lG9vYxja2+Z/GNraxjW1sY5v/b2xjG9vYxja2sY1tbGMb29jGNra56t/HNraxjW1sYxvb2MY2trGNbWxjm/9vbGMb29jGNrb5n8Y2trGNbf472MY2trHNzs4OAPfdd9+tXHXVVVddddVVAFSuuuqqq6666qrLzp49e+s111zzYP6D2eaBJPE/kW2eH0lc9Wy2+c8iif8JbHPVfw3b/G9hm/8pbPOC3HTTTQCcPXv2Vq666qqrrrrqKgCCq6666qqrrrrqsvvuu+9WgJ2dHf4z2cY2trGNbf4ns41tbGMb29jmqv94trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sc1V//FsYxvb2MY2tvmfzDa2sY1t/jvZxja2sc2L4r777ruVq6666qqrrroKgMpVV1111VVXXXXZfffddyvAzs4O/9Vs80CS+J/ONi+IJK666v8b2/xvZZv/SWzzb7W9vQ3AfffddytXXXXVVVdddRUAlauuuuqqq6666jlsb2/z3802z00S/1vY5gWRxFVX/W9lm//tbPM/jW3+o+zs7ABw9uzZZ3DVVVddddVVVwFQueqqq6666qqrLvuHf/iH3wHY2dnBNg8kif9utnlukvjfxjYvjCSuuuq/i23+L7HN/0S2ueqqq6666qqr/stQueqqq6666qqrnsPOzg7PzTYPJIn/CWzz/Ejifyvb/EskcdVV/1q2+b/MNv9T2ea/yk033QTAP/zDP/w2V1111VVXXXUVAJWrrrrqqquuuuqys2fP3sqLyDYPJIn/SWzz3CTxf4VtXlSSuOr/Ntv8f2Kb/+lsc9VVV1111VVX/Y9B5aqrrrrqqquuuuy+++67FWBnZ4d/Lds8kCT+p7HN8yOJ/8ts868hiav++9jmqmezzf8GtvmfwDY7OzsA3Hfffbdy1VVXXXXVVVcBULnqqquuuuqqq57lvvvuu/Waa6558M7ODnt7e/xb2ea5SeJ/Its8P5L4/8g2/16S+P/INlf929jmfwvb/E9hmwfa2dkB4L777ruVq6666qqrrrrqflSuuuqqq6666qpnOXv27K3XXHPNg3d2dtjb2+M/km0eSBL/k9nm+ZHEVS+cba666rnZ5n8j2/xPYpsXZGdnB4CzZ8/eylVXXXXVVVdddT8qV1111VVXXXXV89jZ2eE/m22emyT+p7PNCyKJq676/842/1vZ5n8a27yodnZ2ALjvvvtu5aqrrrrqqquuuh/BVVddddVVV131LH//93//2wDb29v8d7CNbWxjG9v8b2Ib29jGNraxjW1sc9VV/xfYxja2sY1tbGMb2/xvYRvb2MY2tvmfwDa2sY1t/jV2dna46qqrrrrqqqueB5Wrrrrqqquuuup/NNs8N0n8b2SbF0YSV1313802/9fY5n8q2/xH2dnZAeAf/uEffoerrrrqqquuuup+BFddddVVV1111bP8wz/8w+8A3HTTTdjGNraxzf8ktrGNbWxjm/8LbGMb29jGNraxjW1sc9VV/x62sY1tbGMb29jGNrb53842trGNbWzzP4ltbGMb21x11VVXXXXVVf/pqFx11VVXXXXVVS8S2zyQJP4nsc3zI4n/S2zzopDEVf9/2Ob/I9v8T2eb/yo33XQTAPfdd9+tXHXVVVddddVV96Ny1VVXXXXVVVc9y9mzZ28F2NnZ4V9im+cmif9pbPP8SOL/Mtv8a0jiqv85bHPVs9nmfwPb/E9w9uzZW7nqqquuuuqqq+5H5aqrrrrqqquuepb77rvvVoCdnR3+LWzzQJL4n8o2z48k/j+yzb+XJK4C21z1b2Ob/01s8z+FbXZ2dgC47777buWqq6666qqrrroflauuuuqqq6666jncd999t15zzTUP3tnZYW9vj38P2zw3SfxPZpvnRxJXvXC2ueqqf4lt/jeyzf80trnqqquuuuqqq/5FBFddddVVV1111XM4e/bsrQA7Ozv8Z7CNbWxjm/8tbGMb29jGNraxzVVXXfW8bGMb29jGNrb538I2trGNbf4nsI1tbGObB7rpppsA+Id/+Iff5qqrrrrqqquueiAqV1111VVXXXXVfyvbPDdJ/G9imxdEEldd9X+Rbf6vsM3/RLZ5Ue3s7ABw33333cpVV1111VVXXfVABFddddVVV1111XP4+7//+98GuOmmm/jvYhvb2MY2tvnfyja2sY1tbGMb29jmqqv+p7KNbWxjG9vYxja2+d/KNraxjW1s8z+FbWxjG9tcddVVV1111VX/IahcddVVV1111VXPl23+J7HN8yOJ/81s8y+RxFVX/Uezzf91tvmfzDb/UXZ2dgC47777buWqq6666qqrrnoggquuuuqqq6666jmcPXv2GQA333wztrGNbWzzP5FtbGMb29jm/xrb2MY2trGNbWxjG9vY5qqrAGxjG9vYxja2sY1tbGOb/0tsYxvb2MY2tvmfxja2sY1t/iMdO3YMgLNnzz6Dq6666qqrrrrqgahcddVVV1111VXP4b777ruVF8A2DySJ/4ls8/xI4v8y2/xrSOKq//lsc9UVtvnfwjb/lba3twG47777buWqq6666qqrrnogKlddddVVV1111XM4e/bsrQA7Ozv8S2zz3CTxP5Vtnh9J/H9km38PSVz1L7PNVf86tvnfxjb/nY4dOwbA2bNnb+Wqq6666qqrrnogKlddddVVV1111X8o2zw3SfxPZpvnRxJXvWC2ueqqfw/b/G9km/9pdnZ2ALjvvvtu5aqrrrrqqquueiCCq6666qqrrrrqOdx333233nfffbfu7Oyws7PDfwTb2MY2tvnfwja2sY1tbGMb21x11VUvGtvYxja2sY1tbPO/hW1sYxvb/E9gG9vYxjZXXXXVVVddddULRHDVVVddddVVVz2Ps2fP3gqws7PDfwbb2MY2trHN/za2sY1tbGMb29jGNldd9f+JbWxjG9vYxja2+d/GNraxjW1s8z+BbWxjG9s80E033QTAfffddytXXXXVVVddddVzo3LVVVddddVVV/2PYJvnJon/rWzzgkjiqqv+N7HN/0W2+Z/KNi+qY8eOAfAP//APv81VV1111VVXXfXcCK666qqrrrrqqudx33333Qqws7PDfyfb2MY2trGNbf63s41tbGMb29jGNraxzVVX/VeyjW1sYxvb2MY2tvm/wDa2sY1tbPM/iW1sYxvbXHXVVVddddVV/2GoXHXVVVddddVVz+O+++67FWBnZ4f/iWzz3CTxf4ltXhSSuOqqF8Q2/9/Y5n8D2/xH2dnZAeC+++67lauuuuqqq6666rlRueqqq6666qqrnsfZs2efAbCzs4NtHkgS/xPZ5vmRxP9ltnlRSeKq//1sc9UVtvnfwjb/WXZ2dgA4e/bsM7jqqquuuuqqq54blauuuuqqq6666nncd999twLs7Ozw3GzzQJL4n8w2z48k/r+xzb+VJK76j2Obq150tvnfxDb/lXZ2drjqqquuuuqqq14gKlddddVVV1111fM4e/bsrQDHjh3jX2Kb5yaJ/+ls8/xI4qrnZZv/LJL4n8g2V/3Xsc3/Vrb573Ts2DEA/uEf/uG3ueqqq6666qqrnhuVq6666qqrrrrqP5xtnpsk/jewzQsiiav+49nmqv8/bPO/mW3+p9nZ2eGqq6666qqrrnqBqFx11VVXXXXVVc/jvvvuuxVgZ2eH/yi2eW6S+N/ENi+IJK666qorbPN/gW3+p7LNc7vvvvtu5aqrrrrqqquuem4EV1111VVXXXXV83XffffdCnDTTTfxn8U2trGNbWzzv5VtbGMb29jGNraxzVVX/V9iG9vYxja2sY1tbPO/kW1sYxvb2OZ/EtvYxja2ud/Ozg4AZ8+efQZXXXXVVVddddXzQ3DVVVddddVVVz1f99133638N7CNbWxjG9v8X2Ab29jGNraxjW1sc9VV/5PYxja2sY1tbGMb2/xvZxvb2MY2tvmfxja2sY1tXpCbb74ZgPvuu+9Wrrrqqquuuuqq54fgqquuuuqqq656vs6ePXsrwLFjx/jvZhvb2MY2tvm/xja2sY1tbGMb29jGNra56qp/D9vYxja2sY1tbGMb29jm/xLb2MY2trHN/0S2sY1tbPOvdd99993KVVddddVVV131/FC56qqrrrrqqquer/vuu+9WgJ2dHf4nss3zI4n/y2zzopDEVf8/2OYqsM3/Jrb5j7CzswPAfffd93Suuuqqq6666qrnh8pVV1111VVXXfV8nT179laAnZ0dbPNAkvifyjbPjyT+P7HNv4UkrvrvY5urXjjb/G9jm/8sx44dA+Ds2bPP4Kqrrrrqqquuen6oXHXVVVddddVVz9d99913K8DOzg7PzTYPJIn/6Wzz/EjiqmezzX8ESfx/YZur/uPZ5n8r21x11VVXXXXVVf9jULnqqquuuuqqq16oY8eO8S+xzXOTxP8GtnlBJHHVv41trrrqRWGb/81s89/p5ptvBuAf/uEffpurrrrqqquuuur5oXLVVVddddVVVz1f99133638O9jmuUnifxPbvCCSuOqqq140tvm/wDZXXXXVVVddddX/OlSuuuqqq6666qrn6+zZs88A2NnZ4T+KbZ6bJP43ss0LIomrrvr/xDb/19jmfzLbAOzs7ABw33333cpVV1111VVXXfX8EFx11VVXXXXVVS/QfffddyvAzs4O/1lsYxvb2MY2/9vZxja2sY1tbGMb29jmqqv+N7GNbWxjG9vYxja2+d/ONraxjW1s8z+NbWxjG9sA7OzsAHDffffdylVXXXXVVVdd9YIQXHXVVVddddVVL9DZs2dvBTh27Bj/lWxjG9vYxjb/19jGNraxjW1sYxvb2Oaqq/4r2MY2trGNbWxjG9vY5v8S29jGNraxzf9EtrGNbWzz/Bw7dgyAs2fP3spVV1111VVXXfWCULnqqquuuuqqq/5FOzs7/HezzfMjif+rbPOikMRVVz032/x/Zpv/TWzzr7WzswPAfffddytXXXXVVVddddULQnDVVVddddVVV71Af//3f//bADs7O/xPZRvb2MY2trHN/ye2sY1tbGMb29jGNraxjW1sc9X/TraxjW1sYxvb2MY2trGNbWzz/4ltbGMb29jmfzLb2MY2trHNv8WxY8e46qqrrrrqqqv+RVSuuuqqq6666qoXiW3uJ4n/6Wzz/Eji/zvb/HtI4qp/Pdtc9e9jm/+NbPOfYWdnB4B/+Id/+B2uuuqqq6666qoXhMpVV1111VVXXfUC/cM//MPvANx88808kG2emyT+N7DN8yOJq140tvnvJIl/C9tc9T+fbf43s81VV1111VVXXfU/CpWrrrrqqquuuupF8mIv9mL8a0ji/wpJXHXVVf9xbPN/hW3+u9x8880A3Hfffbdy1VVXXXXVVVe9IFSuuuqqq6666qoX6OzZs7f+wz/8w2+/2Iu92GvffPPNXHXVVVdd9T/Lb/3Wb3332bNnb+Wqq6666qqrrnpB0IMe9CCuuuqqq6666qoX7JprrnnwO77jO34WV1111VVX/Y/zoz/6o59z33333cpVV1111VVXXfWCoAc96EFcddVVV1111VVXXXXVVVddddVVV1111VX/J1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1X8IzN/Xoe7T52CAAAAAElFTkSuQmCC) diff --git a/docs/kcl-std/functions/std-solid-patternTransform.md b/docs/kcl-std/functions/std-solid-patternTransform.md index 1d0564b63..38fb0c277 100644 --- a/docs/kcl-std/functions/std-solid-patternTransform.md +++ b/docs/kcl-std/functions/std-solid-patternTransform.md @@ -144,7 +144,7 @@ myCubes = cube(length = width, center = [100, 0]) ``` -![Rendered example of patternTransform 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFMw0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV131v9bnfu7n/taLvdiLvTb/if7hH/7ht7/+67/+fe67775bueqqq6666qqrrrrqfxv0oAc9iKuuuuqqq6666qqr/vf5pm/6pqdfc801D/7RH/1RLl68yH+WD/qgD+K+++679UM+5EMewlVXXXXVVVddddVV/9tQueqqq6666qqrrrrqf6VrrrnmwQB/8Rd/wX+WEydOcNVVV1111VVXXXXV/2pUrrrqqquuuuqqq676X+2TP/mT+c92zTXXPPiaa6558H333XcrV1111VVXXXXVVVf9b0Llqquuuuqqq6666qr/1U6cOMF/tvvuu+9Wrrrqqquuuuqqq67634jKVVddddVVV1111VX/61xzzTUP5pkyk/9MEcE111zzYK666qqrrrrqqquu+t+IylVXXXXVVVddddVV/6vZ5oEk8R/FNlddddVVV1111VVX/a9G5aqrrrrqqquuuuqq/1Nsc9VVV1111VVXXXXVVc9E5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVV/2vZxjYvCkm8ILZ5QWwjiauuuuqqq6666qqr/leictVVV1111VVXXXXV/wu2ueqqq6666qqrrrrq/x0qV1111VVXXXXVVVf9r2YbAElcddVVV1111VVXXXXVc6Fy1VVXXXXVVVddddX/Cba56qqrrrrqqquuuuqq50Llqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VX/q9nmBZHEv4Vtrrrqqquuuuqqq676P4HKVVddddVVV1111VX/Z9nmqquuuuqqq6666qr/1wiuuuqqq6666qqrrvpfzTb/mSQBcN99993KVVddddVVV1111VX/21C56qqrrrrqqquuuup/nfvuu+9WAEkA2Oaqq6666qqrrrrqqqueDypXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrvpfzTbPjyT+PWxz1VVXXXXVVVddddX/elSuuuqqq6666qqrrvo/yTZXXXXVVVddddVVV/2/R3DVVVddddVVV1111f9qtrnqqquuuuqqq6666qoXgMpVV1111VVXXXXVVf/r2eaqq6666qqrrrrqqqueDypXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrvpfzTYviCT+LWxz1VVXXXXVVVddddX/CVSuuuqqq6666qqrrvo/yzZXXXXVVVddddVVV/2/RnDVVVddddVVV1111f9qtrnqqquuuuqqq6666qoXgMpVV1111VVXXXXVVf/r2eaqq6666qqrrrrqqqueDypXXXXVVVddddVVV/2v8bmf+7m/debMmQdz1VVXXXXVVVddddVVLxrK8ePHueqqq6666qqrrrrqf77P/dzP/a0Xe7EXe+3Nzc3jwzAcXywWAAzDwL9EEi8q2zxQ3/fc7x/+4R9+h6uuuuqqq6666qqr/jdBD3rQg7jqqquuuuqqq6666n++n/iJn/CTnvQkHvnIR/JArTX+M5VSALh48SLjON76W7/1W9/9oz/6o5/DVVddddVVV1111VX/GxBcddVVV1111VVXXfW/xh//8R/z1V/91Zw/f577lVIopVBKoZRCKYVSCqUUSimUUiilUEqhlEIphVIKpRRKKZRSKKVQSqGUQimFUgqlFEopAFy8eBGAa6655sHv9E7v9Nkf/uEf/l1cddVVV1111VVXXfW/AcFVV1111VVXXXXVVf+rPPnJT+ZrvuZr+IVf+AX+q5w4cYITJ05wvxd7sRd77dd5ndd5b6666qqrrrrqqquu+p+OylVXXXXVVVddddVV/+ucP3+eX/zFX+RP/uRPeKVXeiXe7M3ejH/JOI7czzbjOHK/YRgAGMeRBxqGgfsNwwDAtddeyzXXXPNgrrrqqquuuuqqq67634DKVVddddVVV1111VX/a50/f54/+ZM/4c3e7M0AuPXWWwEYhgGAcRx5fmzzr2Gb+w3DwObmJlddddVVV1111VVX/a9A5aqrrrrqqquuuuqq/xPGceTw8JCrrrrqqquuuuqqq656AIKrrrrqqquuuuqqq/5Xsc2/lyT+NSRx1VVXXXXVVVddddX/SlSuuuqqq6666qqrrrrqqquuuuqqq6666qr/qwiuuuqqq6666qqrrrrqRSCJq6666qqrrrrqqqv+16Fy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Vw1VVXXXXVVVddddX/S5L415LEVVddddVVV1111VX/q1C56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rgqquuuuqqq6666qr/Fe67775b+Q8miX+tvu8BuO+++27lqquuuuqqq6666qr/6ahcddVVV1111VVXXfW/xqlTp7jqqquuuuqqq6666qp/BYKrrrrqqquuuuqqq/7PkMS/liSuuuqqq6666qqrrvo/i8pVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq/5XO3/+PABd13HVVVddddVVV1111VXPheCqq6666qqrrrrqqv/3JHHVVVddddVVV1111f9JVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rCK666qqrrrrqqquuugqQxFVXXXXVVVddddVV/+cQXHXVVVddddVVV131v8KP/uiPfs4rv/Ir84hHPIL/LJK46qqrrrrqqquuuur/FIKrrrrqqquuuuqqq/5X+Id/+Iffbq3d+jEf8zG86Zu+KS+IJK666qqrrrrqqquuuuqZCK666qqrrrrqqquu+l/hvvvuu/WzPuuzXudHfuRHPvvN3uzN+NzP/VxOnTrFfzRJXHXVVVddddVVV131fwaVq6666qqrrrrqqqv+x7rmmmseDHDmzJkHX3PNNQ8+c+bMg3imU6dO8VEf9VH88R//MS9I13U8UN/3AHRdB0DXdTxQ3/cAdF3H/bquA6Dve+5333333cpVV1111VVXXXXVVf8boAc96EFcddVVV1111VVXXfU/0+d+7uf+1ou92Iu9NsDFixcBuHjxIhcvXuTixYucOHGCl3u5l+N+4zgC0HUd/5m+/uu//n1+67d+67u56qqrrrrqqquuuup/OvSgBz2Iq6666qqrrrrqqqv+5/ncz/3c33qxF3ux1+aZLl68CMBf/MVf8Jd/+ZdcvHgRgNd7vdfjoQ99KA996EN5fi5evMj9Ll68CMDFixcBuHjxIg+0u7sLwMWLF7nfxYsXAXjoQx/KQx7yEB760Idy4sQJ7rvvvlv/4R/+4bd/67d+63v+4R/+4be56qqrrrrqqquuuup/IvSgBz2Iq6666qqrrrrqqqv+5/ncz/3c33qxF3ux1/71X/91HvrQh/LQhz6UB7p48SJ/8Rd/wdOf/nSe9rSn8dCHPpSLFy8CcPHiRf4jnDhxAoATJ05w4sQJjh8/DsDLvdzLceLECe73IR/yIQ+57777buWqq6666qqrrrrqqv9pqFx11VVXXXXVVVdd9T/aX/7lX/Ibv/EbnDhxgoc+9KE85CEP4eVe7uU4ceIEr//6rw/AxYsX+Yu/+AsAnva0p/GiOHHiBCdOnODEiRMcP34cgBMnTnDixAlOnDjBiRMneFF90zd909Pf7u3eTlx11VVXXXXVVVdd9T8Nlauuuuqqq6666qqr/le4ePEif/EXf8Ff/MVf8Bu/8Rs89KEP5aEPfSgv+7Ivy4kTJ3j91399AC5evMjTnvY0/vIv/5KHPOQhAJw4cYITJ04A8NCHPpQX1TiOAIzjyDiODMMAwOHhIQBHR0c89rGP5aqrrrrqqquuuuqq/7GoXHXVVVddddVVV131v87Fixf5i7/4C/7iL/6C3/iN3+D48eM89KEP5WVf9mU5ceIEL/dyL8fLvdzL8cKM48g4jozjyDiO2GYcR8ZxZBxHxnHkqquuuuqqq6666qr/9ahcddVVV1111VVXXfW/2sWLF7l48SJPf/rT+Y3f+A1OnDjB273d2/HQhz6Uo6Mjjo6OADg6OgLg6OiIf4ltXhSSuOqqq6666qqrrrrqfzQqV1111VVXXXXVVVf9j3Tffffd+mIv9mL8a128eJH7nT9/nqOjI2zzryEJANtcddVVV1111VVXXfW/GpWrrrrqqquuuuqqq/7Pk8T9bPOiksT9bHPVVVddddVVV1111f86VK666qqrrrrqqquu+n9FEvezzYtKEgC2uV/XdQDcd999t3LVVVddddVVV1111f9EVK666qqrrrrqqquu+h/NNv9ZJHE/27woJHHVVVddddVVV1111f8aVK666qqrrrrqqquuugqQBIBtXlSSuOqqq6666qqrrrrqfzQqV1111VVXXXXVVVf9nyYJ27yoJHE/21x11VVXXXXVVVdd9b8alauuuuqqq6666qqr/s+TxP1s86KSxP1sc9VVV1111VVXXXXV/zoEV1111VVXXXXVVVf9j3bixAleGNv8a0hCEpL415CEJK666qqrrrrqqquu+l+FylVXXXXVVVddddVV/29J4n62eVFI4qqrrrrqqquuuuqq/zWoXHXVVVddddVVV111FSCJ+9nmRSGJq6666qqrrrrqqqv+RyO46qqrrrrqqquuuur/nN3dXQD6vkcSkvjXkIQkrrrqqquuuuqqq676X4/KVVddddVVV1111VX/49lGEv8ekrifbV4Ukrifba666qqrrrrqqquu+l+HylVXXXXVVVddddVV/+9I4n62eVFI4n62ueqqq6666qqrrrrqfwUqV1111VVXXXXVVVf9j3TffffdCnDixAn+M0kCwDYvKklcddVVV1111VVXXfW/ApWrrrrqqquuuuqqq/5H+od/+Iffue+++259h3d4hwe//uu/Pn/xF3/BX/7lX3Lx4kX+M0jifrZ5UXRdB8DZs2dv5aqrrrrqqquuuuqq/4kIrrrqqquuuuqqq676H+kf/uEffvu3fuu3vhvgxIkTvP7rvz6f+ImfyCd+4ifyeq/3ejyQbV4QSUhCEi8qSUhCEi9M13VcddVVV1111VVXXfU/GpWrrrrqqquuuuqqq/7H+tEf/dHP+e3f/u3vOXPmzINf53Ve571e53Ve571PnDjB67/+6/NyL/dyPO1pT+PpT386f/EXf8GLQhIAtvmXdF0HwGKxoNYKwGKxAGBjY4MH+vu///vf5qqrrrrqqquuuuqq/4nQgx70IK666qqrrrrqqquu+t/hmmuuefCLvdiLvfbrvM7rvNeLvdiLvTbPdPHiRZ7+9KfzF3/xFzz96U/n7d/+7XnZl31Z7r33Xvb393lutVYAuq6j1kqtla7r6LqOWitd1/GiuO+++279h3/4h9/++q//+vfhqquuuuqqq6666qr/iahcddVVV1111VVXXfW/xn333Xcr8Ntnzpx50H333Xfr67zO67w3wIkTJzhx4gQv+7Ivy8WLF7nfYrGg6zoAFosFAIvFgn+L++6779Z/+Id/+O3f+q3f+p5/+Id/+G2uuuqqq6666qqrrvrfAD3oQQ/iqquuuuqqq6666qr/ma655poHv/Zrv/Z7Abz4i7/4a7/Yi73YawNcvHiRixcv8vSnP52LFy/y9Kc/nZd92ZflIQ95CA996EN5UVy8eJGLFy+yu7vLxYsXuXjxIhcvXmR3d5eLFy9y4sQJHvKQh/DQhz6U48eP89CHPhSA++6771aAf/iHf/jtf/iHf/id++6779Z/+Id/+G2uuuqqq6666qqrrvqfCD3oQQ/iqquuuuqqq6666qr/OV7ndV7nvV/ndV7nvV7sxV7stQEuXrzIxYsXefrTn87Fixf5y7/8S16YEydO8LIv+7IAnDhxgosXLwJw8eJFLl68yNOf/nT+rU6cOMFDHvIQHvrQh3L8+HEe+tCHAnDffffdCvCjP/qjn/Nbv/Vb381VV1111VVXXXXVVf9TULnqqquuuuqqq6666n+MF3uxF3vtd3zHd/ysa6655sEAFy9eBGB3d5eLFy9y8eJF/iUXL17kN37jN/jPcPHiRe534sQJAB760IdyzTXXPBjgdV7ndd4L4Ld+67e+m6uuuuqqq6666qqr/iegctVVV1111VVXXXXV/xgv9mIv9lrXXHPNg3d3d7l06RIPetCDADhx4gQv+7IvC8DFixe5ePEiu7u7PO1pT+PpT386Fy9e5D/DiRMnOH78OA996EN5yEMewkMf+lCen/V6zWq14sVe7MVe++///u9/m6uuuuqqq6666qqr/qegctVVV1111VVXXXXV/zh/8zd/w+/+7u9y/Phxjh07xvHjx3nQgx7Egx70IE6cOMGJEycAeNmXfVkALl68yNOf/nQuXrzI0572NJ7+9Kfzr3XixAmOHz/OQx/6UB7ykIfw0Ic+lOdnvV6zWq24dOkSe3t7XLp0CYCbb76ZY8eOcdVVV1111VVXXXXV/yhUrrrqqquuuuqqq676H+Ps2bPPADh+/DgAu7u77O7u8oxnPIO/+Zu/AeDEiRPccsstHD9+nAc96EE86EEP4sSJE5w4cQKA13u91wPg4sWLPP3pT+dpT3saFy9e5OlPfzoPdOLECV72ZV8WgIc85CE89KEP5bmt12tWqxWXLl1ib2+PS5cu8YLM53MAzp49+wyuuuqqq6666qqrrvqfgspVV1111VVXXXXVVf+r7O7usru7ywMdP36cW265hQc96EEcP36cBz3oQZw4cYITJ07wsi/7sgBcvHgRgN3dXR7ykIfw/KzXa+677z4A7rvvPtbrNfezzVVXXXXVVVddddVV/+tQueqqq6666qqrrrrqf73d3V12d3f527/9WwCOHz8OwIMe9CAe9KAHcezYMR70oAcBcOLECQDW6zX33XcfAJcuXWJvb48XRhK2ueqqq6666qqrrrrqfxUqV1111VVXXXXVVVf9r2IbSbwwu7u7AFy6dIm//du/BeDYsWN8+Id/OAB/9Ed/xP1s86KShG2uuuqqq6666qqrrvpfg+Cqq6666qqrrrrqqv+zbHO/S5cu8fxIQhIvKklcddVVV1111VVXXfW/BsFVV1111VVXXXXVVVcBknhRSeKqq6666qqrrrrqqv8VCK666qqrrrrqqquuuuqZJPGiksRVV1111VVXXXXVVf/jEVx11VVXXXXVVVdd9b+Obf6zSOJFJYmrrrrqqquuuuqqq/5HI7jqqquuuuqqq6666v802/xrSeJFJYmrrrrqqquuuuqqq/7HIrjqqquuuuqqq6666qrnQxIvKklcddVVV1111VVXXfU/EsFVV1111VVXXXXVVVe9AJK46qqrrrrqqquuuup/NYKrrrrqqquuuuqqq/7HuO+++24FOH78OP+ZJPGiksSLYjabAXDffffdylVXXXXVVVddddVV/1MQXHXVVVddddVVV131v5JtXlS2eW6SeFFJ4qqrrrrqqquuuuqq/5UIrrrqqquuuuqqq676f0sSLypJXHXVVVddddVVV131vw7BVVddddVVV1111VX/r0niRSWJ52c2mzGfz7nqqquuuuqqq6666n8cKlddddVVV1111VVX/Y9x9uzZW//hH/7ht1/sxV7stT/jMz6D3d1dnvGMZ/CMZzyD3d1dnvGMZ/CfQRK2eVFIou97rrnmGgCuueYaZrMZAL/1W7/13WfPnr2Vq6666qqrrrrqqqv+p6By1VVXXXXVVVddddX/GPfdd9+tv/Vbv/U9AC/2Yi/22sePH+f48eO81Eu9FAC7u7s84xnPYHd3l2c84xk84xnPQBIvCtu8MJKwzfMzm804c+YMx44dY2dnh+d233333QrwW7/1W99z33333cpVV1111VVXXXXVVf9TULnqqquuuuqqq6666n+U3/qt3/ru3/qt3/rua6655sEAL/ZiL/baL/ZiL/ZaL/ZiL/ba11xzzYOPHz/O/XZ3dwF4xjOewTOe8Qz+9m//ln8PSfR9z2w2Y2dnh2PHjrGzs8Nzu++++279h3/4h9++7777bv2Hf/iH3/mHf/iH3+aqq6666qqrrrrqqv+J0IMe9CCuuuqqq6666qqrrvrf4Zprrnnwi73Yi732i73Yi73WNddc8+AXe7EXe22ey+7uLs94xjN4xjOewaVLl3jGM57B/T790z8dgD/+4z/mfrPZjDNnzgBw00038fzcd999t/7Wb/3WdwP86I/+6Odw1VVXXXXVVVddddX/FpTjx49z1VVXXXXVVVddddX/DoeHh7tHR0e7Z86cefCLvdiLvfbm5ubxixcv8vjHP57lcsmJEyeYz+dcd911POpRj+KlXuqleMmXfEke9ahHcfz4cR70oAdxv5tuuomHPexhXH/99ezs7LCzswPAxYsXWSwW3O++++67FWBra+s4wObm5omHPOQhL725uXn87Nmzt3LVVVddddVVV1111f9k6EEPehBXXXXVVVddddVVV/3Pd8011zz4tV/7td/rnd7pnT4b4OLFi/zGb/wGf/mXf8n9Tpw4AcBDHvIQHvrQh3L8+HEe+tCH8sJcvHiRpz/96Vy8eJGnPe1pPP3pT+fEiRMAHD9+nBMnTvDQhz4UgOPHj/PQhz6UB7rvvvtuBfiHf/iH3wb4rd/6re/5h3/4h9/mqquuuuqqq6666qr/CdCDHvQgrrrqqquuuuqqq676n+maa6558Gu/9mu/1+u8zuu89zXXXPPgixcv8pd/+Zf85m/+Ji+qEydO8JCHPISHPOQhnDhxgosXL3Lx4kUAfvM3f5N/ixMnTgDwkIc8BICXfdmX5SEPeQgAv/Vbv/Xdv/Vbv/U9//AP//DbXHXVVVddddVVV131343KVVddddVVV1111VX/47zO67zOe7/Yi73Ya73O67zOewP8xm/8Bk9/+tN5+tOfzr/WxYsXuXjxIn/5l3/Jf5SLFy9y4sQJjh8/zsu+7Mty4sQJ7vc6r/M6733ffffd+g//8A+/zVVXXXXVVVddddVV/92oXHXVVVddddVVV131P8Y7vuM7ftY7vdM7fTbAxYsX+Y3f+A1+8zd/k/9JTpw4wcu8zMvweq/3etxvuVxyxx13sFwuecmXfEnOnj37DK666qqrrrrqqquu+p+AylVXXXXVVVddddVV/yO82Iu92Gu/zuu8znvzAA996EM5ceIEFy9eZHd3l4sXL7K7u8vFixf5r/a6r/u6vOzLviwnTpzgfsvlkic/+cnceeedANx4441cddVVV1111VVXXfU/CpWrrrrqqquuuuqqq/5HeKd3eqfPuuaaax68t7fHzs4OJ06c4MSJEzzkIQ/huV28eBGApz/96QA8/elP5+LFi+zu7nLx4kX+o5w4cYKXeZmX4fVe7/W433K55M477+TOO+/k6OiIq6666qqrrrrqqqv+R6Ny1VVXXXXVVVddddX/KL/8y7/M7bffzs7ODseOHWNnZ4ednR2OHTvGzs4ON998MydOnADgxIkTALzsy74s97t48SIAu7u7XLx4kac//ekAXLx4kac//em8KE6cOMHrvu7r8rIv+7Lcb7lccuedd/KUpzyF+0nCNlddddVVV1111VVX/Y9F5aqrrrrqqquuuuqq/5H29vbY29vj+dnZ2UESN998MwA33XQTOzs7HDt2jBMnTgBw4sQJHvKQh/CyL/uyPNDFixfZ3d3l4sWL7O7ucvHiRXZ3d7l48SIv+7Ivy8u8zMtw4sQJ7veUpzyFO++8k+VyyfMjCdtcddVVV1111VVXXfU/EpWrrrrqqquuuuqqq/7X2dvbQxL/8A//AMA//MM/cL+dnR0AdnZ2OHbsGDfddBPHjh0D4KabbuLEiROcOHGChzzkIbwgy+WSO++8k6c85SlcddVVV1111VVXXfW/GpWrrrrqqquuuuqqq/5Xso0kntve3h4Ae3t73HHHHfzDP/wDAJIA2NnZYWdnh52dHW6++WYAdnZ2uOmmmwD4u7/7O+68807+NSRhm8ViwVVXXXXVVVddddVV/6NQueqqq6666qqrrrrq/5W9vT329vYAeNzjHgfATTfdxDu8wztw4cIF7rzzTv4tJHHVVVddddVVV1111f84BFddddVVV1111VVX/Y9imxeVbf4nkcRVV1111VVXXXXVVf+jEFx11VVXXXXVVVdd9f+Cba666qqrrrrqqquu+n+H4Kqrrrrqqquuuuqq/3Fs86KyzVVXXXXVVVddddVVV70ABFddddVVV1111VVX/Y9w33333Qqws7PDfxbb/Fe47777buWqq6666qqrrrrqqv8JCK666qqrrrrqqquuuuoBJHHVVVddddVVV1111f8ZBFddddVVV1111VVX/Y9kmxeVbV5Utrnqqquuuuqqq6666v8NKlddddVVV1111VVXXfVcJGGbF9XDH/5wbrzxRhaLBb/1W7/13WfPnr2Vq6666qqrrrrqqqv+J6By1VVXXXXVVVddddX/WLaRxIvCNpL4jyIJ27wgi8WCG2+8kYc//OHc77777rv1H/7hH37nvvvuu5Wrrrrqqquuuuqqq/4noHLVVVddddVVV1111f8ox44d4z+bbSTxL5GEbR5osVhw44038vCHP5z73Xfffbf+6I/+6Of81m/91ndz1VVXXXXVVVddddX/JFSuuuqqq6666qqrrvof4b777rv1vvvuu/VVX/VVH/yqr/qqXLp0ib29PS5dusQdd9zB3t4ely5dYm9vjxfENpL4z7BYLHj4wx/OjTfeyP1+67d+67t/9Ed/9HPuu+++W7nqqquuuuqqq6666n8iKlddddVVV1111VVX/Y/woz/6o58D8Dqv8zrvfc011zz42LFjHDt2jJtvvpkXf/EX5357e3sA3H777QDcfvvt7O3tcenSJfb29nhR2UYS/5KHP/zh3HjjjSwWCwDuu+++W3/rt37ru3/7t3/7e+67775bueqqq6666qqrrrrqfzL0oAc9iKuuuuqqq6666qqr/me55pprHgzwYi/2Yq8N8GIv9mKvdc011zz4zJkzD77mmmsezAuwt7cHwO233w7AHXfcwaVLl7jjjjt4fiQBcNNNN/EO7/AOXLhwgT/7sz9jsVhwww038PCHP5z73Xfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVddddX/FuhBD3oQV1111VVXXXXVVVf97/DhH/7h3/U6r/M67/30pz+dv/zLvwTgIQ95CCdOnOAhD3kIL8ze3h6XLl1ib2+Pvb099vb2uHTpEnfeeSc33XQT7/AO78CFCxe4cOECD3/4w3lB7rvvvlsBzp49eyvAfffddyvAfffdd+vZs2ef8Vu/9VvfzVVXXXXVVVddddVV/1OgBz3oQVx11VVXXXXVVVdd9T/f537u5/7Wi73Yi732X/7lX/ITP/ETPD8nTpwA4CEPeQjHjx/nxIkTnDhxgoc85CH8az396U/nN37jNwA4ceIE9zt+/DgnTpwA4MSJEwAcP36cEydO8A//8A+//SM/8iOf8w//8A+/zVVXXXXVVVddddVV/xNQueqqq6666qqrrrrqf7RrrrnmwR/+4R/+XS/2Yi/22r/xG7/Bb/7mb/KCXLx4EYCLFy/y3E6cOMHx48c5ceIED3nIQwA4ceIED3nIQwB4+tOfzkMe8hB+4zd+g7/6q7/i4sWL3O/pT386L8z7v//7c+LECV7sxV7stV/ndV7n1n/4h3/4ba666qqrrrrqqquu+p+AylVXXXXVVVddddVV/2Ndc801D/7wD//w73qxF3ux1/6Jn/gJ/vIv/5J/q4sXL3Lx4kWe/vSn85d/+Zc80IkTJwC4ePEi/1pv93Zvx0Me8hAAjo6OuOqqq6666qqrrrrqfxQqV1111VVXXXXVVVf9j3TNNdc8+Ju+6ZueDvAd3/EdPP3pT0cS/xl2d3cBkMS/xtu+7dvysi/7sgD83u/9Ho95zGO46qqrrrrqqquuuup/FIKrrrrqqquuuuqqq/7HebEXe7HX/qZv+qanX7x4ke/4ju/g6U9/Ov/TvO7rvi4v+7IvC8Dv/d7vce7cOa666qqrrrrqqquu+h+HylVXXXXVVVddddVV/6O8zuu8znt/+Id/+HddvHiR7/iO72B3d5f/aV7mZV6G133d1wXg937v9zh37hxXXXXVVVddddVVV/2PROWqq6666qqrrrrqqv8x3vEd3/Gz3umd3umzAb7jO76D3d1d/qd5mZd5Gd7u7d4OgN/7vd/j3LlzXHXVVVddddVVV131PxaVq6666qqrrrrqqqv+R7jmmmse/OIv/uKvzTN9/Md/PAAXL14EYHd3F4CLFy8CsLu7y8WLFwHY3d0F4OLFiwDs7u7yn+EhD3kIb/d2bwfAX/zFX3Du3Dmuuuqqq6666qqrrvofjcpVV1111VVXXXXVVf8jvNiLvdhrv9iLvdhrHx4eArC5uQnAiRMnADhx4gQAD3nIQ3hRXLx4kfvt7u5y8eJFAHZ3d7l48SL3293dBeDixYvs7u7ygjzkIQ/h/d7v/QD4i7/4C2677Taen/vuu+9Wrrrqqquuuuqqq676n4LKVVddddVVV1111VX/o5w9e5Y/+7M/436bm5sAbGxsIImNjQ0ANjc32djYAGBzcxOAzc1NADY2Njhx4gT3O3HiBA95yEN4UVy8eJH77e7ucvHiRQBe9mVfFoDHP/7x3HbbbTw/GxsbXHXVVVddddVVV131PwqVq6666qqrrrrqqqv+R7jvvvtuBdjc3OSBDg8PATg8PARAEi+IJO63sbHB/TY3N9nY2EASGxsbbGxsALCxsQHA5uYmABsbG5w4cYL7nThxgoc85CHc77bbbuMJT3gCV1111VVXXXXVVVf9r0Hlqquuuuqqq6666qr/UWzzb2UbSQAcHR1xv6OjIwAk8cJIYmNjg/ttbGywsbHBgx70IE6fPs0znvEMrrrqqquuuuqqq676X4XKVVddddVVV1111VX/q9hGEi+IbSTx/NhGEi/M0dER9zs6OgLgQQ96EFddddVVV1111VVX/a9EcNVVV1111VVXXXXV/zi2eWFs88LY5gWxzQtim+dnY2MDgOVyyVVXXXXVVVddddVV/6sQXHXVVVddddVVV131P5JtXhjb/FvZ5gWxzb/F6dOnOTg4uPW3f/u3v4errrrqqquuuuqqq/6nILjqqquuuuqqq6666n8s27wwtnlBbPPC2OYFsc0LIonntrGxwWu8xmtw9uzZW++7775bueqqq6666qqrrrrqfwqCq6666qqrrrrqqqv+z7LNv5VtXhQbGxu80Ru9Effdd9+tn/mZn/k6XHXVVVddddVVV131PwnBVVddddVVV1111VX/o9nmhbHNC2ObF8Q2L4xtnh9J3O/lXu7luO+++279+q//+vfhqquuuuqqq6666qr/aQiuuuqqq6666qqrrvofzzYvjG1eGNu8ILZ5YWzzgrzGa7wGp0+f5uu//uvf5x/+4R9+m6uuuuqqq6666qqr/qchuOqqq6666qqrrrrqfwXbvDC2+beyzb/Wa7zGa3D69Gk+8zM/83X+4R/+4be56qqrrrrqqquuuup/IoKrrrrqqquuuuqqq/5fsM0LY5sX1au/+qtz+vRpPvMzP/N1/uEf/uG3ueqqq6666qqrrrrqfyoqV1111VVXXXXVVVf9j3D27Nlb77vvvluvueaaB7/Zm70Z9zs8POTo6AiAw8NDjo6OADg8PATg6OiIw8NDAGwjiRfENpJ4QWwjiRfm0Y9+NKdPn+a+++679cVe7MVe68Ve7MVe60d/9Ec/h6uuuuqqq6666qqr/idCD3rQg7jqqquuuuqqq6666n+GF3uxF3vtz/3cz/0t/o0ODw8BODo64vDwkPsdHR1xeHgIwNHREZI4PDzk6OiI50cSD/TGb/zGbGxs8IQnPIFHP/rRPNB9991362/91m9994/+6I9+DlddddVVV1111VVX/U+DHvSgB3HVVVddddVVV1111f8s11xzzYM/53M+57euueaaB//ET/wE9ztx4gTHjx8H4MSJEwAcP36cEydO8G91dHQEwOHhIQBHR0cAHB0dcXR0BMBjHvMYNjY2AHj605/Od3zHdwBw/PhxPv7jP5777rvv1g/5kA95CFddddVVV1111VVX/U9D5aqrrrrqqquuuuqq/3Huu+++W6+55poHA/zVX/0VL6rjx48DcOLECY4fP879HvKQh3C/EydOcPz4cQBOnDjBxsYGABsbG/xLnv70p/Md3/Ed3G93dxeAa6655sFcddVVV1111VVXXfU/EZWrrrrqqquuuuqqq/7P2N3dBWB3d5cH+qu/+itekOPHjwNw4sQJAI4fPw7AiRMnOH78OAAnTpzgJ37iJ9jd3eWqq6666qqrrrrqqv9VqFx11VVXXXXVVVdd9T/ONddc82CAixcv8p9td3cXgN3dXf4tLl68yIkTJ7jmmmsefN99993KVVddddVVV1111VX/kxBcddVVV1111VVXXfU/zpkzZx4MsLu7y/90u7u7AJw5c+bBXHXVVVddddVVV131Pw2Vq6666qqrrrrqqqv+x7nmmmseDHDx4kWuuuqqq6666qqrrrrq34Hgqquuuuqqq6666qr/sSQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQksbu7C8A111zzYK666qqrrrrqqquu+p+GylVXXXXVVVddddVV/+OcOXPmQfwvcfHiRQDOnDnzIK666qqrrrrqqquu+p+GylVXXXXVVVddddVV/2NdvHiRq6666qqrrrrqqquu+negctVVV1111VVXXXXV/zjXXHPNgwF2d3f5n253dxeAa6655sFcddVVV1111VVXXfU/DZWrrrrqqquuuuqqq/7HeshDHsL/dA95yEMAuOaaax7MVVddddVVV1111VX/01C56qqrrrrqqquuuup/rJd5mZfhZV7mZbjqqquuuuqqq6666qp/IypXXXXVVVddddVVV/2Pc8011zwY4NKlS6zXax5IEv/TnDlzhquuuuqqq6666qqr/keictVVV1111VVXXXXV/1i33347e3t7vDCS+M8iiX/Jzs4OZ86c4aqrrrrqqquuuuqq/5GoXHXVVVddddVVV131v5ptHkgS/1Fs8/xI4qqrrrrqqquuuuqq/xWoXHXVVVddddVVV131f4ptHkgS/9Fscz/bXHXVVVddddVVV131PxaVq6666qqrrrrqqqv+T7PNA0niqquuuuqqq6666qr/N6hcddVVV1111VVXXfU/mm0eSBL/HrZ5bpK46qqrrrrqqquuuur/JCpXXXXVVVddddVVV/2vYpv7SeI/gm2emySuuuqqq6666qqrrvpfj8pVV1111VVXXXXVVf9r2eaBJPEfxTbPTRLPbTabAXDffffdylVXXXXVVVddddVV/9MQXHXVVVddddVVV131P8599913K8BsNuNfwza2sY1t/qPZxja2sY1trrrqqquuuuqqq676H43KVVddddVVV1111VX/Z9nmgSRx1VVXXXXVVVddddX/K1Suuuqqq6666qqrrvof4ZprrnkwwJkzZx58zTXXPBjANrYBkMS/l20eSBJXXXXVVVddddVVV/2fRuWqq6666qqrrrrqqv9W3/RN3/T0a6655sE8H7fccgu33HILz48k/ieYzWZcddVVV1111VVXXfU/FpWrrrrqqquuuuqqq/7bfO7nfu5vXXPNNQ++ePEif/VXf8XFixfZ3d0F4GVe5mV42Zd9Wf43+Id/+Iff/vqv//r34aqrrrrqqquuuuqq/2moXHXVVVddddVVV1313+bMmTMPBjhx4gQAf/3Xf839dnd3+a3f+i3+J3uZl3kZXvd1X5czZ848+JprrnnwfffddytXXXXVVVddddVVV/1PQuWqq6666qqrrrrqqv9WT3rSk3jkIx/Jy77sy3Lrrbfy9Kc/HYDd3V3+p/ut3/otAF73dV/3wZ/zOZ/zWx/yIR/yEK666qqrrrrqqquu+p+E4Kqrrrrqqquuuuqq/1ZPfOIT+bmf+zmOHz/O277t23L8+HH+N/mt3/otfvM3f5Nrrrnmwd/0Td/0dK666qqrrrrqqquu+p+E4Kqrrrrqqquuuuqq/zZnz569FeDnf/7n+aM/+iOOHz/O+73f+/G/zW/91m/xm7/5m1xzzTUP/qZv+qanc9VVV1111VVXXXXV/xQEV1111VVXXXXVVVf9j/DzP//znD9/nuPHj/O2b/u2/G/zV3/1V/zmb/4m11xzzYM//MM//Lu46qqrrrrqqquuuup/Asrx48e56qqrrrrqqquuuuq/x+u8zuu8dynlwX/913/Ncrnkb/7mb3i913s9rr/+egBuvfVW/rdYrVbs7u6yWCx4lVd5lZe+5pprHvynf/qnP8NVV1111VVXXXXVVf+dKMePH+eqq6666qqrrrrqqv8er/M6r/Pe6/X6wX/913+NJJbLJefPn+elX/qlOXHiBPfccw+7u7v8b7Farbj77ru5/vrreZmXeZmXvuaaax78p3/6pz/DVVddddVVV1111VX/XSjHjx/nqquuuuqqq6666qr/Hq/zOq/z3uv1+sF//dd/jSQA7rjjDgBe8iVfkoc85CE84QlPYL1eIwlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSazXa2699Vauu+46XuZlXualAf7hH/7hd7jqqquuuuqqq6666r8DwVVXXXXVVVddddVV/+P80R/9EU960pM4fvw47/u+78v/ZMePH+f48eM8+MEP5mVe5mV4ndd5HV7mZV6G3d1dAN7pnd7ps1/sxV7stbnqqquuuuqqq6666r8Dlauuuuqqq6666qqr/tvcd999t3ZddyvwYB7g/PnzfM/3fA8f+7Efy6lTp3ibt3kbfuqnfor/CsePHwfg+PHjnDhxAoDjx48DcPz4cY4fP86JEyc4fvw4L6p3eqd3+qzP/MzP/G2uuuqqq6666qqrrvqvhh70oAdx1VVXXXXVVVddddV/j2uuuebB3/RN3/T07/7u7+aP//iPeW6nT5/m8z//8wH4rd/6LX7rt36Lf63jx48DcPz4cQBOnDjB8ePHATh+/DjHjx8H4CEPeQj/FtM0AdBaY5ompmnifq01Tp48yX333Xfrh3zIhzyEq6666qqrrrrqqqv+q1G56qqrrrrqqquuuuq/zX333Xfrb/3Wb333W7zFW7z3k5/8ZM6fP88DnT9/nu/93u/lPd/zPXmZl3kZnv70p3Prrbdy/PhxAI4fP86JEyc4fvw4AMePH+f48eMAnDhxguPHj/OvNU0TANM0ATBNE601AKZpYpomANbrNfeTxPMzm80AOHv27K1cddVVV1111VVXXfXfgcpVV1111VVXXXXVVf+tfvRHf/RzXuzFXuy1P/ZjP/bBn/Zpn8Zz+6M/+iNOnjzJm7/5m/O+7/u+/FtM08Q0TQBM08Q0TQBM00RrDYBpmpimiecmiRdEEi+MJK666qqrrrrqqquu+m9F5aqrrrrqqquuuuqq/1b33XffrZ/1WZ/1Ot/0Td/09Pd6r/fie77ne3huf/zHf8yrvMqrcOrUKQCmaQJgHEdaa4zjCMA0TUzTBMA0TUzThCReEEm8MJJ4QSTxwkjiqquuuuqqq6666qr/dlSuuuqqq6666qqrrvpvd99999369V//9e/z4R/+4d91/vx5fv7nf54HOn/+PPe77bbbmKYJAEm8MJJ4QSTxwkjiBZHECyOJq6666qqrrrrqqqv+R6By1VVXXXXVVVddddX/CL/1W7/13WfOnHnQ67/+63/2k570JJ70pCfxwkjihZHECyKJF0YSL4gkXhhJXHXVVVddddVVV131PwbBVVddddVVV1111VX/Y/z2b//299xzzz2//V7v9V4A2Ob5kcQLI4kXRBIvjCReEEm8MJK46qqrrrrqqquuuup/FIKrrrrqqquuuuqqq/7HuO+++279+q//+vc5deoU7/Ve78W/hSReEEm8MJJ4QSTxgkhCElddddVVV1111VVX/Y9DcNVVV1111VVXXXXV/yj33XffrV//9V//Pq/yKq/Cm7/5m/PcJPGCSOIFkcQLI4kXRBIviCReEElcddVVV1111VVXXfXfispVV1111VVXXXXVVf/j/NZv/dZ3nzlz5kGv//qv/9lPfvKTedKTnsT58+c5deoUtVamaeK5SeLfShIviCReEEmUUgCotVJKodYKQK2V2WwGwH333XcrV1111VVXXXXVVVf9d6By1VVXXXXVVVddddX/ONdcc82D/+Ef/uF3Xud1XufW93zP93zwp3/6p/PvIYkXRBLPrdYKQK2VWiulFABqrdRaAZjNZrwo7rvvvlt/9Ed/9HO46qqrrrrqqquuuuq/A5Wrrrrqqquuuuqqq/5bXXPNNQ8+c+bMg1/sxV7stV78xV/8tV/sxV7stXku7/me78kLI4kXRBK1VgBqrdRaASilIIlaK6UUaq3UWvm3uO+++249e/bsrffdd9+t991336080z/8wz/8ztmzZ2+97777buWqq6666qqrrrrqqv8OVK666qqrrrrqqquu+i9zzTXXPPi1X/u13wvgxV/8xV/7xV7sxV6bB9jd3eXpT386T3/60wG49dZbOX78OG/7tm/Lc6u1AtB1HbVWaq0A1FqptQJQa6XWyr/W7u4uABcvXmR3d5eLFy8CsLu7y+7uLgAXL17kZV7mZXjd131dAP7+7//+t3/7t3/7e+67775bueqqq6666qqrrrrqfwr0oAc9iKuuuuqqq6666qqr/vP9xE/8hHmA3d1dnv70p3Px4kVuvfVWnv70p/OCvM7rvA6v+7qvy7/V7u4uABcvXgRgd3eXixcv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RBL3O3HiBO/4ju/IQx/6UAB2d3f5qZ/6KXZ3d3npl35pAB7ykIfw4Ac/mH+JJP4ltnlR2OZfYhtJSOK3fuu3vvvrv/7r34errrrqqquuuuqqq/6zoAc96EFcddVVV1111VVXXfXf45prrnnwh3/4h3/Xi73Yi702wMWLF/nmb/5mLl68yHOTxHN7uZd7Od7gDd6AEydO8MJI4n6SeH5s86Kyzb/ENi+MJH7kR37ks3/0R3/0c7jqqquuuuqqq6666j8L5fjx41x11VVXXXXVVVdd9d/j8PBw97d+67e+5+zZs8948IMf/NKnT58+/uIv/uIsFgue9rSn8dwk8UB33303//AP/8BiseCGG24AQBKSiAgigohAEgCSeEEkIQlJSOKFkYQkJPGCSEISknggSUjivvvuu/XWW2/963/4h3/4Ha666qqrrrrqqquu+s9COX78OFddddVVV1111VVX/fe69dZb//rP/uzPfubw8HD35V/+5V/7YQ97GC//8i/PXXfdxcWLF7mfJJ7barXi+uuv52EPexiSiAgkIYkHkoQkJCGJf4kkJCGJF0YSkpDECyIJSUjifn/6p3/609/1Xd/1MVx11VVXXXXVVVdd9Z8JPehBD+Kqq6666qqrrrrqqv85rrnmmgd/zud8zm9dc801Dwb4tV/7NX7t134NAEk8P6//+q/PG7zBGxARSOLfwjYvCts8N9u8MPfdd9+tZ8+evfXv//7vf/sf/uEffucf/uEffpurrrrqqquuuuqqq/4roAc96EFcddVVV1111VVXXfU/yzXXXPPgD//wD/+uF3uxF3ttgIsXL/Lnf/7n/Pqv/zrPz+u//uvzBm/wBkQEEcFzs82/hm2eH9sA2OYFue+++249e/bsrX//93//2//wD//wO//wD//w21x11VVXXXXVVVdd9d+FylVXXXXVVVddddVV/2Ncc801D37t137t93qnd3qnz+aZdnd3OXHiBG/wBm/Ay7/8y/Mt3/ItXLx4kX8NSTyQbV4YSdjGNgC2eX52d3c5fvw49/ut3/qt7/6Hf/iH3/mt3/qt7+aqq6666qqrrrrqqv8J0IMe9CCuuuqqq6666qqrrvrvc8011zz4tV/7td/rnd7pnT6bZ9rd3eWv/uqv+K3f+i0AXud1XoeXeZmX4fjx41y8eJE///M/59d//de53+u//uvzBm/w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+XzOQx7yEK6//noA/v7v//63ueqqq6666qqrrrrqPwp60IMexFVXXXXVVVddddVV/z7XXHPNg7/pm77p6bwAu7u73HrrrTz96U9nd3eXW2+9lf/LXvu1X5vXeZ3XAWC1WvG4xz2O3d1dntvx48d57GMfy3w+B+BHfuRHPvtHf/RHP4errrrqqquuuuqqq/6jULnqqquuuuqqq6666j/MpUuX+P7v/34e9KAHccstt3Ds2DEe9KAHcfz4cV76pV+al37plwZgd3eXW2+9lac//ens7u5y66238n/B8ePHeZu3eRse/OAHA/D0pz+dpz/96Tw/D3nIQ3jIQx4CwH333XfrZ33WZ73OfffddytXXXXVVVddddVVV/1HQg960IO46qqrrrrqqquuuurf7yd+4icM8IVf+IU80LFjxzh27BjHjx/nlltu4SVf8iV5bru7uwDceuut3Hrrrfz1X/81/9u89Eu/NG/91m8NwGq14nGPexy7u7s8t/l8zmMe8xhOnDgBwI/8yI989o/+6I9+DlddddVVV1111VVX/WdAD3rQg7jqqquuuuqqq6666t/vJ37iJwzwhV/4hfxLjh8/zi233MKDHvQgjh07xi233MJz293d5dZbb+XWW29ld3eXW2+9lf+Jjh8/zlu/9Vvz4Ac/GICLFy/yV3/1Vzw/119/PY95zGMAuO+++279+q//+vf5h3/4h9/mqquuuuqqq6666qr/LFSuuuqqq6666qqrrvovd+nSJf7u7/6Ov/u7vwPg2LFjHDt2jFtuuYUHPehB3HLLLRw/fpyXfumX5qVf+qUB2N3dZXd3l93dXf76r/+aW2+9lf9uD37wg3nv935vAFarFY9//OPZ3d3luc3ncx7zmMdw4sQJAP7hH/7htz/zMz/zdbjqqquuuuqqq6666j8blauuuuqqq6666qqr/svZRhL3u3TpEpcuXeK2227j93//9wE4duwYt9xyCw960IM4duwYt9xyC8ePHwfgpV/6pQHY3d3l1ltv5dZbb2V3d5dbb72V/yqv/dqvzWu/9msDsLu7y1/91V9xP0nYBuD48eM89rGPZT6fA/AjP/Ijn/2jP/qjn8NVV1111VVXXXXVVf8V0IMe9CCuuuqqq6666qqrrvr3+4mf+AkD/O3f/i233XYbf/u3f8u/RBIvqmPHjnHLLbfwoAc9iGPHjnHLLbfw3HZ3d7n11lvZ3d3l1ltv5dZbb+U/2vHjx3nv935vjh8/DsDTn/50br31Vp6fBz/4wTzkIQ/hfvfdd9+t//AP//DbAPfdd9+tZ8+efcZ99913K8A//MM//DZXXXXVVVddddVVV/1HQw960IO46qqrrrrqqquuuurf75prrnnwN33TNz2dB7h06RLPeMYzuO2229jd3eW2227jgSTxryUJgGPHjgFwyy23cMstt/ASL/ESPLfd3V0Abr31Vm699VZuvfVWdnd3+bd67dd+bV77tV8bgNVqxeMf/3h2d3d5bvP5nMc85jEcP34cgKc//ekAPOQhD+EF+Yd/+Iff/szP/MzX4aqrrrrqqquuuuqq/0joQQ96EFddddVVV1111VVX/ftdc801Dz5z5syDX+zFXuy1XvzFX/y1X+zFXuy1eS6XLl3iGc94Brfddhu7u7vcdtttSOJfSxLPz7Fjx7jlllu45ZZbOHbsGLfccgvPbXd3l1tvvZVbb72V3d1dbr31Vv4lx48f563f+q158IMfDMDTn/50br31Vp6f6667jsc85jEA7O7u8pM/+ZPceuut3O/48eMAHD9+nBMnTgDwNm/zNgD8wz/8w29/5md+5utw1VVXXXXVVVddddV/FPSgBz2Iq6666qqrrrrqqqv+411zzTUPBnixF3ux136xF3ux13qd13md9+a5XLp0id3dXfb29vjbv/1bbrvtNl5UkviXHDt2jGPHjnHs2DFe4iVegltuuYXntru7y+7uLru7u/z1X/81t956Kw/00i/90rz1W781AKvVisc//vHs7u7y3ObzOY95zGM4fvw4AE9/+tP5ru/6Lv4lL/MyL8PbvM3bAPBbv/Vb3/31X//178NVV1111VVXXXXVVf9R0IMe9CCuuuqqq6666qqrrvqvcc011zz4xV7sxV77xV7sxV7rdV7ndd6b5+PSpUvcdtttPOMZz+DSpUvcdtttPD+S+NeSxLFjx7jlllu4+eabOXbsGLfccgvPbXd3l1tvvZXjx4/z4Ac/GIB77rmHxz/+8Tw/x48f5zGPeQzz+RyAn/qpn+Kv/uqveFF87Md+LMePHwfgt37rt77767/+69+Hq6666qqrrrrqqqv+o1C56qqrrrrqqquuuuq/zH333Xfrfffd992v8zqv814At956K7/1W7/Fgx/8YB7ykIfw4Ac/mGPHjvESL/ESvMRLvAQAly5d4rbbbuMZz3gGly5d4rbbbgPANpL417DNpUuX+Lu/+zv+7u/+DoBjx45xyy23sLOzwy233MItt9zC8ePHeemXfmkAVqsVT3jCE9jd3eX5efCDH8xDHvIQAHZ3d/nO7/xOdnd3eVG8zuu8DsePH+f8+fMcHR1x1VVXXXXVVVddddV/OCpXXXXVVVddddVVV/2Xep3XeZ33frEXe7HXBvit3/otbr31Vm699VZ++7d/m+PHjwPw4Ac/mIc85CG89Eu/NMeOHeMlXuIleImXeAkALl26xKVLl7h06RJ/+7d/y+23386/hm0kcb9Lly7xd3/3dwD8wR/8AceOHQPgTd/0Tbnlllu49dZb2d3dBUAStgGYz+c85jGP4fjx4wD81m/9Fr/9278NgCT+JcePH+d1Xud1AHjiE5/Iox71KK666qqrrrrqqquu+g9H5aqrrrrqqquuuuqq/zIv9mIv9tof/uEf/l0A3/Vd38Wtt97KA+3u7gLw13/91/z1X/81P/VTP8Xx48d58IMfzEMe8hCOHz/Ogx/8YI4dOwbAS7zESwBw6dIlbrvtNm677TYuXbrEbbfdxgtjG0k8P5cuXQLg0qVLvCDXXXcdj3nMYwDY3d3lp37qp7j11lv513ibt3kbAG6//XbOnz/PVVddddVVV1111VX/KahcddVVV1111VVXXfVf5sM//MO/C+Cv//qvufXWW3lR7O7u8td//df89V//NQDHjx/nwQ9+MMePH+chD3kID37wgzl27Bgv8RIvwUu8xEsAcOnSJW677TZuu+02Ll26xG233cZ/hPl8zqMf/WiOHz8OwK233sp3fdd38a/14Ac/mAc/+MEAPOlJT0ISi8WCf/iHf/gdrrrqqquuuuqqq676j0Tlqquuuuqqq6666qr/Ep/7uZ/7W9dcc82Db731Vn7qp36Kf6vd3V3++q//GoDf/u3f5vjx4wA8+MEP5iEPeQgv/dIvzbFjx3iJl3gJXuIlXgKAS5cucenSJW677TZuu+02brvtNmwjiRfV8ePHeemXfmnu91M/9VP89V//Nf8Wr/M6rwPAk570JJbLJY985CPZ2NjgH/7hH36bq6666qqrrrrqqqv+I1G56qqrrrrqqquuuuo/3Tu+4zt+1ou92Iu9NsBP/dRP8R9pd3cXgL/+67/mr//6r/mpn/opjh8/zoMf/GAe8pCHcPz4cR784Adz7NgxbrnlFu536dIlbrvtNm6//XYuXbrEbbfdxgvy4Ac/mAc/+MEA7O7u8l3f9V3s7u7yb/HSL/3SPPjBD+bo6IgnPelJADzykY/kR37kRz77vvvuu5Wrrrrqqquuuuqqq/4joQc96EFcddVVV1111VVXXfWf58Ve7MVe+3M/93N/C+C7vuu7uPXWW/mvdvz4cR784AfzkIc8hOPHj/PgBz+Y53bp0iVuu+02br/9di5dusSLv/iL8xIv8RI80G/91m/x27/92/x7fM7nfA4Af/RHf8T58+d5qZd6KWaz2a0f8iEf8hCuuuqqq6666qqrrvqPRuWqq6666qqrrrrqqv9UH/7hH/5dAL/1W7/Frbfeyn+H3d1d/vqv/5q//uu/BuD48eMcP36c48eP85CHPISXfumX5tixY7zES7wEL/ESL8Fz293d5ad+6qe49dZb+fd4m7d5GwDOnz/P+fPnOXXqFDfffDOf+Zmf+T5cddVVV1111VVXXfWfgcpVV1111VVXXXXVVf9pPvdzP/e3rrnmmgffeuut/PZv/zb/U+zu7rK7uwvAX//1X/NTP/VTHD9+nAc/+ME85CEP4fjx4zz4wQ/m1ltvBeC7vuu7+Pc6fvw4L/3SLw3Ak570JAAe+chH8g//8A+//Q//8A+/zVVXXXXVVVddddVV/xmoXHXVVVddddVVV131n+Id3/EdP+vFXuzFXhvgp3/6p5HE/2SXLl3ib/7mb/ibv/kbAI4fP87u7i4Akvj3epu3eRsA7rjjDs6fP89NN93EqVOn+Jqv+ZrP4aqrrrrqqquuuuqq/yxUrrrqqquuuuqqq676D/diL/Zir/1O7/ROnw3w3d/93ezu7vK/ze7uLv9RHvzgB/PgBz8YgL/+678G4JGPfCS/9Vu/9d3/8A//8NtcddVVV1111VVXXfWfhcpVV1111VVXXXXVVf/hPvzDP/y7AH77t3+bW2+9lf/v3vqt3xqAv/7rvwbgkY98JBsbG/zoj/7o53DVVVddddVVV1111X8mKlddddVVV1111VVX/Yf63M/93N+65pprHnzrrbfy27/92/x/99qv/docP36c8+fPc8cddwDwyEc+kvvuu+/W++6771auuuqqq6666qqrrvrPROWqq6666qqrrrrqqv8w7/iO7/hZL/ZiL/baAD/90z/NVfDar/3aADzpSU8C4FVe5VUAuOaaax7MVVddddVVV1111VX/2Qiuuuqqq6666qqrrvoPcc011zz4nd7pnT4b4K//+q958IMfzIMf/GCOHz/O/1fv/d7vDcDtt9/O+fPnOXXqFKdOneJ+11xzzYO56qqrrrrqqquuuuo/E5Wrrrrqqquuuuqqq/5DvNiLvdhr80wv/dIvzUu/9EvzQLu7u+zu7rK7uwvArbfeCsDu7i67u7vs7u7yf8mDH/xgHvzgBwPwpCc9CYBHPvKRPP3pTwfgIQ95CGfOnHnwfffddytXXXXVVVddddVVV/1noXLVVVddddVVV1111X+IF3uxF3stgKc85Sncb2tri62tLba2tjh+/DjHjx/nfi/90i/Nc9vd3WV3d5fd3V0Abr31VgB2d3fZ3d1ld3eX/y1e+7VfG4AnPelJLJdLbrrpJk6dOsXP/MzP8Dqv8zpcddVVV1111VVXXfVfgspVV1111VVXXXXVVf8h7rvvvlsB9vf3+Zu/+RseaGtrC4CtrS22trYAuO666wDY2tpia2uLra0tjh8/zvHjx7nfS7/0S/Pcdnd32d3dZXd3F4Bbb70VgN3dXXZ3d9nd3eW/20u/9Evz4Ac/mOVyyZOe9CQAHvnIR/JXf/VX3Hrrrezu7gJwzTXXPPgf/uEfuOqqq6666qqrrrrqPw2Vq6666qqrrrrqqqv+0x0cHABwcHDA/Z7ylKfwQFtbWwBsb2+ztbUFwLXXXgvA1tYWW1tbbG1tcfz4cY4fP879XvqlX5rntru7y+7uLru7uwA84xnPAGB3d5fd3V12d3f5z/Tar/3aAPzN3/wNknjEIx7BxsYGv/3bv40kdnd3AThz5syDuOqqq6666qqrrrrqPxOVq6666qqrrrrqqqv+w9lGEv8aBwcHABwcHCAJgKc85Sk80NbWFgBbW1tsbW0BcO211wKwtbXF1tYWW1tbHD9+nOPHj3O/l37pl+a57e7usru7y+7uLgDPeMYzANjd3WV3d5fd3V3+LV7rtV6L48ePc/78ec6fP89iseCRj3wkv/Vbv8Xu7i5XXXXVVVddddVVV/2XonLVVVddddVVV1111X8K20ji38I2knhuBwcHABwcHHC/pzzlKTzQ9vY2AJubm2xtbQFw3XXXAbC5ucnW1hZbW1scP36c48ePc7+XfumX5rnt7u5y6dIlLl68CMAznvEMAHZ3d9nd3WV3d5cHOn78OK/92q8NwJOf/GQAXuqlXord3V1++7d/m/vdeuutALz4i7/4a//oj/7o53DVVVddddVVV1111X8WKlddddVVV1111VVX/Yd6xCMewSMe8QgODg44ODjg4OCAg4MDDg4OODg44ODggBeFbSTxr7W/v48kDg4OuPfeewF46lOfygNtbW0BsLm5ydbWFgDXXXcdAFtbW2xubrK1tcXx48c5fvw4D3rQgwB46Zd+aR5od3cXgN3dXS5dusSDHvQgAO644w7Onz/PqVOnOHXqFN/1Xd/FVVddddVVV1111VX/LahcddVVV1111VVXXfUf4kd/9Ec/B+Cd3umdPhtga2uLF+Tg4ACAg4MDDg4OuOeeewA4ODjg4OCAg4MD/j1sI4kX5ODgAICDgwPuvfdeAJ761KdyP0lsbW0BsLm5ydbWFgDXXnstAFtbW2xubnL8+HEAjh8/zgM96UlPAuARj3gEt956K7feeisPtLu7C8CZM2cezFVXXXXVVVddddVV/5moXHXVVVddddVVV131H+ZHf/RHP+e3f/u3vwfgzJkzD77mmmse/OEf/uHfBXDrrbdy/Phxjh8/ztbWFgBbW1sAPPzhD+e5HRwcAHDPPfcAcO+99wJwcHDAwcEBBwcHvDC2kcS/hW0ODg4AODg44N577wXgqU99Kg+0tbUFwObmJltbW7zqq74qy+WS5XLJTTfdxKlTp/jZn/1Zrrrqqquuuuqqq676b0Plqquuuuqqq6666qr/UPfdd9+tAPfdd9+t//AP/8CHf/iHfxfAd33Xd3G/48ePA/DgBz8YgIc85CEAHD9+nOPHj3P8+HG2trYAePjDHw7Awx/+cJ7bwcEBBwcHHBwcAHDvvfcCcHBwwMHBAQcHB0ji38I2knhhDg4OADg4OODg4IAHeuQjH8lf//Vfc+utt/Lcdnd3AbjmmmsezFVXXXXVVVddddVV/5moXHXVVVddddVVV131X253dxeAv/7rvwbgr//6r3lux48f5/jx4xw/fhyAhzzkIQAcP36c48ePc/z4cba2ttja2uJ+D3/4w3mgg4MDAA4ODjg8PATgnnvu4eDgAIB7772XF8Y2kvjXesQjHsFiseC3fuu3eEF2d3c5fvw411xzzYPvu+++W7nqqquuuuqqq6666j8Dlauuuuqqq6666qqr/tO82Iu92GsD7O7u8q+1u7vL7u4u9/vrv/5rntvx48c5fvw4x48fB+AhD3kIAMePH+fBD34wW1tbAGxtbXG/hz3sYTzQwcEBAAcHBxweHnJwcMDBwQEHBwcA3HffffxrPfKRj+S3fuu32N3d5QXZ3d3l+PHjnDlz5sH33XffrVx11VVXXXXVVVdd9Z+BylVXXXXVVVddddVV/+l2d3eRxH+0S5cucenSJZ7xjGcA8Dd/8zc80PHjxwE4duwYJ06cAODBD34wx48fB+DBD34wW1tbAGxtbfGCHBwcAHB4eMjBwQEHBwccHh5ycHDA4eEhBwcHbG1tAbBYLNjd3eV3fud3kMRVV1111VVXXXXVVf+tqFx11VVXXXXVVVdd9Z/mmmuueTDA7u4u/x12d3cB2N3d5RnPeAYAf/3Xf80DHT9+HIDjx49z/Phxjh8/zvHjxzl+/DgAD37wg9na2gJga2uLa6+9ln/JT//0T/Mv2d3dBeCaa6558D/8wz9w1VVXXXXVVVddddV/CipXXXXVVVddddVVV/2/tru7C8Du7i4vyPHjxwE4fvw4x48f5/jx4xw/fpzjx49z/Phxjh8/DsDu7i6//du/za233sq/ZHd3F4AzZ848iKuuuuqqq6666qqr/rNQueqqq6666qqrrrrqP82ZM2ceBLC7u8v/Zru7uwDs7u7yghw/fpzd3V2uuuqqq6666qqrrvofhcpVV1111VVXXXXVVf9prrnmmgcD7O7u8n/d7u4u/xq7u7sAXHPNNQ/mqquuuuqqq6666qr/LFSuuuqqq6666qqrrrrqv8Hu7i4A11xzzYO56qqrrrrqqquuuuo/C5Wrrrrqqquuuuqqq/7DXHPNNQ8GOHPmzINf7MVe7LVe7MVe7LUBdnd3ueqqq6666qqrrrrqqv8GVK666qqrrrrqqquu+jd5ndd5nfd+sRd7sde65pprHnzmzJkHX3PNNQ/mBdjd3eWq57S7uwvAmTNnHsxVV1111VVXXXXVVf9ZqFx11VVXXXXVVVdd9a/2Oq/zOu/9Oq/zOu/1Yi/2Yq8NsLu7y+7uLru7u+zu7nLx4kV2d3d5m7d5GwB2d3e56qqrrrrqqquuuuqq/wZUrrrqqquuuuqqq676V3uxF3ux13qxF3ux1wb4rM/6LF6Qt3mbtwFAElc9p0uXLgFwzTXXPJirrrrqqquuuuqqq/6zEFx11VVXXXXVVVdd9e/yNm/zNjw/x48fB2B3d5ernr/d3V0Arrnmmgdz1VVXXXXVVVddddV/BoKrrrrqqquuuuqqq/7V7rvvvlvPnTsHwIMf/GCen+PHjwOwu7vLVc/f7u4uANdcc82Dueqqq6666qqrrrrqPwPBVVddddVVV1111VX/JufPn+eJT3wix48f523e5m14bsePHwdgd3eXq6666qqrrrrqqquu+m9CcNVVV1111VVXXXXVv9rZs2efcerUKb7zO78TgAc/+MEcP36cq/51dnd3AThz5syDueqqq6666qqrrrrqPwOVq6666qqrrrrqqqv+1f7hH/7ht0+fPs2jHvUonvjEJ/KoRz2K13md1+GnfuqnuN/x48cBePCDH8x7vdd78YJIwjYPJAnbPJAkbPNAkrDNA0nCNg8kCds8kCRs80CSsM0DScI2DyQJ2zyQJGzzQJKwzQNJwjYAx48fB+DMmTMP4qqrrrrqqquuuuqq/wxUrrrqqquuuuqqq676V7vvvvtu/a3f+q3vfsu3fMv3/rIv+zK+5Eu+hAc/+MEcP36c3d1dHuj48eMcP36cq16wa6655sFcddVVV1111VVXXfWfgcpVV1111VVXXXXVVf8mP/qjP/o5r/M6r/Pej3rUo3jiE5/Iox71KF7ndV6Hn/qpn+KB7rjjDu644w7uJ4l/LUn8a0nifraRxAPZRhL/VpL415DEc7v++uu54YYbeJ3XeZ33/q3f+q3v+Yd/+Iff5qqrrrrqqquuuuqq/0hUrrrqqquuuuqqq676N7nvvvtu/a3f+q3vfsu3fMv3/rIv+zK+5Eu+hAc/+MGcOHGC3d1dJAGwXC65cOEC95PEv4Uk/jUk8a8liX8NSbyoJPHcTpw4wf0+/MM//Ls+67M+63Xuu+++W7nqqquuuuqqq6666j8KwVVXXXXVVVddddVV/2Y/+qM/+jmnT5/mUY96FH/wB3/A8ePHee3Xfm1eGNv8V7DN/yS2eWGuueaaB7/jO77jZ3HVVVddddVVV1111X8kgquuuuqqq6666qqr/s3uu+++W3/rt37ru9/yLd+Sn/3ZnwXgwQ9+MA9+8IN5YWzzr2Wbfy3b/GvY5l/DNv8R/vqv/xqA13md13nvd3zHd/wsrrrqqquuuuqqq676j4Ie9KAHcdVVV1111VVXXXXVv90111zz4G/6pm96+nd+53fyqEc9ild7tVfjr//6r9nd3eW1X/u1WS6XXPVskrANwGKxAOC3f/u32d3d5a3f+q257777bv2sz/qs17nvvvtu5aqrrrrqqquuuuqqfy/0oAc9iKuuuuqqq6666qqr/n0+/MM//Lte4iVe4r2/7Mu+jC/5ki9hd3eX3/7t3wbgrd/6rbnqBfvt3/5tfvu3fxuAt37rt+alX/qlue+++279kA/5kIdw1VVXXXXVVVddddW/F3rQgx7EVVddddVVV1111VX/PmfOnHnQN3/zN9/6nd/5nTzqUY/i1V7t1fjrv/5rfvu3f5urXrjd3V3ud/z4cd77vd+b48eP86M/+qOf8yM/8iOfzVVXXXXVVVddddVV/x5Urrrqqquuuuqqq676dzt79uwzfuu3fuu73/It3/K9v+zLvoxXe7VX48EPfjDHjx/n1ltv5aoXze7uLj/90z/Ne7/3e/M6r/M67/33f//3v/0P//APv81VV1111VVXXXXVVf9WlOPHj3PVVVddddVVV1111b/frbfe+jfv+I7v+NG33347R0dHPPKRj+T48eP89V//NVe96HZ3dwF4sRd7seMv9mIv9tq/8Au/8DVcddVVV1111VVXXfVvRTl+/DhXXXXVVVddddVVV/37HR4e7l5zzTUPfs3XfM2X/q7v+i7e4A3egOPHj3Prrbeyu7vLVS+63d1drrvuOm688cbj11xzzYP/9E//9Ge46qqrrrrqqquuuurfgnL8+HGuuuqqq6666qqrrvqPceutt/7NO77jO3707bffztHREbfccgvHjx/nr//6r7nqRbdarbj11lt55Vd+ZR7ykIe89D/8wz/8ztmzZ2/lqquuuuqqq6666qp/LYKrrrrqqquuuuqqq/7D3Hfffbf+1m/91ne/5Vu+JT/7sz8LwIMf/GAe8pCHIAlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISly5d4rd/+7cB+PAP//Dv4qqrrrrqqquuuuqqfwvK8ePHueqqq6666qqrrrrq3+6aa6558Cu+4iu+9Su+4iu+1Yd/+Id/94u/+Iu/9sbGBhsbG9xxxx3cfPPNHD9+nL/5m7/hqn+dS5cucd1113HjjTcev+aaax78p3/6pz/DVVddddVVV1111VX/GlSuuuqqq6666qqrrvpXueaaax585syZB7/Yi73Ya73O67zOe19zzTUP5gF2d3e59dZbefSjH82XfdmX8aqv+qo8+MEP5sEPfjC33norV73odnd3+Zmf+Rk+6qM+itd5ndd573/4h3/4nd/6rd/6bq666qqrrrrqqquuelGhBz3oQVx11VVXXXXVVVdd9YJdc801Dz5z5syDX+zFXuy1XvzFX/y1X+zFXuy1eYDd3V3+6q/+CoDf/u3fBuD48eN8zMd8DH/4h3/IE5/4RN7nfd6HW2+9le/5nu/hqn+9l37pl+at3uqtOHv27DM+8zM/87Xvu+++W7nqqquuuuqqq6666kVB5aqrrrrqqquuuuqq53DNNdc8+MyZMw9+sRd7sdd68Rd/8dd5sRd7sdfiAXZ3d/mrv/orAH77t3+b52d3d5ef+qmf4jVf8zX52Z/9WQAe/OAH8+AHP5hbb72Vq/51br31Vm699VYe/OAHP+jDP/zDv+szP/MzX4errrrqqquuuuqqq14UVK666qqrrrrqqquuepZrrrnmwd/0Td/0dB5gd3eXv/qrvwLgt3/7t3lR3XrrrbzN27wNb/mWb8l3fdd38T7v8z681mu9FrfeeitXPafjx48D8OAHP5hjx44B8JCHPATbPPjBD+aBzpw58+Brrrnmwffdd9+tXHXVVVddddVVV131L6Fy1VVXXXXVVVddddWzfNM3fdPTeaa//uu/5rd+67fY3d3l32J3d5ef+qmf4jVf8zX52Z/9WQAe/OAH8+AHP5hbb72V/0+OHz8OwIMf/GCOHTsGwIMf/GCOHz/O8ePH+ZfY5n7XXHPNg8+cOfPg++6771auuuqqq6666qqrrvqXULnqqquuuuqqq6666vl68IMfzL/Xrbfeytu8zdvwlm/5lnzXd30X7/M+78NrvdZrceutt/J/yfHjxwF48IMfzLFjxwB48IMfzPHjxzl+/Dj/EtsA2MY2ALYBsI0kAEopXHXVVVddddVVV131r0Llqquuuuqqq6666qrncOHCBQBOnjzJ+7zP+/Dd3/3d7O7u8m9x6dIlfvqnf5rXeI3X4Gd/9mcBePCDH8yDH/xgbr31Vv63OH78OMePH+f48eMcO3YMgAc/+MEcP36c48eP8y+xDUBmYhsA2wBkJgCSuJ8krrrqqquuuuqqq676D0Hlqquuuuqqq6666qrncOHCBX7wB3+QV3zFV+SN3/iNee/3fm/++q//mt/+7d/m3+LWW2/lrd/6rXnLt3xLvuu7vov3eZ/34bVe67V4xjOewf8Ux48f59ixYxw/fpzjx48D8KAHPYjjx49z/Phx/iW2AWitYRuA1hqSyEwAJPFAkrifJF4QSTy3s2fP3spVV1111VVXXXXVVS8KKlddddVVV1111VVXPcvXf/3Xv8+7vuu7ftcrvuIr8qd/+qcAvPEbvzEv/dIvDcBv//Zv86+1u7vLT//0T/Mar/Ea/OzP/iznz5/nwQ9+MA960IN4xjOewX+F48ePc+zYMY4fP87x48c5fvw4x48f59ixYxw/fpx/SWYC0FrDNgCtNTKTB5LEA0ni+ZHEc5MEgCQkARARAEjifv/wD//w21x11VVXXXXVVVdd9aKictVVV1111VVXXXXVczh58iRv/MZvDMAv//IvA/DGb/zGvPZrvzYAv/3bv82/1q233spbv/Vb85Zv+Zb87M/+LO/zPu/DW73VW/G1X/u1/Ec4fvw4x44d4/jx4xw/fpzjx49z7Ngxjh8/zvHjx/mXZCYA0zSRmUhimiZsk5lI4n6SeCBJPD+SeCBJAEgiIgCICAAighfV13/917/PfffddytXXXXVVVddddVVV70o0IMe9CCuuuqqq6666qqrrnq2a6655sHf9E3f9HSAX/7lX+aXf/mXeeM3fmPe+I3fGIC//uu/5qd/+qf513rpl35pXuM1XoMv+7Iv4xM+4RM4deoU3/M938MznvEM/iXHjx/n2LFjHD9+nOPHj3P8+HGOHTvG8ePHOX78OP+SzKS1hm1aawC01shMMhMASdxPEveTxANJ4n6SuJ8kJCGJUgoApRQAIoJ/ye7uLgC7u7vceuutAOzu7rK7u8uDH/xgXvu1XxuA++6779bP+qzPep377rvvVq666qqrrrrqqquu+pegBz3oQVx11VVXXXXVVVdd9ZyuueaaB3/O53zOb11zzTUPfspTnsLXf/3Xc/LkST7zMz8TgN3dXb76q7+af43jx4/z0R/90fzhH/4hT3rSk3jv935vdnd3+dqv/VqOHz/OsWPHOH78OMePH+f48eMcO3aMBz/4wbwoWmtkJq01MhOAaZrITDITAEk8kCTuJ4kHksT9JAEQEQBEBKUUACICSZRS+Jfs7u4CsLu7y6233grA7u4uu7u73HrrrfxLjh8/znu/93tz/Phx7rvvvlt/67d+67t/9Ed/9HO46qqrrrrqqquuuuqFQQ960IO46qqrrrrqqquuuup5XXPNNQ/+nM/5nN+65pprHnzhwgW+/uu/HoAP//AP5+TJk+zu7vLd3/3d7O7u8qJ66Zd+aV7jNV6D7/qu7+J93ud9OHXqFC+K1hqtNTKT1hqZSWuNzCQzuZ8kHkgS95PEA0nifpKICAAiglorABFBRFBK4UWxu7vL7u4ut956KwC7u7vs7u5y66238h/h+PHjvPRLvzSv/dqvDcCP/MiPfPaP/uiPfg5XXXXVVVddddVVV70g6EEPehBXXXXVVVddddVVVz1/Z86cedBHfMRHfPeLvdiLvfaFCxf4+q//egA+/MM/nJMnT7K7u8t3f/d3s7u7y4vi+PHjvPd7vzePe9zjOH/+PG/xFm8BQGuN1hqtNVprZCatNVprtNaQxP0k8UCSuJ8kHkgS95NERBARdF0HQEQQEdRaeVHs7u6yu7vLrbfeCsDu7i67u7vceuut/Fd67dd+bV77tV8bgLNnzz7jMz/zM1/7vvvuu5Wrrrrqqquuuuqqq54betCDHsRVV1111VVXXXXVVS/YNddc8+DXfu3Xfq93eqd3+uwLFy7wgz/4g1y8eJF3eZd34eEPfzi7u7v89m//Nn/913/Ni+KlX/qleY3XeA2e+MQn8qqv+qrs7+9zcHCAJO4niQeSxP0k8UCSuF8phVIKtVYkERFEBF3X8aLY3d1ld3eXW2+9FYDd3V0uXrzIM57xDP6nOX78OO/93u/N8ePHue+++279rd/6re/+0R/90c/hqquuuuqqq6666qoHQg960IO46qqrrrrqqquuuuqFu+aaax782q/92u/1Tu/0Tp994cIF/vRP/5Q/+7M/4xVe4RV44zd+Y3Z3d/nrv/5rfud3fod/yfHjx3mv93ovjh8/DsD+/j6Hh4c8kCTuJ4n7lVIopdB1HQClFEopdF3Hi2J3d5fd3V1uvfVWAC5dusTu7i633nor/1q2+e92/PhxXvqlX5rXfu3XBuBHfuRHPvtHf/RHP4errrrqqquuuuqqq+6HHvSgB3HVVVddddVVV1111YvmHd/xHT/rnd7pnT77woUL/Omf/im/8iu/whu90Rvxxm/8xgD89m//Nr/zO7/Dv+SlX/qleau3eisAlsslly5dAqCUQimFvu8BKKVQSqHve14Uu7u77O7usru7y+7uLpcuXWJ3d5dbb72V/8te67Vei9d+7dcG4L777rv1sz7rs17nvvvuu5Wrrrrqqquuuuqqq9CDHvQgrrrqqquuuuqqq6560b3jO77jZ73TO73TZwP88i//Mr/yK7/CG73RG/HGb/zGAPz2b/82v/M7v8MLc/z4cd7rvd6L48eP01qjlMKLYnd3l93dXXZ3d9nd3WV3d5dLly5x66238v/d8ePHea/3ei+OHz/O2bNnn/F1X/d17/0P//APv81VV1111VVXXXXV/2/oQQ96EFddddVVV1111VVX/eu82Iu92Gt/7ud+7m8B/PIv/zK/8iu/wiu+4ivyLu/yLgD89V//NT/zMz/DC/PSL/3SvNRLvRQPfvCDud/u7i67u7vs7u6yu7vLpUuX2N3d5dZbb+Wq5+/48eO81Eu9FA9+8IN58IMfzP1+67d+67u//uu//n246qqrrrrqqquu+v8NPehBD+Kqq6666qqrrrrqqn+9a6655sGf8zmf81vXXHPNg//0T/+UH/qhH+LkyZN82Id9GCdPnmR3d5fv+Z7vYXd3lxfk+PHjHDt2jGc84xlc9aI5fvw4D37wgzl27Biv/dqvzXOrtTJNE/fdd9+tH/IhH/IQrrrqqquuuuqqq/5/oxw/fpyrrrrqqquuuuqqq/71Dg8Pdx/ykIe89EMe8pCXvvHGG3nFV3xF/uzP/ow/+7M/4yVe4iU4ceIEj370o3niE5/IarXi+VmtVly6dImrXrjjx4/zSq/0SrzO67wOb/RGb8SjH/1oHvzgBwNQa2V7e5utrS3OnDlD13UcHh5y6623/vVv/dZvfQ9XXXXVVVddddVV/7+hBz3oQVx11VVXXXXVVVdd9aK75pprHvzar/3a7/VO7/ROn81zuXDhAt/wDd8AwId92Idx8uRJdnd3+Zmf+RluvfVWrnrRHD9+nJd6qZcC4LVf+7V5brVWNjc32draotbK/WyzWq247777+Id/+Iff/szP/MzX4aqrrrrqqquuuur/N/SgBz2Iq6666qqrrrrqqqv+Zddcc82DX/u1X/u93umd3umzeabd3V1+67d+i1tvvZWXfumX5nVe53W4cOEC3/AN3wDAK77iK/JGb/RG7O7u8td//df8zu/8Dlc9f8ePH+elXuqlePCDH8yDH/xgHqjWytbWFrPZjPl8zvOzWq1YrVYcHh4yTRO/9Vu/9d1f//Vf/z5cddVVV1111VVX/f9G5aqrrrrqqquuuuqqF+qaa6558Du+4zt+1uu8zuu8N8/027/92/z1X/81u7u73O9v/uZvkMRrv/Zr82Ef9mH8yq/8Cn/2Z38GwBu90Rvx0i/90kjit3/7t7kKjh8/zku91EsB8Nqv/do8t/l8znw+Z2tri1orD2SbaZo4ODhgvV6zWq14oH/4h3/4na//+q9/H6666qqrrrrqqquuonLVVVddddVVV1111fP1Oq/zOu/9Tu/0Tp995syZB/FMv/3bv81f//Vfs7u7y3Pb3d3lt3/7twF47dd+bd7ojd6IP/uzP+NXfuVXAHijN3ojXuu1Xgvb/M7v/A7/Hx0/fpyXeqmX4qVf+qU5fvw4D1RrZWtri/l8znw+5/lZrVasVisODg6YpokHuu+++279rd/6re/+h3/4h9/5h3/4h9/mqquuuuqqq6666ioAKlddddVVV1111VVXPYd3fMd3/KzXeZ3Xee9rrrnmwQC7u7v89V//Nb/927/Ni+K3f/u3AXjt135t3uiN3giAX/mVXwHgjd7ojXjt135tTpw4wc/8zM/wf93x48d5qZd6KR70oAfx4Ac/mAeqtVJrZT6fc+LECZ6bbaZp4uDggNVqxWq14oF2d3cBOH78OA/0D//wD7/NVVddddVVV1111VX3Qw960IO46qqrrrrqqquu+v/ummuuefBrv/Zrv9c7vdM7fTbPtLu7y1//9V/z27/92/xbPPjBD+a93/u9AfiVX/kVfuVXfoUTJ07wGZ/xGQDs7u7ytV/7tfxf86AHPYgHP/jBvNRLvRTHjx/ngWqtbG1tsVgsmM/nPD+r1YrlcsnBwQHTNPFAu7u7/PVf/zW33nort956K8ePH+fBD34wL/3SL82DH/xgAO67775bf/u3f/t7fuu3fuu777vvvlu56qqrrrrqqquu+v8NPehBD+Kqq6666qqrrrrq/6trrrnmwa/92q/9Xu/0Tu/02TzT7u4uv/3bv81f//Vf8+91/Phx3vu935vjx4/zZ3/2Z/zQD/0QJ0+e5EM/9EM5efIku7u7fO/3fi+7u7v8b3X8+HFe6qVeigc/+ME86EEP4oFqrdRaWSwWnDhxggeyDcA0Tezv77NarVitVjzQ7u4uf/3Xfw3Ab//2b/PCvPRLvzQv/dIvzYMf/GAA7rvvvlv/4R/+4bd/67d+63v+4R/+4be56qqrrrrqqquu+v8JPehBD+Kqq6666qqrrrrq/5trrrnmwe/4ju/4Wa/zOq/z3jzTX//1X/Pbv/3b7O7u8h/p+PHjvPd7vzfHjx/n4sWLfMM3fAMAH/qhH8rJkyfZ3d3le7/3e9nd3eV/g+PHj3Ps2DEe/OAH81Iv9VIcP36cB6q1sr29zXw+Z7FY8NymaWIcR1arFRcvXuS57e7u8td//dc8/elP5xnPeAb/WsePH+e1X/u1eemXfmnu91u/9Vvf/Vu/9Vvf8w//8A+/zVVXXXXVVVddddX/L+hBD3oQV1111VVXXXXVVf9fvNiLvdhrf/iHf/h3XXPNNQ/mmX77t3+bv/7rv2Z3d5f/LMePH+e93/u9OX78OBcuXOAbv/EbAXjnd35nHv7wh7O7u8vv/M7v8Dd/8zf8T3T8+HFe6qVeigc96EE8+MEP5oFqrWxvbwNw4sQJnp9pmtjf32e5XLJarXig3d1d/vqv/xqA3/7t3+Y/yvHjx3npl35pXvu1X5v73Xfffbd+/dd//fv8wz/8w29z1VVXXXXVVVdd9f8DetCDHsRVV1111VVXXXXV/xfv+I7v+Fnv9E7v9NkAf/3Xf81P//RP81/l+PHjvPRLvzSv/dqvzYULF/jGb/xGAF7hFV6BN3qjN2J3d5e/+Zu/4Xd+53f473b8+HGOHTvGgx/8YF7rtV6L51ZrZXt7m8ViwWKx4LmN48g4jqxWKy5evMhz293d5a//+q+59dZbufXWW/nPdPz4cV77tV+bl37plwbgt37rt77767/+69+Hq6666qqrrrrqqv8f0IMe9CCuuuqqq6666qqr/j+45pprHvxN3/RNT+eZdnd3ufXWW/nt3/5tdnd3+a9w/PhxXvqlX5rXfu3X5sKFC/zKr/wKf/7nf84bvuEb8kZv9EYA/M7v/A6/8zu/w3+148eP81Iv9VI86EEP4sEPfjAPVGtle3sbgJMnT/L8TNPE3t4eq9WK5XLJA+3u7vLXf/3XAPz2b/82/1WOHz/OS7/0S/Par/3aPNCHfMiHPOS+++67lauuuuqqq6666qr/+6hcddVVV1111VVX/T/067/+67z+678+L/3SL82DH/xg/vqv/5q//uu/Znd3l/9Mu7u7/PZv/zYAr/3ar80bvdEbcfLkSX71V38VgDd6ozfitV7rtQD4nd/5Hf4zHT9+nAc96EEcP36c13qt1+K51VrZ3t5msViwWCx4btM0MY4jy+WSixcv8tx2d3f567/+a2699VZuvfVW/isdP36cl37pl+a1X/u1ud+lS5fY3Nyk1spVV1111VVXXXXV/yNUrrrqqquuuuqqq/6fuXjxIr/+67/OX/zFX/ByL/dyvP7rvz6v/dqvzUu/9Evz13/91/zO7/wO/9l+53d+B4DXfu3X5o3e6I0A+NVf/VUuXrzIO7/zO/Nar/VaPOhBD+J7v/d7+Y90/PhxXuqlXooHPehBPPjBD+aBaq3s7OxQa2VnZwcA2zzQNE3s7e2xWq1YLpc80O7uLn/9138NwO/8zu/wQJL4l9jm3+v48eO89Eu/NK/92q/N/S5dusTR0RHTNHHs2DEA7rvvvlu56qqrrrrqqquu+v8BPehBD+Kqq6666qqrrrrq/4t3fMd3/Kx3eqd3+uyLFy/y67/+6/zlX/4lJ06c4PVe7/V4uZd7OQB2d3f567/+a37nd36H/2wv/dIvzVu91VsB8Cu/8iv86q/+KidPnuRDPuRDOHnyJLu7u3zf930fu7u7/FscP36cl3zJlwTgtV7rtXhutVZ2dnbY3t6m6zqe2ziOTNPEcrnkwoULPLfd3V3++q//mmc84xnceuut/Hc5fvw4L/VSL8Vrv/Zrc7/1es2FCxdordH3PSdPnqTWyo/8yI989o/+6I9+DlddddVVV1111VX/P6AHPehBXHXVVVddddVVV/1/cc011zz4cz7nc37rmmuueTDAxYsX+fEf/3Ge9rSnceLECV7v9V6Pl3u5lwNgd3eXv/mbv+G3f/u3+c90/Phx3uu93ovjx4/zZ3/2Z/zwD/8wJ06c4EM/9EM5efIku7u7fN/3fR+7u7u8KI4fP85LvuRL8uAHP5gHPehBPFCtlZ2dHRaLBYvFgudnHEf29/dZLpcsl0seaHd3l7/+678G4Hd+53f4n+C1Xuu1eO3Xfm3ut16vuXDhAq01SimcPHmS2WwGwH333Xfr13/917/PP/zDP/w2V1111VVXXXXVVf8/oAc96EFcddVVV1111VVX/X9yzTXXPPi1X/u13+t1Xud13vuaa655MMDTnvY0fuM3foOnPe1pnDhxgrd/+7fnoQ99KAC7u7v89V//Nb/zO7/Df5bjx4/zXu/1Xhw/fpwLFy7wBV/wBZw8eZIP+ZAP4eTJk+zu7vKzP/uzPOMZz+C5HT9+nJd8yZcE4LVe67V4bovFgsViwfb2Nl3X8dzGcWSaJpbLJRcuXOC57e7u8td//dc84xnP4NZbb+V/itd6rdfitV/7tblfa42LFy+yXq8ppXDixAlmsxkA9913362/9Vu/9d0/+qM/+jlcddVVV1111VVX/f+CHvSgB3HVVVddddVVV131/9E111zz4Nd+7dd+r3d6p3f6bJ7pL/7iL/iN3/gNLl68yIkTJ3j7t397HvrQhwKwu7vLX//1X/M7v/M7/Gc4fvw47/Ve78Xx48e5ePEi3/iN3wjAy7/8y/NGb/RGXLp0ib/+67/md3/3dzl+/Dgv+ZIvyUu/9Etz7NgxHqjWys7ODovFgsViwfMzjiP7+/ssl0uWyyUPtLu7y1//9V8D8Du/8zv8T/Nar/VavPRLvzTHjx8HoLXGxYsXWa/XlFLY2dlhY2OD+/3Ij/zIZ//oj/7o53DVVVddddVVV131/xN60IMexFVXXXXVVVddddX/Z9dcc82DX/u1X/u93umd3umzAS5evMjTnvY0fuM3foOLFy/yci/3crzsy74sD33oQwHY3d3lr//6r/md3/kd/qMdP36cl3qpl+K1X/u1uXDhAt/0Td8EwMu//MvzRm/0Ruzu7nL8+HEeqNZK13UsFgtOnjzJ8zOOI9M0sVwuuXDhAs9td3eXv/7rv+bWW2/lGc94Bv8TPfjBD+at3uqtOH78OACtNfb39zk6OqKUwsbGBtvb2zy3++6779Z/+Id/+O1/+Id/+J3f+q3f+m6uuuqqq6666qqr/n9BD3rQg7jqqquuuuqqq666Cs6cOfOg13md13nvd3qnd/psgIsXL/KXf/mX/MVf/AUAD33oQ3m913s9Tpw4AcDu7i6/8zu/w1//9V/zH+n48eO81Eu9FK/92q/NhQsX+NVf/VX+7M/+jDd6ozfiDd/wDQHouo7t7W02NjZYLBY8P+M4sre3x3K5ZLlc8kC7u7v89V//NQC/8zu/w/9kD37wg3mrt3orjh8/DkBrjaOjIw4ODogINjY22N7e5n6/9Vu/xe7uLg95yEM4fvw4D37wg3mg++6779Z/+Id/+O0f/dEf/Zz77rvvVq666qqrrrrqqqv+b0MPetCDuOqqq6666qqrrrrq2a655poHv/Zrv/Z7vdM7vdNnA1y8eJG/+Iu/4Dd+4zc4ceIED3nIQ3j91399Tpw4AcDu7i4/8zM/w6233sp/pNd6rdfitV/7tblw4QJ/9md/xtOe9jQ+5EM+hMViwU033cRzG8eRaZo4OjriwoULPLfd3V3++q//mmc84xnceuut/E93/Phx3uqt3ooHP/jBALTWODo64uDggFIKi8WC7e1t7vdbv/Vb/PVf/zW7u7s80PHjx3nwgx/MQx7yEF76pV+a+/3Ij/zIZ//2b//299x33323ctVVV1111VVXXfV/F3rQgx7EVVddddVVV1111VXP65prrnnwO77jO37W67zO67w3wMWLF/mLv/gLfuM3foOTJ0/ysi/7srzsy74sJ06cAGB3d5ef+Zmf4dZbb+U/ymu91mvx2q/92gA89alP5WEPexiLxYKbbroJgHEc2dvbY7lcslwueaDd3V3++q//GoDf+Z3f4X+L48eP81Zv9VY8+MEPBqC1xnK55ODgAIDNzU22t7e536233spP//RPs7u7y7/kwQ9+MO/93u/N/T7kQz7kIffdd9+tXHXVVVddddVVV/3fhR70oAdx1VVXXXXVVVddddULds011zz4wz/8w7/rxV7sxV4b4OLFi/zFX/wFv/mbv8mJEyd42Zd9WV7v9V6P+/31X/81f/M3f8Ott97Kf4SXfumX5q3e6q2432KxYLFYcOHCBZ7b7u4uf/3Xf80znvEMbr31Vv43OX78OK/1Wq/FS7/0SwPQWmO5XHJwcADA1tYWW1tb3G93d5ef/umf5tZbb+VFcfz4cT76oz+aB/qQD/mQh9x33323ctVVV1111VVXXfV/F5Wrrrrqqquuuuqqq/5VTpw4weu//uvzci/3cvzlX/4lv/Ebv8Ff/MVf8HIv93K83uu9Hi/90i/NS7/0S/M3f/M3/M7v/A67u7v8e/zN3/wNz3jGM3jP93xPjh8/znK5ZLlcArC7u8vf/M3fAPA7v/M7PJAk/jc4fvw4r/Var8VLvdRLcb+DgwMODw8B2NraYrFYUEoBYHd3l5/+6Z/m1ltv5UV1/PhxPvqjPxqAS5cuAXDs2DGuuuqqq6666qqr/h9AD3rQg7jqqquuuuqqq6666vl7sRd7sdf+3M/93N8C2N3d5ad/+qc5fvw4L/3SL82DH/xgAC5evMhv/MZv8Jd/+ZecOHGCl33Zl+X1Xu/1ANjd3eUZz3gGv/M7v8Pu7i7/HseOHePBD34wr/Var8Xf/M3fcOutt/KMZzyD/62OHz/OS73US/Far/Va3O/w8JDDw0MAuq5jZ2eHUgoAu7u7/PZv/zZ//dd/zb/Ggx/8YN77vd8bgEuXLrFarbj22mv5kR/5kc/+0R/90c/hqquuuuqqq6666v829KAHPYirrrrqqquuuuqqq57X67zO67z3h3/4h38XwK233sp3f/d3c7/jx4/z4Ac/mNd+7dfm+PHjAFy8eJEf//Ef5+lPfzonTpzgZV/2ZXm913s9AHZ3d/mbv/kb/uZv/obd3V3+Pzt+/Dgv9VIvxWu91mtxv8PDQw4PDwHouo6dnR1KKQDs7u7y13/91/z2b/82/1oPfvCDee/3fm8ALl26xGq14tprr+W+++679eu//uvf5x/+4R9+m6uuuuqqq6666qr/29CDHvQgrrrqqquuuuqqq656Th/+4R/+Xa/zOq/z3gC//du/zW//9m/z/Bw/fpyXfumX5qVf+qU5fvw4ABcvXuTHf/zHefrTn86JEyd42Zd9WV7v9V4PgN3dXf7mb/6G3/md3+H/m+PHj/NSL/VSvNZrvRb3Ozw8ZL1e01qjlMLW1hZ93wOwu7vLX//1X/Pbv/3b/Fs8+MEP5r3f+70BuHTpEqvVimuvvZb77rvv1q//+q9/n3/4h3/4ba666qqrrrrqqqv+70MPetCDuOqqq6666qqrrrrqimuuuebBH/7hH/5dL/ZiL/baAN/93d/Nrbfeyr/k+PHjvPRLvzSv/dqvzf3+8i//kr/4i7/g6U9/OidOnOD1Xu/1eNmXfVkAdnd3+Zu/+Rt+53d+h//rjh8/zku91EvxWq/1WtxvHEf29/dprVFKYWNjg/l8DsDu7i5//dd/zW//9m/zb/XgBz+Y937v9wbg0qVLrFYrrr32Wu67775bv/7rv/59/uEf/uG3ueqqq6666qqrrvr/AT3oQQ/iqquuuuqqq6666ip4sRd7sdf+3M/93N8C2N3d5ad/+qe59dZb+dc4fvw4L/3SL81rv/Zrc7+//Mu/5Dd+4ze4ePEiJ06c4PVe7/V42Zd9WQB2d3f5m7/5G37nd36H/4te67Vei9d6rdfifuM4sr+/T2YSEWxsbDCfzwHY3d3lr//6r/nt3/5t/j0e/OAH897v/d4A3HvvvQBce+21AHz913/9+/zWb/3Wd3PVVVddddVVV131/wd60IMexFVXXXXVVVddddX/d+/4ju/4We/0Tu/02QC33nor3/3d382/x/Hjx3npl35pXvu1XxuAixcv8vSnP53f+I3fYHd3lxMnTvB2b/d2POQhDwFgd3eXv/mbv+F3fud3+L/gtV7rtXit13ot7peZHBwcMI4jEcFsNmNjY4P7/fZv/za//du/zb/Xgx/8YN77vd8bgHvvvZf5fM6xY8fY3d3l+PHj3Hfffbd+/dd//fv8wz/8w29z1VVXXXXVVVdd9f8DetCDHsRVV1111VVXXXXV/2ef+7mf+1sv9mIv9toAv/3bv83v/M7v8B/l+PHjvNRLvRSv/dqvDcDFixf5y7/8S/7qr/6KixcvcuLECd7u7d6OhzzkIQDs7u7yN3/zN/zO7/wO/xu91mu9Fi/1Ui/F8ePHAchMDg4OmKYJScxmMzY2Nrjfb//2b/Pbv/3b/Ed48IMfzHu/93sDcO+99zKfzzl27Bi7u7v81m/9Fm/zNm8DwGd+5me+zj/8wz/8NlddddVVV1111VX/P1COHz/OVVddddVVV1111f9H11xzzYM/6ZM+6ade7MVe7LUBvud7voe/+Zu/4T/SarXiGc94Bn/zN3/DarXiMY95DA996EN5zGMew3w+5/GPfzx/+Zd/ye7uLovFguuvv54HP/jBvNRLvRTz+ZxnPOMZ/G/woAc9iPd6r/fi0Y9+NPP5nMzk6OiIw8NDAObzOdvb23RdB8Bf//Vf8yM/8iM88YlPRBKSkIQkJCEJSUhCEpKQhCQkIQlJSEISD3nIQ3jv935vAO69917m8znHjh1jd3eXr/qqr+JN3uRNOH78OAC/9Vu/9T1nz569lauuuuqqq6666qr/H9CDHvQgrrrqqquuuuqqq/6/ebEXe7HX/tzP/dzfAtjd3eVnfuZnuPXWW/nPdvz4cV7rtV6Ll37plwbg4sWL/NVf/RW/8Ru/wYkTJ3jIQx7C677u63LixAkAdnd3+d3f/V3+5m/+hv8stvm3etCDHsRbvdVbcfz4cQAyk/V6zWq1AmA+n7NYLLjfrbfeys/8zM+wu7vLf5QHP/jBvNd7vRcA9957L/P5nGPHjrG7u8tXfdVXAfA5n/M53O9DPuRDHnLffffdylVXXXXVVVddddX/D+hBD3oQV1111VVXXXXVVf+fvOM7vuNnvdM7vdNnA9x66618z/d8D//Vjh8/zlu91Vvx4Ac/GICLFy/yl3/5l/zmb/4mJ06c4CEPeQiv+7qvy4kTJwDY3d3lZ3/2Z3nGM57B/wTHjx/nLd/yLXnQgx4EQGYyDAOr1QrbzOdzFosF99vd3eVnfuZnuPXWW/mP9OAHP5j3eq/3AuC2227j2LFjHDt2jN3dXb7qq74KgLd5m7fhpV/6pQH4rd/6re/++q//+vfhqquuuuqqq6666v8P9KAHPYirrrrqqquuuuqq/y8+93M/97de7MVe7LUBfvu3f5vf+Z3f4b/T8ePHeau3eise/OAHA3Dx4kX+8i//kt/8zd/kxIkTvMzLvAwv+7Ivy4kTJwDY3d3lZ3/2Z3nGM57Bf4fjx4/zlm/5ljzoQQ8CIDMZhoHVagXAfD6n73siAoDd3V1+5md+hltvvZX/aC/90i/NW73VWwHwpCc9iWuvvZZjx46xu7vLV33VV3G/j/mYj+H48eMAfP3Xf/37/NZv/dZ3c9VVV1111VVXXfX/B3rQgx7EVVddddVVV1111f9111xzzYM//MM//Lte7MVe7LV3d3f5mZ/5GW699Vb+p3jpl35pXuu1Xovjx48DsLu7y2/8xm/wl3/5l5w4cYKXfdmX5XVf93W539/8zd/wN3/zNzzjGc/gv8Lx48d5zdd8TV7qpV4KgMxkGAbW6zUApRQ2NjaICAB2d3f5nd/5Hf76r/+a/wwv/dIvzVu91VsB8OQnP5lrrrmGY8eOsbu7y1d91Vdxv5d+6Zfmbd7mbbjf273d24mrrrrqqquuuuqq/1/Qgx70IK666qqrrrrqqqv+L3uxF3ux1/7cz/3c3wLY3d3le77ne9jd3eV/muPHj/PgBz+Y13qt1+L48eMAXLx4kZ/4iZ/g6U9/OidOnOBlX/Zled3XfV3u9zd/8zf87u/+Lru7u/xnOH78OK/5mq/JS73US3G/9XrNer3GNhHBYrGg1grA7u4uf/3Xf83v/M7v8J/lpV/6pXmrt3orAJ785CdzzTXXcOzYMW699Va+67u+iwd6n/d5Hx784AcD8Fu/9Vvf8/Vf//XvzVVXXXXVVVddddX/L+hBD3oQV1111VVXXXXVVf9XveM7vuNnvdM7vdNnA9x66618z/d8D//THT9+nJd6qZfipV/6pTl+/DgAFy9e5Cd/8id5+tOfzvHjx3nZl31ZXvd1XxeA3d1dnvGMZ/C7v/u77O7u8h/h+PHjvORLviSv9Vqvxf3W6zXr9RqAiGA+n1NrBWB3d5e//uu/5nd+53f4z/TSL/3SvNVbvRUAT37yk7nmmms4duwYt956K9/1Xd/Fc/ucz/kc7vchH/IhD7nvvvtu5aqrrrrqqquuuur/F/SgBz2Iq6666qqrrrrqqv+Lrrnmmgd/0zd909MBdnd3+Zqv+Rr+Nzl+/Dgv9VIvxWu/9mtzv7/8y7/kr/7qr3j605/O8ePHedmXfVle93VfF4Dd3V3+5m/+hr/9279ld3eXf4vjx4/zki/5krzWa70W91uv1wzDAEBE0Pc9XdcBsLu7y1//9V/zO7/zO/xne+mXfmne6q3eCoAnP/nJXHPNNRw7doxbb72V7/7u7+a5vfVbvzUv/dIvDcBv/dZvfffXf/3Xvw9XXXXVVVddddVV//9Qjh8/zlVXXXXVVVddddX/RZ/0SZ/0U9dcc82DAebzOa/92q/NS7/0SzOfz5HE7u4u/5OtViue8Yxn8Dd/8zesVise/OAHc/311/OyL/uyHD9+nKc//ek8/vGP5y//8i9ZrVY85jGP4cEPfjCPfvSjmc1mPOMZz+BFdfz4cV7xFV+Rd3zHd+TBD34wAMMwsFqtmKaJiKDrOhaLBaUUAH77t3+bH/mRH+EZz3gG/9ne6q3eitd+7dcG4O///u+54YYbOHbsGLfeeivf/d3fzfPzxm/8xszncwB+4Rd+4WtuvfXWv+aqq6666qqrrrrq/x/0oAc9iKuuuuqqq6666qr/iz73cz/3t17sxV7stf/6r/8agJd+6ZfmgXZ3d/nrv/5rnvGMZ3DrrbfyH0ES/1mOHTvGS7/0S/Nar/VaAFy8eJG/+qu/4i//8i/Z3d3l+PHjvO7rvi4v+7IvC8Du7i5/8zd/w+/+7u/yghw/fpyXfMmX5LVe67W4X2uN1WqFbSTRdR1933O/3/7t3+Z3fud3+K/yVm/1Vrz0S780AH//93/PzTffzLFjx7j11lv57u/+bp6fl37pl+at3/qtud/bvd3biauuuuqqq6666qr/nyjHjx/nqquuuuqqq6666v+iF3uxF3vthzzkIS/9+Mc/nl/+5V/mr//6r7nnnntYr9dcd911zOdzHvzgB/PSL/3SvPRLvzTXX3898/mce++9F0lIQhKSkIQkJCEJSUhCEpKQhCT+M63Xa57xjGfwN3/zN6xWKx796EfzkIc8hMc85jEsFgvuvvtu/uqv/oq//Mu/ZD6f85CHPIQHP/jBvNRLvRSLxYJnPOMZPNBrvuZr8o7v+I48+MEPBqC1xmq1YpomJNF1HYvFglIKAL/zO7/D937v9/KMZzwDSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUjird/6rXnpl35pAP7+7/+em2++mWPHjnHrrbfy3d/93bwgb/zGb8zx48cB+K3f+q3v/tM//dOf4aqrrrrqqquuuur/J/SgBz2Iq6666qqrrrrqqv+LXuzFXuy1P/zDP/y7rrnmmgfv7u5y66238vSnP52//uu/5vjx4xw/fpwHP/jBPOQhD+HBD34w99vd3eUZz3gGt956K3/zN3/D/1THjx/npV7qpXit13otAC5evMhf/dVf8Zu/+ZsAHD9+nLd7u7fjIQ95CAC7u7v87d/+LQCv+Zqvyf1ss16vyUwAaq30fc/9br31Vn72Z3+W3d1d/iu95Vu+JS/90i8NwN///d9z8803c+zYMW699Va++7u/mxfmsz/7s7nfh3zIhzzkvvvuu5Wrrrrqqquuuuqq/5/Qgx70IK666qqrrrrqqqv+r3rHd3zHz3rxF3/x136xF3ux1+aZdnd3ufXWW3n605/OX//1XwNw/PhxXvqlX5qHPOQhPPjBD+Z+u7u77O7u8oxnPINbb72VZzzjGfxPc/z4cV7rtV6Ll3qplwJgd3eXv/zLv+Q3f/M3AThx4gRv+7Zvy0Me8hAeyDbDMNBaA6DrOrqu43633norP/uzP8vu7i7/1d7qrd6Kl3qplwLgKU95CmfOnOHYsWPceuutfPd3fzcvzFu/9Vvz0i/90gD81m/91nd//dd//ftw1VVXXXXVVVdd9f8XetCDHsRVV1111VVXXXXV/3XXXHPNg1/7tV/7vV78xV/8tV/sxV7stXmm3d1ddnd3efrTn86tt97KrbfeyvHjx3nIQx7CS7/0S/PgBz+YB9rd3eVv/uZvuPXWW3nGM57B/yTHjx/nLd/yLXnwgx8MwMWLF/mrv/orfuu3fguAl3mZl+Ft3/ZtARiGgdYaALVWuq7jfru7u/zMz/wMz3jGM/jv8J7v+Z48+MEPBuApT3kKZ86c4dixY9x6661893d/N/+Sj/7oj+b48eMAfP3Xf/37/NZv/dZ3c9VVV1111VVXXfX/F3rQgx7EVVddddVVV1111f8n11xzzYNf7MVe7LVe53Ve571f7MVe7LV5gN3dXf7qr/6KW2+9lWc84xkcP36cBz/4wTz4wQ/mpV/6pXmg3d1dnvGMZ/DXf/3XPOMZz+B/igc96EG81mu9Fg9+8IMBuHjxIn/913/Nb/7mb/J5n/d5ACyXS2qt1FqRBMDu7i4/8zM/wzOe8Qz+u7zne74nD37wgwF4ylOewpkzZzh27Bi33nor3/3d382/5KVf+qV567d+a+73dm/3duKqq6666qqrrrrq/zf0oAc9iKuuuuqqq6666qr/r6655poHv9iLvdhrv9iLvdhrvc7rvM578wC7u7vceuut/PVf/zW33norx48f5/jx47z0S780D37wgzl+/Dj3293d5RnPeAa33norf/M3f8P/BC/1Ui/Fa73Wa3H8+HEAdnd3OX78OAC2kQTA7u4uv/M7v8Pf/M3f8N/pPd/zPXnwgx8MwFOe8hTOnDnDsWPHuPXWW/nu7/5uXhTv/d7vzYMf/GAAfuu3fuu7v/7rv/59uOqqq6666qqrrvr/DT3oQQ/iqquuuuqqq6666ip4ndd5nff68A//8O/m+djd3eXWW2/l1ltv5a//+q8BOH78OC/90i/Ngx/8YB784Adzv93dXXZ3d/mbv/kbnvGMZ7C7u8t/l+PHj/OgBz2I13qt1+L48eM80O7uLn/zN3/D7/zO7/Df7T3f8z158IMfDMBTnvIUzpw5w7Fjx7j11lv57u/+bl5Un/3Zn839PuRDPuQh9913361cddVVV1111VVX/f9G5aqrrrrqqquuuuqqy86cOfNgnulnfuZnuPXWW3mpl3opHvzgB/PgBz+Yl37pl+alX/qlee3Xfm1uvfVWbr31Vn77t38bgOPHj/PgBz+Yl37pl+bBD34wx48f58EPfjAAu7u7/M3f/A233norz3jGM/ivtLu7y+7uLrfeeisv/dIvzfHjxwHY3d3ld37nd/if4D3f8z158IMfzHq95vbbb+fMmTMcO3aMW2+9le/5nu9BEs/NNs/trd/6rbnfb/3Wb33PfffddytXXXXVVVddddVVV1G56qqrrrrqqquuuuqya6655sEAt956K3/9138NwO/8zu/wO7/zOxw/fpyXeqmX4sEPfjAPfvCDeemXfmle+qVfmtd+7ddmd3eXW2+9lVtvvZXv/u7v5vjx4zz4wQ/mwQ9+MC/90i/N8ePHea3Xei1e67Vei93dXZ7xjGfw13/91zzjGc/gv8qlS5f4nd/5Hf6nec/3fE8e/OAHs16vuf3227n55puZzWbceuutfM/3fA8viCSe24Mf/GCuuuqqq6666qqrrnoeVK666qqrrrrqqquu4sVe7MVe+3Ve53XeG+B3fud3eG67u7v8zu/8Dr/zO7/D8ePHefCDH8xLvdRL8eAHP5jjx4/z4Ac/GIDd3V3++q//mltvvZWf/umf5rd/+7d58IMfzIMf/GBe+qVfmuPHj3P8+HFe6qVeit3dXZ7xjGdw66238jd/8zf8f/Oe7/mePPjBD2a9XnP77bdz8803M5vN+Ou//mt+5md+hn+Nl37pl+b48ePc75prrnkwV1111VVXXXXVVVcBoAc96EFcddVVV1111VVX/X/3uZ/7ub/1Yi/2Yq/927/92/zO7/wOL6rjx4/z4Ac/mAc96EG89Eu/NA+0u7vLrbfeyl//9V/zjGc8g+PHjwPwUi/1Ujz4wQ/mwQ9+MPfb3d3lGc94Bs94xjP4m7/5G/6ve8/3fE8e9KAHsV6vuf3223n4wx8OwF//9V/zMz/zM/xrvdd7vRcPfvCDud/Zs2ef8cEf/MEP5qqrrrrqqquuuuoq9KAHPYirrrrqqquuuuqq/89e53Ve570//MM//Lt2d3f5mq/5Gv6tjh8/zvHjx3mpl3opHvzgB3P8+HHut7u7y6233soznvEM/vqv/xqA48eP81Iv9VI8+MEP5sEPfjD3293d5dKlS9x666084xnP4BnPeAb/l7zne74nD3rQg1iv19x+++08/OEPB+Cv//qv+Zmf+Rn+LT7rsz6LBzp79uwzPviDP/jBXHXVVVddddVVV12FHvSgB3HVVVddddVVV131/9U111zz4G/6pm96OsD3fM/3cOutt/If5fjx47zUS70UD37wg3nwgx/M/XZ3d7n11lt5xjOewV//9V8DcPz4cR784AfzUi/1Ujz4wQ/mgXZ3d/mbv/kbnvGMZ/CMZzyD/62OHz/OW77lW/KgBz2I9XrNU57yFF7sxV4MgL/+67/mZ37mZ/i3eKu3eite+qVfGoC//uu/5qVf+qUBeLu3eztx1VVXXXXVVVdddRXl+PHjXHXVVVddddVVV/1/9Umf9Ek/dc011zz41ltv5Xd+53f4j7RarXjGM57B3/zN3/A3f/M3rFYrAK677jquu+46Hv3oR/PSL/3SvPIrvzIA9957L7/zO7/D3/zN33DPPfewWq247rrrmM/nPPjBD+alXuqleKmXeimuu+46VqsVly5d4n+L48eP85Zv+ZY86EEPYr1e8w//8A+81Eu9FAB//dd/zc/8zM/wb/XGb/zGzOdzAP7oj/6IxWLB8ePH+Yd/+IffOXv27K1cddVVV1111VVX/f9G5aqrrrrqqquuuur/qRd7sRd77Rd7sRd7bYCf+Zmf4T/T7u4uv/M7v8Pv/M7vcPz4cR784AfzUi/1Ujz4wQ8G4LVf+7UB2N3d5a//+q95xjOewc/8zM/wO7/zOxw/fpyXeqmX4sEPfjDHjx/n+PHjvNRLvRS7u7s84xnP4BnPeAZ/8zd/w/9Ux48f5y3f8i150IMexHq95h/+4R942Zd9WQD++q//mp/5mZ/h3+qlX/qlOX78OPf7m7/5G17mZV6Gq6666qqrrrrqqquehcpVV1111VVXXXXV/1Mf/uEf/l0AP/MzP8Pu7i7/VXZ3d/nrv/5r/vqv/5rjx4/zoAc9iAc/+MG89Eu/NMePH+e1X/u1Adjd3eXWW2/lb/7mb/iZn/kZAI4fP85LvdRL8eAHP5gHP/jBHD9+nJd6qZfiNV/zNbl06RJ/8zd/wzOe8Qx2d3f5n+D48eO85Vu+JQ960INYr9f8wz/8Ay/7si8LwG//9m/zO7/zO/x7vNRLvRT3++u//msAdnd3Abjmmmse/A//8A9cddVVV1111VVX/T9H5aqrrrrqqquuuur/iWuuuebBZ86cefA111zz4Bd7sRd7rWuuuebBt956K3/913/Nf5fd3V12d3f5m7/5G37nd36H48eP81Iv9VI8+MEP5vjx47z0S780L/3SL83u7i7PeMYzuPXWW/md3/kdfud3focTJ07woAc9iJd6qZfiwQ9+MMePH+dBD3oQALu7u/zN3/wNz3jGM3jGM57Bf4fjx4/zlm/5ljzoQQ9ivV7zlKc8hZd92ZcF4Gd+5mf467/+a/69HvzgB3O/3/7t3wZgd3cXgDNnzjyIq6666qqrrrrqqquoXHXVVVddddVVV/0fcs011zz4zJkzD36xF3ux1wJ48Rd/8dcG9GIv9mKvxfPxO7/zOwBI4r/bpUuXuHTpEs94xjMAOH78OC/1Ui/Fgx70IB784Adz/PhxXuqlXorXeq3X4tZbb+UZz3gGf/M3f8Pf/M3fcPz4cR70oAfx4Ac/mJd6qZfi+PHjvNZrvRYAu7u7POMZz+Bv/uZveMYznsF/hePHj/OWb/mWPOhBD2Jvb4877riDF3uxFwPgZ37mZ/jrv/5r/r3e6q3eivvdeuut7O7uArC7uwvANddc82Cuuuqqq6666qqrrqJy1VVXXXXVVVdd9X/AO77jO37WO73TO302L8Tu7i4Ax48fB+Bv/uZveMYznoEk/ifa3d3ld37ndwA4fvw4D3rQg3ipl3opHvzgB/PSL/3SvPRLvzSv9VqvBcDf/M3fcOutt/IzP/Mz/PZv/zYPfvCDefCDH8xLvdRLcfz4cY4fP85LvdRLsbu7yzOe8Qye8Yxn8Dd/8zf8Zzh+/Dgf8REfAcDe3h533HEHj33sYwH4mZ/5Gf7mb/4GSfx7PfjBD+Z+f/3Xf839dnd3AbjmmmsezFVXXXXVVVddddVVVK666qqrrrrqqqv+l3ud13md936nd3qnzwbY3d1ld3eX3d1dLl68yO7uLru7u9x6660AvPRLvzRv8zZvw+7uLj/zMz/D/xa7u7vs7u7yN3/zNxw/fpwHPehBvNRLvRQPfvCDAXit13otXuu1Xovd3V3+5m/+hltvvZWf+Zmf4Wd+5mc4fvw4L/VSL8WDHvQgHvzgB3P8+HFe6qVeitd6rdfi1ltv5RnPeAZ/8zd/w3+E48eP8xEf8REA7O3tcccdd/DYxz4WgJ/5mZ/hb/7mb/iP8FIv9VIcP36c+/31X/8199vd3QXgzJkzD+aqq6666qqrrrrqKipXXXXVVVddddVV/8udOXPmQQC7u7t81Vd9FS/M27zN2wDwMz/zM/xvtbu7y+7uLn/zN3/DsWPHePCDH8yDH/xgXuqlXorjx4/zWq/1WrzWa70Wu7u7POMZz+Cv//qv+Z3f+R0Ajh8/zku91EvxoAc9iAc/+MG81Eu9FC/1Ui/Fa77mawLwt3/7tzzjGc/gGc94Bv9ax48f58M//MMB2Nvb44477uCxj30sAD/zMz/D3/zN3/Af5aVe6qW431//9V9z1VVXXXXVVVddddULROWqq6666qqrrrrqf7l/+Id/+B2A48eP8+AHP5hbb72V5+d93ud9ALj11lt5xjOewf8Fly5d4m/+5m/4m7/5G37nd36HY8eO8dIv/dI86EEP4vjx4xw/fpyXeqmXYnd3l2c84xnceuut/M7v/A4Ax44d48EPfjAv9VIvxYMf/GAAXvM1XxOA3d1d/vZv/5ZnPOMZPOMZz+Bfcvz4cT78wz8cgL29Pe644w4e+9jHAvAzP/Mz/M3f/A3/kR784Adzv9/+7d/mgXZ3dwG45pprHsxVV1111VVXXXXVVZTjx49z1VVXXXXVVVdd9b+ZJN78zd/8owFOnDjBX//1X/PcHvzgB/M6r/M6AHzv934vq9WK/2tWqxWXLl3iiU98In/yJ3/C3/zN37BarQC47rrruO6663j0ox/NS73US3HdddcB8Dd/8zf8zd/8DX/zN3/Dvffey2q14rrrrmM+n/OgBz2Il3qpl+KlXuqluPbaa1mv11y6dInndvz4cT78wz8cgL29Pe644w4e+9jHAvAzP/Mz/M3f/A3/kd7qrd6K6667DoBbb72VP/7jP+a5PfjBD+b48eP8wz/8w++cPXv2Vq666qqrrrrqqqv+/6Jy1VVXXXXVVVdd9b/cfffdd+s//MM//PaLvdiLvfbx48d5ft7mbd4GgN/5nd9hd3eX/w92d3f5nd/5HQCOHTvGgx/8YF7qpV6KBz/4wRw/fpyXeqmX4q3e6q3Y3d3lb/7mb7j11lv5m7/5G373d3+XY8eO8VIv9VI86EEP4vjx47zUS70UL/VSL8Xu7i7PeMYzeMYznsHf/u3f8qAHPYj3eI/3AGBvb4877riDxz72sQB8z/d8D894xjP4j/agBz2I+/31X/81V1111VVXXXXVVVe9UJTjx49z1VVXXXXVVVdd9X+AXvEVX/Gt5/M5u7u73HPPPdzvtV/7tXnMYx7Drbfeys/+7M/y/9F6vebee+/lb/7mb/ibv/kb7rnnHtbrNddddx3z+ZwHP/jBvPRLvzQv9VIvBcClS5f40z/9U/70T/+Uv/mbv2G1WiGJ6667juuuu45HPepRvORLviSv9EqvBMDe3h533nknj33sYwH4nu/5Hp7xjGfwH+2lXuqleOmXfmnu98M//MM8Pw9+8IO57rrr+Id/+IffufXWW/+aq6666qqrrrrqqv+/qFx11VVXXXXVVVf9H/AP//APv80zvczLvAx//dd/DcDx48d5ndd5HQB+53d+h6tgd3eX3d1d/uZv/obf+Z3f4UEPehAPfvCDeamXeimOHz/Oa73WawGwu7vLM57xDP7mb/6G3/3d3+V3f/d3OX78OA960IN4qZd6KR70oAcBsLe3x5133sljHvMYAL7ne76HZzzjGfxneKmXeinu99d//ddI4vnZ3d0F4MyZMw/iqquuuuqqq6666v83KlddddVVV1111VX/B9x33323/sM//MNvv9iLvdhrP/jBD+bBD34wt956K2/zNm8DwN/8zd/wjGc8g6ue0+7uLru7u/zN3/wNv/M7v8OxY8d46Zd+aR70oAdx/Phxjh8/zku91Euxu7vLM57xDJ7xjGfwN3/zN/zN3/wNb/mWb8lLvdRLsV6vecxjHgPA93zP9/CMZzyD/ywPfvCDud/f/M3f8ILs7u4CcM011zyYq6666qqrrrrqqv/fKMePH+eqq6666qqrrrrq/4L77rvvGa/zOq/z3gC7u7sAvM7rvA4A9957L49+9KOZz+fM53MuXbrEVc9ptVpx6dIlnvjEJ/Inf/In/M3f/A2r1QqA6667juuuu45HPepRvNRLvRTXXXcdx48f5/jx42xubgLwPd/zPTzjGc/gP8tbvdVbcd111wFw66238ju/8zu8IPP5nJd+6Zfm6Oho97d+67e+h6uuuuqqq6666qr/v6hcddVVV1111VVX/R9x9uzZW3mml3mZl2F3d5f7vdRLvRQAL/VSL8X9dnd3uXTpEru7uzzjGc8AYHd3l2c84xlcBZcuXeJ3f/d3ATh+/DgPetCDeKmXeike9KAHcfz4cR7oe7/3e7ntttuQxL+HbV6QBz3oQdzvb/7mb3hhLl26BMCZM2cezFVXXXXVVVddddX/b1Suuuqqq6666qqr/o+47777bv37v//7337xF3/x1z5+/Dgv8zIvA8ATn/hE7r77bra2ttje3mZ7e5sbbriB48ePc/z4cR70oAfxUi/1UjzQ7u4uly5dYnd3l2c84xns7u5y6dIldnd3+f9od3eX3d1d/uZv/objx4/zoAc9iAc96EE84xnPYHd3l2c84xn8R5DE8/NSL/VSHD9+nPv99V//NVddddVVV1111VVXvUioXHXVVVddddVVV/0f8qM/+qOf/eIv/uK/DfDgBz8YgBtuuAGAu+++m7vvvpv9/X329/fZ3t5me3ub7e1trr/+era3twG44YYbOH78OMePH+dBD3oQL/VSL8X9dnd3kcStt94KwDOe8Qx2d3d5xjOewf8Xu7u77O7u8jd/8zf8V3mpl3op7vfXf/3X/Et2d3cBuOaaax58zTXXPPi+++67lauuuuqqq6666qr/n6hcddVVV1111VVX/R9y33333coD/PZv/zav/dqvzaMe9Sge9ahHcb/9/X0A7rrrLgDuvvtunvSkJ3HXXXexvb0NwPb2NltbW9xwww1sb2+zvb3N8ePHAXipl3opAF7qpV6K++3u7nLp0iV2d3fZ3d3l0qVL7O7u8oxnPIOr/n0e9KAHcb+/+Zu/4UVx66238uAHP5gzZ848+L777ruVq6666qqrrrrqqv+fqFx11VVXXXXVVVf9H3L27Nln/NZv/dZ3v87rvM57A+zu7vLTP/3TADz4wQ/m+PHjPPjBD2Z7exuARz3qUQA86lGP4n77+/vs7++zv7/P3XffzZOe9CQA7rrrLnZ2dgC4/vrrAbjhhhvY2trihhtu4Pjx4xw/fpwHPehBPLfd3V0uXbrE7u4uz3jGM9jd3QXgGc94Ble9cG/5lm/J/W699VZuvfVW/jVe53Ve573+4R/+4be56qqrrrrqqquu+v+JylVXXXXVVVddddX/Mb/1W7/1Pa/zOq/z3gAPfvCD+emf/mkA/vqv/5r7HT9+nOPHj/PSL/3SvPRLvzS7u7vs7u7y4Ac/mO3tbba3twF41KMexf329/cBODg4YH9/n7vuuosnPvGJHBwcsL+/z/b2NltbW2xvb3PDDTcAsLW1xQ033MDx48c5fvw4D3rQg3ipl3op7re7u4skbr31VgCe8YxnsLu7y6VLl9jd3eUqeNCDHsT9/uZv/oYX1e7uLgCv8zqv896/9Vu/9T3/8A//8NtcddVVV1111VVX/f9D5aqrrrrqqquuuur/mH/4h3/47X/4h3/47Rd7sRd77Qc/+ME8P7u7u+zu7vLgBz8YgL/+67/md37ndwA4fvw4x48f5/jx4zzoQQ/i+PHjHD9+nOPHjwOwvb3N9ddfzyMf+Ujut7+/D8Ddd98NwF133cX+/j533303ANvb22xtbbG9vc0NN9zA1tYW29vbHD9+HICXeqmXAuClXuqluN/u7i4Az3jGMwB4xjOewe7uLs94xjP4/+KlXuqlOH78OPf767/+a15Uu7u73O/DP/zDv+tDPuRDHsJVV1111VVXXXXV/z9Urrrqqquuuuqqq/4P+vu///vffrEXe7HXPn78OA9+8IO59dZbeX6OHz8OwKVLl5AEwKVLl7h06RLPeMYz+Ju/+Rvud/z4cQAe9KAHAfDgBz+YY8eO8eAHP5jt7W0Atre3AXjkIx/J/fb399nf3+fg4IC77rqLJz7xiQDcfffdbG9vA3DDDTcAcP3117O9vc3111/P8ePHATh+/DgAL/VSL8X9dnd3uXTpEru7uzzjGc8AYHd3l2c84xn8X/JSL/VS3O+v//qv+de4dOkS97vmmmse/Dqv8zrv/Vu/9VvfzVVXXXXVVVddddX/L1Suuuqqq6666qqr/g/67d/+7e95p3d6p88GeO3Xfm2++7u/m+fn+PHjAOzu7vIv2d3dBWB3dxeAv/mbv+F+x44d4/jx4xw/fpwHP/jBABw7dowHP/jBbG9vs729DcAjH/lI7re/vw/A3XffDcDdd9/Nk570JA4ODtjf32d7e5utrS22t7e5/vrrAdje3ub666/n+PHjHD9+nAc96EG81Eu9FA906dIldnd32d3d5RnPeAa7u7tcunSJ3d1d/rd50IMexP3+5m/+Bkm8qHZ3d3mgd3qnd/rsf/iHf/jt++6771auuuqqq6666qqr/v+gctVVV1111VVXXfV/0H333XfrP/zDP/z2i73Yi7328ePHeUGOHz8OwKVLl/j3uHTpEpcuXeIZz3gGf/M3f8MDHT9+nGPHjnH8+HEe/OAHc+zYMY4fP87x48cB2N7eBuCRj3wk9zs4OMA2d999N/v7+9x9993s7+9z9913A7C9vc3W1hbb29tcf/31bG9vs7W1xfb2NseOHePYsWM86EEP4qVe6qW43+7uLgDPeMYzAHjGM57B7u4uz3jGM/if6C3f8i2536233soznvEM/jUuXboEwO7uLru7uzz4wQ9+0Du+4zt+1td//de/D1ddddVVV1111VX/f1C56qqrrrrqqquu+j/mmmuuefCZM2cezDMdP36cl37pl+av//qveW7Hjx8HYHd3l/8su7u77O7u8oxnPIO/+Zu/4X7Hjx8H4EEPehAAD37wgzl27BgPfvCD2draAmB7e5vntr+/z8HBAfv7+9x999086UlPAuDuu+9me3sb29xwww0AXH/99Wxvb7O1tcXx48cBOH78OAAv9VIvxf12d3e5dOkSly5d4tZbbwXg0qVLPOMZz+BFYZv/aA960IO439/8zd/w7/HTP/3TfPRHfzSv8zqv896/9Vu/9T3/8A//8NtcddVVV1111VVX/f9A5aqrrrrqqquuuur/gGuuuebBr/3ar/1e11xzzUNe53Ve5714Li/90i/NX//1X/M/ye7uLgC7u7sA/M3f/A33O3bsGMePH+f48eM8+MEPBuDYsWM8+MEPZnt7m+3tba6//noe+chHcr/9/X0A7r77bgDuvvtunvzkJ7O/v8/BwQFbW1sAXH/99Wxvb7O1tcX29jbXX389x48f5/jx4wC85Eu+JA906dIldnd32d3d5RnPeAaXLl3i0qVL7O7ucj9J/Ed6yZd8SY4fP879/uZv/oZ/rd3dXXZ3dzl+/DgAv/3bv81rv/Zr8+Ef/uHf9SEf8iEP4aqrrrrqqquuuur/BypXXXXVVVddddVV/0tdc801D37t137t93rxF3/x136xF3ux1+YBdnd3+au/+ise8pCH8OAHP5jjx4/z4Ac/mFtvvZX7PfjBDwbg1ltv5X+aS5cucenSJZ7xjGfwN3/zNzzQ8ePHOXbsGMePH+fBD34wx44d4/jx4xw/fhyA7e1tAB75yEdyv4ODA2xz9913c3BwwP7+PnfffTd33303AFtbW2xvb7O1tcX111/P9vY2ANdffz3Hjh3j2LFjPOhBD+KlXuqluN/u7i4Az3jGMwB4xjOewaVLl3jGM57Bv9dLvdRLcb+/+Zu/4d9qd3eX48ePc/z4cf76r/+al37pl+aaa6558Ou8zuu892/91m99N1ddddVVV1111VX/91G56qqrrrrqqquu+l/kmmuuefBrv/Zrv9frvM7rvPc111zzYB7g1ltv5elPfzq//du/zf12d3d58IMfzPHjx3nwgx/MM57xDO534sQJAC5dusT/Jru7u+zu7vKMZzyDv/mbv+F+x48fB+BBD3oQAA9+8IM5duwYD37wg9na2gJge3ub57a/v8/BwQH7+/vcfffdPPnJTwbg7rvvZmtrC4Dt7W22t7e5/vrr2draYnt7m+PHjwNw/PhxAF7qpV6K++3u7gJw2223sbu7y+7u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4iVf8iW53zOe8Qz+NSTxorDNv+TSpUtcddVVV1111VVX/QehctVVV1111VVXXfXvdM011zyYq676V7h06RKXLl0C4G//9m+537Fjx3jQgx7Egx70II4dO8aDHvQg/iXHjh0D4CVf8iV5yZd8Se536dIlnvGMZ3Dbbbexu7vLbbfdxr/klltuAeAZz3gGly5d4j+DJP4lly5dAuCaa655MFddddVVV1111VX/PlSuuuqqq6666qqr/oNcunSJq67697h06RJ/+7d/y9/+7d9yv2PHjnH8+HGOHTvGgx70II4dO8aDHvQg/iXHjh3jJV/yJXnJl3xJ7nfp0iV2d3e5dOkSt912G7u7u9x2223c70EPehAAly5d4r/TpUuXuHTpEmfOnHnQNddc8+D77rvvVq666qqrrrrqqqv+bahcddVVV1111VVX/Tu8zuu8znsD/O3f/i1XXfWf4dKlS1y6dAmAv/3bvwXg2LFjHD9+nGPHjvGgBz2IY8eO8aAHPYh/ybFjxzh27BgAL/mSLwnApUuX2N3d5dKlSxw7dgyAZzzjGfx3293d5dixY5w5c+bB9913361cddVVV1111VVX/dtQueqqq6666qqrrrrqqv9lLl26xKVLlwD427/9WwCOHTsGwIMe9CAe9KAHcezYMR70oAfxLzl27BjHjh3jgf72b/+W/26XLl0C4MVe7MVe6x/+4R9+m6uuuuqqq6666qp/GypXXXXVVVddddVV/w4v9mIv9loAz3jGM7jqqv9Oly5dAuBv//Zv+du//Vvud+zYMR70oAcB8KAHPYgHPehBHDt2jBfkb//2b/mfYHd3l6uuuuqqq6666qr/AFSuuuqqq6666qqr/h2uueaaB3PVVf+DXbp0ib/9278F4G//9m8BOHbsGMePH+fYsWM86EEP4tixYzzoQQ/id3/3d/nbv/1b/ie47bbbAHjxF3/x1/7RH/3Rz+Gqq6666qqrrrrq34bKVVddddVVV1111b/DmTNnHgzwjGc8g6uu+t/i0qVLXLp0CYC//du/BeDYsWNcunSJ/yl2d3cBOHPmzIO56qqrrrrqqquu+rejctVVV1111VVXXfXvcM011zwY4NKlS/x/J4n/a2zz/8WlS5f4n+TSpUsAXHPNNQ/mqquuuuqqq6666t+O4Kqrrrrqqquuuurf6MVe7MVeG+AZz3gG/5NJQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhL/F0lCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCElc9f894xjMAeLEXe7HX5qqrrrrqqquuuurfhuCqq6666qqrrrrq3+iaa655MMClS5f4zyIJSUhCEpKQhCQkIQlJSEISkpCEJCQhiav+55OEJCQhCUlIQhKSkIQkJCEJSUhCEpL4v+6aa655MFddddVVV1111VX/NlSuuuqqq6666qqr/o3OnDnzIJ7p2LFjvDCSuOqq/2ls8z/ZM57xDB70oAdx5syZB3HVVVddddVVV131b0Plqquuuuqqq6666t/ommuueTDAS77kS/KSL/mSXHXVVf85rrnmmgdz1VVXXXXVVVdd9W9D5aqrrrrqqquuuurf6JprrnkwV1111VVXXXXVVVddddX/ZJTjx49z1VVXXXXVVVdd9W9x3333PeOaa6558DXXXPNgrrrqqv8U//AP//DbP//zP/81Z8+evZWrrrrqqquuuuqqfz30oAc9iKuuuuqqq6666qp/q2uuuebBZ86ceRAgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOfks2fPPuO+++67lauuuuqqq6666qp/G/SgBz2Iq6666qqrrrrqqquuuuqqq6666qqrrrrq/yQqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q/hHX73jfdo1+cQAAAAASUVORK5CYII=) +![Rendered example of patternTransform 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFMwklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV131v9bnfu7n/taLvdiLvTb/if7hH/7ht7/+67/+fe67775bueqqq6666qqrrrrqfxv0oAc9iKuuuuqqq6666qqr/vf5pm/6pqdfc801D/7RH/1RLl68yH+WD/qgD+K+++679UM+5EMewlVXXXXVVVddddVV/9tQueqqq6666qqrrrrqf6VrrrnmwQB/8Rd/wX+WEydOcNVVV1111VVXXXXV/2pUrrrqqquuuuqqq676X+2TP/mT+c92zTXXPPiaa6558H333XcrV1111VVXXXXVVVf9b0Llqquuuuqqq6666qr/1U6cOMF/tvvuu+9Wrrrqqquuuuqqq67634jKVVddddVVV1111VX/61xzzTUP5pkyk/9MEcE111zzYK666qqrrrrqqquu+t+IylVXXXXVVVddddVV/6vZ5oEk8R/FNlddddVVV1111VVX/a9G5aqrrrrqqquuuuqq/1Nsc9VVV1111VVXXXXVVc9E5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVV/2vZxjYvCkm8ILZ5QWwjiauuuuqqq6666qqr/leictVVV1111VVXXXXV/wu2ueqqq6666qqrrrrq/x0qV1111VVXXXXVVVf9r2YbAElcddVVV1111VVXXXXVc6Fy1VVXXXXVVVddddX/Cba56qqrrrrqqquuuuqq50Llqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VX/q9nmBZHEv4Vtrrrqqquuuuqqq676P4HKVVddddVVV1111VX/Z9nmqquuuuqqq6666qr/1wiuuuqqq6666qqrrvpfzTb/mSQBcN99993KVVddddVVV1111VX/21C56qqrrrrqqquuuup/nfvuu+9WAEkA2Oaqq6666qqrrrrqqqueDypXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrvpfzTbPjyT+PWxz1VVXXXXVVVddddX/elSuuuqqq6666qqrrvo/yTZXXXXVVVddddVVV/2/R3DVVVddddVVV1111f9qtrnqqquuuuqqq6666qoXgMpVV1111VVXXXXVVf/r2eaqq6666qqrrrrqqqueDypXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrvpfzTYviCT+LWxz1VVXXXXVVVddddX/CVSuuuqqq6666qqrrvo/yzZXXXXVVVddddVVV/2/RnDVVVddddVVV1111f9qtrnqqquuuuqqq6666qoXgMpVV1111VVXXXXVVf/r2eaqq6666qqrrrrqqqueDypXXXXVVVddddVVV/2v8bmf+7m/debMmQdz1VVXXXXVVVddddVVLxrK8ePHueqqq6666qqrrrrqf77P/dzP/a0Xe7EXe+3Nzc3jwzAcXywWAAzDwL9EEi8q2zxQ3/fc7x/+4R9+h6uuuuqqq6666qqr/jdBD3rQg7jqqquuuuqqq6666n++n/iJn/CTnvQkHvnIR/JArTX+M5VSALh48SLjON76W7/1W9/9oz/6o5/DVVddddVVV1111VX/GxBcddVVV1111VVXXfW/xh//8R/z1V/91Zw/f577lVIopVBKoZRCKYVSCqUUSimUUiilUEqhlEIphVIKpRRKKZRSKKVQSqGUQimFUgqlFEopAFy8eBGAa6655sHv9E7v9Nkf/uEf/l1cddVVV1111VVXXfW/AcFVV1111VVXXXXVVf+rPPnJT+ZrvuZr+IVf+AX+q5w4cYITJ05wvxd7sRd77dd5ndd5b6666qqrrrrqqquu+p+OylVXXXXVVVddddVV/+ucP3+eX/zFX+RP/uRPeKVXeiXe7M3ejH/JOI7czzbjOHK/YRgAGMeRBxqGgfsNwwDAtddeyzXXXPNgrrrqqquuuuqqq67634DKVVddddVVV1111VX/a50/f54/+ZM/4c3e7M0AuPXWWwEYhgGAcRx5fmzzr2Gb+w3DwObmJlddddVVV1111VVX/a9A5aqrrrrqqquuuuqq/xPGceTw8JCrrrrqqquuuuqqq656AIKrrrrqqquuuuqqq/5Xsc2/lyT+NSRx1VVXXXXVVVddddX/SlSuuuqqq6666qqrrrrqqquuuuqqq6666qr/qwiuuuqqq6666qqrrrrqRSCJq6666qqrrrrqqqv+16Fy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Vw1VVXXXXVVVddddX/S5L415LEVVddddVVV1111VX/q1C56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rgqquuuuqqq6666qr/Fe67775bT506xX8kSfxr9X0PwH333XcrV1111VVXXXXVVVf9T0flqquuuuqqq6666qqrrrrqqquuuuqqq676v4rgqquuuuqqq6666qr/MyTxryWJq6666qqrrrrqqqv+z6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qr/1c6fPw9A13VcddVVV1111VVXXXXVcyG46qqrrrrqqquuuur/PUlcddVVV1111VVXXfV/EpWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KoKrrrrqqquuuuqqq64CJHHVVVddddVVV1111f85BFddddVVV1111VVX/a/woz/6o5/zyq/8yjziEY/gP4skrrrqqquuuuqqq676P4Xgqquuuuqqq6666qr/Ff7hH/7ht1trt37Mx3wMb/qmb8oLIomrrrrqqquuuuqqq656JoKrrrrqqquuuuqqq/5XuO+++279rM/6rNf5kR/5kc9+szd7Mz73cz+XU6dO8R9NElddddVVV1111VVX/Z9B5aqrrrrqqquuuuqq/7GuueaaBwOcOXPmwddcc82Dz5w58yCe6dSpU3zUR30Uf/zHf8wL0nUdD9T3PQBd1wHQdR0P1Pc9AF3Xcb+u6wDo+5773Xfffbdy1VVXXXXVVVddddX/BuhBD3oQV1111VVXXXXVVVf9z/S5n/u5v/ViL/Zirw1w8eJFAC5evMjFixe5ePEiJ06c4OVe7uW43ziOAHRdx3+mr//6r3+f3/qt3/purrrqqquuuuqqq676nw496EEP4qqrrrrqqquuuuqq/3k+93M/97de7MVe7LV5posXLwLwF3/xF/zlX/4lFy9eBOD1Xu/1eOhDH8pDH/pQnp+LFy9yv4sXLwJw8eJFAC5evMgD7e7uAnDx4kXud/HiRQAe+tCH8pCHPISHPvShnDhxgvvuu+/Wf/iHf/jt3/qt3/qef/iHf/htrrrqqquuuuqqq676nwg96EEP4qqrrrrqqquuuuqq/3k+93M/97de7MVe7LV//dd/nYc+9KE89KEP5YEuXrzIX/zFX/D0pz+dpz3taTz0oQ/l4sWLAFy8eJH/CCdOnADgxIkTnDhxguPHjwPwci/3cpw4cYL7fciHfMhD7rvvvlu56qqrrrrqqquuuup/GipXXXXVVVddddVVV/2P9pd/+Zf8xm/8BidOnOChD30oD3nIQ3i5l3s5Tpw4weu//usDcPHiRf7iL/4CgKc97Wm8KE6cOMGJEyc4ceIEx48fB+DEiROcOHGCEydOcOLECV5U3/RN3/T0t3u7txNXXXXVVVddddVVV/1PQ+Wqq6666qqrrrrqqv8VLl68yF/8xV/wF3/xF/zGb/wGD33oQ3noQx/Ky77sy3LixAle//VfH4CLFy/ytKc9jb/8y7/kIQ95CAAnTpzgxIkTADz0oQ/lRTWOIwDjODKOI8MwAHB4eAjA0dERj33sY7nqqquuuuqqq6666n8sKlddddVVV1111VVX/a9z8eJF/uIv/oK/+Iu/4Dd+4zc4fvw4D33oQ3nZl31ZTpw4wcu93Mvxci/3crww4zgyjiPjODKOI7YZx5FxHBnHkXEcueqqq6666qqrrrrqfz0qV1111VVXXXXVVVf9r3bx4kUuXrzI05/+dH7jN36DEydO8HZv93Y89KEP5ejoiKOjIwCOjo4AODo64l9imxeFJK666qqrrrrqqquu+h+NylVXXXXVVVddddVV/yPdd999t77Yi70Y/1oXL17kfufPn+fo6Ajb/GtIAsA2V1111VVXXXXVVVf9r0blqquuuuqqq6666qr/8yRxP9u8qCRxP9tcddVVV1111VVXXfW/DpWrrrrqqquuuuqqq/5fkcT9bPOikgSAbe7XdR0A9913361cddVVV1111VVXXfU/EZWrrrrqqquuuuqqq/5Hs81/FknczzYvCklcddVVV1111VVXXfW/BpWrrrrqqquuuuqqq64CJAFgmxeVJK666qqrrrrqqquu+h+NylVXXXXVVVddddVV/6dJwjYvKknczzZXXXXVVVddddVVV/2vRnDVVVddddVVV1111f9oJ06c4N9LEpKQxL+GJCQhiauuuuqqq6666qqr/leictVVV1111VVXXXXV/2q2kcSLShL3s82LShIAtrnqqquuuuqqq6666n8NKlddddVVV1111VVX/b8lifvZ5kUhiauuuuqqq6666qqr/tegctVVV1111VVXXXXVVYAk7mebF4Ukrrrqqquuuuqqq676H43gqquuuuqqq6666qr/c3Z3dwHo+x5JSOJfQxKSuOqqq6666qqrrrrqfz0qV1111VVXXXXVVVf9j2cbSfx7SOJ+tnlRSOJ+trnqqquuuuqqq6666n8dKlddddVVV1111VVX/b8jifvZ5kUhifvZ5qqrrrrqqquuuuqq/xWoXHXVVVddddVVV131P9J99913K8CJEyf4zyQJANu8qCRx1VVXXXXVVVddddX/ClSuuuqqq6666qqrrvof6R/+4R9+57777rv1Hd7hHR78+q//+vzFX/wFf/mXf8nFixf5zyCJ+9nmRdF1HQBnz569lauuuuqqq6666qqr/iciuOqqq6666qqrrrrqf6R/+Id/+O3f+q3f+m6AEydO8Pqv//p84id+Ip/4iZ/I673e6/FAtnlBJCEJSbyoJCEJSbwwXddx1VVXXXXVVVddddX/aFSuuuqqq6666qqrrvof60d/9Ec/57d/+7e/58yZMw9+ndd5nfd6ndd5nfc+ceIEr//6r8/LvdzL8bSnPY2nP/3p/MVf/AUvCkkA2OZf0nUdAIvFglorAIvFAoCNjQ0e6O///u9/m6uuuuqqq6666qqr/idCD3rQg7jqqquuuuqqq6666n+Ha6655sEv9mIv9tqv8zqv814v9mIv9to808WLF3n605/OX/zFX/D0pz+dt3/7t+dlX/Zluffee9nf3+e51VoB6LqOWiu1Vrquo+s6aq10XceL4r777rv1H/7hH37767/+69+Hq6666qqrrrrqqqv+J6Jy1VVXXXXVVVddddX/Gvfdd9+twG+fOXPmQffdd9+tr/M6r/PeACdOnODEiRO87Mu+LBcvXuR+i8WCrusAWCwWACwWC/4t7rvvvlv/4R/+4bd/67d+63v+4R/+4be56qqrrrrqqquuuup/A/SgBz2Iq6666qqrrrrqqqv+Z7rmmmse/Nqv/drvBfDiL/7ir/1iL/Zirw1w8eJFLl68yNOf/nQuXrzI05/+dF72ZV+WhzzkITz0oQ/lRXHx4kUuXrzI7u4uFy9e5OLFi1y8eJHd3V0uXrzIiRMneMhDHsJDH/pQjh8/zkMf+lAA7rvvvlsB/uEf/uG3/+Ef/uF37rvvvlv/4R/+4be56qqrrrrqqquuuup/IvSgBz2Iq6666qqrrrrqqqv+53id13md936d13md93qxF3ux1wa4ePEiFy9e5OlPfzoXL17kL//yL3lhTpw4wcu+7MsCcOLECS5evAjAxYsXuXjxIk9/+tP5tzpx4gQPechDeOhDH8rx48d56EMfCsB99913K8CP/uiPfs5v/dZvfTdXXXXVVVddddVVV/1PQeWqq6666qqrrrrqqv8xXuzFXuy13/Ed3/GzrrnmmgcDXLx4EYDd3V0uXrzIxYsX+ZdcvHiR3/iN3+A/w8WLF7nfiRMnAHjoQx/KNddc82CA13md13kvgN/6rd/6bq666qqrrrrqqquu+p+AylVXXXXVVVddddVV/2O82Iu92Gtdc801D97d3eXSpUs86EEPAuDEiRO87Mu+LAAXL17k4sWL7O7u8rSnPY2nP/3pXLx4kf8MJ06c4Pjx4zz0oQ/lIQ95CA996EN5ftbrNavVihd7sRd77b//+7//ba666qqrrrrqqquu+p+CylVXXXXVVVddddVV/+P8zd/8Db/7u7/L8ePHOXbsGMePH+dBD3oQD3rQgzhx4gQnTpwA4GVf9mUBuHjxIk9/+tO5ePEiT3va03j605/Ov9aJEyc4fvw4D33oQ3nIQx7CQx/6UJ6f9XrNarXi0qVL7O3tcenSJQBuvvlmjh07xlVXXXXVVVddddVV/6NQueqqq6666qqrrrrqf4yzZ88+A+D48eMA7O7usru7yzOe8Qz+5m/+BoATJ05wyy23cPz4cR70oAfxoAc9iBMnTnDixAkAXu/1Xg+Aixcv8vSnP52nPe1pXLx4kac//ek80IkTJ3jZl31ZAB7ykIfw0Ic+lOe2Xq9ZrVZcunSJvb09Ll26xAsyn88BOHv27DO46qqrrrrqqquuuup/CipXXXXVVVddddVVV/2vsru7y+7uLg90/PhxbrnlFh70oAdx/PhxHvSgB3HixAlOnDjBy77sywJw8eJFAHZ3d3nIQx7C87Ner7nvvvsAuO+++1iv19zPNlddddVVV1111VVX/a9D5aqrrrrqqquuuuqq//V2d3fZ3d3lb//2bwE4fvw4AA960IN40IMexLFjx3jQgx4EwIkTJwBYr9fcd999AFy6dIm9vT1eGEnY5qqrrrrqqquuuuqq/1WoXHXVVVddddVVV131v4ptJPHC7O7uAnDp0iX+9m//FoBjx47x4R/+4QD80R/9EfezzYtKEra56qqrrrrqqquuuup/DYKrrrrqqquuuuqqq/7Pss39Ll26xPMjCUm8qCRx1VVXXXXVVVddddX/GgRXXXXVVVddddVVV10FSOJFJYmrrrrqqquuuuqqq/5XILjqqquuuuqqq6666qpnksSLShJXXXXVVVddddVVV/2PR3DVVVddddVVV1111f86tvnPIokXlSSuuuqqq6666qqrrvofjeCqq6666qqrrrrqqv/TbPOvJYkXlSSuuuqqq6666qqrrvofi+Cqq6666qqrrrrqqqueD0m8qCRx1VVXXXXVVVddddX/SARXXXXVVVddddVVV131Akjiqquuuuqqq6666qr/1Qiuuuqqq6666qqrrvof47777rsV4Pjx4/xnksSLShIvitlsBsB99913K1ddddVVV1111VVX/U9BcNVVV1111VVXXXXV/0q2eVHZ5rlJ4kUliauuuuqqq6666qqr/lciuOqqq6666qqrrrrq/y1JvKgkcdVVV1111VVXXXXV/zoEV1111VVXXXXVVVf9vyaJF5Uknp/ZbMZ8Pueqq6666qqrrrrqqv9xqFx11VVXXXXVVVdd9T/G2bNnb/2Hf/iH336xF3ux1/6Mz/gMdnd3ecYznsEznvEMdnd3ecYznsF/BknY5kUhib7vueaaawC45pprmM1mAPzWb/3Wd589e/ZWrrrqqquuuuqqq676n4LKVVddddVVV1111VX/Y9x33323/tZv/db3ALzYi73Yax8/fpzjx4/zUi/1UgDs7u7yjGc8g93dXZ7xjGfwjGc8A0m8KGzzwkjCNs/PbDbjzJkzHDt2jJ2dHZ7bfffddyvAb/3Wb33PfffddytXXXXVVVddddVVV/1PQeWqq6666qqrrrrqqv9Rfuu3fuu7f+u3fuu7r7nmmgcDvNiLvdhrv9iLvdhrvdiLvdhrX3PNNQ8+fvw499vd3QXgGc94Bs94xjP427/9W/49JNH3PbPZjJ2dHY4dO8bOzg7P7b777rv1H/7hH377vvvuu/Uf/uEffucf/uEffpurrrrqqquuuuqqq/4nQg960IO46qqrrrrqqquuuup/h2uuuebBL/ZiL/baL/ZiL/Za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++6771auuuqqq6666qqrrvqfgMpVV1111VVXXXXVVf+jHDt2jP9stpHEv0QStnmgxWLBjTfeyMMf/nDud9999936oz/6o5/zW7/1W9/NVVddddVVV1111VX/k1C56qqrrrrqqquuuup/hPvuu+/W++6779ZXfdVXffCrvuqrcunSJfb29rh06RJ33HEHe3t7XLp0ib29PV4Q20jiP8NiseDhD384N954I/f7rd/6re/+0R/90c+57777buWqq6666qqrrrrqqv+JqFx11VVXXXXVVVdd9T/Cj/7oj34OwOu8zuu89zXXXPPgY8eOcezYMW6++WZe/MVfnPvt7e0BcPvttwNw++23s7e3x6VLl9jb2+NFZRtJ/Ese/vCHc+ONN7JYLAC47777bv2t3/qt7/7t3/7t77nvvvtu5aqrrrrqqquuuuqq/8nQgx70IK666qqrrrrqqquu+p/lmmuueTDAi73Yi702wIu92Iu91jXXXPPgM2fOPPiaa655MC/A3t4eALfffjsAd9xxB5cuXeKOO+7g+ZEEwE033cQ7vMM7cOHCBf7sz/6MxWLBDTfcwMMf/nDud9999936W7/1W9/9oz/6o5/DVVddddVVV1111VX/W6AHPehBXHXVVVddddVVV131v8OHf/iHf9frvM7rvPfTn/50/vIv/xKAhzzkIZw4cYKHPOQhvDB7e3tcunSJvb099vb22Nvb49KlS9x5553cdNNNvMM7vAMXLlzgwoULPPzhD+cFue+++24FOHv27K0A9913360A9913361nz559xm/91m99N1ddddVVV1111VVX/U+BHvSgB3HVVVddddVVV1111f98n/u5n/tbL/ZiL/baf/mXf8lP/MRP8PycOHECgIc85CEcP36cEydOcOLECR7ykIfwr/X0pz+d3/iN3wDgxIkT3O/48eOcOHECgBMnTgBw/PhxTpw4wT/8wz/89o/8yI98zj/8wz/8NlddddVVV1111VVX/U9A5aqrrrrqqquuuuqq/9GuueaaB3/4h3/4d73Yi73Ya//Gb/wGv/mbv8kLcvHiRQAuXrzIcztx4gTHjx/nxIkTPOQhDwHgxIkTPOQhDwHg6U9/Og95yEP4jd/4Df7qr/6Kixcvcr+nP/3pvDDv//7vz4kTJ3ixF3ux136d13mdW//hH/7ht7nqqquuuuqqq6666n8CKlddddVVV1111VVX/Y91zTXXPPjDP/zDv+vFXuzFXvsnfuIn+Mu//Ev+rS5evMjFixd5+tOfzl/+5V/yQCdOnADg4sWL/Gu93du9HQ95yEMAODo64qqrrrrqqquuuuqq/1GoXHXVVVddddVVV131P9I111zz4G/6pm96OsB3fMd38PSnPx1J/GfY3d0FQBL/Gm/7tm/Ly77sywLwe7/3ezzmMY/hqquuuuqqq6666qr/UQiuuuqqq6666qqrrvof58Ve7MVe+5u+6ZuefvHiRb7jO76Dpz/96fxP87qv+7q87Mu+LAC/93u/x7lz57jqqquuuuqqq6666n8cKlddddVVV1111VVX/Y/yOq/zOu/94R/+4d918eJFfvInf5KnP/3p/E/zMi/zMrzu674uAL/3e7/HuXPnuOqqq6666qqrrrrqfyQqV1111VVXXXXVVVf9j/GO7/iOn/VO7/ROn33x4kW+4zu+g93dXf6neZmXeRne7u3eDoDf+73f49y5c1x11VVXXXXVVVdd9T8Wlauuuuqqq6666qqr/ke45pprHvziL/7irw1w4sQJPv7jPx6AixcvArC7uwvAxYsXAdjd3eXixYsA7O7uAnDx4kUAdnd3+c/wkIc8hLd7u7cD4C/+4i84d+4cV1111VVXXXXVVVf9j0blqquuuuqqq6666qr/EV7sxV7stV/sxV7stQ8PDwHY3NwE4MSJEwCcOHECgIc85CG8KC5evMj9dnd3uXjxIgC7u7tcvHiR++3u7gJw8eJFdnd3eUEe8pCH8H7v934A/MVf/AW33XYbz8999913K1ddddVVV1111VVX/U9B5aqrrrrqqquuuuqq/1HOnj3Ln/3Zn3G/zc1NADY2NpDExsYGAJubm2xsbACwubkJwObmJgAbGxucOHGC+504cYKHPOQhvCguXrzI/XZ3d7l48SIAL/uyLwvA4x//eG677Taen42NDa666qqrrrrqqquu+h+FylVXXXXVVVddddVV/yPcd999twJsbm7yQIeHhwAcHh4CIIkXRBL329jY4H6bm5tsbGwgiY2NDTY2NgDY2NgAYHNzE4CNjQ1OnDjB/U6cOMFDHvIQ7nfbbbfxhCc8gauuuuqqq6666qqr/tegctVVV1111VVXXXXV/yi2+beyjSQAjo6OuN/R0REAknhhJLGxscH9NjY22NjY4EEPehCnT5/mGc94BlddddVVV1111VVX/a9C5aqrrrrqqquuuuqq/1VsI4kXxDaSeH5sI4kX5ujoiPsdHR0B8KAHPYirrrrqqquuuuqqq/5XIrjqqquuuuqqq6666n8c27wwtnlhbPOC2OYFsc3zs7GxAcByueSqq6666qqrrrrqqv9VCK666qqrrrrqqquu+h/JNi+Mbf6tbPOC2Obf4vTp0xwcHNz627/929/DVVddddVVV1111VX/UxBcddVVV1111VVXXfU/lm1eGNu8ILZ5YWzzgtjmBZHEc9vY2OA1XuM1OHv27K333XffrVx11VVXXXXVVVdd9T8FwVVXXXXVVVddddVV/2fZ5t/KNi+KjY0NXuM1XoP77rvv1s/8zM98Ha666qqrrrrqqquu+p+E4Kqrrrrqqquuuuqq/9Fs88LY5oWxzQtimxfGNs+PJO73ci/3chwcHNz69V//9e/DVVddddVVV1111VX/0xBcddVVV1111VVXXfU/nm1eGNu8MLZ5QWzzwtjmBXmN13gNTp8+zdd//de/zz/8wz/8NlddddVVV1111VVX/U9DcNVVV1111VVXXXXV/wq2eWFs829lm3+t13iN1+D06dN85md+5uv8wz/8w29z1VVXXXXVVVddddX/RARXXXXVVVddddVVV/2/YJsXxjYvqld/9Vfn9OnTfOZnfubr/MM//MNvc9VVV1111VVXXXXV/1RUrrrqqquuuuqqq676H+Hs2bO33nfffbdec801D36zN3sz7nd4eMjR0REAh4eHHB0dAXB4eAjA0dERh4eHANhGEi+IbSTxgthGEi/Mox/9aE6fPs19991364u92Iu91ou92Iu91o/+6I9+DlddddVVV1111VVX/U+EHvSgB3HVVVddddVVV1111f8ML/ZiL/ban/u5n/tb/BsdHh4CcHR0xOHhIfc7Ojri8PAQgKOjIyRxeHjI0dERz48kHuiN3/iN2djY4AlPeAKPfvSjeaD77rvv1t/6rd/67h/90R/9HK666qqrrrrqqquu+p8GPehBD+Kqq6666qqrrrrqqv9Zrrnmmgd/zud8zm9dc801D/6Jn/gJ7nfixAmOHz8OwIkTJwA4fvw4J06c4N/q6OgIgMPDQwCOjo4AODo64ujoCIDHPOYxbGxsAPD0pz+d7/iO7wDg+PHjfPzHfzz33XffrR/yIR/yEK666qqrrrrqqquu+p+GylVXXXXVVVddddVV/+Pcd999t15zzTUPBvirv/orXlTHjx8H4MSJExw/fpz7PeQhD+F+J06c4Pjx4wCcOHGCjY0NADY2NviXPP3pT+c7vuM7uN/u7i4A11xzzYO56qqrrrrqqquuuup/IipXXXXVVVddddVVV/2fsbu7C8Du7i4P9Fd/9Ve8IMePHwfgxIkTABw/fhyAEydOcPz4cQBOnDjBT/zET7C7u8tVV1111VVXXXXVVf+rULnqqquuuuqqq6666n+ca6655sEAFy9e5D/b7u4uALu7u/xbXLx4kRMnTnDNNdc8+L777ruVq6666qqrrrrqqqv+JyG46qqrrrrqqquuuup/nDNnzjwYYHd3l//pdnd3AThz5syDueqqq6666qqrrrrqfxoqV1111VVXXXXVVVf9j3PNNdc8GODixYtcddVVV1111VVXXXXVvwPBVVddddVVV1111VX/Y0lCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIYnd3F4BrrrnmwVx11VVXXXXVVVdd9T8Nlauuuuqqq6666qqr/sc5c+bMg/hf4uLFiwCcOXPmQVx11VVXXXXVVVdd9T8Nlauuuuqqq6666qqr/se6ePEiV1111VVXXXXVVVdd9e9A5aqrrrrqqquuuuqq/3GuueaaBwPs7u7yP93u7i4A11xzzYO56qqrrrrqqquuuup/GipXXXXVVVddddVVV/2P9ZCHPIT/6R7ykIcAcM011zyYq6666qqrrrrqqqv+p6Fy1VVXXXXVVVddddX/WC/zMi/Dy7zMy3DVVVddddVVV1111VX/RlSuuuqqq6666qqrrvof55prrnkwwKVLl1iv1zyQJP6nOXPmDFddddVVV1111VVX/Y9E5aqrrrrqqquuuuqq/7Fuv/129vb2eGEk8Z9FEv+SnZ0dzpw5w1VXXXXVVVddddVV/yNRueqqq6666qqrrrrqfzXbPJAk/qPY5vmRxFVXXXXVVVddddVV/ytQueqqq6666qqrrrrq/xTbPJAk/qPZ5n62ueqqq6666qqrrrrqfywqV1111VVXXXXVVVf9n2abB5LEVVddddVVV1111VX/b1C56qqrrrrqqquuuup/NNs8kCT+PWzz3CRx1VVXXXXVVVddddX/SVSuuuqqq6666qqrrvpfxTb3k8R/BNs8N0lcddVVV1111VVXXfW/HpWrrrrqqquuuuqqq/7Xss0DSeI/im2emySe22w2A+C+++67lauuuuqqq6666qqr/qchuOqqq6666qqrrrrqf5z77rvvVoDZbMa/hm1sYxvb/EezjW1sYxvbXHXVVVddddVVV131PxqVq6666qqrrrrqqqv+z7LNA0niqquuuuqqq6666qr/V6hcddVVV1111VVXXfU/wjXXXPNggDNnzjz4mmuueTCAbWwDIIl/L9s8kCSuuuqqq6666qqrrvo/jcpVV1111VVXXXXVVf+tvumbvunp11xzzYN5Pm655RZuueUWnh9J/E8wm8246qqrrrrqqquuuup/LCpXXXXVVVddddVVV/23+dzP/dzfuuaaax588eJF/uqv/oqLFy+yu7sLwMu8zMvwsi/7svxv8A//8A+//fVf//Xvw1VXXXXVVVddddVV/9NQueqqq6666qqrrrrqv82ZM2ceDHDixAkA/vqv/5r77e7u8lu/9Vv8T/YyL/MyvO7rvi5nzpx58DXXXPPg++6771auuuqqq6666qqrrvqfhMpVV1111VVXXXXVVf+tnvSkJ/HIRz6Sl33Zl+XWW2/l6U9/OgC7u7v8T/dbv/VbALzu677ugz/ncz7ntz7kQz7kIVx11VVXXXXVVVdd9T8JwVVXXXXVVVddddVV/62e+MQn8nM/93McP36ct33bt+X48eP8b/Jbv/Vb/OZv/ibXXHPNg7/pm77p6Vx11VVXXXXVVVdd9T8JwVVXXXXVVVddddVV/23Onj17K8DP//zP80d/9EccP36c93u/9+N/m9/6rd/iN3/zN7nmmmse/E3f9E1P56qrrrrqqquuuuqq/ykIrrrqqquuuuqqq676H+Hnf/7nOX/+PMePH+dt3/Zt+d/mr/7qr/jN3/xNrrnmmgd/+Id/+Hdx1VVXXXXVVVddddX/BJTjx49z1VVXXXXVVVddddV/j9d5ndd571LKg//6r/+a5XLJ3/zN3/B6r/d6XH/99QDceuut/G+xWq3Y3d1lsVjwKq/yKi99zTXXPPhP//RPf4arrrrqqquuuuqqq/47UY4fP85VV1111VVXXXXVVf89Xud1Xue91+v1g//6r/8aSSyXS86fP89Lv/RLc+LECe655x52d3f532K1WnH33Xdz/fXX8zIv8zIvfc011zz4T//0T3+Gq6666qqrrrrqqqv+u1COHz/OVVddddVVV1111VX/PV7ndV7nvdfr9YP/+q//GkkA3HHHHQC85Eu+JA95yEN4whOewHq9RhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkliv19x6661cd911vMzLvMxLA/zDP/zD73DVVVddddVVV1111X8Hgquuuuqqq6666qqr/sf5oz/6I570pCdx/Phx3vd935f/yY4fP87x48d58IMfzMu8zMvwOq/zOrzMy7wMu7u7ALzTO73TZ7/Yi73Ya3PVVVddddVVV1111X8HKlddddVVV1111VVX/be57777bu267lbgwTzA+fPn+Z7v+R4+9mM/llOnTvE2b/M2/NRP/RT/FY4fPw7A8ePHOXHiBADHjx8H4Pjx4xw/fpwTJ05w/PhxXlTv9E7v9Fmf+Zmf+dtcddVVV1111VVXXfVfDT3oQQ/iqquuuuqqq6666qr/Htdcc82Dv+mbvunp3/3d380f//Ef89xOnz7N53/+5wPwW7/1W/zWb/0W/1rHjx8H4Pjx4wCcOHGC48ePA3D8+HGOHz8OwEMe8hD+LaZpAqC1xjRNTNPE/VprnDx5kvvuu+/WD/mQD3kIV1111VVXXXXVVVf9V6Ny1VVXXXXVVVddddV/m/vuu+/W3/qt3/rut3iLt3jvJz/5yZw/f54HOn/+PN/7vd/Le77ne/IyL/MyPP3pT+fWW2/l+PHjABw/fpwTJ05w/PhxAI4fP87x48cBOHHiBMePH+dfa5omAKZpAmCaJlprAEzTxDRNAKzXa+4niednNpsBcPbs2Vu56qqrrrrqqquuuuq/A5Wrrrrqqquuuuqqq/5b/eiP/ujnvNiLvdhrf+zHfuyDP+3TPo3n9kd/9EecPHmSN3/zN+d93/d9+beYpolpmgCYpolpmgCYponWGgDTNDFNE89NEi+IJF4YSVx11VVXXXXVVVdd9d+KylVXXXXVVVddddVV/63uu+++Wz/rsz7rdb7pm77p6e/1Xu/F93zP9/Dc/viP/5hXeZVX4dSpUwBM0wTAOI601hjHEYBpmpimCYBpmpimCUm8IJJ4YSTxgkjihZHEVVddddVVV1111VX/7ahcddVVV1111VVXXfXf7r777rv167/+69/nwz/8w7/r/Pnz/PzP/zwPdP78ee532223MU0TAJJ4YSTxgkjihZHECyKJF0YSV1111VVXXXXVVVf9j0Dlqquuuuqqq6666qr/EX7rt37ru8+cOfOg13/91//sJz3pSTzpSU/ihZHECyOJF0QSL4wkXhBJvDCSuOqqq6666qqrrrrqfwyCq6666qqrrrrqqqv+x/jt3/7t77nnnnt++73e670AsM3zI4kXRhIviCReGEm8IJJ4YSRx1VVXXXXVVVddddX/KARXXXXVVVddddVVV/2Pcd9999369V//9e9z6tQp3uu93ot/C0m8IJJ4YSTxgkjiBZGEJK666qqrrrrqqquu+h+H4Kqrrrrqqquuuuqq/1Huu+++W7/+67/+fV7lVV6FN3/zN+e5SeIFkcQLIokXRhIviCReEEm8IJK46qqrrrrqqquuuuq/FZWrrrrqqquuuuqqq/7H+a3f+q3vPnPmzINe//Vf/7Of/OQn86QnPYnz589z6tQpaq1M08Rzk8S/lSReEEm8IJIopQBQa6WUQq0VgFors9kMgPvuu+9Wrrrqqquuuuqqq67670Dlqquuuuqqq6666qr/ca655poH/8M//MPvvM7rvM6t7/me7/ngT//0T+ffQxIviCSeW60VgFortVZKKQDUWqm1AjCbzXhR3Hfffbf+6I/+6Odw1VVXXXXVVVddddV/BypXXXXVVVddddVVV/23uuaaax585syZB7/Yi73Ya734i7/4a7/Yi73Ya/Nc3vM935MXRhIviCRqrQDUWqm1AlBKQRK1Vkop1FqptfJvcd9999169uzZW++7775b77vvvlt5pn/4h3/4nbNnz95633333cpVV1111VVXXXXVVf8dqFx11VVXXXXVVVdd9V/mmmuuefBrv/ZrvxfAi7/4i7/2i73Yi702D7C7u8vTn/50nv70pwNw6623cvz4cd72bd+W51ZrBaDrOmqt1FoBqLVSawWg1kqtlX+t3d1dAC5evMju7i4XL14EYHd3l93dXQAuXrzIy7zMy/C6r/u6APz93//9b//2b//299x33323ctVVV1111VVXXXXV/xToQQ96EFddddVVV1111VVX/ef7iZ/4CfMAu7u7PP3pT+fixYvceuutPP3pT+cFeZ3XeR1e93Vfl3+r3d1dAC5evAjA7u4uFy9eBGB3d5fd3V0uXrzI7u4u/1rHjx/nbd/2bXnIQx7Cfffdd+tv/dZvffeP/uiPfg5XXXXVVVddddVVV/1PgB70oAdx1VVXXXXVVVddddV/rm/6pm96+jXXXPNggKc//el853d+J/8ax48f52Ve5mV4yEMewkMe8hAAdnd3Abh48SK7u7tcvHgRgN3dXXZ3dwG4ePEiu7u7/Fd4mZd5GV73dV+X48ePc9999936W7/1W9/9oz/6o5/DVVddddVVV1111VX/ndCDHvQgrrrqqquuuuqqq676z/UTP/ET5gF2d3f5y7/8S37rt36Lf43jx4+zu7vL/1THjx/nIQ95CK/7uq/L8ePHue+++2790R/90c/5rd/6re/mqquuuuqqq6666qr/DuhBD3oQV1111VVXXXXVVVf95/qJn/gJP/WpT+VHfuRH+JAP+RBOnDgBwF/91V/xW7/1W+zu7vJ/yfHjx3mZl3kZXud1XgeA++6779av//qvf59/+Id/+G2uuuqqq6666qqrrvqvRDl+/DhXXXXVVVddddVVV/3neqd3eqfPvnjxIr//+7/P3//937NcLnnYwx7G9ddfz2Me8xjm8zm33nor/1esVituvfVW/uqv/orVasWLv/iLH3+d13md977mmmsefOutt/7N4eHhLlddddVVV1111VVX/VegHD9+nKuuuuqqq6666qqr/nO90zu902dL4vd+7/dYrVY87WlP48///M9ZLpe82Iu9GA95yEN4mZd5Ge6++252d3f5v2K1WnHrrbfyV3/1V6xWK17ndV7npV/xFV/xrTc3N4+fPXv2GYeHh7tcddVVV1111VVXXfWfiXL8+HGuuuqqq6666qqrrvrP9U7v9E6fvVqt+L3f+z3ut1qteNrTnsaf//mf8+Iv/uKcOHGCl3mZl+H48ePcc889rFYr/q9YrVbceuutPP3pT+fVX/3Vj7/4i7/4a7/iK77iW//Zn/3ZzxweHu5y1VVXXXXVVVddddV/Fsrx48e56qqrrrrqqquuuuo/1+u8zuu8dynl+O/93u/x3FarFf/wD//AarXiYQ97GNdffz2PecxjmM/n3Hrrrfxvdfz4cR7zmMfwmMc8htd5ndfhbd/2bXmZl3kZ7nd4eLh7zTXXPPhP//RPf4arrrrqqquuuuqqq/6zULnqqquuuuqqq6666r/dhQsX+LVf+zX+/M//nJd/+ZfnDd7gDXid13kdXuZlXoaf/Mmf5NZbb+V/suPHj/OQhzyE48eP8+AHP5iHPOQhvCC2Abjmmmse/A//8A9cddVVV1111VVXXfWfispVV1111VVXXXXVVf9jXLx4kV/7tV/jqU99Ku/0Tu/EiRMneN/3fV9+67d+i7/6q79id3eX/27Hjx/nZV7mZQB48IMfzEMe8hBeENvYBsA295OEJK666qqrrrrqqquu+k9HOX78OFddddVVV1111VVX/efa3Nw8/vIv//Kv/Qqv8Ar8/d//PavViucmiftdvHiRf/iHf2C1WvGwhz2MhzzkITzmMY9hPp/zjGc8A0lIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlI4sSJE7zKq7wKD3nIQ3jd131d3uZt3oZXeZVX4SEPeQgPechDOHHiBPezDYBtbGOb+9nmgSQhiVtvvfWv//RP//RnuOqqq6666qqrrrrqPwvl+PHjXHXVVVddddVVV131n+vs2bPPeMVXfMW3Pn369PEXf/EXZz6f87SnPY0HksQDrVYrnva0p/Hnf/7nLBYLHvrQh/KQhzyEl3mZl+Gee+5hd3eX/0jHjx/nlV/5lXnwgx/M67zO6/A2b/M2vMqrvAoPechDeMhDHsLx48d5INs8N9s8P5KQhCQAJCGJW2+99a//9E//9Ge46qqrrrrqqquuuuo/C+X48eNcddVVV1111VVXXfWf6/DwcPfP/uzPfubw8HD35V/+5V/7YQ97GK/wCq/AXXfdxcWLFwGQxPOzWq34h3/4By5evMgNN9zAiRMneMhDHsJ8PufWW2/l3+L48eO88iu/Mg9+8IN5ndd5Hd7mbd6GV3mVV+EhD3kID3nIQzh+/DgvjG2eH0lIQhIviCQkIYlbb731r//0T//0Z7jqqquuuuqqq6666j8LetCDHsRVV1111VVXXXXVVf91rrnmmgd/zud8zm9dc801Dwb41V/9Vf78z/+cixcvIokXRBInTpzg5V7u5XiDN3gDAHZ3d/mrv/orfvu3f5vn5/jx4wC89Eu/NAAPechDePCDH8y/RBK2eVHY5l9imweShCR+67d+67u//uu//n246qqrrrrqqquuuuo/C3rQgx7EVVddddVVV1111VX/ta655poHv/Zrv/Z7vdM7vdNnA1y8eJE/+7M/49d//dd5QSRxvxMnTvCO7/iOPPShDwVgd3eXn/qpn2J3d5eXfumXBuAhD3kID37wg/mXSOJfYpsXhW3+JbaRhCR+67d+67u//uu//n246qqrrrrqqquuuuo/C3rQgx7EVVddddVVV1111VX/Pa655poHf/iHf/h3vdiLvdhrA1y8eJFv/uZv5uLFizw3STy3l3u5l+MN3uANOHHiBC+MJO4niefHNi8q2/xLbPPCSOJHfuRHPvtHf/RHP4errrrqqquuuuqqq/6zUI4fP85VV1111VVXXXXVVf89Dg8Pd3/rt37re86ePfuMBz/4wS99+vTp4y/+4i/OYrHgaU97Gs9NEg9099138w//8A8sFgtuuOEGACQhiYggIogIJAEgiRdEEpKQhCReGElIQhIviCQkIYkHkoQk7rvvvltvvfXWv/6Hf/iH3+Gqq6666qqrrrrqqv8slOPHj3PVVVddddVVV1111X+vW2+99a//7M/+7GcODw93X/7lX/61H/awh/HyL//y3HXXXVy8eJH7SeK5rVYrrr/+eh72sIchiYhAEpJ4IElIQhKS+JdIQhKSeGEkIQlJvCCSkIQk7venf/qnP/1d3/VdH8NVV1111VVXXXXVVf+Z0IMe9CCuuuqqq6666qqrrvqf45prrnnw53zO5/zWNddc82CAX/u1X+PXfu3XAJDE8/P6r//6vMEbvAERgST+LWzzorDNc7PNC3Pffffdevbs2Vv//u///rf/4R/+4Xf+4R/+4be56qqrrrrqqquuuuq/AnrQgx7EVVddddVVV1111VX/s1xzzTUP/vAP//DverEXe7HXBrh48SJ//ud/zq//+q/z/Lz+678+b/AGb0BEEBE8N9v8a9jm+bENgG1ekPvuu+/Ws2fP3vr3f//3v/0P//APv/MP//APv81VV1111VVXXXXVVf9dqFx11VVXXXXVVVdd9T/GNddc8+DXfu3Xfq93eqd3+myeaXd3lxMnTvAGb/AGvPzLvzzf8i3fwsWLF/nXkMQD2eaFkYRtbANgm+dnd3eX48ePc7/f+q3f+u5/+Id/+J3f+q3f+m6uuuqqq6666qqrrvqfAD3oQQ/iqquuuuqqq6666qr/Ptdcc82DX/u1X/u93umd3umzeabd3V3+6q/+it/6rd8C4HVe53V4mZd5GY4fP87Fixf58z//c37913+d+73+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efrTn85zm8/nPOQhD+H6668H4O///u9/m6uuuuqqq6666qqr/qOgBz3oQVx11VVXXXXVVVdd9e9zzTXXPPibvumbns4LsLu7y6233srTn/50dnd3ufXWW/m/7LVf+7V5ndd5HQBWqxWPe9zj2N3d5bkdP36cxz72sczncwB+5Ed+5LN/9Ed/9HO46qqrrrrqqquuuuo/CpWrrrrqqquuuuqqq/7DXLp0ie///u/nQQ96ELfccgvHjh3jQQ96EMePH+elX/qleemXfmkAdnd3ufXWW3n605/O7u4ut956K/8XHD9+nLd5m7fhwQ9+MABPf/rTefrTn87z85CHPISHPOQhANx33323ftZnfdbr3Hfffbdy1VVXXXXVVVddddV/JPSgBz2Iq6666qqrrrrqqqv+/X7iJ37CAF/4hV/IAx07doxjx45x/PhxbrnlFl7yJV+S57a7uwvArbfeyq233spf//Vf87/NS7/0S/PWb/3WAKxWKx73uMexu7vLc5vP5zzmMY/hxIkTAPzIj/zIZ//oj/7o53DVVVddddVVV1111X8G9KAHPYirrrrqqquuuuqqq/79fuInfsIAX/iFX8i/5Pjx49xyyy086EEP4tixY9xyyy08t93dXW699VZuvfVWdnd3ufXWW/mf6Pjx47z1W781D37wgwG4ePEif/VXf8Xzc/311/OYxzwGgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq676z0Llqquuuuqqq6666qr/cpcuXeLv/u7v+Lu/+zsAjh07xrFjx7jlllt40IMexC233MLx48d56Zd+aV76pV8agN3dXXZ3d9nd3eWv//qvufXWW/nv9uAHP5j3fu/3BmC1WvH4xz+e3d1dntt8Pucxj3kMJ06cAOAf/uEffvszP/MzX4errrrqqquuuuqqq/6zUbnqqquuuuqqq6666r+cbSRxv0uXLnHp0iVuu+02fv/3fx+AY8eOccstt/CgBz2IY8eOccstt3D8+HEAXvqlXxqA3d1dbr31Vm699VZ2d3e59dZb+a/y2q/92rz2a782ALu7u/zVX/0V95OEbQCOHz/OYx/7WObzOQA/8iM/8tk/+qM/+jlcddVVV1111VVXXfVfAT3oQQ/iqquuuuqqq6666qp/v5/4iZ8wwN/+7d9y22238bd/+7f8SyTxojp27Bi33HILD3rQ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/vqv/5qf+qmf4vjx4zz4wQ/mIQ95CMePH+fBD34wx44d45ZbbuF+ly5d4rbbbuP222/n0qVL3HbbbbwgD37wg3nwgx8MwO7uLt/1Xd/F7u4u/xYv/dIvzYMf/GCOjo540pOexGKx4JGPfCQ/8iM/8tn33XffrVx11VVXXXXVVVdd9R8JPehBD+Kqq6666qqrrrrqqv88L/ZiL/ban/u5n/tbAN/1Xd/Frbfeyn+148eP8+AHP5iHPOQhHD9+nAc/+ME8t0uXLnHbbbdx++23c+nSJV78xV+cl3iJl+CBfuu3fovf/u3f5t/jcz7ncwD4oz/6I86fP8+rvMqr0Fq79UM+5EMewlVXXXXVVVddddVV/9GoXHXVVVddddVVV131n+rDP/zDvwvgt37rt7j11lv577C7u8tf//Vf89d//dcAHD9+nOPHj3P8+HEe8pCH8NIv/dIcO3aMl3iJl+AlXuIleG67u7v81E/9FLfeeiv/Hm/zNm8DwPnz5zl//jynTp3i1KlTfOZnfub7cNVVV1111VVXXXXVfwYqV1111VVXXXXVVVf9p/ncz/3c37rmmmsefOutt/Lbv/3b/E+xu7vL7u4uAH/913/NT/3UT3H8+HEe/OAH85CHPITjx4/z4Ac/mFtvvRWA7/qu7+Lf6/jx47z0S780AE960pMAeOQjH8k//MM//PY//MM//DZXXXXVVVddddVVV/1noHLVVVddddVVV1111X+Kd3zHd/ysF3uxF3ttgJ/+6Z9GEv+TXbp0ib/5m7/hb/7mbwA4fvw4u7u7AEji3+tt3uZtALjjjjs4f/48N910E6dOneJrvuZrPoerrrrqqquuuuqqq/6zULnqqquuuuqqq6666j/ci73Yi732O73TO302wHd/93ezu7vL/za7u7v8R3nwgx/Mgx/8YAD++q//GoBHPvKR/NZv/dZ3/8M//MNvc9VVV1111VVXXXXVfxYqV1111VVXXXXVVVf9h/vwD//w7wL47d/+bW699Vb+v3vrt35rAP76r/8agEc+8pFsbGzwoz/6o5/DVVddddVVV1111VX/mahcddVVV1111VVXXfUf6nM/93N/65prrnnwrbfeym//9m/z/91rv/Zrc/z4cc6fP88dd9zBYrHgkY98JPfdd9+t9913361cddVVV1111VVXXfWficpVV1111VVXXXXVVf9h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ntOlS5cAuOaaax7MVVddddVVV1111VX/WQiuuuqqq6666qqrrvp3eZu3eRuen+PHjwOwu7vLVc/f7u4uANdcc82Dueqqq6666qqrrrrqPwPBVVddddVVV1111VX/avfdd9+t586dA+DBD34wz8/x48cB2N3d5arnb3d3F4BrrrnmwVx11VVXXXXVVVdd9Z+B4Kqrrrrqqquuuuqqf5Pz58/zxCc+kePHj/M2b/M2PLfjx48DsLu7y1VXXXXVVVddddVVV/03Ibjqqquuuuqqq6666l/t7Nmzzzh16hTf+Z3fCcCDH/xgjh8/zlX/Oru7uwCcOXPmwVx11VVXXXXVVVdd9Z+BylVXXXXVVVddddVV/2r/8A//8NunT5/mUY96FE984hN51KMexeu8zuvwUz/1U9zv+PHjADz4wQ/mvd7rvXhBJGGbB5KEbR5IErZ5IEnY5oEkYZsHkoRtHkgStnkgSdjmgSRhmweShG0eSBK2eSBJ2OaBJGEbgOPHjwNw5syZB3HVVVddddVVV1111X8GKlddddVVV1111VVX/avdd999t/7Wb/3Wd7/lW77le3/Zl30ZX/IlX8KDH/xgjh8/zu7uLg90/Phxjh8/zlUv2DXXXPNgrrrqqquuuuqqq676z0Dlqquuuuqqq6666qp/kx/90R/9nNd5ndd570c96lE88YlP5FGPehSv8zqvw0/91E/xQHfccQd33HEH95PEv5Yk/rUkcT/bSOKBbCOJfytJ/GtI4rldf/313HDDDbzO67zOe//Wb/3W9/zDP/zDb3PVVVddddVVV1111X8kKlddddVVV1111VVX/Zvcd999t/7Wb/3Wd7/lW77le3/Zl30ZX/IlX8KDH/xgTpw4we7uLpIAWC6XXLhwgftJ4t9CEv8akvjXksS/hiReVJJ4bidOnOB+H/7hH/5dn/VZn/U69913361cddVVV1111VVXXfUfheCqq6666qqrrrrqqn+zH/3RH/2c06dP86hHPYo/+IM/4Pjx47z2a782L4xt/ivY5n8S27ww11xzzYPf8R3f8bO46qqrrrrqqquuuuo/EsFVV1111VVXXXXVVf9m9913362/9Vu/9d1v+ZZvyc/+7M8C8OAHP5gHP/jBvDC2+deyzb+Wbf41bPOvYZv/CH/9138NwOu8zuu89zu+4zt+FlddddVVV1111VVX/UdBD3rQg7jqqquuuuqqq6666t/ummuuefA3fdM3Pf07v/M7edSjHsWrvdqr8dd//dfs7u7y2q/92iyXS656NknYBmCxWADw27/92+zu7vLWb/3W3Hfffbd+1md91uvcd999t3LVVVddddVVV1111b8XetCDHsRVV1111VVXXXXVVf8+H/7hH/5dL/ESL/HeX/ZlX8aXfMmXsLu7y2//9m8D8NZv/dZc9YL99m//Nr/9278NwFu/9Vvz0i/90tx33323fsiHfMhDuOqqq6666qqrrrrq3ws96EEP4qqrrrrqqquuuuqqf58zZ8486Ju/+Ztv/c7v/E4e9ahH8Wqv9mr89V//Nb/927/NVS/c7u4u9zt+/Djv/d7vzfHjx/nRH/3Rz/mRH/mRz+aqq6666qqrrrrqqn8PKlddddVVV1111VVX/budPXv2Gb/1W7/13W/5lm/53l/2ZV/Gq73aq/HgBz+Y48ePc+utt3LVi2Z3d5ef/umf5r3f+715ndd5nff++7//+9/+h3/4h9/mqquuuuqqq6666qp/K8rx48e56qqrrrrqqquuuurf79Zbb/2bd3zHd/zo22+/naOjIx75yEdy/Phx/vqv/5qrXnS7u7sAvNiLvdjxF3uxF3vtX/iFX/garrrqqquuuuqqq676t6IcP36cq6666qqrrrrqqqv+/Q4PD3evueaaB7/ma77mS3/Xd30Xb/AGb8Dx48e59dZb2d3d5aoX3e7uLtdddx033njj8WuuuebBf/qnf/ozXHXVVVddddVVV131b0E5fvw4V1111VVXXXXVVVf9x7j11lv/5h3f8R0/+vbbb+fo6IhbbrmF48eP89d//ddc9aJbrVbceuutvPIrvzIPechDXvof/uEffufs2bO3ctVVV1111VVXXXXVvxbBVVddddVVV1111VX/Ye67775bf+u3fuu73/It35Kf/dmfBeDBD34wD3nIQ5CEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiUuXLvHbv/3bAHz4h3/4d3HVVVddddVVV1111b8F5fjx41x11VVXXXXVVVdd9W93zTXXPPgVX/EV3/oVX/EV3+rDP/zD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QhKSkMRrvuZr8pIv+ZK8xVu8BQ960IOYz+d0XUcphfl8zjiOAGQmu7u7/Omf/im/+7u/y6/92q/xjGc8g9Vqxf92x48f5xVf8RV5y7d8S57b3/zN3/C93/u9XLp0if8M7/Ve78V8Pgfg1ltv5Ud+5Ed4UbzxG78x8/mcP/7jP+aee+5htVrx0i/90pw6der4b//2b3/P4eHhLlddddVVV1111VX/+SjHjx/nqquuuuqqq6666l9yeHi4+w//8A+/81u/9Vvffeutt/7N5ubm8WuuuebBPMB8Pue6667jpV/6pXmpl3op5vM5z3jGM3hRSUISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpL4j7BarXjGM57BM57xDB70oAcxn8+534Me9CBe8iVfknvvvZdLly7xwqxWK570pCfxiq/4itzv+PHj3HvvvVy6dInn59ixY7ziK74i7/7u786DHvQgrr32WgA2NjYAGMeRzGQcRwB2d3f50z/9U37sx36MZzzjGVy6dIn/Kx70oAfxDu/wDjzqUY/igXZ3d/nRH/1R/vRP/xRJSEISkviP8p7v+Z5cd9113O97vud7WK1W/Ete+qVfmpd+6ZcG4Jd/+ZdZrVYAPPrRj+b48eP82Z/92c/cd999t3LVVVddddVVV131n49y/Phxrrrqqquuuuqqq15UR0dHl2699da//q3f+q3v+e3f/u3vOTw83H3xF3/x1+a5zOdzHvzgB/NSL/VSXHfddazXay5duoQkJCEJSUhCEpL4n+rSpUs86UlPYrVa8eAHP5j7zedzXuqlXgqAZzzjGbwwq9WK3d1dHvWoRwEwn8950IMexJOe9CTW6zUAx44d4xVf8RV593d/d17xFV+RBz3oQTxQ13Ws12syE4Dd3V3+9E//lO/7vu/jT//0T3nGM57B/zWv+ZqvyVu+5Vsyn895oGc84xl827d9G5cuXeL5kYQkJCEJSUhCEpKQhCQkIQlJSEIS93ut13otXvqlX5r7fc/3fA/33HMPL4pHPepRPPjBDwbgl3/5l7nf8ePHefCDH8x999136z/8wz/8DlddddVVV1111VX/+SjHjx/nqquuuuqqq6666t/i8PBw9x/+4R9+57d+67e++9Zbb/2bzc3N49dcc82DeYD5fM51113HS73US/HSL/3SzGYzLl26xGq14n+T1WrFM57xDC5d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EpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEv8XSUISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISVz1/z3jGMwB4sRd7sdfmqquuuuqqq6666t+G4Kqrrrrqqquuuurf6JprrnkwwKVLl/jPIglJSEISkpCEJCQhCUlIQhKSkIQkJCGJq/7nk4QkJCEJSUhCEpKQhCQkIQlJSEISkvi/7pprrnkwV1111VVXXXXVVf82VK666qqrrrrqqqv+jc6cOfMgnunYsWO8MJK46qr/aWzzP9kznvEMHvSgB3HmzJkHcdVVV1111VVXXfVvQ+Wqq6666qqrrrrq3+iaa655MMBLvuRL8pIv+ZJcddVV/zmuueaaB3PVVVddddVVV131b0Plqquuuuqqq6666t/ommuueTBXXXXVVVddddVVV1111f9klOPHj3PVVVddddVVV131b3Hfffc945prrnnwNddc82Cuuuqq/xT/8A//8Ns///M//zVnz569lauuuuqqq6666qp/PfSgBz2Iq6666qqrrrrqqn+ra6655sFnzpx5ECCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI5+SzZ88+47777ruVq6666qqrrrrqqn8b9KAHPYirrrrqqquuuuqqq6666qqrrrrqqquuuur/JCpXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+r+EdMDuDvcOmaTwAAAABJRU5ErkJggg==) ```kcl fn cube(length, center) { @@ -182,7 +182,7 @@ myCubes = cube(length = width, center = [100, 100]) ``` -![Rendered example of patternTransform 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABzsUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqv9Ar/M6r/Pe7/iO7/hZ/Df7h3/4h9/+h3/4h9/5rd/6re/mqquuuuqqq/7/onLVVVddddVVV1111VVXXfUf5HVe53Xe+8M//MO/i/8Brrnmmvd+sRd7sde+7777bv2Hf/iH3+aqq6666qqr/n+ictVVV1111VVXXXXVVVdd9R/kxV7sxV6LZ/qzP/szfuVXfoX/Lq/wCq/AG73RGz34wz/8w7/rQz7kQx7CVVddddVVV/3/ROWqq6666qqrrrrqqquuuuo/wcMe9jAALly4wH+HP/uzP+MVXuEVuOaaax784R/+4d/19V//9e/DVVddddVVV/3/Q3DVVVddddVVV1111VVXXfUf5JprrnnwuXPn+P3f/31OnjzJG73RGyEJSUjiv9KFCxf4xm/8RgBe53Ve571f7MVe7LW56qqrrrrqqv9/CK666qqrrrrqqquuuuqqq/6DnDlz5sHnzp3jp37qpwB4hVd4BR72sIdxP0lIQhKSkIQkJCEJSUhCEpKQxL/HhQsX+KEf+iEAPvzDP/y7rrnmmgdz1VVXXXXVVf+/EFx11VVXXXXVVVddddVVV/0HOnfuHOfOnePbvu3bAHjnd35n/j0kIQlJSEISkpCEJCQhCUlIQhIP9Gd/9mc85SlP4Zprrnnwh3/4h38XV1111VVXXfX/C8FVV1111VVXXXXVVVddddV/kGuuuebBPNMTnvAEzp07x8mTJ3mFV3gF/itJQhKSkMSP/MiPcOHCBV7sxV7std/xHd/xs7jqqquuuuqq/z8Irrrqqquuuuqqq6666qqr/gOdPXsWgHPnzvFt3/ZtALzhG74h/50uXLjAr/7qrwLwOq/zOu/9Yi/2Yq/NVVddddVVV/3/QOWqq6666qqrrrrqqquuuuo/wDXXXPNggHPnznG/JzzhCTzhCU/g0Y9+NO/8zu/Mr/7qr/Lf5alPfSp/9md/xiu8wis8+MM//MO/60M+5EMewlVXXXXVVVf930flqquuuuqqq6666qqrrrrqP8CZM2cezPPx7d/+7Xz5l385r/AKr8ArvMIr8D/BNddc8+AXe7EXe+1/+Id/+G2uuuqqq6666v82KlddddVVV1111VVXXXXVVf+Jzp07x7lz5zh9+jStNf67lVIAeLEXe7HX+od/+Iff5qqrrrrqqqv+b6Ny1VVXXXXVVVddddVVV131H+Caa655MMC5c+d4bqdPnwbgwoULtNZ4bpJ4Udjm38M2x48fZ7FYcPbs2Wdw1VVXXXXVVf/3Ubnqqquuuuqqq6666qqrrvoPdO7cOV6QzEQS/1aSeFHZ5rlJ4qqrrrrqqqv+n6Fy1VVXXXXVVVddddVVV131H+DMmTMP4vk4ffo0AK01ACTxH802z00Sz0/f9wD8wz/8w29z1VVXXXXVVf/3Ubnqqquuuuqqq6666qqrrvoPcM011zwY4Ny5czzQ6dOnuZ8k/jNI4oWxzVVXXXXVVVf9P0Xlqquuuuqqq6666qqrrrrqv0BmIon/CrZ5IEncr5QCwH333XcrV1111VVXXfV/H5Wrrrrqqquuuuqqq6666qr/ANdcc82Dz507x3M7ffo0AK01nh9J/FvY5gWRxPNjm6uuuuqqq676f4bKVVddddVVV1111VVXXXXVf4AzZ848+OzZs7wwkviPIokXhW3u1/c9APfdd9+tXHXVVVddddX/D1Suuuqqq6666qqrrrrqqqv+g5w7d47ndvr0aQAyE0n8Z7LNc5PE/UopAPzDP/zDb3PVVVddddVV/z8QXHXVVVddddVVV1111VVX/Qe45pprHszzcfr0aQAykxeFJCQhCUlIQhKS+JdIQhKSkIQkJCEJSVx11VVXXXXV/0NUrrrqqquuuuqqq6666qqr/oOcO3eOF0QSkvj3kMS/hm0eqJQCwH333XcrV1111VVXXfX/A5Wrrrrqqquuuuqqq6666qp/p2uuuebBvACnT58GoLXG/STxH802z00SD1RKAeDs2bPP4Kqrrrrqqqv+f6By1VVXXXXVVVddddVVV13173TmzJkHA5w7d47ndvr0aQBsI4n/LJJ4YWxz1VVXXXXVVf8PUbnqqquuuuqqq6666qqrrvovIAlJ/FexzQNJopQCwH333XcrV1111VVXXfX/A5Wrrrrqqquuuuqqq6666qp/p2uuuebBAGfPnuW5nT59GoDM5IEk8R/JNg8kiecWEQCcPXv2Vq666qqrrrrq/wcqV1111VVXXXXVVVddddVV/0HOnTvHCyKJ/0ySeGFsExEA3Hfffbdy1VVXXXXVVf8/ULnqqquuuuqqq6666qqrrvp3OnPmzIN4Pk6fPg1AZiKJ/0q2eSBJXHXVVVddddX/Q1Suuuqqq6666qqrrrrqqqv+na655poHA5w7dw5J3O/06dMAZCbPjyT+o9jmgSTxQBEBwH333XcrV1111VVXXfX/B5Wrrrrqqquuuuqqq6666qr/JKdPnwbANpL4zySJF0YSAGfPnr2Vq6666qqrrvr/g8pVV1111VVXXXXVVVddddW/0zXXXPPgc+fO8S+RxH8V2zxQKQWA++6771auuuqqq6666v8PKlddddVVV1111VVXXXXVVf9OZ86cefDZs2d5bqdPn+Z+knh+JPHvZZvnJomrrrrqqquuugoqV1111VVXXXXVc7jmmmsezP8A9913361cddVVV/0vcu7cOV4Q20jiP4skXhjbRAQA9913361cddVVV1111f8fVK666qqrrrrqqmd5ndd5nfd+ndd5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Ll26xFVXXXXVVVddddVVV1111b8TwVVXXXXVVVf9P3TffffdCrC1tcX9bPOC2OYFsc0LYpsXxDaHh4cA7Ozs8NwkcdVVV1111VVXXXXVVVdd9e9EcNVVV1111VX/D9133323AmxtbfHf7fDwEICdnR0AJAGwt7cHwDXXXPNgrrrqqquuuuqqq6666qqr/m0Irrrqqquuuur/sa2tLR7INi+IbV4Q27wgtnlBbHNwcADA8ePHeX7OnDnzIK666qqrrrrqqquuuuqqq/5tqFx11VVXXXXV/0P/8A//8DsAW1tb/E916dIlrrrqqquuuuqqq6666qqr/p0Irrrqqquuuuqq52CbF8Q2L4htXhDbvCAHBwcA7Ozs8Pxcc801D+aqq6666qqrrrrqqquuuurfhuCqq6666qqr/h86e/bsrQBbW1v8a9nmBbHNv9bh4SEAOzs73E8SAJcuXeKaa655MFddddVVV1111VVXXXXVVf82BFddddVVV1111fOwzX802/xLJPFAe3t7XHXVVVddddVVV1111VVX/TsQXHXVVVddddX/Q/fdd9+tAFtbW7wgtnlBbPOC2OZf4+DgAIBjx47x/Jw5c+bBXHXVVVddddVVV1111VVX/dsQXHXVVVddddX/U/fdd9+tANdddx3/VWzz3A4PDwHY2dnhuV26dImrrrrqqquuuuqqq6666qp/B4Krrrrqqquu+n/q7Nmzt/IvsM0LYpsXxDYviG1eVJcuXeKaa655MFddddVVV1111VVXXXXVVf82BFddddVVV131/9R99913K8Dm5ib/nQ4ODgA4duwYAJIAkMT9rrnmmgdz1VVXXXXVVVddddVVV131r0dw1VVXXXXVVf9P3XfffbcCbG1t8cLY5gWxzQtimxfENi+Kvb09rrrqqquuuuqqq6666qqr/h0IrrrqqquuuuoqbPPf5fDwEICdnR2e26VLlwA4c+bMg7nqqquuuuqqq6666qqrrvrXI7jqqquuuuqq/6fOnj37DIDrr78eANu8ILZ5QWzzgtjmBbHN/Q4ODgDY2dnhqquuuuqqq6666qqrrrrqPxCVq6666qqrrvp/6r777ruV/+GOHTvGfffddytXXXXVVVddddVVV1111VX/NgRXXXXVVVdd9f/U2bNnbwXY2trifrZ5QWzzgtjmBbHNC2IbgMPDQwCOHTsGgCQAXvzFX5xrrrnmwWfPnr2Vq6666qqrrrrqqquuuuqqfz0qV1111VVXXXXV/0g333wzN998M7/1W7/13ffdd9+tXHXVVVddddVVV1111VVX/esRXHXVVVddddX/U/fdd9+tAFtbWzyQbV4Q27wgtnlBbPOC2Obg4ACAY8eOcb8Xe7EXA+BHf/RHP4errrrqqquuuuqqq6666qp/G4Krrrrqqquu+n/svvvuuxVga2uL/06Hh4cA7OzscL8Xf/EX57d+67e++7777ruVq6666qqrrrrqqquuuuqqfxuCq6666qqrrvp/7OzZs7cCbG1t8UC2eUFs84LY5gWxzQtimwd64zd+YwB+67d+63u46qqrrrrqqquuuuqqq676t6Ny1VVXXXXVVVf9tzs8PARgZ2cHSbzYi70Y//AP//Db//AP//DbXHXVVVddddVVV1111VVX/dsRXHXVVVddddX/Y/fdd9+tANdddx3PzTYviG1eENu8ILZ5fg4ODgDY2dnhxV7sxQD4kR/5kc/hqquuuuqqq6666qqrrrrq34fKVVddddVVV/0/dt99993K/zCv8iqvwn333XfrP/zDP/w2V1111VVXXXXVVVddddVV/z5Urrrqqquuuur/sbNnzz4DYHt7m+fHNpJ4fmwjiefHNpJ4fmwjiQc6PDwE4Oabbwbge7/3ez+Hq6666qqrrrrqqquuuuqqfz8qV1111VVXXfX/2H333XcrwNbWFv+T/NZv/dZ3c9VVV1111VVXXXXVVVdd9e9H5aqrrrrqqquuYmtrizd5kzfhv5Iknp8f+ZEf+Wyuuuqqq6666qqrrrrqqqv+Y6AHPehBXHXVVVddddX/V9dcc82Dz5w58+DP/dzP/S3+B/iRH/mRz/7t3/7t77nvvvtu5aqrrrrqqquuuuqqq6666t8PPehBD+Kqq6666qqr/j+75pprHnzmzJkH8z/AP/zDP/w2V1111VVXXXXVVVddddVV/3HQgx70IK666qqrrrrqqquuuuqqq6666qqrrrrqqv+TqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVV/+O94zu+42fxf8Bv//Zvf8999913K1ddddVVV1111VVXXXXVVVf9V6Fy1VVXXXXV/1iv8zqv894f/uEf/l38H3HNNdc8+Ld+67e+5x/+4R9+m6uuuuqqq6666qqrrrrqqqv+K1C56qqrrrrqf6x3fMd3/CyAv//7v+fSpUv8d5LEv9XNN9/MzTffzOu8zuu89z/8wz/8zj/8wz9w1VVXXXXVVVddddVVV1111X8JKlddddVVV/2P9Dqv8zrvfc011zz49ttv55d+6Zf4ryCJ/wzv9E7vxP3OnDnzIK666qqrrrrqqquuuuqqq676r0Llqquuuuqq/5E+/MM//LsA/uAP/oD/aJL4r/JiL/Zi3HzzzdzvmmuueTBXXXXVVVddddVVV1111VVX/VchuOqqq6666n+cD//wD/8ugNtvv53bb7+dfytJSEISkpCEJP4rvfiLvzgAf/EXf8HZs2e55pprHsxVV1111VVXXXXVVVddddVV/1UIrrrqqquu+h/lmmuu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vT1+/Md/nP8IkvjPJokX5r3f+73Z2NjgBZEEgG2en6OjI+bzOVddddVVV1111VVXXXXVVVf9p6Jy1VVXXXXVf6qzZ8/eyjPt7e3xH00S/9kk8UA7Ozu8qCRhm+d2dHTELbfc8mCuuuqqq6666qqrrrrqqquu+s9EcNVVV1111X+JnZ0d/jPYxjb/mWxjm/vt7e2xt7fHxsYGGxsb/EskIYkHWi6XALzYi73Ya3PVVVddddVVV1111VVXXXXVfxaCq6666qqr/lPdd999t/7DP/zDbwPceOON2OY/g21sY5v/LLaxjW329vYAWCwWvKgkcb+joyOuuuqqq6666qqrrrrqqquu+k9HcNVVV1111X8529jmP4ttbPNfYXNzE0m8qCQhiaOjIwBe7MVe7LW46qqrrrrqqquuuuqqq6666j8LwVVXXXXVVf/p/v7v//63AW666SYeyDa2+c9iG9vY5j/aHXfcAcBisQBAEv8ay+WSq6666qqrrrrqqquuuuqqq/7TEVx11VVXXfWf7h/+4R9+B+Dmm2/m+bGNbWzzn8U2tvmPsr+/D8Dp06e5nyQk8aI6OjrixV/8xV+bq6666qqrrrrqqquuuuqqq/6zULnqqquuuuo/3dmzZ28F2NnZ4V9iGwBJ/Gewzf0k8W+1t7fHCyIJ2/xLjo6OOHPmzIO56qqrrrrqqquuuuqqq6666j8LwVVXXXXVVf9ldnZ2eFHZxja2+c9iG9vY5l9rb28PgMViwfMjiX/Jcrnkqquuuuqqq6666qqrrrrqqv9UBFddddVVV/2nu++++279h3/4h98GuOmmm/jXso1t/jPZxjYvqr29PQA2NjZ4QSQhiRfk6OiIa6655sHXXHPNg7nqqquuuuqqq6666qqrrrrqPwPBVVddddVV/2vYxjb/mWxjG9v8S+644w4ATp06xQsjiefn3LlzAJw5c+bBXHXVVVddddVVV1111VVXXfWfgeCqq6666qr/En//93//2wA33XQT/162sY1t/jPZxja2+feShCSuuuqqq6666qqrrrrqqquu+i9F5aqrrrrqqv8S//AP//A7ADfffDN//Md/zH8U29xPEv9ZbHM/SQDccccd3HTTTZw6dYrz58/zopCEbQCWyyUAL/ZiL/Za//AP//DbXHXVVVddddX/Qddcc82Dz5w582D+Fzt79uyt9913361c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NgCSsM0DScI2DyQJ2zyQJHZ2dgC45pprHsxVV1111VX/nahcddVVV1313+bs2bO3fuZnfubrfO7nfu5v8X/EP/zDP/z2j/zIj3wOV1111VVXXfX/2JOf/GT+tS5cuMCf/umf8oqv+Irs7Ozwf8WZM2cefM011zz4vvvuu5Wrrrrqqqv+O1C56qqrrrrqv8199913K8CHfMiHPATAtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4pnuu+++W7nqqquuuuqq/6de7MVe7LUAzp8/jyT+tR7+8IcD8KM/+qNcunSJfy/b/HewjSQ+8AM/kGuuuebB9913361cddVVV13134XKVVddddVV/63uu+++W7nqqquuuuqqq64CTp48CcDtt9/Ov5Vt/qvY5gW5+eabAbjvvvtu5aqrrrrqqv9OVK666qqrrrrqqquuuuqqq676D/FiL/Zir/3kJz+Z/2q2+a9km3/JsWPHAPiHf/iH3+aqq6666qr/TlSuuuqqq6666qqrrrrqqquu+g9z/vx5/i1e8RVfEYDbb7+dF4Vt/ivZ5l/j5ptvBuC+++67lauuuuqqq/47EVx11VVXXXXVVVddddVVV131H+Kaa6558Pnz5/n32Nvb44WxjW3+K9jGNrb5tzp79uwzuOqqq6666r8Tlauuuuqqq6666qqrrrrqqqv+3V7sxV7stQEuXLjAv8XJkycBuHTpEs/NNv+VbPPvdfPNNwPwD//wD7/NVVddddVV/52oXHXVVVddddVVV1111VVXXfXvds011zwY4MKFC/xbnDx5EoC9vT0AbPNfyTb/kY4dOwbAfffddytXXXXVVVf9d6Jy1VVXXXXVVVddddVVV1111X+Y8+fP82/xiEc8AoDbbrsN2/xXsM1/hptvvhmAf/iHf/htrrrqqquu+u9G5aqrrrrqqquuuuqqq6666qp/txd7sRd7LYDz58/zorCNJP472OY/07FjxwC47777buWqq6666qr/blSuuuqqq6666qqrrrrqqquu+g9x/vx5XhDbSOIFOXnyJAB7e3v8Z7DNf5Wbb74ZgPvuu+9Wrrrqqquu+u9G5aqrrrrqqquuuuqqq6666qp/t/vuu+9W/o0e/vCHA3D77bfzH8k2/1Vs89zOnj37DK666qqrrvrvRnDVVVddddVVV1111VVXXXXVv9s//MM//M6pU6d45CMfCYBtXlSnTp0CYG9vj38v29jGNv8VbGObB7r55psB+Id/+Iff5qqrrrrqqv9uBFddddVVV1111VVXXXXVVVf9u509e/ZWgDd90zflX+vkyZMAXLp0iX8L29jGNv8VbGMb2zw/x44dA+C+++67lauuuuqqq/67EVx11VVXXXXVVVddddVVV13173bffffd+lu/9VvfferUKR7xiEfwr3Hy5EkALl26xIvKNraxzX8V29jmhbn55psB+Id/+Iff5qqrrrrqqv8JCK666qqrrrrqqquuuuqqq676D/Fbv/Vb33Py5Eke8YhH8K9x8uRJAPb29nhhbGMb2/xXsY1tbPOiOHbsGAD33XffrVx11VVXXfU/AcFVV1111VVXXXXVVVddddVV/yH+4R/+4bf//u///rdf+ZVfmX+NU6dOAbC3t8dzs41tbPNfxTa2sc2/1i233ALAfffddytXXXXVVVf9T0Bw1VVXXXXVVVddddVVV1111X+Yf/iHf/jtU6dO8YhHPIIX1cmTJwG4dOkSALaxjW3+q9jGNrb5j3D27NlncNVVV1111f8EBFddddVVV1111VVXXXXVVVf9h/mt3/qt7wZ45Vd+ZV4UJ0+eBODSpUvYxjb/lWxjm/8oN998MwD/8A//8NtcddVVV131PwHBVVddddVVV1111VVXXXXVVf9hzp49+4x/+Id/+O1HPOIRvCge8YhHAHD77bfzX8U2trHNf7Rjx44BcN99993KVVddddVV/xMQXHXVVVddddVVV1111VVXXfUf6rd+67e+59SpUzziEY/gfwrb2MY2/1luvvlmAP7hH/7hd7jqqquuuup/CoKrrrrqqquuuuqqq6666qqr/kP9wz/8w28DvOmbvikvjG0e/vCHA3D77bfzH802trHNf4Vjx44BcN99993KVVddddVV/1MQXHXVVVddddVVV1111VVXXfUf6r777rv1H/7hH3775MmT/FezjW1s81/FNra5+eabAbjvvvuezlVXXXXVVf9TEFx11VVXXXXVVVddddVVV131H+5HfuRHPufUqVO86Zu+KfezzXN7xCMeAcDtt9/Ov5VtbGOb/yq2sY1tntvZs2efwVVXXXXVVf9TEFx11VVXXXXVVVddddVVV131H+4f/uEffvsf/uEffvuVXumVeGFOnjwJwKVLl/jXsI1tbPNfxTa2sc3zc8sttwDwD//wD7/NVVddddVV/1MQXHXVVVddddVVV1111VVXXfWf4u///u9/+9SpUzziEY/g+Tl58iT/GraxjW3+K9nGNv+SY8eOAXDffffdylVXXXXVVf9TEFx11VVXXXXVVVddddVVV131n+K3f/u3vwfglV7plXh+HvGIRwBw++2384LYxja2+a9kG9vY5kVxyy23APAP//APv81VV1111VX/kxBcddVVV1111VVXXXXVVVdd9Z/ivvvuu/Uf/uEffvuRj3wkL8ylS5d4INvYxjb/lWxjG9v8ax07dgyA++6771auuuqqq676n4Tgqquuuuqqq6666qqrrrrqqv80v/Vbv/U9J0+e5BGPeATP7RGPeAQAly5dwja2sc1/JdvYxjb/HjfffDMA9913361cddVVV131PwnBVVddddVVV1111VVXXXXVVf9p/uEf/uG3Ad70Td+UF+TSpUv8V7KNbWzzH+3s2bPP4Kqrrrrqqv9JCK666qqrrrrqqquuuuqqq676T3Pffffd+vd///e/ffLkSZ7bIx7xCABuv/12/rPZxja2+c9wyy23APAP//APv81VV1111VX/kxBcddVVV1111VVXXXXVVVdd9Z/qR3/0Rz/71KlTvPIrvzIPdPLkSf4z2cY2tvnPduzYMQDuu+++W7nqqquuuup/EoKrrrrqqquuuuqqq6666qqr/lPdd999t9533323vtIrvRLPz6VLl/iPZBvb/Fe55ZZbAPiHf/iH3+aqq6666qr/aQiuuuqqq6666qqrrrrqqquu+k919uzZZ/zWb/3Wdz/iEY/gEY94BAAPf/jDAbjtttv4j2Ab29jmv4ptbLOzswPAfffddytXXXXVVVf9T0Nw1VVXXXXVVVddddVVV1111X+63/7t3/4egFd6pVcC4NSpUwDs7e3xb2Eb29jGNv9VbGMb29zvlltuAeC+++67lauuuuqqq/6nIbjqqquuuuqqq6666qqrrrrqP91999136z/8wz/89sMf/nAATp48CcClS5d4UdnGNrb5r2Qb29jmhTl79uwzuOqqq6666n8agquuuuqqq6666qqrrrrqqqv+S/zWb/3W95w6dYpHPOIRnDp1CoBLly7xwtjGNrb5r2Yb2/xLbrnlFgD+4R/+4be56qqrrrrqfxoqV1111VVXXXXVVVddddVVV/2X+Id/+IffBniTN3kT7nfp0iWem23+u9jmX+vYsWMA3Hfffbdy1VVXXXXV/zQEV1111VVXXXXVVVddddVVV/2XuO+++279h3/4h98+deoUJ0+eBGBvbw8A29jGNv/VbGMb2/xr3XLLLQD8wz/8w29z1VVXXXXV/0QEV1111VVXXXXVVVddddVVV/2X+ZEf+ZHPOXnyJKdOnQJgd3cX2/xXs41tbPPvcezYMQDuu+++W7nqqquuuup/IipXXXXVVVddddVVV1111VVX/Zc5e/bsrTzTpUuXOHbsGP9VbPMf7ZZbbgHgvvvuu5Wrrrrqqqv+J6Jy1VVXXXXVVVddddVVV1111X+Z++6779Yf+ZEf+ex3eqd3+uxjx47xwR/8wfxfcPbs2Wdw1VVXXXXV/0ToQQ96EFddddVVV1111VVXXXXVVVf917nmmmsefObMmQd9+Id/+Hfzf8DXf/3Xv88//MM//DZXXXXVVVf9T4Qe9KAHcdVVV1111VVXXXXVVVddddVVV1111VVX/Z9E5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+r+EfXoy0umeSh2gAAAABJRU5ErkJggg==) +![Rendered example of patternTransform 3](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABzvklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqv9Ar/M6r/Pe7/iO7/hZ/Df7h3/4h9/+h3/4h9/5rd/6re/mqquuuuqqq/7/onLVVVddddVVV1111VVXXfUf5HVe53Xe+8M//MO/i/8Brrnmmvd+sRd7sde+7777bv2Hf/iH3+aqq6666qqr/n+ictVVV1111VVXXXXVVVdd9R/kxV7sxV6LZ/qzP/szfuVXfoX/Lq/wCq/AG73RGz34wz/8w7/rQz7kQx7CVVddddVVV/3/ROWqq6666qqrrrrqqquuuuo/wcMe9jAALly4wH+HP/uzP+MVXuEVuOaaax784R/+4d/19V//9e/DVVddddVVV/3/Q3DVVVddddVVV1111VVXXfUf5JprrnnwE57wBH7/93+fkydP8kZv9EZIQhKS+K904cIFvvEbvxGA13md13nvF3uxF3ttrrrqqquuuur/H4Krrrrqqquuuuqqq6666qr/IGfOnHkwwE/91E8B8Aqv8Ao87GEP436SkIQkJCEJSUhCEpKQhCQkIYl/jwsXLvBDP/RDAHz4h3/4d11zzTUP5qqrrrrqqqv+fyG46qqrrrrqqquuuuqqq676D3Tu3DnOnTvHt33btwHwzu/8zvx7SEISkpCEJCQhCUlIQhKSkIQkHujP/uzPeMpTnsI111zz4A//8A//Lq666qqrrrrq/xeCq6666qqrrrrqqquuuuqq/yDXXHPNg3mmJzzhCZw7d46TJ0/yCq/wCvxXkoQkJCGJH/mRH+HChQu82Iu92Gu/4zu+42dx1VVXXXXVVf9/EFx11VVXXXXVVVddddVVV/0HOnv2LADnzp3j277t2wB4wzd8Q/47XbhwgV/91V8F4HVe53Xe+8Ve7MVem6uuuuqqq676/4HKVVddddVVV1111VVXXXXVf4BrrrnmwQDnzp3jfk94whN4whOewKMf/Wje+Z3fmV/91V/lv8tTn/pU/uzP/oxXeIVXePCHf/iHf9eHfMiHPISrrrrqqquu+r+PylVXXXXVVVddddVVV1111X+AM2fOPJjn49u//dv58i//cl7hFV6BV3iFV+B/gmuuuebBL/ZiL/ba//AP//DbXHXVVVddddX/bVSuuuqqq6666qqrrrrqqqv+A507d44HOnfuHOfOneP06dO01vjvVkoB4MVe7MVe6x/+4R9+m6uuuuqqq676v43KVVddddVVV1111VVXXXXVf4BrrrnmwQDnzp3juZ0+fRqACxcu0FrjuUniRWGbfw/bHD9+nMViwdmzZ5/BVVddddVVV/3fR+Wqq6666qqrrrrqqquuuuq/SGYiiX8rSbyobPPcJHHVVVddddVV/89Queqqq6666qqrrrrqqquu+g9w5syZBwGcO3eOBzp9+jQArTUAJPEfzTbPTRLPT9/3APzDP/zDb3PVVVddddVV//dRueqqq6666qqrrrrqqquu+g9wzTXXPJjn4/Tp09xPEv8ZJPHC2Oaqq6666qqr/p+ictVVV1111VVXXXXVVVdd9R/k3LlzvCCZiST+K9jmgSRxv1IKAPfdd9+tXHXVVVddddX/fVSuuuqqq6666qqrrrrqqqv+A1xzzTUP5vk4ffo0AK01nh9J/FvY5gWRxPNjm6uuuuqqq676f4bKVVddddVVV1111VVXXXXVf4AzZ848+OzZs7wwkviPIokXhW3u1/c9APfdd9+tXHXVVVddddX/D1Suuuqqq6666qqrrrrqqqv+g5w7d47ndvr0aQAyE0n8Z7LNc5PE/UopAPzDP/zDb3PVVVddddVV/z8QXHXVVVddddVVV1111VVX/Qe45pprHszzcfr0aQAykxeFJCQhCUlIQhKS+JdIQhKSkIQkJCEJSVx11VVXXXXV/0NUrrrqqquuuuqqq6666qqr/oOcO3eOF0QSkvj3kMS/hm0eqJQCwH333XcrV1111VVXXfX/A5Wrrrrqqquuuuqqq6666qp/p2uuuebBAOfOneO5nT59GoDWGveTxH802zw3STxQKQWAs2fPPoOrrrrqqquu+v+BylVXXXXVVVddddVVV1111b/TmTNnHswLcPr0aQBsI4n/LJJ4YWxz1VVXXXXVVf8PUbnqqquuuuqqq6666qqrrvovIAlJ/FexzQNJopQCwH333XcrV1111VVXXfX/A5Wrrrrqqquuuuqqq6666qp/p2uuuebBAGfPnuW5nT59GoDM5IEk8R/JNg8kiecWEQCcPXv2Vq666qqrrrrq/wcqV1111VVXXXXVVVddddVV/0HOnTvHCyKJ/0ySeGFsExEA3Hfffbdy1VVXXXXVVf8/ULnqqquuuuqqq6666qqrrvp3OnPmzIN4Pk6fPg1AZiKJ/0q2eSBJXHXVVVddddX/Q1Suuuqqq6666qqrrrrqqqv+na655poHA5w7dw5J3O/06dMAZCbPjyT+o9jmgSTxQBEBwH333XcrV1111VVXXfX/B5Wrrrrqqquuuuqqq6666qr/JKdPnwbANpL4zySJF0YSAGfPnr2Vq6666qqrrvr/g8pVV1111VVXXXXVVVddddW/0zXXXPPgc+fO8S+RxH8V2zxQKQWA++6771auuuqqq6666v8PKlddddVVV1111VVXXXXVVf9OZ86cefDZs2d5bqdPn+Z+knh+JPHvZZvnJomrrrrqqquuugoqV1111VVXXXXVc7jmmmsezP8A9913361cddVVV/0vcu7cOV4Q20jiP4skXhjbRAQA9913361cddVVV1111f8fVK666qqrrrrqqmd5ndd5nfd+ndd5nfd6sRd7sdfmv9mHfMiHPOS+++67lauuuuqq/wXOnj176+nTpx/Mczlz5gwAtrmfJP4r2OZ+kogIAM6ePfsMrrrqqquuuur/DypXXXXVVVddddVlL/ZiL/baH/7hH/5dABcuXOC/y8mTJwH4pm/6pqe/3du9nbjqqquu+l/gvvvuu/UlXuIlOH36NOfPn+e5SUISz48k/iPY5oEk8UCSALjvvvtu5aqrrrrqqqv+/6By1VVXXXXVVVdd9k7v9E6fBfBnf/Zn/PAP/zD/Xb7iK76C+11zzTUPvu+++27lqquuuup/uN/6rd/6ntd5ndd577d5m7fh27/927nf6dOnAbCNJP4zSeKFiQgAzp49eytXXXXVVVdd9f8HwVVXXXXVVVddxeu8zuu894u92Iu99oULF/jhH/5h/j0kIQlJSEISkpCEJCQhCUlIQhKSkMQbvdEb8UBnzpx5MFddddVV/wv8wz/8w2//wz/8w28/5jGP4fTp09zv9OnTANjmfpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCSuuuqqq6666ioIrrrqqquuuur/uWuuuebBH/7hH/5dAD/yIz+CJCQhCUlIQhKSkIQkJCEJSUhCEpKQxL/HG77hGwLwB3/wB1x11VVX/W/zIz/yI59z+vRp3uZt3obnJglJSOK5SUISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpJ4bpKQhCQkAXDffffdylVXXXXVVVf9/0Fw1VVXXXXVVf/PffiHf/h3ATz1qU/lqU99Kv9d3vAN3xCA2267jdtuu42rrrrqqv9t/uEf/uG3/+Ef/uG3H/3oR3P69GkATp8+zf0kIQlJSEISkviXSEISkviXSEISkpCEJCQREQCcPXv2GVx11VVXXXXV/y8EV1111VVXXfX/2Iu92Iu99ou92Iu9NsAP//AP89/pDd/wDQH4gz/4A/b29gC45pprHsxVV1111f8iX//1X/8+p0+f5m3e5m14fiQhCUlIQhKSkIQkJCEJSUhCEg8kCUlIQhKSkIQkJCEJSUhCEpIAkATAfffddytXXXXVVVdd9f8LwVVXXXXVVVf9P/bhH/7h3wXwwz/8w1y8eJH/Lu/0Tu8EwN///d9z++23c78zZ848iKuuuuqq/0Xuu+++W//hH/7htx/96Efz6q/+6gDYRhKSeG6SkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhiecmCUkA3Hfffbdy1VVXXXXVVf+/EFx11VVXXXXV/1Pv+I7v+FnXXHPNg5/61Kfy53/+5/x3eoVXeAUA/v7v/x6AS5cucdVVV131v9XXf/3Xv8/p06d5m7d5G+4nCUlIQhKSkMQLIglJSEISkpCEJCQhiRdEEpKQhCQkIYmrrrrqqquu+n+K4Kqrrrrqqqv+H3qxF3ux136nd3qnzwb41V/9Vf6jSEISkpCEJCQhCUlIQhKSkIQk3vmd3xmAv//7v+f2229HEgCXLl3immuueTBXXXXVVf/L3Hfffbf+wz/8w2+fPn0aANvcTxKSkIQkJCEJSUhCEpJ4UUhCEpKQhCQkIQlJSEISkrjffffd93Suuuqqq6666v8XKlddddVVV131/9A7vdM7fRbAU5/6VE6ePMnJkyf57/LyL//yAPz93/89z+2aa655MFddddVV/wt9/dd//ft80zd909MBJBERPDdJ/GexzQNFBABnz559BlddddVVV131/wuVq6666qqrrvp/5pprrnnwmTNnHgzwsIc9jIc97GH8d/v7v/977rjjDh7o0qVLXHXVVVf9b3Xffffd+lu/9Vvffc011zz4xV7sxV67lMJ/t3/4h3/47fvuu+9Wrrrqqquuuur/FypXXXXVVVdd9f/MmTNnHnzNNdc8GOApT3kKL4gk/qNJ4oE2Nze59tpr2dvb4/k5c+bMg7nqqquu+l/q67/+69/ndV7ndd77vvvuu5X/AX70R3/0c+67775bueqqq6666qr/X6hcddVVV1111f8zZ8+evRXg4OCA3//930cSL4gkXhBJvCCSeEEkcb+HPvShXHvttezs7PDc9vb2mM/nXHXVVVf9b/Zbv/Vb3/1bv/Vb381VV1111VVXXfXfheCqq6666qqr/p+57777bgXY2triv4Nt7nd4eAjAsWPHeCBJXLp0iWuuuebBXHXVVVddddVVV1111VVX/dsRXHXVVVddddX/Q/fdd9+tAFtbW9jmBbHNC2KbF8Q2/xaSeG7XXHPNg7nqqquuuuqqq6666qqrrvq3Ibjqqquuuuqq/4fOnj17K8DW1hb/Etu8ILZ5QWzzgtgG4ODgAIBjx47x3C5dugTAmTNnHsxVV1111VVXXXXVVVddddW/DcFVV1111VVXXYVt/qe5dOkSV1111VVXXXXVVVddddVV/04EV1111VVXXfX/0H333XcrwNbWFvezzQtimxfENi+IbV4Q2xweHgKws7PDc5PEVVddddVVV1111VVXXXXVvxPBVVddddVVV/0/dN99990KsLW1xX+3w8NDAHZ2dgCQBMDe3h4A11xzzYO56qqrrrrqqquuuuqqq676tyG46qqrrrrqqv/Htra2eCDbvCC2eUFs84LY5gWxzcHBAQDHjx/n+Tlz5syDuOqqq6666qqrrrrqqquu+rehctVVV1111VX/D/3DP/zD7wBsbW3xP9WlS5e46qqrrrrqqquuuuqqq676dyK46qqrrrrqqqueg21eENu8ILZ5QWzzghwcHACws7PDc7t06RLXXHPNg7nqqquuuuqqq6666qqrrvq3Ibjqqquuuuqq/4fOnj17K8DW1hb/WrZ5QWzzr3V4eAjAzs4O95PE/a655poHc9VVV1111VVXXXXVVVdd9W9DcNVVV1111VVXPQ/b/Eezzb9EEg+0t7fHVVddddVVV1111VVXXXXVvwPBVVddddVVV/0/dN99990KsLW1xQtimxfENi+Ibf41Dg4OADh27BjPz5kzZx7MVVddddVVV1111VVXXXXVvw3BVVddddVVV/0/dd99990KcN111/FfxTbP7fDwEICdnR2e26VLl7jqqquuuuqqq6666qqrrvp3ILjqqquuuuqq/6fOnj17K/8C27wgtnlBbPOC2OZFdenSJa655poHc9VVV1111VVXXXXVVVdd9W9DcNVVV1111VX/T9133323AmxubvLf6eDgAIBjx44BIAkASdzvmmuueTBXXXXVVVddddVVV1111VX/egRXXXXVVVdd9f/UfffddyvA1tYWL4xtXhDbvCC2eUFs86LY29vjqquuuuqqq6666qqrrrrq34Hgqquuuuqqq67CNv9dDg8PAdjZ2eG5Xbp0CYAzZ848mKuuuuqqq6666qqrrrrqqn89gquuuuqqq676f+rs2bPPALj++usBsM0LYpsXxDYviG1eENvc7+DgAICdnR2uuuqqq6666qqrrrrqqqv+A1G56qqrrrrqqv+n7rvvvlv5H+7YsWPcd999t3LVVVddddVVV1111VVXXfVvQ3DVVVddddVV/0+dPXv2VoCtrS3uZ5sXxDYviG1eENu8ILYBODw8BODYsWMASALgxV/8xbnmmmsefPbs2Vu56qqrrrrqqquuuuqqq67616Ny1VVXXXXVVVf9j3TzzTdz880381u/9Vvffd99993KVVddddVVV1111VVXXXXVvx7BVVddddVVV/0/dd99990KsLW1xQPZ5gWxzQtimxfENi+IbQ4ODgA4duwY93uxF3sxAH70R3/0c7jqqquuuuqqq6666qqrrvq3Ibjqqquuuuqq/8fuu+++WwG2trb473R4eAjAzs4O93vxF39xfuu3fuu777vvvlu56qqrrrrqqquuuuqqq676tyG46qqrrrrqqv/Hzp49eyvA1tYWD2SbF8Q2L4htXhDbvCC2eaA3fuM3BuC3fuu3voerrrrqqquuuuqqq6666qp/OypXXXXVVVddddV/u8PDQwB2dnaQxIu92IvxD//wD7/9D//wD7/NVVddddVVV1111VVXXXXVvx3BVVddddVVV/0/dt99990KcN111/HcbPOC2OYFsc0LYpvn5+DgAICdnR1e7MVeDIAf+ZEf+Ryuuuqqq6666qqrrrrqqqv+fahcddVVV1111f9j99133638D/Mqr/Iq3Hfffbf+wz/8w29z1VVXXXXVVVddddVVV13170Plqquuuuqqq/4fO3v27DMAtre3eX5sI4nnxzaSeH5sI4nnxzaSeKDDw0MAbr75ZgC+93u/93O46qqrrrrqqquuuuqqq67696Ny1VVXXXXVVf+P3XfffbcCbG1t8T/Jb/3Wb303V1111VVXXXXVVVddddVV/35Urrrqqquuuuoqtra2eJM3eRP+K0ni+fmRH/mRz+aqq6666qqrrrrqqquuuuo/BnrQgx7EVVddddVVV/1/dc011zz4zJkzD/7cz/3c3+J/gB/5kR/57N/+7d/+nvvuu+9Wrrrqqquuuuqqq6666qqr/v3Qgx70IK666qqrrrrq/7NrrrnmwWfOnHkw/wP8wz/8w29z1VVXXXXVVVddddVVV131Hwc96EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV131P947vuM7fhb/B/z2b//299x33323ctVVV1111VVXXXXVVVddddV/FSpXXXXVVVf9j/U6r/M67/3hH/7h38X/Eddcc82Df+u3fut7/uEf/uG3ueqqq6666qqrrrrqqquuuuq/ApWrrrrqqqv+x3rHd3zHzwL4+7//ey5dusR/J0n8W918883cfPPNvM7rvM57/8M//MPv/MM//ANXXXXVVVddddVVV1111VVX/ZegctVVV1111f9Ir/M6r/Pe11xzzYNvv/12fumXfon/CpL4z/BO7/RO3O/MmTMP4qqrrrrqqquuuuqqq6666qr/KlSuuuqqq676H+nDP/zDvwvgD/7gD/iPJon/Ki/2Yi/GzTffzP2uueaaB3PVVVddddVVV1111VVXXXXVfxWCq6666qqr/sf58A//8O8CuP3227n99tv5t5KEJCQhCUlI4r/Si7/4iwPwF3/xF5w9e5ZrrrnmwVx11VVXXXXVVVddddVVV131X4Xgqquuuuqq/1GuueaaB7/O67zOewP8wR/8Af8SSUhCEpKQhCQk8d/t5ptv5uabbwbgGc94BgBnzpx5MFddddVVV1111VVXXXXVVVf9VyG46qqrrrrqf5QP//AP/y6Av//7v+f222/nfpKQhCQkIQlJ/E/2Yi/2YgDcdtttAJw7d45rrrnmwVx11VVXXXXVVVddddVVV131X4Xgqquuuuqq/zFe7MVe7LVf7MVe7LUB/vAP/xBJSEIS/xtIQhKSkMSLv/iLA/D4xz8eSdzvmmuueTBXXXXVVVddddVVV1111VVX/VcguOqqq6666n+Md3qnd/osgD/8wz9kb2+P/4kkIQlJSEISkpDEA73xG78xALfddhtHR0cAnDt3DoAzZ848mKuuuuqqq6666qqrrrrqqqv+KxBcddVVV131P8LrvM7rvPeLvdiLvTbAH/7hH/LfTRKSkIQkJCGJF9WLvdiLAfCMZzyD+x0dHQFwzTXXPJirrrrqqquuuuqqq6666qqr/itQueqqq6666n+Ed3zHd/wsgF/6pV/iv4ok/jO82Iu9GADnzp3j3LlzPLczZ848iKuuuuqqq6666qqrrrrqqqv+KxBcddVVV1313+4d3/EdP+uaa6558O23384//MM/8B9NEpKQhCQkIYn/LK/6qq8KwOMf/3ge6OjoiKOjI178xV/8tbnqqquuuuqqq6666qqrrrrqvwKVq6666qqr/tu90zu902cD/OEf/iH/HpL47/ZiL/Zi7OzscO7cOc6dO8dzOzo64qqrrrrqqquuuuqqq6666qr/MlSuuuqqq676b/XhH/7h3wVw++23c/vtt/OikMT/VC/2Yi8GwG233YYkbPPczpw582Cuuuqqq6666qqrrrrqqquu+q9AcNVVV1111X+ba6655sGv8zqv894Af/iHf8hzk4QkJCEJSUjif6oXe7EX4+abbwbgtttuA0ASkrjf2bNnueaaax7MVVddddVVV1111VVXXXXVVf8VCK666qqrrvpv8+Ef/uHfBfAP//AP3HHHHUhCEpKQxP90kpCEJCTxYi/2YgD85V/+Jc9NEpI4OjoC4MVe7MVem6uuuuqqq6666qqrrrrqqqv+s1G56qqrrrrqv8WLvdiLvfaLvdiLvTbAH/7hH/I/lSReFDfddBM333wzALfddhsvyHK55Kqrrrrqqquuuuqqq6666qr/MgRXXXXVVVf9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RnDVVVddddVVV1111VVXXXXVv9s//MM//M6pU6d45CMfCYBtXlSnTp0CYG9vj38v29jGNv8VbGObB7r55psB+Id/+Iff5qqrrrrqqv9uBFddddVVV1111VVXXXXVVVf9u509e/ZWgDd90zflX+vkyZMAXLp0iX8L29jGNv8VbGMb2zw/x44dA+C+++67lauuuuqqq/67EVx11VVXXXXVVVddddVVV13173bffffd+lu/9VvfferUKU6dOsW/xsmTJwG4dOkSLyrb2MY2/1VsY5sX5uabbwbgH/7hH36bq6666qqr/icguOqqq6666qqrrrrqqquuuuo/xG/91m99z8mTJ3mlV3ol/jVOnjwJwN7eHi+MbWxjm/8qtrGNbV4Ux44dA+C+++67lauuuuqqq/4nILjqqquuuuqqq6666qqrrrrqP8Q//MM//Pbf//3f//Yrv/Ir869x6tQpAPb29nhutrGNbf6r2MY2tvnXuuWWWwC47777buWqq6666qr/CQiuuuqqq6666qqrrrrqqquu+g/zD//wD7996tQpHvGIR/CiOnnyJACXLl0CwDa2sc1/FdvYxjb/Ec6ePfsMrrrqqquu+p+A4Kqrrrrqqquuuuqqq6666qr/ML/1W7/13QCv/MqvzIvi5MmTAFy6dAnb2Oa/km1s8x/l5ptvBuAf/uEffpurrrrqqqv+JyC46qqrrrrqqquuuuqqq6666j/M2bNnn/EP//APv/2IRzyCF8UjHvEIAG6//Xb+q9jGNrb5j3bs2DEA7rvvvlu56qqrrrrqfwKCq6666qqrrrrqqquuuuqqq/5D/dZv/db3nDp1ikc84hH8T2Eb29jmP8vNN98MwD/8wz/8DlddddVVV/1PQXDVVVddddVVV1111VVXXXXVf6h/+Id/+G2AN33TN+WFsc3DH/5wAG6//Xb+o9nGNrb5r3Ds2DEA7rvvvlu56qqrrrrqfwqCq6666qqrrrrqqquuuuqqq/5D3Xfffbf+wz/8w2+fPHmS/2q2sY1t/qvYxjY333wzAPfdd9/Tueqqq6666n8Kgquuuuqqq6666qqrrrrqqqv+w/3Ij/zI55w6dYpXfuVX5n62eW6PeMQjALj99tv5t7KNbWzzX8U2trHNczt79uwzuOqqq6666n8Kgquuuuqqq6666qqrrrrqqqv+w/3DP/zDb//DP/zDb7/Jm7wJL8zJkycBuHTpEv8atrGNbf6r2MY2tnl+brnlFgD+4R/+4be56qqrrrrqfwqCq6666qqrrrrqqquuuuqqq/5T/P3f//1vnzp1ikc84hE8PydPnuRfwza2sc1/JdvY5l9y7NgxAO67775bueqqq6666n8Kgquuuuqqq6666qqrrrrqqqv+U/z2b//29wC80iu9Es/PIx7xCABuv/12XhDb2MY2/5VsYxvbvChuueUWAP7hH/7ht7nqqquuuup/EoKrrrrqqquuuuqqq6666qqr/lPcd999t/7DP/zDbz/ykY/khbl06RIPZBvb2Oa/km1sY5t/rWPHjgFw33333cpVV1111VX/kxBcddVVV1111VVXXXXVVVdd9Z/mt37rt77n5MmTPOIRj+C5PeIRjwDg0qVL2MY2tvmvZBvb2Obf4+abbwbgvvvuu5Wrrrrqqqv+JyG46qqrrrrqqquuuuqqq6666j/NP/zDP/w2wJu+6Zvygly6dIn/SraxjW3+o509e/YZXHXVVVdd9T8JwVVXXXXVVVddddVVV1111VX/ae67775b//7v//63T548yXN7xCMeAcDtt9/Ofzbb2MY2/xluueUWAP7hH/7ht7nqqquuuup/EoKrrrrqqquuuuqqq6666qqr/lP96I/+6GefOnWKV37lV+aBTp48yX8m29jGNv/Zjh07BsB99913K1ddddVVV/1PQnDVVVddddVVV1111VVXXXXVf6r77rvv1vvuu+/WV3qlV+L5uXTpEv+RbGOb/yq33HILAP/wD//w21x11VVXXfU/DcFVV1111VVXXXXVVVddddVV/6nOnj37jN/6rd/67kc84hE84hGPAODhD384ALfddhv/EWxjG9v8V7GNbXZ2dgC47777buWqq6666qr/aQiuuuqqq6666qqrrrrqqquu+k/327/9298D8PCHPxyAU6dOAbC3t8e/hW1sYxvb/FexjW1sc79bbrkFgPvuu+9Wrrrqqquu+p+G4Kqrrrrqqquuuuqqq6666qr/dPfdd9+t//AP//Dbr/RKrwTAyZMnAbh06RIvKtvYxjb/lWxjG9u8MGfPnn0GV1111VVX/U9DcNVVV1111VVXXXXVVVddddV/id/6rd/6nlOnTvGIRzyCU6dOAXDp0iVeGNvYxjb/1Wxjm3/JLbfcAsA//MM//DZXXXXVVVf9T0Plqquuuuqqq6666qqrrrrqqv8S//AP//DbAK/0Sq/EyZMnAbh06RLPzTb/XWzzr3Xs2DEA7rvvvlu56qqrrrrqfxqCq6666qqrrrrqqquuuuqqq/5L3Hfffbf+wz/8w28/4hGP4OTJkwDs7e0BYBvb2Oa/mm1sY5t/rVtuuQWAf/iHf/htrrrqqquu+p+I4Kqrrrrqqquuuuqqq6666qr/Mj/yIz/yOSdPnuTUqVMA7O7uYpv/araxjW3+PY4dOwbAfffddytXXXXVVVf9T0Tlqquuuuqqq6666qqrrrrqqv8yZ8+evZVnunTpEseOHeO/im3+o91yyy0A3Hfffbdy1VVXXXXV/0RUrrrqqquuuuqqq6666qqrrvovc9999936Iz/yI5/9Tu/0Tp997NgxPviDP5j/C86ePfsMrrrqqquu+p8IPehBD+Kqq6666qqrrrrqqquuuuqq/zrXXHPNg8+cOfOgD//wD/9u/g/4+q//+vf5h3/4h9/mqquuuuqq/4nQgx70IK666qqrrrrqqquuuuqqq6666qqrrrrqqv+TqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/Ff8IMj42ZOtutBkAAAAASUVORK5CYII=) ```kcl // Parameters @@ -212,7 +212,7 @@ vase = layer() ``` -![Rendered example of patternTransform 4](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAOi4klEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qr/Vtdcc82DAc6cOfNggGuuuebBAGfOnHkQD3DNNdc8GOCaa655MM/lzJkzD+b5uOaaax7Mv+C+++67lRfi7Nmzt/IA9913360803333XcrwNmzZ5/BM9133323Apw9e/ZWgPvuu+9Wrrrqqquuuuqqq67674Ie9KAHcdVVV1111VVXXXXVf5xrrrnmwQBnzpx58DXXXPPgM2fOPAjgmmuuefA111zzYIAzZ848+JprrnkwL8Rf/uVfArBarbjfpUuXuN/e3h7Pz6VLl5DEv9WxY8d4fnZ2drjfzs4OAMeOHWO9XgPwsi/7srwg9913360809mzZ2+97777bgW47777bj179uwz7rvvvlsBzp49e+t99913K1ddddVVV1111VVX/UdBD3rQg7jqqquuuuqqq6666kV3zTXXPPjMmTMPfrEXe7HXArjmmmsefM011zz4zJkzD77mmmsezHP5y7/8S1arFQCXLl1ib28PgEuXLrG3t8d/BEn8V5LEi2pnZ4f77ezscOzYMQB2dnaYzWa87Mu+LA9033333Qpw9uzZW++7775bAf7hH/7hd+67775bz549e+t99913K1ddddVVV111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ylN4mZd5GR7/+Mezv7/PE57wBO63vb3NYx7zGF7xFV8RgDvvvJPHP/7xvP7rvz5f9VVf9d2///u//z5cddVVV1111VVX/f9C5aqrrrrqqquuuur/oVrr7/z2b/82L/uyL8uP/diPcenSJV7lVV6FS5cu8Q7v8A78wz/8A4973OPY29vj8Y9/PI9//OP54z/+Y2666Sb29va439mzZ3nsYx/LG77hG7K3t8cdd9zBHXfcwd7eHnfccQfPbW9vD0k8/vGPB+Bxj3scD7SzswPAzs4OOzs7bG9v03Ude3t77OzssLe3x/12dnYAuHjxIseOHQPgpptu4t9rd3eXzARgd3eX48ePA7C3t8f99vb22N/fZ29vj/l8zq//+q+zt7cHwJ133sm/xc7ODo9+9KMBeKVXeiUA9vb2+Ku/+ivud8cdd3D+/Hm+93u/lwfa3t7mMY95DK/4iq/InXfeCcCf/umf8qd/+qe853u+J7/9279N13W/w1VXXXXVVVddddX/P1Suuuqqq6666qqr/h+65pprHvzar/3a3HHHHbzKq7wKv/Irv8LjHvc4HvvYx7Kzs8OxY8d4h3d4B+644w4e97jHcccdd7C3t8fjHvc4AP74j/+YnZ0dbrrpJu63s7PD2bNneexjH8tNN93E3t4eAHfccQd33HEH+/v77O3tsbe3xwuyt7cHwN7eHi+qnZ0d7rezs8Nz29nZ4YXZ29vjue3v7wOwt7fHCyKJf4udnR22t7e58cYbAbjpppu48cYb2dvbY39/n6c85SkA3HnnnQDM53N+8id/kjvvvBNJPND29jaPecxjeMVXfEXuvPNO7vc93/M97O/v8zZv8zYAPPaxj731N3/zN2/lqquuuuqqq6666v8fKlddddVVV1111VX/j910003s7e3xRm/0RvzKr/wKf/zHf8zjHvc4XuVVXoWdnR3Onj3L27/927O3t8fjHvc4Hve4x7G3twfA3t4ej3vc43jc4x4HwM7ODjfddBN7e3vccccd3HTTTQA85SlP4eEPfzg7OzvcdNNN7O3tAXDHHXcAcOedd7K3twfAHXfcwb/W3t4eAJLY39/nud155538R5LEC7OzswPA9vY2N954IwA7Ozvs7Oxw4403ArC3t8edd97Jfffdx4033sj97rjjDubzOT/5kz/JnXfeyQNJAmB7e5vHPOYxPPrRjwbg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+dne3uYxj3kMN954IzfeeCN7e3v81V/9Fff70z/9U/70T/+UB9re3ub1X//12d7e5nd+53e45ppr+N7v/V5e7/Vej1tvvZVhGG7lqquuuuqqq6666v8nKlddddVVV1111VX/T73O67zOe//QD/0QH/VRH8U//MM/8Md//Me88iu/MgBnz57l7d/+7bnjjjv44z/+Y/b29tjb2+OP//iPAdjZ2eGmm24CYGdnh52dHfb29njlV35l9vb22NvbY29vjzvvvJM77riDvb09ntve3h57e3u8IDs7OwDs7Oyws7PDfffdx87ODs/P7bffzou92IvxQDs7O/xb3X777ezt7XHzzTezv78PwB133MHOzg57e3vM53P29/f5yZ/8SQDuvPNOXlSSuN/29jY7OzvceOON3Hjjjdx4443s7e2xv7/PU57yFG688UYAFosF3/M938P+/j4PtL29zWMe8xhe8RVfkd/5nd/hZV7mZVgsFvzGb/wGN954I495zGP4nu/5Hm655Rauuuqqq6666qqr/p9CD3rQg7jqqquuuuqqq676/+ibvumbnn7NNdc8+Hd+53d4mZd5GX78x3+cvb09AF75lV+ZV37lV+aP//iPeexjH8sdd9zB4x73OO644w6e287ODjfddBM33XQTOzs73HTTTQD8zd/8DadOneKmm25ib2+Pvb099vb2uPPOO9nb2+OOO+7gRSWJf62dnR1eVHt7e0jiP8vOzg4AN954Izs7O9x4443ceOONAOzt7fFXf/VXvNZrvRYAe3t7POEJT+DOO+/kzjvv5PnZ3t7mFV/xFXnMYx7D4x//eB7zmMfwp3/6p/zpn/4pANvb27zXe70Xv/3bv81rv/Zrc9999936IR/yIQ/hqquuuuqqq6666v8fKlddddVVV1111VX/z61WK/7qr/6Kt3/7t+eP//iPedzjHscf//Ef87jHPY7HPvax7OzscPbsWd7+7d+evb09Hve4x/G4xz2Ovb09APb29njc4x7H4x73OCSxs7PDTTfdxPb2Nvfb2dlhZ2eHv/mbv+Exj3kMN910EwB7e3vs7e2xt7fHnXfeCcDe3h57e3vs7e0hiX+rvb09XhSSkMS/187ODgA33ngj29vbANx0003ceOONAOzt7QHwV3/1V9x4440A7O3tsb+/z2Kx4Kd+6qe48847eUG2t7d5zGMew6Mf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7rzzTu644w729va48847eWH29vbY29vjzjvvBODxj388AJIA2NnZAWB7exuAYRg4e/Ys29vb7OzssLe3B8D+/j73297e5l9jf3+f++3t7QGwv7/P/fb29tjf3+dpT3sae3t77O/v86KQxAuyvb3Nox/9aABe8RVfEYD9/X3+6q/+ige6ePEi3/u938vzs729zWMe8xhe4RVegf39fe73jd/4jTzQ677u63LjjTfyPd/zPRw7dgyA7e1tdnd3ueaaax78Oq/zOu/9W7/1W9/NVVddddVVV1111f8t6EEPehBXXXXVVVddddVV/9d8+Id/+Hdde+217723t8crv/Ir8+M//uPccccd3HTTTdx99918xEd8BH/8x3/MH//xHyOJ++3s7PAGb/AG/OVf/iUv+7Ivy87ODo973OO48847ueOOO3hBdnZ2uOmmm7jpppt4zGMeA8Dv/u7v8tCHPpSbbrqJvb09AO68807uuOMO9vb2uPPOO3lhJPGfRRL/2SRxv+3tbQAe/ehHA3DjjTdy4403sr+/z97eHk996lN5zdd8Tfb399nb2+POO+/kCU94Avv7+7wg29vbPPrRj+YVX/EV2d/f57d+67d4ndd5HX7jN36Du+66iwd63dd9XW688UZ+8id/kmPHjnHXXXfx6Ec/mtd93dcF4M4772R3d/e3P/MzP/N1uOqqq6666qqrrvq/hcpVV1111VVXXXXV/zHXXHPNg1/ndV7nvff29vjVX/1Vbr31Vl75lV+ZH//xH+eOO+7gsY99LACPfexjeexjH8tP/MRPsLe3B8De3h4/8RM/wc7ODgA7Ozvs7Ozwyq/8yuzt7fEnf/InPO5xj+O57e/v8/jHP57HP/7x/Nqv/Ro7OzvceOON7O/vc8cdd3DTTTcB8PSnP53HPOYx3HTTTQDs7e2xt7fH/v4+d9xxBwD7+/vceeed/GeRxH+G7e1tAHZ2drjxxhsBuPHGG7nxxhsB2N/fZ29vj6c+9ans7Oxwv/39febzOT/90z/NnXfeyQuzvb3Nox/9aG688UZuvPFG7rzzTvb39wHITL7v+76PB9re3uZ1X/d12dnZYXt7m2PHjnHXXXcB8KhHPYpbb72Vs2fP8uhHP5qu6x78Yi/2Yq/9D//wD7/NVVddddVVV1111f8dVK666qqrrrrqqqv+j/nwD//w7wLY2dlhb2+P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8AqvwF133cUNN9zAn/3Zn/Hnf/7nPND29jav+7qvyziOnDx5ku///u/nfu/+7u/O0572NG699VYe/ehH86hHPQqAf/iHf/jtz/zMz3wdrrrqqquuuuqqq/7nonLVVVddddVVV131P9iLvdiLvfaLvdiLvfYdd9zBzs4OAHfccQev/MqvzM7ODo997GN53OMex97eHn/yJ3/C273d2/FXf/VXvN3bvR0/8RM/wd7eHgB7e3v8yZ/8CY9//OO56aab+N7v/V7e+q3fmsc+9rE8/vGP5/GPfzx7e3s80N7eHnt7ezz+8Y9nZ2eHG2+8EYCdnR1+53d+h5d5mZfhlV7pldjb2+POO+/kjjvuYH9/nzvvvJN/yd7eHnt7e9x55508t52dHQC2t7cZhoH77ruPruu43/7+Ptvb2+zs7PCMZzyD48ePA3Ds2DF2dna434033si/x6VLl7h06RK7u7s86EEPYn9/H4C9vT329/fZ29sDYBxH9vf3+d7v/V729/d5bpL419je3ubRj340AK/wCq8AwP7+Pn/1V3/FjTfeyN7eHovFgv39fb7v+74PSTw/29vbPOpRj+IVXuEV2N/f5/u+7/t4vdd7Pb7/+7+f/f19Hmh7e5u3equ34sKFC5w8eZLv//7v536PetSj2N7eZj6fc9ddd/HoRz8agLvuuosXe7EXe+0Xe7EXe+1/+Id/+G2uuuqqq6666qqr/meictVVV1111VVXXfU/2Id/+Id/F8DjHvc4brrpJnZ2dgD44z/+Y86cOcMrv/Irc8cdd7C/v8/e3h4/8RM/wRu8wRvwV3/1V7zd270dj3vc4/iTP/kT7re3t8fjHvc4dnZ22Nvb46abbuLGG2/kMY95DHfeeSePe9zjuPPOO3lue3t77O3t8fjHP56dnR1uvPFG9vf3AdjZ2eGv//qveexjH8uNN97I3t4e+/v73HHHHdx5553ceeed/Gvs7e0BsLe3x5133okknvCEJ/CCbG9vc7+dnR3ut729zYtCEgD7+/s80N7eHvv7+/xbSeJfsr29zfb2NjfeeCM33HADN954IwD7+/v81V/9FQD7+/s84QlPYLFY8I3f+I08kCSe2/b2No961KN4hVd4Bfb399nf3wdAEj/zMz/Dc3vUox7F677u6/I3f/M3nDlzhu///u/nftvb27zu674uv/M7v8Mdd9yBJO73xCc+kRtuuIF3f/d3/65P+ZRPeQhXXXXVVVddddVV/zOhBz3oQVx11VVXXXXVVVf9T/SO7/iOn/VO7/ROnw3wrd/6rbzjO74jEcF3fud3AvD2b//2tNY4ceIE3/Vd38X9dnZ2eMxjHsMwDLzma74mj3vc4/iTP/kT9vb2eG47Ozu80iu9Er/5m7/JS77kS/Kar/ma7O3t8fjHP54/+ZM/4UWxs7PDjTfeyE033cSNN97Izs4OP/dzP8fDH/5wdnZ2uPHGG9nb22N/f5+9vT3uvPNO9vb2uPPOO/mXSOI/kyT+M0jigba3twG48cYb2d7e5oYbbuDGG28EYH9/n729PZ761Kfymq/5muzv73PnnXeyv7/PE57wBPb393l+JHG/7e1tHvWoR/HoRz+a7e1tfvd3f5e//du/5ZVe6ZV44hOfyP7+Ps9te3ub133d12V7e5vf+q3f4lGPehS/+Zu/yQO91Vu9FeM40nUdP/uzPwvAu73bu7G9vc3Xfu3X8pEf+ZEA/NZv/dZ3f/3Xf/37cNVVV1111VVXXfU/D5Wrrrrqqquuuuqq/6He6Z3e6bN5ppMnT3L8+HEAbrrpJu644w5+9Vd/lTd8wzcE4A3e4A34tV/7NQD29vb4kz/5E17plV4JgJ2dHd7u7d6Oxz3ucfzJn/wJD7S3t8ev//qvs7Ozw2w2A+C3f/u3edmXfVne+73fmzvvvJM77riDxz/+8bwge3t77O3t8YQnPAGAnZ0dbrzxRh5oZ2eHnZ0dzp8/z2Me8xhuvPFGAPb29tjf32dvb4+9vT329/fZ29tjf3+f/f19/jNJ4j/S9vY2Ozs77OzssL29DcANN9zAjTfeCMD+/j4AT3/609nZ2QFgf3+fvb097rrrLqZp4hu/8Rv5l0gCYHt7m0c96lHs7OzwqEc9iv39ff7qr/6Kl3mZl2GxWHD8+HH+/M//nOfn5V/+5XmFV3gF7rrrLra3t9na2uI3f/M3eaC3equ3Ynt7G4Af+IEfAGB7e5vt7W0ATp06BcD+/j4v9mIv9tpcddVVV1111VVX/c+EHvSgB3HVVVddddVVV131P83rvM7rvPeHf/iHfxfP9J3f+Z288iu/Mo997GN53OMex6/+6q8CsLOzw/u+7/uyt7fH4x73OP7kT/6EB9rZ2eGVXumVOHfuHC/90i8NwK/92q9xxx13IInntrOzw4033shNN93Eb/zGb/CSL/mSvPRLvzQAd955J3fccQd33nkne3t7PJAkXpidnR1uvPFGAG688UZ2dna48cYbud/f/u3f0nUdOzs73Hjjjdxvb28PgP39ffb29gDY399nb28PgP39fQD29vYA2N/f518iiRdme3ub++3s7ACwvb0NwPb2NgA7Oztsb28DcOONN3K//f19AO68807uu+8+XvM1X5P77e/vc+edd7K/v8+dd97JXXfdxb/Wzs4Oj3rUo7jxxhu54YYb2N/f56/+6q/427/9W972bd+WO++8kz//8z/nBdne3uat3uqtAPirv/orHv7wh/Obv/mb7O/v80Cv+7qvyw033MD29jY/+7M/y1133QXA67zO63DDDTdw11138ed//ue827u9G/f7rd/6re/++q//+vfhqquuuuqqq6666n8W9KAHPYirrrrqqquuuuqq/0muueaaB3/TN33T0x/3uMdx0003sbOzw3d+53cC8L7v+77s7e3x4z/+4+zt7SGJnZ0d3ud93oe9vT3uuOMOfu3Xfo3n9tjHPpbHPOYxPO1pT+M1X/M12dvb49d+7de48847eUF2dna48cYbecxjHsNNN93E7/7u7/LQhz6Um266ib29Pe68804e97jHcdddd/FvtbOzw/b2Njs7O9x4440A7OzssL29zc7ODvf7uZ/7OY4dO8bx48c5deoU99ve3gZgZ2eH52dvb48HksRz297e5gXZ39/nfnt7ewCcP3+e3d1dAF7zNV+T++3v77O3t8f+/j77+/sA3Hnnndx11138W21vb7O9vc2NN97Iox/9aLa3t9nf3+ev/uqveM3XfE329/d5whOewJ//+Z/zwmxvb/O6r/u63HDDDfzu7/4uL/MyL8Of/dmf8cQnPpEHksRbvuVbsr29zfb2Nj/7sz/LXXfdBcD29jbv9m7vBsDP/uzPsr+/z7u927uxv7/P/v4+GxsbfOZnfubr3Hnnnb/NVVddddVVV1111f8c6EEPehBXXXXVVVddddVV/5N87ud+7m+92Iu92Gs/7nGPY2dnh5tuuokf//Ef54477uCVX/mVuf766yml8BM/8RPcb2dnh/d5n/dhb28PgJ/4iZ9gb2+PB9rZ2eGmm27iDd7gDfjd3/1dXvM1X5O9vT3+5E/+hMc//vG8MDs7O9x4443s7OzwSq/0SgD87d/+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13md1+H3f//3efVXf3UAzp49+4wP/uAPfjBXXXXVVVddddVV/z3Qgx70IK666qqrrrrqqqv+O7zO67zOe3/4h3/4dwHs7e3xq7/6q7z+678+BwcH/PiP/zgApRTe5m3ehr29PX7t136N++3s7PB2b/d2/PVf/zUv/dIvzeMe9zj+5E/+hOd27NgxXumVXonHPOYx3HHHHezs7HDnnXfyuMc9jjvvvJMXZmdnh8c85jHceOON3HTTTQDceeed3Hjjjezt7XHnnXdy55138vjHP55/DUk8t+3tbQB2dnbY3t5mZ2eH7e1tdnZ2ANje3mZnZ4cH+tu//VuOHTsGwPHjxwGICLa3t/n3unTpEgC7u7vc70EPehAPtL+/D8De3h77+/vs7+8DcOeddwJw11138aKQxAuyvb3NDTfcwPb2No9+9KPZ3t5mf3+f7e1tAPb393nCE57AE5/4RPb393lukrjf9vY2j3rUo3j5l3959vf32d7e5q677uK3fuu32N/f57k96lGP4nVe53X4m7/5G86cOcPP/uzP8kBv+ZZvyfb2Nl/91V/NNddcA8BbvMVbcMMNN/Dbv/3bvNzLvRzb29sAfOZnfubr/MM//MNvc9VVV1111VVXXfVfDz3oQQ/iqquuuuqqq6666r/D537u5/7Wi73Yi7323t4eAD/+4z/O6dOnee3Xfm1+/Md/nL29PXZ2dnjf931f9vb2eNzjHsef/MmfcL+dnR0e85jHMAwDr/mar8njHvc4/uRP/oS9vT0AJPFAb/AGb8Bv/MZv8Jqv+Zq85Eu+JHfccQePf/zjefzjH88LI4mdnR1uvPFGbrzxRh7zmMcA8Ld/+7ecOnWKG2+8kb29Pe68807uvPNO9vb2uPPOO3l+JPHvsb29DcDOzg4A29vb3G9nZweAnZ0dntv29jbPz/7+Ps9tb2+P++3v7yOJvb09APb399nf3+c/giSe2/b2No961KMAeIVXeAUA9vf3+au/+ite8zVfk/39ffb397nzzjv58z//c14YSQBsb2/z8i//8jzqUY/irrvu4jd+4zd4vdd7PX7rt36L/f19ntv29jav8zqvww033MD3fd/38Yqv+Ir81m/9Fg/08i//8rz8y788AD/4gz/I/v4+AB/0QR/E7/zO73DnnXfyFm/xFmxvb7O/v89tt93225/5mZ/5Olx11VVXXXXV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VVddddVV/1WuueaaB3/TN33T03mmxz3ucTzucY/jFV7hFThx4gTf+Z3fCcBjH/tY5vM5L/3SL82v/dqvcccdd3C/nZ0dDg8PecmXfEle+qVfmsc97nH8yZ/8CQCSuN/Ozg6Pecxj+LM/+zNe8zVfk5d8yZdkb2+PP/mTP+Hxj388L8yxY8e48cYbufHGG7nxxhvZ2dnhb//2bzl16hQ33ngje3t73Hnnndx55508/vGP54WRxItie3sbgJ2dHba3t9nZ2WF7e5udnR0Atre3AdjZ2eFv//ZvOXbsGPc7fvw4AMeOHePf69KlS9xvd3eX+126dImXfMmXBGB/fx+Avb099vf32d/fB+DOO+8E4K677uK5SeJfa3t7m+3tbW644QZuvPFGbrjhBvb39/mrv/orXvM1X5P9/X2e8IQncPfdd3PXXXfxL9ne3uZ1Xud1uOGGG/jd3/1dXvM1X5M///M/58///M95fm644Qbe8i3fkmc84xl83/d9Hy/1Ui/FXXfdxf1uuOEG3uIt3oKf/dmfRRJ33XUXAO/6ru/KhQsXePrTn87111/Pox71KADuu+++W7/+67/+ff7hH/7ht7nqqquuuuqqq676r0Hlqquuuuqqq6666r/QO77jO34WD7Czs8Pe3h6lFHZ2drjpppu48847efzjH88rvdIr8dd//de8wRu8AT/xEz/B3t4eAHt7e+zs7ND3PTs7O7zyK78yOzs7/Omf/il7e3vcb29vjz/5kz9hZ2eH5XIJwF//9V/zBm/wBrzSK70Sj3/843n84x/P3t4eDySJvb099vb2ePzjHw/Azs4ON954I6dOnQJgZ2eHW2+9lcc85jG8/uu/Pnt7e9x5553ceeed7O3tceeddwIgiRfV/v4+APv7+/xLtre3kcTOzg4A29vbPND29jbPbWdnhwfa29vjuUlif3+f++3t7QGwv78PwO///u/zbyGJf8n29jYAj3rUowB4hVd4BQD29/f5q7/6K2644Qbut1gs+P7v/3729/eRxAuzvb3Nox71KB71qEcB8Fd/9Vdsb2+zsbHBN3/zN/P8bG9v86hHPYqXf/mXB6DrOs6cOcNdd93F/ba3t3mLt3gLfud3focbbriBv/iLvwDgUY96FNvb2wD88i//Mtdffz33u+aaax78Oq/zOu/1D//wD7/NVVddddVVV1111X8N9KAH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XXXVf4R3fMd3/Kx3eqd3+myAvb09dnZ2eNzjHsef/MmfcHh4yId/+Ifzx3/8x/zJn/wJOzs73HTTTcxmM176pV+axz/+8fzJn/wJ97vxxht5pVd6JZ72tKfx0i/90jz+8Y/nT/7kT3huOzs7POYxj+HP//zPecmXfEle4zVeg729PR7/+Mfzp3/6p7wwOzs73HjjjTzmMY/hxhtv5Pd+7/d46EMfyo033sje3h533nknd955J094whP4t5DE9vY2N954IwA33ngj29vb7OzssL29zc///M8D8KAHPYiu69je3mZnZ4ft7W3ut7+/D8De3h77+/sA7O/vs7+/z/329va43/7+Pg+0v7/PCyKJ+21vb/Pctre3Adje3gZge3ub++3s7LC9vQ3A9vY229vb3G9/fx+A/f19nvrUpwJw22238W7v9m7s7+9z1113AbC/v89dd93F/v4++/v7vDCSeH62t7e54YYb2Nra4uVf/uUB2N/f56//+q95jdd4Dfb393niE5/Ik570JPb393kgSdxve3ubRz7ykTzykY8E4K//+q/527/9W175lV+Zv/iLv+D5ebmXezle7uVejmc84xmcPHmS3/7t3+buu+9GEgDXX389b/7mb87f/M3fcM011/DzP//zADzykY/ktV7rtfi+7/s+uq7jEY94BC/3ci/H/v4+29vbAPzIj/zIZ//oj/7o53DVVVddddVVV13170flqquuuuqqq6666j/I2bNnn8Ez7e3tsbOzw0033cSv/dqv8djHPpbf/d3f5aVf+qW58847ueOOO7jjjju46667AHjpl35pAP7kT/4EgDvvvJNf//Vf5zGPeQw/+7M/y1u+5VvymMc8hsc//vH8yZ/8Cffb39/nT//0T9nZ2aHve77hG76Bl3zJl+SlXuqleMxjHsOdd97J4x//eO68806e297eHnt7ezz+8Y9nZ2eHG2+8kb29PW688UZ2dnZ4xjOewWMe8xhe//Vfn729Pe68807uvPNO9vf3ufPOO3lhJAGwv7/PE57wBACe8IQncL/t7W0AdnZ2uO+++9je3uZ+e3t73HjjjQBsb28DsL29ze/93u9x/Phx5vM5N9xwAwA7OzsAbG9v8x9tf3+f++3v7wNw/vx5dnd3Wa1WPOpRj+KB9vf3Adjf32d/f5/9/X0WiwV33XUXAN/8zd/Mv4Uk7re9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4cYbb+TGG2/k937v93joQx/KjTfeyN7eHnfeeSd33nknT3jCE5DEi2p7e5udnR22t7e58cYb2d7e5sYbb+R+f/d3f8fJkycBuPHGGwHY398HYG9vj/39fQDuuusuAPb29tjf32d/f5/nRxL/0STxr7G9vQ3A9vY229vbbG9vA7C9vc329jbb29tsb29zv/39ffb393na057Gq7/6qwOwv78PwF133cX+/j533303d911Fy+IJJ7b9vY2W1tb3HDDDTzykY9ke3ub/f19/vqv/5rXeI3XYH9/nyc96Uk86UlPYn9/nweSBMD29jaPeMQjeLmXezn29/f567/+a/72b/+WV37lV+Yv//IveW4v+7Ivy8u93Muxv7/P9vY2f/EXf8Ff/uVfIgmA13zN1+SRj3wkP/dzP8ejHvUofvd3f5frr7+eN3uzN+Nv//Zvmc/nHBwc8LIv+7J83/d9H+/xHu/B933f93HTTTd999d//de/D1ddddVVV1111VX/MdCDHvQgrrrqqquuuuqqq/6jvNiLvdhrf+7nfu5v8Uw/93M/x2u91mvxJ3/yJ+zs7LBer3npl35pfu3Xfo0777yTV3qlV+KVXumV2NvbA+DXfu3XuPPOO5HEzs4Od955Jy/5ki/Ja77mawLw+Mc/nj/90z/lgXZ2drjxxht5zGMew4033sidd97JjTfeyJ133snjH/94nvCEJ/CCbG9vc+ONN3LjjTfyW7/1W9xyyy086EEP4kEPehA7Ozvs7+9z5513cuedd3LnnXeyv7/Pv9b29jY7Oztsb29z4403ArC9vc2NN94IwC/8wi8AcMsttwBw8uRJdnZ22N7e5oH29/cB2NvbA+Dg4ID77e3tAbC/v8/zs7+/z/Ozvb3N/SQBsL29zQNtb28DsL29DcD29jbb29s8t/39ffb39zl//jyXLl0C4NKlS7zZm70Z+/v7ANx1113s7+8DcPfdd3PXXXfxryEJgO3tba6//nq2t7e54YYbuP7669nf3+ev//qvAfj93/993uu93ou7776bv/iLv+AFkcTLvuzLsr29zSMf+Uj29/fZ3t5mf3+fJz3pSfzlX/4lz+1lX/ZlebmXezn29/f5nd/5HV7u5V6O3/md32F/fx9JbG1t8WZv9mYAbG9v87u/+7s86UlP4vrrr+fN3uzN+Nu//VvOnDnDX/7lX/Jmb/Zm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/j57e3vs7++zv7/Pc5PEfxRJ/EeSxL/G9vY229vbbG9vs7W1BcANN9zADTfcwP329/e59dZbuXTpEq/+6q8OwP7+Pk960pMAuOuuu7j77rv5l2xvb/PIRz6SG264geuvv579/X3++q//mtd4jddgf3+fJz3pSdx9993cfffdPLft7W0e8YhH8HIv93Ls7+/z13/91/z+7/8+b/RGb8Rf/uVfcr+trS1e67Vei+uvv57f+73f46Vf+qX53d/9Xe6++262trZ4szd7MwC2t7f5y7/8S+6++27e7M3ejGc84xl8//d/P+/7vu/LMAw86EEP4m/+5m+4cOHCd3/913/9+3DVVVddddVVV131nwM96EEP4qqrrrrqqquuuuo/y4u92Iu99vu93/v91rFjx/j+7/9+3vM935OdnR3+5E/+hPV6zUu/9Evz+Mc/nic84QkcHBzwki/5krzUS70Uj3/84/nTP/1TdnZ2ePSjH81f/MVf8BIv8RK8xmu8Bnt7e/zGb/wGd955J/e78cYbefSjH81jHvMY/u7v/o6XeImXYG9vjyc84Qnceeed3HnnnTy37e1tHvOYx3DjjTfysz/7s7zES7wED3nIQ7jxxhvZ39/nzjvv5M4772R/f58777yTF0YSANvb29x4440A3HDDDWxvb3PjjTcC8Au/8AvccsstnDx5EoAbb7yR++3v77O3t8f+/j6S2NvbY39/n/39fQD29/fZ39/n30IS/1EkAbC9vQ3A9vY2ANvb22xtbQGwvb3N9vY229vbbG9vA7C/vw/A/v4+T3va0wB49Vd/dQD29/e5++672d/fZ39/n/39fe6++25eFNvb2zzykY/k+uuv54YbbgBgf3+fv/7rv+a2227jLd/yLXnSk57Ek5/8ZPb393lu29vbPOIRj+CRj3wkAH/913/Na7zGa/CkJz2Ju+++myc/+cncb2tri9d6rdfi+uuv5/d+7/f4vd/7Pd74jd+Yv/zLvwTgZV/2ZXnZl31Z/vZv/5af//mf56EPfSjb29u82Zu9GX/7t3/LmTNnANje3uZrvuZr+LAP+zAuXbrEz/3cz73Pb/3Wb303V1111VVXXXXVVf850IMe9CCuuuqqq6666qqr/rNcc801D37VV33Vp0vi3d/93QHY29tjb2+PO++8k2EYeI3XeA3+5E/+hCc84Qk8+tGP5slPfjJv+ZZvCcCv//qvc+edd7Kzs8OjH/1o/uIv/oKXeImX4DVe4zXY29vjT//0T3nCE57A/ba3t3nMYx7Dox/9aH73d3+Xl3mZl+HGG29kb2+PJzzhCTz+8Y9nf38fAEncb3t7mxtvvJEbb7yR7e1t/vqv/5pbbrmFkydPcuONN7K/v8/e3h533nknd911F3feeSf3k8S/ZHt7m+3tbXZ2drjhhhsA2N7e5md/9mfZ2dnh+PHjABw7doxjx45x6tQpALa3t9ne3uaB9vf3ud/+/j4A+/v7PNDe3h4AkvjX2t7e5n7b29vcb3t7m+3tbZ7b/v4++/v7AJw/f55Lly4BcOnSJXZ3d7n99tv5sA/7MO666y729/cBuPvuu7nrrruQxItqe3ubra0tbrjhBq6//npuuOEGAPb39/mbv/kbbrvtNt7iLd6CJz3pSQD85V/+Jc/P9vY2j3jEI7jhhhu4/vrr2d/f56//+q956Zd+aZ70pCfxl3/5lwBIAmBra4vXeq3X4vrrr+f3fu/3+Nu//Vte5VVehb/8y78E4Prrr+c1X/M1AfiZn/kZbr75Zp785Cfzsi/7srzsy74sv/u7v8v111/P1tYW29vbbG1tAfB93/d9HDt2jO/5nu8RV1111VVXXXXVVf950IMe9CCuuuqqq6666qqr/jO99Vu/tV/zNV+TZzzjGbzma74mX//1X8+Hf/iH8/jHP569vT2e/OQn8+7v/u7ceeed/Pqv/zoAb/M2b8Pf/M3f8Bqv8Ro8/vGP50//9E/Z29tjZ2eHRz/60fzFX/wFL/ESL8FrvMZrsLe3xxOe8AT+9E//lAfa3t7mFV/xFXnMYx4DwJ133smNN97I3t4eT3ziE7nzzju58847eX62t7e58cYbufHGG9ne3ubGG28E4M477+TGG28EYH9/nzvvvJO77rqLvb097rrrLv4ttre3Adje3mZnZweA7e1tdnZ22N7e5pd+6Zd4zGMew/b2NgDHjh0DICLY3t4G4NixY/xnuXTpEgCXLl3ifnfccQeXLl0C4KVe6qXY399nf38fgIODA/b399nf32d/f58XRBIvyPb2NltbW9xwww1sb2/zyEc+EoD9/X329/e54YYbANjf3+cv/uIv2N7e5i//8i95Qba3t3nEIx7BDTfcwPXXX8/+/j7b29vs7+/zpCc9ibvvvpu7776b+0niZV/2ZXnEIx7B9vY2v/d7v8ff/u3f8iqv8ir85V/+JQBbW1u87Mu+LI985CP5vd/7PV76pV+a3/3d32V/f5/Xeq3XYmtri5/5mZ/hsY99LNdffz3b29v89E//NO/+7u/O7/7u7/KSL/mS/O7v/i7f8z3fI6666qqrrrrqqqv+86AHPehBXHXVVVddddVVV/1nuuaaax78qq/6qk9/j/d4D57xjGfwoAc9iK//+q/nPd/zPbnzzjv50z/9U97mbd6G/f19tre3efzjH8+f/umfsr+/z7Fjx3jzN39zTpw4weMf/3j+9E//FElsb2/zmMc8hhtvvJEbb7yRvb09AJ7whCfw+Mc/nv39fe63vb3NjTfeyI033shjHvMYfu/3fo+HPvSh3Hjjjezv7/P4xz+eu+66izvvvJMXZHt7mxtvvJEbb7yR7e1tbrzxRn7hF36BW265hZMnT3LjjTcCsL+/z97eHvv7+9x1113s7e1x11138aKQxItie3ub+21vbwOwvb3NA21vbyOJF2R/f5/t7W2en/39fe63v78PgCT29/fZ39/nP4IkALa3twF45CMfCcD111/PDTfcAMD+/j77+/s87WlPA+DVX/3V2d/f50lPehL7+/s86UlP4n6SeG7b29s84hGP4JGPfCTb29vs7+/z13/917zGa7wGd999N0960pN40pOexANtb2/zyEc+kpd92Zdlf3+fv/7rv+b3f//3eaM3eiP+8i//EoCtrS0e+chH8rIv+7I84xnP4EEPehB/+Zd/yV/+5V9y/fXX82Zv9mbs7+8D8Hu/93u8zMu8DNvb2/z0T/807/7u784znvEMHvSgB/F93/d9/OEf/uFD7rvvvlu56qqrrrrqqquu+s+DHvSgB3HVVVddddVVV131n+293uu9/FIv9VI86EEPYm9vj729PX76p3+a93zP9wTg13/917n77rt5yZd8SV7jNV6DP/mTP+FP//RP2dnZ4c477+QlX/Ilec3XfE0AnvCEJ/Cnf/qnAGxvb3PjjTfymMc8hhtvvJE777yTG2+8kTvvvJPHP/7xPOEJT+CBtre3ufHGG7npppt49KMfzS/8wi/w0i/90tx4443s7+9z5513cuedd7K/v8+dd97JC7K9vQ3ATTfdxA033MD29jY33ngjAL/wC7/ALbfcwsmTJ7nxxhsB2N/fZ29vj/39fQDuuusu9vb22N/fZ39/H0n8R5LEfyRJ/Fttb2+zvb3N9vY2W1tb7OzssLW1xQ033ADA/v4+ALfeeiuXLl3i1V/91dnf3wfgSU96EgB33XUXd999N8+PJAC2t7d5xCMewfb2No985CMBuO2223jGM57BS7/0S/OXf/mXADzpSU/iuT3ykY/k+uuv55GPfCT7+/tsb2+zv7/Pk5/8ZP7yL/+S+73sy74sL/uyL8v+/j6//du/zd/93d9xzTXXAPCyL/uyvOzLviy/93u/x+/93u/xsIc9jNd8zddke3ubn/7pn+bd3/3dOTg4YGtri2c84xn8zd/8Dd/zPd8jrrrqqquuuuqqq/5zoQc96EFcddVVV1111VVX/Wd7ndd5nfcGvuvDP/zDud8dd9zBzs4OtpHEr//6r3PjjTfy53/+57zHe7wHAI9//OP50z/9U3Z2dnj91399nva0p/FSL/VSADzhCU/gT//0T7nf9vY2r/iKr8hjHvMYfu/3fo/XeI3XYG9vj7vuuovHP/7x3HnnnQBIAmB7e5udnR1uuOEG/uIv/oKdnR0e9KAH8ZCHPIQbb7yR/f197rzzTu6880729/e58847eSBJPLft7W1uvPFGAG644Qa2t7e58cYbAfiFX/gFbrnlFgBOnjzJjTfeyP329/fZ399nf38fgL29Pfb39wHY399nf38fgP39ff4lkviPJInntr29DcD29jYA29vbbG1tAXDDDTcAcMMNN3C//f19AG699VYuXboEwKu/+quzv78PwN13383+/j533XUXd999Ny+K7e1tHvnIRwLwci/3cgDs7+/zN3/zNzzjGc/g9ttv5w3e4A24++67ufvuu3lu29vbPOIRj+DlXu7l2N/f56//+q95jdd4Df7yL/+SJz3pSRwcHACwtbXFIx/5SF72ZV+W/f19/vqv/5qXfumX5nd/93e5++67uf7663nN13xNAH7mZ36Gxz72sTz5yU/mzd7szTh//jynTp1ia2uLB/r6r/96gPf5rd/6re/mqquuuuqqq6666j8XetCDHsRVV1111VVXXXXVf7Zrrrnmwd/0Td/0dJ7p67/+6/nwD/9wHv/4x7Ozs8PTnvY0XuqlXorHP/7xPOEJT+D1X//1edrTnsZrvMZr8PjHP54//dM/ZW9vj52dHV7/9V+fv/qrv+I1X/M1AXjCE57A4x//ePb39wHY3t7mxhtv5DGPeQx/9Vd/xYMe9CBe4iVegr29PZ7whCdw1113ceedd/Lctre3ufHGG7nxxht59KMfDcDf/d3fcfLkSW688Ub29/e588472d/f58477+Suu+7iRbW9vc329jY7Oztsb2+zvb3N9vY2P/uzPwvAsWPHOHbsGMeOHePYsWOcOnUKgO3tbba3t3mg/f197re/vw/A/v4+D7S/v8+/1fb2Nvfb3t5GEltbWwBsb2/zQPv7+wDs7+8DcP78eS5dugTAbbfdhm1uv/123vM935P9/X0ODg4AuOuuu7j77rt5UW1vb7O1tcUNN9zA9ddfzw033ADA/v4+f/M3f8Orv/qrs7+/z913383+/j5/+Zd/yfOzvb3NIx7xCF7u5V4OgNtuu42//du/5bVe67V48pOfzF/+5V9yv62tLR75yEfysi/7suzv7/PXf/3XvPRLvzS/+7u/y913383W1hav9VqvxfXXX8/v/d7v8dIv/dL87u/+Ltvb27zma74mz3jGM+j7noODAx7xiEfw/d///bz7u78793u7t3s7cdVVV1111VVXXfWfDz3oQQ/iqquuuuqqq6666r/CO77jO37WK7/yK3/2M57xDF7zNV+Tr//6r+fDP/zDufPOO7njjjt4pVd6JQD+5E/+hCc84Qk8+tGP5s///M958zd/c06cOMHjH/94/uzP/gyA7e1t7rrrLl7iJV6Cl3mZl2F7e5s777yTJzzhCdx5553cb3t7m8c85jE8+tGP5nd/93d5mZd5GW688Ub29/e58847ecITnsCdd97J87O9vc2NN97IjTfeyKMf/WgAfv/3f5+HPOQh3HjjjQDs7+9z5513ctddd7G3t8ddd93Fv5Yktre32d7eZnt7G4Dt7W12dnbY3t7m93//97npppvY3t4G4NixYwAcO3aM+x07doz/LJcuXQLg0qVL3O+OO+7g0qVL7O/v8+qv/urs7++zv78PwMHBAfv7++zv77O/v8/9JPGi2N7eZmtrixtuuIHt7W0e+chHArC/vw/A3/zN3/Dqr/7q7O/vc/fdd7O/v8/dd9/N3XffzfOzvb3NIx7xCB71qEextbXF/v4+f/3Xf81Lv/RL86QnPYknP/nJHBwccL+trS0e+chH8rIv+7Ls7+/zO7/zO/zd3/0dL/mSL8ndd9/N1tYWj3zkI3nZl31ZnvGMZ/Cg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O+/kxhtvZH9/nyc84Qnceeed3HnnnTzQ9vY2Ozs73HDDDdx4443ceOON/MIv/AK33HILL/ESLwHA/v4+d955J3fddRd7e3vcddddvCi2t7cBuPHGGwG48cYb2d7e5vu+7/s4duwYx44d49ixYwDs7Oxw7NgxTp06BcD29jbb29s8t/39fR5of3+f++3v7/Oi2t7e5rltb28DsL29zXPb39/nfvv7+5w/f55Lly4BcOnSJS5dusRtt90GwHu+53ty9913A7C/v8/+/j533303L4rt7W0AHvnIRwLwci/3cgDs7+9z6623cunSJV791V+d/f19nvSkJ3H33Xdz991389y2t7d5xCMewSMf+Ui2t7fZ399ne3ub/f19nvzkJ/OkJz2Jg4MDALa2tnjkIx/Jy77sy7K/v89f//Vf8/u///u86qu+Kk9+8pPZ2tritV7rtbj++usBODg44Bd+4Rd4xCMewcu+7Mvyu7/7u7zsy74s+/v7bG9v8z3f8z182Id9GN/3fd8HwE//9E+Lq6666qqrrrrqqv866EEPehBXXXXVVVddddVV/5Ve53Ve571f4zVe47tuu+023uIt3gKAvb09AO68807+4i/+grd8y7cE4Kd+6qe48cYbeeITn8hLvuRL8lIv9VLceeed/Omf/in7+/s8+tGP5jGPeQw33ngjd955Jzs7O9xxxx084QlP4M477+R+N954I495zGN49KMfzS/8wi/w0i/90tx4443s7+9z55138oQnPIE777yT57a9vc3Ozg433HADN954Iz/7sz/LLbfcwi233MLJkye58cYbAdjf3+fOO+/krrvuYm9vj/39ffb393lBJPHctre3Adje3mZ7exuA7e1tnvGMZwCwvb0NwE033cT29jbHjh3jfseOHeM/w6VLl7jfpUuXuOOOOwA4ODhgf38fgAc96EEA7O/vc3BwwP7+Pvv7+wBI4kW1vb3N1tYWN9xwA9vb22xvb3P99dcDsL+/z9/8zd8A8Pu///u813u9F3fddRd33303d999N8/P9vY2j3jEI3jkIx/J9vY2+/v7/PVf/zUv/dIvzZOf/GTuvvtu7r77bu63tbXFy77sy/LIRz6S/f19/vqv/5rf//3f51Vf9VV58pOfzNbWFo985CN52Zd9WZ7xjGfwAz/wA7zxG78xT37yk3nN13xNtre3+emf/mle6ZVeia2tLba3t9na2gLg+7//+3mJl3gJfu/3fu99fuu3fuu7ueqqq6666qqrrvqvgx70oAdx1VVXXXXVVVdd9V/pmmuuefCLvdiLPf093uM9OHbsGPd7xjOewYkTJ/jTP/1TXvEVX5G/+Zu/4aVe6qV4/OMfzxOe8AQe85jH8Od//ue81Vu9Fdvb2zzhCU/g8Y9/PPv7+2xvb/OKr/iKPOYxj+Hv/u7veImXeAn29vZ4whOewOMf/3gODg4A2N7eZmdnh0c/+tE8+tGP5hd+4Re45ZZbeImXeAn29/e58847ufPOO9nf3+fOO+/kgSSxvb0NwI033sgNN9zAT//0T3Ps2DFuueUWbrnlFk6ePMnOzg7b29vs7+8DcOedd3LXXXcBsLe3x913381/lJ2dHR5oe3ub+21vb/OvcXBwgG0kAbC/vw/A/v4+/xaSeG7b29sAXH/99WxvbwNw/fXXc8MNNwCwv7/P/v4+T3va0wC47bbbuO2223iDN3gDAO6++27uvvtunp/t7W0e8YhHsL29zSMf+UgAbrvtNp7xjGfw0i/90jzpSU/i7rvv5p577uF+W1tbPPKRj+QRj3gE29vb/N7v/R6v8RqvwV/+5V/ypCc9iYODA7a2tnjkIx/Jy77sy3Lp0iV+7ud+jsc+9rH85V/+JS/7si/Ly77sy/KMZzyDU6dO8aQnPYmXfdmX5RnPeAanTp1ia2uL+33+538+f/VXfyWuuuqqq6666qqr/muhBz3oQVx11VVXXXXVVVf9V/vwD//w73qZl3mZ9z5+/Di/+7u/y2u+5msC8Hu/93u89Eu/NHfccQd7e3sMw8BLvdRLIYlf//VfZ29vj8c85jE8+clP5rVf+7XZ3t7mCU94Ao9//OPZ399ne3ubxzzmMTz60Y/mb/7mb3joQx/Kzs4Oe3t7POEJT+AJT3gCD7S9vc2jH/1o/uIv/oKdnR1e8iVfkpMnT3LjjTeyv7/PnXfeyZ133sn+/j533XUXz8/29jYAN954IzfccAPb29vceOONPNCdd97Jzs4O29vbAOzv77O/v8/+/j4Ad955JwD7+/vs7++zv7/Pv0QS/5Ek8e+1vb0NwPb2NjfccAMA29vbbG1tccMNN3C//f199vf3ueGGG7jf/v4++/v73H333QDcdddd3H333Uji+dne3uYRj3gEAC/3ci8HwP7+Pn/zN3/DM57xDG6//Xbe4A3egLvvvpu7774bAElsbW3xyEc+kq2tLR75yEeyv7/PX//1X/PSL/3SPPnJT+Yv//IvAdja2uKRj3wkL/uyL8v+/j4/8zM/w2Mf+1ie9KQnAfBar/VabG9v81d/9Vdcd9113H333bzma74mf/u3f8tLvuRLAvC3f/u3vORLviQAv/Vbv/XdX//1X/8+XHXVVVddddVVV/3XQg960IO46qqrrrrqqquu+q92zTXXPPhN3uRNnn78+HFe8zVfk9/93d/lNV/zNXmgP/mTP+EJT3gCBwcHvORLviSv8RqvweMf/3j+9E//FIBXfMVX5KlPfSov8zIvw/b2NnfeeSdPeMITuPPOOwF49KMfzY033shv/dZv8RIv8RK89Eu/NAB33nknd955J094whN4oO3tbW688UZuvPFGHv3oRwPwd3/3d5w8eZIbb7yR/f197rzzTu666y729va46667eGG2t7fZ3t5mZ2eHG264ge3tbSRxww03APALv/AL3HLLLQCcOnWK7e1ttre3ud/+/j4A+/v77O/vA7C3t8f+/j4Aktjf3+d++/v73G9/f59/DUkAbG9v80Db29sAbG9vA7C1tcX9tre32d7eBuCGG27ggfb39wG49dZbuXTpEgCv/uqvDsD+/j77+/vcfffdANx1113cfffdvCCSANje3uYRj3gEAC/3ci8HwP7+Pn/zN3/Dq7/6q7O/v8/dd9/N/v4+f/mXf8lzu/7667nhhht42Zd9Wfb39/nrv/5r/u7v/o7Xf/3X5+677+bJT34yAFtbWzzykY/kZV/2Zdnf3+dnf/Zned3XfV1+53d+B4BHPvKRvOzLvix/+7d/y0Mf+lD+8i//kkc84hFcf/31ANx9991cf/31/O7v/i6v+Zqvyc/+7M8C8Eu/9EsPue+++27lqquuuuqqq6666r8WetCDHsRVV1111VVXXXXVf4d3fMd3/KxXfuVX/uxLly7xki/5kvzu7/4uL/3SLw3A933f9/Ee7/EeAPzpn/4pOzs7/Nmf/Rlv/dZvzfb2Nk94whP40z/9U7a3t3nMYx7DK77iK/J3f/d3vMRLvAR7e3v86Z/+KU94whMA2NnZ4cYbb2R7e5tXfMVX5O/+7u94iZd4Cfb397nzzju58847ecITnsBz297e5sYbb+TGG2/k0Y9+NAB/93d/x8mTJ7nxxhvZ398H4M477+Suu+5ib2+Pu+66ixdEEvfb3t5me3ub7e1tAG688Ua2t7cB2N7eZnt7m/v94i/+Ijs7Oxw7doxjx45RawVge3sbgO3tbf4z7e/vc7/9/X2maeLSpUtcunQJgFd/9Vfnfvv7+wDs7+9z9913A7C/v8/+/j533303L6rt7W0e+chHAnDDDTdw/fXXA7C/v8/f/M3f8Oqv/urs7+9zcHDAXXfdxd13383dd9/NA21vb/OIRzyC7e1tHvnIR7K/v89f//Vf8xqv8Rrs7+/z5Cc/mb/8y7/kfi/7si/LIx7xCLa3t/m7v/s7fu/3fo9XfuVX5klPehIAj3zkI3nZl31ZDg4O+Omf/mke+9jHcs899/Car/maAPz0T/80r/RKr8QjHvEIfu7nfo63eIu34BnPeAYAT3va077767/+69+Hq6666qqrrrrqqv966EEPehBXXXXVVVddddVV/x2uueaaB7/Yi73Y09/zPd+Tixcv8qAHPYj7Pf7xj+fGG2/kb/7mb3iN13gN/vRP/5THP/7xPOYxj+G+++7jNV/zNZHE4x//eP70T/+U7e1tHvOYx/CKr/iK/N7v/R6v8Rqvwd7eHk94whO46667uPPOOwHY3t7m0Y9+NDfeeCM33ngjf/d3f8eDH/xgAPb397njjju46667uPPOO7mfJAC2t7e58cYbueGGG9je3ubGG2/kF37hF7jllls4efIkN954I/v7+wDceeed3HXXXQDs7e1x1113IYl/je3tbQC2t7fZ3t4GYHt7m52dHe63vb3N/ba3t9nf32d7e5vt7W3+Lfb393mg/f19APb39wHY39/nfgcHB+zv7wNw1113ASCJf43t7W22tra44YYb2N7eZmtrixtuuAGA/f19br31Vi5dusSrv/qrs7+/z5Oe9CQA7r77bu6++26e2/b2No94xCO44YYbuP7669nf3+ev//qveY3XeA329/d58pOfzF/+5V9yv62tLR75yEfysi/7suzv7/PXf/3XvPRLvzRPfvKT+cu//EsAXvZlX5aXfdmXZX9/n7/+67/m4Q9/OL/7u7/LIx7xCF72ZV+W3/u93+NlXuZl2N/f5/rrr+d+z3jGM3jQgx7E933f9/GHf/iHD7nvvvtu5aqrrrrqqquuuuq/HnrQgx7EVVddddVVV1111X+XD//wD/+ug4OD936Lt3gLLl26xLFjx/iGb/gGPuzDPgyAxz/+8TzmMY9hb28PgCc84Qk8/vGP5/DwkJd4iZfgpV7qpQB4whOewJ/+6Z+yvb3NjTfeyGMe8xj+6q/+ipd5mZfhxhtvZH9/nz/90z/lCU94Avfb3t7mxhtv5NGPfjQ/+7M/y0u8xEvwkIc8hBtvvJH9/X3uvPNO7rrrLvb29rjrrrt4btvb22xvb7Ozs8MNN9zA9vY2N954I7/wC7/ALbfcwsmTJ9nZ2WF7exuA/f199vf32d/f584772R/fx+Au+66i38NSfxHkcR/FEk8t+3tbQC2tra44YYbALjhhhvY2tpie3sbgP39ffb393na054GwKu/+quzv7/P3Xffzf7+PnfffTd33303z8/29jaPeMQjAHi5l3s5APb39/mbv/kbbrvtNt7iLd6CJz/5yfzlX/4l99va2uKRj3wk119/Pddffz37+/v89V//NQ9/+MO5++67+cu//Eu2trZ45CMfycu+7Muyv7/PX//1X/N7v/d7vPRLvzQAr/marwnA1tYWT37yk9na2mJ7e5uf/umf5t3f/d15xjOewYMe9CB+93d/l9ba93z913/9e3PVVVddddVVV1313wM96EEP4qqrrrrqqquuuuq/y5kzZx70zd/8zbf+7d/+Lb/7u7/Le7zHe3Ds2DEALl26hCSe8IQncOONN/K0pz2N13iN1+DOO+/k13/917nxxht50pOexEu8xEvwUi/1UgA84QlP4PGPfzz7+/tsb2/zSq/0Svzmb/4mL/ESL8FLv/RLA3DnnXdy55138oQnPIH7bW9vc+ONN3LjjTdy44038ru/+7vccsstnDx5khtvvJH9/X3uvPNO7rrrLvb29rjrrrt4fra3twG48cYbueGGG9je3mZnZ4ft7W1+4Rd+gWPHjnHs2DFOnTrF9vY229vbAOzv7wOwv7/P/v4+AHfeeScA+/v7AOzv73NwcMB/FEn8W21vbwOwvb3N9vY229vbAGxvb7O1tQXADTfcwP329/cBuPXWW7l06RKXLl3izd7szdjf32d/f5+7774bgLvuuou7774bSTw/29vbPOIRjwDg5V7u5QDY39/nb/7mb7jtttt4i7d4C570pCdxcHDAk570JCRxv+uvv55HPOIRPPKRj2R/f5+//uu/5u/+7u945Vd+ZZ70pCdxcHDA1tYWj3zkI3nZl31Z9vf3+eu//mt+//d/n1d91Vflnnvu4TVf8zW5/vrrATg4OOBJT3oSL/uyL8ulS5c4duwYAM94xjP4/u//ft793d+dBz3oQXzIh3zIQ+67775bueqqq6666qqrrvrvgR70oAdx1VVXXXXVVVdd9d/pwz/8w7/roQ996HsDPOhBD+IZz3gGD3rQg/iGb/gGXvIlX5LXeI3X4PGPfzz7+/v82Z/9GW/+5m/OiRMneMITnsDjH/94brzxRh7zmMdw4403cuedd7K9vc2dd97JE5/4RO688062t7e58cYbefSjH82NN97I7/3e7/Ear/Ea7O/vc+edd3LnnXfyhCc8gQfa3t7mxhtv5MYbb+TRj340v/ALv8Att9zCyZMnufHGG9nf32dvb4/9/X3uuusu7rzzTvb393l+JLG9vQ3ADTfcAMCNN97I9vY2P/uzPwvAsWPHOHbsGAA333wzAKdOnWJ7e5vt7W0eaH9/n/vt7+8DsL+/zwPt7+/zb7W9vc39tre3kcTW1hYA29vbPND+/j4A+/v7TNPEbbfdBsClS5e4dOkSly5d4tKlS7zne74nd999NwB33XUXAHfffTfPjyQAtre32dra4vrrr+eGG27g+uuvB2B/f5+/+Zu/AeClXuqlODg44K677uLJT34y+/v73G97e5tHPvKRALzsy74s+/v7/PVf/zWv8Rqvwf7+Pk9+8pP5y7/8SwC2trZ45CMfycu+7Muyv7/P7/zO7/B3f/d3vOqrvip33303j3zkI3nZl31ZnvGMZ/DzP//zvMqrvAoAL/uyL8vv/d7v8Xu/93t86qd+Ks94xjN40IMexDOe8QwAnva0p33313/9178PV1111VVXXXXVVf990IMe9CCuuuqqq6666qqr/jtdc801D36xF3uxp3/4h384e3t77Ozs8Hu/93u8xmu8BgDf8A3fwHu8x3sA8Kd/+qfs7Ozw5Cc/mdd+7ddme3ubJzzhCfzpn/4p29vbvOIrviKPecxj+Lu/+zte4iVegv39ff70T/+UJzzhCQBsb29z44038uhHP5obb7yRv/u7v+MlXuIl2N/fZ39/nzvuuIO77rqLO++8E0ncb3t7mxtvvJEbbriB3/qt3+LYsWMcO3aMl3iJl+DEiRNsb2+zv7/P3t4e+/v73HXXXezt7XH33Xfzotje3gZge3ub7e1ttre32dnZAeBv/uZvOHbsGNvb22xvb3Ps2DEAjh07BsCxY8f4z3bp0iUuXboEwKVLl9jf32dvb4/9/X1e6qVeiv39fQD29/fZ398H4O677+ZFtb29zfXXX8/29jY33HAD119/PQD7+/tcvHiR2267jdtuu43bbruNt33bt2V/f5+7776bu+++mwfa3t7mEY94BDfccAPXX389+/v7/PVf/zUv/dIvDcCTn/xk/vIv/xKAra0tHvnIR/KIRzyC7e1tbrvtNm655Rbuvvtufud3fgeARz7ykbzsy74sBwcH/PRP/zSPfexjefKTn8ybvdmbAfDTP/3TvN7rvR7XX389z3jGM3jQgx7EwcEBW1tbfN/3fR9/+Id/+JD77rvvVq666qqrrrrqqqv++6AHPehBXHXVVVddddVVV/13+/AP//DvKqW892u+5muyt7fHzs4Ov/d7v8drvMZr8PjHP54bb7yRv/mbv+E1XuM1+NM//VMe//jHc9ddd/ESL/ESvMzLvAzb29s84QlP4E//9E/Z3t7mMY95DK/4iq/I7/3e7/HSL/3SANx555084QlP4M477wRge3ubG2+8kUc/+tH87M/+LC/xEi/BQx7yEG688Ub29/e58847ueuuu3jCE57Ac9ve3ubGG29ke3ubG264gRtvvJH7/d3f/R0nT57kxhtvBGB/f5/9/X329/e588472d/fZ39/n/39fV5Ukrjf9vY299ve3gZge3ubB9re3ubf6uDggPvt7+9jm4ODAwD29/d5IEm8qLa3t9na2uKGG24A4Prrr+eGG27gfvv7+1y8eJFbbrkFgP39fQ4ODrjrrru4++67ufvuu3lu29vbXH/99WxtbfFyL/dyAOzv7/M3f/M33HbbbbzO67wOd999N3/5l3/J/ba2tnjkIx/Jy77sy7K/v89f//Vf89Iv/dI8+clP5klPehIAj3zkI3nZl31ZDg4O+O3f/m3+9m//lpd+6Zfmuuuu42Vf9mX527/9Wx760Ieyv7/P9ddfz+/+7u/ymq/5mhwcHLC1tcXv/u7vcvfdd3/2j/7oj34OV1111VVXXXXVVf+90IMe9CCuuuqqq6666qqr/rtdc801D/6mb/qmp//u7/4uf/u3f8t7vud7srOzwwM9/vGP5zd/8zd5j/d4DwCe8IQn8PjHP57Dw0NuueUWXuZlXoadnR0e//jH84QnPAGAnZ0dXuEVXoHf/u3f5iVf8iV5iZd4Cfb393nCE57AnXfeyZ133gnA9vY2N954IzfeeCOPfvSj+YVf+AVuueUWXuIlXgKA/f197rzzTu666y6e8IQn8Pxsb29z4403AnDDDTewvb3NjTfeCMDv//7vc+zYMU6dOsUNN9zA/fb399nf32d/fx+AO++8k/39fQD29/fZ398HQBL/USTxH0USANvb2wBsbW1xww03ALC9vc329jZbW1tsb28DsL+/D8Ctt97KpUuXePVXf3UA9vf3ufvuu9nf3+fuu+/m7rvv5vnZ3t7m+uuvZ2trixtuuIHrr7+e/f19br31Vi5dusRLvdRL8eQnPxmAv/zLv+R+W1tbPPKRj+RlX/ZlAfi7v/s7nvGMZ/Bar/VaPPnJT+Yv//Iv2dra4pGPfCQv+7Ivy/7+Pn/913/N7//+7/NSL/VSXHfddbzsy74sBwcHbG1t8eQnP5mtrS2uv/567ndwcMDXfM3X8O7v/u486EEP4kM+5EMect99993KVVddddVVV1111X8v9KAHPYirrrrqqquuuuqq/wk+/MM//Lse+tCHvvfx48c5duwYe3t77Ozs8A3f8A28+7u/O5K48847+c3f/E1e8iVfktd4jddgb2+P3/iN32Bvb49XfMVX5DGPeQx33nknOzs73HnnnTzhCU/gzjvvZHt7m0c/+tHceOON/NVf/RUv8zIvw4033sj+/j6Pf/zjueuuu7jzzju5387ODjfeeCOPetSjuPHGG/mFX/gFbrnlFl7iJV4CgP39fe68807uuusu9vb2uOuuu3huktje3gbghhtuAODGG29ke3ub7e1ttre3+cVf/EVsc8sttwBw6tQptre32d7e5n77+/sA7O/vA7C/vw/A/v4+APv7+9xvf3+fB9rf3+eBJPGCbG9v80Db29sAbG1tcb/t7W22t7eRxNbWFtvb2zzQ/v4++/v7nD9/nkuXLgFw6dIl3uzN3oz9/X329/c5ODhgf3+fu+66i4ODA/b395HE87O9vc0jHvEIAF7u5V4OgP39fW699VYuXbrEq7/6q7O/v8+TnvQk7r77bu6++24kAbC1tcUjH/lIHvGIR7C9vc3+/j5//dd/zUu/9Evzl3/5l9x9990cHBywtbXFy77sy/LIRz6S/f19fud3foeXe7mX46/+6q8AeM3XfE0A/uqv/orf+73f49Vf/dV5zdd8TZ7xjGfw8z//83zYh30Yly5d4tixYzzjGc/g2LFj/NVf/dV3f/3Xf/37cNVVV1111VVXXfXfDz3oQQ/iqquuuuqqq6666n+Ca6655sHf9E3f9HSAvb09dnZ2+Nu//Vte8iVfkr29Pf7mb/6G13iN1+Dxj388d955J0960pN4iZd4CV7jNV6Dvb09fuM3foO9vT1e8RVfkcc85jH83d/9HS/xEi/B/v4+j3/84/mzP/szALa3t3n0ox/NK77iKwJw5513cuONN7K/v8+dd97JXXfdxROe8ATut729zfb2Njs7OzzqUY/iZ3/2Z7nlllu45ZZbOHnyJDfeeCP7+/sA3Hnnndx1113s7+9z11138cJsb28DsL29zfb2Ntvb2+zs7LC9vQ3A9vY229vb/OIv/iI7OzsAHDt2jGPHjgFw7NgxIgKA7e1t/jPs7+8DkJlcunQJgEuXLgFw6dIl9vb2eNM3fVP29/cB2N/f5+DggP39ffb399nf3+fg4ID9/X1eEElsb2+ztbXF9ddfD8ANN9zA9ddfD8D+/j5/8zd/A8Dv//7v817v9V7cdddd3H333dx9993cb3t7m+3tba6//npe9mVfFoD9/X22t7fZ39/nyU9+MnfffTd33303W1tbPPKRj+SRj3wkW1tb/N7v/R6v8RqvwV/+5V/ypCc9CUm85mu+Jtdffz2/93u/x+/93u/xxm/8xlx//fVcf/31/N7v/R6v8RqvAcAznvEMHvSgB3FwcMDW1hYAH/IhH/KQ++6771auuuqqq6666qqr/vuhBz3oQVx11VVXXXXVVVf9T/HhH/7h33VwcPDeb/EWb8He3h47Ozv83u/9Hi/90i/N9vY2AJcuXUISd955J/v7+/z5n/85L/ESL8FrvMZrsL+/z2/8xm+wt7fHox/9aB7zmMfw13/917z0S780AHfeeSdPeMITuPPOO9ne3mZnZ4dHP/rR3Hjjjfzu7/4ut9xyCy/xEi/B/v4+e3t73HXXXdx5553cddddPND29jY33ngjN9xwA7/1W78FwC233MItt9zCqVOnuOGGGwDY399nf3+f/f197rzzTvb399nf32d/f58XhSS2t7cB2N7eBmB7exuA7e1ttre3eaDt7W0eaHt7mxfV/v4+D7S/vw/A/v4+9zs4OGB/fx+Ag4MD9vf3+dfY3t5ma2uLG264AYAbbriB66+/HoD9/X0A/uZv/gaAZzzjGdx+++28wRu8AQB33303d999Nw+0vb3NIx7xCG644Qauv/569vf3ufXWW9nd3eWlX/qlefKTn8zdd9/N3XffDcDW1haPfOQjedmXfVn29/f567/+a176pV+aJz/5yfzlX/4lW1tbvNZrvRbXX389v/d7v8ff/u3f8iqv8ioAvOzLviyXLl2ilMLW1hYAf/u3f8tLvuRLcnBwwNbWFj/3cz/H1tbWd3/913/9+3DVVVddddVVV131PwN60IMexFVXXXXVVVddddX/FNdcc82Dv+mbvunpP/dzP8cznvEM3vM935OdnR3ut7e3x/d93/fxki/5krzGa7wGe3t7/Omf/ik7Ozv8+Z//OS/xEi/Ba7zGa7C/v8+f/umfcuedd3LjjTfy6Ec/mp/5mZ/hNV7jNXiJl3gJ9vf3ufPOO3nCE57AnXfeCcD29jaPfvSjufHGG7nxxhv5/d//fR7ykIdw4403sr+/z5133sldd93F3t4ed911Fw+0vb0NwI033sgNN9zAzs4ON9xwA/f7u7/7O06dOsUNN9zA/fb399nf32d/f5+9vT329/fZ399nf3+f/f19JPEfRRL/USTx/GxvbwOwtbXF9vY229vbAFx//fVsb2+zvb0NwP7+PgC33norL/ESLwHA/v4+AE960pMAuPvuu7n77rt5btvb2zziEY/ghhtu4Prrrwdgf3+fv/mbv+HVX/3V2d/f58lPfjJ33303d999NwBbW1s88pGP5GVf9mUB+L3f+z1uu+023vIt35K//Mu/5MlPfjLXX389r/mar8n29ja/93u/x9/93d/xyq/8yjz5yU/mzd7szdja2gLg4OCA/f19rr/+eu53cHDAT//0T/Mar/EaPOhBD+JDPuRDHnLffffdylVXXXXVVVddddX/DOhBD3oQV1111VVXXXXVVf+TvOM7vuNnvfIrv/JnAzzoQQ9ib2+PnZ0dvuEbvoH3eI/34H7f933fx0u+5EvyGq/xGjz+8Y/nCU94AjfeeCOPecxj2N7eBmB/f58nPOEJ/Omf/inb29s8+tGP5sYbb+Sv/uqveJmXeRluvPFG9vf3ufPOO3nCE57AXXfdBcD29jY33ngjN9xwA9vb2/z1X/81t9xyCydPnuTGG29kf3+fvb099vf3ueuuu3jCE57A/SRxv+3tbba3t9ne3ubGG29ke3ub7e1ttre3AfjFX/xFbr75Zk6dOgXADTfcwP329/cB2N/fZ39/n/vt7++zv78PwP7+Pvfb39/nfvv7+9xPEi+q7e1tHmh7exuA7e1tALa3twHY3t5ma2sLgO3tbba3t7nf/v4+APv7+zztaU8D4NVf/dUB2N/fZ39/n7vvvhuAu+++m7vvvpvnZ3t7m62tLa6//npuuOEGrr/+egD29/f5m7/5G2677Tbe4i3egic/+ckA/OVf/iX329ra4pGPfCSPeMQj2N7e5tKlS/ze7/0er/Var8WTn/xk/vIv/5KtrS0e+chH8ohHPILt7W1+7/d+j7/7u7/jlV/5lXnyk5/My77sy/KIRzyC3/u93+P3fu/3eOM3fmNe9mVfloODA376p3+ad3/3d+fSpUscO3aMZzzjGQD8yZ/8yef8yI/8yGdz1VVXXXXVVVdd9T8HetCDHsRVV1111VVXXXXV/yRnzpx50Dd/8zff+vVf//W8xVu8BT//8z/Pa7zGa/CSL/mSAPze7/0er/Ear8HjH/94AH7rt36LN3/zN+f48ePcddddPOEJT2B7e5tXfMVX5K//+q956Zd+aQDuvPNOnvCEJ3DnnXeyvb3NjTfeyCu+4iuyvb3Nbbfdxi233ML+/j533nknd911F094whO43/b2NjfeeCM33HAD29vb/M7v/A633HILx44d4yVe4iUA2N/f56677gLgzjvvZH9/n7vuuovnZ3t7G4Dt7W22t7fZ3t5mZ2eH7e1ttre32d7e5n6/+Iu/yM7ODseOHQPg1KlTAGxvbwOwvb3Nf5b9/X0eaH9/n/Pnz3Pp0iXu9+qv/urcb39/n/39fQ4ODtjf3wfgrrvu4uDggP39fe4niQfa3t5ma2uL66+/nhtuuIHrr78egP39fS5evMhtt93Gbbfdxlu8xVvwpCc9CYC//Mu/BEASW1tbbG9vc/311/OyL/uyAFy6dIljx46xv7/Pk5/8ZJ70pCdxcHDA1tYWj3zkI3nZl31Z9vf3+eu//mte+qVfmic/+ck8+clP5hGPeAQv+7IvyzOe8Qx+7/d+j1d6pVdif3+fl33Zl+X3fu/3eI3XeA0AnvGMZ/D93//9fPiHfzhf//Vfz6d92qfxIR/yIQ+57777buWqq6666qqrrrrqfw70oAc9iKuuuuqqq6666qr/aT78wz/8uw4ODt77Ld7iLXjGM57Bgx70IH7v936Pl3qpl2JnZ4e9vT3ud+edd7K/v8+f//mf8+Zv/uacOHGCO++8kz/90z/lxhtv5NGPfjR/9Vd/xYMe9CBe4iVegv39fZ7whCfw+Mc/nv39fba3t3n0ox/NjTfeyF//9V9zyy238BIv8RLs7++zv7/PnXfeyZ133sldd93F/ba3t7nxxhu54YYb2N7e5md/9me55ZZbuOWWWzh16hTb29tsb2+zv78PwF133cWdd94JwP7+PnfddRcvjCS2t7cB2N7eZnt7m/ttb2+zvb0NwPb2Nvfb3t7mftvb2/xb7O/v80D7+/sA7O/vI4n9/X0A9vf32d/fB+Dg4ID9/X1eFNvb22xtbXHDDTcAcMMNN3D99dcDsL+/z8HBAU996lO57bbbuHTpEm/91m/NXXfdxd13383dd9/NA21vb/PIRz6S66+/nuuvv579/X3++q//GoCXfumX5slPfjJ33303d999N1tbWzzykY/kEY94BNvb21y6dInf+73f47Ve67X4y7/8S+655x4e8YhH8LIv+7JcunSJn/u5n+Oxj30sAC/7si/LwcEBW1tb3O93f/d3ec3XfE0uXbrEsWPH+L7v+z5uuumm7/76r//69+Gqq6666qqrrrrqfxb0oAc9iKuuuuqqq6666qr/aa655poHf9M3fdPTf/d3f5fXfM3X5NKlSxw7doyf//mf583f/M0B+IZv+AZe8iVfktd4jddgb2+PP/3TP2VnZ4cnP/nJvMZrvAa33HILT3jCE3jCE57A3t4ej370o3nMYx7D9vY2d955JzfeeCN33nknT3jCE3jCE56AJLa3t3n0ox/NDTfcwI033sjv//7v85CHPIQbb7yR/f197rzzTu666y729va46667eKDt7W1uvPFGbrzxRra3t9ne3mZ7e5v73XXXXdxwww3cb39/n/39ffb399nb22N/f5/9/X0kcdddd/EfQRL/ESTxL9ne3gZga2uL7e1ttre32d7eZmtrixtuuIH77e/vc3BwwPXXX8/99vf3OTg44K677uLg4IC7776b/f19Hmh7e5tHPOIR3HDDDVx//fUA7O/v8zd/8ze8+qu/Ovv7+zz5yU/mSU96EgcHB2xtbfHIRz6S66+/nuuvv579/X22t7fZ39/nyU9+Mk96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v/1bXvIlX5K//du/BeDxj3/8Z//oj/7o53DVVVddddVVV131Pxd60IMexFVXXXXVVVddddX/ZNdcc82DP/mTP/npAM94xjN4zdd8TX7v936P13iN1+B+e3t77OzscOedd/IzP/MzvMRLvASv8Rqvwf7+Pn/6p3/K9vY2j3nMY/jrv/5rXvqlXxqAO++8kyc84Qns7+9z44038qhHPYobb7yRv/u7v+PBD34w29vb7O/v84QnPIE777yTu+66C4Dt7W1uvPFGbrjhBh796EcD8Hd/93ecOnWKG264AYD9/X3uuusuAO6880729/e56667eG7b29tsb2+zs7MDwA033ADA9vY229vbbG9vA/D7v//7ABw7doxjx44BcOLECQC2t7f5z7S/vw/AxYsXuXTpEve7dOkSr/7qrw7A/v4+APv7+9x9993s7+8DsL+/zz333MPzs729zfXXX8/W1hY33HAD119/PQD7+/scHBzw1Kc+lVd/9Vdnf3+fg4MD7r77bu6++27uvvtuALa2tnjkIx/J9ddfz/XXX8/+/j5//dd/zWu8xmuwv7/Pk5/8ZP7yL/+Sra0tHvnIR/KyL/uy7O/v89d//de8zMu8DE960pN48pOfzGu+5mty/fXX83u/93v83u/9Hu/zPu/D9vY2AFtbWxwcHLC1tcXv/u7v8pqv+Zr87d/+LbfccguXLl3ii7/4ix9y33333cpVV1111VVXXXXV/1zoQQ96EFddddVVV1111VX/0334h3/4d73O67zOewP87u/+Lq/5mq8JwN7eHjs7O3zDN3wDL/mSL8lrvMZrcOedd7K/v89v/uZv8hIv8RK8xmu8Bvv7+zz+8Y9nf3+fRz/60fz2b/82L/mSL8lLvMRLsL+/zxOe8ATuvPNO9vf3ufHGG7nhhht49KMfze///u/zkIc8hBtvvJH9/X3uvPNO7rrrLvb29rjrrruQxPb2NjfccAM33ngj29vb3HDDDQD83d/9HadOneKGG24AYH9/H4C77roLgDvvvJP9/X0ODg7Y39/nBdne3gZge3ub7e1t7re9vc329jb3297e5n7b29v8W+3v73O/g4MD9vf3ud/+/j4A+/v7HBwcsL+/zwuzs7PD1tYW29vbbG1tccMNNwBw/fXXA7C/v8/Fixe57bbbePVXf3X29/cBeNKTnsTBwQFPetKTAJDE1tYWj3zkI9na2uKRj3wkAPv7+/z1X/81r/Ear8Hdd9/N3XffzV/+5V+ytbXFIx/5SB7xiEewvb3N3/3d3/GMZzyD137t1+Yv//IvOTg44DVf8zXZ2tri937v9/jbv/1b3vAN3xCARzziEfze7/0er/EarwHAwcEBW1tbAPzt3/4tL/mSL8nu7i5/9Vd/9T1f//Vf/95cddVVV1111VVX/c+GHvSgB3HVVVddddVVV131P92LvdiLvdbLv/zL//ZbvuVb8tz+9m//lpd8yZcE4Bu+4Rt48zd/c06ePMmdd97J3t4ej3nMY/jrv/5rXuM1XoP9/X0e//jH84QnPIFHP/rRPOYxj+Gv//qveehDH8qNN97I/v4+T3jCE7jzzjvZ399ne3ubRz/60Wxvb3PjjTfyd3/3d5w8eZIbb7yR/f197rrrLu6880729/e56667uN/29jY33HADN954IwDb29vccMMN/MIv/AK33HILAKdOneKGG24AYH9/H4D9/X329/cBuOuuuwDY399nf3+f/f19XhhJ/EeQxL9ke3sbgK2tLQBuuOEGALa3t9na2mJ7e5vt7W0A9vf3Abj11lu5dOkSly5d4s3e7M3Y39/n4OCAu+66i4ODA+6++2729/e53/b2No94xCO44YYbuP766wHY39/nb/7mb3j1V3919vf3efKTn8zdd9/N3XffzdbWFo985CN5xCMewfb2Nvv7+/z1X/81L/3SL82Tn/xk7rnnHq677joe+chHAvBXf/VX/O3f/i1v+IZvyP7+Pi/7si/LpUuX+Lmf+zne+q3fmq2tLZ7xjGfwoAc9iOf2fd/3fTz5yU9+nX/4h3/4ba666qqrrrrqqqv+Z0MPetCDuOqqq6666qqrrvrf4HM/93N/6/z5868N8Jqv+Zr87u/+Lq/5mq8JwO/93u/xGq/xGgA84QlP4ClPeQqv9VqvBcCdd97J3t4ej3nMY/jrv/5rXvqlXxqAO++8kyc84QkAPPrRj+bRj340AHfeeSc33ngj+/v7POEJT+DOO+/krrvuYnt7mxtvvJEbbriBRz/60QD83d/9HadOneKGG25gf38fgLvuuos777yT/f197rrrLu63vb0NwA033ADAjTfeyPb2Ntvb2/zcz/0cx44dA+CWW24B4NSpU2xvb7O9vc399vf3ud/+/j4A+/v73G9/fx+Ag4MD/rW2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N/CSL/mSvMZrvAZPeMITuPPOO7nxxht59KMfzd/93d/xEi/xEuzv7/OEJzyBJzzhCdx444086lGP4sYbb+Tv/u7veImXeAn29/fZ29vjiU98Int7e+zv77Ozs8P29jaPfvSj+Zmf+RluueUWbrnlFk6dOsUNN9zA/v4+AHfddRd33nkn+/v73HXXXdxvZ2cHgBtuuAGAG264ge3tbQBuuOEGntvf/d3fcerUKQBuuOEGnp/9/X0eaH9/n/tJwjYPJAnb3G97e5v7bW9v8/zs7+8DsL+/zzRN3HLLLTzQ/v4+AAcHB9x1110AHBwcsL+/z9133839tre3AXjEIx4BwA033MD1118PwP7+Pn/zN38DwG233cbrvM7rcPfdd3P33Xdz9913s7W1xSMf+Uiuv/56rr/+evb39/nrv/5rXuM1XoP9/X2e/OQn86QnPYlHPvKRPPKRj2Rra4u/+7u/4yVe4iV48pOfzJOf/GQe8YhH8IhHPIK//du/5fd+7/d4wzd8Qx7xiEdwcHDA1tYWAAcHB2xtbQHwcz/3c7zkS74kD3rQg/iQD/mQh9x33323ctVVV1111VVXXfW/A3rQgx7EVVddddVVV1111f8mn/u5n/tbN95442sfP36c3/3d3+U1X/M1Abh06RLHjh3jG77hG3jJl3xJXuM1XoP9/X3uvPNOfvM3f5PXeI3X4CVe4iV4whOewJ133snOzg5/9md/xku8xEvw0i/90gDceeed3HXXXdx5553ceOON3HDDDfzFX/wFt9xyCw996EO58cYb2d/f56677uLOO+/kiU98Itvb2wDccMMN3HjjjWxvb3PDDTcA8Hd/93ecOnWKG264AYD9/X329/fZ39/nrrvuYn9/n/39ffb393mg7e1tALa3t9ne3gZgmiYAtre3AbjpppsA2N7e5tixY/xnueOOO7h06RL7+/sAHBwcsL+/zy233ML+/j77+/sA3HPPPTy37e1ttra2uP766wG44YYbuP7667nf/v4+t956Ky/xEi8BwP7+PnfffTcHBwfcfffd3H333WxtbXH99dezvb3Ny77sywKwv7/PX//1X3Pbbbfxlm/5ljz5yU/mL//yL7n++uu5/vrredmXfVkODg74q7/6K/7u7/6OV37lV+bJT34yL/uyL8sjHvEInvGMZ/DzP//zvOEbviFbW1tcf/31PNDBwQFbW1sAfP/3fz9v/dZvzdbWFvfdd9+tH/IhH/IQrrrqqquuuuqqq/73oHLVVVddddVVV131v8zf//3f//aLvdiLvfb3f//38+7v/u7c79ixY/ze7/0e7/me78n29jbf8A3fwJu/+Ztz44038rqv+7rs7e0BMI4jr/d6r8f+/j4Ad955J3t7e+zs7DCOI6/7uq/L/v4+d955J094whPITMZxZH9/H4Dt7W2GYeB1X/d1ed3XfV329/e56667uPPOO3nCE57AXXfdxfb2Ntvb22xvb9P3PXfddRc33HAD29vb/M3f/A3Hjh3jUY96FDfccAMA+/v7AOzv77O/v8/+/j77+/vs7++zv7/PXXfdxXP7m7/5Gx5oe3ubB9re3uZ+tpHEA9lGEvc7ODjgfvv7+/xLVqsVAFtbW+zs7HDDDTcAcMMNN7C1tcX29jb329/f5+LFizz1qU/l+uuvB2B/f5+7776bYRj4+Z//ee6++24ksbW1xfXXX8/111/Pa77ma7K9vc3+/j633norAPv7+zz5yU9mc3OT5XLJL/zCL/DIRz6S93//92d/f5+//uu/5n62eeVXfmUe+chH8rIv+7L87d/+Ld/wDd/AG77hG/Iqr/IqPOIRj+AZz3gG3/AN38CHfdiHAfC3f/u3vORLviT3e/d3f3e+7/u+j/d4j/fgH/7hH36bq6666qqrrrrqqv9d0IMe9CCuuuqqq6666qqr/jd5sRd7sdf+3M/93N96xjOewd/+7d/yFm/xFnz/938/7/7u78799vf32d7e5glPeAJPfvKTee3Xfm0A7rzzTvb29njMYx7DX//1X/Mar/Ea7O/v84QnPIE777yTG2+8kRtuuIEbb7yRv/u7v+MlXuIl2N/f58477+Suu+7iCU94Ajs7O9xwww08+tGP5oYbbuAXfuEXuOWWWzh16hQ33HAD+/v73HXXXezv73PnnXdy1113cb/t7W1uvPFGAG644Qa2t7e54YYbAPiFX/gFjh07xrFjxzh16hQAN9xwAw+0v78PwP7+Pvv7+0jCNvv7+wAcHBxwv/39ff41tre3ud/29jb3297eBmBrawuA7e1ttre3ud/+/j4ABwcHnDt3jkuXLgHw6q/+6uzv7wNw9913s7+/z913383+/j4HBwcAbG9vs7W1xfXXX88NN9zA9ddfD8D+/j633norly5d4tVf/dW5++67ufvuu7n77rvZ399ne3ub66+/npd92ZcF4O/+7u94iZd4Cfb393nyk5/Mk5/8ZB7xiEfwsi/7shwcHPBXf/VXvMzLvAx33303+/v7vOzLviwHBwf81m/9Fo9+9KPZ2tpie3ubra0t7vf93//9vPu7vzvf//3fz2u8xmvwoAc9iA/5kA95yH333XcrV1111VVXXXXVVf97oAc96EFcddVVV1111VVX/W9yzTXXPPiTP/mTn/6gBz0IgN/93d/lNV/zNQHY399ne3sbgN/7vd/jpV/6pbnzzjvZ3t7mr/7qr3it13otAO68807uuusuHvWoR/FXf/VXvMzLvAw7Ozvs7e3xxCc+kTvvvJNHP/rR3HDDDfzVX/0VD3rQg3iJl3gJ9vf32d/f58477+Suu+5if38fgBtuuIEbb7yRRz3qUfzCL/wCt9xyC6dOneKGG24AYH9/n/39ffb397nrrrvY39/nrrvu4n7b29sAbG9vs729zQ033ADA9vY229vbbG9v83u/93scP36c+91yyy3c79ixY/xnuHTpEgCXLl0C4NKlSwDs7u7y0i/90gAcHBywv7/P/v4+AHfffTcAd999N/fb3t4G4Prrr2dra4sbbriB66+/HoD9/X0A/uZv/oZLly7xmq/5mhwcHPDkJz+Z/f197r77bra2tnjkIx/J9ddfz/XXX8/+/j633norz3jGM3it13otnvzkJ/OkJz2JG264geuvv55HPOIRHBwc8Fd/9Ve8zMu8DHfffTf7+/u87Mu+LAcHB/zVX/0VD3/4wzk4OOARj3gEf/u3f8tLvuRLAnBwcMDW1hYAP/dzP8dbvMVbAPA3f/M3fO7nfq646qqrrrrqqquu+t8FPehBD+Kqq6666qqrrrrqf5sP//AP/67XeZ3XeW+e6Xd/93d5zdd8TQB+7/d+j9d4jdcA4Od//ud5rdd6LQDuvPNOfvM3f5NbbrmF13qt1wLgCU94AnfeeSePfvSjefSjH83v/d7v8Rqv8Rrs7+9z55138oQnPIH9/X1uvPFGbrjhBh796Efze7/3ezzsYQ/jhhtuYH9/n7vuuos777yT/f197rrrLra3t7nhhhu48cYb2d7e5oYbbuAXfuEXOHbsGMeOHePUqVPccMMNAOzv77O/v8/+/j77+/vs7++zv7/P/v4++/v7PLft7W0ksb29zfb2NraRxNbWFgDb29vcb3t7m3+Ng4MD7re/v8/99vf3Adjf3wfg4OCA/f197icJgO3tbba2ttje3mZrawuAG264geuvv5777e/vc/HiRW677TZuu+023uIt3oKDgwPuvvtuAP7yL/8SgK2tLR75yEcC8LIv+7IA7O/v89d//de8xmu8Bvv7+zz5yU/mSU96EgCPfOQjedmXfVkODg74q7/6K17jNV6Dv/zLv+Tg4ICtrS1e9mVfloODA/7qr/6K3/u93+N93ud9uP766zk4OOCnf/qneeu3fmu2trZ4xjOewYMe9CAAfu7nfo63eIu34H5/8Ad/8Ntf+ZVf+TpcddVVV1111VVX/e+CHvSgB3HVVVddddVVV131v807vuM7ftYrv/Irf/axY8c4fvw4z+33fu/3eI3XeA3uvPNOdnZ2+Ou//mte4zVeg/39ff70T/+URz/60dx4443ceeed7OzscOedd3LXXXcB8KhHPYq/+qu/4kEPehAv8RIvwf7+PnfeeSdPeMITODg44IYbbuDGG2/khhtu4Hd/93e55ZZbOHXqFDfccAP7+/vcdddd7O3tcdddd3HXXXcBsL29zQ033IAkbrjhBra3t/mZn/kZbrnlFgBuueUWTp06xfb2Ntvb29xvf3+f/f199vf3Adjf3+fg4ACA/f19APb39wHY39/nRSWJf8n29jYAW1tbAGxvb7O9vc39rr/+eiSxtbXF9vY299vf3+fg4IBz585x6dIlLl26xKVLl3iLt3gL7r77bvb397n77ru5++67Adje3mZ7e5vrr7+e66+/nuuvvx6A/f19/vqv/xqAl37pl+bJT34yAH/5l3/J1tYWj3zkI3nZl31ZAG677Tb+9m//ltd+7dfmSU96Ek9+8pN5xCMewcu+7MtycHDA1tYWBwcH/OVf/iUv+7Ivy9bWFr/3e7/Ha7zGa3C/3/3d3+U1X/M1eW67u7sAfP/3f//7/NZv/dZ3c9VVV1111VVXXfW/C3rQgx7EVVddddVVV1111f82L/ZiL/ban/u5n/tbPNPv/u7v8pqv+Zp8//d/P+/+7u/O/fb397nf937v9/KSL/mSvMZrvAb7+/v82Z/9GTfccAOPfvSj+bu/+zte4iVegv39fZ7whCfwhCc8gUc/+tHccMMN/NVf/RUPetCDeImXeAn29/e56667uPPOO3niE5/I9vY2N9xwAzfeeCM33HAD29vb/N3f/R2nTp3ihhtuAGB/f5+77rqLu+66i/39ffb399nf3wdge3ub7e1ttre3ueGGG9jf3+eGG25ge3ub7e1tHujv/u7vOHbsGLVWtre32d7e5gXZ39/nX2t7e5sXZH9/H4D9/X2maeLSpUu8xEu8BA+0v78PwN13383+/j4Ad999N3fffTf3297eZmtri+uvv57t7W0e+chHArC/vw/A3/zN3/Dqr/7q7O/vc/fdd3NwcMCTnvQkAB75yEcC8LIv+7Ls7+9z8eJFnvGMZ/DSL/3SPPnJT+aee+7huuuu45GPfCRbW1vcdtttnDx5krvvvpsnP/nJvMzLvAzXX389v/d7v8fv/d7v8ZEf+ZFsbW1xcHDA1tYW9/v+7/9+3v3d352//du/5SVf8iW534d8yIc85L777ruVq6666qqrrrrqqv9d0IMe9CCuuuqqq6666qqr/re55pprHvzJn/zJTwd4xjOewWu+5mvyu7/7u7zma74mAPv7+2xvb/MN3/ANvORLviSv8RqvAcATnvAEfuM3foPXeI3X4CVf8iXZ39/nz/7sz9je3ubP/uzPeImXeAle+qVfGoA777yTu+66izvvvJNHP/rR3HDDDdx444383d/9HQ9+8IPZ3t5mf3+fu+66iyc84QncddddbG9vc8MNN3DjjTeyvb3NDTfcAMDf/d3fcerUKW644QYA9vf3Abjrrru46667ANjf3+euu+7iftvb2wBsb2+zvb0NwPb2NpkJwPb2NgDb29scO3aM7e1t/iPt7+9z6dIlDg4OsM3BwQH7+/scO3YMgIODA/b39zk4OGB/f5/7bW9vA3D99deztbXF9vY229vbXH/99QDs7+9zcHDAU5/6VF791V8dgP39fZ785CcD8Jd/+ZdsbW2xvb3N9ddfz/XXX8/111/P/v4+f/3Xf81rvMZrcPfdd3P33XfzpCc9CYBHPvKRvOzLviwHBwf81V/9FX/3d3/HK7/yK/PkJz+Z13zN1+T666/nb//2b/m93/s93vAN35CtrS2uv/56AO6++26uv/56Dg4O2NraAuBv//ZvecmXfEl+93d/lwc96EHs7u7yuZ/7ueKqq6666qqrrrrqfx/0oAc9iKuuuuqqq6666qr/jb7jO77Dx48fB+AZz3gGD3rQg/jd3/1dXvM1XxOA3/u93+OlX/ql2d7e5hu+4Rt4jdd4DR7ykIdw5513sr+/zyu8wivwe7/3e7zGa7wG+/v73Hnnndx111086lGP4sYbb+Tv/u7veImXeAn29/e58847eeITn8j+/j433HADj370o7nhhhv4+Z//eV7yJV+SW265hf39fQDuuusu7rzzTp74xCeyvb0NwA033MCNN97I9vY2N9xwAwC/8Au/wC233MKpU6e44YYbuN/+/j4Ad911FwD7+/vs7+9zcHAAwP7+Pvv7+7ww29vbPD+SeEH29/f5l2xvbwOwvb3N9vY2W1tbANxwww0AXH/99dxvf3+fg4MDnvrUpwLw6q/+6uzv73NwcMBdd90FwD333MPdd9/N1tYW29vbXH/99Vx//fVcf/317O/vk5n87d/+LS/90i/NwcEBT3rSk3jyk5/M1tYWj3zkI3nZl31ZAH7v936P13iN1+Dg4IDf/d3f5brrruORj3wkW1tb/N7v/R5/+7d/yxu+4Ruyv7/Py77sy3Lp0iW+//u/nw/7sA8D4BnPeAYPetCDAPjbv/1bXvIlX5JnPOMZPOhBD+J+b/d2byeuuuqqq6666qqr/vdBD3rQg7jqqquuuuqqq6763+hzPudzfmt7e/u1n/GMZ/Car/maXLp0iWPHjvG7v/u7vOZrviYAv/d7v8drvMZrsL+/z5133slTnvIUXuu1XguAO++8k/39fW644Qae9rSn8Rqv8Rrs7+/zhCc8gTvvvJMbb7yRG264gRtvvJG/+7u/4yVe4iXY39/nrrvu4s477+Suu+5ie3ubG264gRtvvJEbbriBX/iFX+AlXuIluOWWWwDY39/nrrvuYn9/n7vuuou77roLgO3tbba3t9ne3uaGG24AYHt7m5/5mZ/h2LFjHDt2jGPHjnHs2DFOnTrF9vY2ANvb29xvf3+f++3v7wOwv7+PJGwDsL+/zwNJ4gXZ3t7mfltbWwBsb28DsL29zQPt7+8DcHBwwLlz57h06RIAt912GwCv8zqvA8Bdd90FwN13383dd98NwPb2NltbW9xwww1cf/31XH/99QDs7+9z8eJFnvGMZ/Aar/Ea7O/v8+QnP5m7776b/f19rr/+era3t3nZl31ZAG677TZuueUWDg4OeNKTnsSTn/xkHvGIR/CyL/uyHBwc8Fd/9Ve8zMu8DE960pMAeNmXfVkODg746Z/+aV7plV6Jra0trr/+en7u536O13md12Fra4u//du/5SVf8iV5xjOewYMe9CD+5m/+huPHj3NwcPA7n/mZn/naXHXVVVddddVVV/3vgx70oAdx1VVXXXXVVVdd9b/R53zO5/zWi7/4i782wO7uLsePH2d/f5/t7W1+93d/l9d8zdfkzjvvZGdnhwsXLnDy5EnuvPNOAM6ePctLv/RLA3DnnXdy11138ahHPYq/+qu/4mVe5mW48cYbufPOO3niE5/InXfeyaMf/WhuvPFG/vIv/5IHPehBvMRLvAT7+/vs7+9z5513ctddd7G/v8/29jY33HADN954Iz/zMz/DLbfcwi233MKpU6e44YYbANjf32d/f5/9/X3uuusu9vf32d/fZ39/H4Dt7W0AbrjhBgBuuOEGALa3t/m7v/s7tre32d7e5tixYxw7doz7HTt2jH/J/v4+29vbvKguXboEwKVLl7h06RL7+/tcunSJl37pl2Z/f5/9/X0A7r77bgDuvvtu7re9vc3W1hbXX389ADfccAPXX389APv7+xwcHPDUpz6VS5cucdttt/HWb/3W3H333dx9993cfffdbG1t8chHPpLrr7+e66+/nv39fW699VZ2d3d56Zd+aZ785Cfz5Cc/mUc84hFcf/31XH/99RwcHPBXf/VXvMzLvAx33303+/v7vOzLviwHBwf81V/9FQ9/+MM5ODjgEY94BJcuXaKUAsDW1hY/93M/x1u8xVtwcHDA1tYWu7u7HD9+HIDf+q3f+p6v//qvf2+uuuqqq6666qqr/vehctVVV1111VVXXfW/1NmzZ28FeMYznsGDHvQg9vf3+Z7v+R7e673ei9d8zdcEYGdnh+3tbe68807++q//mtd4jddgf3+fu+66i6/7uq/jNV7jNXjpl35pbrzxRp7whCcwTRP7+/sAPO1pT+N1X/d12d/f56677uLP/uzP2N/fZ2Njg7vuuouf/umf5iVe4iV42MMexiu8wiuwv7/PXXfdxZ133smf/dmfAXDx4kU2Njbo+5677rqL7e1ttre32d7e5u/+7u941KMexQ033ADA/v4+AHfddRcAd911FwBPetKT2N/fZ39/nwfa3t7mftvb2wBsb29jG0kAbG1tcT9JvDD7+/vcb39/H4CDgwMA9vf3AZAEwB133MH29jZbW1tsb29z/fXXA/ByL/dyAFx//fXcb39/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Ndjf3+cJT3gCAK/wCq/AM57xDB70oAdx55138sQnPhGARz3qUdx444383d/9HS/xEi/B/v4+d911F094whPY39/nhhtu4MYbb+RRj3oUP//zP8+DHvQgXuIlXgKA/f197rrrLu666y729/e566672N7eZnt7m+3tbW644Qa2t7e54YYbuN/f/d3fcerUKba3t9ne3uZ++/v7HBwcYJv9/X329/c5ODgAYH9/n/vt7+8DsL+/D4AkXlTb29s80NbWFgDb29tsb28DsL29zfb2NgBbW1tsb29zv/39fQ4ODnjqU5/Kq7/6q7O/v8/97r77bg4ODrj77ru5++67Adja2uKRj3wkAC/7si8LwP7+Prfeeiu7u7u89Eu/NHfffTcHBwf85V/+JVtbWzzykY/kZV/2ZQH4u7/7Ox7ykIcA8KQnPYknP/nJvOzLviyPeMQjuHTpEj/3cz/HYx/7WA4ODnjZl31ZAP7qr/6K6667DoBHPOIR/O7v/i6PeMQjuP7663nGM57Bgx70IJ7bz/7sz7K9vf09X//1X//eXHXVVVddddVVV/3vgx70oAdx1VVXXXXVVVdd9b/RT/zET3h3d5fjx49zv/39fba3t7nf/v4+29vbAOzv7wPwZ3/2Z7zCK7wCf/3Xf81rvMZrsL+/z5/92Z+xvb3NK7zCK/B7v/d7vMZrvAb7+/s84QlP4IlPfCKPetSjuPHGG7nhhhv4u7/7O17iJV6C/f197rrrLu68806e+MQnsr29zQ033MCjH/1obrjhBgD+7u/+jlOnTnHDDTewv78PwF133cVdd93F/v4+d911FwDb29tsb2+zvb3NDTfcAMD29jYAN9xwA/f7/d//fY4dO8axY8eotbK9vQ3A9vY2/xn29/e538WLF7l06RKXLl3i1V/91bnf/v4+AHfffTf7+/sA3H333dx9990AbG9vA/DIRz4SgOuvv57rr78egP39ff76r/+a13iN12B/f5+DgwPuvvtu7r77bvb393nkIx8JwMu+7MsCcNttt3HLLbdwcHDAk570JJ785CfziEc8gkc+8pFsbW3xt3/7t7zkS74kf/mXf8mTn/xkXvM1X5Prr7+e3/u93+NlXuZlePKTn8wjHvEIALa2trjnnnu47rrr+JecPXv2GR/8wR/8YK666qqrrrrqqqv+90EPetCDuOqqq6666qqrrvrf6Cd+4icM8Dd/8ze81Eu9FM94xjN40IMexO/+7u/ymq/5mgD87u/+Lq/5mq/JE57wBG688Ub++q//mtd4jdfgCU94Avv7+/zpn/4pL/mSL8lrvMZr8IQnPIG77rqL7e1tHv3oR/PXf/3XvPRLvzQAd911F094whPY39/nUY96FDfeeCM33HADf/d3f8dLvMRLsL+/D8ATnvAE7rrrLu666y52dna44YYbuOGGG9je3uaGG24A4O/+7u84deoUN9xwAwD7+/vs7++zv7/PXXfdxf7+PgB3330399ve3mZra4udnR0Atra22N7eBmB7e5v7bW9vA7C9vc2/1v7+Pg+0v78PwMHBAfv7+9zv7rvvBuDg4ID9/X3ut729zdbWFtdffz0AN9xwA9dffz3329/f59Zbb+UlXuIlANjf3+fuu+/m4OCAu+++m7vvvputrS0e+chHcv3113P99dezv7/PX//1X/Mar/EaHBwc8KQnPYknP/nJADziEY/gZV/2ZTk4OOCv/uqveJmXeRme9KQn8eQnP5mXfdmX5RGPeATPeMYz+Pmf/3ne8A3fkP39fV72ZV+Wv/3bv+WhD30od999N494xCP43d/9XR7xiEdw/fXX83M/93O8xVu8Bc94xjN40IMexN/8zd/wUi/1UgB85md+5uv8wz/8w29z1VVXXXXVVVdd9b8LetCDHsRVV1111VVXXXXV/zav8zqv894f/uEf/l3PeMYzeNCDHgTA/v4+29vbAPzu7/4uL/MyL8P29jb3u/POO9nf3+fP//zPeau3eisA7rzzTvb39/nTP/1TXuM1XoOXfMmXZH9/nz/7sz8D4FGPehQ33ngjf/d3f8dLvMRLsL+/z1133cUTnvAE9vf3ueGGG3j0ox/NDTfcwM///M/zsi/7stxwww3s7++zv7/PXXfdxV133cVdd93F9vY229vbbG9vc8MNN7C9vc0NN9zAL/zCL3Ds2DGOHTvGqVOnuOGGG7jf/v4++/v77O/vI4m9vT0ODg7Y398HYH9/n/39fZ4fSfx77ezsALC1tQXA9vY2W1tbAGxvb7O9vc3111/P/fb39wG49dZbuXTpEpcuXeLN3uzN2N/f5+677+bg4IC7776bu+++m62tLba3t7n++uu5/vrruf766wHY39/nr//6r3mN13gN9vf3efKTn8yTn/xkAB7xiEfwsi/7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e5sbbriBG264ge3tbW644QYAbrvtNmqt3HDDDQDs7+9z1113AXD33Xezv7/P/v4++/v73G97exuA7e1ttre3sY0ktre32d7e5n5bW1s80Pb2Ni/I/v4+AJIA2N/fB2B/fx+Ag4MD7r77bra2tjg4OGB/f58H2t7eZmtri+3tbba3t7n++uvZ2tpie3sbgP39fS5evMgtt9wCwP7+PnfffTcHBwfcfffd3H333WxtbXH99dezvb3Ny77sywJwcHDAX/3VX/EyL/MyPOlJT+LJT34yBwcHvMzLvAzXX389119/PZcuXeLYsWPcfffd/O7v/i4Ar/mar8n111/P7/3e7/EyL/My/O7v/i4Ab/qmb8qlS5copfC7v/u7vMzLvAzb29sAPPnJT+ZlXuZleMYznsGFCxd4mZd5GZ7bM57xDB70oAcBcN999936Dd/wDe/z93//97/NVVddddVVV1111f9s6EEPehBXXXXVVVddddVV/9N9xVd8hR/84Afzgtx5551M08TJkyd5/OMfz7XXXsvJkyf5jd/4De644w7e673eC4Df+I3f4MYbb+QVXuEVAHjCE57AE57wBG688Ub+9E//lDd/8zfn5MmT3HXXXTzhCU9gf3+fRz3qUfzpn/4pL/mSL8lrvMZrsL+/z1133cUTnvAE9vf3AXjUox7FjTfeyF/+5V/yoAc9iJd4iZcAYH9/n7vuuou77rqLJz7xiQBsb2+zvb3N9vY2N9xwA9vb29xwww38/M//PA960IMAOHXqFDfccAMA+/v7ABwcHLC3twfA3XffDcD+/j4ABwcHAOzv7/NvIYkH2t7eBmBrawuA7e1ttra2ANje3mZ7e5utrS22t7e53/7+PhcvXuQZz3gGAK/xGq/B/v4+d999NwcHB9x9993cfffdAGxtbbG9vc3111/P9ddfz/XXX8/BwQF/9Vd/BcDLvMzL8KQnPYl77rmHu+++m62tLR7xiEfwsi/7sgD83u/9Hn/7t3/Lq7zKq/DkJz8ZgEc84hG87Mu+LJcuXeL7v//7edVXfVWe/OQn8zIv8zI84hGPAODuu+/m937v93iN13gNtre3+emf/mke9KAH8Rqv8Ro84xnPYBgGrr/+eqZpYrVacd111/GC7O7u8n7v937iqquuuuqqq6666n829KAHPYirrrrqqquuuuqq/8ne8R3f8bPe6Z3e6bN5AZ7xjGfwoAc9iDvvvJMbb7yRO++8E4CtrS0igt/4jd/g9V7v9chMIoKf/umf5sYbb+Txj3887/me7wnAE57wBJ7whCfw6Ec/mld4hVfgGc94Bg960IN44hOfyBOe8AT29/e54YYbePSjH81f/uVf8pIv+ZLccsst7O/v84QnPIG77rqLu+++m+3tbW644QYe9ahHccMNN/DzP//zPOhBD+IlXuIlANjf3+euu+7irrvuYn9/n7vuuguAnZ0dAG644QYArr/+era3t9ne3mZ7e5sH+ru/+ztOnTrF9vY229vbPD/7+/s8P/v7+9xve3ubB9re3uYF2d/f5+DggHPnzvESL/ESPND+/j4Ad999NwcHB+zv73NwcMDdd9/N/ba2tnjkIx8JwCMf+Ui2trbY39/n4sWLPOMZz+A1XuM1uPvuu7n77rt58pOfzMHBAVtbWzziEY/gkY98JFtbW1y6dIm//du/5WVe5mV40pOexF/91V+xtbXFy77sy/KIRzyCS5cu8XM/93O82Iu9GH/1V3/Fy7zMy/AyL/MyHBwcsLW1xV/91V/x5Cc/mXd8x3fk0qVLlFL4q7/6Kx7+8IezsbHB0dER99xzDy/zMi/DPffcA8B1113HwcEBW1tbAOzu7nL8+HHu91u/9Vvf/fVf//Xvw1VXXXXVVVddddX/XOhBD3oQV1111VVXXXXVVf9TvdiLvdhrf+7nfu5v8ULs7++zvb3Nb/zGb3B0dMRbvMVb8Bu/8Rs8/vGP5z3e4z2ICH7jN36DRz/60dx33328zMu8DE94whN4whOewOu+7uvytKc9jdd4jddgf3+f3/iN3+Dg4IBHPepRvMIrvALPeMYzeNCDHsT+/j5/9md/xhOf+ES2t7d51KMexY033shTn/pUHvawh3HDDTewv7/PXXfdxROf+ETuuusutre32d7e5oYbbuCGG27gp3/6p7nlllt40IMexKlTp7jhhhsA2N/f56677uLuu+8GYH9/n7vuuov7bW9vA7C1tcXOzg4A4zgCsLOzw87ODtvb2wBsb29z7Ngx/r3uuOMOAC5dusTBwQH7+/vs7+9zyy23cHBwwP7+PgcHB+zv7wMgCYCtrS22t7e5/vrr2draYnt7m+uvvx6A/f19/vqv/xqAv/u7v+M93uM9ePKTn8zdd9/NPffcA8DW1haPeMQjeOQjH8nW1hYHBwf81V/9FS/zMi/Dk570JJ785CdzcHDAy7zMy/DIRz6Sra0tLl26xLFjx/irv/or/uqv/oqtrS1e4zVeg+uvv57f+73f4+EPfzi/93u/xyMe8Qhe5mVehmc84xn0fc/v/d7v8Rqv8RpsbGzw9V//9bzMy7wMb/qmb8rv/u7vcsMNN/Dwhz8cgIODA6Zp4vjx4+zu7nL8+HEe6DM/8zNf5x/+4R9+m6uuuuqqq6666qr/mdCDHvQgrrrqqquuuuqqq/6n+szP/Ey/1Eu9FA+0u7vL8ePHud8TnvAEFosFJ0+e5PGPfzzXXnstJ0+e5Dd+4zd4vdd7PTKTiOA3fuM3uPHGG1kul7zma74md955J7/5m7/JjTfeyOMf/3he8iVfktd4jdfgiU98In/2Z38GwKMe9She4RVegd/7vd/jNV7jNdjf3+eJT3wiT3jCEwDY3t7m0Y9+NI961KMAuO2227jlllvY39/nrrvu4q677mJ/f5+77rqL7e1tAG644QZuuOEGtre3ueGGG7jfXXfdxQ033MD99vf32d/fZ39/n7vvvhuA/f199vf32d/fB0ASz8/29jbPz9bWFvc7ODgAQBIA+/v7vDDb29sAbG1tsb29zdbWFgA33HADW1tbbG9vA7C/vw/A9vY299vf3+fJT34yAHfffTd33303AFtbWzzykY/khhtu4LrrrgPgtttu45ZbbuHg4IAnPelJ3HPPPdx9991sbW3xiEc8gpd92ZcF4Pd+7/d4mZd5GZ70pCfx13/912xtbfEyL/MyPOIRj+AZz3gGP/ADP8CbvMmb8OQnP5nXeI3X4Prrr+d3f/d32d7e5slPfjKv8RqvwcbGBqUUfvEXf5F3fMd35BnPeAYXL17kuuuuYz6fs1qtuO6663hhbr31Vr7kS77kIffdd9+tXHXVVVddddVVV/3Pgx70oAdx1VVXXXXVVVdd9T/R537u5/7Wi73Yi702z2Vvbw+A/f19brzxRu68804AbrzxRv7sz/6MG264gWmaOHnyJD/1Uz/F27zN25CZRAQ//dM/zfb2Nm/91m/N/v4+AE94whN4whOewKMf/Wj+9E//lDd/8zfn5MmT3HXXXfzZn/0ZADfccAOPfvSjueGGG7jrrru44YYb2N/f58/+7M944hOfiCS2t7d51KMexQ033MANN9zA3/3d33Hq1CluuOEG9vf3ueuuu7jrrrvY39/nrrvuAmBnZweAG264geuvv57t7W22t7fZ3t7m53/+53nQgx4EwKlTp9je3mZ7e5v77e/vc7/9/X0ODg643/7+PgD7+/u8MJLY2trigba3twHY3t4GYHt7m62tLR5of3+fg4MDzp07x+7uLgCv8Rqvwf7+PgcHB9x9990A3H333dx9993cb2tri0c+8pEAvOzLviwABwcH/NVf/RWv8RqvwcHBAU960pO45557uPvuu9na2uIRj3gE119/Pddffz0HBwdsbW1xcHDAk570JP7qr/6K7e1tHvGIR/AyL/MyXLp0iZ/7uZ/jxV7sxfirv/orrrvuOt70Td+US5cuUUrhd3/3dzk4OOAd3/EduXTpEqUUfvRHf5Q3fdM3ZT6fs1qtuPvuu3mZl3kZDg4OuOeee3j4wx/OC7O7u8udd97525/5mZ/5Olx11VVXXXXVVVf9z4Me9KAHcdVVV1111VVXXfU/zTu+4zt+1ju90zt99u7uLsePH+f5ufPOO7nxxhvZ39/nT//0Tzl9+jQPfehD+Y3f+A1e7/Vej/v99E//NK/wCq/Afffdx8u8zMvwhCc8gSc84Qns7e3xki/5krzGa7wGd955J7/5m7+JJB71qEfxCq/wCjzjGc/g5MmT3HXXXTzhCU/grrvuYnt7m1d4hVfgUY96FL/3e7/Ha7zGa7C/v89dd93FXXfdxROf+EQAtre3ueGGG7jhhht41KMexc///M/zoAc9iFOnTnHDDTewv7/P/v4++/v73H333ezv73PXXXdxv+3tbQC2t7fZ3t7m+uuvB2B7e5vt7W3++q//muPHj3Ps2DEAjh07xrFjx/iPcunSJe536dIlLl26xO7uLg9/+MMB2N/fZ39/H0ncfffd7O/vc3BwwANtbW3xyEc+EoDrr7+e66+/HoD9/X3++q//GoCXeZmX4e6772Z/f5+/+qu/AmBra4tHPOIRbG9v84hHPIKDgwP+6q/+ipd5mZfhSU96Ek9+8pM5ODhga2uLl33Zl+URj3gEly5d4vd+7/e48cYb+au/+iu2trZ4jdd4Da6//np+93d/l0c84hH80i/9Etdddx1v+qZvyjOe8Qz6vueXfumXeNM3fVO2trYA+KVf+iXe4R3egWc84xk87nGP403e5E0AuOeee7juuut4YX7kR37ks3/0R3/0c7jqqquuuuqqq676nwU96EEP4qqrrrrqqquuuup/khd7sRd77c/93M/9rd3dXY4fP84Lsr+/z97eHjfeeCNPeMITuPPOO3n5l395IoKf+qmfYm9vj/d6r/cC4Kd/+qd59KMfzXK55DVf8zX5sz/7M/7sz/6MV3iFV+BP//RPefM3f3NOnjzJE57wBP78z/+c7e1tHvWoR/EKr/AK/O3f/i0v+ZIvyf7+Pn/2Z3/GE5/4RLa3t7nhhht49KMfzQ033MDf/d3f8RIv8RLs7++zv7/PXXfdxV133cVdd90FwPb2NjfccAM33HAD29vb3HDDDQD83d/9HadOneKGG24AYH9/n7vuugtJ3HXXXezv77O/v8/+/j7PbWdnB4CtrS0Atre3ud/29jYA29vbAOzv77O9vc3zs7+/zwMdHBwAsL+/D8D+/j4HBwc8N0lsbW2xvb3N1tYW29vbXH/99WxtbbG9vQ3A/v4+t956Ky/xEi8BwP7+Pk9+8pMBeNKTnsTh4SEAW1tbPOIRj+D666/n+uuv5+DggL/6q7/iNV7jNTg4OOBJT3oSf/VXfwXAy7zMy/DIRz6Sra0tLl26xLFjx/irv/ornvzkJwPwiEc8gpd5mZfh0qVLfP/3fz+v+qqvyl/91V/xMi/zMrzMy7wMv/u7v8v111/P7/3e7/Gmb/qmbG1t8dM//dOM48ibvMmbMJ/POXfuHAAPf/jDecpTnsJ1113H1tYW99xzD9dddx3Pz6233sp3fdd3vc7f//3f/zZXXXXVVVddddVV/3OgBz3oQVx11VVXXXXVVVf9T3HNNdc8+Ju+6ZuezvPxjGc8gwc96EHs7e2xv7/PjTfeyG/8xm/weq/3euzv7/Mbv/EbvN7rvR7b29s84QlP4E//9E95m7d5G+73fd/3fbzCK7wCr/AKr8D+/j4AP/3TPw3Aox/9aFarFS/90i8NwBOe8AT+/M//nO3tbR71qEfxCq/wCvze7/0er/Ear8H+/j5PeMITuOuuu7jrrrvY2dnhhhtu4FGPehQ33HADv/d7v8fDHvYwbrjhBvb397nrrru466672N/f56677gJge3ubnZ0dtre3uf7669ne3uaGG27g53/+53nQgx7EsWPHqLVyww03ALC/vw/A/v4++/v7SOKuu+4CYH9/H4CDgwMA9vf3+ZdI4gXZ3t4GYGtrC4Dt7W22trYA2N7eZnt7m+3tbba2trjf/v4+Fy9e5BnPeAYAr/Ear8H+/j533303BwcH3H333dx9993cb2tri0c+8pEAvOzLviwABwcH/NVf/RWv8RqvwcHBAU960pP4q7/6KwC2trZ4xCMewcu+7MsC8Hu/93u8zMu8DE9+8pP5q7/6KwBe5mVehpd5mZfh4OCAv/qrv2Jra4u/+qu/Ymtri9d4jddge3ubra0t/uqv/oq/+qu/4k3f9E3Z2toC4Pd+7/d4mZd5Ga677joODg74pV/6Jd7hHd4BgL/6q7/iZV7mZQA4ODhga2uL3d1djh8/znPb3d3lUz7lUx5y33333cpVV1111VVXXXXV/wzoQQ96EFddddVVV1111VX/U3zFV3yFH/zgB/PC7O3t8YQnPIFXfMVX5AlPeAJ7e3u84iu+InfeeSe/8Ru/wXu+53sC8Kd/+qc88YlP5NKlS7zXe70XAD/90z8NwFu/9Vvz13/917z0S780T3jCE/izP/sztre3eb3Xez2e+tSn8hqv8Rrs7+/zxCc+kT/7sz9je3ubG264gUc/+tHccMMN3HXXXdxwww3s7+/zxCc+kT//8z8HYHt7mxtuuIEbbriBRz3qUQD83d/9HS/xEi8BwP7+PnfddRd33303+/v73HXXXdxve3sbgBtuuAHb3HDDDWxvb7O9vc329jYPdNttt1FrZXt7G4Dt7W2en/39fV4QSdhme3ubF2R/f5/7Xbx4kVtuuYUHuvvuu9na2uLuu+/m4OCA/f19Dg4OuPvuu3mgra0tHvnIRwLwsi/7sgAcHBzwV3/1V7zGa7wGBwcHPOlJTwLgr/7qrwDY2triEY94BI985CPZ2tri4OCAra0tDg4OeNKTnsRf//VfA/AyL/MyvMzLvAwHBwf81V/9FS/zMi/D7/7u73LPPffwMi/zMrzMy7wMz3jGMzh16hS/+7u/y8HBAa/xGq/B9vY2P/3TP82pU6fY2triNV7jNbjnnnv4q7/6K17mZV6G6667jr/6q79ie3ubhz/84fzVX/0VL/MyLwPAwcEBW1tbPD+7u7u83/u9n7jqqquuuuqqq676nwE96EEP4qqrrrrqqquuuup/gs/93M/9rRtvvPG1jx8/zgty5513cuONN/Lrv/7rvP7rvz77+/v81E/9FO/5nu8JwG/8xm8A0HUdL/MyL8MTnvAEnvCEJ/DWb/3WZCYRwU//9E8D8OhHP5rVasVrvMZrsL+/z2/+5m9y11138ahHPYpHP/rR3HDDDQDs7+/zhCc8gT//8z8HYHt7m1d4hVfgUY96FAD7+/sA7O/v88QnPpG77rqL/f19ALa3t7nhhhu44YYbeNSjHsXP//zP86AHPYhTp05xww03sL+/D8Bdd93F3Xffzf7+Pvv7++zv7/NA29vbAGxvb7O9vQ3A5uYmAFtbWwDcdNNNAGxvb/Mv2d/fZ3t7m+dnf3+fS5cucXBwAMD+/j77+/scO3aMg4MDDg4O2N/f5+DggOe2tbXF9vY2119/PQDXX389119/PQD7+/vceuut7O7u8jIv8zLs7+9z9913c88993D33XcDsLW1xSMe8Qiuv/56rr/+eg4ODtja2uLg4IAnPelJPPnJT+bg4IDt7W0e8YhH8DIv8zIcHBzwV3/1V/ze7/0er/Ear8GTn/xktra2eI3XeA2uv/56fvd3f5frr7+e3/u93+O6667jTd/0Tbl06RKlFH7sx36M6667jjd5kzfhb//2b7nzzjsBeJM3eRMODg74pV/6Jd7hHd4BgL/6q7/iZV7mZbjnnnu47rrreGH+4R/+4bc/8zM/83W46qqrrrrqqquu+u+HHvSgB3HVVVddddVVV1313+3DP/zDv+vkyZPv/VIv9VK8ML/7u7/La77ma/Knf/qn3Hjjjdx444084QlP4M477+ThD384J0+e5Kd+6qd49KMfzWq14mVe5mV4whOewBOe8ARe4RVegfvuu4+XeZmX4QlPeAJ/9md/xvb2Nm/91m/NX//1X/Mar/EaPPGJT+TP/uzP2N/f51GPehSPfvSjeepTn8pLv/RLA3DXXXfxhCc8gbvuuovt7W1uvPFGbrjhBn7jN36Dl3iJl+ClX/ql2d7eZn9/nyc+8Yncdddd3HXXXdxve3ubG264gRtuuIHt7W1uuOEGfv7nf54HPehBnDp1ihtuuAGA/f19AO666y4A7r77bvb399nf3+fg4IAX1fb2Ns9NEgC2kcT+/j4vqu3tbQC2t7fZ2tpie3ubra0ttre3uf7667nf/v4+t956K7u7u7zGa7wG+/v7PPnJTwbg7rvv5p577uF+W1tbPOIRj+D666/n+uuv5+DggL/6q7/itttu4xVf8RXZ39/nr/7qrwDY2trikY98JC/zMi/DwcEBf/VXf8XLvMzL8Fd/9Vc8+clPZmtri0c84hG8zMu8DM94xjM4deoUv/u7v8s999zDy7zMy/AyL/MyPOMZz2A2m/FLv/RLXHfddbzJm7wJz3jGM7hw4QJPecpTeId3eAee8YxncNttt7G1tcXLvMzL8JSnPAWAhz/84fzO7/wOr/Var8XBwQFbW1s8t93dXQD+6q/+6ru//uu//n246qqrrrrqqquu+u+FHvSgB3HVVVddddVVV1313+nFXuzFXvtzP/dzf4sX4m/+5m94qZd6Kf70T/+UV3zFV2R/f5/f+I3f4K3f+q3Z39/np37qp3i913s9tra2iAi+93u/l1d4hVfgFV/xFdnf3+cJT3gCT3jCE3j0ox/NcrnkNV/zNbnzzjv5zd/8TQAe/ehH88QnPpG3equ3AuAJT3gCf/7nfw7A9vY2r/u6r8tf/uVf8hIv8RI86EEPYn9/nz//8z/niU98IgDb29vccMMN3HDDDTzqUY8C4K677uKGG25gf3+fu+66i7vuuov9/X3uvvtu7re9vc3W1hY7Oztcf/31bG9vc8MNN3C/v/u7v+PYsWPUWrnhhhu43/7+PgAHBwfs7+9zv/39ffb393mg/f197ieJ52d7exuAra0t7re9vc329jYAW1tbbG9v80D7+/tcvHiRS5cu8RIv8RIA7O/vc3BwwN133w3A3Xffzd133839JLG1tcUjHvEIrr/+eq6//noADg4O2Nra4uDggP39fe6++27+6q/+CoCtrS0e8YhH8MhHPpKtrS0uXbrE3/7t3/IyL/My/NVf/RVPfvKT2dra4hGPeAQv8zIvw8HBAT/90z/Ni73Yi/FXf/VXbG1t8Rqv8Rpcf/31/O7v/i7b29v89V//Nddddx1v8iZvAsBTnvIUfu/3fo83eZM3YT6fs1qt+KVf+iXe533eB4Bf+qVf4jVe4zXY2trir/7qr3iZl3kZnvGMZ/CgBz2IF+ZHfuRHPvtHf/RHP4errrrqqquuuuqq/z5Urrrqqquuuuqqq/4bvdiLvdhrf+7nfu5v8S84ffo0ANvb2/zu7/4ur/marwnAnXfeyY033sgrvuIr8hu/8Ru8zdu8Ddvb27ze670ev/mbv4kklsslL/MyLwPAn/3Zn3HDDTewv7/Pzs4Ob/3Wb80TnvAE/vzP/5zt7W2e8IQncO+99/Jar/VaPPrRj+aJT3wif/Znf8bP/MzPsL29zX333ceDHvQg/vqv/5rXeZ3X4eVf/uW56667eOITn8gTn/hEnvjEJ/Lnf/7nbG9v86hHPYq77rqLG264gWEYeNSjHsUNN9zA/v4++/v77O/vc/fdd3PXXXdx991388QnPpH7bW9vs729zfb2Nuv1mu3tbe666y62t7fZ3t7mr//6rzl+/Di2edCDHgTAsWPH+I906dIlLl26BMCtt97K7u4ur/Ear8H+/j4HBwfs7+9zcHDA/v4+v/ALv8Ddd9/Nc9va2uL666/n+uuv5/rrr+f6668H4ODggL/6q7/i+uuv5+DggCc96Uncc8893H333dxva2uLRzziEbzsy74sBwcH/NVf/RUv8zIvw9Oe9jTuvvtunvzkJ7O1tcXLvMzL8DIv8zIcHBzwe7/3ezz84Q+n73v+6q/+iuuuu443fdM35eDggIODAw4PD3nqU5/Kwx/+cF7jNV6Dv/3bv2VjY4Pf+73f403e5E247rrrODg44Jd+6Zd4jdd4DQDuueceALa2tvibv/kbDg8PAbh48SIPetCDeGHe6I3e6LMf97jH/c7f//3f/zZXXXXVVVddddVV/z3Qgx70IK666qqrrrrqqqv+O1xzzTUP/qRP+qSnAzz4wQ/mgfb29tjZ2WFvb4+dnR3+9E//lEc+8pEcHh5y55138oqv+Irceeed/MZv/AbHjx/nLd/yLfnpn/5p9vb2OHHiBG/xFm/Bn/3Zn/Fnf/ZnvMIrvAKv8AqvAMCf/dmf8Wd/9mdsb2+zt7fHS77kS/Iar/EaPPGJT+TP/uzP2N/fZ3t7m9d93dflhhtuYH9/H4AnPOEJPPGJT2R/f5/t7W1uuOEGHv3oR3PDDTfwd3/3d7zES7wE+/v73HXXXTzxiU/krrvu4n7b29vccMMN3HDDDWxvb/OXf/mXPOhBD+LYsWPccsstAOzv77O/v8/+/j533303+/v73HXXXTw3SQBsb28DsLW1xfb2Nvfb3t5me3ubB9ra2gJAEs9tf3+f7e1t9vf3Adjf3+d+BwcHAOzv73NwcMDBwQEvyNbWFgCPfOQjAbj++uu5/vrrAdjf3+fg4ICnPOUp3HbbbbzVW70VT3rSkwD4q7/6Kx7o+uuv57rrruNlX/ZlAXjGM57BqVOnAHjyk5/MX/3VXwGwtbXFIx7xCF7mZV6Gg4MD/uqv/oqXeZmX4Xd/93e555572Nra4jVe4zW4/vrr+d3f/V0e8YhH8Mu//MsAvMZrvAYPf/jDAfirv/or/vqv/5qXfumX5mVe5mX4/u//fk6dOgXAm7zJm/C7v/u7HB4e8ohHPILTp09z7tw5AB7+8Ifz+7//+7z6q786L8xf//Vfc/z4cb7kS77kIffdd9+tXHXVVVddddVVV/3XQw960IO46qqrrrrqqquu+q92zTXXPPiTPumTnv7gBz+YF2Rvb49Lly5x88038+u//uu8/uu/Pnt7e/z0T/80r/Var8XJkyf5jd/4DW644QauvfZaTp48yfd+7/fy6Ec/mq7reM3XfE3+7M/+jD/7sz/jFV7hFbjnnnt47dd+bQB++qd/mv39fV7hFV6BP/3TP+Xd3/3diQie8IQn8Od//ucAbG9v87qv+7rccMMN3HXXXWxvb3PXXXfxhCc8gbvvvhuA7e1tHvWoR3HDDTfwl3/5l7zkS74kt9xyC/v7+9x1113cdddd7O/vc9dddwEgie3tbW644Qa2tra44YYbuOGGG7jf3/3d3/HgBz+Y7e1tAPb399nf32d/fx9J3HXXXezv7wNwcHDA/v4+LypJ/Fttb28DsL29zfXXXw/A1tYW29vbXH/99dxvf3+fixcvcssttwCwv7/PwcEBd999N/fccw933303D7S1tcUjHvEItre3ecQjHgHApUuX+Nu//Vte5mVehic96Uk8+clP5vDwEICtrS0e8YhH8DIv8zIcHBywtbXFwcEBv/u7v8s999wDwMu8zMvwMi/zMly6dImf+7mf48Ve7MX467/+a7a2tniN13gNtra2+Omf/mlOnTrFPffcw8Mf/nBe4zVeg5/7uZ+j1so999zDO7zDO3D+/HkuXLjAU57yFN7hHd6B3/3d3+W+++7jjd/4jdna2uL3f//3efVXf3Xuuecetra22Nra4gXZ3d3lUz7lUx5y33333cpVV1111VVXXXXVfy0qV1111VVXXXXVVf8NPvzDP/y7HvzgB3Prrbdy/Phxjh8/zguzv7/PnXfeyY033sjOzg7L5ZLt7W0e/ehH86d/+qfceOONbG9v83qv93r8xm/8BjfeeCO/+7u/y2u+5msC8Gd/9mdsb28DkJm89Vu/NU94whP4sz/7M44dO8aTnvQkVqsVr/Ear8GjH/1onvCEJ/Dnf/7n/MzP/Azb29u8wiu8An/5l3/JS7zES/BWb/VW7O/v88QnPpE///M/58///M8B2N7e5r777qPWyg033MAwDDzqUY/ihhtuYH9/n7vuuou7776b/f19nvjEJwLwF3/xFwBsb29zww03AND3Pdvb29xwww38zu/8DgAPetCDOHbsGC/3ci8HwPb2Nvfb398HYH9/H4CDgwMeaH9/n3/J9vY2ANvb29xva2uL7e1tHmh/fx+Aixcv8oxnPIN7772X3/zN3+Qt3/ItAbj77rs5ODjg7/7u77j77ru5nyQAtra2uP7669na2uKRj3wkW1tbHBwc8Fd/9Vc84hGP4ODggKc+9ancddddPOlJTwJga2uLl3mZl+ERj3gEW1tbXLp0iZ//+Z/n5V7u5fjFX/xFDg4OAHiZl3kZHvGIRwDwe7/3ezz84Q9nGAb+6q/+iuuvv543eZM34dKlSwCcOnWKe+65h4c//OG8xmu8Bj/3cz9HrZV77rmHN3mTN2Fra4uDgwP++q//mtd4jdcA4IYbbiAi2Nra4oHOnz/P1tYWAAcHB2xtbfH8fM7nfM5vfciHfMhDuOqqq6666qqrrvqvhR70oAdx1VVXXXXVVVdd9V/pcz/3c39rc3PztR/84Afz3Pb29rjrrrt49KMfzd7eHk94whN4xVd8Rf70T/8UgFd8xVfkCU94An/6p3/Kgx/8YF7zNV+Tn/7pn2Zvb4/3fM/3BODP/uzP+LM/+zMe/ehHU2vlNV/zNfmzP/sz/uzP/ozt7W1e4RVegbNnz/Iar/Ea/Nmf/Rl//ud/DsD29jav8AqvwH333cdrvMZrsL+/z5/92Z/xxCc+EYDt7W0e9ahH8Qqv8Ar83u/9Hi/90i8NwF133cVdd93FE5/4RO63vb3NDTfcwA033MCjHvUofv7nf54HPehBvMRLvAQA+/v73HXXXdx9993s7+9z11138fxsb2+zvb3N9vY2ADfccANbW1sA3Hrrrdx4441I4tixYwAcO3aM/yiXLl3i0qVL2ObOO+/kJV7iJTg4OODuu+8GYH9/n4ODA+6++26en62tLba3t7n++uvZ3t7mEY94BAAHBwc8/elPZ3d3l5d5mZdhf3+fu+++m7/6q7/iga6//nquu+46XvZlX5aDgwP+6q/+ipd5mZfhyU9+Mk9+8pM5ODgA4LrrruM1X/M12dra4vd+7/d4+MMfzl/91V9xzz33APAyL/MyvMzLvAy/93u/xyMe8Qh+6Zd+CYCXfumX5mVe5mX43d/9XSTxlKc8hZd+6ZfmZV7mZQD4sR/7Mba2tniTN3kTfvd3f5f77ruPl37pl+bhD384T3nKUzg4OOClX/ql+eu//mse/vCHs7W1xcHBAVtbWwAcHBywtbXF/W699Vae/vSnf/fXf/3Xvw9XXXXVVVddddVV/3WoXHXVVVddddVVV/0Xesd3fMfPerEXe7HX5vnY29tjZ2eHu+66i93dXY4fP86dd97J7u4uN954I7/+67/OK77iK3LjjTeyv7/PfD5nd3eX13u91+N7v/d7+Y3f+A26ruM1X/M1AfizP/szHv3oRwPwCq/wCgD82Z/9Gb/5m7/JK7zCK/DzP//zvNZrvRaPfvSj+bM/+zOe+MQn8md/9mfccMMN7O/vs729zeu+7uvyCq/wCjzhCU/gz//8z/nzP/9znvSkJ3HDDTewv7/PDTfcwDAMvM7rvA4v//Ivz1133cVdd93FE5/4RJ74xCfyxCc+kd/6rd9ie3ub8+fP88QnPpHf+I3f4JZbbuFBD3oQj3zkI7nhhhsA2N/f56677gLg7rvvZn9/n7vuuov9/X0kAfCkJz2JB/r7v/97tre3Adja2uLg4IDrr7+eB9re3uZfcnBwwP329/cBODg4YH9/H0kAPO5xj+P52draAuD6669ne3ub66+/nuuvv577HRwc8Fd/9Vfcc8893Hbbbbzu674u4ziyv7/Pj/zIj/BA119/Pddddx0v+7IvC8AznvEM7re1tcWP/uiPcr+XeZmX4RGPeARbW1v83u/9Hn/7t3/Lq77qq/JLv/RLAFx33XW85mu+Jvfb2tril37plwB4kzd5E6677joADg8Pueeee7juuut4mZd5GX7u536OWisHBwe8xmu8Bru7u+zs7PC0pz2Nhz/84QD89V//Na/+6q8OwMHBAVtbWwDcc889PPzhDwdga2uLBzp+/Dgv8zIv897v+I7veOuP/uiPfg5XXXXVVVddddVV/zWoXHXVVVddddVVV/0XebEXe7HXfqd3eqfP5l/p+PHjlFLY39/nzjvv5MYbb+QVXuEVeMITnsC9997LW7zFW/AKr/AK/Nmf/Rmv8AqvwO/+7u/yMi/zMtx555084QlPYG9vj9d7vdfj0Y9+NI9+9KP56Z/+af7sz/6M7e1tAP76r/+a133d1+XGG2/kz/7sz3jiE5/IXXfdxQ033MArvMIr8Nd//de8xmu8Bo9+9KN54hOfyJ//+Z/zxCc+kSc+8Ylsb2/zqEc9irvuuou//Mu/5EEPehCv8zqvw8u//Mtz1113cdddd7G/v8/dd9/NE5/4RJ74xCdSSmFvb4/z58/T9z133XUXN9xwA9vb2wzDwLFjx3jt135t7re/v8/+/j4HBwcA3HXXXQDs7+9zcHDA/v4+APv7+wDs7+9zP0n8e2xvbwOwvb3N1tYW29vbAGxvb7O1tcX111/P/fb397l48SJPecpTuP766wE4ODjgSU96Epubm9xzzz2sVit+8Rd/kfttbW3xiEc8ghtuuIHrrruOg4MDnv70p/N7v/d7vMzLvAwXLlzgN37jN7jf1tYWj3jEI3iZl3kZDg4O+Ku/+ite5mVehq2tLRaLBX/1V3/F1tYWL/MyL8MjHvEI/vZv/5aHPvSh/NIv/RL33HMPW1tbvMZrvAZbW1sA/NIv/RL33HMP1113HW/yJm/CM57xDE6cOMGTn/xkXvqlX5rrrruO7/u+76O1xsMf/nAAnvKUp3BwcMB1110HwD333APA7u4u9zs4OGBra4vndvz4cd7ojd7os8+ePfuM3/qt3/purrrqqquuuuqqq/7zoQc96EFcddVVV1111VVX/We75pprHvxFX/RFTz9+/Dj329vbY2dnh/vdeeed3HjjjTzhCU9ge3ubG2+8kZ/6qZ/iFV/xFbnxxhv56Z/+aQBe5mVehpMnT/K93/u93Hjjjbz1W781+/v7/MZv/AZ33nknr/iKr8hyueRlXuZl+LM/+zOe8IQnsL29zVu/9VuTmUQET3jCE/izP/szdnZ2eNSjHsWf/umf8u7v/u5EBE94whP48z//cwC2t7e54YYbePSjH81Tn/pUXvqlXxqAu+66iyc+8Yncdddd3G97e5tHPepR3HDDDdxwww383d/9HadOneKGG25gf3+fu+66i7vvvpu77rqL/f19ntv29jY33HADANdffz3b29v89E//NLfccgsAD3rQgzh27Bi1Vra3t9ne3uaB9vf3ATg4OMA2AAcHB7wotre3ud/W1hbb29s8t/39fQAuXrzIpUuX2N3d5dKlS1y6dIm3fMu35O677+bg4ID9/X0ODg645557eG5bW1tcf/31bG1t8bIv+7IAHBwc8Fd/9Ve8xmu8BgcHBzzpSU/iyU9+MoeHh9xva2uLRzziEbzMy7wMBwcH/NVf/RUv8zIvw5Of/GT+6q/+CoCtrS0e8YhH8DIv8zJcunSJn/u5n+PFXuzF+Ou//msArrvuOt7kTd6ES5cuUUrh937v97jnnnu47rrreJM3eRP+9m//lo2NDX7v936P6667jjd5kzcB4Jd/+Ze55557ePu3f3vOnz/P4x//eLa2tnj1V391nvKUp/CUpzyFN37jN+aee+7h4OCAhz/84TzlKU/h4Q9/OC/I7u4uX/mVX/k6//AP//DbXHXVVVddddVVV/3nQg960IO46qqrrrrqqquu+s/2FV/xFT5+/DgAx48fZ3d3l+PHj/NAf/qnf8orvuIr8oQnPAHbPOYxj+FP//RPufPOO3mbt3kb7rzzTn76p3+at37rt+bGG2/kCU94Ar/xG7/BK7zCK3Dttddy8uRJfvqnf5r9/X1e4RVegeVyycu8zMvwhCc8gT/7sz9je3ubRz/60axWK17jNV6DP/uzP+PP//zPAdje3uZRj3oU9957L6/1Wq8FwBOe8AT+/M//nPvdcMMNPPrRj+ZRj3oUz3jGM3jQgx7E/v4+T3ziE7nrrru46667uN/29jY33HADN9xwA4961KP4+Z//eR70oAfxEi/xEgDs7+9z1113cffdd7O/v89dd93F8yOJ7e1ttra2ANje3uaGG24A4OlPfzo33XQT29vbHDt2jGPHjvEf6dKlS+zv73PbbbdxcHDAS7zES3D33XcDsL+/z8HBAXfffTcvyPb2NgCPeMQj2N7e5hGPeAQABwcHPP3pT2d3d5eHP/zhHBwcsL+/z1/91V/xQNvb2zziEY/gEY94BFtbWzzjGc/gQQ96EAcHB/zVX/0VT37yk7nfy7zMy/AyL/MyHBwc8Fd/9Vdsb2/zV3/1V9zvpV/6pXmZl3kZ/vZv/5ZrrrmGX/qlXwLguuuu403e5E14xjOewTiO/N7v/R5bW1u8wzu8A894xjO4/fbbecpTnsJLv/RL89Iv/dLcc889/PIv/zKv/uqvzsMf/nB+//d/H4BXf/VX5ylPeQoAD3/4w/nrv/5rXvqlX5rnZ3d3l/u93/u9n7jqqquuuuqqq676z0Xlqquuuuqqq6666j/Z537u5/7Wgx/8YB7o+PHj3G9vb4+dnR3ut729zZ133gnAjTfeyOMf/3gAdnZ22N7e5jd+4zd4qZd6KR760Idy44038oQnPIGdnR0yk7d+67fm+77v+/izP/szXuEVXoG/+qu/4mVe5mUA+LM/+zP+7M/+jFd4hVfg537u53jt135tHv3oR/Obv/mb3HXXXfz5n/8529vb3HXXXTzqUY/i0Y9+NI9+9KN5whOewJ//+Z9z9913c/fdd/Pnf/7nPOpRj+LkyZNsb29zww038PIv//Ls7+/zxCc+kbvuuou77rqLJz7xiTzxiU/kL/7iLwA4f/48d911Fz/90z/NLbfcwoMe9CAe+chHcsMNNwCwv7/PXXfdBcDdd9/N/v4+d999N/v7++zv7wNw991386QnPYn7PeMZz+B+29vbAGxtbQEgie3tbV4U+/v73O/g4ID9/X0k8UC33XYbL8jW1hbXX38929vbbG1tccMNN7C1tQXAwcEBf/VXf8U999zDbbfdxuu+7usyjiP7+/v84i/+Ig+0tbXFIx7xCB75yEeytbXFwcEBW1tbHBwccOHCBX7jN36D+21tbfGIRzyCl3mZl+Hg4IDf+73f42Ve5mXY39/nKU95CgDXXXcdr/Ear8H9Wmv80i/9EgAPf/jDeY3XeA3+9m//lo2NDX7v934PgNd4jdfg0qVLzGYznvKUp7C1tcVLv/RL8zd/8zfcfffdADz84Q8H4J577uGlX/qlAbjnnnu47rrr+JccP36c+334h3/4d33913/9+3DVVVddddVVV131n4fKVVddddVVV1111X+id3zHd/ysG2+88bV5Ae688062t7cB2N3dZXd3F4DHP/7xvOIrviLb29vs7+9z5513cuONN/KKr/iK/MZv/Abr9ZrM5PVe7/X43u/9Xv70T/+U13u912NnZ4e3equ34md+5mf4sz/7M17hFV6B7e1tXuEVXgGAP/uzP+PP/uzP2N7e5nu/93t5yZd8Sd7qrd6KP/uzP+OJT3wi+/v7/OZv/iZPeMITeIVXeAVuuOEGHv3oR/PoRz+aJz7xiTzxiU9kf3+fP//zP+fP//zPueGGG3jUox7FXXfdxVOf+lQe9rCH8fIv//Ls7+/zxCc+kbvuuou7774bgCc+8Yk88YlPpJTC3t4e58+fp+977rrrLm644Qa2t7cZhoFTp07xqEc9ivvt7++zv7/PwcEB+/v77O/vs7+/D8DBwQH7+/sA7O/vA7C/v48kAO6++27+LSRxv62tLQC2t7fZ2tpie3ub7e1ttra2uP7667nf/v4+BwcHPOUpT+GRj3wkAAcHBzzpSU9ic3OTe+65h9VqxS/+4i/yQFtbWzziEY/gkY98JFtbWxwcHPBXf/VXvMzLvAxPfvKTufvuu7nnnnu439bWFo94xCN4mZd5GQ4ODrjf/v4+P/qjP4oktra2ePjDH87LvMzL8IxnPIMf+IEf4GVe5mW45557AHiN13gNHv7whwNw6dIl/uIv/gKAN3mTN+G6667j4OCAX/7lXwbg1V/91QHY3Nzknnvu4aVf+qUBeMpTnsLBwQHXXXcdAE95ylN4+MMfDsDh4SEABwcHHBwccN111/H8POQhD3nvd3zHd7z1R3/0Rz+Hq6666qqrrrrqqv8cVK666qqrrrrqqqv+k7zYi73Ya7/TO73TZ+/u7vKC7O3tAbCzs8Ph4SEAOzs77O/vc+edd3LjjTdy44038hu/8Ru81mu9FjfeeCMAT3jCE3jMYx7D9vY2r/AKr8Cf/dmf8Ru/8Ru83uu9HjfeeCOv+7qvy2/+5m/yZ3/2ZwA88YlP5N3f/d159KMfzU//9E9zcHDAsWPHmM/nfMM3fAPv+Z7vyaMf/Wie8IQn8Od//ufcdddd/MzP/Aw33HADr/AKr8Bf/uVf8lqv9Vo86lGP4q677uKJT3wid911F3fddRd33XUX29vb3HDDDezv7wPw13/91zzsYQ/j5V/+5dnf3+euu+7i7rvvZn9/n7vuuov9/X2e+MQn8sQnPhGA7e1tAG644Qb6vueJT3wi29vb/NZv/RbHjh0D4EEPehBnzpzhkY98JNvb2zzQ/v4+9zs4OABgf3+ff43t7W3ut7W1xfb2Ng+0v78PwMWLF7l06RL33HMPf/EXf8GlS5d4y7d8Sw4ODrj77ruxzS/+4i9y99138/xsbW3xiEc8guuvv57rr78egIODA/7qr/6Kl3mZl+HJT34yAD/6oz/KA21tbfEyL/MyPOIRj+Dg4IDf+73f42Ve5mX4xV/8Re655x4AJPHSL/3SvMzLvAwHBwd8//d/Py/2Yi/G9ddfzz333MPW1hav8RqvwXXXXcf3f//3M5vNODg4AOBN3uRNuO666zg4OOD3f//3AXjpl35prrvuOg4ODvj93/99AF76pV+aZzzjGTzlKU/huuuuY2tri4ODAwC2trYAODg44EX1Rm/0Rp999uzZZ/zWb/3Wd3PVVVddddVVV131H4/KVVddddVVV1111X+Ca6655sGf+7mf+1sAx48f57nt7e2xs7MDwPb2NgB7e3scP36c++3t7XHjjTfymMc8ht/4jd+g1sr29jav93qvx2/8xm/wG7/xG5w8eZKXeZmX4a677uKuu+7iN3/zN3mP93gPHv3oRwPwm7/5m/zZn/0Z29vb7O/vk5m89Vu/NU984hP5sz/7M/78z/+cY8eOcdddd3HffffxGq/xGjz60Y/mCU94An/+53/OXXfdxc/8zM+wvb3NXXfdxaMe9SjW6zVv+ZZvyf7+Pk984hN54hOfyP7+Pk984hN54hOfyJ//+Z+zvb3NXXfdBcANN9zAMAy83Mu9HNvb2+zv73PXXXexv7/P3XffzV133cX+/j4AT3ziE3niE5+IJO4XEWxtbXH+/HmGYWC1WrG/v89tt93G9vY2N910EwDHjh0DYHt7G4Drr7+ef49Lly4BcMcdd3Dp0iUe8pCHsL+/z8HBAQB7e3scHBywXC75kR/5EQAk8UBbW1tsb29z3XXXcf3113P99dcDcHBwwF/91V9x/fXXc3BwwJOe9CT29/f50R/9UR5oa2uLRzziETziEY9ga2uLZzzjGRwcHPDkJz+Zu+++myc/+cnc72Ve5mV4xCMeAcDv/d7v8YhHPILZbMZf//VfA3DdddfxJm/yJly6dImDgwNOnTrFPffcA8CbvMmbcN111wHw+7//+9xzzz1cd911vPRLvzR/8zd/w9133w3Aq7/6qwMwm8245557ePVXf3UA7rnnHiSxtbXFwcEBBwcH3O+ee+7huuuu4+DggK2tLR7owQ9+MADv+I7v+Fn/8A//8Nv33XffrVx11VVXXXXVVVf9x6Jy1VVXXXXVVVdd9Z/gjd7ojZ7O87G3t8fOzg533nknOzs77O/v80B33nknN954IzfeeCNPeMIT2NjY4MYbbwTgN37jN3ipl3opHvrQh3LjjTdy5513csMNN3DhwgVe7/Vej5/+6Z9mf3+f7/u+7+PSpUt8+Id/ODfeeCPf933fx/7+Pj/90z/Nox/9aFarFa/xGq+Bbf78z/+c/f19fvM3f5MbbriBb/iGb+AlX/IleY3XeA0e/ehH82d/9mc88YlP5ODggN/6rd/iz//8z3nUox7F/v4+f/3Xf83DHvYwXv7lX579/X2e+MQn8sQnPpH9/X329/e56667kMT29jY33HADfd9zww038Du/8zs86EEP4oYbbuDlX/7lAdjf3+euu+7i7rvvBmB/f5+7774bgP39ffb397n77rt5Qba3t7nf9vY2ANvb2/xr7O/vIwmA/f19Dg4OeKDHPe5xvDBbW1vs7Oxw3XXXsb29zSMe8Qjud3BwwF/91V/xlKc8hZd5mZfh7rvvZnNzk+/4ju/gfpIA2Nra4hGPeATXX3891113HQcHB/zVX/0VL/MyL8OFCxf4jd/4DR7ouuuu4zVf8zXZ2tri937v9/i93/s9XuZlXoZf+qVfAmBra4uHP/zhvMzLvAwAy+WSX/qlX+J+b/Imb8LW1hbf//3fz+nTp7nnnnvY2trijd/4jXnGM56Bbe655x62trZ4+MMfzt/8zd9w9913A3Ddddexu7vLU5/6VB7+8IcD8JSnPIXn55577uHhD384BwcHbG1tcb/d3V2uueaaB7/xG7/x07/3e79XXHXVVVddddVVV/3HonLVVVddddVVV131H+xzP/dzf2uaJp6fnZ0dHmhvb49Lly6xs7PDzs4OT33qU7nxxhu58cYb+dM//VNe8RVfke3tbR796EfzhCc8gdlsRmbyeq/3enzv934vT3jCE7jxxhu5cOECb/3Wb81P//RPs7+/z7Fjx9jf3wfgPd7jPfjpn/5p9vf3+bM/+zNe4RVege///u/nrd7qrXj0ox/NE57wBP78z/+cu+66i2PHjjGOI/v7+/z1X/81r/u6r8srvMIr8MQnPpE///M/Z39/nz//8z/nz//8z7nhhhvY398H4K//+q956Zd+aV7+5V+e/f19nvjEJ3L33Xdz1113sb+/zxOf+ESe+MQnArC9vc358+fp+5677rqLG264ge3tbR71qEexvb3NDTfcAMD+/j4Ad999NwB33XUXAPv7+xwcHLC/v8/99vf3AZDEwcEBAHfffTf/WpJ4Qba2tgDY3t7m+uuvB+D6668H4Prrrwfg4OAAgK2tLe53cHDAk570JDY3N/mrv/ornvSkJ/Hctra2eOQjH8l1113H9ddfz8HBAX/1V3/Fddddx5Of/GT29/f50R/9UR7oZV7mZXjEIx7B1tYWv/d7v8fLvMzLsLW1xfXXX88999wDwHXXXcebvMmbcHBwwPd///fzYi/2Yvz1X/81AFtbW7zGa7wGW1tbAJw+fZp77rkHgFd/9Vfn0qVLzGYz/vqv/xqAV3/1Vwdgc3OTe+65h4c//OFsbW3xlKc8hXvuuYdXe7VXA+DSpUtsbW0BsLu7y8HBAQBbW1s8P8ePH2d3d5fjx4/z4R/+4d/19V//9e/DVVddddVVV1111X8cKlddddVVV1111VX/gV7ndV7nvV/sxV7stXd3d3lud955J9vb2+zs7PBABwcHAGxvb3P+/HkAHv3oR/Onf/qnPOEJT2Bzc5NXfMVX5AlPeAJ/+qd/ytu8zduwvb3NK77iK/Knf/qn/MZv/AZ7e3u813u9F2/91m/N933f97G/v89P//RPc+nSJd7jPd6Dt37rt+bP/uzPeMITnsCf//mfs729zf7+Pk996lN5jdd4DW688UZ+8zd/k/39fZ74xCdy1113ccMNN7C/v89f//Vf8xqv8Ro86lGP4olPfCJPfOIT2d/f56677uKuu+7iz//8z7nhhhu46667eNSjHsVf//Vf87CHPYyXf/mXZ39/n7vuuou7776bJz7xiQDs7+/zxCc+kSc+8YkAbG9vA3DDDTdw/fXXc9ddd7G9vQ3A7/zO7/CgBz0IgEc+8pHccMMNPND+/j4A+/v7HBwccL/9/X0ADg4O+JdsbW0BIAmAra0tALa3twG4/vrreaD9/X0ALl68yFOe8hQArr/+eg4ODtjf3+fuu+8G4J577uHuu+/m+dna2mJ7e5vrrruORz7ykWxtbXFwcMBf/dVfcf3117O/v8/W1hbf+Z3fyQNtbW3xiEc8gpd5mZcB4Pd+7/d4mZd5Gba2tvixH/sx7re1tcVrvMZrcN111/F7v/d7vMzLvAyz2Yy//uu/BuC6667jTd7kTbh06RJf8zVfw4033sj93viN35itrS2++7u/m62tLQBe+qVfmuuuu46DgwN+//d/H4CHP/zh7O7u8tSnPhWA6667DoDVasXW1hYAq9WK+x0cHHBwcMDW1hYHBwdsbW1xv+PHj/NSL/VSHD9+/L3vu+++W3/0R3/0c7jqqquuuuqqq676j0Hlqquuuuqqq6666j/INddc8+A3f/M3/y6A48ePc7+9vT12dnbY3t5mZ2eHO++8k729PQB2dnbY398HYGdnhzvvvJNnPOMZPOhBD+Kmm27izjvv5NGPfjQ33ngjj370o3nCE57Ab/zGb3Dy5Ele5mVehjvvvJO77rqLY8eOsbe3x87ODu/xHu/B933f97G/v8+xY8d40pOexGq14hVe4RXY3t7mz//8z9nf3+dnfuZnePmXf3m+4Ru+gTd/8zfnrd7qrXjCE57An//5n7O/v88Tn/hE7rrrLnZ2drjrrrv4y7/8S17rtV6LRz3qUdx111088YlP5K677mJ/f58nPvGJPPGJT+TP//zPueGGG9jf3wfgd37nd3jJl3xJXvu1X5vXfu3XZn9/n7vuuou7776bJz7xiQDs7+8D8MQnPpEnPvGJSAJge3sbgPPnzwMwm8246667ANje3ubv/u7vuOmmmwA4duwYN9xwA/9RLl26BMClS5e47bbbuHTpEg9+8IMBODg44O677wYgMzk4OOA7vuM7eGG2trbY3t7muuuu44YbbuC6664D4LbbbuOv/uqveJmXeRme/OQns7W1xXd+53fy3La2tniZl3kZHvGIR3BwcMDv/d7v8TIv8zJsbW3xYz/2Y9xva2uLhz/84bzMy7wMly5d4vu///t5sRd7MX7sx36M+730S780L/MyL8MznvEMZrMZN954I/d74zd+Y7a2tgDY2toC4LrrruOlX/ql+Zu/+RvuvvtuAB7+8Idz3XXXcXBwwD333MN1113H1tYWz3jGM7jnnnt4tVd7NQDuvfdeHujg4ACAg4MDtra2eH7e6I3e6LP/4R/+4Xf+4R/+4be56qqrrrrqqquu+vejctVVV1111VVXXfUf5MM//MO/68EPfjAvyN7eHjs7O+zt7fFAd955JwA33ngjf/qnf8rR0REAj370o/mN3/gNnvCEJzBNE6/4iq/IE57wBO68805uuOEGLly4wOu93uvx0z/90+zv7/Obv/mbvPVbvzUA7/Ee78FP//RPs7+/z5/92Z/xCq/wCmxvb/MKr/AKPPrRj+ZnfuZn2N/f58///M85duwY9913H3/7t3/La7/2a/PoRz+aJzzhCfz5n/85BwcHHBwc8LM/+7Nsb29z11138ahHPYphGHjLt3xL9vf3eeITn8hdd93FXXfdxf7+Pk984hN50pOexG//9m+zvb3NfffdR62VG264gd/5nd/hJV/yJXnt135tXvu1X5v9/X3uvvtu9vb2uPvuuzk4OGB/fx+A/f19APb39wF40pOexHN7xjOeAcDW1hY7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v/d7v8eDHvQgXvu1X5vXfu3XZn9/n7vvvpu77rqL/f197r77bl6Q/f199vf3ueeee/iXbG1tIQmAra0t7ieJF2R/fx+Ag4MDnpsk7nf+/HleFFtbW2xvb3P99deztbXFIx7xCAAODg64cOECT3nKU7j++uu5++67ueeee7j77ru55557eCBJ3G9ra4uHP/zhvMzLvAwHBwf81V/9FS/zMi9Da43v+q7v4rltb2/z8Ic/nJd+6ZfmGc94Bt/wDd/Aq73aq/HjP/7jPNB1113HG7/xG3Pp0iUODg74/d//fe69917u9/CHP5xXe7VX43d/93cppXDPPfdwv1d7tVfj0qVLzGYznvKUpyCJa6+9loc97GH87u/+Ltdccw333nsv1157LVtbWwA89alPBeDaa69la2uLe++9l83NTQBWqxXz+RyAS5cucb97772Xa6+9lgc6fvw47/iO7/jZX/d1X/c5XHXVVVddddVVV71wVK666qqrrrrqqqv+BS/2Yi/22i/90i/N8ePHeW533HEHN910E89tf38fgO3tbe68807uvPNObrzxRm688UbuvPNOfuqnfooP//AP5xVf8RX56Z/+afb391mtVmQmr/AKr8Cdd94JwJ/+6Z/yNm/zNmxvb/O6r/u6/OZv/iYAf/Znf8YrvMIrAPAKr/AKAPzZn/0ZAPv7+/zMz/wMly5d4iVf8iV5jdd4DWzz53/+5wDs7+/z53/+5xw7doz77ruPBz3oQcznc97yLd+SJz7xiTzxiU9kf38fgP39ff78z/+c7e1ttre3ueuuu3jUox7FMAy89mu/Ni/3ci/HXXfdxZOe9CTuuusuHmh/f5+/+Iu/4C/+4i/Y3t5me3ubxWJBrZUbbriB3/md3+FBD3oQj3zkI7nhhhsA2N/fZ39/n4ODA+666y729/c5ODhgf38fSbwoDg4OuN/+/j4AkvjPsLW1xfb2Ntdddx0A119/Pddffz33Ozg44K/+6q+45557eJmXeRn29/c5f/48+/v7fOd3ficvzNbWFg9/+MN5mZd5GQBuu+02HujHfuzHeG5bW1s84hGP4KVf+qW5dOkS3//938+Lv/iLs7m5yV//9V9zv62tLR7+8Ifz0i/90gCcPXuW3//930cS93upl3opXvqlXxqAUgpPecpTuN8bvdEbcd1113FwcMCv/MqvIAmAl3qplwLgxhtv5A/+4A8AePjDHw7A13/917Ozs8PDHvYwtra2ADg4OOC6664D4ODggPsdO3aMZzzjGbwwr/3ar81v/uZvvvY//MM//DZXXXXVVVddddVVLxiVq6666qqrrrrqqn/B+77v+/7W8ePHeX4kAbC3t8fFixfZ2dlhe3ubvb09AHZ2dgC48847ufHGG3n0ox/NnXfeyfb2NgA7OzvceOON3HnnnTzhCU/gxhtv5MYbb+QVXuEV+LM/+zP29/f5qZ/6KU6cOMFbvMVbsL+/z5/92Z8B8Gd/9mfs7+/TdR2v8Rqvwfb2Nr/5m78JwP7+PhHBfD7nG77hG3jP93xPHv3oR/OEJzyBP//zPwdgf3+fP//zP+eJT3wij370o3nQgx7EDTfcwKMe9Sjuuusu/vzP/5z9/X0A9vf32d/f56677uLP//zPedSjHsVdd93FX/7lX/KSL/mSvMVbvAX7+/vcdddd3H333TzxiU/kgfb399nf3+euu+7iL//yLwHY3t7m/PnzzGYz7rrrLm644QZ+53d+hwc96EEcO3aMRz7ykdxwww3c7+DggP39ffb39wG4++67Adjf3wfg4OCA/f19npsk/jW2tra4387ODltbW2xtbQGwvb3N1tYW29vbbG1tcb+DgwMuXLjAU57yFJ7ylKfwMi/zMgA8+clPZmtri7vvvpsf/dEf5V9y3XXXcf311/MyL/MyAFy6dInf+73f42Ve5mU4f/48v/Ebv8Hzs7W1xcMf/nBe5mVehoODAwCe/vSnM5/P+eu//mse6LrrruON3/iNOTg44Pu///t58Rd/cf76r/8aSdzvjd7ojbjuuuv4uZ/7Ofq+55577uF+r/Zqr8Z1113H93//93PmzBnu97CHPYzrrruOg4MD/uAP/gCAra0tHvawhwFwww03cHBwwHXXXQfAU5/6VCRx7bXXAnDvvffyQAcHB9zv4OCAra0tntvHfuzH/tb7vd/7iauuuuqqq6666qoXjMpVV1111VVXXXXVC/Hqr/7q3/XgBz+Y5+fOO+/kBbnzzjsBuPHGGwG48847AbjxxhsB2N/f50//9E95xVd8RR796Edz5513sr+/z5/92Z/x1Kc+lZd5mZfhrrvu4s4772R/f5+dnR1+7ud+jrd4i7cA4M/+7M8AeMITnsD29jZ/+7d/y3u+53vyHu/xHvzMz/wM+/v7APz5n/85x44d43u/93t5yZd8SV7jNV6DnZ0d/uzP/oz9/X0ADg4O+PM//3Oe+MQn8qhHPYp77rmHl3zJl+Td3u3deOITn8gTn/hE7rrrLu63v7/PX/zFX/AXf/EXbG9vc99991Fr5S//8i95yZd8SV77tV+bl3u5l+Pg4IAnPvGJ7O/vc9dddwEgifvt7++zv7/Pk570JO63vb3NrbfeCsCjHvUo7rrrLra3t9ne3mZra4utrS2uv/56brvtNh75yEdy/fXX84Ls7+9zP0nY5oEkYRuA7e1tXpCDgwMALly4wC233MIDHRwcsL+/z9133w3A/v4+d999N0960pOQxL9ka2uLRzziEVx//fVcd911AFy6dInf+73f42Ve5mV42tOexj333MOP/diP8fxsbW3xMi/zMjz84Q/n0qVL/PzP/zw33XQTT3nKUzg4OOCBtra2ePVXf3Wuu+46fu/3fo/f+73f45GPfCR//dd/zf22trZ4tVd7Nba2tvj+7/9+zpw5wz333MP9XuqlXoqHP/zh/NzP/RxnzpzhnnvuQRJbW1u82qu9Gs94xjN4whOewP1e9VVfFYC/+Zu/4eDgAIBrr70WgKc85SkAXHvttdxvc3MTgPPnz/NAh4eHbG1t8dyOHz/O677u6/7Wb/7mb74OV1111VVXXXXVVc8flauuuuqqq6666qoX4m3e5m3emxdgb2+PnZ0d7nd0dATAzs4Od9xxB894xjM4ceIEAHfeeSd33nknN954IzfeeCN33nknj3/845nP57zkS74kT3jCE7jzzju58847ueGGG8hMXu/1Xo/v/d7vBeCuu+7i0Y9+NL/7u7/La77mawLwZ3/2ZwDs7++zs7MDQGbyVm/1VjzhCU/gz//8zwHY39/n2LFjzOdzvuEbvoF3f/d3563e6q14whOewJ//+Z9zv/39ff78z/+c7e1t7rvvPm655RaGYeAt3/It2d/f54lPfCJ//ud/zgPt7+/zF3/xF/zFX/wF29vb3HfffdRaueGGG7j11lt5uZd7Oba3t9nf3+fuu+/mrrvuYn9/n7vvvpvnZ39/n/39fQDuvvtu7rezs4Nttre32d7eBmBjY4M77riD7e1tIoLrr7+e7e1t7re9vc2/ZH9/n+3tbR5of38fgL29Pfb39zk4OGB/f59jx45x6623cnBwwP7+PgcHB7wgknh+tra2eMQjHgHAy7zMywBwcHDAX/3VX3HddddxcHDA3/7t33LPPffwYz/2Yzw/W1tbPPzhD+cRj3gEW1tb/N3f/R0AT3/601mtVvz1X/81z+2lX/qleemXfmkuXbrE93//9/PiL/7i3HDDDRwcHAAgieuuu443eqM34tKlSwCcOXOGe+65h/s9/OEP56Vf+qX527/9W/q+55577kESAK/6qq/KpUuXmKaJe++9F4Brr72W6667jt/93d/l3LlzADzsYQ9ja2uLg4MD7rvvPgC2trYAeOpTn8rDHvYwAKZp4vk5ODhga2uLB3qzN3uz1/7N3/xNrrrqqquuuuqqq14AKlddddVVV1111VUvwOu8zuu814Mf/GCe2x133MFNN93Ec9vb2wNge3ubg4MDaq3s7Oxw4403cuedd/L4xz+eG2+8kVd8xVfkp37qpzg4OGC1WnHp0iVe7/Vej+/93u8F4AlPeAJ/+qd/yod/+Ifzeq/3evzmb/4mAE94whN49KMfze/93u/xGq/xGgD82Z/9GQD7+/v89E//NI9+9KNZrVa8xmu8BgB//ud/DsD+/j5//ud/zrFjx3jSk57EarXiNV7jNXj0ox/NE5/4RP78z/+c++3v7/Pnf/7nPPGJT+RRj3oU+/v7/PVf/zUv/dIvzaMe9SjuvvtunvjEJ3LXXXfxQPv7+/zFX/wFf/EXf8H29jbXX389fd9zww038Du/8zs86EEP4pGPfCQ33HAD+/v77O/vc3BwwF133cX+/j533303z48k9vf3ATg4OODuu+/mRbG9vc2L6uDggOcmiX8LSQBsbW1x/fXXs7W1xXXXXcf1118PwMHBAU9/+tP5vd/7PV7mZV6GJz/5yWxtbfGd3/mdSOIF2dra4uEPfzgv8zIvw8HBAX/1V3/Fy7zMyzBNE9/1Xd+FJJ7bS7/0S/PSL/3SHBwc8Hu/93s84hGPYJom/vqv/5r7SeKlXuqleOmXfmme8YxnMJvN+JVf+RUe6KVe6qV46Zd+aX7u536Ovu+55557kATAG77hG3Ldddfx/d///WQm93upl3opdnd3OXbsGLfeeisAD3vYwwD427/9WwAe9rCHAfDUpz4VgM3NTQAODg7Y2toCYHd3l1or1157Lc/Pgx/8YF78xV/8tf/+7//+t7nqqquuuuqqq656XlSuuuqqq6666qqrXoA3f/M3/27+BRcuXODGG29kZ2eHO++8E4CbbrqJP/uzP+POO+/kxhtv5BVf8RX5qZ/6KZ7whCfw+q//+tx4443cdNNN3HnnnTzhCU/g3nvv5S3e4i14hVd4Bf7sz/6M/f19dnZ2+Lmf+zne4i3egv39ff7sz/4MgCc84Qk8+tGPBuAVXuEVAPizP/szAPb393niE5/IbbfdBsBrvMZr8OhHP5qf+ZmfYX9/H4D9/X3+/M//nO3tbR72sIdxww038PIv//I86lGP4olPfCJ//ud/zv329/f58z//c574xCdyww03sL+/zw033MCtt97KW7zFW7C/v89dd93Fk570JO666y4eaH9/n/39fZ70pCcBsL29zfnz55nNZtx1113ccMMN/PVf/zUPetCDeO3Xfm0A9vf3Abj77ru56667ADg4OODuu+/m3+Lg4IB/K0m8KLa2tgC4/vrr2draYnt7m62tLa6//noADg4OuHDhAk95ylO4/vrrOTg44MlPfjIAd999N09+8pN5Yba2tnj4wx/Oy7zMywBw2223AXBwcADAj/3YjwEgiQd66Zd+aR7+8IeztbXF7/3e7/F7v/d7vOzLviy//Mu/zANtbW3x6q/+6lx33XUAXLx4kb/5m7/hgV7t1V6Nhz/84QD0fc8999zD/V7qpV6K6667ju///u/nzJkz3HvvvQA87GEP47rrruP7vu/7sA3Atddey3XXXQfAU5/6VACuvfZaAO69914Atra2ADg8POR+0zSxWq0AODw8ZGtri+f2MR/zMb/1fu/3fuKqq6666qqrrrrqeVG56qqrrrrqqquuej5e53Ve570f/OAH8/zceeed3HTTTezt7bFardjb22N7e5s777wTgO3tbQAe//jH84qv+Ipsb29zv8c//vE85jGP4RVe4RW488472d/fZ2dnh2c84xk85jGP4QlPeAL7+/vs7++zs7PD7/7u7/Kar/maAPzZn/0ZAE94whMAODo64rVe67W44YYb+Jmf+Rkksb+/z4kTJ3jGM57B3/7t3/Lmb/7mvNVbvRVPeMIT+PM//3Put7+/z8/8zM/w6Ec/mpd/+Zfnr//6r3mN13gNHvWoR/HEJz6RP//zP+d++/v7PPGJT+SJT3wi29vbPOpRj+Kuu+7iL//yL3nJl3xJ3uIt3oL9/X3uuusunvSkJ3HXXXfx3A4ODnjSk57Ek570JAC2t7fZ2tqitcZqteL666/nZ3/2Zzl27BgPetCDeOQjH8kNN9zA/fb39zk4OGB/fx+Au+++G4D9/X0ADg4O2N/f5z+CJLa2trjf9vY2W1tbbG1tAbC9vc329jbXXXcd9zs4OADg6U9/Ovfccw+/+Zu/yVu91Vuxv7/P+fPn2d/f5zu/8zt5YSQBsLW1xcMf/nBe5mVeBoCDgwN+7/d+j5d5mZfh/Pnz/Mmf/AkHBwfcTxL3e+mXfmke/vCHs7W1xe/93u/xMi/zMkjihhtu4J577uGBXvqlX5qXfumX5hnPeAbf8A3fwHXXXcfBwQEP9EZv9EZcd911fP/3fz9nzpzhnnvuAUAS1157LS/1Ui/F7/7u73LmzBnuvfdeALa2tni1V3s1nvGMZ3DNNddw7733AvBSL/VSADz1qU/lftdeey0A9957LwDXXnstAPfeey/XXnstBwcHTNPE/Q4ODrj22mt5bsePH+eVXumVPutP/uRPPoerrrrqqquuuuqq50Tlqquuuuqqq6666vl4ndd5nffiBdjZ2eF+8/mcnZ0dAPb29gDY2dnhxhtv5M477+TOO+/kxhtv5MYbb+TOO+/kT//0Tzl79iyv+ZqvyY033sidd97JnXfeyaMf/WguXLjA27zN2/C93/u9ANx5553s7OwA8OhHPxqAP/uzPwPgCU94Atvb23zv934vH/ZhH8Z7vMd78DM/8zPs7+8DsL+/z7Fjx7jvvvu47bbbeI3XeA0e/ehH85u/+ZvcddddAEjiiU98InfddRc33HAD+/v7/PVf/zWv8RqvwaMe9Sie+MQn8ud//uc80MHBAX/xF3/BX/zFX7C9vc19993HiRMn+J3f+R1e8iVfkrd4i7dgf3+fu+66i7vvvpv9/X3uvvtuntv+/j77+/vcfffdPOlJTwJge3sb25w/f57ZbMZdd92FJK6//nq2t7fZ3t7m+uuv5+/+7u945CMfydbWFtvb2zy3g4MDbHO/g4MDXpitrS3ut729zfNzcHAAwNOf/nQe8YhH8EAHBwfs7+9z9913I4n9/X3W6zU/+qM/yotia2uLRzziEQC8zMu8DACXLl3i937v93iZl3kZnvzkJ3NwcMCP/diP8fxsbW3x8Ic/nJd+6Zfm4OCAv/qrv+JlXuZl2N7e5sd//Md5bltbW7zxG78xW1tb/N7v/R7b29tsbW1xcHDA/ba2tni1V3s1tra2+P7v/37OnDnDPffcA4Akrr32Wt7ojd4IgFIK9957L/d71Vd9VS5dusQ0Tdx7770AXHvttVx33XX8zd/8DU972tMAeNjDHsbW1hb33nsvBwcHAGxtbQFwcHDAS77kS7K1tQWAJP4lb/Zmb/baf/Inf/I5XHXVVVddddVVVz0nKlddddVVV1111VXP5eabb/6uF3uxF3ttXoC9vT3ud+eddwJw00038ad/+qfceeed3Hjjjdx4443ceeedPP7xj+fGG2/kFV/xFfmpn/op9vf3mc/nALzCK7wCd955JwB/+qd/SkTw7u/+7rze670ev/EbvwHAE57wBAC6ruOlX/qlAfizP/szAPb399nZ2WF/f5/M5K3e6q144hOfyJ/92Z8BsL+/z5//+Z+zvb3N3/7t3/KSL/mSvNVbvRVPfOIT+fM//3P29/cB2N/f54lPfCJ33XUXN9xwA3fddRc33HADj3rUo3jUox7FXXfdxROf+ETuvvtuHmh/f5+/+Iu/4C/+4i/Y3t7mvvvuY7lc8qhHPYphGHi5l3s5tre32d/f5+677+auu+5if3+fu+++m+dnf3+f/f197r77bp70pCchifttb2+ztbXF9vY2APfeey8A29vbHDt2jK2tLba3tzl27BhbW1vs7++zvb0NwPb2Nv8Wd955J5cuXeLg4IC77roLgFtuuYXf/d3fZX9/n3vuuYcHksSLYmtri+uvv56trS0e8YhHsLW1xcHBAX/1V3/FwcEBAE972tM4ODjgx37sx3hBtra2eMQjHsFLv/RLc3BwwP22t7f58R//cZ7b1tYWD3/4w3npl35pnvGMZ/A93/M9PPzhD+dpT3saD3TdddfxRm/0Rly6dAmAxWLBPffcw/2uvfZa3uiN3ohnPOMZ3HHHHTz1qU/lfi/1Ui/Fddddx/d///eTmdzvpV7qpbjfwcEBAA972MPY3d3lqU99KgAPe9jDAHjqU5/KAx0eHnLttdcCcOedd/Kwhz2M5+fGG2987Vd6pVf6rD/5kz/5HK666qqrrrrqqquejcpVV1111VVXXXXVc3m3d3u31+a53HHHHdx0000AXLx4EYCdnR2e8IQnALC9vQ3A4x//eG688UZuvPFGAO68806e8Yxn8KAHPYgbb7yRO++8kyc84Qnce++9vMVbvAWPfvSjecITnsD+/j7b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n/l8zoULF3i913s9vvd7vxeA/f19fuqnfor3fM/35NGPfjQAv/mbvwnA/v4+Ozs7POlJT2K1WvHSL/3SAPz5n/8593viE5/IsWPH+N7v/V5e8iVfktd4jdfgxhtv5Dd/8zfZ398HQBL7+/v87M/+LDfccAN33XUXT33qU3mN13gNHvWoR/HEJz6RP//zP+eB9vf3eeITn8gTn/hEtre3OX/+PHfddRd/+Zd/yUu+5Evy2q/92rzcy70cd999N3fddRdPfOITeUH29/fZ39/nSU96EgDb29tsbW2xvb3NbDbj7rvv5vrrr+d3f/d3Abjllls4c+YMj3zkI9ne3uZ++/v7ABwcHLC/vw/AwcEB+/v7ABwcHPBA+/v7PD+SuN/29jb329raAmBrawuA7e1ttra2ALj++ut5oIODAwCe/vSnc++99/IXf/EXvNZrvRYAT37ykwH4+7//e+655x4AJPEv2dra4uEPfzgAL/MyLwPApUuX+L3f+z1e5mVehu3tbZ761Kfy4z/+4zw/W1tbPPzhD+elX/qlOTg44K/+6q94mZd5GSTxEz/xEzy3ra0tXu3VXo3rrruO3/u93+P3fu/3uPHGG7n33nt5oJd6qZfipV7qpfjbv/1bNjc3uemmm3igN3zDN+S6664D4A//8A95oFd91VflGc94Bra59957Abj22mu59tpr+Zu/+RtuvPFGDg8PeehDH8rW1ha/+7u/y7333gvA1tYWu7u7PO1pT+MlX/Ilud/m5iYAu7u7POhBD+K5Pfaxj32tv//7v/9trrrqqquuuuqq/++oXHXVVVddddVVVwEv9mIv9to8H33fA7Czs8Of//mf80qv9ErcdNNN/Omf/inPeMYzeNCDHsSNN97InXfeydmzZwF4xVd8RX7qp36K/f19/vZv/5aXeqmX4vVe7/X43u/9XgCe8IQncOONN7K9vc3rvd7r8Ru/8RsA7O/v833f932cOHGCN3/zN2d/f58/+7M/A2B/f58/+7M/4xVe4RX467/+a17jNV4DSfzZn/0Z99vf3ycimM/nfOM3fiPv9m7vxlu91VvxxCc+kT//8z/nge666y5+9md/lkc96lF84zd+Iy/xEi/BS7/0S/OoRz2KJz7xiTzxiU/k4OCAB9rf3+eJT3wiT3ziE9ne3ua+++6j1soNN9zArbfeymu/9mvz2q/92uzv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93I88pGP5MVf/MU5deoUD37wg5nNZpw6dYrZbAZA3/cMw8C/hiT+Nba2tuj7nlOnTnH99dfzoAc9iOuvv55HPOIRvNiLvRiv+ZqvyYu92IvxYi/2Ypw6dQpJ3HXXXdxzzz383u/9Hg996EO555572N3d5cKFC1y6dInHPe5x3HPPPRwcHPDCbG9v89jHPpaXfumX5hVf8RXZ2trir/7qr/iFX/gFNjc3uXjxIn/6p3/KPffcwwNJAmBra4tXeIVX4NVf/dUppTBNE3feeSe/9Vu/xb333stze+mXfmle53Veh9YaP/7jP07f95RSeKCtrS1e9VVfla2tLX70R3+Ua665hnvvvZf7XXvttbzhG74hf/u3f8vm5iZ/+7d/y/1e8iVfkoc97GF8//d/P0972tO436u+6quytbXFpUuXuOOOOwB4rdd6Lfq+50lPehKHh4c8+tGP5uTJk/ze7/0eJ06c4KEPfSjPeMYz2N/f5+abb0YSW1tbPLdf+IVf+Bquuuqqq6666qr/z6hcddVVV1111VX/r73O67zOe/MAz3jGM3jQgx7E/v4+ANvb2+zu7vKgBz2IG2+8kcc//vEAbG9vA7C3t8fjH/94HvOYx3DjjTdy55138vjHP557772Xt3iLt+DRj340T3jCE9jf32dnZ4ff/d3f5WVe5mW46667uPPOOwH4sz/7M17xFV+RCxcu8Hqv93r85m/+JnfeeScA+/v77OzsAHDhwgXe+q3fmic84Qn8+Z//Ofe766672NnZ4Qd+4Ad4iZd4CV7jNV6DRz/60fzmb/4md999N/fb39/nz//8z3niE5/Iox71KH7+53+e13iN1+At3/It2d/f58///M954hOfyHPb39/nt3/7tzl+/DitNe666y4e9ahHsb29zaMe9She/uVfnv39fe6++26e+MQncvfdd/OC7O/vA7C/v8+TnvQkJLG1tcX+/j4XLlxgGAZWqxXf//3fD8Att9wCwC233ALAy77sy7K9vc1z29/f534HBwcA7O/vcz9J2EYSL8jW1haSsM329jZbW1s8t4ODAwAuXLjAbbfdxr333stf/uVfcunSJW677Tbe7u3ejoODA2yzv7/Per3mx37sx/jX2Nra4uEPfziPeMQj2Nra4uDggK2tLQ4ODrjnnnuQxMbGBn/913/N8yOJhz/84bzUS70UW1tb3Hbb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rd6KJzzhCfz5n/8599vf3+f48ePs7u5y11138ahHPYqXf/mX51GPehRPfOIT+fM//3MeaH9/nyc+8Yk88YlP5NGPfjRPfOITedSjHsViseAt3uIt2N/f54lPfCJ33303d911F8/t4OCAg4MD7r77bgC2t7e5/vrrmc1m3HXXXdxwww3ceuutnDp1ird4i7cAYH9/n7vvvpv9/X0ODg64++672d/f518iiefn4OCA+x0cHPD8SOLfQhL/Ftvb22xtbXHddddx/fXXc91113G/g4MD/vqv/5rrrruOg4MDnvzkJ7O5ucl3fdd3IYl/ydbWFg9/+MN5+MMfztbWFpcuXeJ+EcFP/MRP8IK81Eu9FC/90i/NwcEBv/d7v8fv//7v86hHPYobb7yR5/awhz2MV3u1V+PSpUt8wzd8A9dffz0HBwc80MMe9jBe9VVflWc84xn8wA/8ADfffDMP9IZv+IZsbm4C8Gu/9mvc79prr+Xaa6/l537u55imifs97GEPA6DWCsDm5ibXXnstz3jGM3ja057GQx/6UDY3NwE4PDxkc3MTgIODAwBOnz4NwO7uLsePH+fMmTMP5qqrrrrqqquu+v+MylVXXXXVVVdd9f/Wi73Yi702z/SMZzyDBz3oQezt7bGzswPAM57xDB70oAdx4403cs899/CgBz2Im266iT/90z/l6OgIgEc/+tHceeed3Hnnnfzcz/0cb/EWb8FjHvMYnvCEJ7C/v884jjzjGc/gFV/xFbnzzjvZ399nf3+f3/iN32B/f58P+7AP43Vf93X5zd/8TQD29/eRxHw+56//+q95jdd4DQD+7M/+jPvt7++zs7PDz//8z/MSL/ESvMZrvAY33ngjv/mbv8n+/j73Ozg44Ld+67f48z//c17ndV6Hpz71qbzGa7wGj3rUo3jiE5/In//5n/NAknjiE5/IE5/4RP7iL/6CRz7ykZw4cYK//uu/5mEPexgv//Ivz/7+Pk960pO46667uOuuu5DEc9vf32d/f58nPelJAGxvb3P99dczm8246667uOGGG9je3ubWW2/lhhtu4Prrrwdgf38fgLvvvpv9/X0ODg7Y39/n4OCA/f19/j0k8W8hiRdma2sLgOuvv56trS22trbY2tri+uuvB+Dg4ACAv/7rv+a6667j4OAAgCc/+cns7+/zXd/1Xbyotra2ePjDH87DH/5wtra2ODg44K/+6q94mZd5GZ7+9KfzN3/zN7wwL/VSL8XDH/5wtra2+L3f+z1e5mVehqOjI2688UYODg54oK2tLV71VV+V6667jt/7vd/j937v97jppps4ODgAQBIAL/mSL8lLvdRL8Xu/93vs7Oxw880380Bv+IZvyObmJj/90z/NA21ubvIGb/AGPOMZz2A+n3PvvfcC8NCHPpRrr72Wn/u5n+PSpUsAvNRLvRQArTUArr32WgCe9rSnsbm5yQty6dIljh8/DsCLvdiLvfY//MM//DZXXXXVVVddddX/R1Suuuqqq6666qr/t6655poH80y33norD3rQg7jfzs4OpRQAbrzxRu68804AHvOYx/Cnf/qn/Omf/ikbGxvceOONbG9vs7+/z87ODs94xjN4xVd8Re6880729/d5whOewI033khm8jZv8zZ87/d+LwD7+/tsb2/z8z//87z5m785AL/5m7/J/f7sz/6MV3iFV+D3fu/3eI3XeA1uvPFGfuZnfob77e/vI4kLFy7wjd/4jbzbu70bb/VWb8UTn/hE/uzP/gxJ3G9/f5+f/dmf5VGPehR33XUXT33qU3mN13gNHvWoR/HEJz6RP//zP+e57e/v8xd/8Rf8xV/8Bdvb21xzzTUA/M3f/A0PfehDebmXezn29/d50pOexF133cXdd9/NC7K/v8/+/j5PetKTuN/Ozg7XX389s9kMgK2tLba3t/mFX/gFbrnlFs6cOcPLvdzLcb/9/X0ksb+/z/7+PgAHBwfs7+8DcHBwAMD+/j4ABwcH3E8SL6qtrS3ut729zfb2NgBbW1sAbG1tsbW1xfb2NltbW9zv4OAAgKc//ence++9XH/99RwcHHBwcMDdd9/N5uYmv/RLv8Q999zDCyOJB9ra2uLhD384D3/4w9na2uLg4IC/+qu/4mVe5mV4ylOewuHhIT/+4z+OJJ6fra0tHvawh/HSL/3SHBwc8Fd/9Ve8zMu8DBHBT/zETyCJ5/ZSL/VSvNRLvRSXLl3i+7//+zlz5gw33XQT95MEwBu+4Rty7bXX8nu/93uUUvjbv/1bHugN3/ANufbaa/n+7/9+rrnmGu677z7u96qv+qpcunSJ+XzOvffey/1e9VVflWc84xnM53MuXboEwEMf+lB2d3f527/9WwCuueYaAJ72tKdx7bXXAvC3f/u3bG1t8UC33norD3rQg7jmmmsezFVXXXXVVVdd9f8Zlauuuuqqq6666v+tF3uxF3stnsve3h47Ozvs7Ozw+Mc/nptuuombbrqJP/3TP+UZz3gGD3rQg7jxxhu58847+du//Vve4i3egld8xVfkN37jN7jzzju58847+fAP/3Be8RVfkd/4jd8A4E//9E/Z39/nwz7sw3i913s9fuM3fgOAg4MDJAHw6Ec/GoDf/M3f5H5/9md/xvb2Ni/90i/N9vY27/7u787P/MzPsL+/z/3uuusudnZ2+IEf+AFe4iVegtd4jdfgUY96FL/1W7/FXXfdxQM98YlP5IlPfCKPetSj+MZv/EZe4iVegtd4jdfgUY96FE984hN50pOexP7+Ps9tf3+f3/7t3+Yv/uIvuOGGG9jf3wfgb/7mb3joQx/Ky73cy7G/v8/dd9/NXXfdxZOe9CReGEns7++zv7/Pk570JO63vb3N1tYWFy5cYDab8aQnPYnt7W2uv/56tre3Afjrv/5rjh07BsD111/PIx7xCAC2t7d5QQ4ODnhBtra2eGEODg4A2N/fZxxHLl26xL333surv/qrA3BwcADA3XffzcHBAQB7e3t813d9F/8WW1tbXHfddWxtbfHSL/3SABwcHPBXf/VXPOIRj+Cee+5BEj/+4z/OC7O1tcXDHvYwXvqlX5qDgwN+7/d+j9///d/nNV/zNfmJn/gJACTxQFtbW7zhG74hW1tb/N7v/R6///u/z4033si9997LA21tbfEGb/AGABwcHLBcLrn33nt5oDd8wzfk2muvBeCaa67hvvvu435v8AZvwLXXXsv3f//380Bv8AZvAMDv/d7vcb9XfdVXBeDnfu7niAge+tCHsrW1xTOe8QzuvfdeXuVVXgWAw8NDHvawhwFwcHDA5uYmD/RiL/Zir/UP//APv81VV1111VVXXfX/EeX48eNcddVVV1111VX/P73iK77iW0fESx8/fpwHP/jBAHzv934vr/iKrwjAn/zJn/DSL/3SAPzN3/wN6/WaRz3qUQA8/elPJzM5ceIE1157LU972tMYhoHt7W1e+qVfmtOnT7O/v8+5c+cYhoHt7W1uv/12XvVVXxWAu+++G4BhGHjCE57A3/3d3/G6r/u63HDDDTzxiU/kfsMw8PSnP50//dM/5eabb+ZlXuZl6Pueu+66i/sNw4Akaq385m/+JseO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/j4Ad911F3fffTdPfOITuZ8knp/t7W2uv/56brjhBra2tvirv/orbrnlFl7iJV4CgP39fe6++27uvvtu9vf3ufvuu/mXSOJfY2trC4Dt7W22t7d5oK2tLba3t3luW1tbPNDBwQEABwcHbG1tAXBwcMD9Dg4OANjf3wfg8PCQg4MD/rUk8cJsbW3x8Ic/HICXfumXBuDg4IALFy5w22238dIv/dI85SlP4d577+Wee+7hhZEEwNbWFi/1Ui/Fwx72MA4ODtja2uLg4ICnPvWp/M3f/A3PTRIAW1tbvOqrvirXXnstt912GydPnuQP//APuffee3luW1tbvMEbvAEAP/MzP8NLvMRL8Ld/+7c80LXXXssbvMEbcOnSJVarFb/+67/OA73+678+1157LYeHh/z0T/8093v91399rr32Wr7/+7+fiADgJV7iJXiJl3gJDg8P+Zmf+RmuueYaXv/1X5+//du/5e///u95vdd7Pa699lr++I//mFd+5Vfmgd7u7d5OXHXVVVddddVV/1+hBz3oQVx11VVXXXXVVf9/feVXfqUf9KAH8bu/+7u85mu+Jo9//OMZx5GXfMmX5Kd+6qfY3t7m9V//9dnb2+N7v/d72dvb483f/M15yEMewm/8xm9w5513sr29zXu+53sC8Kd/+qf82Z/9GQDb29u8zdu8Ddvb2+zv7/N93/d93G97e5tHP/rRrFYrXvqlX5onPOEJ/Pmf/zkPtL29zd7eHm/+5m/OiRMneMITnsCf//mfAyCJ+21vb/OoRz2KP/uzP+PN3uzNuOWWW3jiE5/IE5/4RO666y4AJPHcbrjhBh75yEfylKc8hVtuuYWXeImXYH9/nyc+8Yncfffd3H333bwotre3uf7667nhhht45CMfCcDf/d3f8eAHP5jt7W329/cBuPvuu7n77rvZ39/n7rvv5n6S+LeQxL+FJP4tJPFvIYn7bW1tcd1117G1tcV1113HddddB8DBwQEXLlzglltu4eDggHvuuYeDgwOe+tSncnBwwItia2uLhz/84bzUS70UAJcuXeL3f//3ebmXezme+tSn8tSnPpXnRxJbW1u85Eu+JA972MO4dOkSP/ADP8Crvdqr8bd/+7c8Py/1Ui/FS77kS3LbbbfxAz/wA7z8y7889957Lw/00Ic+lFd91VflGc94BvP5nF//9V/ngV7/9V+fa6+9lsPDQ37t136Nw8NDAF7iJV6Cl3zJlwTg13/917nvvvu45ppreP3Xf32e8Yxn8P3f//085CEP4fVe7/W49tpr+bu/+zvuvfdeXv/1X5+/+Zu/ISJ4iZd4CX73d3+X13zN1+Rv/uZv+NzP/Vxx1VVXXXXVVVf9f0U5fvw4V1111VVXXXXV/1933HHH77zO67zOez/oQQ8CYDab8bM/+7O84iu+Ijs7O/z+7/8+9957Ly/5ki/J3t4e+/v7XHvttZw6dYqHPexh/M3f/A3DMLC/v8+dd97JS7zES7Berzl37hzDMPD0pz+d3//93+fVX/3VefSjH83f/u3fAjAMA3fddRdPfvKT6fueV3mVVwHgrrvu4n7DMLCzs8Pv//7v0/c9L/7iL85LvuRLMpvNuOuuu7jfMAzcdddd7OzssFgs+O3f/m0e9rCH8Yqv+Ipsb28zjiP7+/s8t/39fW699VZsc/z4cQD+5E/+hEc+8pG8/Mu/PI985COZzWYAHBwc8IIMw8D58+e59dZb+cu//Eue/OQnU2sFYBgGTp06xWw24/DwkJd6qZfikY98JI985CN58Rd/cU6dOkXf95w6dYrZbMbBwQEvKkn8a0ni30IS/xpbW1vccsstPOhBD+LhD384j33sY3n1V391HvvYx3Ly5EkAbrzxRgAODg54ylOewnK55Pd///f567/+a26//XbuvfdehmHghdna2uIxj3kMr/7qr85Lv/RLs7W1xZ/+6Z9y8uRJnv70p/P0pz+dpz71qVy8eJHnZ2tri1d4hVfgVV/1VSml8BM/8RP0fc/u7i733nsvz+3aa6/lDd/wDbn55pv5hV/4BX7913+dm2++mcPDQx7oVV7lVXipl3opAG677Tb+6I/+CEnc7/Vf//XZ2triR3/0R9nd3eXixYsAXHvttbzKq7wKz3jGM/jzP/9z7rvvPgBe+ZVfmdYah4eHHB4e8tCHPpRHP/rR/O7v/i5PecpTeOVXfmW2trb48R//cV73dV+Xvu950IMeBMCP//iPv8+tt97611x11VVXXXXVVf9foQc96EFcddVVV1111VX/f11zzTUP/qZv+qan7+/vs7e3x4033siv//qv84hHPIIHPehB/NRP/RTb29s84hGP4MSJE3zv934v29vblFJ493d/d57whCfwG7/xG9zvNV7jNXjIQx7Cb/zGb3DXXXcBsL29zd7eHh/2YR/G/v4+P/3TP83+/j73u3TpEi/xEi/Bm7/5m7O/v8/P/MzPsL+/zwNtb2+zt7fHS7zES/Aar/EaPPGJT+TP//zP2d/f57ltb2/zqEc9ipd/+Zfn7/7u73iJl3gJ9vf3+Yu/+Aue+MQn8sJsb2/zyEc+kj/7sz/jJV7iJXipl3optre32d/f50lPehJ33XUXd999N8+PJJ6f7e1ttra22N7e5vrrr2d7e5vrr78egL/7u7/j9OnTXH/99dxvf3+fg4MD9vf3OTg4YH9/n4ODAwDuvvtuACTxbyGJfwtJ3G9rawuAra0ttra22NraYnt7m62tLa677joe6ODggKc//em8xEu8BAAHBwfcc8893HPPPRwcHHDPPffw3CTxwmxtbfGwhz2Mhz/84WxtbXFwcMBf//Vf83d/93e86qu+Kk996lM5ODjghbn22mt5qZd6Ka677jouXbpEKYWnPvWp/O3f/i3Pz9bWFq/6qq/Ktddey9/93d/x8z//87z8y7889957Lw+0ubnJq77qq7K5ucnP/MzPcNttt3HzzTcjCYDNzU1e5VVeha2tLX7qp36K6667jnvvvReAa6+9ltd//dfnGc94Bj/wAz/Agx/8YABe7/Vej62tLX7qp36KiADgrd7qrZimiT/7sz8D4PVf//X5m7/5G5bLJa/8yq/MA33Ih3zIQ+67775bueqqq6666qqr/r9CD3rQg7jqqquuuuqqq/5/+9zP/dzferEXe7HXvvPOO7nxxhu58847+amf+ik+/MM/nDvvvJOf+qmf4m3e5m248cYbefzjH89v/uZvsr29zUMe8hBe4zVegz/7sz/jT//0TwF4hVd4Ba699lpOnjzJb/zGb3DXXXcBsL29zVu/9VuTmUQEP/3TP83+/j7329nZYW9vj3d7t3cjInjCE57An//5n/NA29vbPOpRj+IVXuEVuO222zhx4gRPfOIT+fM//3Oen+3tbR71qEfx8i//8vzd3/0dL/ESL8H+/j5PfOIT+Yu/+AtemJ2dHba2tnjUox7Fb/zGb/ASL/ESPPShD+WGG25gf3+fu+++m7vuuosnPelJAEjiX2N7exuA66+/nj/+4z8G4NixYxw7doxjx45x8803A3Ds2DFOnDjB9vY2D3RwcADAwcEB+/v73G9/fx+Ag4MDntvBwQEPtL29zXPb2trifltbWwBsb28DsLW1xdbWFg90cHBAa43bbruNS5cusbe3x6VLl7jtttu43xu90Rtxzz33cM899/CikMQDbW1tcd1117G5uclLv/RLA3BwcMBf//Vf83d/93e8yqu8Cvfeey/33nsvL8zW1hYPe9jDeNjDHsbW1hZ/93d/x0Me8hCe+tSn8rd/+7e8IC/5ki/JS73US3Hp0iV+/ud/nttuu42bb76Z5/bQhz6UV33VV+XSpUt84zd+Iy//8i/PvffeC4AkNjc3eYM3eAOmaaLWyk//9E9zv83NTd76rd+aZzzjGbTW+OM//mMArrnmGl7/9V+f3/3d32UYBu677z5e+ZVfmYc+9KHce++9/MZv/Aav93qvx7XXXsv3f//382qv9mo85CEP4fDwkM3NTX7rt37ru7/+67/+fbjqqquuuuqqq/4/Qw960IO46qqrrrrqqqv+f3uv93ovv+VbviV7e3tcvHiREydO8Kd/+qdcc801vORLviQ/9VM/xd7eHi/zMi/DS77kS/LTP/3T3HnnnTz60Y/mzJkzPOQhD+E3fuM3uPPOO9ne3ubRj3401157LSdPnuSnf/qn2d/fB2B7e5vXfd3XpbXGiRMn+LM/+zOe8IQnIAmA7e1t9vb2eImXeAle4zVeg7vuuovf/M3fZH9/nwfa2dnhUY96FC//8i/P/v4+AE984hP58z//c56fnZ0dHvnIR/Jnf/ZnvMRLvASv/uqvzv7+PnfddRdPetKTuOuuu3ggSTzQ9vY2W1tbPOpRj+I3fuM3uOWWW3iJl3gJbrnlFgD29/e5++67edKTnsTdd9/Nv4YkntvW1hbb29tsbW2xvb3N1tYWP//zP8/Ozg433HADOzs7HDt2DIBjx45x7NgxAI4dO8bBwQFbW1v8R7h06RKXLl3ifpcuXeLSpUscHBxw++23s7+/z1u+5Vuyv78PwD333MPBwQEHBwcASOJfSxJbW1tsbW1x7bXXct1113HdddcBcNttt3Hbbbfx+7//+7zxG78xT33qUzk4OABAEi/I1tYWD3vYw3ipl3opDg4O+Ou//mv+7u/+jld91Vflb//2b3lBXvIlX5KXeqmX4uDggK2tLZ761KfyR3/0Rzy3zc1NXvVVX5Vrr72W3/u93+P3f//3ufnmm7mfJK699lpe//Vfn0uXLrFarfj1X/917re5uclbv/Vb84xnPIP5fM5v/MZvAHDNNdfw+q//+jzjGc/gyU9+Mvfddx/XXHMNr//6r8/v/u7vMgwDAK//+q/P3/7t3/IP//APvMu7vAvPeMYzOH36NJubm/zsz/4s3/M93yOuuuqqq6666qr/z9CDHvQgrrrqqquuuuqqq77yK7/SJ06c4Gd/9md593d/dx7/+Mdz55138gqv8ApI4nu/93t59KMfzSu8wisQEXzv934vAK/wCq/Aox71KCKCn/qpn2J/f5/t7W0e/ehH86hHPYqI4Kd/+qfZ398HYHt7m0c/+tGsVite+qVfmic+8Yn82Z/9GQ+0u7vLLbfcwpu/+ZsTETzhCU/gz//8zwGQxAO95Vu+JU972tN49Vd/dfb393niE5/In//5n3M/Sdxve3ubG264gUc+8pH81V/9FS/xEi/BLbfcwv7+Pk984hP5i7/4CyTxL9ne3ub666/nkY98JH/1V3/FLbfcwrFjx7jlllvY398H4O677+buu+/m7rvvZn9/n+dHEv8Wktja2gJga2uL7e1t7re1tQXA9vY2z21ra4sHOjg44LkdHBxwv4ODAwAODg4AODg44ODggBeFJF5UW1tbbG1tcd1113Hddddx3XXXAXDp0iX+7u/+jttuu423fMu35ClPeQpPfepTOTg44IEk8dy2trZ42MMexsMe9jC2tra4dOkSf/d3f8dLv/RL8zd/8zc87WlP4wV5yZd8SR72sIextbXF7/3e7/EyL/My/OEf/iH33Xcfz+2hD30or/qqr8qlS5f4+Z//eW677TZuvvlmHuhhD3sYr/Iqr8IznvEM5vM5v/7rv879Njc3eeu3fmue8Yxn0Frjj/7oj5DE5uYmb/VWb8WlS5dYrVb8xm/8BgBv9VZvxTRN3Hbbbfzd3/0dr/d6r8d8Pufxj3881157LQ95yEP42Z/9Wd7yLd8SgA/5kA95yH333XcrV1111VVXXXXV/2foQQ96EFddddVVV1111VWf8zmf81u33HLLa995552M48iDH/xgfuM3foNaK2/xFm/Bn/7pn/L4xz+eg4MDPuzDPownPOEJ/MZv/Abb29vs7+/z7u/+7kQE3/u93wvAzs4Oe3t7vPu7vzsRwU//9E+zv7/P/S5dusSrv/qr8xqv8Rr82Z/9GX/+53/OA21vb7O3t8dLvMRL8Bqv8Rrcdddd/NZv/Rb7+/s8t0c96lE84QlP4CVe4iV49Vd/dfb39/nzP/9znvSkJ/GCbG9v88hHPpI/+7M/4yVe4iV49Vd/dfb397n77ru56667eNKTnsSLYnt7m62tLW644QZuuOEGrr/+ev7u7/6OY8eOccsttwCwv7/P3Xffzf7+PnfffTcHBwccHBzwbyGJfwtJ/FtI4l9LEi/I1tYWW1tbXHfddVx33XVcd911ABwcHNBa4+/+7u949Vd/dQ4ODnjKU57Cvffeyz333MMLIokHuvbaa3n4wx/Owx72MA4ODvjrv/5r/u7v/o5XfdVX5alPfSoHBwcASOK5PexhD+MlX/Il2dra4vd+7/f4/d//fV7rtV6Lpz71qUjigTY3N3nVV31Vrr32Wn7v936P3//93+fmm2/mub3qq74qD33oQwH427/9W/7u7/6O+1177bW8/uu/PpcuXeIbvuEbeNCDHoQkAF7v9V6Pa6+9lm/4hm/gxIkTALze670e1157Ld///d9PRPDQhz6UV37lV+bnfu7nODg44F3e5V14xjOeQWbykIc8hN/6rd/6nq//+q9/b6666qqrrrrqqv/vKMePH+eqq6666qqrrrrq7Nmzt77xG7/xe89mM372Z3+W13iN1wDgvvvuY2Njg5tvvpknPOEJnD17lkuXLvGqr/qqADz96U9ne3ubP//zP+fVX/3VecxjHsPf/u3fMgwDOzs7/Pmf/zm33HILL/MyL8MwDJw7dw6A+XzOk5/8ZG677Tbe+I3fmEc/+tE8/elPZxgGAIZhQBJPetKTuO2227j55pt56Zd+aWazGXfddRcPdP78eXZ2dtjc3OSXf/mXsc1rvdZr8ahHPYq+77n77rt5bsMwcPfdd7Ozs8Pm5iZ93/Mnf/InbG1t8Uqv9Eo88pGP5PTp06zXaw4ODnhBhmHg8PCQu+++myc96Uk8+clPZrlcEhFIYnt7m9lsxl133cW1117Ly73cy/HiL/7iPOIRj+DBD34w119/PX3fM5vNABiGgRdGEv9akvi3kMS/hSS2trY4efIkD3/4w7nuuut46Zd+aV791V+dxz72sTz84Q9na2uLxz3ucdxyyy0cHBxwcHDAHXfcwcWLF/mDP/gDHv/4x3PvvfdycHDACyOJa6+9loc//OG80Ru9EQ9/+MMppfDnf/7nXHfddRweHnLhwgXuvfdehmEAQBIP9JIv+ZK86qu+Kg972MN44hOfyE/+5E/y8Ic/nOVyycWLFwGQxP1e8iVfktd+7demtcZP/MRP8Hd/93fcfPPNPNDm5iav/dqvzcmTJ/mxH/sxfuEXfoH1es39rr32Wl7/9V+fS5cu8Q3f8A086EEPQhIAr/d6r8e1117L93//97OxsQHAS7zES/DQhz6U7//+7+cZz3gGN910E6//+q/PpUuXOHv2LC/xEi/BiRMn+Pmf/3le/uVfnr7v+a7v+q6POXv27K1cddVVV1111VX/31GOHz/OVVddddVVV1111dmzZ5/xmMc85rNvueUW9vb2KKVw7bXX8rSnPY0///M/5zVe4zU4c+YMt956K9dffz133nknL/ESL8G5c+c4d+4c29vbPPShD2V7e5vt7W2e/vSnMwwD29vbLBYLDg4OeLEXezFmsxl33XUXAPP5nNlsxu///u/zEi/xEjzmMY+h73vuuusu7jefz+n7nvl8zkMe8hBuuOEGHvWoRzEMA+fPn+d+wzBw/vx5dnZ22Nzc5PTp0/zN3/wNr/zKr8yjHvUo+r7n7rvv5rkNw8D58+d50pOehG1OnDgBwOnTpzk8POQVX/EVeeQjH8np06fp+57z58/zQJJ4oGEYODg44O677+ZJT3oSf/mXf8mTn/xkaq30fc8wDGxvbzObzbj11ltprXHzzTfzsi/7srz4i784j3jEI3jxF39xHvzgB3P99dfT9z2nTp1iNpshiWEY+NeSxL+FJJ6fra0t+r7n5MmTXHfdddxyyy1cd911vMzLvAwv8zIvwyu+4ivy2Mc+loc//OFsbW0B8PSnP51bbrmFg4MDLly4wG233Ubf9/z+7/8+f/3Xf81Tn/pU7r33Xg4ODviXbG1t8ZjHPIbrr7+eN3qjN+LhD384i8WC+XzOwcEBT3/603nCE57A4x//eO69916emyS2trZ49KMfzRu+4Rty3XXX8ad/+qecPHmSCxcucPHiRe69917uJwmAa6+9ljd4gzfg5ptv5vd+7/f4iZ/4CXZ2djh27BgP9NCHPpQ3fMM3pLXG933f9/GgBz2IWiv3u/baa3n91399nvGMZwBw4cIFACTxeq/3elx77bUcHh6yu7vL4eEh11xzDa/yKq/CM57xDIZhoO97XvM1X5OtrS1+/Md/nIjglV/5lfnbv/1bHv7wh3PNNdfwN3/zN/z4j//4+3DVVVddddVVV10F6EEPehBXXXXVVVddddVVAK/zOq/z3h/+4R/+XXt7e9x555085jGP4c477+TXf/3XOXXqFG/+5m/On/3Zn/Gnf/qnvMIrvALXXnstJ0+e5Kd+6qfY399ne3ub93zP9wTgCU94Ar/5m7/J/V7hFV6B1WrFa7zGa/Bnf/Zn/Nmf/RmSANje3mZvb4+XeImX4DVe4zV44hOfyJ/92Z+xv7/PA+3s7PCWb/mW3HrrrbzES7wEd911F7/1W7/F/v4+z217e5sbb7yRRz7ykTztaU/jpV7qpQC46667eNKTnsRdd93Fc5PE/ba3t3nkIx/J9ddfzw033MBtt93GLbfcwv7+PgcHB9x1113cdddd3HPPPfxbbG9vs729zdbWFn/8x3/MsWPHALjlllsAuPnmmwE4ffo0119/PQ90cHAAwP7+PpLY39/nfvv7+wAcHBwAIAmA/f19np/t7W0eaGtri/ttb28DsLW1BcDW1hZbW1s80MHBAQBPf/rTuXTpEgC33347ALfddhsAb/RGb8Q999zDPffcw/MjiX/J1tYWD3vYw7j++uu59tprOTg44MKFC9xyyy0cHBzw1Kc+lac+9akcHBzwwmxvb/PQhz6Ul3qpl+Lg4IC//uu/5qVf+qV56lOfyt/+7d/y/GxtbfGqr/qqXHvttdx2222cPHmSP/qjP+Lee+/lgTY3N3nVV31Vrr32Wn7v936P3//93+eWW27hgV7iJV6Cl3zJl+Rv//Zv2dra4o/+6I8AkMTrvd7rce211wLw67/+69x3331sbm7yVm/1Vly6dInbbruNv/u7v+OhD30or/zKr8zv/u7vcuedd/J6r/d6XHPNNTz96U9nc3OTa665hq//+q9/n9/6rd/6bq666qqrrrrqqqsAPehBD+Kqq6666qqrrroK4Jprrnnwh3zIhzz9JV/yJfn1X/91rrnmGl7yJV+Sn/qpn2J7e5tHPOIRnDx5kp/6qZ8C4PVe7/XY2toiIvje7/1eALa3t3nIQx7Ca7zGa/CEJzyB3/zN3+R+r/AKr8BqteI1XuM1+LM/+zP+/M//nAfa3d3llltu4S3f8i0BeMITnsCf//mfAyAJgO3tbR71qEfxZ3/2Z7zZm70ZJ06c4K677uLP//zP2d/f536SuN/29jYv93Ivx6Me9Shuu+02brnlFvb39/mLv/gLnvjEJ3I/STw/29vbXH/99TzhCU/glltu4eabb+bUqVPccMMN7O/vc/fdd3P33Xezv7/P3Xffzb9EEi/I1tYWANdffz0A119/PT//8z/PsWPH2Nra4sYbb+TYsWMAHDt2DIBjx44BcOzYMf4jXbp0CYBLly4BcOnSJS5dugTAnXfeyZ133gnA67zO6wBw7733AnDPPffwryGJ57a1tcXDHvYwAF76pV8agIODA/76r/+a2267jdtuu403eZM34W/+5m94UbzUS70UD3vYw9ja2uLSpUscO3aMg4MD/vZv/5anPvWpPD9bW1s87GEP4yVf8iW5dOkSP//zP89LvMRL8Ld/+7c8t2uvvZY3eIM34ODggJ/5mZ/htttu45ZbbuGBXv/1X59rr70WgD/6oz/iaU97Gvd7/dd/fa699lq+//u/n+uuu4777rsPgNd7vddjPp+zWq34jd/4DTY3N3mrt3ornvGMZ/CUpzwFgNd7vdfjb//2bzk6OuKVX/mV+Zu/+Rs+93M/V1x11VVXXXXVVVddgR70oAdx1VVXXXXVVVdddb/XeZ3X8Yd/+Iezt7fHn/7pn/L6r//67O3t8b3f+71I4t3f/d2JCL73e7+X7e1t9vf3ec/3fE/29vb46Z/+aSSxvb3NiRMnePM3f3Oe8IQn8Ju/+Zvc79KlS9xyyy2827u9G/v7+/zMz/wM+/v73G97e5u9vT1e4iVegtd4jdfgiU98In/2Z3/GwcEBD7S9vc2jHvUo7r33Xl7mZV6G7e1tnvjEJ/LEJz6R/f19JPH8vNzLvRx/9md/xku8xEvw6q/+6uzv73PXXXfxpCc9ibvvvpt/yfb2Ntdffz033HADv/mbv8ktt9zCzTffzIMf/GC2t7fZ39/n7rvv5u6772Z/f5+7776bB5LEv4Uk7re1tQXA9vY2ttne3uZ+W1tbbG9v89y2trZ4fg4ODnigg4MD7ndwcADAwcEBAAcHBxwcHPCCSOJfSxJbW1sAPOxhD+O6667juuuuA+Dg4ICnP/3pXLp0ib/7u7/jVV7lVTg4OOCpT30qkviXbG1t8bCHPYyXeqmXAuD3f//3+bu/+zte9VVflac97WkcHBzw/GxtbfHQhz6Ul3qpl+LSpUv83u/9Hrfccgt/+7d/y3Pb3NzkVV/1Vbn22mu57bbb+IEf+AEe85jHcHh4yP02Nzd5lVd5Fa699loAfv3Xf517772X+73+678+1157LT//8z/PfD7nvvvuA+D1Xu/1uPbaa/n+7/9+IgKA13u91+Paa6/l67/+6zl16hSv93qvxzXXXMPf//3fc80113DNNdfw9V//9fzWb/2WuOqqq6666qqrrroCPehBD+Kqq6666qqrrrrqftdcc82DP+dzPue3rrnmmgf/+q//Osvlkrd4i7fg8Y9/PH/2Z39GRPDu7/7uPOEJT+A3fuM32N7eJiJ493d/d57whCfwm7/5mwBsb28TEbzlW74lAN/3fd/H/ba3t9nf3+fd3u3diAie8IQn8Od//uc80O7uLi/xEi/Ba7zGaxARPPGJT+TP//zPeW7b29vs7e1xyy238Jqv+ZoAPPGJT+RJT3oS+/v7PD/b29tcf/31POEJT+CWW27hJV7iJbjlllvY39/nSU96EnfddRd33303/xJJbG9vc/3113P99dfzyEc+kl/8xV/k5ptv5vTp01x//fXs7+8DcPfdd3P33XdzcHDA3Xffzb+GJP4tJPFvIYl/LUm8KLa2tgB4+MMfDsB1113HddddB8DBwQF//dd/DcBLv/RLc88993BwcMBTn/pUDg4OuJ8kXpCtrS0e9rCH8bCHPYytrS0uXbrE3/3d3/H7v//7vMmbvAl/+7d/ywuytbXFQx/6UF7qpV6Kg4MD/vqv/5rf//3f51GPehSHh4c8t5d8yZfkJV/yJTk4OOBnfuZnuO2227jlllt4oGuvvZbXf/3X59KlS/z8z/88t912G7fccgv3e/3Xf32uvfZavv/7v5/rrruO++67D4DXe73X49prr+X7v//7ue6667jvvvt4vdd7Pa699lq+//u/n1IKL/7iL85LvMRL8P3f//08/OEP55Vf+ZUBeLu3eztx1VVXXXXVVVdd9WyU48ePc9VVV1111VVXXXW/w8PD3aOjo0vXXnvtWz/iEY/gL//yLzlx4gTXXnstd911F6vVipd6qZfi9OnTADz96U+n73te6qVeitOnTwNw1113MQwDfd/zZ3/2Z7zUS70UL/VSL8XTn/50hmFgGAZ2dnb48z//c2zzKq/yKgDcdddd3G8+n2MbSTzkIQ/hhhtu4FGPehTnz59nf3+f+w3DgCRss729zQ033MD29jaPetSjOHXqFMMwsL+/zwMNw8D58+eRhG3m8zk/8zM/g21e7MVejJd4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GQDb29vs7+/zEi/xErzGa7wGf/Znf8af//mfc7/t7W329vZ4iZd4CV7jNV6D/f19fuZnfoaDgwMeaHt7m0c96lGsVite6qVeCoAnPvGJ/Pmf/zkAknig7e1tHvnIR/KoRz2Kv/mbv+HVX/3V2d/f5+677+aJT3wid999Ny/M9vY2W1tb3HDDDVx//fX89V//NS/+4i/OLbfcAsD+/j533303d999N0960pN4QSTxotja2gLg+uuvB+Av/uIvADh27BhbW1vceOONHDt2DIBjx44BcOzYMQCOHTvGf6RLly4BcOnSJQAuXboEwKVLl7jzzjvZ29vj4OAAgNd5ndfh4OCAg4MD7rnnHv4lknhhtra2uO6669jc3OThD384W1tbHBwccOHCBW677TZe+qVfmqc+9ancc8893HvvvbwgkgDY2trioQ99KC/1Ui/FwcEBf/3Xf81Lv/RL89SnPpW//du/5YEkcb+XfMmX5CVf8iU5ODjgr//6r3nEIx7BH/7hH3J4eMgDbW1t8Sqv8ipce+21/N7v/R6///u/zy233MIDvcRLvAQv+ZIvyd/93d+xubnJH//xH3O/V37lV+ahD30oP//zP898Pue+++5jc3OTV37lV2Y+n7Ner/mN3/gNrrnmGl7v9V6P3/3d32UcR17iJV6Ca665hu///u/np37qp8RVV1111VVXXXXV80IPetCDuOqqq6666qqrrnp+zpw586A3f/M3v/XN3/zN+dM//VP29/c5c+YMD3nIQ/iN3/gN9vb2eL3Xez1uvPFG9vf3+emf/mn29/fZ3t7mxIkTvPmbvzlPeMIT+M3f/E3ud+nSJV791V+d13iN12B/f5+f+ZmfYX9/n/ttb2+zv7/Pm73Zm3HixAme+MQn8ud//uc8t+3tbfb29niJl3gJXv3VX539/X2e+MQn8hd/8Rc8P9vb29xwww08/vGP55ZbbuElXuIluOWWW9jf3+dJT3oST3rSk9jf3+dfsr29zQ033MDjH/94AF78xV+cW265hVtuuQWA/f197r77bu6++2729/e5++67AZDEv5Yknp+trS0Atre3sc329jYAW1tbAGxvb/Pctra2eH4ODg4AkATA/v4+9zs4OADg4OAAgIODAw4ODnggSfxrSeK5bW1t8bCHPQyAl37plwbg4OCACxcucNttt3H77bdz22238cZv/MY8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nj3Lq7/6q7O/v88Tn/hE/uIv/oLnZ3t7m0c+8pH82Z/9GS/xEi/Bq7/6q7O/v8/dd9/NE5/4RO6++25emO3tbba2tnjUox7F9vY2f/VXf8XNN9/MS7zESwCwv7/P3Xffzd13383+/j533303DySJf42trS0kcf311wPwl3/5lwDcdNNNbG1tceONNwJw7NgxAI4dO8axY8f4z3Lp0iXud+nSJS5dusTBwQGXLl3irrvu4uDgAIDXfM3X5J577gHgnnvu4fmRxItqa2uL6667jq2tLV7qpV6K+912223cdtttvPRLvzRPfepTueeee7j33nt5IEk8t62tLR760IfyUi/1UhwcHPDXf/3X/N3f/R2v+qqvyt/+7d8iiee2ubnJwx72MF7yJV+Sg4MD/vqv/5pHPOIR/OEf/iGHh4dI4n7XXnstr/Iqr8Lm5ia/93u/x+///u9zyy23cL/NzU1e5VVehWuvvZbf+73f4/d///d50IMeBMDm5iZv9VZvxaVLl6i18jM/8zMAvMqrvAoPechDAPiN3/gNAF7v9V6PZzzjGfzcz/3c+/zWb/3Wd3PVVVddddVVV131L0MPetCDuOqqq6666qqrrnpRve7rvq7f/d3fnYjgp37qp7jjjjt4jdd4DV7jNV6DP/uzP+PP/uzP2N7e5nVf93XZ2toiIvizP/sznvCEJyCJ3d1djh07xnu8x3sA8Od//uc84QlP4H7b29u81Vu9Fbfeeisv8RIvwROf+ET+/M//nP39fR5oe3ubvb09XuIlXoKXeqmXAuCJT3wif/EXf8Hzs729zQ033MATnvAEbrnlFl78xV+cW265hf39fZ70pCdx1113cffdd/OCSAJge3ub66+/nuuvv55HPvKRANx2223ccsstAOzv73P33Xdz9913c3BwwN13382/liRemK2tLe63tbXF9vY2kgDY2toCYGtri+fn4OCAra0t7ieJ++3v7/NABwcHHBwccL+DgwMODg6QxL+WJF6Qra0tAB72sIextbXFwx/+cAAODg64cOECt9xyCwcHBxwcHHDvvffy1Kc+lYODA14QSQBsbW3x0Ic+lIc97GFsbW1x6dIl/u7v/o7f//3f5zVf8zV56lOfCoAkHmhzc5OHPexhvORLviQHBwf89V//Nb//+7/Py73cy3HvvfcCIAmAzc1NHvrQh/KSL/mS3Hbb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+Iff5qqrrrrqqquuuupfBz3oQQ/iqquuuuqqq6666t/immuuefC7vuu7Pv01XuM1eMITnsBv/uZvsr29zXu8x3sAsL+/z/d93/cBsLOzw97eHu/2bu9GRPBnf/ZnPPGJTwRge3ub/f19XuIlXoJXf/VXZ39/n9/6rd/irrvu4n7b29s86lGP4s/+7M949Vd/dV7iJV6C/f19fvu3f5u77rqL57a9vc0jH/lI/uzP/oxXf/VX5yVe4iXY39/n7rvv5olPfCJ33303L8j29jZbW1s87nGP49ixY9xyyy28+Iu/OLfccgv7+/scHBxw1113cffdd3P33Xfz/Ejihdna2mJ7e5utrS2uv/56tre3Abj++uu539/93d9x7NgxTp48ydbWFs/t4OAAgP39fQAODg54oIODA/61tre3ud/W1hYAW1tbbG1t8dwODg4AuHDhArfddhuv/uqvzv0ODg44ODjgnnvuAeDee+/lnnvu4UUhiee2tbXFwx72MK677jquvfZaAC5dusTf/d3f8fd///dcunSJl3mZl+Hee+/lhdna2uKhD30oL/VSL8XBwQF//dd/zd/93d/xaq/2avzt3/4tz8/m5iav+qqvyrXXXsttt93GL/zCL/Bqr/Zq/N3f/R0PtLm5yRu8wRuwubnJ7/3e7/H7v//7POhBD+J+11xzDa//+q/PpUuX+Pmf/3muvfZa7rvvPgBe7/Vej2uvvRaA3/iN3+C+++7j9V7v9bjmmmv4/u//fp70pCe9zj/8wz/8NlddddVVV1111VX/euhBD3oQV1111VVXXXXVVf9W11xzzYPf7M3e7Olv/uZvzhOe8AR+8zd/k+3tbfb393mP93gPAH76p3+ag4MDtre32dvb4yVe4iV4jdd4Df7sz/6MP//zP+d+29vbvNVbvRW33norL/ESL8Gf//mf88QnPpH9/X3ut729ze23386xY8d4szd7M2655Rbuuusu/uIv/oK77rqL57a9vc3111/PE5/4RF78xV+cW265hVtuuYX9/X2e9KQn8Rd/8Rf8S3Z2dnjEIx7Bn/3Zn3Hs2DFe/MVfnNOnT3P99dezv7/PwcEBd999N3fddRd33303kvi3kATA1tYWW1tbSGJra4unPvWpANx4441sb2+ztbXFLbfcwv2OHTvGf7ZLly4BcOedd3Lp0iXuvPNODg4OODg44NVf/dU5ODjg4OCAe+65hweSxL/W9vY2AA972MO49tprue666wA4ODjgr//6r9nb2+Pv/u7veOM3fmPuuece7r33XiTxgmxtbfHQhz6Uhz3sYWxtbXFwcMBf//Vf8/u///u86Zu+KX/7t3/L87O5ucmrvuqrcu2113Lp0iV+4Rd+gdtuu42bb76ZB9rc3OShD30oL/mSL8ltt93Gz//8z3Pp0iVuueUWJAHwEi/xErzES7wEt912Gz/wAz/Agx70IAA2Nzd55Vd+Za699loODw/54z/+Y+677z5e7/Vej2uuuYbv//7v50lPetLr/MM//MNvc9VVV1111VVXXfVvgx70oAdx1VVXXXXVVVdd9e9x5syZB735m7/5rW/+5m/OE57wBH7zN3+T7e1t9vf3ebd3ezcigj/7sz/jiU98Itvb29x+++28+qu/Oq/xGq/B/v4+P/MzP8P+/j4AOzs7POpRj+LlX/7l2d/fB+CJT3wif/7nf84DbW9v86hHPYqXf/mX57bbbuOWW25hf3+fv/iLv+CJT3wiz8/29jaPetSj+LM/+zNe/MVfnFd/9Vdnf3+fu+++m7vuuosnPelJPDdJPND29jbXX389119/Pdvb2/zVX/0VN998M6dPn+b6669nf38fgLvvvpu7776bg4MD7r77bv4lkvjX2t7eBmBrawuA7e1t7re/v8/111/Pv9bBwQH3Ozg4AODg4IDDw0P+tSTxotja2uJhD3sYANdddx3XXXcdAAcHB/z1X/81AC/90i/NU5/6VO655x7uvfdeHkgSz21ra4uHPvShbG1t8bCHPYyDgwP++q//mr/7u7/jVV/1VXna057G4eEhz8+1117LS77kS3Lttddy6dIlSik87WlP4+/+7u94bi/xEi/BS77kS3J4eMjm5iZ/+7d/y9/93d8BIInNzU1e+ZVfmWuvvZbf+73f4/d///d50IMeBMA111zD67/+63Pp0iVqrfzsz/4sAK/3eq/HNddcw/d///fzpCc96XX+4R/+4be56qqrrrrqqquu+rdDD3rQg7jqqquuuuqqq67697rmmmse/GZv9mZPf/M3f3PuvPNOfuZnfobt7W329/d5iZd4CV76pV+aJz7xifzZn/0ZANvb2+zv7/Ou7/quRARPeMIT+PM//3MkAbC9vc3Lv/zLc/bsWV791V+d/f19/vzP/5wnPvGJ3E8S29vbPPKRj+TP/uzPePVXf3Ve4iVegv39fZ74xCfyF3/xFzyQJAC2t7e5/vrreeQjH8kNN9zA3/3d3/ESL/ES7O/vc/fdd3PXXXfxpCc9CUn8S7a3t7n++uvZ3t7m+uuv5/rrrwfgtttu45ZbbgFgf38fgLvvvpu7776bg4MD9vf3OTg4AEAS/xaS+NeSxL+FJP61JPFAW1tbbG1tce211wJw3XXXcd111wFwcHDAhQsXuOWWWwA4ODjgqU99Kvfccw/33nsvL4wkALa2tnjoQx/K1tYWD3vYwwD4u7/7O17iJV6Cg4MDnvrUp/K3f/u3SOL5ecmXfEke+tCHsrW1xaVLl/iFX/gFXvzFX5y//du/BUAS97v22mt5lVd5FTY3N/n93/99HvGIR/BHf/RHHB4ecr+XfMmX5CVe4iW4dOkSP//zP89tt93Ggx70IAAe+tCH8sqv/Mrcdttt/MAP/AAPfvCDAXi913s9rrnmGr7/+7+fJz3pSa/zD//wD7/NVVddddVVV1111b8PetCDHsRVV1111VVXXXXVf4RrrrnmwZ/zOZ/zW9dcc82D9/f3+emf/mkA9vf3eYmXeAle4zVegz/7sz/jz//8zwHY3t5mf3+fl3iJl+DVX/3V2d/f52d/9mfZ39/nfjfccAN33nknL/ESL8Grv/qrs7+/z2/91m9x1113IYn7bW9v88hHPpJHPepRbG9vA7C/v88Tn/hEnvSkJ7G/v48kntv29jbXX389T3jCE7j55pu55ZZbeImXeAn29/c5ODjgSU96Evv7+9x99928KLa3t9ne3mZra4s//uM/5tixY9xyyy3s7Oxwyy230HUd119/PQD7+/sA3HPPPezv73NwcMDBwQH7+/scHBzwwkji30IS/1qSeFFtbW0BcP3117O5ucn29jabm5tcd9113O/g4IALFy5w2223cfvtt3PbbbcB8MZv/Mbcc8893Hvvvbyotre3eehDH8p1113Htddey8HBARcuXOC2227jD/7gD3jjN35j/vZv/5YHksT9Njc3edjDHsZLvuRLcr+DgwOe9rSn8bd/+7fcTxIAm5ubvMqrvArXXnstt912G7/wC7/AIx7xCO69917ut7m5yau8yqtw7bXX8nu/93v8/u//Pg960IO43+u93utx7bXX8nd/93f8/M//PA960IPY2trilV/5ldnc3OTw8PDWr//6r3+ff/iHf/htrrrqqquuuuqqq/790IMe9CCuuuqqq6666qqr/qNcc801D36Jl3iJp7/He7wHAD/90z/NwcEBu7u7vMRLvARv/uZvzv7+Pj/zMz/D/v4+AJcuXeLYsWO867u+KxHBE5/4RP78z/+c+21vb/OoRz2KP/uzP+PVX/3VeYmXeAme+MQn8qQnPYm77rqLB9re3uaGG27gkY98JE972tN4qZd6KQDuvvtu7rrrLp70pCfxgmxvb3P99dfzyEc+kr/+67/m5ptv5iVe4iUA2N/f5+677+ZJT3oSd999Ny+IJJ7b1tYW29vbbG1tcf311/Obv/mbHDt2jGPHjrGzs8OxY8c4ffo0119/Pfc7ODgAYH9/n4ODAwDuvvtuAA4ODgA4ODjg4OCAF5Uk/i22t7e539bWFltbW2xtbQGwtbXF1tYWW1tbbG1tcb+DgwNaa9x2221cunSJvb09Ll26xG233cYbvdEbAXDvvfdyzz33cD9JvCiuvfZarrvuOh72sIextbXFwcEBf/3Xf83e3h6v+ZqvyVOf+lT+9m//lhdEEpubm7zkS74kD3vYwzg4OOCv//qveemXfmme9rSn8bd/+7c8t62tLV7yJV+Shz70odx22238/u//Pi/+4i/O3/3d3/FAL/ESL8FLvuRLcunSJX7+53+e2267jQc96EEAbG5u8sqv/MpsbW3x0z/909x222086EEPYmtri9d7vddjmibW6/WtX//1X/8+//AP//DbXHXVVVddddVVV/3HQA960IO46qqrrrrqqquu+o90zTXXPPglXuIlnv5u7/ZuRAR/9md/xhOf+ES2t7fZ29vjzd/8zTlx4gRPeMIT+PM//3MAtre3efSjH81qteLVX/3V2d/f58///M954hOfyP22t7d51KMexcu//Mtz2223ccstt/DEJz6RJz3pSdx11108t+3tbW6//XZe/MVfnFtuuYWXeImXYH9/nyc96Uncdddd3H333bwg29vb3HDDDVx//fX85m/+Ji/+4i/OLbfcwi233MLBwQH7+/vcdddd3H333dx9990ASOJfY2tri52dHba2trj++usB2Nra4vrrr+cHf/AHOX78ODfffDMAx44do+s6tre32dra4rkdHBxwv4ODA2xzv4ODAwAk8dy2trZ4bltbWwBsbW3x/BwcHABw4cIF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bG5u8sqv/Mpce+21/N7v/R6///u/z5//+Z+Lq6666qqrrrrqqv8a6EEPehBXXXXVVVddddVV/5Ve4RVewceOHePd3/3dAXjiE5/In//5nwOwvb3NW77lW/I3f/M3vPqrvzpPfOIT+fM//3P29/e536Mf/Wge+chH8rSnPY1Xf/VXZ39/nyc+8Yn8xV/8Bc9tZ2eHRz7ykVx//fU87WlP46Ve6qUAODg44IlPfCJPetKTeCBJ3G97e5utrS3+4R/+gWPHjnHLLbdw88038xIv8RIA7O/vc/fdd3P33XdzcHDA3XffzYtKEvfb2toC4Prrrwfg+uuv5zd+4zeQxM7ODseOHQPg2LFjHDt2jJ2dHQBOnjwJwNbWFv+ZDg4OALhw4QIAt99+O/e7dOkSly5dYm9vj0uXLvGGb/iGABweHnJwcMA999zDCyKJF2Zra4uHPexhXHvttVx33XUAHBwc8Nd//dcA/MEf/AEAL/MyL8O9997LC7K1tcXDHvYwrr32Wq699loODg7467/+a176pV+apz3tafzt3/4tz21ra4uHPvShvORLviSHh4f81V/9FS/zMi/D3/7t3/K0pz2N+21ubvIqr/IqXHvttdx2222cOnWKP/qjP+K+++4D4JprruH1X//1uXTpEj//8z/Pbbfdxp//+Z+Lq6666qqrrrrqqv866EEPehBXXXXVVVddddVV/9WuueaaB7/kS77k01/iJV6CV3/1V+eJT3wif/7nf87+/j7b29s86lGP4s/+7M9413d9VyKCJz7xiTzxiU/k4OCA+z3ykY/kCU94Ai/xEi/Bq7/6q7O/v8+TnvQknvjEJ7K/vw+AJAC2t7fZ2trizjvv5NixY7z4i784L/ESL8H+/j533303d911F0960pOQxAuyvb3N9ddfz/XXX8/29jZ/9Vd/xc0338yDH/xgtre32d/f5+DggP39fe6++24ODg64++67eW6S+NfY2toCYHt7m+3tbe63tbXF1tYWAFtbW9xve3ub+21tbfGiODg44IEODg4AODg4AODg4ACAg4MDDg4OADg4OODg4AAASfxrSeJ+W1tbXHvttWxtbXHttddy3XXXAXBwcMDTn/50Ll26xEu/9Evz1Kc+FYC//du/5V9y7bXXct111/GSL/mSHBwccOHCBf7gD/6A2267jdd4jdfgaU97Gs9tc3OThz3sYbzkS74kh4eH/NVf/RW///u/z2u91mvxtKc9jfttbm7y0Ic+lJd8yZfk0qVL/P7v/z633HILf/d3fwfA5uYmr/zKr8y1117L3/3d3/HzP//z/Pmf/7m46qqrrrrqqquu+q+HHvSgB3HVVVddddVVV1313+Ud3/EdP+ud3umdPvvSpUtEBE984hP58z//c+738i//8qxWK17qpV4KgCc+8Yn8xV/8BQ+0vb3Ny73cy/GoRz2KS5cucezYMZ74xCfypCc9ibvvvpvntr29zfXXX88TnvAEbrnlFl78xV+cW265hYODA+666y7uvvtunvSkJ/Ev2d7e5vrrr+f6669ne3ub66+/nr/7u7/j2LFj3HLLLQDs7+9zcHDA/v4+d999NwcHB9xzzz38a0niX0sS/1qS+LeQxItia2sLgIc97GFI4tprr+W6667jfrfddhu33XYbr/7qr87BwQFPfepTAfibv/kbJPHCbG1t8dCHPpStrS0e9rCHAXDp0iX+7u/+jj/4gz/gTd7kTfjbv/1bnp/NzU1e8iVfkoc97GFcunSJY8eOcXh4yB/90R9x7733cr/NzU0e+tCH8pIv+ZIcHh7yV3/1Vxw7doy/+7u/434v8RIvwUu8xEtweHjIT//0T3Pbbbfx53/+5+Kqq6666qqrrrrqvwd60IMexFVXXXXVVVddddV/p2uuuebBr/3ar/1eN95442e/+qu/Ovv7+/zWb/0Wd911FwDb29vs7e3xEi/xErz6q786+/v7PPGJT+Qv/uIveKDt7W0e+chHct999/HiL/7i3HLLLezv7/OkJz2Jv/iLv+D52d7e5vrrr+eRj3wkf/VXf8Utt9zCS7zES7C/v8/BwQF33303d911F3fffTfPjyTut7W1xfb2NltbWzzhCU/ANrfccgu33HILOzs7nDhxgu3tbQAODg7Y39/n4OCAu+++m4ODAwDuvvtunh9J/GtJ4l9LEv9aknhuW1tbbG1tce211wJw3XXXcd1113G/g4MDLly4wG233cbtt9+ObW6//Xbe+I3fmHvuuYd7772X5yaJ57a1tcVDH/pQrrvuOq699loODg64cOECt912Gy/90i/N0572NP72b/+W52dzc5OHPexhPPShD2Vra4tLly7x+7//+9x888087WlP4/DwkAd6iZd4CV7yJV+Sw8ND/uqv/orf//3f5zGPeQyHh4cAbG5u8sqv/Mpce+21/P7v/z6///u/z5/92Z+Jq6666qqrrrrqqv9e6EEPehBXXXXVVVddddVV/xO8zuu8znu/4zu+42fNZrMHRwRPfOIT+fM//3Put729zeu8zuvwtKc9jVd/9Vdnf3+fJz7xifzFX/wFD7S9vc3tt9/OsWPHePEXf3Fe/dVfnf39fe6++26e+MQncvfdd/P8bG9vc8MNN/DIRz6S66+/nr/7u7/j9OnTXH/99ezv73P33Xdz991386QnPQkASfxLtra22N7eZmtriz/5kz9hZ2eHY8eOcezYMW655RZ2dnY4efIkW1tb3O/g4ACAu+++G4B77rkHgP39fQAODg44ODjghZHEv4UkXpitrS0Atra22NraYmtrC4CtrS22t7e59tpreaCDgwMuXLjAbbfdBsDtt9/ObbfdBsAbv/Ebc88993DvvffyL5EEwNbWFtdeey2bm5u81Eu9FAAHBwf89V//Na/+6q/OwcEBT33qU/nbv/1bJPH8bG5u8rCHPYyXfMmX5ODggL/+67/m7//+79nd3eXmm2/mgTY3N3noQx/KS77kS3J4eMhf/dVf8TIv8zL80R/9Effeey+S2Nzc5KEPfSgv8RIvwaVLl1iv17f+6I/+6Of81m/91ndz1VVXXXXVVVdd9d8PPehBD+Kqq6666qqrrrrqf4prrrnmwa/92q/9XjfeeONnv/qrvzr7+/s88YlP5M///M+RBMD29jav/dqvzdOe9jRe/dVfnf39fZ74xCfypCc9if39fe63s7PD9ddfzw033MBTnvIUXvzFX5xbbrmF/f19nvSkJ3HXXXdx9913cz9J3G97e5vrr7+exz/+8QDccsstvPiLvzi33HILAPv7+9x9993cfffdPPnJT+ZFJQmAra0ttre32dra4vrrr2dra4vt7W22trb4xV/8RY4dO8axY8fY2dmh6zquv/56ntvBwQH329/fB+Dg4AAASdxvf3+ff8n29jYPtLW1BcDW1hYAW1tbPLeDgwMALly4wO233w7ApUuXeNM3fVMODg44ODjgnnvuAeDee+/l4OCAg4MDJPGi2tra4tprr2Vra4vrrruOa6+9FoBLly7xd3/3d9x+++3cdtttvPEbvzF/+7d/y/0k8UCbm5s87GEP4yVf8iUBuHTpEn/3d3/HS7/0S/O3f/u3PO1pT0MS99vc3OShD30oL/mSL8nh4SF/9Vd/xcu8zMvwR3/0R9x7770ASOIlXuIleImXeAkODw/57d/+bQ4ODj77R3/0Rz+Hq6666qqrrrrqqv850IMe9CCuuuqqq6666qqr/qe55pprHvySL/mST3+Jl3gJXv3VX539/X2e+MQn8hd/8Rfcb3t7m729PV78xV+cl3qplwLg7rvv5olPfCJ33303D7S9vc0jH/lIrr/+em644QZuu+02brnlFvb393nSk57E3Xffzd13380Lsr29zfXXX88jH/lIrr/+en7/93+fW265hVtuuQWAg4MD7rrrLu6++24ODg64++67eX4k8S/Z2tpia2uL7e1tAJ72tKcBsLW1RSmF6667jhtvvJFjx45xv2PHjvGf5dKlSwBcunSJu+66i0uXLnFwcMDBwQEHBwe82qu9GoeHh+zv73PvvffyL5HEC7K1tcXDHvYwAF7qpV6K+126dIm/+7u/49Vf/dW59957ueeee7j33nu59957eX4ksbm5ycMe9jAe+tCHsrW1xcHBAVtbWxwcHPC0pz2Nv/3bv+WBJLG5uclDH/pQXvIlX5LDw0P+6q/+it///d/n5V/+5bn33nu530Mf+lBe8iVfks3NTX7/93+f3//93+cZz3jGQ+67775bueqqq6666qqrrvqfBT3oQQ/iqquuuuqqq6666n+qF3uxF3vt66+//rde4iVegld/9Vdnf3+fv/iLv+CJT3wi99ve3ublXu7leOpTn8qLv/iLc8stt7C/v89f/MVf8KQnPYnntr29zSMf+Uj+7M/+jBd/8RfnoQ99KDfccAMHBwc88YlP5O677+buu+/mBdna2mJ7e5sbbriB66+/nuuvvx6A2267jRMnTrC9vc3+/j6SuOuuu7j77rs5ODjgnnvu4V9LEi/I1tYW99va2gJge3ub57a1tcW/5PDwkAc6ODgA4ODgAICDgwOemyT+tSQBsLW1BcDDHvYwAK677jquvfZaAA4ODrhw4QK33HILBwcHHB4ecs8993Dvvfdy77338sJsbW3xsIc9jIc97GFsbm5ycHDAX//1X3P77bfzYi/2Yjz1qU/l8PCQ5/awhz2Ml3zJl2Rzc5NLly7xd3/3d9xwww387d/+LYeHh9zv2muv5VVe5VXY3Nzk93//9/m7v/s77r777tf5h3/4h9/mqquuuuqqq666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OOBfQxLPbWtri83NTa677jquu+46rr32Wu536dIljh07BsDBwQFPfepTAfjbv/1bXhBJXHvttVx77bW85Eu+JACXLl3i7/7u7/j7v/97XvVVX5WnPvWpHB4ecj9JbG5u8pIv+ZI89KEP5fDwkL/6q7/ixIkTv/1bv/Vb3/Nbv/Vb381VV1111VVXXXXV/27oQQ96EFddddVVV1111VX/V5w5c+ZBL/3SL33rLbfcwou/+Itzyy23sL+/z5Oe9CSe9KQnsb+/zwPt7OzwiEc8gj/7sz/jxV/8xbnlllu45ZZb2N/f5+677+buu+9mf3+fu+++GwBJPLetrS2uv/56rr/+en7rt36LnZ0djh07xi233MKpU6e4/vrrATg4OODg4ID9/X3uvvtuDg4OALj77rt5bpL415LEv5Yk/jUk8a+1vb3N5uYm1113HQDXXXcd1157Lfc7ODjg6U9/OpcuXeL222/ntttu443f+I259957uffee3lhtra2eOhDH8p1113HtddeC8ClS5f4u7/7O/7+7/+eV33VV+WpT30qh4eHPNDm5iYPe9jDeNjDHsbm5iaXLl3i7/7u7/iDP/gDnv70pz/47Nmzz+Cqq6666qqrrrrq/wb0oAc9iKuuuuqqq6666qr/a6655poHv/Zrv/Z7vc7rvM57P+lJT3rwS73USwGwv7/Pk570JJ70pCcBIIn7bW1t8chHPpIbbriBv/qrv+Lmm2/mJV7iJQDY39/n7rvv5u677+bJT34y/5KtrS2uv/56rr/+era3t/nZn/1Zbr75Zm655RYATp06xfXXX8/9Dg4O2N/f5+DggIODAw4ODtjf3+fg4ICDgwP+JZL415LEv5YkHmhrawuAra0ttra22NzcBOC6665ja2uLra0t7ndwcMCFCxe4/fbbAbjtttt4ndd5He69914A7rnnHu69914k8YJsbW2xubnJtddey8Me9jC2trY4ODjg6U9/OpcuXeKlX/qledrTnsZTn/pUDg8PeW4v+ZIvyebmJg972MM4PDzkr/7qr3jkIx9562/91m9994/+6I9+DlddddVVV1111VX/96AHPehBXHXVVVddddVVV/1f9mIv9mKvdcMNN/z2Lbfcws0338xLvMRLsL+/z913383dd9/Nk570JJ7b9vY2119/PY9//OMBePEXf3FuueUWbrnlFgD29/e5++67ufvuu3nyk5/MCyKJ+21tbbG1tcX29jbXX389W1tbbG9vs7W1xf3+/u//ngc/+MFsbW3xQAcHBwDs7+8DcHBwAMDBwQEHBwfc7+DggPsdHBzwwkjigba2trjf1tYWAFtbW9xva2uLra0tALa2ttja2uKBDg4OALhw4QK33HIL9zs4OODg4IB7770XgHvuuYd7772XF0QS99va2mJzc5Nrr72W6667jmuvvRaAS5cu8Xd/93fcfvvt3HbbbbzJm7wJf/u3f8vzs7m5ycMe9jBe8iVfEoDbbruNP/iDP+C2225jc3PzvX/rt37re7jqqquuuuqqq676vws96EEP4qqrrrrqqquuuur/g2uuuebBL/ZiL/batdbvuvnmm3mJl3gJbrnlFvb397n77ru5++67edKTnsRz297eBuARj3gEN9xwA3/1V3/FLbfcws7ODrfccgsABwcH3HXXXdx9990cHBxw9913AyCJf8nW1hYA29vbbG1t8ad/+qcAHDt2DIAbb7yRY8eOAXDs2DF2dnYAOHbsGMeOHeO/wqVLl7h06RIAe3t7AFy6dIlLly5x1113cenSJe73eq/3etx7770cHBxweHjIv8bW1hYPe9jDAHipl3op7nfp0iX+7u/+jkuXLvFar/VaPPWpT+Xee+/l3nvvRRLP7dprr+Xaa6/lJV/yJQG4dOkSf/d3f8cf/MEf8OAHP/izf/RHf/RzuOqqq6666qqrrvr/AT3oQQ/iqquuuuqqq6666v+bM2fOPOh1Xud13vvFX/zFX/sZz3jGa7/4i784t9xyC/v7+9x9993cfffdPOlJT+KBJAGwtbXF9vY2119/Pddffz3XX389ALfddhu33HILAPv7+0ji7rvv5u677+bg4IC7776bf4kknp+trS0Atra2ANje3gZga2uL7e1t7re1tcXBwQFbW1tsbW3xr3FwcMD9Dg4OADg4OOB+h4eHHBwcAHBwcMDBwQEvjCRekK2tLQAe9rCHAXDddddx7bXXAnBwcMCFCxe45ZZbODg4AOCpT30q9957L/feey8PJAmAzc1NHvawh7G5ucnDHvYwAC5dusTf/d3f8chHPvLW3/qt3/ru3/qt3/rus2fPPoOrrrrqqquuuuqq/1/Qgx70IK666qqrrrrqqqv+P7vmmmse/OAHP/jpx44d45ZbbuHFX/zFueWWWwA4ODjgiU98InfffTf33HMPz8/W1hYA119/PX/yJ3/CsWPHuPnmmwF48Rd/cU6ePMnW1hYABwcH7O/vc3BwwN13383BwQH7+/scHBwAIIl/LUn8a0jiX0sS/1qS2NraYnNzk+uuuw6Aa6+9luuuu477HRwccOHCBW6//XYuXbrE3//93wPwRm/0Rtx7773ce++9vCBbW1s87GEP49prr+Xaa6/l4OCACxcucNttt/EHf/AHANx6660Pue+++27lqquuuuqqq6666v8v9KAHPYirrrrqqquuuuqqq6645pprHvxiL/Zir11r/a5jx47x4i/+4pw+fZrrr7+e/f197r77bu6++24ODg64++67eUG2trbY3t5me3ub66+/nt/8zd9kZ2eHY8eOccstt7Czs8PJkyfZ2toC4ODgAID9/X0ODg44ODjg4OCA/f19AA4ODjg4OOC5SeJfSxL/WpJ4bltbWwBsbW2xtbXF5uYmW1tbbG1tsbW1xdbWFvc7ODjgwoUL3H777QDcdttt3H777bzRG70RAPfccw/33XcfL8zW1hYPfehDue6667j22msBODg44K//+q/Z29vj7/7u73jwgx/82T/6oz/6OVx11VVXXXXVVVdddT/0oAc9iKuuuuqqq6666qqrntc111zz4Bd7sRd7rRd7sRd77WuuuebBL/ZiL/baf/d3f8dLvMRLALC/v8/dd9/NwcEBd999N3fffTf3k8Tzs7W1xfb2NltbW1x//fVsbW2xvb3N1tYWAH//938PwM7ODrfccgvP7eDgAID9/X0ODg6QBMD+/j4ABwcHPNDBwQHPTRLPz9bWFvfb2triftvb22xubgKwtbXF1tYWz+3g4IDWGpcuXeL222/n1V7t1QA4ODjg4OCAe++9F4B77rmHe++9l+dHEg+0tbXFQx/6UK677jquvfZaAA4ODnj605/OS7zES3Dffffd+lu/9Vvf/Q//8A+//Q//8A+/w1VXXXXVVVddddVVzw960IMexFVXXXXVVVddddVV/7JrrrnmwS/2Yi/22kdHR9917Ngxbr75Zm655RZOnTrF9ddfz/7+PgB3330399xzDwcHB9x99928KLa2tpDE1tYWAE984hMBOHbsGABbW1vccMMNHD9+nJ2dHY4dO8b9jh07xn+mS5cuAXDp0iXud9ttt3F4eMilS5e46667uN9rv/Zrc++993J4eMjBwQEvqu3tbR760IcCcN1113HttdcCcHBwwNOf/nQuXbrE3//933Pp0iU2Nzff57d+67e+m6uuuuqqq6666qqrXhToQQ96EFddddVVV1111VVX/etdc801D36xF3ux136xF3ux17rmmmse/IxnPOO1jx07xs0338wtt9wCwMHBAQB33303d999NwcHB+zv73NwcMADSeJFsbW1BcDW1hbb29vcb2trC4Dt7W0eaGtrixfVwcEB9zs4OOB+BwcHHB4ecr977rmHF0YSL8jW1habm5tcd911AFx77bVcd9113O+2227j9ttv57bbbuP1Xu/1bv2t3/qt7wb40R/90c/hqquuuuqqq6666qp/C/SgBz2Iq6666qqrrrrqqqv+/a655poHnzlz5sHXXHPNg1/sxV7sta655poHv9iLvdhr//3f/z0AD37wg9na2gLg4OAAgLvvvhuAe+65h/39fQ4ODjg4OOBFIYl/DUn8a0niX2t7e5vNzU22trbY2tpia2uLzc1NrrvuOu53cHDArbfeyqVLl3i1V3s17rvvvlv/4R/+4bfvu+++W//hH/7hd/7hH/7ht7nqqquuuuqqq6666j8CetCDHsRVV1111VVXXXXVVf85rrnmmgcDvNiLvdhrHx0dfdfOzg6SuPnmmzl27BjHjh1jZ2eHW265hQc6ODhgf3+fg4MDAA4ODjg4OGB/fx+Aw8NDAA4ODnhRSeJfSxIAW1tbAGxtbQGwtbXF5uYmAFtbW2xtbXHdddfxQAcHB7TWuP3227l06RKXLl3i0qVL3H777QA86EEP+ux/+Id/+J1/+Id/+G2uuuqqq6666qqrrvrPgh70oAdx1VVXXXXVVVddddV/rWuuuebBAC/2Yi/22oBf7MVe7LWvueaaB//+7//+a998880AHDt2jGPHjrGzs0PXdWxvb7O1tcVzOzg44IEODg6438HBAS+Kra0tHmhrawuAra0tnp+DgwMALly4wN7eHpcuXQLgtttuA+AlX/Ilf/u+++679b777rv17Nmzz7jvvvtu/Yd/+Iff5qqrrrrqqquuuuqq/2roQQ96EFddddVVV1111VVX/c9y5syZB11zzTUPueaaax4McO+99z7ommuuefDDH/7wBwNcc801D374wx/+YIBjx47xn+nSpUucPXv21kuXLnHffffdeunSJc6ePXvrfffdd+uLv/iLc/bs2Wfcd999t953331PP3v27DO46qqrrrrqqquuuup/EvSgBz2Iq6666qqrrrrqqqv+97rmmmsezAOcOXPmQYAArrnmmgdzhQHxnAwI4L777ruVKwzo7NmztwLcd999t3LVVVddddVVV1111f9m6EEPehBXXXXVVVddddVVV1111VVXXXXVVVddddX/SVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9V/CN14alPszDNqQAAAABJRU5ErkJggg==) +![Rendered example of patternTransform 4](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAOfWElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qr/Vtdcc82DAc6cOfNggGuuuebBAGfOnHkQD3DNNdc8GOCaa655MM/lzJkzD+b5uOaaax7Mv+C+++67lRfi7Nmzt/IA9913360803333XcrwNmzZ5/BM9133323Apw9e/ZWgPvuu+9Wrrrqqquuuuqqq67674Ie9KAHcdVVV1111VVXXXXVf5xrrrnmwQBnzpx58DXXXPPgM2fOPAjgmmuuefA111zzYIAzZ848+JprrnkwL8Rf/uVfArBarXigS5cucb+9vT2e26VLl5DEv9WxY8d4bjs7OzzQzs4OAMeOHWO9XgPwsi/7srwg9913360809mzZ2+97777bgW47777bj179uwz7rvvvlsBzp49e+t99913K1ddddVVV1111VVX/UdBD3rQg7jqqquuuuqqq6666kV3zTXXPPjMmTMPfrEXe7HXArjmmmsefM011zz4zJkzD77mmmsezHP5y7/8S1arFQCXLl1ib28PgEuXLrG3t8d/BEn8V5LEi2pnZweAnZ0dAI4dOwbAzs4Os9mMl33Zl+WB7rvvvlsBzp49e+t99913K8A//MM//M59991369mzZ2+97777buWqq6666qqrrrrqqhcVetCDHsRVV1111VVXXXXVVc/pmmuuefCZM2ce/GIv9mKvBfDiL/7ir33mzJkHX3PNNQ/mmZ7+9Kdz1113AbC3t8fe3h633347/xUk8V9JEv9VdnZ22NnZ4dixYwDcfPPNrFYrXvZlX5b73XfffbeePXv21vvuu+/Wf/iHf/id++6779Z/+Id/+G2uuuqqq6666qqrrnpu6EEPehBXXXXVVVddddVV/59dc801D36xF3ux1z5z5syDXvzFX/y1X+zFXuy177vvvluvueaaB//lX/4ly+WSvb09Ll26xO233w6AJP4rSeK/miT+K0niRbGzs8POzg47OzvcfPPNrFYrXvZlXxaA++6779Z/+Id/+G2Af/iHf/id++6779Z/+Id/+G2uuuqqq6666qqr/v9CD3rQg7jqqquuuuqqq676/+Kaa6558JkzZx78Yi/2Yq/14i/+4q/9Yi/2Yq/NM/3BH/wBALfffju33347z00S/5Uk8V9JEv/VJPEfZWdnB4CbbrqJm2++mcc+9rEA3HfffbeePXv21vvuu+/W3/qt3/qef/iHf/htrrrqqquuuuqqq/7/QA960IO46qqrrrrqqquu+r/smmuuefBrv/Zrv9eLv/iLv/aLvdiLvTbAb/7mbzKbzfiHf/gHLl26xPMjif9KkvivJon/SpL4r3bs2DFuuukmTp8+zcu+7Mty33333QrwW7/1W9/9D//wD7/zD//wD7/NVVddddVVV1111f9d6EEPehBXXXXVVVddddVV/9dcc801D37t137t93qnd3qnzwb4zd/8TWazGX/4h3/ICyKJ/2qS+K8kif9qkvivJokXZGdnh5tuuokzZ87wMi/zMtx33323/sM//MNv/9Zv/db3/MM//MNvc9VVV1111VVXXfV/C3rQgx7EVVddddVVV1111f8F11xzzYNf7MVe7LU//MM//LsA/uAP/oDbb7+d22+/nRdEEv+VJPFfTRL/1STxX00S/xY7Ozs89rGP5ZVf+ZW57777bv2t3/qt7/7t3/7t77nvvvtu5aqrrrrqqquuuup/P/SgBz2Iq6666qqrrrrqqv/Nrrnmmge/9mu/9nu90zu902f/5m/+Jvfddx+33347z48k/qtJ4r+SJP6rSeK/gyT+I+3s7PAyL/My3Hjjjbf+wz/8w2//6I/+6Ofcd999t3LVVVdd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/5jHPe5xvNEbvRE7OzvcdNNNvO/7vi933HEHj3vc47jjjjvY29vjcY97HI973OP41V/9VXZ2drjpppt47GMfC8DOzg5nz57lsY99LDfddBN7e3sA3HHHHdx5553s7e2xt7fH3t4eL8je3h4Ae3t73O9xj3scL4gkAHZ2dnig7e1t/rX29/e5397eHg8kiX+vnZ0dtre3ufHGGwG46aabuPHGG9nb22N/f5+nPOUpAOzt7bG/v89iseCnfuqnuPPOO3lu29vbPOYxj+EVX/EV2dvb435f//VfD8CNN97IK77iKwLwF3/xF7/NVVddddVVV1111f9P6EEPehBXXXXVVVddddVV/x990zd909OvueaaB//Mz/wMr/M6r8M//MM/8Md//McA7Ozs8Cqv8io89rGP5W/+5m94qZd6Kfb29njc4x7HH//xH/OC7OzscNNNN3HTTTexs7PDTTfdBMDv/M7vcObMGXZ2drjpppvY29sD4I477gDgzjvvZG9vD4A77riDF5Uk/rNJ4kW1s7MDwPb2NjfeeCMAOzs77OzscOONNwKwt7fH/v4+T3nKU3it13otAPb29nj84x8PwJ133sldd93F87O9vc1jHvMYHv3oR7Ozs8Of/umf8oqv+Irs7e3xG7/xG9x5550APPrRj+b1X//1+Z7v+R7e673eC4C3e7u3E1ddddVVV1111VX//1C56qqrrrrqqquu+n/q7Nmzt15zzTUPvuaaa/ju7/5uPvIjP5Jjx47xK7/yK+zv7/Orv/qr/PEf/zGPfexjAdjZ2eGmm27ifd/3fdnb2+Nxj3sce3t73HHHHdxvb2+Pxz3ucTzucY8DYGdnB0ncdNNN3G9vb4+dnR0AHvvYx/I3f/M3POYxjwHgpptuAmBvbw+Avb099vb2ANjb22N/fx+Avb09APb39wHY29vjP8OxY8e43/b2Njs7OwBsb28DsLOzw87ODtvb2+zs7HC/vb099vf3ecpTnsIrvdIrcb+9vT329/e54447mM/n/ORP/iR33nknDySJB9re3uYxj3kMN954IzfeeCN7e3vs7Oywt7cHwPd8z/ewv78PwPb2Nq//+q/P9vY23/M938ONN94IwH333XcrV1111VVXXXXVVf8/Ubnqqquuuuqqq676f25vb49HPepR7O3tsbOzw/u93/vxuMc9jj/+4z9mb2+PP/7j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+9jHsre3x97eHnfccQd33nknd9xxBw8kiRfFzs4OANvb2+zs7LCzs8POzg4A29vbAOzs7ACQmQAcP36c/wi7u7sARAT329/fZ29vj/39fe535513AnDnnXfyb7G9vc3Ozg433ngjN954IzfeeCN7e3vceeed3HfffbzMy7wMd911F3t7e/zZn/0Zz88rvMIr8Iqv+Irs7+8D8Kd/+qc84QlPAGB7e5v3fM/35Hd+53e49tprefSjH80//MM//PZnfuZnvg5XXXXVVVddddVV/z+gBz3oQVx11VVXXXXVVVf9f/FN3/RNT7/mmmse/Ku/+qs89rGPZZomTp48yY//+I+zt7cHwM7ODm/4hm/ITTfdxB133MHOzg6Pe9zjePzjH8/e3h7PbWdnh52dHW688UZuuukmbrrpJn72Z3+Whz/84Tz2sY8FYG9vjzvvvJM77riDvb097rzzTv6jSWJnZ4cH2t7e5kWxv7/P/fb29nh+JPHvsb29zc7ODjfeeCMAN954IzfeeCN7e3vs7+/zlKc8hdd6rddib2+PJzzhCdx5553cddddPD/b29s8+tGP5hVf8RXZ399ne3ub/f19fuM3foM777wTgO3tbV7v9V6PcRxZrVbceeedvN7rvR733XffrR/yIR/yEK666qqrrrrqqqv+f0APetCDuOqqq6666qqrrvr/4HVe53Xe+x3f8R0/65prrnnwH//xH/O4xz2Ot3/7t+fpT386D3nIQ/jxH/9x9vb2uN9jH/tYHvvYx3LTTTdxxx13sLOzwx133MHjH/947rjjDl6QnZ0dbrrpJm688UZ2dna46aabAPibv/kbTp06xU033QTA3t4ee3t77O/vc8cdd7C3twfAnXfeyb+WJP4zSeJFtb29zc7ODjfeeCMAN954IzfeeCMAe3t77O/v85SnPIXXeq3XAmBvb48nPOEJ3Hnnndx5553cTxLPbXt7m0c/+tG84iu+Ivv7+2xvb7O/v89v/MZvcOedd3K/7e1t3uZt3obz589z6tQpvvd7v5dHP/rRvOIrviKtNb7yK7/ydf7hH/7ht7nqqquuuuqqq676v4/KVVddddVVV1111f8TL/ZiL/Za11xzzYMBHvvYx/LHf/zH/PiP/zhv//Zvz1/91V/x9m//9jzucY/jj//4jwF43OMex+Me9ziOHTvGK73SK3HTTTdx9uxZ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93t5fra3t3nMYx7DK7zCK7C/v8/9vvEbv5EHet3XfV1uvPFGvud7vodjx44BsL29ze7uLtdcc82DX+d1Xue9f+u3fuu7ueqqq6666qqrrvq/BT3oQQ/iqquuuuqqq6666v+aD//wD/+ul3u5l3vvxz3ucbzyK78yP/7jP84dd9zBTTfdxN13381HfMRH8Md//Mf88R//MZK4387ODm/wBm/AX/7lX/KyL/uy7Ozs8LjHPY4777yTO+64gxdkZ2eHm266iZtuuonHPOYxAPzu7/4uD33oQ7npppvY29sD4M477+SOO+5gb2+PO++8kxdGEv9ZJPGfTRL3297eBuDRj340ADfeeCM33ngjAPv7+/zVX/0Vr/mar8n+/j57e3vceeedPOEJT2B/f58XZHt7m0c/+tG84iu+Ivv7+/zlX/4lL/uyL8tv/MZvcNddd/FAr/u6r8ujH/1ovud7vodjx45x11138ehHP5rXfd3XBWB/f5/bbrvttz/zMz/zdbjqqquuuuqqq676vwU96EEP4qqrrrrqqquuuur/kmuuuebB3/RN3/T0vb09fvVXf5WXf/mXp9bKj//4jwPw2Mc+ljd8wzdkb28PgJ/4iZ9gb2+PB9rZ2eEN3uANuOmmm3jc4x7HYx/7WPb29viTP/kTHve4x/HcJPFAOzs73Hjjjdx0001sb29z0003AfA3f/M3nDp1iptuugmAvb099vb22N/f54477gBgf3+fO++8k/8skvjPsL29DcDOzg433ngjADfeeCM33ngjAPv7+wD81V/9FS/zMi/D9vY2+/v73Hnnnezt7XHXXXdx55138sJsb2/z6Ec/mhtvvJEbb7yR/f197vcbv/Eb3HXXXTzQ9vY2r/u6r8vOzg7b29v89E//NHfddRcAb/VWb8U4jpw9e5ZXeIVX4L777rv167/+69/nH/7hH36bq6666qqrrrrqqv87qFx11VVXXXXVVVf9H/PhH/7h3wWws7PD3t4eD37wgwG46aabuOOOO3jc4x7HHXfcwdu//dvzV3/1V7zd270dj3vc4/iTP/kT7re3t8dP/MRPsLOzw0033cRjH/tY/vqv/5rHPOYxvNIrvRJ33HEHd955J49//ON5fvb29tjb2+Pxj388ADs7O2xvb7Ozs0Pf99xxxx3cdNNN7OzssLOzw9/8zd/wmMc8BknceOONAOzt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z3gGL/VSL8VNN93EHXfcweMe9zh2dnZYr9e80iu9Ent7e9xxxx0A7O3t8Sd/8ie80iu9EgBPe9rTeLu3ezse97jH8Sd/8idI4n57e3vs7e3x+Mc/np2dHfb397npppv467/+a17plV6JV3qlV+LOO+/kjjvu4PGPfzzPTRIAe3t77O3tceedd/Knf/qn7OzsAHDjjTfSdR0AN954Izs7O/zO7/wOD3rQg3jMYx7DjTfeCMDe3h4Ad955JwB33nknAPv7++zt7bG/v8+/lyT+M0hie3ub7e1tdnZ22N7eBuCGG24A4MYbbwRgf38fgKc//ek89alP5cYbb2R/fx+Au+66i8ViwU//9E9z11138UCSeEG2t7fZ3t7mhhtu4BVe4RXY39/nr/7qr3jUox7FE57wBC5evMjP/MzP8IK8/Mu/PK/wCq/AM57xDPb392mt8Vu/9Vs80A033MBbvuVb8ju/8ztsbm5y1113AXDDDTdwww038DM/8zPcfffd3HDDDQDs7+/zMi/zMu/9Yi/2Yt/zD//wD7/NVVddddVVV1111X8/9KAHPYirrrrqqquuuuqq/wk+93M/97de7MVe7LX/+I//mFd+5Vfmjjvu4Md//Md5wzd8QzY3Nyml8OM//uNIAuCVXumVGIaBl37pl+Zxj3scf/Inf8ID7ezs8JjHPIbHPvax3O/xj388f/Inf8ILsrOzw4033shjHvMYbrrpJn73d3+Xl37plwbgzjvv5I477mB/f58777yTf62dnR1uvPFGAG688UZ2dna48cYbeW533nknADfeeCP329vbA2B/f5+9vT3ut7+/z97eHvfb39/ngfb393lR7ezscL/t7W0Atre3ud/Ozg7b29sA7OzssL29zf329/cB2Nvb48Ybb+SB9vf3AbjzzjvZ39/nzjvv5K677uJfIonntr29zaMe9ShuvPFGbrjhBvb39/mrv/orXvM1X5O77rqLO++8kz//8z/nhXn5l395XuEVXoH9/X22t7d54hOfyG/91m/x3G644Qbe8i3fkr/5m79hPp/zW7/1W9zvLd/yLRnHkdVqxW/91m/xOq/zOlx77bU85SlP4eVf/uW57777bv2QD/mQh3DVVVddddVVV13134/KVVddddVVV1111f8Ar/M6r/PeL/ZiL/baABcvXgRgZ2cHgD/+4z/mfd/3fQF4sRd7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a73Wa3HDDTfwu7/7u7zMy7wMv/3bv83dd9/N/ba3t3mt13ottre3+emf/mmOHz/OPffcA8D111/Pm7/5m/OzP/uzRAR333037/zO78yFCxe49dZbea3Xei3u93Zv93biqquuuuqqq6666j8Glauuuuqqq6666qr/RKUUdnZ2eOxjH8vjHvc4HvvYx/LXf/3XvMEbvAG/9mu/xh133MGf/MmfsLOzw97eHjs7O7z3e783P/mTP8ne3h4Ae3t7/Pqv/zqPecxj2Nvb42/+5m94u7d7Ox7/+MfzuMc9jjvvvBNJAOzt7bG3t8fjH/94dnZ22Nvb48Ybb+RpT3sar/iKr8grvuIrcuedd3LnnXfy+Mc/nucmif39fZ7whCfwhCc8AYDt7W3W6zV7e3sA3HjjjQA84xnP4DGPeQw33ngje3t77O/vs7e3x5133sn+/j533nknkvi32N/fB2B/f5/nJokXxfb2Nv+S/f19tre3OTg44D+aJF5U29vbADzqUY8C4IYbbuCGG24AYH9/n1tvvZUbbriB+91111201jg8POQHf/AHeVHccMMNXH/99bz8y788+/v7/PVf/zU33HADT3ziE7njjjt4/OMfz/Ozvb3Ny73cy/HIRz6S3/3d32V7e5vNzU1+6Id+iAfa3t7mzd/8zbnf8ePHueeeewC4/vrrefM3f3P+5m/+hhtvvJG//Mu/5JGPfCTb29sA3HrrrTzQNddc8+D77rvvVq666qqrrrrqqqv+/dCDHvQgrrrqqquuuuqqq/4jvM7rvM57f/iHf/h3ff3Xfz0f/uEfzh133MHjH/94rrnmGh7ykIfwXd/1XQA89rGPZTab8dIv/dL8xE/8BHt7ewAcO3aMt33bt+Wv//qveemXfmke//jH8yd/8ic80M7ODo95zGP48z//c17jNV6Dl3zJl+Txj388j3/847nzzjt5fnZ2drjxxht5zGMew4033sjf/u3f8pIv+ZLs7e1x5513cuedd/L4xz8eSbwotre32dnZYXt7mxtvvJEbb7yRn/u5n+PYsWM86EEP4uTJk9x4440A7O/vs7e3x/7+PnfeeSf7+/vs7e2xv7/Pv4Uk/qNJ4j+aJJ6f7e1ttre3ueGGGwC44YYbuOGGG7jf/v4+t956K7u7u9x222285Vu+Jfv7+9x1113cdddd3H333byotre32d7e5vrr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qquu+vejctVVV1111VVXXfUfZLlcPvhv/uZveNCDHsTv/u7v8h7v8R7s7++zvb3NxYsXedu3fVt+8id/kq2tLWazGX/913/NG7zBG/D4xz+eP/mTP+Hxj388Ozs73HPPPdx22228xmu8Bo95zGP49V//de68804A9vb2+Mmf/El2dnbY39/nr/7qr3iZl3kZHvOYx3DnnXfy+Mc/njvvvJP77e3tsb+/zxOe8AS2t7dZr9fs7e1x44038jd/8zc89KEP5RVf8RXZ29vjzjvv5M477+QJT3gCL8jBwQFPeMITeMITngDA9vY2ADfeeCNd13HnnXdy4403sr29ze/+7u9yyy238OhHP5qdnR22t7cB2N/fZ29vj/39ffb399nf32dvbw+Au+66i38PSfxHksS/1vb2NgDb29tsb2+zvb3N9vY229vb3HDDDdxvf3+f/f19nvrUp/KUpzyF66+/nv39ffb397nrrrtYLBb83M/9HHfddRf/EkkAbG9vs7W1xQ033MAjH/lItre32d/f56//+q+54YYb2N/fZ2Njg1orP//zP8/zs729zSMf+Uhe7uVejv39fX7v936Pl37pl+bSpUv88A//MA+0vb3Nm73ZmwHwcz/3c7z8y788s9mMu+++G4BHPvKRvNZrvRZ/+7d/y5kzZ7j22mvZ2tritV7rtXjGM55B3/fs7+/ziEc8gp/+6Z/mPd7jPfjd3/1dWmuvDXwOV1111VVXXXXVVf9+6EEPehBXXXXVVVddddVV/xFe7MVe7LU/93M/97d4pr/5m7/hIQ95CL/2a7/GK73SK7G9vY0kfvInfxKAxzzmMazXa17zNV+TP/mTP+FP/uRPuN9jHvMYXumVXom/+Zu/4TVe4zV4/OMfz5/+6Z+yt7fHA+3s7PCKr/iK/NZv/Rav8RqvwUu8xEuwt7fH4x//eP70T/8USTw/29vb3Hjjjdx444085jGPAeDv/u7veImXeAn29vYAeMITnsCdd97JnXfeyf0k8aLY3t5mZ2cHgEc/+tFsb28DcOONN/ILv/ALANxyyy0cO3aMUgo33ngj99vf3wdgb2+P/f197nfXXXdxv729PQD29/cB2N/fRxL/kba3t5EEwPb2NgDb29sAbG9vA7C9vc329jYA29vbbG9vc7/9/X0A9vf3edrTngbAbbfdxru+67uyv7/P/v4+d911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P/7x/Nqv/RoAOzs7vO3bvi1/8zd/w2u8xmvw+Mc/nj/90z9lb2+P+z3mMY/hSU96Erfccguv+ZqvCcCdd97JE57wBO68806e2/b2No95zGO48cYbufHGG/m7v/s7XuIlXoK9vT3uvPNO7rzzTu6880729/e5nySen+3tbW688UZuvPFGtre3ufHGG/mFX/gFbrnlFk6ePMmNN94IwP7+PgB33nknd911FwB7e3vcdddd/HtJ4j+SJP4jSeKF2d7eBuCGG25ga2uL7e1tdnZ2uP766wHY399nf3+fpz3taQC8+qu/Ovv7+zzpSU8C4K677uLuu+/mX7K9vc0jH/lItre3eeQjH8n+/j5//dd/zWu8xmuwv7/Pk570JJ70pCdxcHDAc9ve3uYRj3gEL/dyL8f+/j5//dd/ze/93u/xaq/2ajzpSU/iftvb27zsy74sj3zkI/m93/s9XvqlX5rf/d3f5e677wbgzd7szbj++usB+Mu//Ev+8i//kjd7szdja2sLgLvvvptHPvKRAOzu7vJXf/VX3/31X//178NVV1111VVXXXXVfxz0oAc9iKuuuuqqq6666qr/SO/4ju/4We/0Tu/02QA/93M/x1u8xVvwa7/2azzxiU/kPd/zPQH47u/+bm688Ubuuece3uM93gOAn/zJn2R/f5+dnR0e/ehH8+d//ue8+Zu/OSdOnODxj388f/qnf8oD7ezscNddd/ESL/ESvORLviS33HILe3t7/Omf/ilPeMITeH62t7d5zGMew4033siNN94IwJ133smNN97I3t4ed955J0984hO58847eVFsb28DcOONN3LjjTeyvb3Nzs4OP/dzP8exY8e45ZZbOHnyJDs7O2xvbwOwv7/P3t4e+/v7ANx1113s7e0BsL+/z/7+Pi+IJP4jSeI/2s7ODgDb29tcf/31AGxvb7O9vc0NN9zA/fb399nf3+dpT3saALfddhtv8RZvwf7+PnfddRcAd999N3fffTcviu3tbba2trjhhht45CMfyfb2Nvv7+2xvbwOwv7/Pk570JJ785Cezv7/P8/OyL/uyPOpRj2Jra4tLly7xe7/3e/zt3/4tL/mSL8ndd9/N/ba3t3nEIx7By73cy3Hp0iWOHTvGX/7lX/KXf/mXAGxtbfFmb/ZmAPzMz/wMJ06c4O677+bN3uzN2Nra4md+5me4+eab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d3mZl3kZbrzxRvb29rjrrru48847ecITnsALs729zY033siNN97I9vY2N954I7/wC7/ALbfcwsmTJ7nxxhsB2N/fZ29vj/39fe666y729va46667+NeSxL9ke3sbgP39fba3t9ne3uZ+29vbPJAkXhT7+/s80P7+PgD7+/s8kCT+I2xvbwNwww03sL29zfXXX88NN9zA/fb39/mbv/kbAF791V+d/f19nvSkJwHwF3/xF7wgktje3mZra4vrr7+el3u5lwPg0qVL/O3f/i0v/dIvzZOe9CTuvvtu7r77bh5oe3ubRzziEbzcy70c+/v7/PVf/zW/93u/xxu/8Rvzl3/5l9zv+uuv5zVf8zUB2N7e5klPehK/+7u/C8DLvuzL8rIv+7L87u/+Ltdddx1/+Zd/yTu/8zvzjGc8g1OnTrG1tcXv/u7v8pqv+Zo84xnP4GM/9mPFVVddddVVV1111X8O9KAHPYirrrrqqquuuuqq/ywf/uEf/l0nT55875d6qZfiGc94Bg960IP4+q//el7yJV+Sl37pl+bXfu3XuOmmm3ilV3ol9vb2APipn/op9vb22NnZ4eDggJd8yZfkNV7jNdjb2+PXf/3XufPOOwHY2dnhxhtv5DGPeQw33ngjd955J9vb29x555084QlP4M477+S5bW9v85jHPIYbb7yRG2+8kb/7u7/jJV7iJdjf32d/f5877riDu+66izvvvJMXZnt7G4Abb7yRG2+8ke3tbW688UYA/u7v/g6AkydPcuONNwKwv7/P3t4e+/v77O/vs7+/z97eHvv7++zv7/PcJPEfRRL/kSTxr7G9vc329jbb29tsbW0BcMMNN3DDDTdwv/39fS5evMhtt93Gq7/6qwOwv7/Pk570JADuuusu7r77bv4l29vbPPKRj+SGG27g+uuvZ39/n1tvvZWXeImXYH9/nyc96Uncfffd3H333Ty37e1tHvGIR/ByL/dy7O/v89d//df8/u//Pm/0Rm/EX/7lX3K/ra0tXuu1Xovrr7+e3/u93+OlX/ql+d3f/V3uvvtutra2eLM3ezMAtre3+cu//Evuvvtu3uzN3oxnPOMZfP/3fz/v+77vyzAMPOhBD+Jv/uZvuHDhwnd//dd//ftw1VVXXXXVVVdd9Z8DPehBD+Kqq6666qqrrrrqP8uLvdiLvfb7vd/7/daxY8f4/u//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QbzES7wEe3t7POEJT+Cuu+7izjvv5IG2t7e58cYbefSjH82NN97IL/zCL/ASL/ES3HLLLezv7wNw5513cuedd/LEJz6Rf8n29jbb29vs7Oxwww03sL29zc7ODj/3cz/HsWPHuOWWWwA4deoU29vbbG9vA7C/vw/A/v4++/v7AOzt7bG/vw/A/v4+APv7++zv7/NAkviPIonnZ3t7m/ttb2+zvb0NwNbWFgA7OztsbW2xvb3N9vY299vf3wfg1ltv5dKlSwDcdtttvMVbvAX7+/s86UlPYnt7m7vuuou7776bF0YS29vbbG1tcf3113PDDTdw/fXXs7+/z8WLF/m7v/s7XvM1X5ODgwPuuusunvzkJ7O/v88DbW9v84hHPIJHPvKRbG9vc+nSJX7v936P13qt1+Iv//IvefKTnwzA1tYWj3zkI3nZl31Z9vf3+eu//mt+7/d+j1d7tVfjyU9+Mtdffz1v9mZvxv7+PpJ40pOexD333MObvumb8oxnPIPv//7v56M+6qMA+O7v/m7e/d3fnUuXLvFzP/dz7/Nbv/Vb381VV1111VVXXXXVfw30oAc9iKuuuuqqq6666qr/Ktdcc82DX/VVX/Xply5d4sM//MP5+q//et7zPd+TnZ0dHv/4x3Pu3Dle4zVegz/5kz/hCU94Aq/4iq/IuXPneI3XeA329vb4jd/4De68804e/ehH86QnPYmXeImX4KVe6qUAeMITnsDjH/949vf3Adje3uYxj3kMj370o9nZ2eHOO+/kxhtvZH9/nyc84Qnceeed3HnnnTzQ9vY2Ozs73HDDDdx4443ceOON/MIv/AK33HILL/ESLwHA/v4+d955J3fddRd7e3vcddddvCi2t7cBuPHGGwG48cYb2d7e5md/9mcBOHbsGMeOHQPg5ptvBuDUqVMAbG9vs729zXPb39/ngfb397nf/v4+L6rt7W2e2/b2NgDb29s8P/v7+wDs7+9z/vx5Ll26BMClS5e4dOkSly5d4tKlS7zne74nd999NwD7+/vs7+9z991386LY3t4G4JGPfCQAL/dyLwfA/v4+Fy9e5LbbbuPVX/3V2d/f50lPehJ33303d999N89te3ubRzziETzykY9ke3ub/f19tre32d/f58lPfjJPetKTODg4AGBra4tHPvKRvOzLviz7+/v89V//Nb//+7/Pq77qq/Lk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gwO2trZ48pOfzNbWFtdffz33Ozg44Kd/+qd5jdd4DR70oAfxIR/yIQ+57777buWqq6666qqrrrrqvxd60IMexFVXXXXVVVddddX/BB/+4R/+XQ996EPf+/jx4xw7doy9vT12dnb4hm/4Bt793d8dSdx555385m/+Ji/5ki/Ja7zGa7C3t8dv/MZvsLe3xyu+4ivymMc8hjvvvJOdnR3uvPNOnvCEJ3DnnXeyvb3Nox/9aG688Ub+6q/+ipd5mZfhxhtvZH9/n8c//vHcdddd3HnnndxvZ2eHG2+8kUc96lHceOON/MIv/AK33HILL/ESLwHA/v4+d955J3fddRd7e3vcddddPDdJbG9vA3DDDTcAcOONN7K9vc329jbb29v84i/+Ira55ZZbOHbsGLVWtre32d7e5n77+/sA7O/vA7C/vw/A/v4+APv7+9xvf3+fB9rf3+eBJPGCbG9v80Db29sAbG1tcb/t7W22t7eRxNbWFtvb2zzQ/v4+ABcvXuS2224D4NKlS7zZm70Z+/v77O/vc3BwwP7+PnfddRcHBwfs7+8jiedne3ubRzziEQC83Mu9HAD7+/tcvHiR2267jVd/9Vdnf3+fJz3pSdx9993cfffdSAJga2uLRz7ykTziEY9ge3ub/f19/vqv/5qXfumX5i//8i+5++67OTg4YGtri5d92ZflkY98JPv7+/z1X/81D3/4w/mrv/orAF7zNV+Tra0tfu/3fo/f+73f49Vf/dV5zdd8TS5dusT3f//382Ef9mFcunSJY8eOcenSJWzzV3/1V9/99V//9e/DVVddddVVV1111X8/9KAHPYirrrrqqquuuuqq/wmuueaaB3/TN33T0wH29vbY2dnhGc94Bg960IPY29vjb/7mb3iN13gNHv/4x3PnnXfypCc9iZd4iZfgNV7jNdjb2+M3fuM32Nvb4xVf8RV5zGMew9/93d/xEi/xEuzv7/P4xz+eP/uzPwNge3ubRz/60bziK74iAHfeeSc33ngj+/v73Hnnndx111084QlP4H7b29tsb2+zs7PDox71KH72Z3+WW265hVtuuYWTJ09y4403sr+/D8Cdd97JXXfdxf7+PnfddRcvzPb2NgDb29tsb2+zvb3Nzs4O29vbAGxvb7O9vc0v/uIvsrOzA8CxY8c4duwYAMeOHSMiANje3uY/y/7+PpnJpUuXALh06RIAly5dYm9vjzd90zdlf38fgP39fQ4ODtjf32d/f5/9/X0ODg7Y39/nBZHE9vY2W1tbXH/99QDccMMNXH/99QDs7+/zN3/zNwD83d/9HW/91m/NXXfdxd13383dd9/N/ba3t9ne3ub666/nZV/2ZQHY399ne3ub/f19nvzkJ3P33Xdz9913s7W1xSMf+Uge+chHsrW1xd/93d/xEi/xEvzlX/4lT3rSk5DEa77ma3L99dfze7/3e/ze7/0eb/zGb8z111/P9ddfz+/93u/xGq/xGgA84xnP4EEPehAHBwdsbW0B8CEf8iEPue+++27lqquuuuqqq6666r8fetCDHsRVV1111VVXXXXV/xQf/uEf/l2llPd+zdd8Tfb29tjZ2eH3fu/3eOmXfmm2t7cBuHTpEpK488472d/f58///M95jdd4DV7iJV6C/f19fuM3foO9vT0e/ehH85jHPIa//uu/5qVf+qUBuPPOO3nCE57AnXfeyfb2Njs7Ozz60Y/mxhtv5Hd/93e55ZZbeImXeAn29/fZ29vjrrvu4s477+Suu+7igba3t7nxxhu54YYb+K3f+i12dnY4fvw4t9xyC6dOneKGG24AYH9/n/39ffb397nzzjvZ399nf3+f/f19XhSS2N7eBmB7exuA7e1tALa3t9ne3uaBtre3eaDt7W1eVPv7+zzQ/v4+APv7+9zv4OCA/f19AA4ODtjf3+dfY3t7m62tLW644QYAbrjhBq6//nrut7+/z9/8zd8A8IxnPIPbb7+dN3iDNwDg7rvv5u677+aBtre3ecQjHsENN9zA9ddfz/7+PhcvXuQZz3gGL/3SL82Tn/xk7r77bu6++24Atra2eOQjH8nLvuzLsr+/z1//9V/z0i/90jz5yU/mL//yL9na2uK1Xuu1uP7663nGM57Bz//8z/Mqr/IqALzsy74sly5dopTC1tYWAH/7t3/LS77kS3JwcMDW1ha/+7u/S2vtu7/+67/+fbjqqquuuuqqq676nwE96EEP4qqrrrrqqquuuup/imuuuebB3/RN3/T03/3d3+Vv//Zvec/3fE92dna4397eHt/3fd/HS77kS/Iar/Ea7O3t8ad/+qfs7Ozw53/+57zGa7wGL/ESL8H+/j5/+qd/yp133smNN97Iox/9aP7qr/6KBz3oQbzES7wE+/v73HnnnTzhCU/gzjvvBGB7e5tHP/rR3Hjjjdx44438/u//Pg95yEO48cYb2d/f58477+Suu+5ib2+Pu+66iwfa3t4G4MYbb+SGG25gZ2eHG264gfv93d/9HadOneKGG27gfvv7++zv77O/v8/e3h77+/vs7++zv7/P/v4+kviPIon/KJJ4fra3twHY2tpie3ub7e1tAK6//nq2t7fZ3t4GYH9/H4Bbb72Vl3iJlwBgf38fgCc96UkA3H333dx99908t+3tbR7xiEdwww03cP311wOwv7/P3/zN3/Dqr/7q7O/v8+QnP5m7776bu+++G4CtrS0e+chH8rIv+7IA/N3f/R3PeMYzeK3Xei3+8i//kic/+clcf/31vOZrvibb29v83u/9Hn/3d3/HK7/yK/PkJz+ZN3uzN2NrawuAg4MD9vf3uf7667nfwcEBP/3TP81rvMZr8KAHPYgP+ZAPech99913K1ddddVVV1111VX/M6AHPehBXHXVVVddddVVV/1P8o7v+I6f9cqv/MqfDfCgBz2Ivb09dnZ2+IZv+Abe4z3eg/t93/d9Hy/5ki/Ja7zGa/D4xz+eJzzhCdx444085jGPYXt7G4D9/X2e8IQn8Kd/+qdsb2/z6Ec/mhtvvJG/+qu/4mVe5mW48cYb2d/f58477+QJT3gCd911FwDb29vceOON3HDDDWxvb/PXf/3X3HLLLZw8eZIbb7yR/f199vb22N/f56677uIJT3gC95PE/ba3t9ne3mZ7e5sbb7yR7e1ttre32d7eBuD3f//3OXbsGKdOnWJ7e5vt7W3ut7+/D8D+/j77+/vcb39/n/39fQD29/e53/7+Pvfb39/nfpJ4UW1vb/NA29vbAGxvbwOwvb0NwPb2NltbWwBsb2+zvb3NA+3v77O/v8/58+e5dOkSr/7qrw7A/v4++/v73H333QDcfffd3H333Tw/29vbbG1tcf3113PDDTdw/fXXA7C/v8/f/M3fAPBSL/VSPPnJTwbgL//yL7nf1tYWj3zkI3nEIx7B9vY2ly5d4vd+7/d4rdd6LZ785Cfzl3/5l2xtbfHIRz6SRzziEWxvb/N7v/d7/N3f/R2v/MqvzJOf/GRe9mVflkc84hH87d/+LT//8z/PG7/xG/OyL/uyHBwc8NM//dO8+7u/O5cuXeLYsWM84xnPAOBP/uRPPudHfuRHPpurrrrqqquuuuqq/znQgx70IK666qqrrrrqqqv+Jzlz5syDvvmbv/nWr//6r+c93uM9+P7v/37e/M3fnAc96EEA/N7v/R6v8RqvweMf/3gAfuu3fos3f/M35/jx49x111084QlPYHt7m1d8xVfkr//6r3npl35pAO68806e8IQncOedd7K9vc2NN97IK77iK7K9vc1tt93GLbfcwv7+PnfeeSd33XUXT3jCE7jf9vY2N954IzfccAPb29v8zu/8Drfccgu33HILt9xyCwD7+/vcddddANx5553s7+9z11138fxsb28DsL29zfb2Ntvb2+zs7LC9vc329jbb29vc7xd/8RfZ2dnh2LFjAJw6dQqA7e1ttre3+c+2v7/P/fb39zl//jwAly5dAuDVX/3Vud/+/j77+/scHBywv78PwF133cXBwQH7+/vcTxIPtL29zdbWFtdffz033HAD119/PQD7+/tcvHiR2267jdtuu423eIu34ElPehIAf/mXfwmAJLa2ttje3ub666/nZV/2ZQG4dOkSx44dY39/nyc/+ck86UlP4uDggK2tLR75yEfysi/7suzv7/PXf/3XvPRLvzRPfvKTefKTn8wjHvEIXvZlX5ZLly7x/d///bzhG74h+/v7vOzLviy/93u/x2u8xmsA8IxnPIPv//7v58M//MP5+q//ej7t0z6ND/mQD3nIfffddytXXXXVVVddddVV/3OgBz3oQVx11VVXXXXVVVf9T/PhH/7h33VwcPDeb/EWb8EznvEMHvSgB/F7v/d7vNRLvRQ7Ozvs7e1xvzvvvJP9/X3+/M//nDd/8zfnxIkT3Hnnnfzpn/4pN954I49+9KP5q7/6K17yJV+SW265hf39fZ7whCfw+Mc/nv39fba3t3n0ox/NjTfeyF//9V9zyy238BIv8RLs7++zv7/PnXfeyZ133sldd93F/ba3t7nxxhu54YYb2N7e5md/9me55ZZbuOWWWzh16hQ33HADAPv7+wDcdddd3HnnnQDs7+9z11138cJIYnt7G4Dt7W22t7e53/b2Ntvb2wBsb29zv+3tbe63vb3Nv8X+/j4PtL+/D8D+/j6S2N/fB2B/f5/9/X0ADg4O2N/f50Wxvb3N1tYWN9xwAwA33HAD119/PQD7+/scHBzw1Kc+FYBnPOMZvO7rvi533XUXd999N3fffTcPtL29zSMf+Uiuv/56rr/+evb397l48SLPeMYzeOmXfmme/OQnc/fdd3P33XeztbXFIx/5SB7xiEewvb3NpUuX+L3f+z1e67Vei7/8y7/knnvu4RGPeAQv+7Ivy6VLl/i5n/s5HvvYxwLwsi/7shwcHLC1tcX9/vZv/5aXfMmX5NKlSxw7dozv+77v46abbvrur//6r38frrrqqquuuuqqq/5nQQ960IO46qqrrrrqqquu+p/mmmuuefA3fdM3Pf13f/d3ec3XfE0uXbrEsWPH+L3f+z1e4zVeA4Bv+IZv4CVf8iV5jdd4Dfb29vjTP/1TdnZ2+PM//3Pe/M3fnFtuuYUnPOEJPOEJT2Bvb49HP/rRPOYxj2F7e5s777yTG2+8kTvvvJMnPOEJPOEJT0AS29vbPPrRj+aGG27gxhtv5Pd///d5yEMewo033sj+/j533nknd911F3t7e9x111080Pb2NjfeeCM33ngj29vbbG9vs729zf3uuusubrjhBu63v7/P/v4++/v77O3tsb+/z/7+PpK46667+I8gif8IkviXbG9vA7C1tcX29jbb29tsb2+ztbXFDTfcwP329/cB2N7e5n77+/scHBxw1113cXBwwN13383+/j4PtL29zSMe8QhuuOEGrr/+egD29/f5m7/5G1791V+d/f19nvzkJ/OkJz2Jg4MDtra2eOQjH8n111/P9ddfz/7+Ptvb2+zv7/PkJz+ZJz3pSQC83Mu9HI94xCO4dOkSv/d7v8cNN9zAPffcw8u8zMtw/fXX83u/93u8zMu8DABbW1v83M/9HG/xFm/BpUuXOHbsGL/7u7/La77ma/J2b/d24qqrrrrqqquuuup/HvSgBz2Iq6666qqrrrrqqv+J3vEd3/GzXvmVX/mzL126xEu+5EvyjGc8gwc96EEAXLp0iYjANt/3fd/HS77kS/Iar/EaPOEJT+AJT3gCN9xwA6/4iq/I3/3d3/ESL/ES7O/v86d/+qfceeed3Hjjjdx44408+tGP5vd+7/d46Zd+aQD29/d5whOewJ133sn+/j7b29vceOON3HDDDWxvb/PXf/3X3HLLLZw8eZIbb7yR/f199vb22N/f56677uKuu+5if3+fB9re3mZ7e5vt7W1uvPFGtre3AbjhhhsA+IVf+AVuueUWjh07Rq2VG264gfvt7+8DsL+/D8D+/j4A+/v77O/vA7C/v8/99vf3Adjf3wdAEv9a29vbPND29jYA29vbAGxvbwOwvb3N1tYWANvb22xvb3O//f19AC5evMilS5e4dOkSr/7qrw7A/v4+BwcH3HXXXQA8+clPZn9/n+e2vb3N1tYW119/PTfccAPXX389APv7+/zN3/wNt912G2/xFm/Bk5/8ZPb393nyk58MwNbWFo985CO5/vrruf7669nf3+ev//qveY3XeA2e9KQncffdd/PkJz+Zl33Zl+URj3gE29vb3Hbbbfz8z/88ly5d4qVe6qV4xCMewSMe8Qie8Yxn8AM/8AO8z/u8D9dffz2XLl2ilMLW1hbPeMYzeNCDHsQznvEMAP74j//4s3/0R3/0c7jqqquuuuqqq676nwc96EEP4qqrrrrqqquuuup/omuuuebBX/RFX/T0iODixYs86EEP4vd+7/d4jdd4DQB+7/d+j9d4jddgb2+PO++8k9/6rd/izd/8zTlx4gR33nknT3jCE7jhhht4xVd8RX7v936P13iN12B/f5/HP/7x3HXXXezt7XHjjTfy6Ec/mhtvvJHf//3f56Ve6qXY3t5mf3+fJzzhCdx5553cddddAGxvb3PjjTdyww03sL29ze/8zu9wyy23cMstt3DLLbcAsL+/z/7+Pvv7+9x5553s7+9z11138fxsb2+zvb3N9vY229vb7OzssL29zfb2Ntvb29zvF3/xF9nZ2eHYsWMAnDp1CoDt7W22t7d5Ue3v7wOwvb3Nv8b+/j7329/fZ5omLl26xKVLlwB49Vd/dQD29/cB2N/f5+DggP39fQDuuusuDg4OODg44PnZ3t7m+uuvZ2trixtuuIHrr78egP39fS5evMhtt93Gbbfdxlu8xVvwpCc9CYC/+qu/4n5bW1s88pGP5Prrr+f6669nf3+fv/7rv+Y1XuM12N/f58lPfjJ/+Zd/ydbWFo985CN52Zd9Wfb39/nrv/5rXuZlXoYnPelJPPnJT+YRj3gEL/uyL8ulS5f4uZ/7OV7plV6Jra0trr/+en7v936P13iN1wDgGc94Bg960IN4xjOewYMe9CAAPuRDPuQh9913361cddVVV1111VVX/c+DHvSgB3HVVVddddVVV131P9U7vuM7ftYbvdEbffb3f//38xZv8RY86EEP4oG+4Ru+gTd/8zfnxIkT3Hnnnezv7/Pnf/7nvPmbvzknTpzgzjvv5M477wTg0Y9+NH/1V3/Fy7zMy3DjjTeyv7/P4x//eP7sz/6MnZ0dbrzxRm644QZ+67d+i5d4iZfgIQ95CDfeeCP7+/vceeed3HXXXezt7XHXXXcBsL29zfb2NjfeeCM33ngjN9xwA/e77bbbOHHiBNvb2+zv7wNw1113AXDnnXeyv7/PXXfdxQNJ4oG2t7cB2N7eZnt7m/tlJtvb2wBsb28DsL29zbFjxwDY3t7m32p/f5/7Xbp0iYODAwD29/cB2N/f59ixY+zv77O/vw/AwcEB+/v7vDDb29tI4vrrr2dra4vt7W22t7e5/vrrAdjf3+fixYvccsstAOzv73NwcMBdd93F3Xffzd133839tre3eeQjHwnAy77sywKwv7/PX//1X3Pbbbfxuq/7utx999385V/+JVtbWzzykY/kEY94BNvb21y6dIm//du/5aVf+qV58pOfzJOf/GQe8YhH8LIv+7JcunSJn/u5n+Oxj30sAC/7si/LpUuXODo64vrrr+eBnvGMZ/D93//9fNqnfRq/9Vu/9d1f//Vf/z5cddVVV1111VVX/c+EHvSgB3HVVVddddVVV131P9U111zz4C/6oi96+t/+7d/ymq/5mvzt3/4tL/mSL8k3fMM38B7v8R7s7Oxw55138rSnPY2XfumXBuDOO+9kb2+PP//zP+fN3/zNueWWW7jzzjv5sz/7M/b29nj0ox/NK77iKwKwv78PwJ133sldd93FE57wBLa3t7nxxhu54YYb2N7e5q//+q+55ZZbeImXeAkA9vf3ufPOO7nrrrvY29vj7rvv5n7b29vccMMNANx4443ccMMNbG9vA/B3f/d3nDp1iu3tbba3twHY398H4K677gLgrrvuAmB/f5/9/X329/f515LE87O9vQ3A/v4+LypJvCi2t7cBuP7669ne3gZge3ub7e1trr/+eu63v7/PxYsXue2223j1V391APb39zk4OOCuu+7i7rvv5u677+aBtre3ecQjHgHAy73cywGwv7/P3/zN3wDwUi/1Ujz5yU/m7rvv5u6772Zra4tHPvKRbG1t8chHPpL9/X22t7fZ39/nyU9+Mk960pOQxMu+7MvyiEc8gkuXLvHzP//zPOYxj+Hg4ICXfdmXBeCv/uqvePjDH8729jYAP/3TP827v/u784xnPIMHPehB/NzP/Rxv8RZvwdu93duJq6666qqrrrrqqv+50IMe9CCuuuqqq6666qqr/if78A//8O86derUe+/u7vKar/ma/O7v/i6v+ZqvCcDv/d7v8VIv9VLceeed/OZv/iYv+ZIvyWu8xmuwv7/Pn/7pn7K9vc0rvuIr8nd/93e8xEu8BPv7+zz+8Y/nCU94AjfeeCM33ngjv/mbv8lrvMZr8BIv8RLs7++zt7fHE5/4RJ7whCcAsL29zY033sgNN9zAb/3Wb3HLLbdwyy23cPLkSW688Ub29/fZ39/nzjvv5K677uKuu+7igba3twG44YYbuPHGGwHY3t7mhhtuAOAXfuEXuOWWWwA4deoU29vbbG9vc7/9/X0A9vf32d/f5377+/vs7+9zv/39fSQBsL+/z7/V9vY2ANvb2wBsb29zv+3tbba2tpDE1tYW29vbPND+/j4At956K5cuXQLg1V/91dnf3wfg7rvvZn9/n4ODA/b397n77rt5oO3tbba2trj++uu54YYbuP766wHY39/n1ltv5dKlS/zd3/0db/3Wb83dd9/Nk570JA4ODtja2uKRj3wk119/Pddffz37+/v89V//Nbfddhtv+ZZvyZOf/GSe9KQn8chHPpJHPvKRbG1t8Xu/93u8xmu8Bn/5l3/Jk5/8ZF7zNV+T66+/nt/7vd/j937v93if93kfrr/+ep7xjGdw6tQptra2eMYznsGDHvQg/vZv/5Zjx47xx3/8x5/9oz/6o5/DVVddddVVV1111f9c6EEPehBXXXXVVVddddVV/5Ndc801D/7kT/7kpx8/fpy/+Zu/4TVf8zX5vd/7PV7jNV6D++3t7bGzs8Odd97Jz/zMz/ASL/ESvMZrvAb7+/v86Z/+Kdvb2zzmMY/hr//6r3npl35pAO68806e8IQnsL+/z4033sijHvUobrzxRv7u7/6OBz/4wWxvb7O/v88TnvAE7rzzTu666y4Atre3ufHGG7nhhht49KMfDcDf/d3fcerUKW644QYA9vf3ueuuuwC488472d/f56677uK5bW9vs729zc7ODgA33HADANvb22xvb7O9vQ3A7//+7wNw7Ngxjh07BsCJEycA2N7e5j/b/v4+Fy9eBODSpUsAXLp0iVd/9VcHYH9/H4D9/X3uvvtu9vf3Adjf3+eee+7h+dne3ub6669na2uLG264geuvvx6A/f19AP7mb/6GV3/1V2d/f5+DgwPuvvtu7r77bu6++24Atra2eOQjH8n111/P9ddfz/7+Pn/913/Na7zGa7C/v8+Tn/xk/vIv/5KtrS0e+chH8rIv+7Ls7+/z13/917zMy7wMT3rSk3jyk5/Ma77ma3L99dfze7/3e/zt3/4tb/u2b8v29jYAW1tbHBwcsLW1xe/+7u/ymq/5mjzjGc/g2LFjXLp0iS/+4i9+yH333XcrV1111VVXXXXVVf9zoQc96EFcddVVV1111VVX/U/34R/+4d/1Oq/zOu8N8Lu/+7u85mu+JgB7e3vs7OzwDd/wDbzkS74kr/Ear8Gdd97J/v4+v/mbv8lrvMZr8BIv8RLs7+/z+Mc/nv39fR796EfzV3/1VzzoQQ/iJV7iJdjf3+cJT3gCd955J/v7+9x4443ccMMNPPrRj+b3f//3echDHsKNN97I/v4+d955J3fddRd7e3vcddddSGJ7e5sbbriBG2+8ke3tbW644QYA/u7v/o5Tp05xww03ALC/vw/AXXfdBcCdd97J/v4+BwcH7O/v84Jsb28DsL29zfb2Nvfb3t5me3ub+21vb3O/7e1t/q329/e538HBAfv7+9xvf38fgP39fQ4ODtjf3+eF2dnZYWtri+3tbba2trjhhhsAuP766wHY39/n4sWL3Hbbbbz6q786+/v7ADzpSU/i4OCAJz3pSQBIYmtri0c+8pFsbW3xyEc+EoD9/X3++q//mtd4jdfg7rvv5u677+Yv//Iv2dra4pGPfCSPeMQj2N7e5tKlS/ze7/0er/3ar81f/uVfcnBwwGu+5muytbXF7/3e7/G3f/u3vOEbviEAj3jEI/jbv/1bXvIlXxKAg4MDtra2AHjGM57Bgx70IAB+67d+63u+/uu//r256qqrrrrqqquu+p8NPehBD+Kqq6666qqrrrrqf7oXe7EXe62Xf/mX/+23fMu35Lk94xnP4EEPehAA3/AN38Cbv/mbc/LkSe6880729vZ4zGMew1//9V/zGq/xGuzv7/P4xz+eJzzhCTz60Y/mMY95DH/913/NQx/6UG688Ub29/d5whOewJ133sn+/j7b29s8+tGPZnt7mxtvvJG/+7u/4+TJk9x4443s7+9z1113ceedd7K/v89dd93F/ba3t7nhhhu48cYbAdje3uaGG27gF37hF7jllls4duwYtVZuuOEGAPb39wHY399nf38fgLvuuguA/f199vf32d/f54WRxH8ESfxLtre3Adja2gLghhtuAGB7e5utrS22t7fZ3t7mfvv7+1y8eJHbbrsNgFd/9Vdnf3+fg4MD7rrrLg4ODrj77rvZ39/nftvb2zziEY/ghhtu4Prrrwdgf3+fv/mbv+HVX/3V2d/f58lPfjJ33303d999N1tbWzzykY/kEY94BNvb2+zv7/PXf/3XvPRLvzRPfvKTueeee7juuut45CMfydbWFr/3e7/H3/7t3/KGb/iG7O/v87Iv+7JcunSJn/u5n+Ot3/qt2dra4hnPeAYPetCDeG7f933fx5Of/OTX+Yd/+Iff5qqrrrrqqquuuup/NvSgBz2Iq6666qqrrrrqqv8NPvdzP/e3tra2XvsZz3gGr/mar8nv/u7v8pqv+ZoA/N7v/R6v8RqvAcATnvAEnvKUp/Bar/VaANx5553s7e3xmMc8hr/+67/mpV/6pQG48847ecITngDAox/9aB796EcDcOedd3LjjTeyv7/PE57wBO68807uuusutre3ufHGG7nhhht49KMfDcDf/d3fcerUKW644Qb29/cBuOuuu7jzzjvZ39/nrrvu4n7b29sA3HDDDQDceOONbG9vs729zc/93M9x7Ngxjh07xrFjxzh27Bi1Vra3t9ne3uZ++/v73G9/fx+A/f197re/vw/AwcEB/1pbW1tI4n7b29sAbG9vYxuA7e1ttre3eaD9/X0ALl68yKVLl7h06RKXLl3i0qVLvMVbvAUAd999N/v7+xwcHLC/v8/dd9/NA21vb/OIRzwCgBtuuIHrr78egP39ff7mb/6GV3/1V2d/f5+7776bg4MD/vIv/xKAra0tHvnIR/KIRzyC7e1t9vf32d7eZn9/nyc/+cncfffd7O/v88hHPpKXfdmX5eDggL/6q7/iZV7mZXjSk54EwMu+7MtycHDAX/3VX/EyL/My7O/vc/311/N7v/d7vMZrvAYAv/u7v8trvuZr8nM/93O85Eu+JAcHB7/9mZ/5ma/DVVddddVVV1111f986EEPehBXXXXVVVddddVV/xu82Iu92Gu/3/u9328dP36cv/mbv+E1X/M1eW7PeMYzOHnyJHfeeSfb29s87WlP46Vf+qUBuPPOO7nzzjt59KMfzV/91V/xki/5ktxyyy3s7+/zhCc8gSc84QnceOON3HDDDTz60Y/m93//93nIQx7CjTfeyP7+PnfeeSd33XUXT3jCEwDY2dnhhhtu4MYbb2R7e5vf/u3f5tixY9xyyy2cOnWKG264gf39fQDuuusu7rzzTvb39wG46667AJAEwPb2NgDb29tsb2+zvb3N9vY2ANvb2/zN3/wN29vbHDt2jGPHjgFw7NgxAI4dO8Z/pkuXLgFw6dIlAC5dugTAP/zDP/Bmb/Zm7O/vc3BwwP7+Pvv7++zv73N4eMj+/j7PbXt7m62tLa6//noAbrjhBq6//noA9vf3uXjxIrfddhu33XYbb/EWb8GTn/xkAP7yL/8SgK2tLR75yEcC8LIv+7IA7O/v89d//de89Eu/NE9+8pPZ39/n7rvv5pGPfCSPeMQj2N7e5tKlS/zt3/4tL/MyL8OTnvQkAF72ZV+Wg4MD/uqv/oqXeZmXYX9/n+uvv55Lly5x7Ngxntvv/u7v8pIv+ZJcunSJn/u5n3uf3/qt3/purrrqqquuuuqqq/7nQw960IO46qqrrrrqqquu+t/gmmuuefA3fdM3PZ1n+t3f/V1e8zVfk2/4hm/g3d/93Tl27BgAv/d7v8drvMZrsL+/z5133slv/uZv8hIv8RK89Eu/NACPf/zjueuuu7jhhht4xVd8RQD29/cBuPPOO7nrrru48847AXiFV3gFtre3+eu//mtuueUWXuIlXgKA/f197rrrLu68806e+MQnArC9vc329jbb29vceOONbG9v89u//dscO3aMW265hVOnTnHDDTcAsL+/D8Bdd90FwF133cX+/j4Ad911Fy/I9vY299ve3gZgZ2eH+21tbQGwvb3Nv9bBwQEPtL+/D8D+/j73Ozg4YH9/nxdke3sbSWxtbXH99dcDcMMNNwBw/fXXA7C/vw/A3/zN3wBw22238RZv8Rbcfffd7O/vc/fdd3P33Xcjia2tLa6//nq2t7d5xCMewfb2Nvv7+/z1X/81AC/90i/Nk5/8ZO6++27uvvtuXvZlX5atrS0e+chHsr+/z/b2NgcHBzzpSU/innvu4brrruNlX/ZlOTg44K/+6q/4vd/7Pd74jd+YRz7ykQD81V/9FS/zMi/D1tYWly5d4vu+7/v48A//cH73d3+X13zN1+R+b/d2byeuuuqqq6666qqr/ndAD3rQg7jqqquuuuqqq6763+LDP/zDv6uU8t6v+ZqvyXP7vd/7PV7jNV6DJzzhCfzGb/wGL/mSL8lrvMZrsL+/z+Mf/3huvPFGbrzxRvb39wG48847ueuuuwC44YYbePSjH83f/d3f8RIv8RLs7+9z5513ctddd/GEJzyB7e1tbrzxRh71qEdx44038gu/8AvccsstvMRLvAQA+/v73HXXXdx5553s7+9z1113AbC9vQ3ADTfcwI033sj29jbb29v83M/9HMeOHeOWW24B4NSpU9xwww3cb39/H4D9/X329/cBuOuuuwDY39/nfgcHB+zv7/PvJYkXZHt7G4CtrS0Atre32d7eBmB7e5utrS22t7fZ3t7mfvv7+wBcvHiR2267DYDbbruNt3iLt+Dg4IC77roLgLvvvpu7776b+21vb/OIRzwCSTzykY9ka2uL/f19Ll68yG233cZLvdRLcXBwwN13382TnvQkAB75yEeytbXFIx/5SPb39/nrv/5rXvqlXxqAJz/5yTz5yU/mEY94BC/7si/LwcEBW1tbHBwc8KQnPYnrr7+e66+/nt/7vd/j937v93if93kfrr/+en7v936P13iN1+C5/e7v/i6tte/++q//+vfhqquuuuqqq6666n8H9KAHPYirrrrqqquuuuqq/y2uueaaB3/TN33T05/xjGfwjGc8g9d8zdfkue3v77O9vQ3AN3zDN/Aar/EavORLviRPeMITuPPOO7nxxht59KMfzd/93d/xEi/xEuzv7/OEJzyBJzzhCdx444086lGP4sYbb+Tv/u7veImXeAn29/fZ29vjiU98Int7e+zv77Ozs8P29jaPfvSj+Zmf+RluueUWbrnlFk6dOsUNN9zA/v4+AHfddRd33nkn+/v73HXXXdxvZ2cHgBtuuAGAG264ge3tbQBuuOEGntvf/d3fcerUKba3t9ne3ub52d/f54H29/e5nyRs80CSsM39tre3ud/29jbPz/7+PgD7+/tM08Qtt9zCA+3v7wNwcHDAXXfdBcDBwQH7+/vcfffd3G97exuARzziEQDccMMNXH/99QDs7+9z6623cunSJW677TZe53Veh7vvvpu7776bu+++m62tLR75yEdy/fXXc/3117O/v89f//Vf8xqv8Rrs7+/z5Cc/mSc96Uk88pGP5JGPfCRbW1tcunSJY8eO8eQnP5knP/nJPOIRj+ARj3gEz3jGM/j5n/953vAN35BHPOIRHBwcsLW1xXP7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3HXXXQBsb29zww03IIkbbriB7e1tfuZnfoZbbrkFgFtuuYVTp06xvb3N9vY299vf32d/f5/9/X0A9vf3OTg4AGB/fx+A/f19APb393lRSeJfsr29DcDW1hYA29vbbG9vc7/rr78eSWxtbbG9vc399vf3OTg44Ny5c1y6dIlLly5x6dIl3uIt3oK7776b/f197r77bu6++24Atre32d7e5vrrr+f666/n+uuvB2B/f5+//uu/BuClX/qlefKTnwzAX/7lX7K1tcUjH/lIXvZlXxaAS5cu8bd/+7e8zMu8DE960pN48pOfzCMe8Qhe9mVfloODA7a2tjg4OOAv//IvedmXfVm2trb4vd/7PV7jNV6D+/3u7/4ur/mar8lz293d5fjx43z913/9+/zWb/3Wd3PVVVddddVVV131vwt60IMexFVXXXXVVVddddX/Ni/2Yi/22p/7uZ/7WzzT7/7u7/Kar/ma/NzP/Rxv8RZvwf329/e53/d+7/fyki/5krzGa7wG+/v7/Nmf/Rk33HADj370o7ntttu45ZZb2N/f5wlPeAJPeMITePSjH80NN9zAX/3VX/GSL/mS3HLLLezv73PXXXdx55138sQnPpHt7W1uuOEGbrzxRm644Qa2t7f5u7/7O06dOsUNN9wAwP7+PnfddRd33XUX+/v77O/vs7+/D8D29jbb29tsb29zww03sL+/zw033MD29jbb29s80N/93d9x7Ngxaq1sb2+zvb3NC7K/v8+/1vb2Ni/M/v4+ABcvXuTSpUu8xEu8BA+0v78PwN13383+/j4Ad999N3fffTf3297eZmtri+uvv57t7W0e+chHcr/9/X3+5m/+hld/9Vdnf3+fu+++m4ODA570pCcB8MhHPhKAl33ZlwXg0qVL/O3f/i0v/dIvzZOf/GTuuecerrvuOh75yEeytbXFpUuXKKVw99138+QnP5mXeZmX4frrr+f3fu/3+Nu//Vve673ei62tLQ4ODtja2uJ+3//938+7v/u784xnPIMHPehB3O9DPuRDHnLffffdylVXXXXVVVddddX/LuhBD3oQV1111VVXXXXVVf/bXHPNNQ/+5E/+5KcDPOMZz+A1X/M1+d3f/V1e8zVfE4D9/X22t7f5hm/4Bl7yJV+S13iN1wDgCU94Ar/xG7/Ba7zGa/CSL/mS7O/v82d/9mdsb2/zZ3/2Z7zES7wEL/3SLw3AnXfeyV133cWdd97Jox/9aG644QZuvPFG/u7v/o6XeImXAGB/f5+77rqLJzzhCdx1111sb29zww03cOONN7K9vc0NN9wAwN/93d9x6tQpbrjhBgD29/cBuOuuu7jrrrsA2N/f56677uJ+29vbAGxvb7O9vQ3A9vY2mQnA9vY2ADfddBMA29vb/Efa39/n0qVLHBwcYJuDgwP29/c5duwYAAcHB+zv73NwcMD+/j73297eBuD6669na2uL7e1ttre3uf766wHY398H4G/+5m949Vd/dQD29/d58pOfDMBf/uVfsrW1xfb2Ntdffz3XX389119/Pfv7+/z1X/81r/Ear8Hdd9/N3XffzZOe9CQAHvnIR/KyL/uyHBwc8Fd/9Vf83d/9Ha/8yq/Mk5/8ZF7zNV+T66+/nmc84xn8/M//PG/4hm/I1tYW119/PQB33303119/PQcHB2xtbQHwjGc8gwc96EH87u/+Li/5ki/JpUuX+NiP/Vhx1VVXXXXVVVdd9b8PetCDHsRVV1111VVXXXXV/0bf8R3f4ePHjwPwjGc8gwc96EH87u/+Lq/5mq8JwO/93u/x0i/90mxvb/MN3/ANvPmbvzknT57kzjvvZH9/n1d4hVfg7/7u73iJl3gJ9vf3ufPOO7nrrrt41KMexY033sjf/d3f8RIv8RLs7+9z55138sQnPpH9/X1uuOEGHv3oR3PDDTfw8z//87zkS74kt9xyC/v7+wDcdddd3HnnnTzxiU9ke3sbgBtuuIEbb7yR7e1tbrjhBgB+4Rd+gVtuuYVTp05xww03cL/9/X0A7rrrLgD29/fZ39/n4OAAgP39ffb393lhtre3eX4k8YLs7+/zL9ne3gZge3ub7e1ttra2ALjhhhsAuP7667nf/v4+ALfeeiuXLl3i1V/91dnf3+fg4IC77roLgHvuuYe7776bra0ttre3uf7667n++uu5/vrrAbh06RJ/+7d/y0u/9EtzcHDAk570JJ785CeztbXFIx/5SF72ZV8WgNtuu41bbrmFg4MDfvd3f5frrruORz7ykWxtbfF7v/d7/O3f/i1v+IZvyP7+Pi/7si/LpUuX+P7v/34+7MM+DIBnPOMZPOhBDwLgGc94Bg960IN4xjOewYMe9CDu93Zv93biqquuuuqqq6666n8f9KAHPYirrrrqqquuuuqq/40+53M+57e2t7df+xnPeAav+ZqvyaVLlzh27Bi/+7u/y2u+5msC8Hu/93u8xmu8Bvv7+9x555085SlP4bVe67UAuPPOO9nf3+eGG27gaU97Gq/xGq/B/v4+T3jCE7jzzju58cYbueGGG7jxxhu57bbbuOWWW9jf3+euu+7izjvv5K677mJ7e5sbbriBG2+8kRtuuIFf+IVf4CVe4iW45ZZbANjf3+euu+5if3+fu+66i7vuuguA7e1ttre32d7e5oYbbgBge3ubn/mZn+GWW24B4JZbbgHg1KlTbG9vs729zQPt7+9zv/39fQD29/eRhG0A9vf3eSBJvCDb29vcb2trC4Dt7W0Atre3eaD9/X0ADg4OOHfuHJcuXQLgtttuA+B1Xud1ALjrrrsAuPvuu7n77rsB2N7eZmtrixtuuIHrr7+e66+/HoD9/X0uXrzIM57xDF7jNV6D/f19nvzkJ3P33Xezv7/P9ddfz/b2Ni/7si8LwKVLlzh27BgHBwc86UlP4slPfjKPeMQjeNmXfVkODg74q7/6K17mZV6GJz3pSQC87Mu+LAcHB/z2b/82j3rUo9ja2uL666/nd3/3d3nZl31Ztra2+Nu//Vte8iVfkkuXLnHs2DGe8YxncOzYMe68887f+czP/MzX5qqrrrrqqquuuup/H/SgBz2Iq6666qqrrrrqqv+NPudzPue3XvzFX/y1AXZ3dzl+/Dj7+/tsb2/zu7/7u7zma74md955Jzs7O1y4cIGTJ09y5513AnD27Fle+qVfGoA777yTu+66i0c96lH81V/9FS/zMi/DjTfeyJ133skTn/hE7rzzTh796Edz44038pd/+Zc86EEP4iVe4iXY399nf3+fO++8k7vuuov9/X22t7e54YYbuPHGG/mZn/kZbrnlFm655RZOnTrFDTfcAMD+/j77+/vs7+9z1113sb+/z/7+Pvv7+wBsb28DcMMNNwBwww03ALC9vc3f/d3fsb29zU033QTAsWPHuN+xY8f4l+zv77O9vc2L6tKlSwBcunQJgDvuuINLly7x0i/90uzv77O/vw/A3XffDcDdd9/N/ba3t9na2uL6668H4IYbbuD666/nfvv7+/zN3/wNAM94xjN43dd9Xe6++27uvvtu7r77bra2tnjkIx/J9ddfz/XXX8/+/j4XL17kGc94Bi/90i/Nk5/8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7Mu+LACXLl3i2LFjHBwc8KQnPYm/+qu/4mVe5mV45CMfydbWFn/7t3/LQx/6UJ70pCfx5Cc/mdd8zdfk+uuv5/d+7/d4mZd5Gf7qr/6K13iN1+Dg4ACAu+++m0c84hH87d/+LQ996EPZ2trifn/zN3/DS73US3G/3/qt3/rur//6r38frrrqqquuuuqqq/53QQ960IO46qqrrrrqqquu+t/mm77pm55+zTXXPBjgGc94Bg960IPY3d3l+PHjAOzv7wPwV3/1V7zma74mT3jCE9je3uZpT3sar/Ear8Gf/dmfsb+/z+Mf/3he4zVeg5d8yZfkCU94AnfddRfb29s8+tGP5q//+q95jdd4Dfb397nrrrt4whOewP7+Po961KN49KMfze/8zu/wki/5ktxyyy3s7+9z1113ceedd3LXXXchiRtuuIHt7W1uuOEGfuu3fotjx47xoAc9iFOnTnHDDTcAsL+/z1133QXAXXfdxf7+PnfffTf3297eZnt7m+3tbWxzww03cNttt7G9vQ3ATTfdxPb2NseOHeM/wx133IEk7rjjDvb39wE4ceIEAAcHB+zv73NwcMD+/j4A29vbAFx//fVsbW1xww03cP3113O//f19br31VnZ3d7ntttt4y7d8S5785Cdz9913c/fdd7O1tcUjH/lIAF72ZV8WgEuXLvG3f/u3vMzLvAxPetKTuOeee9jf3+cRj3gEL/uyL8vBwQF/9Vd/xcu8zMvwpCc9iSc/+cm87Mu+LI94xCN4xjOewc///M/zqq/6qgC8zMu8DM94xjPo+5577rmHl3mZl+F3f/d3uf7663nEIx4BwMHBAdM0cfz4ce63u7vLMAy3fsiHfMhDuOqqq6666qqrrvrfBT3oQQ/iqquuuuqqq6666n+T13md13nvD//wD/8unsvP/uzP8pZv+ZYA/O7v/i4v8zIvw97eHjfeeCMAd955J3fddRf33nsvr/VarwXAE57wBAD+9E//lDd/8zfnQQ96EE94whO46667AHj0ox/NDTfcwG233cYtt9zC/v4+T3ziE3nCE54AwKMe9ShuvPFG/vIv/5IHPehBvMRLvAQA+/v73HXXXdx111088YlPZHt7G4AbbriBG264ge3tbW644QYA/u7v/o5jx45x4sQJtre3Adjf3wfgrrvuAuDuu+8GYH9/n/39ffb393lu29vbAEgCYGtri3+tg4MDAA4ODnhu29vbAGxtbbG9vc3W1hYA29vbbG9vc/3113O//f19Ll68yDOe8Qxe4zVeA4D9/X2e/OQnA3D33Xdz9913s7W1xfXXX8/29jaPeMQj2N7eZn9/n7/+678G4GVe5mV40pOexD333MP+/j6PeMQjeOQjH8nW1haXLl3i2LFjHBwc8KQnPYknP/nJvOzLviyPeMQjuHTpEj/3cz/HYx/7WO655x5e8zVfk/s9+clP5rrrruP6668H4MlPfjKPeMQjeMYznsGDHvQgAL7v+76P93iP9+C5feZnfubr/MM//MNvc9VVV1111VVXXfW/B3rQgx7EVVddddVVV1111f8mH/7hH/5dr/M6r/PeALu7uxw/fpzd3V2OHz/O7/7u7/IyL/My7O3tcf78eR7ykIfwhCc8gVd4hVdgf38fgN/4jd/g9V7v9fjrv/5rXuM1XoMnPOEJPOEJT+DGG2/kFV7hFXjGM57Bgx70IO666y7+7M/+jP39fR71qEfxCq/wCvze7/0eL/3SL8329jb7+/s84QlP4IlPfCIAN9xwAzfeeCOPetSjALjtttu45ZZbANjf3+euu+7irrvuYn9/n7vuuovt7W0AbrjhBgBuuOEGtre3ueGGG/iFX/gFAG655RYATp06xfb2Ntvb29xvf3+f++3v7wOwv7+PJAD29/f519re3gZge3sbgK2tLSSxtbXFA+3v7wNw8eJFbrvtNgAuXbrEa77mawJw9913c3BwwP7+PgcHB9x9990AbG1t8chHPhKAl33ZlwVgf3+fixcvcsstt7C/v8/BwQF33303f/VXf8XW1haPeMQjuP7667n++us5ODjgr/7qr3iZl3kZnvSkJ/HkJz8ZgJd92ZflEY94BM94xjP4vd/7PR772Mfy5Cc/mdd8zdfk+uuv52//9m956EMfyl/91V/x8Ic/nO3tbba2tvirv/orXuZlXoZnPOMZnDp1iq2tLf72b/+Wl3zJl+QZz3gGD3rQg3igf/iHf/jtz/zMz3wdrrrqqquuuuqqq/73QA960IO46qqrrrrqqquu+t/immuuefA3fdM3PZ3nsre3x87ODvv7+1y4cIEHPehBPOEJT+C+++7jZV7mZbjzzju58cYbuXDhAidPnuTOO+9kf3+fP/3TP+XN3/zNOXnyJE94whN4whOewKMf/Wge/ehH8/SnP52XfMmXZH9/nyc84Qk88YlPZHt7m0c/+tE86lGP4vd+7/d4jdd4DQD29/d5whOewF133cXBwQEAN9xwA4961KO44YYb+Pmf/3ke9KAHcerUKW644QYA9vf3ueuuu7jrrrvY399nf3+fg4MDALa3t9ne3mZ7exuA66+/HoDt7W1uvfVWtre3OXbsGMeOHQPg2LFj/Ge5dOkSly5dYn9/n0uXLvGQhzyE/f199vf3ATg4OGB/f5+7776b+21vb7O9vc3111/P1tYW29vbXH/99QDs7+9z6623sru7y0u/9EtzcHDA3Xffzd13383dd9/N1tYWj3zkI7nhhhu47rrrODg44K/+6q94jdd4De6++26e/OQnc/fdd/OIRzyCRz7ykWxtbfG3f/u3PPShD+VJT3oST37yk3nEIx7By77sy3Lp0iV+7ud+jhd7sRfj4OCA13iN1+AZz3gGp06d4slPfjIv8zIvwzOe8QxOnToFwPnz5zl16hRbW1scHBywtbXFA9133323fv3Xf/37/MM//MNvc9VVV1111VVXXfW/A3rQgx7EVVddddVVV1111f8WH/7hH/5dr/M6r/PePB9/8zd/w0u91Euxv79PZnLs2DH+9E//lNVqxcu8zMtw5513sr+/z2q14jVe4zW48847+bM/+zNuvPFG7r33Xl7rtV4LgCc84Qk84QlP4NGPfjSPfvSj+eu//mte4zVeg/39fe666y6e8IQnsL+/zw033MCNN97Iox71KH7v936Phz3sYdxwww3s7+9z1113cdddd7G/v89dd93F9vY2N9xwAzfccAPb29v81m/9FseOHeNBD3oQp06d4oYbbgBgf38fgLvvvhvb3H333ezv7wNw11138UDb29vcb3t7G4Dt7W3ut729zb/WwcEBAPv7+9xvf3+fg4MDHmh7exuAra0trr/+egBuuOEGAK6//noA9vf3Abj11lvZ3d3ltttu4y3f8i158pOfDMCTnvQkDg4O2Nra4pGPfCQAL/uyLwvAwcEBf/VXf8VrvMZrcPfdd3P33XfzV3/1V2xtbfGIRzyCl33Zl+Xg4IC/+qu/4mVe5mV40pOexJOf/GQe8YhH8LIv+7IcHBzwV3/1V2xtbfHkJz+Z13iN1+D666/nd3/3d7n++uu55557eI3XeA2e8YxnMAwDW1tbbG9vc/fdd/OIRzyCZzzjGTzoQQ/i+fmDP/iD3/7Kr/zK1+Gqq6666qqrrrrqfwf0oAc9iKuuuuqqq6666qr/Da655poHf9M3fdPT+Rfceeed7OzssL29zROe8AT29vZYrVa85mu+Jn/2Z3/G/v4+j3/843n3d393IoInPOEJPOEJT+B1X/d1edrTnsZLv/RLA/CEJzyBu+66i+3tbR796Edzww03cNttt3HLLbewv7/PE57wBO666y729/e54YYbuPHGG7nhhhv4nd/5HR70oAfxEi/xEgDs7+9z1113cdddd7G/v89dd93F9vY2ADfccAM33HAD29vbbG9vs729DcDf/d3fcezYMWqt3HDDDdxvf38fgP39fQAODg6wzf7+PgcHB9xvf3+fBzo4OOAF2dra4n47OzsAbG1tcb/t7W22t7cB2NraYnt7m/vt7+9zcHDAOI484xnP4DVe4zUA2N/f5+DggLvvvhuAu+++m7vvvhuAra0tHvnIRwLwsi/7sgDs7+9z6623sru7y8u8zMvwpCc9iYODA5785CeztbXFIx7xCF72ZV8WgEuXLnHs2DEODg74y7/8S+6++24e8YhH8LIv+7IcHBzwV3/1V7zMy7wMv/iLv8gjHvEIXuZlXoZLly5RSuF3f/d3uf7663mZl3kZfvd3f5ft7W2uu+46tre3Adjf3+f666/nhdnd3eUrv/IrX+cf/uEffpurrrrqqquuuuqq//nQgx70IK666qqrrrrqqqv+N/jcz/3c33qxF3ux1+YF2N/f57d/+7d5i7d4C57whCfw67/+63z4h384T3jCE9jb22O1WvGar/ma7O/v8xu/8RvceOONrFYrXuM1XoP9/X1+4zd+g/39fV73dV+XG2+8kf39fQDuuusunvCEJ7C/v8+jHvUoHv3oR7O9vc1dd93FDTfcwP7+PnfddRdPeMITuPvuu9ne3uaGG27ghhtu4FGPehQAf/d3f8eDH/xgtre32d/fZ39/n/39fe666y729/e56667kMT29jYA119/PZK4/vrr2d7eBuCGG24A4Pd///cBuOWWWwA4duwYEQHA9vY2/1H29/fJTC5dusSlS5cAuHTpEq/+6q/O/v4+AAcHB9x1110AHBwccHBwwN133839tra2uP7669ne3ub666/n+uuvB2B/f59bb72Vl3iJl2B/f5+DgwPuvvtunvSkJ3F4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fv7nf54HPehBnDp1ihtuuIH9/X329/fZ39/n7rvvZn9/n7vuuov7bW9vA7C9vc329jbXX389ANvb22xvb3PrrbcCcOzYMQCOHTvGsWPH+I906dIlAC5dusSlS5cAOH36NAD7+/vs7+8jibvvvpv9/X0ODg54oK2tLR75yEcCcP3113P99dcDsL+/z6233sru7i4v8zIvw913383+/j5/9Vd/BcDW1haPeMQj2N7e5hGPeAQHBwf81V/9FS/zMi/Dk570JJ785CdzcHDA1tYWL/uyL8sjHvEILl26xO/93u9x44038ld/9VdsbW3xGq/xGlx//fX87u/+Lo94xCP4pV/6Ja677jre9E3flGc84xn0fc8v/dIv8aZv+qZcd911HBwc8Eu/9Eu8wzu8A894xjN43OMex5u8yZsAcM8993DdddfxwvzIj/zIZ//oj/7o53DVVVddddVVV131Pwt60IMexFVXXXXVVVddddX/JC/2Yi/22p/7uZ/7W7u7uxw/fpwXZH9/n729PW688Uae8IQncOedd/LyL//yRAQ/9VM/xd7eHh/+4R/O/v4+P/3TP82jH/1olsslr/mar8mf/dmf8Wd/9me8wiu8An/6p3/Km7/5m3Py5Eme8IQn8Od//udsb2/zqEc9ild4hVfgGc94Bg960IPY39/nz/7sz3jiE5/I9vY2N9xwA49+9KO54YYb+Lu/+zte4iVegv39ffb397nrrru46667uOuuuwDY3t7mhhtu4IYbbmB7e5sbbrgBgNtuu40TJ06wvb0NwP7+PnfddReSuOuuu9jf32d/f5/9/X2e287ODgBbW1sAbG9vc7/t7W0Atre3Adjf32d7e5vnZ39/nwc6ODgAYH9/H4D9/X0ODg54bpLY2tpie3ubra0ttre3uf7669na2mJ7exuA/f19Ll68yC233ALA/v4+T37ykwF40pOexOHhIQBbW1s84hGP4Prrr+f666/n4OCAv/qrv+I1XuM1ODg44ElPehJ/9Vd/BcDLvMzL8MhHPpKtrS0uXbrEsWPH+Ku/+iue/OQnA/CIRzyCl3mZl+HSpUv83M/9HC/2Yi/GX/3VX/EyL/MyvMzLvAy/+7u/y/XXX8/v/d7v8aZv+qZcd911fP/3fz/jOPImb/ImzOdzzp07B8DDH/5wnvKUp3DdddextbXFPffcw3XXXcfzc+ut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zSu8witw9uxZXuM1XoM/+7M/48///M8B2N7e5hVe4RW47777eI3XeA329/f5sz/7M574xCcCsL29zaMe9She4RVegd/7vd/jNV7jNdjf3+euu+7irrvu4olPfCL3297e5oYbbuCGG27gUY96FD//8z/PS77kS3LLLbcAsL+/z1133cXdd9/N/v4+d911F8/P9vY229vbbG9vA3DDDTewtbUFwK233sqNN97I8ePHud+xY8f4j3Lp0iUAdnd3ufPOO3mJl3gJDg4OuPvuuwHY39/n4OCAu+++m+dna2uL7e1trr/+era3t3nEIx4BwMHBARcuXOAZz3gGL/MyL8P+/j533303f/VXf8UDXX/99Vx33XW87Mu+LAcHB/zVX/0VL/MyL8OTn/xknvzkJ3NwcADAddddx2u+5muytbXF7/3e7/Hwhz+cv/qrv+Kee+4B4GVe5mV4mZd5GX7v936PRzziEfzSL/0SAC/90i/Ny7zMy/C7v/u7SOIpT3kKL/3SL83LvMzLAPBjP/ZjbG1t8SZv8ib87d/+LU960pN46Zd+aR7+8IfzlKc8hYODA176pV+av/7rv+bhD384W1tbHBwcsLW1BcDBwQFbW1vc79Zbb+XpT3/6d3/913/9+3DVVVddddVVV131X4fKVVddddVVV1111X+hd3zHd/ysF3uxF3ttno+9vT12dna466672N3d5fjx49x5553s7u5y44038uu//uu84iu+IjfeeCP7+/us12t2d3d5vdd7Pb73e7+X3/iN36DrOl7zNV8TgD/7sz/j0Y9+NACv8AqvAMCf/dmf8Zu/+Zu8wiu8Aj//8z/Pa73Wa/HoRz+aP/uzP+OJT3wif/Znf8YNN9zA/v4+29vbvO7rvi6v8AqvwBOe8AT+/M//nD//8z/nSU96EjfccAN33XUXN9xwA8Mw8Dqv8zq8/Mu/PHfddRd33XUXT3ziE3niE5/IE5/4RH7rt36L7e1tnva0p7FcLvmN3/gNbrnlFh70oAfxyEc+khtuuAGA/f197rrrLgDuvvtu9vf3ueuuu9jf30cSAE960pN4oL//+79ne3sbgK2tLQ4ODrj++ut5oO3tbf4lBwcH3G9/fx+Ag4MD9vf3kQTA4x73OJ6fra0tAK6//nq2t7e5/vrruf7667nfwcEBT3/60/m93/s9brvtNl73dV+Xc+fOsb+/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j3oUd911F0984hO56667uOuuu7jrrrvY3t7mhhtu4K677uJRj3oUf/3Xf83DHvYwXv7lX579/X3uuusu7r77bvb397nrrrvY39/niU98Ik984hMB2N7eBuCGG26g73ue+MQnsr29zW/91m9x7Ngxjh07xvHjxzlz5gyPfOQj2d7e5oH29/e538HBAQD7+/v8a2xvb3O/ra0ttre3eaD9/X0ALl68yKVLl7jnnnt4ylOewm233cZbvuVbcnBwwN13341tfvEXf5G7776b52dra4tHPOIRXH/99Vx//fUAHBwc8Fd/9Ve8zMu8DE9+8pMB+NEf/VEeaGtri5d5mZfhEY94BAcHB/ze7/0eL/MyL8Mv/uIvcs899wAgiZd+6ZfmZV7mZTg4OOD7v//7ebEXezGuv/567rnnHra2tniN13gNrrvuOr7/+7+f2WzGwcEBAG/yJm/Cddddx8HBAb//+78PwEu/9Etz3XXXcXBwwO///u8D8NIv/dI84xnP4ClPeQrXXXcdW1tbHBwcALC1tQXAwcEBL6o3eqM3+uyzZ88+47d+67e+m6uuuuqqq6666qr/eFSuuuqqq6666qqr/hNcc801D/7cz/3c3wI4fvw4z21vb4+dnR0Atre3Adjb2+P48ePcb29vjxtvvJHHPOYx/MZv/Aa1Vra3t3m913s9fuM3foPf+I3f4OTJk7zMy7wMd911F3fddRe/+Zu/yXu8x3vw6Ec/GoDf/M3f5M/+7M/Y3t5mf3+fzOSt3/qteeITn8if/dmf8ed//udsb29z1113cd999/Ear/EaPPrRj+YJT3gCf/7nf85dd93Fz/zMz7C9vc0111zDox71KObzOW/5lm/J/v4+T3ziE3niE5/I/v4+T3ziE3niE5/In//5n7O9vc1dd90FwA033MAwDLz2a782APv7+9x1113s7+9z9913c9ddd7G/vw/AE5/4RJ74xCciiftFBLZprTEMA6vViv39fW677Ta2t7e56aabOHbsGPfb3t4G4Prrr+ff69KlS9xxxx1cunSJhzzkIezv73NwcADA3t4e+/v7LJdLfuRHfgQASTzQ1tYW29vbXHfddVx//fVcf/31ABwcHPBXf/VXXH/99RwcHPCkJz2J/f19fvRHf5QH2tra4hGPeASPeMQj2Nra4tKlSxwcHPDkJz+Zu+++myc/+cnc72Ve5mV4xCMewdbWFr/3e7/HIx7xCGazGX/9138NwHXXXcebvMmbcOnSJQ4ODjh16hT33HMPAG/yJm/CddddB8Dv//7vc88993Ddddfx0i/90jzjGc/g8Y9/PACv/uqvDsBsNuOee+7h1V/91QG45557kMTW1hYHBwccHBxwv3vuuYfrrruOg4MDtra2eKAHP/jBALzjO77jZ/3DP/zDb9933323ctVVV1111VVXXfUfi8pVV1111VVXXXXVf4I3eqM3ejrPx97eHjs7O9x5553s7Oywv7/PA915553ceOON3HjjjTzhCU/gMY95DDfeeCMAv/Ebv8FrvdZrceONN3LjjTdy5513csMNN3DhwgVe7/Vej5/+6Z9mf3+f7/u+70MS7/7u786NN97I933f97G/v89P//RP8+hHP5rVasVrvMZrYJs///M/Z39/n9/8zd/khhtu4Bu+4Rt4yZd8SV7jNV6DRz/60fzZn/0ZT3ziEzk4OOC3fuu3+PM//3Me9ahHcfLkSf76r/+al37pl+blX/7l2d/f54lPfCJPfOIT2d/fZ39/n7vuugtJbG9vc8MNN/DEJz6RG264gd/5nd/hQQ96EDfccAMv//IvD8D+/j533XUXd999NwD7+/vcfffdAOzv77O/v8/dd9/NC7K9vc39tre3Adje3uZfY39/H0kA7O/vc3BwwAM97nGP44XZ2tpiZ2eH6667ju3tbR7xiEdwv4ODA/7qr/6KpzzlKbzMy7wMd999N5ubm3zHd3wH95MEwNbWFo94xCO4/vrrue666zg4OOCv/uqveJmXeRme9rSn8Vd/9Vc80HXXXcdrvuZrsrW1xe/93u/xe7/3e7zMy7wMv/RLvwTA1tYWD3/4w3mZl3kZAJbLJb/0S7/E/d7kTd6E6667ju///u/n9OnT3HPPPWxtbfHGb/zGPOMZz+DixYvcc889bG1t8fCHP5xnPOMZPP7xjwfguuuuY3d3l6c+9ak8/OEPB+ApT3kKz88999zDwx/+cJ7b7u4u11xzzYPf+I3f+Onf+73fK6666qqrrrrqqqv+Y1G56qqrrrrqqquu+g/2uZ/7ub81TRPPz87ODg+0t7fHpUuX2NnZYWdnh6c+9anceOON3Hjjjfzpn/4pd955JzfeeCOPfvSjecITnsByuWR7e5vXe73X43u/93t5whOewI033khm8tZv/db89E//NPv7+2xvb7O/vw/Ae7zHe/DTP/3T7O/v82d/9me8wiu8At///d/PW73VW/HoRz+aJzzhCfz5n/85d911F8eOHWMcR/b39/nrv/5rXvd1X5dXeIVX4IlPfCJ//ud/zv7+Pn/+53/On//5n3PDDTdw11138ahHPYpbb72Vl3/5l+flX/7l2d/f54lPfCJ33303d911F/v7+zzxiU/kiU98IgDb29ucP3+evu+56667uOGGG9je3uZRj3oU29vb3HDDDQDs7+8DcPfddwNw1113AbC/v8/BwQH7+/vcb39/HwBJHBwcAHD33XfzryWJF2RrawuA7e1trr/+egCuv/56AK6//nrud3BwwNbWFvc7ODjgSU96Epubm/zVX/0VT3rSk3huW1tbPPKRj+S6667j+uuv5+DggL/6q7/iuuuu48lPfjL7+/v86I/+KA/0Mi/zMjziEY9ga2uL3/u93+NlXuZl2Nra4vrrr+eee+4B4LrrruNN3uRNODg44Pu///t5sRd7Mf76r/8agK2tLV7jNV6Dra0tDg4OOH36NPfccw8Ar/7qr86lS5eYzWb89V//NQCv/uqvDsA4jtxzzz08/OEPZ2tri6c85Sncc889vNqrvRoAktja2gJgd3eXg4MDALa2tnh+jh8/zu7uLsePH+fDP/zDv+vrv/7r34errrrqqquuuuqq/zhUrrrqqquuuuqqq/4Dvc7rvM57v9iLvdhr7+7u8tzuvPNOtre32dnZ4YEODg4A2N7e5vz58wA8+tGP5k//9E95whOewI033sgrvuIr8oQnPIE//dM/5cYbb2R7e5tXfMVX5E//9E/5jd/4Dfb29vjwD/9w3vqt35rv+77vY39/n5/+6Z/m0qVLvMd7vAdv/dZvzZ/92Z/xhCc8gT//8z9ne3ub/f19nvrUp/Iar/Ea3Hjjjfzmb/4m+/v7PPGJT+Suu+7ihhtuYH9/n7/+67/mNV7jNXjUox7FE5/4RJ74xCeyv7/PXXfdxV133cWf//mfc8MNN/DEJz6RRz3qUdx666086lGP4uVf/uXZ39/nrrvu4u677+aJT3wiAPv7+zzxiU/kiU98IgDb29sA3HDDDVx//fXcddddbG9vA/A7v/M7POhBD+LYsWM88pGP5IYbbuCB9vf3Adjf3+fg4ID77e/vA3BwcMC/ZGtrCwBJAGxtbQGwvb0NwPXXX89z29/f5+LFizzlKU8B4Prrr+fg4ID9/X3uvvtuAO655x7uvvtunp+trS22t7e57rrreOQjH8nW1hYHBwf81V/9Fddffz37+/tsbW3xnd/5nTzQ1tYWj3jEI3iZl3kZAH7v936Pl3mZl2Fra4sf+7Ef435bW1u8xmu8Btdddx2/93u/x8u8zMswm83467/+awCuu+463uRN3oRLly7x3d/93WxtbXG/N37jN2Zra4uf/umfZpomAF76pV+a6667joODA37/938fgIc//OEAPPWpTwXguuuuA+Cee+5ha2sLgNVqxf0ODg44ODhga2uLg4MDtra2uN/x48d5qZd6KY4fP/7e9913360/+qM/+jlcddVVV1111VVX/cegctVVV1111VVXXfUf5Jprrnnwm7/5m38XwPHjx7nf3t4eOzs7bG9vs7Ozw5133sne3h4AOzs77O/vA7Czs8Odd97JM57xDB70oAdx0003ceedd3LnnXdy44038uhHP5onPOEJ/MZv/AYPfehDefSjH82dd97JXXfdxbFjx7jzzju58cYbeY/3eA++7/u+j/39fY4dO8aTnvQkVqsVr/AKr8D29jZ//ud/zv7+Pj/zMz/Dy7/8y/MN3/ANvPmbvzlv9VZvxROe8AT+/M//nP39fZ74xCdy1113sbOzw1133cVTn/pUXvqlX5pHPepR3HXXXTzxiU/krrvuYn9/nyc+8Yk88YlP5M///M+54YYb6PueRz3qUfzO7/wOL/mSL8lrv/Zr89qv/drs7+9z1113cffdd/PEJz4RgP39fQCe+MQn8sQnPhFJAGxvbwNw/vx5zp8/zw033MBdd90FwPb2Nn/3d3/HTTfdBMCxY8e44YYb+I906dIlAG677TYuXbrEgx/8YAAODg64++67AchMDg4O+I7v+A5emK2tLba3t7nuuuu44YYbuO666wC4dOkSf/VXf8XLvMzL8OQnP5mtrS2+8zu/k+e2tbXFy7zMy/CIRzyCg4MDfu/3fo+XeZmXYWtrix/7sR/jfltbWzz84Q/nZV7mZbh06RLf//3fz4u92IvxYz/2Y9zvpV/6pXmZl3kZnvGMZzCbzdja2uJ+b/zGb8x1113HwcEB0zQBcN111/HSL/3SPOMZz+Dxj388AA9/+MO57rrrODg44J577uG6665ja2uL3d1d7rnnHl7t1V4NgHvvvZcHOjg4AODg4ICtrS2enzd6ozf67H/4h3/4nX/4h3/4ba666qqrrrrqqqv+/ahcddVVV1111VVX/Qf58A//8O968IMfzHPb2dkBYG9vj52dHfb29nigO++8E4Abb7yRP/3TP+Xo6AiARz/60fzGb/wGT3jCE9jc3OQVX/EVecITnsCdd97JDTfcQGbyeq/3evz0T/80+/v7/OZv/iZv/dZvzfb2Nu/xHu/BT//0T7O/v8+f/dmf8Qqv8Apsb2/zCq/wCjz60Y/mZ37mZ9jf3+fP//zPOXbsGPfddx+33XYbL/3SL82jH/1onvCEJ/Dnf/7nHBwccHBwwM/+7M+yvb3NNddcw6Me9SiGYeAt3/It2d/f54lPfCJ33XUXd911F/v7+zzxiU/kSU96Er/927/N9vY29913H7VWbrjhBv76r/+aBz3oQbz2a782r/3ar83+/j533303e3t73H333RwcHLC/vw/A/v4+APv7+wA86UlP4rk94xnPAGBra4udnR3ut7W1BcD29jb/kv39fSRxv/39fQAODg4A2N/f5+DggD/5kz/h+ZHEA21tbbG9vc11113HDTfcwHXXXcf9Ll26xN/+7d9y3XXXcXBwwFOf+lT29/f50R/9UZ7b1tYWj3jEI3iZl3kZAC5dugTA3Xffzd13382Tn/xkJAGwtbXFwx/+cF7mZV6Gg4MDfu/3fo+trS3GceSv//qvAdja2uI1XuM1uO666wC4cOECf/M3fwPA1tYWr/7qr87W1hYHBwf8/u//PgBbW1u8+qu/OpcuXeLixYvcc889ALz0S780u7u7/MM//AMAD3vYwwA4f/48ANdddx3329raAuDg4ICtrS22trZ4ylOewnXXXcfBwQFbW1s80PHjx/nwD//w7/qQD/mQh3DVVVddddVVV13170flqquuuuqqq6666j/AO77jO37WuXPnXpsX4s477+Smm24C4OLFiwDs7Ozw+Mc/HoDt7W0A/vRP/5THPOYx3HjjjQDceeedPPrRj+bGG2/k9V7v9fiN3/gNnvCEJ3DjjTdy44038tZv/dZ83/d9H/v7+/z0T/80b/3Wbw3AW7/1W/PTP/3T7O/v82d/9mc84QlPYG9vj3d/93fnrd7qrXjCE57An//5n7O/v8+f//mfs729zTXXXMOjHvUoXuEVXoFHP/rRPPGJT+TP//zPAdjf3+e3fuu3+PM//3Me9ahHcdddd3HDDTdwww038PIv//Ls7+/zxCc+kbvvvpu77roLgP39ff7iL/6Cv/iLv2B7e5utrS0WiwW1Vm644QZ+53d+hwc96EHccMMNvPzLvzwA+/v7HBwcsL+/z1133QXA/v4+d999N89tf38fgIODA+655x7+rSTxr7G1tQXA9ddfz/b2NgA33HAD1113Hfc7ODjgr/7qr3jyk5/My7zMy7C/v8/dd9/N3t4e3/Ed3wGAJB5oa2uLRzziETziEY9ga2uLg4MDAA4ODnja057GX/3VX/FAW1tbPPzhD+dlXuZlODg44Pd+7/d4xCMewT333MPBwQH3e+mXfmle5mVehkuXLnFwcMDv/d7vce+99wKwtbXFq7/6q7NYLAD45V/+ZQ4ODgB49Vd/dba2trjnnnv467/+awBe+qVfmq2tLe655x6e8pSnAHDddddxcHDAU57yFAC2trYAuOeee3ipl3opAM6fP8/W1hYPtLW1BcDBwQHHjx8HYHd3l7vuuuvBH/7hH/5dX//1X/8+XHXVVVddddVVV/37ULnqqquuuuqqq676d3qxF3ux136nd3qnz+b52NvbY2dnB4D9/X3ut1wuAdje3mZ/f58777yTG2+8kRtvvJE777yTn/3Zn+Ut3/ItefSjH80TnvAEfuM3foOXfumX5iEPeQg33ngjd955J7/xG7/B3t4eH/7hH87rvu7r8pu/+Zvs7+/z0z/907z1W781mclbv/Vb82d/9mc84QlP4ODggGPHjvGkJz2J1WrFa7zGa/DoRz+an/mZn2F/f5/9/X1+8zd/kz/7sz/jdV/3dXnqU5/KS7/0S/OoRz2KJz7xiTzxiU9kf3+f/f19/vzP/xyA7e1tHvWoR/HTP/3TvMRLvAQPe9jDePmXf3n29/e5++67ueuuu3jiE58IwP7+Pvv7+9x99938xV/8BQDb29ucO3eOvu+56667uOGGG/id3/kdHvSgBwHwyEc+khtuuIH77e/vA7C/v8/BwQEAd911F5LY39/nfgcHBwDs7+/zL9ne3uaBtre3Adja2mJ7exuAra0ttre3Abj++uu538HBAQBPf/rTefKTn8yf//mf89qv/drs7+9z9913s7m5yT333MOP/MiP8PxsbW2xtbXF9ddfz8u8zMsAcHBwwF/91V/xd3/3d7zKq7wKT37ykzk4OOCBtra2eMQjHsHLvMzLcHBwwO/93u/xMi/zMhwcHPBLv/RL3G9ra4vXeI3X4LrrruP3fu/3eMQjHsEv/dIvIQmA6667jjd+4zfm0qVLlFL48R//ce73xm/8xlx33XV8//d/P9M0AXDdddfx0i/90jzjGc/gCU94AgAPf/jD2dra4nd/93e55557ePjDH87BwQH33HMPBwcHbG1tATCfz7mfJAAODg44ODjguuuu437Hjx/npV/6pdnd3X3vF3/xF/+ev//7v/9trrrqqquuuuqqq/7tqFx11VVXXXXVVVf9O73v+77vb/EC3Hnnnezs7ACwt7cHwM7ODnt7ewDs7OwAcOedd3LjjTfyiq/4ivzUT/0UmQnAK77iK/KEJzyB/f19VqsVmcnrvd7r8b3f+73s7+9z7NgxAB796EcD8Ju/+Zvs7+/z0z/90zz60Y9mtVrxCq/wCmxvb/Pnf/7n7O/v8+d//uc86lGP4hu+4Rt48zd/c97qrd6KJzzhCfz5n/85APv7+/zMz/wMOzs7POxhD+Mv//Ivea3Xei0e9ahHcdddd/HEJz6Ru+66C4D9/X3+/M//nGPHjnHx4kX29/fZ399ne3ubixcv8tqv/dq83Mu9HPv7+9x1113cfffd3HXXXdxvf3+f/f19nvSkJyEJgO3tbW699Va2t7eZzWbcddddANxwww1sb28DcOuttwJw7NgxHvWoR7G1tcX29jb/kfb39wG4ePEily5d4t577+U1XuM1ANjf3wfg4OCAu+++G4C9vT3uvfdefuRHfoQXZmtri0c84hFcf/31XH/99QBcunQJgIODA5785Cezv7/PfD7nr/7qr3igra0tXuZlXoZHPOIRHBwc8Hu/93u8zMu8DAcHB/zYj/0Y99va2uLhD384L/MyL8OlS5f4/u//fk6dOsUv/dIvIQmAl37pl+alX/ql+du//VuuueYafvmXf5n7vfEbvzHXXXcdAKdPn+aee+4B4KVf+qXZ3d3l4sWL3HPPPQC81Eu9FADL5RKAa6+9lq2tLe69914Atra2ALjnnnu47rrrADg4OODg4ICtrS0ODg54fo4fP877vM/7/NbHfdzHiauuuuqqq6666qp/OypXXXXVVVddddVV/w6f+7mf+1uXLl3iBdnb2wNgb2+PzOR++/v7AGxvb7O9vc3jH/94XvEVX5Ht7W0kceedd3LnnXdy44038gqv8Ar82Z/9GU94whO48cYbufHGG3m913s9fvM3f5P9/X2+7/u+j/d4j/fg0Y9+NAC/+Zu/yf7+Pk94whN49KMfzV//9V/zGq/xGtx444385m/+Jvv7+zzxiU/k2LFj3Hffffzd3/0dr/Var8WjH/1onvCEJ/Dnf/7nAOzv7/OzP/uzbG9v88QnPpGXf/mXZ7FY8JZv+Zbs7+/zxCc+kSc+8Yns7++zv7/P/v4+d999NwDb29s88pGPpNbK9vY258+f54YbbuDlX/7l2d/fZ39/n/39fe6++2729/e5++67ud/+/j77+/vcfffdPOlJT+KBtre3Adja2mJ7e5vz589zww03sL+/z8HBAffb2toCYHt7m3/J/v4+D3RwcADA/v4+BwcHAOzv73NwcMAv/MIvcPfddwMgiX/J1tYW119/PVtbW1x//fVcf/31ABwcHPBXf/VXXH/99RwcHPC0pz2Nu+++m3vuuYfntrW1xSMe8Qge8YhHsLW1xaVLlwB48pOfzD333MOP/diP8UAv/dIvzcu8zMtwcHDA7/3e77G1tcU4jtxzzz0AbG1t8eqv/upcd911/O7v/i47Ozv88i//Mvd74zd+Y6677joAfvmXf5l77rkHgDd+4zfmuuuu4+DggL/5m78B4KVe6qXY2trinnvu4Z577gHg4Q9/OAD33HMPAFtbWwAcHh6yubkJwOHhIQAHBwccHh4CcHBwwNbWFg90/PhxPvzDP/y7vv7rv/59uOqqq6666qqrrvq3oXLVVVddddVVV131b/SWb/mWfrEXezF2d3d5bnt7e+zs7PBAu7u7AGxvbwPwjGc8gwc96EHs7Oxw55138vjHP57HPOYxPPrRj+YJT3gCf/Znf8Y0TTzmMY/hCU94Avv7+/zGb/wGD37wg3nN13xN9vf3+bM/+zP29/f5vu/7Po4fP85rv/Zr87qv+7r85m/+Jvv7+/zZn/0ZN9xwAwDb29u81Vu9FU94whP48z//c/b39/nzP/9ztre3+d7v/V5e8iVfktd4jdfg0Y9+NE984hP58z//cwD29/f58z//c574xCfyqEc9ilorT33qU3npl35pXv7lX579/X3+/M//nCc96Uncb39/n7/4i7/gL/7iL9je3uaGG26g73vuuusu/vIv/5IHPehBHDt2jNd+7dcGYH9/n/39fQ4ODrjrrrvY39/n7rvv5rnt7+8DsL+/z913340knvzkJ/NvIYl/K0k80NbWFgCPeMQjALj++uu5/vrrATg4OKC1xt/+7d/ym7/5m7zVW70VT37yk9nf3+c7v/M7eX62trZ4xCMewXXXXcf111/PwcEBf/VXf8XLvMzL8LSnPY2//uu/5rm99Eu/NC/zMi/DwcEBv/d7v8fv/d7v8YhHPIKDgwPud/311/PGb/zGHBwccHBwwNHREU972tO43xu/8Rtz3XXX8f3f//2cPn2ae+65B4CXfumX5rrrruN3f/d3WS6XAGxtbfHSL/3SPOMZz+AJT3gCAA972MMAeMpTnsLBwQEPf/jDAfid3/kdALa2tgC45557ANja2uJv/uZveNjDHsbzc/z4cV7ndV7nvW+77bb3/tmf/Vlx1VVXXXXVVVdd9a9H5aqrrrrqqquuuurf6LVe67UAOH78OLu7uxw/fpy9vT12dna43xOe8ARe6ZVeCYBaK3t7e9zv3nvv5UEPehCv+IqvyE/91E9x55138pjHPIZXfMVX5AlPeAJ33nknr/AKr8D29jav+IqvyG/8xm+wv7/POI787u/+Li/zMi/D/v4+T3jCE9jf3wdge3ubRz/60dx444389E//NPv7+9x11118//d/P5cuXeIlX/IleY3XeA0k8Wd/9mcA7O/vExFcuHCBu+66ixtuuIGXf/mX51GPehRPfOIT+fM//3MA9vf3+fM//3MAbrjhBu666y4e9ahHceutt/I6r/M6vPzLvzz7+/vcdddd3H333dx1110A7O/v88QnPpEnPvGJAGxvb3Prrbdy/fXXU2vlhhtuYHt7m+3tbW677TZe7uVeju3tbQD29/fZ39/n4OAAgLvuuov9/X0A7r77bv6rbG1tAbC9vc3W1hbb29tsb2+ztbXF9ddfz/0ODg64cOEC119/PQAHBwfs7+9z9913s7+/z2q14kd/9Ed5fra2tnjEIx7Bddddx/XXX8/BwQF/9Vd/xfXXX8+Tn/xk9vf3+bEf+zGe20u/9EvzMi/zMjzQwcEB119/PQcHBwBsbW3xiEc8gpd+6ZfmGc94BrPZjN///d/n4OAAgK2tLV791V+d6667joODA06fPs0999wDwHXXXcdLv/RL84xnPIPlcsk999wDwKu92qsBMJvNuOeeewB4+MMfDsC9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ozw/W1tbPOIRj+ARj3gEW1tbXLp0CYB77rmHe+65hx/7sR/jgba2tnj4wx/Oy7zMy3Dp0iW+//u/nxd/8Rfnx3/8x3mgV3/1V+fhD384v/d7v8f29jZ//dd/zf2uu+463viN35hnPOMZzGYzfvu3f5v7vdqrvRqXLl1iNptxzz33APDwhz+c6667jp/92Z/l4sWLAFx33XUA3HHHHQBcd911AOzu7gKwtbUFwO7uLvc7ODgA4ODggK2tLR7owQ9+MG/91m/Nz/3cz3HVVVddddVVV131r0Dlqquuuuqqq6666l/hxIkT7/XgBz+Y52dvb4+dnR329va4X9/37O3tsbOzw87ODufPnwfg0Y9+NH/6p3/K4x//eK699lpOnjzJ9vY2+/v73HjjjTzjGc/gFV/xFbnzzjvZ39/nT//0T3mbt3kbtre3ed3XfV1+8zd/k/39fe688062t7cBeL3Xez2e8IQn8Gd/9mfs7+/zZ3/2Z7zCK7wC3//938+7v/u78+hHP5rf/M3f5K677gLgiU98IseOHeOpT30qD3rQg5jP57zlW74ld911F3/+53/O/v4+APv7+/zWb/0Wf/7nf86jHvUoTpw4wfb2No961KN4+Zd/efb393nSk57EE5/4RPb39wHY399nf3+fu+++m7/4i79ge3ubG264gb7vueuuu9je3mZ7e5uLFy/y2q/92gDs7+8DcPfdd3PXXXcBsL+/z913380Ls7+/D8D+/j4Ad999Ny+MJP6jbG1tAXD99deztbXF9vY2W1tbXH/99QAcHBxw4cIFrr/+egAODg548pOfzP7+Pt/5nd/JC7K1tcUjHvEIrrvuOq6//noODg7Y2trinnvu4e677+av//qveW5bW1s8/OEP52Ve5mW4dOkSP//zP8+NN97INE389V//Nfe77rrrePVXf3XuJ4m//uu/5n7XXXcdb/zGb8wznvEMZrMZv/Irv8L93uiN3ojrrruOg4MDfuVXfoX7vdqrvRrPeMYzmM1mAEjiYQ97GM94xjO49957Abj22msBWK1WbG1tcb/5fM79Dg4O+Jdce+21n3Xvvfd+DlddddVVV1111VUvGipXXXXVVVddddVV/wpf/uVf/t38C/b393mg/f19ALa3t9nb2wNgZ2eHG2+8kTvvvJNaK9vb27ziK74iv/Ebv8ETnvAEHv3oR7O9vc0r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//zPAdjf3+fP//zPOXbsGPfddx8PetCDuO6663jLt3xLnvjEJ/LEJz6R/f19APb39/nzP/9ztre32d7e5olPfCKPetSjWCwWvPZrvzYv93Ivx1133cWTnvQk7rrrLh5of3+fv/iLv+Av/uIv2N7eZnt7m8ViQa2VG264gd/5nd/hQQ96EI985CO54YYbANjf32d/f5+DgwPuuusu9vf3OTg4YH9/H0m8KA4ODrjf/v4+AJL4z7C1tcX29jbXXXcdANdffz3XX3899zs4OODpT386v/d7v8fLvMzLsL+/zz333MP+/j7f+Z3fyQuztbXFwx/+cF7mZV4GgEuXLvFAP/ZjP8Zz29ra4hGPeAQv/dIvzaVLl/j5n/95brrpJqZp4q//+q+539bWFg9/+MN56Zd+aQDOnj3L7//+7yOJ+73US70UL/3SLw3A/v4+T3nKU7jfG73RG3HddddxcHDAr/zKryAJgJd6qZcCYJom7r33XgAe/vCHA/B93/d9ADzsYQ9ja2sLgIODA6677joADg4OuN+xY8d4xjOewQvz2q/92vzmb/7ma//DP/zDb3PVVVddddVVV131glG56qqrrrrqqquu+he87/u+728dP36c50cSAHt7e1y8eJGdnR22t7fZ29sDYGdnB4A777yTG2+8kUc/+tHceeedZCYAOzs73Hjjjdx555084QlP4MYbb+TGG2/kFV7hFfizP/sz9vf3+amf+ilOnDjBW7zFW7C/v8+f/dmfAfBnf/Zn7O/v03Udr/Ear8H29ja/+Zu/CcD+/j4RwXw+5/u///t5q7d6Kx796EfzhCc8gT//8z8HYH9/nz//8z/niU98Io9+9KN5+Zd/eR71qEfxqEc9irvuuos///M/Z39/H4D9/X329/e56667+PM//3Me9ahHUWvlL//yL3nJl3xJ3uIt3oL9/X3uuusu7r77bp74xCfyQPv7++zv73PXXXfxl3/5lwBsb29z/vx5ZrMZd911FzfccAO/8zu/w4Me9CCOHTvGy73cy7G9vc39Dg4O2N/fZ39/H4C7774bgP39fQAODg7Y39/nuUniX2Nra4v77ezssLW1xdbWFgDb29tsbW2xvb3N1tYW9zs4OODChQs85SlP4SlPeQov8zIvA8CTn/xkAPb39/nRH/1R/iXXXXcd119/PS/zMi8DwKVLl/i93/s9XuZlXoanPe1p/PVf/zXPz9bWFg9/+MN5mZd5GQ4ODgB4+tOfzmq14q//+q95oOuuu443fuM35uDggO///u/nxV/8xfnrv/5rJHG/N3qjN+K6667j537u5+j7nnvuuYf7vdqrvRrXXXcd3//938+ZM2e438Me9jCuu+46Dg4O+IM/+AMAtra2eNjDHgbA5uYmBwcHXHfddQA89alPRRLXXnstAPfeey8PdHBwwP0ODg7Y2triuX3sx37sb73f+72fuOqqq6666qqrrnrBqFx11VVXXXXVVVe9EK/+6q/+XQ9+8IN5fu68805ekDvvvBOAG2+8EYA777wTgBtvvBGA/f19/vRP/5RXfMVX5NGPfjR33nkn+/v7/Nmf/RnTNPGYxzyGu+66izvvvJP9/X12dnb43d/9XV7zNV8TgD/7sz8D4AlPeALb29s84xnP4N3f/d258cYb+Zmf+Rn29/cB+PM//3O2t7f53u/9Xl7yJV+S13iN12BnZ4c/+7M/Y39/H4CDgwP+/M//nCc+8Yk86lGP4p577uElX/Ilebd3ezee+MQn8sQnPpG77rqL++3v7/MXf/EX/MVf/AXb29vcd9991Fr5y7/8S17yJV+S137t1+blXu7lODg44IlPfCL7+/vcddddAEjifvv7++zv7/OkJz2J+21vb3PrrbcC8KhHPYr9/X22t7fZ3t5ma2uLra0trr/+em677TYe+chHcv311/OC7O/vcz9J2OaBJGEbgO3tbV6Qg4MDAC5cuMAtt9zCAx0cHLC/v8/dd98NwP7+PnfffTdPetKTkMS/ZGtri0c84hFcf/31XHfddQBcunSJ3/u93+NlXuZleNrTnsY999zDj/3Yj/H8bG1t8TIv8zI8/OEP59KlS/ze7/0e29vbPOUpT+Hg4IAH2tra4tVf/dW57rrr+Nu//Vt+/ud/nkc+8pH89V//Nffb2tri1V7t1bjuuuv4/u//fs6cOcM999zD/V7qpV6Khz/84fzcz/0cZ86c4Z577kESW1tbvNqrvRrPeMYzeMITnsD9XvVVXxWAv/mbv+Hg4ACAa6+9FoCnPOUpAFx77bXcb3NzE4Dz58/zQIeHh2xtbfHcjh8/zuu+7uv+1m/+5m++DlddddVVV1111VXPH5WrrrrqqquuuuqqF+Jt3uZt3psXYG9vj52dHe53dHQEwM7ODnfccQfPeMYzOHHiBAB33nknd955JzfeeCM33ngjd955J49//OOZz+e85Eu+JE94whO48847ufPOO7nhhhs4fvw4r/d6r8f3fu/3AnDXXXexs7PD7/7u7/Kar/maAPzZn/0ZAPv7+2xvb7O/v09m8lZv9VY84QlP4M///M8B2N/f59ixY8znc77hG76Bd3/3d+et3uqteMITnsCf//mfc7/9/X3+/M//nO3tbe677z5uueUWFosFb/mWb8n+/j5PfOIT+fM//3MeaH9/n7/4i7/gL/7iL9je3ua+++6j1soNN9zArbfeysu93Muxvb3N/v4+d999N3fddRf7+/vcfffdPD/7+/vs7+8DcPfdd3O/nZ0dbLO9vc329jYAGxsb3HHHHWxvbxMRXH/99Wxvb3O/7e1t/iX7+/tsb2/zQPv7+wDs7e2xv7/PwcEB+/v7HDt2jFtvvZWDgwP29/c5ODjgBZHE87O1tcUjHvEIAF7mZV4GgIODA/7qr/6K6667joODA/72b/+We+65hx/7sR/j+dna2uLhD384j3jEI9ja2uLSpUsAPP3pT+fee+/lqU99Ks/tpV/6pXnpl35pLl26xPd///fz4i/+4txwww0cHBwAIInrrruON3qjN+LSpUscHBxw5swZ7rnnHu738Ic/nJd+6Zfmb//2b+n7nnvuuQdJALzqq74qly5dYpom7r33XgCuvfZarrvuOv72b/+Wpz71qQA87GEPY2tri4ODA+677z4Atra2AHjqU5/Kwx72MACmaeL5OTg4YGtriwd6szd7s9f+zd/8Ta666qqrrrrqqqteACpXXXXVVVddddVVL8DrvM7rvNeDH/xgntsdd9zBTTfdxHPb29sDYHt7m4ODA2qt7OzscOONN3LnnXfy+Mc/nhtvvJFXfMVX5Kd+6qc4ODhgtVoB8Hqv93p87/d+LwBPeMIT+NM//VM+/MM/nNd7vdfjN3/zNwF4whOewKMf/Wh+7/d+j9d4jdcA4M/+7M8A2N/f56d/+qd59KMfzWq14jVe4zUA+PM//3MA9vf3+fM//3OOHTvGk570JFarFa/xGq/Box/9aJ74xCfy53/+59xvf3+fP//zP+eJT3wij3rUozhx4gR//dd/zWu8xmvwqEc9irvvvpsnPvGJ3HXXXTzQ/v4+f/EXf8Ff/MVfsL29zfXXX0/f99xwww38zu/8Dg960IN47dd+bQD29/fZ39/n4OCAu+66i/39fe6++26eH0ns7+8DcHBwwN13382LYnt7mxfVwcEBz00S/xaSANja2uL6669na2uL6667juuvvx6Ag4MDnv70p/N7v/d7vMzLvAxPfvKT2dra4ju/8zuRxAuytbXFwx/+cF7mZV6Gg4MD/uqv/oqXeZmX4WlPexp//dd/jSSe20u/9Evz0i/90hwcHPB7v/d7POIRj2CaJv76r/+a+0nipV7qpXjpl35pnvGMZzCbzfiVX/kVHuilXuqleOmXfmn+9m//lrvvvpt77rkHSQC84Ru+Iddddx3f//3fT2Zyv5d6qZcCwDYHBwcAPOxhDwPgb//2bwF42MMeBsBTn/pUADY3NwE4ODhga2sLgN3dXWqtXHvttTw/D37wg3nxF3/x1/77v//73+aqq6666qqrrrrqeVG56qqrrrrqqquuegHe/M3f/Lv5F1y4cIEbb7yRnZ0d7rzzTgBuuukm/uzP/ow777yTG2+8kVd8xVfkp37qp3jCE57A67/+63PjjTdy0003ceedd/KEJzyBe++9l7d4i7fgFV7hFfizP/sz9vf32dnZ4ed+7ud4i7d4C/b39/mzP/szAJ7whCfw6Ec/GoBXeIVXAODP/uzPANjf3+eJT3wit912GwCv8RqvwaMf/Wh+5md+hv39fQD29/f58z//c7a3t3nYwx7GDTfcwMu//MvzqEc9iic+8Yn8+Z//Offb39/nz//8z3niE5/IDTfcwF133cUNN9zAxYsXeYu3eAv29/e56667eNKTnsRdd93FA+3v77O/v8+TnvQkALa3tzl//jxPetKT2Nra4oYbbuDWW2/l2LFjvPZrvzYA+/v7ANx9993cddddABwcHHD33Xfzb3FwcMC/lSReFFtbWwBcf/31bG1tsb29zdbWFtdffz0ABwcHtNb427/9W66//noODg548pOfDMDdd9/Nk5/8ZF6Yra0tHv7wh/MyL/MyAFy6dAmAg4MDAH7sx34MAEk80Eu/9Evz8Ic/nK2tLX7v936P3/u93+NlX/Zl+eVf/mUeaGtri1d/9VfnuuuuA+DixYv8zd/8DQ/0aq/2ajz84Q8H4O677+aee+7hfi/1Ui/Fddddx/d///dz5swZ7r33XgAe9rCHcd111/G7v/u73HrrrQBce+21XHfddQA89alPBeDaa68F4N577wVga2sLgMPDQ+43TROr1QqAw8NDtra2eG4f8zEf81vv937vJ6666qqrrrrqqqueF5Wrrrrqqquuuuqq5+N1Xud13vvBD34wz8+dd97JTTfdxN7eHqvVir29Pba3t7nzzjsB2N7eBuDxj388r/iKr8j29jb3e/zjH89jHvMYXuEVXoE777yT/f19dnZ2eMYznsFjHvMYnvCEJ7C/v8/+/j47Ozv87u/+Lq/5mq8JwJ/92Z8B8IQnPAGArut46Zd+aW644QZ+5md+Bkns7+9z4sQJnvGMZ/C3f/u3vPmbvzlv9VZvxROe8AT+/M//nPvt7+/zMz/zMzz60Y/m5V/+5fnrv/5rXuM1XoNHPepRPPGJT+TP//zPud/+/j5PfOITeeITn8j29jaPetSjqLXy1Kc+lQc96EG8xVu8Bfv7+9x111086UlP4q677uK5HRwc8KQnPYknPelJAGxvb7O1tcX29jar1Yrrr7+e3/md3wHgQQ96EI985CO54YYbuN/+/j4HBwfs7+8DcPfddwOwv78PwMHBAfv7+/xHkMTW1hb3297eZmtri62tLQC2t7fZ3t7muuuu44EODg54+tOfzj333MNf/MVf8Nqv/drs7+9zzz33sL+/z3d+53fywkgCYGtri4c//OG8zMu8DAAHBwf83u/9Hi/zMi/D0572NJ7ylKdwcHDA/SRxv5d+6Zfm4Q9/OFtbW/ze7/0eL/MyL4MkbrjhBu655x4e6KVf+qV56Zd+aS5dusQ3fMM3cN1113FwcMADvdEbvRHXXXcd3//938+ZM2e45557AJDEtddey0u91Evxu7/7u5w5c4Z7770XgK2tLV7t1V6NZzzjGSyXS+73Ui/1UgA89alP5X7XXnstAPfeey8A1157LQD33nsv1157LQcHB0zTxP0ODg649tpreW7Hjx/nlV7plT7rT/7kTz6Hq6666qqrrrrqqudE5aqrrrrqqquuuur5eJ3XeZ334gXY2dnhfvP5nJ2dHQD29vYA2NnZ4cYbb+TOO+/kzjvv5MYbb+TGG2/kzjvv5E//9E/Z2NjgQQ96EDfeeCN33nknd955J49+9KPJTN7mbd6G7/3e7wXgzjvvZGdnB4BHP/rRAPzZn/0ZAE94whPY3t7mb//2b/mwD/sw3uM93oOf+ZmfYX9/H4D9/X2OHTvGfffdx2233cZrvMZr8OhHP5rf/M3f5K677gJAEk984hO56667uOGGG9jf3+ev//qveY3XeA0e9ahH8cQnPpE///M/54EODg74i7/4C/7iL/6C7e1tFosFJ06c4K//+q950IMexFu8xVuwv7/PXXfdxd13383+/j533303z21/f5/9/X3uvvtunvSkJwGwvb3N1tYW58+fZzabcddddyGJ66+/nu3tbba3t7n++uu57bbbeOQjH8nW1hbb29s8t4ODA2xzv4ODA16Yra0t7re9vc3zc3BwAMDTn/50HvGIR/BABwcH7O/vc/fddyOJ/f197rvvPn70R3+UF8XW1haPeMQjAHiZl3kZAC5dusTv/d7v8TIv8zI8+clP5uDggB/7sR/j+dna2uLhD384L/3SLw3A7/3e7/EyL/MybG9v8+M//uM8t62tLd74jd+Yra0tfu/3fo/t7W22trY4ODjgfltbW7zaq70a1113Hd///d/PmTNnuOeeewCQxLXXXssbvdEbAVBK4d577+V+r/qqrwrANE3ce++9AFx77bVcd911/M3f/A1Pe9rTAHjYwx7G1tYW9957LwcHBwBsbW0BcHBwwEu+5EuytbUFgCT+JW/2Zm/22n/yJ3/yOVx11VVXXXXVVVc9JypXXXXVVVddddVVz+Xmm2/+rhd7sRd7bV6Avb097nfnnXcCcNNNN/Gnf/qn3Hnnndx4443ceOON3HnnnTz+8Y/nxhtv5BVf8RX5qZ/6Kfb397n33nt50IMexCu8witw5513AvCnf/qnnDhxgrd4i7fg9V7v9fiN3/gNAJ7whCcA0HUdL/3SLw3An/3ZnwGwv7/Pzs4O+/v7ZCZv9VZvxROf+ET+7M/+DID9/X3+/M//nO3tbf72b/+W13iN1+Ct3uqteOITn8if//mfs7+/D8D+/j5PfOITueuuu7jhhhu46667uOGGG3jUox7Fox71KO666y6e+MQncvfdd/NA+/v7/MVf/AV/8Rd/wfb2NovFguVyyaMe9SiGYeC1X/u1Adjf3+fuu+/mrrvuYn9/n7vvvpvnZ39/n/39fe6++26e9KQnIYn7bW9vs7W1xfb2NgDjOAKwvb3NsWPH2Nra4qabbgJga2uL/f19tre3Adje3ubf4s477+TSpUscHBxw1113AXDLLbfwu7/7u+zv73PPPffwQJJ4UWxtbXH99deztbXFIx7xCLa2tjg4OODChQscHBwA8LSnPY2DgwN+7Md+jBdka2uLRzziEbz0S780BwcHABwcHLC9vc2P//iP89y2trZ4+MMfzku/9EvzjGc8g+/5nu/h4Q9/OE972tN4oOuuu443eqM34tKlSxwcHLBYLLjnnnu437XXXssbvdEb8YxnPIM77riDpz71qdzvpV7qpbjuuuv4/u//fjKT+73US70U9zs4OADgYQ97GLu7uzz1qU8F4GEPexgAT33qU3mgw8NDrr32WgDuvPNOHvawh/H83Hjjja/9Sq/0Sp/1J3/yJ5/DVVddddVVV1111bNRueqqq6666qqrrnou7/Zu7/baPJc77riDm266CYCLFy8CsLOzwxOe8AQAtre3AXj84x/PjTfeyI033gjAnXfeyTOe8Qwe9KAHceONN3LnnXfyhCc8gdVqxWu+5mvy6Ec/mic84Qns7+8D8Lu/+7u85mu+Jnt7e/z5n/85AE94whN49KMfzV//9V/z0i/90gD82Z/9GQD7+/v89E//NI9+9KNZrVa8xmu8Brb58z//c+63v79PRLBer/n5n/95XuM1XoO3fMu35IlPfCJ//ud/zv329/d54hOfyBOf+ES2t7d5+Zd/eR71qEexWCx4y7d8S/b393niE5/IX/zFX/Dc9vf3+Yu/+AsA/uIv/oIbbriBJz7xiTzqUY/id37nd3jJl3xJXvu1XxuA/f197r77bu666y729/e5++67+Zfs7++zv7/P3Xffzb9ke3ubB9re3uaF2d/f536Hh4e8MOfPn+f5kcTzs7W1xdbWFtdffz3XXXcd119/PQAHBwdcuHCBv/qrv+JlXuZlODg44Pz58/zGb/wGL8zW1hYPf/jDecQjHsHW1haXLl3i4OAAgN///d/nKU95Cs9ta2uLhz/84bz0S780ly5d4vu///t58Rd/cba2trjnnnt4oJd6qZfipV/6pXnGM57BbDbjV37lV3ig6667jjd6ozfiGc94Bru7uzz1qU/lftdeey0v9VIvxe/+7u9y5swZ7r33XgAe9rCHcd111/G7v/u7POMZzwDg2muv5dprr+UZz3gGT33qUwG49tprAbj33nsBuPbaawG49957ufbaawFYrVbc79577+Xaa6/lfsePH+d1Xud13vtP/uRPPoerrrrqqquuuuqqZ6Ny1VVXXXXVVVdd9Vxe4RVe4cG8APv7+5w7d47d3V12dna4387ODpK48847AdjZ2QFgf3+fo6MjAB796Edz1113sb+/zziOPOMZz+AVX/EVufPOO9nf32d/f59xHPnbv/1bHvOYx3DXXXdx1113AfCEJzyBV3iFV2B7e5tXeIVXAODP/uzPANjf3+fP//zPuXjxIgCv8RqvwaMf/Wh+5md+hv39fe7353/+52xvb/OkJz2JV3iFV+DlX/7ledSjHsUTn/hE/vzP/5wH2t/f57d+67f48z//cx71qEdxyy23sL29zcu//MvzqEc9irvuuou7776bJz7xiTy3/f19nvjEJ/LEJz6Rv/zLvwTgaU97GqvVikc+8pFsb29z66238shHPpIbbrgBgP39ffb39zk4OOCuu+7i4OCAu+++m3+Lg4MDHujg4IAXhST+rba2tgC4/vrr2dra4rrrruP666/nfgcHBzz96U/n+uuv5+DggP39fc6fP8/+/j4/9mM/xguztbXFwx/+cLa3t3n4wx/OwcEBW1tbHBwc8PSnP52nPOUpHBwc8Py89Eu/NC/90i/NwcEBv/d7v8fv/d7v8ahHPYq/+Zu/4YG2trZ4tVd7Na677joALl68yN/8zd/wQA9/+MN5tVd7NQB2d3f5m7/5G+537bXX8kZv9EY84xnPYLlccu+993K/V3u1V+MZz3gGq9WK+z3sYQ8DYJom7vewhz0MgHvvvReAra0tAA4PD7nfNE0cHBwwTRObm5s8twc96EFcddVVV1111VVXPRfK8ePHueqqq6666qqrrrrfm7/5m3/Xy7zMy7w0z2Vvb4+dnR2GYeD222/nZV7mZQD40z/9U6677jqOHz/OnXfeyblz57jxxhs5ffo0e3t7nDt3jnPnznHixAmuvfZazp07x/7+PufOneOJT3wir/Ear8FsNuPpT386AOfOnePaa6+llMKLvdiL8fSnP51hGAC46667AHja057Gq7zKqwBw1113IQmAxWLBcrnk937v97j55pt5mZd5Gfq+56677uJ+wzBw11138aQnPYnTp0/z+Mc/nld5lVfhUY96FLPZjLvuuosHGoaBu+66iyc+8YlcuHCB9XrNX/7lX7K9vc0rvdIr8ahHPYpTp04xm804f/48z20YBoZh4Pz589x66638xV/8BU960pMopTCbzViv12xvb/Prv/7r9H3P1tYWL/VSL8UjH/lIXu7lXo5H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JjP567/+a/70T/+UpzzlKdxzzz0Mw8ALct111/Hwhz+cN3mTN+HhD384pRT+7M/+jOuvv54//dM/5U//9E+55557eH5e+qVfmld/9Vfnlltu4fd+7/e4/vrredrTnkZEMAwDD3TdddfxFm/xFrTW+PEf/3H6vufxj388D3TttdfyRm/0RjzjGc/gO77jOzh79iwP9IZv+IZcd911HBwc8PjHP577XXvttbzaq70af/u3f8tTn/pUDg8PAXjt135ttra2+Lmf+znGcQTgtV7rtej7nr/4i7/g8PCQl3/5l6fve572tKfR9z0333wzt99+O+M4cu2113L+/HmOHz/OA21ubh5/3OMe9zv33XffrVx11VVXXXXVVf/fUbnqqquuuuqqq64CXud1Xue9eD4uXLjAzTffDMAdd9zBjTfeyI033sgTnvAEALa3twG48847ecYznsGDHvQgbrzxRu68805aazzjGc/gMY95DE984hO588472d/fZ7VakZm83uu9Ht/7vd8LwP7+Pj/1Uz/Fe77ne/LoRz8agN/8zd8EYH9/n52dHe677z5uu+02XvqlXxqAP//zP+d+T3ziEzl27Bjf+73fy0u+5EvyGq/xGtx444385m/+Jvv7+wBIYn9/n5/92Z/lhhtu4K677uKpT30qr/Ear8GjHvUonvjEJ/Lnf/7nPND+/j5PfOITeeITn8j29jZPe9rTqLXyl3/5l7zkS74kr/3ar83LvdzLcffdd3PXXXfxxCc+kRdkf3+f/f19nvSkJwGwvb3N1tYW29vbzGYz7r77bq6//np+93d/l1tuuQWAM2fO8HIv93I80P7+PgAHBwfs7+8DcHBwwP7+PgAHBwc80P7+Ps+PJO63vb3N/ba2tgDY2toCYHt7m62tLQCuv/56Hujg4ACApz/96dx77738xV/8Ba/1Wq8FwJOf/GQA/v7v/5577rkHAEn8S7a2tnj4wx8OwMu8zMsAcOnSJX7v936Pl3mZl+HpT386T33qU3nqU5/K87O1tcXDH/5wXvqlXxqA3/u93+NlXuZlkMRP/MRP8Ny2trZ4tVd7Na677jr+9m//lp//+Z/nxhtv5N577+WBXuqlXoqXeqmX4hnPeAbTNHHTTTfxQG/4hm/IddddB8Af/uEf8kCv+qqvyqVLl7DNvffeC8C1117Ltddey9/8zd+wtbXF4eEhD33oQ9na2uJv/uZvuPfeewHY2tpid3eXpz3tabzkS74k99vc3ARgd3eXBz3oQTy3xz72sa/193//97/NVVddddVVV131/x160IMexFVXXXXVVVddddU3fdM3Pf2aa655MM/l8Y9/PI95zGN4/OMfz5//+Z/zHu/xHtx555385E/+JG/5lm/Jgx70IH7qp36KO++8k0c/+tG8/uu/PnfeeSc/9VM/xf0+/MM/nP39fb73e78XgO3tbV7v9V6PG2+8kSc84Qn8xm/8Bvfb2dnhwQ9+MK/xGq/Bn/3Zn/Fnf/ZnPNArvMIrsFqteI3XeA3+/M//nD/7sz/jub38y788f/Znf8a7vdu7ERE88YlP5M///M95fh71qEfx+Mc/npd4iZfgNV7jNdjf3+eJT3wiT3ziEzk4OOAF2d7e5pGPfCQ33HADN9xwA3/3d3/HS7zESwCwv7/Pk570JO666y7uvvtuXhSSuN/29jZbW1tsb29z/fXXA7C9vc3W1hbb29v8/u//PseOHePYsWMAHDt2jIhge3ub/2iXLl3i0qVLXLp0CYBLly7x6q/+6hwcHABw9913c3BwAMDdd9/NPffcwwsjiedna2uLhz/84Vx//fVcd911ANx2223ccsstHBwc8JSnPIWnPOUpHBwc8IJsbW3x8Ic/nJd+6Zfm4OCAv/qrv+L3f//3ec3XfE2e8pSn8Py81Eu9FC/90i/NpUuX+Lmf+zle/MVfnL/5m79BEg/0hm/4hlx33XX83u/9Hjs7O/zN3/wND/Rqr/ZqPOxhD+Pnfu7nmM1m3HvvvdzvDd/wDbn22mu59957+dVf/VXu94Zv+IZce+21fP3Xfz3Hjx8H4A3e4A249tpr+cM//EOe9rSn8dCHPpRXfdVX5W/+5m/4u7/7O17lVV6Fhz3sYfzsz/4sL/ZiL8bDHvYwnva0p/HQhz6U53b27NlnfPAHf/CDueqqq6666qqr/r+jctVVV1111VVX/b/3Yi/2Yq/Nc9nd3eX48ePs7e0BsLOzw6VLlwDY3t4G4MlPfjIPetCDeMVXfEV+6qd+ijvvvJNnPOMZPOhBD+LGG2/kzjvvZHt7mzvvvJMbb7yRV3zFV+RP//RP2d/f5zd+4zc4ceIEb/EWb8He3h5/9md/hiT29/e59dZbAXiN13gNAP7sz/6M+/3Zn/0ZN9xwA9///d/Pu7/7u/OoRz2Kn/mZn2F/f5/7/fmf/zmSeNKTnsRqteI1XuM1eNSjHsWf//mf88QnPpEHeuITn0hEME0Td911F9vb2zzqUY/i5V/+5XniE5/I3XffzROf+ESe2/7+Pn/xF3/BX/zFX7C9vc3111/PXXfdxQ033MCtt97K9ddfz8u93Muxv7/P/v4+d999N3fddRd33303/5L9/X329/e5++67edKTnsRz297e5o477mBra4vt7W0Atre32draAmB7e5sH2tra4vmRxP329/e538HBAQD7+/sAHBwccHBwAMD+/j7f+Z3fyb+FJAC2trbY2triuuuu4/rrr+e6664D4ODggL/6q7/iuuuu45577uH8+fP8xm/8BgCSeEG2trZ46Zd+aR7+8IdzcHDA/SRxww038JSnPIXndt111/Fqr/ZqbG1t8Xu/93s84hGPoLXG3/zN3/BAW1tbvOEbviH3Ozo64ulPfzoP9Gqv9mo87GEP4+d+7ueYzWbce++93O8lX/Ilufbaa/n+7/9+Njc3ud/DHvYwrr32Wg4ODjh+/DgA1157Lddeey1/8zd/w7333gvAtddeC8Dh4SEA1157LQDPeMYzeKVXeiUADg4OANjd3eX48ePc78yZMw96sRd7sdf+h3/4h9/mqquuuuqqq676/4zKVVddddVVV131/94111zz4GuuuebBPMClS5c4fvw4+/v7AGxvb2MbgJ2dHW688UbuvPNOdnd32dnZAWB/f5/f+73f40EPehCv+IqvyE/91E+xv7/PE57wBKZp4tGPfjSPf/zj2d/fZ39/n52dHX7v936P13iN10ASf/ZnfwbA/v4+t956K6/xGq/BK7zCK7C9vc1v/uZvcr+77rqLnZ0dvuEbvoF3f/d3563e6q14whOewJ//+Z/zQH/+53/O9vY2L/3SL8329jav8zqvw8u//MvzW7/1W9x111080BOf+ESe+MQnsr29zaMe9SjuueceHvSgB/Har/3avNzLvRxPfOITufvuu7nrrrt4bvv7++zv7/OkJz2JnZ0dtra2mM1m3HXXXfzVX/0Vt9xyC9dffz0v93IvB8D+/j533303d911F/v7+9xzzz38a+zv7wOwv7/PPffcw7+FJP4tJPGvsbW1BcAjHvEIAK6//nquu+46AA4ODvirv/ornvzkJ/OIRzyCu+++m4ODA77ru76LB5LEc9va2uLhD384L/3SLw3ApUuX+Pmf/3luuukmnvKUp3BwcIAkntvW1hav9mqvxnXXXccznvEMvud7voeHP/zh/Mqv/Ar3kwTAS73US/FSL/VSXLp0iVIK3/u938tze8M3fEOuu+46AGazGffeey/3u/baa3mpl3op/vZv/5ZrrrmGe++9F4CtrS1e9VVflWc84xn85V/+Jfd7yZd8SQD+9m//FkkAPOxhDwPg3nvvBWBra4uDgwNOnjzJ1tYWAIeHhwBcunSJ48eP80Av9mIv9lr/8A//8NtcddVVV1111VX/n1GOHz/OVVddddVVV131/9v7vu/7ftU111zzYB7g0qVLHD9+nL/+67/mMY95DLPZjD/90z9lZ2eHM2fOsL+/z9Of/nSOHTvGLbfcAsCdd95J13WcOHGCm2++mTvvvJODgwPOnTvHzTffzI033sjp06d5whOeAMD+/j4nTpzg4OCARzziEZw7d479/X0AhmHgCU94Arfffjuv+qqvyqMf/Wie/vSnMwwDkhiGgZ2dHf7sz/4M27zKq7wKj370o3n605/OMAzcbxgGnv70pzMMA9vb21y8eJFXfMVXZHt7m2EY2N/f54GGYeCuu+4C4Pjx4wA8/vGP50EPehAv//Ivz6Me9Shmsxn7+/sMw8ADSWIYBg4ODrj11lt50pOeBEAphdlsxnq95md/9mdZrVacOnWKl3qpl+JRj3oUL/dyL8cjH/lITp06xYMf/GBmsxl933NwcMALI4l/C0n8W0ni+dna2qLvex70oAfxoAc9iEc84hG88iu/Mi/zMi/Di73Yi7G9vY0knv70p/N7v/d7PPShD+XJT34yFy5c4LbbbuMpT3kK99xzDwcHBzyQJO63tbXFYx/7WF791V+dl37pl2Zra4s/+ZM/4dSpUzztaU/jaU97Gvfccw/DMCCJB9ra2uIVX/EVebVXezVaa0zTxF133cXFixc5ODjgfpLY2tritV/7tXn4wx/O7/3e7/HjP/7j3HnnnTzQ1tYWr/3ar811113H93//93PPPfdw7733cr9rr72WN3zDN+QZz3gG58+f5/bbb+d+r/3ar83W1hbr9ZonPOEJAFx77bW85Eu+JH/zN3/D4eEh4zjy0Ic+lJtvvpm/+Zu/4Y477uChD30oN998M3fccQd33HEHL/dyLwfAHXfcwc0338wznvEMrrvu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PPShD2Vzc5O/+Zu/4ejoiGuvvZYH2t3d5fjx49zvGc94Btdcc82D77vvvlu56qqrrrrqqqv+v6Fy1VVXXXXVVVdd9Xzceeed3Hjjjdx44408+clP5kEPehCv+IqvyE/91E8xTROXLl3ixhtvZHt7m/39fXZ2dnjGM57BYx7zGO666y7uvPNO9vf3mc1mPOMZz+Axj3kMd911F3feeScAf/Znf8YrvMIrcNttt/HSL/3SAPzZn/0ZAPv7+/zZn/0Zly5dAuA1XuM1uPHGG/nN3/xN9vf3ud+f//mfs729zfd93/fxEi/xErzGa7wGj3rUo/it3/ot7rrrLh5of3+fn/3Zn2V7e5trrrmGRz3qUdxwww086lGP4olPfCJPetKTuOuuu3hu+/v7PPGJT+SJT3wi29vbnD9/nrvuuou/+qu/4pZbbuGRj3wkL/dyL8f+/j533303d911F0960pN4bpJ4oP39fQD29/d50pOeBECtlf39fQAuXLjAhQsXWK1WHBwcAPAXf/EXHD9+HIBjx45x7Ngxjh07xjXXXMOxY8f4z3Dp0iUALl26xLlz5zh37hyXLl3ijjvu4M3f/M3Z39/n4OCAg4MDDg4OODg44L777gPgl37pl/iXSOKBtra2uO6669ja2uKlX/qlATg4OOCv//qv+Yu/+Ate7uVejq2tLZ761KfyEz/xE7wwW1tbvNRLvRQPf/jDuXTpEgAHBwecPXuWn/zJn+T52dra4g3f8A3Z2tri937v9/j93/99brrpJv72b/+WB9ra2uJVX/VVufbaawHY3d3lb//2b7mfJK699lre4A3egGc84xlM08Qf/dEfcb9rr72WN3iDN+AZz3gGBwcH3HvvvQBsbW3xki/5kjzjGc9gsViwt7cHwEu+5Ety6dIlNjY22N/f56EPfSgAR0dHPPShD2Vzc5MHesYznsHx48e536233spVV1111VVXXfX/FuX48eNcddVVV1111VX//2xubh7vuu6jX+qlXoq/+Zu/4brrriMimM1mzGYz7rjjDm666Sb29vZ4+tOfTkTwiEc8gjvvvJM777yT2267jVd4hVdgNpvx9Kc/nf39fZ70pCfxGq/xGtx44438zd/8DQB33XUXx44d49SpUzzsYQ/j6U9/OsMwAHDXXXfxoAc9iDvuuIMXf/EXZzabcdddd3G/+XxO13X85m/+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J0/yJ3/yJ9hmtVrx3N7wDd+Qhz3sYfz8z/88q9WKO+64g/ttbm7yqq/6qpRSWK1WnD9/nvtdd911vORLviR/+7d/yxOf+EQODw8BeJVXeRW2trb4/u//flprbG5u8iqv8io84xnP4OLFi9x888089KEP5UlPehJPf/rTebmXezkA7rvvPk6cOMHf/u3f8qhHPQqA3//937/13Llzv8NVV1111VVXXfX/DeX48eNcddVVV1111VX//9xwww3v/cZv/MYvDfBSL/VS3O/cuXPs7Oywt7fHwcEBN910Ezs7OzzhCU/g+PHjPPShDwXg6U9/Otvb2zz0oQ9lZ2cHgLvuuothGDhx4gSlFG655RbOnTvH/v4+wzBw5513ctNNN9F1HY95zGN4+tOfzjAMANx1110sl0se+tCHcvr0aR796Efz9Kc/nWEYABiGgbvuuovlcsnv//7vc+zYMV7zNV8TgIODA4Zh4H7DMHDXXXdhG4A77riDF3/xF+dRj3oUp0+f5vz584zjyAMNw8D58+e59dZbsc18PgfgCU94AqdPn+YVX/EVeeQjH8np06dZr9ccHBzwggzDwMHBAQcHBzzpSU+ilAJArZW+7xmGgZ/7uZ/j3nvvpes6tra2eKmXeike+chH8nIv93I88pGP5MEPfjDXX389p06dYmtri9lsxvb2NgcHB7wwkvi3kMSLamtri77vOXnyJNdffz233HILj3jEI3ixF3sxXuM1XoMXe7EX48Ve7MU4deoUx48f5+677+bJT34yv//7v89DHvIQnvzkJ2Ob2267jeVyyVOe8hTuueceDg4O+Jdsb2/zmMc8hjd+4zfmsY99LIvFgj//8z/n5MmTPO1pT+Pxj388j3/847l48SL3k8T9tra2eMxjHsPrvM7rsLW1xZ/8yZ8QETztaU/j9ttv54EksbW1xaMf/Whe7dVejXvuuYdv//Zv58yZMzztaU/jgba2tnjt135tNjc3GYaBu+++m3vvvZf7bW5u8qqv+qrM53NWqxW/9mu/xv2uu+46Xv/1X59nPOMZ3H777dx7770AvMRLvAQPe9jDuPfee7n77rsBePmXf3lOnDjBhQsXePrTn86jHvUoTpw4wX333cfW1hYnTpzgjjvu4Nprr6Xvex71qEdxvz/90z/lrrvu+h6uuuqqq6666qr/b9CDHvQgrrrqqquuuuqq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q6666qqrrvqcz/mc37rlllte+84772QcRx784AfzG7/xG9RaeYu3eAv+9E//lMc//vGUUnj3d393nvCEJ/Abv/EbbG9vs7+/z4d92Iexv7/P937v9wKws7PD3t4e7/7u705E8NM//dPs7+/zQC/xEi/Ba7zGa/Bnf/Zn/Pmf/zkPtL29zd7eHi/xEi/Ba7zGa3DXXXfxW7/1W+zv7/PcHvWoR/GEJzyBl3iJl+DVX/3V2d/f58///M950pOexAuyvb3NIx/5SP7sz/6MV3/1V+clXuIl2N/f5+677+auu+7iSU96Ei+K7e1ttra2uOGGG7jhhhu4/vrr+bu/+zuOHTvGLbfcAsD+/j533303+/v73H333RwcHHBwcMC/hST+LSTxbyGJfy1JvCBbW1tsbW1x3XXXcd1113Hddddxv0uXLvF3f/d3vPqrvzoHBwc85SlP4d577+Wee+7hBZHEA1177bU8/OEP52EPexgHBwf89V//Nbfddhsv9mIvxlOf+lQODg4AkMRze9jDHsZLvuRLsrW1xd/93d/xe7/3e7z0S780T33qU5HEA21ubvKqr/qqXHvttfzd3/0dP//zP8/NN9/Mc3vVV31VHvrQhwLwt3/7t/zd3/0d97v22mt5/dd/fS5dusQ3fMM38KAHPQhJALze670e1157Ld///d9PRADweq/3elx77bV8//d/PxHBQx/6UF75lV+Z3/3d3+XOO+/kXd7lXdjd3eXixYs85CEP4bd+67e+5+u//uvfm6uuuuqqq6666v87yvHjx7nqqquuuuqqq646e/bsrW/8xm/83rPZjL/5m7/hJV/yJQG477772NjY4Oabb+YJT3gCd9xxBwAv93IvB8DTn/50tre3+f3f/31e/dVfncc85jH87d/+LcMwsLOzw5//+Z/zEi/xEjzmMY9hGAbOnTvH/Z785CcD8Cqv8io8+tGP5ulPfzrDMAAwDAOSeNKTnsRtt93Gi7/4i/PoRz+a2WzGXXfdxQOdP3+enZ0dNjc3+eVf/mV2dnZ4pVd6JR71qEfR9z133303z20YBu6++252dnaotdL3PX/yJ3/CjTfeyEu91EvxyEc+ktOnT7Nerzk4OOAFGYaBw8ND7r77bp70pCfx5Cc/meVySUQgie3tbWazGXfddRfXXnstL/dyL8eLv/iL84hHPIIHP/jBXH/99fR9z2w2A2AYBl4YSfxrSeLfQhL/FpLY2tri5MmTPPzhD+e6667jpV/6pXn1V391HvvYx/Lwhz+cra0t7rzzTq699loODg64cOECd9xxBxcvXuQP/uAPePzjH8+9997LwcEBL4wkrr32Wh7+8IfzRm/0Rjz84Q+nlMKf//mfc91113F4eMjdd9/NvffeyzAMAEjigV7yJV+SV33VV+VhD3sY99xzDz/4gz/ITTfdxO7uLhcvXgRAEvd7yZd8SV77tV+b1ho/8RM/wZ/92Z9x880380Cbm5u89mu/NjfffDM/8AM/wC/8wi+wXq+537XXXsvrv/7rc+nSJb7hG76BBz3oQUgC4PVe7/W49tpr+f7v/34iAoCXeImX4KEPfSi/+7u/y9/+7d9y00038fqv//pcunSJO+64g5d4iZfgxIkT/Nqv/Rov/uIvTt/3fNd3fdfHnD179lauuuqqq6666qr/7yjHjx/nqquuuuqqq6666uzZs8945Vd+5c++9tpruf322ymlcO211/K0pz2NP//zP+c1XuM1OHPmDLfeeisnTpyglMItt9zCuXPnOHfuHNvb2zz0oQ9le3ub7e1tnv70pzMMA9vb20iilMLDHvYwZrMZd911FwDz+ZzVasXv//7v8xIv8RI85jGPoe977rrrLu43n8/p+x5JPOQhD+GGG27gUY96FMMwcP78ee43DAPnz59nZ2eHUgqnT5/mb/7mb3jlV35lHvWoR9H3PXfffTfPbRgGzp8/z5Oe9CRss1gsADh9+jSHh4e84iu+Io985CM5ffo0fd9z/vx5HkgSDzQMAwcHB9x999086UlP4i//8i958pOfTK2Vvu8ZhoHt7W1msxm33norW1tbPPShD+XFX/zFefEXf3Ee8YhH8OIv/uI8+MEP5vrrr6fve06dOsVsNkMSwzDwryWJfwtJPD9bW1v0fc/Jkye57rrruOWWW7juuut4mZd5GV7mZV6GV3zFV+Sxj30sD3/4w9na2gLg6U9/OrfccgsHBwdcuHCB2267Ddv8/u//Pn/913/NU5/6VO69914ODg74l2xtbfGYxzyG66+/njd6ozfi4Q9/OIvFgvl8zsHBAU9/+tN5whOewOMf/3juvfdenpsktra2ePSjH80bvuEbct111/Gnf/qnnDx5krvuuouLFy9y7733cj9JAFx77bW8wRu8ATfffDO/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brnlFm655RYA9vf3ufvuu7n77rvZ39/n7rvvBkAS/1qSeH62trYA2N7exjbb29sAbG1tAbC9vc1z29ra4vk5ODgAQBIA+/v73O/g4ACAg4MDAA4ODjg4OOCBJPGvJYnntrW1xcMe9jAAXvqlX5r7Xbp0ib/7u7/j9ttv57bbbuON3/iNeepTn8rBwQH/kq2tLR72sIfxsIc9jK2tLS5dusTf/d3f8fu///u85mu+Jk996lN5bpIAeMmXfEle8iVfEoDf//3f5/d///d5uZd7Oe69916e20u+5Evyki/5kly6dImf//mf59prr+Xee+/lfpubm7zKq7wK1157Lb/3e7/H7//+7/OgBz2I+73e670e1157LT//8z/PfD7nvvvuA+D1Xu/1uPbaa7nvvvv4jd/4Da655hpe7/Vej2c84xk85SlPYXNzk1d+5Vfmd3/3d/mar/kacdVVV1111VVXXfX8oQc96EFcddVVV1111VVXvSCv8zqv895v8RZv8V0nT57kp37qp3j0ox/Nox71KCKCn/qpnwLgbd7mbdje3mZ/f5/v+77vA2B7e5u3fuu3Znt7m/39fX76p3+a/f19AC5dusSxY8d4t3d7NyKCJzzhCfz5n/8599ve3uZRj3oUr/AKrwDA/v4+T3ziE/nzP/9zntsNN9zAy7/8y3PDDTcAsL+/zxOf+ET+4i/+ghdke3ubRz7ykTzqUY/ib/7mb3ipl3optre32d/f50lPehJPetKT2N/f5/mRxP22t7cBuP7663nkIx/Jb//2b3Ps2DFe/MVfnFtuuQWA/f19AO6++27uvvtuDg4OuPvuu3lRSOJfSxL/FpL415LEv9bW1haSeNjDHgbAddddx3XXXQfAwcEBFy5c4LbbbuPv//7veeu3fmvuuecenvrUp3J4eMiLYmtri4c97GFcd911XHvttRwcHPDXf/3XvPRLvzRPfepTedrTnsbBwQHPz9bWFg972MN4yZd8Se53cHDAH/3RH3Hvvffy3K699lpe5VVeha2tLX7v936P3//93+eWW27hga699lpe//Vfn0uXLvHzP//z3HbbbTzoQQ8CYHNzk1d+5Vfm2muv5fDwkD/6oz/ivvvuA+D1Xu/1uPbaazk8PORnf/Zn2dzc5PVe7/WYpon1es0f//Ef85Zv+ZY84xnP4Du+4zte5x/+4R9+m6uuuuqqq6666qrnDz3oQQ/iqquuuuqqq6666oV53dd9XX/Yh30Y+/v7/NRP/RT7+/t82Id9GPv7+3zv934v29vbHBwc8KEf+qHs7+/zfd/3fQBsb2+zv7/Pe7zHewDw0z/90xwcHACwvb3N3t4eL/ESL8FrvMZr8Gd/9mf8+Z//OQ+0vb3N677u6/K0pz2NV3/1V+euu+7it37rt9jf3+e5PepRj+JRj3oUT3va03j1V3919vf3eeITn8iTnvQk9vf3eX52dnbY2triUY96FI985CP5u7/7O17iJV6C/f19AJ70pCfxpCc9if39fe4niRdme3ub66+/nuuvv57t7W3+6q/+iptvvpljx45xyy23cL/9/X3uvvtuAO6++24ODg7Y39/n4OAAAEn8W0jiX0sS/xaSeEG2trbY2tpia2uLra0trrvuOra2ttja2gLg4OCACxcucNtttwHw0i/90txzzz0cHBxw7733cs899/BAknhBtra2eNjDHsa1117Lddddx8HBAX/913/NS7/0S/PUpz6Vw8NDnvrUp/KCbG1t8dCHPpSXeqmX4uDggL/+67/mpV/6pfmjP/oj7r33Xp7b5uYmr/qqr8q1117Lbbfdxs///M/zyEc+knvvvZcHeomXeAle8iVfkttuu40f+IEf4JZbbgFAEpubm7z+678+0zRRa+WP/uiPuO+++wB4vdd7Pa699lq+//u/n1IKAK/3eq/HNddcw/d///dTSuH1Xu/1uOaaa/j+7/9+fuqnfkpcddVVV1111VVXvWDoQQ96EFddddVVV1111VUvzDXXXPPgN3uzN3v6m7/5m/OEJzyBP/3TP+XkyZO8+Zu/OU94whP4jd/4DXZ2dtjf3+dDP/RD2d/f56d/+qfZ399ne3ub/f193u3d3o2I4AlPeAJ//ud/DsD29ja33347r/7qr85rvMZrsL+/z8/8zM+wv78PgCS2t7d51KMexcu//Mtz6dIlIoInPvGJPPGJT2R/f58HksT29jaXLl3iJV7iJXipl3opAO6++26e+MQnctddd/FAkrjf9vY2119/PTfccANPecpTuPnmm3mJl3gJAPb393nSk57E3Xffzd13382/xvb2Ntvb22xtbXH99dezvb3N9ddfzy/+4i9y8803c+zYMW655Rbut7+/D8Dh4SH7+/vcfffdABwcHLC/v8/BwQEviCT+LSTxr7G1tYUktra22NraYmtrC4DrrrsOgOuuu477HRwc0Frjtttu49KlS7z6q786BwcH3HPPPRwcHHDvvfdyzz338MJI4rltbW3xsIc9jIc97GFsbW1xcHDAX//1X3Pp0iVe7uVejnvvvZe//du/5YXZ2triJV/yJXnYwx7GwcEBf/3Xf83v//7v8+hHP5qDgwOe2+bmJg972MN4yZd8SS5dukQphb/7u7/jaU97Gg+0ubnJq7zKq3Dttdfye7/3e/z+7/8+t9xyCwCSuOaaa3j91399Ll26RK2Vn/mZnwFgc3OTV37lV+baa6/l+7//+4kIJPF6r/d6XHPNNXz/938/pRRe/MVfnJd4iZfg+7//+/mpn/opcdVVV1111VVXXfXCoQc96EFcddVVV1111VVX/UuuueaaB7/ru77r01/jNV6DP/3TP+UJT3gCb/M2b8P29jZPeMIT+M3f/E22t7fZ39/nQz/0Q9nf3+enf/qn2d/fZ3t7m/39fV7iJV6Cl37pl+YJT3gCf/7nf879tre32dvb493e7d2ICJ74xCfy53/+5zzQ9vY2j3rUo1itVrzUS70UAE984hP58z//cwAk8UDb29u83Mu9HI961KO47bbbuOWWW9jf3+eJT3wif/EXf4EkXpDt7W2uv/56tre3eeITn8hLvMRLcOrUKW644Qb29/e5++67ufvuu9nf3+fuu+/mhZHEc9va2gLg+uuvB+D6669ne3ub66+/nge67bbbOHnyJFtbWzy3g4MDAA4ODtjf3+d+BwcHABwcHPCvtbW1xQNtb2+ztbXF/ba2ttja2uK5HRwccOHCBW655Rbud3BwAMA999zDwcEBBwcHHB4ecs899/CvJYmtrS0e9rCHAfBSL/VSABwcHPDXf/3X3HbbbbzSK70SBwcH/M3f/A2SeEG2trZ46EMfysMe9jC2tra4dOkSx44d42//9m956lOfyuHhIc9tc3OThz3sYbzkS74kBwcH/PVf/zU7Ozv83d/9Hc/tJV7iJXjJl3xJLl26xM///M9z7bXXcu+993K/l3zJl+QlXuIluO222/iBH/gBHvSgBwGwubnJK7/yK3Pttdfy/d///UQEkni913s9rrnmGgB+4zd+A4DXe73X4xnPeAbf8R3f8Tr/8A//8NtcddVVV1111VVXvXDoQQ96EFddddVVV1111VUvitd5ndd577d4i7f4rpMnT/Ibv/Eb7O3t8Z7v+Z4A/Nmf/Rl/9md/xvb2Nm/91m9NZhIR/PRP/zT7+/vc7yVe4iV4jdd4De666y5+8zd/k/39fQC2t7fZ39/nJV7iJXj1V3919vf3+a3f+i3uuusuHmh7e5uXf/mX5+zZs7z6q786+/v7PPGJT+Qv/uIveH62t7d55CMfyZ/92Z/x6q/+6rzES7wE+/v73H333TzxiU/k7rvv5oXZ3t5ma2uLRz3qUWxvb/NXf/VXvPiLvzi33HILAPv7+9x9993cfffd7O/vc/fdd/NAkvjX2NraQhLXX389AH/5l38JwE033cTW1hY33ngjx44dA+DYsWMcO3aM/2yXLl3ifpcuXeLOO+/k0qVL3HXXXRwcHADwmq/5mtxzzz0A3HPPPTw/knhRbW1tcd1117G1tcVLvdRLcb/bbruN2267jZd+6ZfmqU99Kvfccw/33nsvDySJ57a1tcVDH/pQXuqlXgqA3//93+fv/u7veNVXfVX+9m//Fkk8t83NTR72sIfxki/5khwcHPDXf/3XPOIRj+AP//APOTw8RBL3u/baa3mVV3kVNjc3+b3f+z1+//d/n1tuuYX7bW5u8iqv8ipce+21/N7v/R6///u/z4Me9CAANjc3eau3eisuXbpErZWf+ZmfAeBVXuVVeMhDHgLAb/zGbwDweq/3ejzjGc/g537u597nt37rt76bq6666qqrrrrqqn8ZetCDHsRVV1111VVXXXXVi+p1X/d1/e7v/u5EBD/1Uz/FHXfcwWu8xmvwGq/xGvzZn/0Zf/Znf8b29jav+7qvy9bWFhHBn/3Zn/GEJzwBSezu7nLLLbfwlm/5lgD8+Z//OU94whO43/b2Nm/1Vm/FxYsXueWWW3jiE5/In//5n7O/v88DbW9vs7e3x0u8xEvw6q/+6uzv7/PEJz6Rv/iLv+D52d7e5oYbbuAJT3gCt9xyCy/+4i/OLbfcwv7+Pk960pO46667uPvuu3lBJAGwvb3N9ddfz/XXX88jH/lIAG677TZuueUWAPb397n77ru5++67OTg44O677+ZfSxIvzNbWFvfb2tpie3sbSQBsbW0BsLW1xfNzcHDA1tYW95PE/fb393mgg4MDDg4OuN/BwQEHBwdI4l9LEi/I1tYWAA972MPY2tri4Q9/OPe7dOkSx44d4+DggIODA+69916e+tSncnBwwAsiCYCtrS0e+tCH8rCHPYytrS0uXbrE3/3d3/H7v//7vOZrviZPfepTAZDEA21ubvKwhz2Ml3zJl+Tg4IC//uu/5vd///d5uZd7Oe69914AJAGwubnJQx/6UF7yJV+S2267jZ//+Z/nkY98JPfeey/3u/baa3n91399Ll26xM///M9z22238aAHPQiAa665htd//dfn0qVLrFYrfuM3fgOAV3mVV+EhD3kIf/u3f8vP//zP8+Iv/uK85Vu+JZcuXeIbvuEb+Iu/+Atx1VVXXXXVVVdd9aJBD3rQg7jqqquuuuqqq656UZ05c+ZBL/ESL3Hrh33Yh7G/v8/3fu/38pjHPIau63iN13gN/uzP/ow/+7M/Y3t7m/39fd78zd+cEydO8IQnPIE///M/B2B7e5u9vT1e4zVegwc/+ME84QlP4M///M+53/b2No9+9KN5+Zd/efb39wF44hOfyJ//+Z/z3La3t3md13kdnva0p/Hqr/7q7O/v88QnPpEnPelJ7O/v8/xsb2/zqEc9ij/7sz/jxV/8xXmpl3optre32d/f50lPehJ33XUXd999Nw8kiee2vb0NwPXXX8/jH/94jh07xrFjx7j55pt58IMfzPb2NgD7+/vcfffd3H333RwcHLC/v8/BwQHPjyT+LSTxryWJfy1J/FtIAmBra4utrS2uvfZaAK677jquu+46AA4ODrhw4QK33XYbt99+O7fddhtv/MZvzD333MO9997Li2J7e5uHPvShPOxhD2Nra4uDgwP++q//mr/7u7/jVV/1VXna057GwcEBDyQJgM3NTR72sIfxki/5khwcHPDXf/3XvPRLvzR/9Ed/xL333ssDSeIlXuIleMmXfEkuXbrE3/7t3/L7v//73HLLLTzQS7zES/CSL/mS3HbbbfzAD/wAD3rQg7jfQx/6UF75lV+Z2267jdlsxm/8xm8A8Mqv/Mo89KEP5W//9m85e/Ys9913H6/3eq/HNddcw/d///fzUz/1U+Kqq6666qqrrrrqRYce9KAHcdVVV1111VVXXfWvcc011zz4cz7nc37rmmuuefD+/j7f933fx6Mf/Wi6ruM1XuM1+LM/+zP+7M/+jO3tbfb393mJl3gJXuM1XoM///M/58/+7M8A2N7eZm9vj5d4iZfgNV7jNdjf3+dnfuZn2N/fRxIA29vb3HDD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fPPNnD59muuvv579/X0ODg64++67ueuuu7j77ruRxL+FJAC2trbY2tpCEltbWzz1qU8F4MYbb2R7e5sbb7yRY8eOcb9jx47xn+3SpUsA3HnnnVy6dIk777yTg4MDDg4OePVXf3UODg44ODjgnnvu4YEk8a+1vb0NwMMe9jCuvfZarrvuOgAODg7467/+awD+4A/+gDd+4zfmnnvu4d5770USL8jW1hYPfehDedjDHsbW1hYHBwf89V//Nb//+7/Pm77pm/K3f/u3PD+bm5u86qu+Ktdeey2XLl3iF37hF7jtttu4+eabeaDNzU0e+tCH8pIv+ZLcdttt/PzP/zyXLl3illtuQRIAL/ESL8FLvMRLcNttt/EDP/ADPOhBDwJgc3OTV37lV+baa6/l8PCQP/7jP+a+++7j9V7v9bjmmmv4+Z//ef70T//0df7hH/7ht7nqqquuuuqqq676t0EPetCDuOqqq6666qqrrvr3OHPmzIPe7d3e7dbXeI3X4AlPeAK/+Zu/yfb2Nvv7+7zbu70bEcGf/dmf8cQnPpHt7W329vZ4iZd4CV7jNV6D/f19fuZnfob9/X0AdnZ2eNSjHsXLv/zLs7+/D8ATn/hE/vzP/5wH2t7e5lGPehQv//Ivz2233cYtt9zC/v4+f/EXf8ETn/hEnp/t7W0e9ahH8Wd/9me82qu9Gi/xEi/B/v4+d999N3fddRdPetKTeG6SeKDt7W2uv/56rr/+era3t/mrv/orbr75Zk6fPs3111/P/v4+AHfffTd33303BwcH3H333fxLJPGvtb29DcDW1hYA29vb3G9/f5/rr7+ef62DgwPud3BwAMDBwQGHh4f8a0niRbG1tcXDHvYwAK677jquu+46AA4ODvjrv/5rAF76pV+apz71qdxzzz3ce++9PJAkntvW1hYPfehD2dra4mEPexgHBwf89V//Nbfddhsv9mIvxtOe9jQODw95fq699lpe8iVfkmuvvZZLly5RSuFpT3saf/d3f8dze4mXeAle8iVfksPDQzY3N/nbv/1b/u7v/g4ASWxubvLKr/zKXHvttfze7/0ev//7v8+DHvQgAK655hpe//Vfn0uXLlFr5Wd/9mcBeL3Xez2uueYafv7nf54//dM/fZ1/+Id/+G2uuuqqq6666qqr/u3Qgx70IK666qqrrrrqqqv+va655poHv+u7vuvTX+M1XoM777yTn/mZn2F7e5v9/X3e/M3fnBMnTvDEJz6RP/uzPwNge3ub/f193vVd35WI4AlPeAJ//ud/jiQAtre3efmXf3nOnj3Lq7/6q7O/v8+f//mf88QnPpH7SWJ7e5tHPvKR/Nmf/Rlv9mZvxi233ML+/j5PfOIT+Yu/+AseSBIA29vbXH/99TzykY/khhtu4LbbbuOWW25hf3+fu+++m7vuuosnPelJSOJfsr29zfXXX8/29jbXX389119/PQC33XYbt9xyCwD7+/sA3H333dx9990cHBywv7/PwcEBAJL4t5DEv5Yk/i0k8a8liQfa2tpia2uLa6+9FoDrrruO6667DoCDgwNaaxw7dgyAg4MDnvrUp3LPPfdw77338sJIAmBra4uHPvShbG1t8bCHPQyAS5cucezYMQ4ODnjqU5/K3/7t3yKJ5+clX/IleehDH8rW1haXLl3iF37hF3jxF39x/vZv/xYASdzv2muv5VVe5VXY3Nzk93//93nEIx7BH/3RH3F4eMj9XvIlX5KXeImX4NKlS/z8z/88t912Gw960IMAeOhDH8orv/Irc9ttt/EDP/ADPPjBDwbg9V7v9bjmmmv4+Z//ef70T//0df7hH/7ht7nqqquuuuqqq67690EPetCDuOqqq6666qqrrvqPcM011zz4cz7nc37rmmuuefD+/j4//dM/DcD+/j4v8RIvwWu8xmvwZ3/2Z/z5n/85ANvb2+zv7/MSL/ESvPqrvzr7+/v87M/+LPv7+9zvhhtu4M477+TVX/3VeYmXeAn29/f5rd/6Le666y4kcb/t7W0e+chH8qhHPYrt7W0A9vf3eeITn8iTnvQk9vf3kcRz297e5vrrr+cJT3gCN998My/xEi/BLbfcwv7+PgcHBzzpSU9if3+fu+++mxfF9vY229vbbG1t8cd//MccO3aMW265hZtvvpljx45x4sQJtre3Adjf3wfgnnvuYX9/n4ODAw4ODtjf3+fg4IAXRhL/FpL415LEi2prawuA66+/ns3NTba3t9nc3OS6667jfgcHB1y4cIHbbruNvb09Ll26xG233cYbv/Ebc88993Dvvffyotre3uahD30o1113Hddeey0Aly5d4u/+7u/4gz/4A974jd+Yv/3bv+WBJHG/zc1NHvawh/GSL/mS3O/g4ICnPe1p/O3f/i33kwTA5uYmr/Iqr8K1117Lbbfdxi/8wi/wiEc8gnvvvZf7bW5u8iqv8ipce+21/N7v/R6///u/z4Me9CDu93qv93pce+21/N3f/R0///M/z4Me9CC2trZ45Vd+Za655hruu+++W7/+67/+ff7hH/7ht7nqqquuuuqqq67690MPetCDuOqqq6666qqrrvqPcs011zz4JV7iJZ7+oR/6oezv7/PTP/3THBwcsLu7y6u/+qvzGq/xGuzv7/MzP/Mz7O/vA3Dp0iWOHTvGu77ruxIRPPGJT+TP//zPud/29jaPetSj+LM/+zPe7M3ejFtuuYUnPvGJPOlJT+Kuu+7igba3t7nhhht45CMfydOe9jRe6qVeCoC7776bu+66iyc96Um8INvb21x//fU88pGP5K//+q+5+eabeYmXeAkA9vf3ufvuu3nSk57E3XffzQsiiee2tbXF9vY2W1tbXH/99fzmb/4mx44d49ixY9x8880AnD59muuvv577HRwcALC/v8/BwQEAd999NwAHBwcAHBwccHBwwItKEv8W29vb3G9ra4utrS22trYA2NraYmtri62tLba2tnigS5cucenSJW677TYAbr/9dm677Tbe6I3eCIB7772Xe+65h/tJ4kVx7bXXct111/Gwhz2Mra0tDg4OePrTn86lS5d46Zd+aZ761Kfyt3/7t7wgktjc3OQlX/IledjDHsbBwQF//dd/zUu/9EvztKc9jb/927/luW1tbfGSL/mSPPShD+XSpUv8wi/8Ai/+4i/O3/3d3/FAL/ESL8FLvuRLcunSJX7+53+e2267jQc96EEAbG5u8sqv/Mpce+21/MAP/AC33XYbD3rQg9ja2uL1Xu/1mKaJ9Xp969d//de/zz/8wz/8NlddddVVV1111VX/MdCDHvQgrrrqqquuuuqqq/4jXXPNNQ9+iZd4iae/27u9GxHBn/3Zn/HEJz6R7e1t9vb2eLd3ezcigic84Qn8+Z//OQDb29s8+tGPZrVa8eqv/urs7+/z53/+5zzxiU/kftvb2zzqUY/i5V/+5bntttu45ZZbeOITn8iTnvQk7rrrLp7b9vY2e3t73HzzzbzES7wEt9xyC/v7+zzpSU/irrvu4u677+YF2d7e5oYbbuD666/nL/7iL7j55pu55ZZbuOWWWzg4OGB/f5+77rqLu+++m7vvvhsASfxrbG1tsbOz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Pq/5mq/J0572NAAkcb+XeImX4CVf8iW537333svf/d3fce+993K/a6+9lld5lVdhc3OT3//93+eGG27gj//4jwHY3NzklV/5lbn22mv5u7/7O37+53+eP//zPxdXXXXVVVddddVV/zXQgx70IK666qqrrrrqqqv+K73CK7yCb7nlFt7iLd4CgCc+8Yn8+Z//OQDb29u85Vu+JRcvXuSWW27hiU98In/+53/O/v4+93v0ox/NIx/5SJ72tKfx6q/+6uzv7/PEJz6Rv/iLv+C57ezs8MhHPpLrr7+epz3tabz6q786+/v7HBwc8MQnPpEnPelJPJAk7re9vc3W1hb/8A//wLFjx7jlllu4+eabeYmXeAkA9vf3ufvuu7n77rs5ODjg7rvv5kUlifttbW0BcP311wNw/fXX8xu/8RtIYmdnh2PHjgFwyy23ALCzswPAyZMnAdja2uI/08HBAQAXLlwAYG9vj0uXLgFw6dIlLl26xN7eHpcuXeIN3/ANATg8POTg4IB77rmHF0QSL8zW1hYPe9jDuPbaa7nuuusAODg44OlPfzqXLl3iD/7gDwB4mZd5Ge69915ekK2tLR72sIdx7bXXcu2113JwcMBf//Vf89Iv/dI87WlP42//9m95bltbWzz0oQ/lJV/yJQH4/d//fV7mZV6Gv/3bv+VpT3sa99vc3ORVXuVVuPbaa7nttts4deoUf/RHf8R9990HwDXXXMPrv/7rc+nSJX7+53+e2267jT//8z8XV1111VVXXXXVVf910IMe9CCuuuqqq6666qqr/qtdc801D37Jl3zJp7/ES7wEr/7qr84Tn/hE/vzP/5z9/X22t7d51KMexb333surv/qrExE88YlP5IlPfCIHBwfc75GPfCRPeMITeImXeAle/dVfnf39fZ70pCfxxCc+kf39fQAkAbC9vc3W1hZ33nknt9xyCzfffDMv8RIvwf7+PnfffTd33XUXT3rSk5DEC7K9vc3111/P9ddfz/b2Nn/1V3/FzTffzEu8xEsAsL+/z8HBAfv7+9x9990cHBxw991389wk8a+xtbUFwPb2Ntvb29xva2uLra0tALa2trjf9vY299va2uJFcXBwwAMdHBwAcHBwAMDBwQEABwcHHBwcAHBwcMDBwQEAkvjXksT9tra2uPbaa9na2uLaa6/luuuuA+Dg4IALFy5w22238dIv/dI89alPBeBv//Zv+Zdce+21XHfddbzkS74kAJcuXeIP/uAP+Lu/+zte4zVeg6c97Wk8t83NTR72sIfxki/5khweHvJXf/VX/P7v/z6v9VqvxdOe9jTut7m5yUMf+lBe8iVfkkuXLvH7v//73HLLLfzd3/0dAJubm7zyK78y1157Lbfddhs/8AM/wJ//+Z+Lq6666qqrrrrqqv966EEPehBXXXXVVVddddVV/13e8R3f8bPe6Z3e6bMvXbpERPDEJz6RP//zP+d+L//yL89qteLVX/3V2d/f54lPfCJ/8Rd/wQNtb2/zci/3cjzqUY/i0qVLHDt2jCc+8Yk86UlP4u677+a5bW9vc/311/OEJzyBW265hRd/8Rfnlltu4eDggLvuuou7776bJz3pSfxLtre3uf7667n++uvZ3t7m+uuv5+/+7u84duwYt9xyCwD7+/scHBywv7/P3XffzcHBAffccw//WpL415LEv5Yk/i0k8aLY2toC4GEPexiSuPbaa7nuuuu436VLl/i7v/s7Xv3VX52DgwOe+tSnAvA3f/M3SOKF2dra4qEPfShbW1s87GEPA+DSpUv83d/9HX/wB3/Am7zJm/C3f/u3PD+bm5u85Eu+JA972MO4dOkSx44d4/DwkD/6oz/i3nvv5X6bm5s89KEP5SVf8iU5PDzkr/7qrzh27Bh/93d/x/1e4iVegpd4iZfg8PCQ3/qt3+Lv/u7v+PM//3Nx1VVXXXXVVVdd9d8DPehBD+Kqq6666qqrrrrqv9M111zz4Nd+7dd+rxtvvPGzX/3VX539/X1+67d+i7vuuguA7e1t9vb2eImXeAle/dVfnf39fZ74xCfyF3/xFzzQ9vY2j3zkI7nvvvt48Rd/cW655Rb29/d50pOexF/8xV/w/Gxvb3P99dfzyEc+kr/6q7/iJV7iJbjlllvY39/n4OCAu+++m7vuuou7776b50cS99va2mJ7e5utrS2e8IQnYJtbbrmFW265hZ2dHW655Rbud3BwwP7+PgcHB9x9990cHBwAcPfdd/P8SOJfSxL/WpL415LEc9va2mJra4trr70WgOuuu47rrruO+x0cHNBa4+/+7u/Y29tjd3eX22+/nTd+4zfmnnvu4d577+W5SeK5bW1t8dCHPpTrrruOa6+9FoBLly7xd3/3d7z0S780T3va0/jbv/1bnp/NzU0e9rCH8dCHPpStrS0uXbrE3/3d37Gzs8PTnvY0Dg8PeaCXeImX4CVf8iUB+P3f/31+//d/n8c85jEcHh4CsLm5ySu/8itz7bXX8nd/93f8wi/8An/2Z38mrrrqqquuuuqqq/57oQc96EFcddVVV1111VVX/U/wOq/zOu/9ju/4jp81m80eHBE88YlP5M///M+53/b2Nq/zOq/D0572NF791V+d/f19nvjEJ/IXf/EXPND29ja33347x44d48Vf/MV59Vd/dfb397n77rt54hOfyN13383zs729zQ033MAjH/lIrr/+ev7u7/6Ol3iJlwBgf3+fu+++m7vvvpsnPelJAEjiX7K1tcX29jZbW1v8yZ/8CTs7Oxw7doxjx45xyy23sLOzw8mTJ9na2uJ+BwcHANx9990A3HPPPQDs7+8DcHBwwMHBAS+MJP4tJPHCbG1tAbC1tcXW1hZbW1sAbG1tsb29zbXXXssDHRwccOHCBW677TYAbr/9dm677TYA3viN35h77rmHe++9l3+JJAC2tra49tpr2dzc5KVe6qUAODg44K//+q959Vd/dQ4ODnjqU5/K3/7t3yKJ52dzc5OHPexhvORLviQHBwf89V//NX//93/P7u4uN998Mw+0ubnJQx/6UF7yJV8SgN///d/nZV7mZfijP/oj7r33XiSxubnJQx/6UF7iJV6CS5cusV6vb/3RH/3Rz/mt3/qt7+aqq6666qqrrrrqvx960IMexFVXXXXVVVddddX/FNdcc82DX/u1X/u9brzxxs9+9Vd/dfb393niE5/In//5nyMJgO3tbV77tV+bpz3tabz6q786+/v7PPGJT+RJT3oS+/v73G9nZ4frr7+eG264gac85Sm8+Iu/OLfccgv7+/s86UlP4q677uLuu+/mfpK43/b2Ntdffz2Pf/zjAXjxF39xbrnlFm655RYA9vf3ufvuu7n77rt58pOfzItKEgBbW1tsb2+ztbXF9ddfz9bWFtvb22xtbfGLv/iL3HLLLQDs7Oxw8uRJtra2eG4HBwfcb39/H4CDgwMAJHG//f19/iXb29s80NbWFgBbW1sAbG1t8dwODg4AuHDhAnt7e1y6dAmAV3u1V+Pg4ICDgwPuueceAO69914ODg44ODhAEi+qra0trr32Wra2trjuuuu49tprAbh06RJ/93d/x+23385tt93GG7/xG/O3f/u33E8SD7S5ucnDHvYwXvIlXxKAS5cu8Xd/93e89Eu/NH/7t3/L0572NCRxv83NTR760Ifyki/5kgD8/u//Pi/zMi/DH/3RH3HvvfcCIImXeImX4CVe4iU4PDzkr/7qr7jzzjs/+0d/9Ec/h6uuuuqqq6666qr/OdCDHvQgrrrqqquuuuqqq/6nueaaax78ki/5kk9/iZd4CV791V+d/f19nvjEJ/IXf/EX3G97e5u9vT1e/MVfnFd/9Vdnf3+fu+++myc+8YncfffdPND29jaPfOQjuf7667nhhhu4dOkSx44dY39/nyc96Uncfffd3H333bwg29vbXH/99TzykY/k+uuv5+/+7u84duwYt9xyCwAHBwfcdddd3H333RwcHHD33Xfz/EjiX7K1tcXW1hbb29sAPO1pTwPgxhtv5ODggEc96lFsbW1x7NgxAI4dO8Z/tkuXLnHp0iUODg7Y29vjzjvv5ODggIODA17t1V6Nw8ND9vf3uffee/mXSOIF2dra4mEPexgAL/VSL8X9Ll26xN/93d/x6q/+6tx7773cc8893Hvvvdx77708P5LY3NzkYQ97GA996EPZ2tri4OCAra0tDg4OeNrTnsbf/u3f8kCS2Nzc5KEPfSgv+ZIvyeHhIX/1V3/F7//+7/PyL//y3HvvvdzvoQ99KC/5ki/J5uYmv//7v8/v//7v84xnPOMh9913361cddVVV1111VVX/c+CHvSgB3HVVVddddVVV131P9WLvdiLvfb111//W6/+6q/OS7zES7C/v89f/MVf8MQnPpH7bW9v83Iv93I89alP5cVf/MW55ZZb2N/f5y/+4i940pOexHPb3t7mkY98JH/2Z3/Gi7/4i/Pqr/7qABwcHPDEJz6Ru+++m7vvvpsXZGtri+3tbW644Qauv/56rr/+egBuu+02brnlFgD29/eRxF133cXdd9/NwcEB99xzD/9aknhBtra2uN/W1hYA29vbPLetrS3+JYeHhzzQwcEBAAcHBwAcHBzw3CTxryUJgK2tLQAe9rCHAXDddddx7bXXAnBwcMCFCxe45ZZbODg44PDwkHvuuYd7772Xe++9lxdma2uLhz3sYTzsYQ9jc3OTg4MD/vqv/5rbb7+dF3uxF+OpT30qh4eHPLeHPexhvORLviSbm5tcunSJv/u7v+OGG27gb//2bzk8POR+1157La/yKq/C5uYmt912G7/wC7/A3Xff/Tr/8A//8NtcddVVV1111VVX/c+EHvSgB3HVVVddddVVV131P9k111zz4Bd7sRd7rXd8x3f87HvvvffBL/ESL8H+/j5/8Rd/wROf+ETut729zSMf+Ujuu+8+br75Zl7iJV6C/f19nvSkJ/GkJz2J/f19Hmh7e5utrS0e9ahH8Rd/8Re8+Iu/OA9+8IPZ3t5mf3+fu+++m7vvvpsnPelJPDdJPNDW1hbXX389119/Pb/1W7/FzTffzC233MLOzg633HIL9zs4OGB/f5+DgwPuvvtuDg4O2N/f5+DggOdHEv9akvjXksS/liT+JVtbW2xtbXHttdcCcN1113Hddddxv4ODAy5cuMBtt90GwB/8wR/wxm/8xgDcc8893HfffbwwW1tbbG5ucu211/JSL/VSABwcHPDXf/3X3H777bzYi70Y9957L/feey/PbXNzk4c97GG85Eu+JACXLl3i93//97n55pt52tOexuHhIfe79tpreZVXeRU2Nze57bbbmM/nt/7Wb/3Wd//oj/7o53DVVVddddVVV131Pxt60IMexFVXXXXVVVddddX/Btdcc82DX/u1X/u9Lly48Nlv9mZvxi233ML+/j5/8Rd/wROf+ETut729ze23386xY8d48Rd/cV7qpV6K7e1t9vf3+Yu/+Aue9KQn8dx2dnbY2trikY98JNdffz1/8zd/wy233MItt9zC/v4+BwcH3HXXXdx9993cfffdSOKF2draYnt7m62tLa6//np+67d+i52dHY4dO8Ytt9zCzs4Ot9xyC/c7ODgAYH9/n4ODA+6++24ksb+/z8HBAQcHB7woJPGvJYl/LUlsbW0BsLW1xdbWFpubmwBcd911bG1tsbW1xf0ODg5orXH77bdz6dIlbrvtNm6//Xbe6I3eCIB77rmHe++9l+cmiee2tbXFQx/6UK677jquvfZaAC5dusTf/d3f8dIv/dI87WlP49577+Xee+/l+XnJl3xJrr32Wq699loODg7467/+a/7+7/+eS5cucdNNN/FAD33oQ3nJl3xJNjc3uXTpEr/wC79AKeWzf/RHf/RzuOqqq6666qqrrvrfAT3oQQ/iqquuuuqqq6666n+Ta6655sGv/dqv/V4XL1787Fd7tVfjJV7iJdjf3+eJT3wif/EXf4Ek7re9vc3LvdzL8ZSnPIWbb76Zl3iJl2B/f5+7776bJz7xidx9991I4rltb2/zjGc8g2PHjnHLLbdw88038xIv8RIAHBwccNddd3H33XdzcHDA3Xffzb9EEgBbW1tcf/31AFx//fVsbW2xvb3N1tYWAH//93/Pzs4OJ0+eZGtriwc6ODjgfvv7+xwcHABwcHAAwMHBAfc7ODjgRSWJ+21tbQGwtbXFA21tbbG1tQXA1tYWW1tbPLeDgwMuXLjA3t4eL/7iLw7AwcEBBwcHHBwccHh4yD333MPh4SEHBwf8SyQBsLW1xUMf+lCuu+46rr32WgAODg54+tOfzqVLl/iDP/gDAF7mZV6G++67j+dnc3OThz3sYbzkS74kAJcuXeIP/uAPuOmmm3ja057G4eEhD/QSL/ESPOxhD2Nzc5PbbruNX/iFX6C19j6/9Vu/9d1cddVVV1111VVX/e+CHvSgB3HVVVddddVVV131v9GZM2ce9OIv/uKv847v+I6f9aQnPenBr/7qr87+/j5PetKTeNKTnsT+/j73297e5vrrr+eRj3wkf/3Xf82Lv/iLc8stt7C/v8/dd9/Nk570JO6++26en+3tba6//nquv/56tre3+cu//EtuueUWXuIlXgKA/f19Dg4O2N/f58lPfjJ33303z00SL8zW1hYA29vbbG1t8Rd/8RcAHDt2jK2tLW688UZ2dnaQxM7ODseOHQPg2LFj/Fe4dOkSAJcuXQLg0qVL3HXXXQA8/vGP536v/dqvzb333gvAPffcw/0k8aLY2tpic3OT6667juuuu45rr70WgIODAy5cuMBtt93GS7/0S/PUpz4VgL/927/lfpJ4oM3NTR72sIfxki/5kgBcunSJv/u7v+OlX/qledrTnsbf/u3fIon7bW5u8tCHPpSXfMmXBOD3f//3eeQjH3nrb/3Wb333j/7oj34OV1111VVXXXXVVf87oQc96EFcddVVV1111VVX/W92zTXXPPjFXuzFXvt1Xud13uvixYuv/VIv9VIA3H333TzxiU/k7rvv5oG2t7e5/vrrecITnsCLv/iLc8stt3DLLbdwcHDAXXfdxZOe9CTuvvtuXpDt7W2uv/56rr/+era3t7n++usBuO2227jlllsA2N/f55577mF/f5977rmH/f19Dg4OeFFJ4rltbW0BsLW1BcD29jYAW1tbAGxvb3O/ra0t/i0ODg6438HBAfc7ODjg4OAAgMPDQw4ODvjXkMRz29raYnNzk+uuu47rrruOa6+9lvtdunSJY8eOAXBwcMBTn/pUAP72b/+WF0QS1157Lddeey0v+ZIvCcClS5f4u7/7O/7+7/+eV33VV+WpT30qh4eH3E8Sm5ubvORLviQPfehDOTw85K/+6q84ceLEb//Wb/3W9/zWb/3Wd3PVVVddddVVV131vxt60IMexFVXXXXVVVddddX/FWfOnHnQS7/0S996yy238OIv/uLccsst7O/v86QnPYknPelJ7O/v80A7Ozs84hGP4M/+7M948Rd/cW655RZuueUW9vf3ufvuu7n77rvZ39/n7rvvBkASz21ra4vrr7+e66+/nt/6rd9iZ2eHY8eOccstt3Dq1Cmuv/56AA4ODjg4OGB/f5+7776bg4MDAO6++26emyT+tSTxryWJfw1J/Gttb2+zubnJddddB8B1113Htddey/0ODg64cOECt912G7fffju33XYbb/zGb8y9997LvffeywuztbXFQx/6UK677jquvfZaAC5dusTf/d3f8fd///e86qu+Kk996lM5PDzkgTY3N3nYwx7Gwx72MDY3N7l06RJ/93d/xx/8wR/w9Kc//cFnz559BlddddVVV1111VX/N6AHPehBXHXVVVddddVVV/1fc8011zz4tV/7td/rdV7ndd77SU960oNf/dVfnf39ffb393nSk57Ek570JAAkcb+trS0e+chHcsMNN/BXf/VX3HzzzbzES7wEAPv7+9x9993cfffdPPnJT+ZfsrW1xfXXX8/111/P9vY2v/3bv82xY8e45ZZb2NnZ4eTJk2xtbXG/g4MD9vf3OTg44ODggIODA/b39zk4OODg4IB/iST+tSTxryWJB9ra2gJga2uLra0tNjc3AbjuuuvY2tpia2uL+x0cHHDhwgVuv/12AG677TZe53Veh3vvvReAe+65h3vvvRdJvCBbW1tsbm5y7bXX8rCHPYytrS0ODg64cOECt912Gy/90i/N0572NJ761KdyeHjIc3vJl3xJNjc3edjDHsbh4SF/9Vd/xSMf+chbf+u3fuu7f/RHf/RzuOqqq6666qqrrvq/Bz3oQQ/iqquuuuqqq6666v+yF3uxF3utG2644bdvueUWbr75Zl7iJV6C/f197r77bu6++26e9KQn8dy2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113c77Vf+7W59957OTw85ODggBfV9vY2D33oQwG47rrruPbaawE4ODjgwoUL3Hbbbdx+++3cdtttbG5uvs9v/dZvfTdXXXXVVVddddVVV70o0IMe9CCuuuqqq6666qqrrvrXu+aaax78Yi/2Yq/9Yi/2Yq91zTXXPPgZz3jGa99yyy3s7Oxwyy23AHBwcADA3Xffzd13383BwQH7+/scHBzwQJJ4UWxtbQGwtbXF9vY299va2gJge3ubB9ra2uJFdXBwwP0ODg6438HBAYeHh9zvnnvu4YWRxAuytbXF5uYm1113HQDXXnst1113Hfe7dOkSf//3fw/AIx7xiFt/67d+67sBfvRHf/RzuOqqq6666qqrrrrq3wI96EEP4qqrrrrqqquuuuqqf79rrrnmwWfOnHnwNddc8+AXe7EXe61rrrnmwS/2Yi/22n//93/Pzs4OJ0+eZGtrC4CDgwMA7r77bgDuuece9vf3OTg44ODggBeFJP41JPGvJYl/re3tbTY3N9na2mJra4utrS02Nze57rrruN/BwQEXLlzg9ttv59Ve7dW47777bv2Hf/iH377vvvtu/Yd/+Iff+Yd/+Iff5qqrrrrqqquuuuqq/wjoQQ96EFddddVVV1111VVX/ee45pprHgzwYi/2Yq99dHT0XTs7Oxw7doxjx45xyy23ALCzs8Mtt9zCAx0cHLC/v8/BwQEABwcHHBwcsL+/D8Dh4SEABwcHvKgk8a8lCYCtrS0Atra2ANja2mJzcxOAra0ttra2uO6663igg4MDWmtcunSJ22+/HYDbbruN22+/HYAHPehBn/0P//APv/MP//APv81VV1111VVXXXXVVf9Z0IMe9CCuuuqqq6666qqrrvqvdc011zwY4MVe7MVeG/CLvdiLvfY111zz4L/927997WPHjgFwyy23ALCzs8PJkyfZ2tri+Tk4OOCBDg4OuN/BwQEviq2tLR5oa2sLgK2tLZ6fg4MDAC5cuMDe3h6XLl0C4NKlS1y6dImXfMmX/O377rvv1vvuu+/Ws2fPPuO+++679R/+4R9+m6uuuuqqq6666qqr/quhBz3oQVx11VVXXXXVVVdd9T/LmTNnHnTNNdc85JprrnkwwL333vuga6655sEPf/jDHwxwzTXXPPjhD3/4g48dO8Z/hac85Sm3Ajz5yU++9dKlS5w9e/bW++6779YXf/EX5+zZs8+47777br3vvvuefvbs2Wdw1VVXXXXVVVddddX/JOhBD3oQV1111VVXXXXVVVf973XNNdc8mAc4c+bMgwABXHPNNQ/mCgPiORkQwH333XcrVxjQ2bNnbwW47777buWqq6666qqrrrrqqv/N0IMe9CCuuuqqq6666qqrrrrqqquuuuqqq6666qr/k6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+r+EcHPqcSZO9mnwAAAABJRU5ErkJggg==) ```kcl fn transform(@i) { diff --git a/docs/kcl-std/functions/std-solid-shell.md b/docs/kcl-std/functions/std-solid-shell.md index f7cb1830b..c9ef75bba 100644 --- a/docs/kcl-std/functions/std-solid-shell.md +++ b/docs/kcl-std/functions/std-solid-shell.md @@ -124,7 +124,7 @@ shell(case, faces = [START], thickness = 5) ``` -![Rendered example of shell 4](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFcIUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/lWuuuebBAGfOnHnwNddc8+AzZ848iGe65pprHgxwzTXXPJgHOHPmzIN5gLNnz9565syZBwOcPXv2Vp7pvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj1763333XcrV1111VVXXXXVVVf9b4Ee9KAHcdVVV1111VVXXXXV/xzXXHPNg8+cOfPgF3uxF3stgGuuuebB11xzzYNf7MVe7LV5PnZ3d7nfxYsXud/u7i4AFy9e5IU5ceIE9zt+/Dj3O378OCdOnOD5ue+++249e/bsrffdd9+tAP/wD//wO/fdd9+tZ8+evfW+++67lauuuuqqq6666qqr/qdAD3rQg7jqqquuuuqqq6666r/eNddc8+AzZ848+MVe7MVe65prrnnwNddc8+AXe7EXe20eYHd3l4sXL/L0pz+d+916660AXLx4kd3dXf6zHT9+HIDjx49z/PhxAE6cOMHx48c5ceIEx48f58SJE9zvvvvuuxXgH/7hH377H/7hH37nvvvuu/Xs2bO33nfffbdy1VVXXXXVVVddddV/NfSgBz2Iq6666qqrrrrqqqv+c11zzTUPPnPmzINf7MVe7LVe/MVf/LVf7MVe7LV5pt3dXS5evMjTn/50AG699VYuXrzI7u4u95PEfwXbvKhsc7/jx48DcOLECY4fP85DHvIQTpw4wUMe8hDud99999169uzZW++7775bf+u3fut7/uEf/uG3ueqqq6666qqrrrrqPxt60IMexFVXXXXVVVddddVV/7GuueaaB7/2a7/2ewG80zu902fzTLu7u1y8eJGnP/3p3HrrrTz96U/nuUnifxrb/Ets8/wcP36chzzkIRw/fpyHPvShHD9+nBMnTgBw33333foP//APv/0P//APv3Pffffd+g//8A+/zVVXXXXVVVddddVV/5HQgx70IK666qqrrrrqqquu+ve55pprHvzar/3a7wXwTu/0Tp/NM128eJG/+qu/4tZbb+XpT386z00S/xqS+M9g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wLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbFuSeADbliQewLYliQewbUniAWxbkngA25YkHsC2JYkHsG1J4gFsW5J4ANuWJB7AtiWJB7BtSeIBbPvs2bPP4Kqrrrrqqquu+t8GPehBD+Kqq6666qqrrrrqqquuuuqqq6666qqrrvo/icpVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X8U/Aik9y6SYyZy+AAAAAElFTkSuQmCC) +![Rendered example of shell 4](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFcI0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuup/lWuuuebBAGfOnHnwNddc8+AzZ848iGe65pprHgxwzTXXPJgHOHPmzIN5gLNnz9565syZBwOcPXv2Vp7pvvvuu5Vnuu+++249e/bsMwDuu+++WwHOnj1763333XcrV1111VVXXXXVVVf9b4Ee9KAHcdVVV1111VVXXXXV/xzXXHPNg8+cOfPgF3uxF3stgGuuuebB11xzzYNf7MVe7LV5PnZ3d7nfxYsXAdjd3eV+Fy9e5IU5ceIE9zt+/Dj3O378OCdOnOD5ue+++249e/bsrffdd9+tAP/wD//wO/fdd9+tZ8+evfW+++67lauuuuqqq6666qqr/qdAD3rQg7jqqquuuuqqq6666r/eNddc8+AzZ848+MVe7MVe65prrnnwNddc8+AXe7EXe20eYHd3l4sXL/L0pz+d+916660AXLx4kd3dXf6zHT9+HIDjx48DcPz4cU6cOMHx48c5ceIEx48f58SJE9zvvvvuuxXgH/7hH377H/7hH37nvvvuu/Xs2bO33nfffbdy1VVXXXXVVVddddV/NfSgBz2Iq6666qqrrrrqqqv+c11zzTUPPnPmzINf7MVe7LVe/MVf/LVf7MVe7LV5pt3dXS5evMjTn/50AG699VYuXrzI7u4u95PEfwXbvKhsc7/jx48DcOLECY4fP85DHvIQTpw4wUMe8hDud99999169uzZW++7775bf+u3fut7/uEf/uG3ueqqq6666qqrrrrqPxt60IMexFVXXXXVVVddddVV/7GuueaaB7/2a7/2ewG80zu902fzTLu7u1y8eJGnP/3p3HrrrTz96U/nuUnifxrb/Ets8/wcP36chzzkIRw/fpwTJ07wkIc8hBMnTgBw33333foP//APv/0P//APv3Pffffd+g//8A+/zVVXXXXVVVddddVV/5HQgx70IK666qqrrrrqqquu+ve55pprHvzar/3a7wXwTu/0Tp/NM128eJG/+qu/4tZbb+XpT386z00S/xqS+M9g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5puPP/axjz3+p3/6pz/DVVddddVVV131fxXl+PHjXHXVVVddddVV/ze92Iu92Gu/0zu902d/wRd8AaUUSilEBBHBh37oh/Kwhz2M1WrF4x//eHZ3d3lukrjffD7n0Y9+NMePH2e5XPJ7v/d7rFYr7ieJF0QSL4wkXhhJvDCS+JdI4l8iiReVJP61JPHvJYmrXjS2+Y9im38L2/xr2Ob5maaJc+fOcfr0aebzOadOneL8+fNM08T9bPNA0zRx/vx5Tp8+zfb2NqdOneJv//ZveaBbb72VD/7gD37pf/iHf/ids2fP3spVV1111VVXXfV/EeX48eNcddVVV1111VX/N33ER3zEd/3CL/zCg++++24igoggIviwD/swHvawh7FarXjc4x7H7u4uknhBFosFr/zKr8x8PufChQv88R//MS+IJF4QSbwwknhhJPHCSOJfIokXhSReVJL4t5DEfyRJ/H9lm/9otvm3sM2/lm3+JdM0ce7cOba2ttja2uLUqVOcP3+ecRx5QaZp4ty5c5w+fZoHP/jBnDp1ir/5m78BwDZHR0fcc889vNd7vddr/8Iv/MLXcNVVV1111VVX/V9EOX78OFddddVVV1111f89r/M6r/PeD3vYwz76J37iJyilUEohInjXd31XXvzFXxyAv/3bv2V3d5cHksQDzedzXuVVXgWACxcu8Gd/9mcASOKFkcQLIokXRhIvjCT+JZL4l0jiRSGJfw1J/FtJ4j+LJP63ss1/Ntv8e9jmX8s2LyrbTNPE7u4u29vbbG1tcerUKc6fP880TTw32wBM08S5c+e46aabuOmmm5DEk570JO53dHTEox71qOPAM2699da/5qqrrrrqqquu+r+Gcvz4ca666qqrrrrqqv97PumTPumnfvzHf/z4pUuXKKUQEbzJm7wJr/marwnAX/7lX7K7u8sLIon5fM6rvMqrAHDhwgX+7M/+jOcmiRdGEi+IJF4YSbwwkviXSOJFIYkXlST+NSTx7yGJ/w6S+M9km/9Otvn3ss2/hW3+NWxzv2ma2N3dZZomzpw5w+nTpzl//jzTNAFgm+c2TRP33HMPN910E4985CORxJOf/GQAjo6OuO+++3jP93zPl/6FX/iFr+Gqq6666qqrrvq/hnL8+HGuuuqqq6666qr/W17ndV7nva+77rr3/uVf/mVKKZRSeMQjHsG7vMu7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uuqq/y2oXHXVVVddddVV/yfs7e0BsLm5yeHhIQC7u7vcTxJXXXXVFZL4l9jm/wNJXLp0id3dXR796Edzv1IKtpHE/cZxBODs2bO3ctVVV1111VVX/W9BcNVVV1111VVX/a9x33333QqwtbXFC7K1tcW1117L3/zN3yAJSUjiqquu+teRhCQkIQlJSEISkpDE/yW7u7s85jGP4cyZMwDUWnlu0zQBcN99993KVVddddVVV131vwXBVVddddVVV131v8Z99913K8DOzg7P7a677gJgc3OTa665hltvvZWrrrrqP5ckJCEJSUhCEpKQxP8mt956K6dPn+aFsc1VV1111VVXXfW/DsFVV1111VVXXfV/zubmJs94xjO46qqr/ntJQhKSkIQkJCEJSfxP8oxnPIPTp0/z6q/+6gCUUnhu0zQBcN99993KVVddddVVV131vwWVq6666qqrrrrqf42zZ88+A2B7exvbSOJ+e3t7AFxzzTUA7O7uctVzksRVLxrbXPWfTxIviG3+K+3u7vJAtVYeyDbTNAFw9uzZZ3DVVVddddVVV/1vQeWqq6666qqrrvpf47777rsVYGdnhxfm1ltv5f8KSVz1X08S/5Fsc9W/jiReENv8R9vd3eXWW2/lwQ9+MFddddVVV1111f8pBFddddVVV1111f8J+/v73O/SpUv8TyIJSUhCEpKQhCQkIQlJSEISkpCEJK76v0ESkpCEJCQhCUlIQhKSkIQkJCGJq54/SUhCEpKQhCQk8e9x6623cr9aK/ezDcByuQTgvvvuu5Wrrrrqqquuuup/CypXXXXVVVddddX/GmfPnr0VYHt7GwDbSOJ+e3t77OzscOzYMd7qrd6Kq6666qr72UYStnkgSdgG4Pjx4zw320jigc6ePXsrV1111VVXXXXV/xZUrrrqqquuuuqq/zP+7M/+jFd8xVfkwQ9+MFddddVV/1bXXHMNALaRxP2maQLgvvvuu5Wrrrrqqquuuup/CypXXXXVVVddddX/Gvfdd9+tADs7Ozw/T3jCE3ggSfxrSOL5kcT9bCOJF0QSLypJPDdJ/Esk8dwkAWAbSTw3SbwwknggSbwgknggSdhGEs9NEs+PJO4niedHEveThG0k8UCSeG6SuJ8knpsk7ieJB5LEc5MEgCQeSBIAknggSTyQJAAk8UCSAJCEbSQBIIn7SQJAEveTBIAk7ieJ+0kCQBL3k4Qk7ieJ+0lCEveThCTuJwkASQBIAkASkrifJAAkIQkASUjifpIAkIQkACQhCQBJAEhCEgCSkASAJCQBIAkASUgCQBIAkpAEgCQkASAJAElIAkASkgCQRK2V2WyGbSRx1VVXXXXVVVf9r0flqquuuuqqq676X+W+++679Zprrnnwzs4Oe3t72EYS93vCE57A/STxgkji+ZHE8yOJ5yaJ50cSz00Sz00Sz00Sz00SDySJ5yaJB5LEA0nigSTxQJJ4IEk8kCTuJ4kHksT9JPFAkrifJO4niftJ4n6SuJ8k7ieJ+0nifpIAkMT9JHE/SQBI4n6SAJDE/SQBIAkASQBI4n6SAJAEgCQAJAEgCQBJAEgCQBIAkgCQBIAkACQBIAlJAEgCQBIAkpAEgCQAJCEJAEkASEISAJKQBIAkJCEJAElIAkASkpAEgCQkIQkASUhCEgCSkIQkJCEJAElIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSUjifpK4nyQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkAWAbSTzQNE0A3Hfffbdy1VVXXXXVVVf9b0Jw1VVXXXXVVVf9r3L27NlbAba3t/mX2Oaqq/4lkvi/QBL3k8T9JPHfyTb/G9jGNi/IOI4AnD179lauuuqqq6666qr/TahcddVVV1111VVX/RvZRhJX/feQxH8VSfxnksQLIonnJon/r2zz3CTxr2Gb5yaJ58c2ANM0AXDffffdylVXXXXVVVdd9b8Jlauuuuqqq6666n+V++6779YXe7EX4/Vf//Wxzf0k8T+JJGzzQJKwzf0k8d9FEra5nyT+K0jCNpL4zyKJ/yiS+PeQxL+VJP4tJPGiksSLQhIvCkm8KCTxL5HE/WxjmweSxAsjiRdGEi+MJB5omiauuuqqq6666qr/ldCDHvQgrrrqqquuuuqq/z2uueaaB7/2a7/2e73TO73TZ3PVVVdd9V/ot37rt77767/+69+Hq6666qqrrrrqfxP0oAc9iKuuuuqqq6666n+Xa6655sG2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbUsSD2DbksQD2LYk8QC2LUk8gG1LEg9g25LEA9i2JPEAti1JPIBtSxIPYNuSxAPYtiTxALYtSTyAbZ89e/YZXHXVVVddddVV/9ugBz3oQVx11VVXXXXVVVddddVVV1111VVXXXXVVf8nUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q/hHr3HRs+l9CaMAAAAASUVORK5CYII=) ```kcl // Shell a sketch on face object on the end face. @@ -150,7 +150,7 @@ shell(thing1, faces = [END], thickness = 5) ``` -![Rendered example of shell 5](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADX60lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV/2Pd8011zyYZzpz5syDeaZrrrnmwTzTmTNnHsS/4Jprrnkwz3Tffffdygtw9uzZZ/Bc7rvvvlt5prNnz94KcN99993KVVddddVVV1111VX/k1G56qqrrrrqqquuuuq/zDXXXPNggDNnzjz4mmuuefCZM2cexDNdc801D77mmmseDHDmzJkHX3PNNQ/mf4n77rvvVoCzZ8/eCnDffffdCnDffffdevbs2WcA3HfffbcC/MM//MNvc9VVV1111VVXXXXVfxX0oAc9iKuuuuqqq6666qqr/v2uueaaB585c+bB11xzzYPPnDnzIIBrrrnmwddcc82Dz5w58+BrrrnmwfwrXbhwAYALFy4AcOHCBe534cIFHujixYs8PxcuXOCFOXnyJM/PiRMnuN/Jkyd5oJMnTwJw8uRJAE6ePMm/xn333XcrwNmzZ2+97777bgX4h3/4h98BuO+++249e/bsrffdd9+tXHXVVVddddVVV13174Ue9KAHcdVVV1111VVXXXXVv+yaa655MMCLvdiLvfaZM2ceBPDiL/7ir33mzJkHX3PNNQ/mX3DhwgUALly4wMWLF7lw4QIAFy5c4MKFCwBcvHiRCxcu8L+RbU6ePAnAyZMnATh58iQAJ06c4OTJk5w8eRKAkydPcvLkSV6Y++6771aAs2fP3nrffffd+g//8A+/A3Dffffd+g//8A+/zVVXXXXVVVddddVVLwr0oAc9iKuuuuqqq6666qqrnu2aa6558JkzZx78Yi/2Yq8F8OIv/uKv/WIv9mKvzQtx4cIFAJ761Kdy4cIFAJ7ylKcA8NSnPpWrnr+TJ08C8LCHPQyAhz/84QCcOHGCkydPcvLkSV6Q++6779azZ8/eet999936D//wD79z33333foP//APv81VV1111VVXXXXVVQ+EHvSgB3HVVVddddVVV131/9U111zz4Nd+7dd+L4AXf/EXf+0Xe7EXe21egAsXLnDhwgWe+tSnAvCUpzyFixcvcuHCBa76z3Hy5EkATpw4wcmTJ3n4wx/OiRMnAHj4wx/O83Pffffdevbs2Vvvu+++W//hH/7hd+67775b/+Ef/uG3ueqqq6666qqrrvr/CT3oQQ/iqquuuuqqq6666v+Da6655sGv/dqv/V4AL/7iL/7aL/ZiL/baPB8XLlzgqU99KhcuXOApT3kKFy9e5MKFC1z1P8vJkycBeNjDHgbAwx/+cE6cOMHDH/5wntt99913K8A//MM//PY//MM//M5999136z/8wz/8NlddddVVV1111VX/96EHPehBXHXVVVddddVVV/1fc8011zz4xV7sxV77zJkzD3rxF3/x136xF3ux1+a5XLhwgYsXL/KUpzyFixcvcuHCBZ761Kfyv5Ftrnq2kydP8rCHPYyHP/zhnDhxgpMnT3Ly5Eke6L777rsV4B/+4R9++x/+4R9+57777rv1H/7hH36bq6666qqrrrrqqv9b0IMe9CCuuuqqq6666qqr/re75pprHvzar/3a7wXwTu/0Tp/Nc7lw4QIXL17kKU95Ck996lN56lOfylX/9Wzz3+XkyZOcOHGChz/84TzsYQ/j4Q9/OM/tvvvuu/Uf/uEffvsf/uEffue+++679R/+4R9+m6uuuuqqq6666qr/3dCDHvQgrrrqqquuuuqqq/63ueaaax782q/92u/14i/+4q/9Yi/2Yq/Nc7lw4QJ/9md/BsCv/uqvctX/D7b51zh58iQPe9jDePjDH86JEyd4+MMfzgPdd999t/7DP/zDb//DP/zD79x33323/sM//MNvc9VVV1111VVXXfW/C3rQgx7EVVddddVVV1111f9011xzzYNf7MVe7LXPnDnzoHd6p3f6bJ7LhQsX+LM/+zOe+tSn8tSnPpWrrvq3OHnyJCdOnOBhD3sYD3/4w3nYwx7GA9133323/sM//MNv/8M//MPv/NZv/dZ3c9VVV1111VVXXfU/H3rQgx7EVVddddVVV1111f9E11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5gAsXLvBnf/ZnPPWpT+WpT30qV131n+HkyZOcOHGChz3sYTz84Q/nYQ97GPe77777bgX4rd/6re/+h3/4h9/5h3/4h9/mqquuuuqqq6666n8e9KAHPYirrrrqqquuuuqq/ymuueaaB7/2a7/2e73O67zOe19zzTUP5pkuXLjAn//5nwPwq7/6q1z1H8s2V/3LTp48ycMe9jAe9rCH8Qqv8Ao80H333XfrP/zDP/z2b/3Wb33PP/zDP/w2V1111VVXXXXVVf8zoAc96EFcddVVV1111VVX/Xe65pprHvzar/3a7/VO7/ROn80DXLhwgT//8z/nqU99Kk996lO56v8u2/xvdPLkSV7+5V+ehz/84TzsYQ/jfvfdd9+t//AP//Dbv/Vbv/U9//AP//DbXHXVVVddddVVV/33QQ960IO46qqrrrrqqquu+q92zTXXPPi1X/u13+ud3umdPpsHuHDhAn/+53/Or/7qr3LVVf8RbPNf4eTJkzzsYQ/jFV7hFXjYwx7G/e67775b/+Ef/uG3f+u3fut7/uEf/uG3ueqqq6666qqrrvqvhR70oAdx1VVXXXXVVVdd9V/hmmuuefBrv/Zrv9frvM7rvPc111zzYJ7pwoUL/Pmf/zm/+qu/ylVX/U9lmxfVyZMnedjDHsYrvMIr8LCHPYz73Xfffbf+1m/91nf/9m//9vfcd999t3LVVVddddVVV131nw896EEP4qqrrrrqqquuuuo/0zXXXPPgd3zHd/ys13md13lvnunChQv8+Z//OX/2Z3/GxYsXueqq/6tOnDjBK7zCK/Cwhz2Mhz3sYQDcd999t/7DP/zDb//DP/zD7/zWb/3Wd3PVVVddddVVV131nwc96EEP4qqrrrrqqquuuuo/2jXXXPPg137t136vd3qnd/psnunChQv8+Z//OX/2Z3/GxYsX+beSxFX/fra56r/WiRMneIVXeAXe8A3fkPvdd999t/7Wb/3Wd//2b//299x33323ctVVV1111VVXXfUfCz3oQQ/iqquuuuqqq6666j/KNddc8+DXfu3Xfq93eqd3+mye6eLFi/zZn/0Zv/Zrv8ZVVz2Qbf4/OnHiBA972MN4hVd4BR72sIcBcN999936W7/1W9/9D//wD7/zD//wD7/NVVddddVVV1111X8M9KAHPYirrrrqqquuuuqqf68Xe7EXe+13eqd3+qwXe7EXe22e6Vd/9Vf58z//cy5evMhVV/1Xs83/BidOnOAVXuEVeMM3fEPud9999936oz/6o5/zW7/1W9/NVVddddVVV1111b8PetCDHsRVV1111VVXXXXVv9U7vuM7ftbrvM7rvPc111zzYICLFy/yZ3/2Z/zar/0aV131f4Ft/iucOHGCV3iFV+DlX/7lOXnyJAD33Xffrb/1W7/13T/6oz/6OVx11VVXXXXVVVf926AHPehBXHXVVVddddVVV/1rveM7vuNnvc7rvM57X3PNNQ8GuHjxIn/2Z3/Gr/3ar3HVVVc9m23+NU6cOMHDHvYw3vAN35CTJ08CcN999936W7/1W9/9oz/6o5/DVVddddVVV1111b8OetCDHsRVV1111VVXXXXVi+rFXuzFXvvDP/zDv+uaa655MMDFixf5sz/7M37t136Nfy9JXPU/i22u+u9x/PhxHvawh/EKr/AKPOxhDwPgvvvuu/VHf/RHP+e3fuu3vpurrrrqqquuuuqqFw160IMexFVXXXXVVVddddW/5Jprrnnwh3/4h3/Xi73Yi702wMWLF/nzP/9zfu3Xfo2rrvqPZJurntPLv/zL84Zv+IacOHECgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq1449KAHPYirrrrqqquuuuqqF+Saa6558Gu/9mu/1zu90zt9NsDFixf58z//c37t136Nq67638I2/9udOHGChz3sYbzhG74hJ06cAOC3fuu3vvtHf/RHP+e+++67lauuuuqqq6666qrnDz3oQQ/iqquuuuqqq6666vl5x3d8x896p3d6p8/mmX7t136NX/u1X+Oqq/4/ss3/BCdOnODlX/7lecM3fEMA7rvvvlt/+7d/+3t+5Ed+5LO56qqrrrrqqquuel7oQQ96EFddddVVV1111VUPdM011zz4wz/8w7/rxV7sxV4b4KlPfSo/+qM/ysWLF7nqqqv+9WzzH+3EiRO8/Mu/PG/4hm8IwH333XfrZ33WZ73OfffddytXXXXVVVddddVVz4Ye9KAHcdVVV1111VVXXXW/d3zHd/ysd3qn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Z2eHxz72sdx0003cdNNNPND+/j533nknd911F/v7+9x1111IAkASAJJ4UUhCEpKQhCQkIQlJSEISkpCEJCQhCYDNzU0e/OAHA/CQhzyEzc1NHuhxj3sct99+O4973ON4YWzzP51t/i1uvvlm3vEd35H77rvv1g/5kA95CFddddVVV1111fODHvSgB3HVVVddddVVVz2v13md13nvD//wD/8ugK/6qq/iX0sS/9fs7Oxw0003sbOzw0033cRNN93EA+3t7QFw5513sre3x/7+PgcHB+zt7XFwcACAJCQBIAkASUhCEpKQhCQkIQlJbG1tIYmtrS2uu+46AK677jrOnDnD87O3t8fjHvc4AP7kT/6E/w9sc9W/zs7ODjfddBM33XQTOzs73HTTTTy3/f199vf32d/f5+6772Z/fx+Ag4MD9vf3eUEkIQlJSEISkpCEJCSxtbXF9vY2W1tbbG5usrW1xebmJtdccw3329vbY2dnh729Pf7hH/6BO+64gzvuuIP/KLb5n8o2/5J3fMd35Oabb+azPuuzXufv//7vf5urrrrqqquuuuq5Ubnqqquuuuqqq56vF3uxF3stgD/6oz/igSTx/9Xe3h6Pe9zjuN/Ozg433XQTN910EwCPfexjAdjZ2eH52d/f5377+/sASMI2krifJAC2trbY2triBdnb2wNgb2+Pvb097rjjDu644w7uvPNO/j+SxH8F2/xfsbe3x+Me9zge97jHAbCzs8POzg47OzvcdNNN7OzssLOzww033ADAox71KJ7b/v4+APv7+0jCNgCSAJCEbSQBsLW1xdbWFi/M3t4ee3t73H777ezt7fG4xz2O/yySeEFs899JEs+Pbe53++23c/PNN/Par/3a7/X3f//3v81VV1111VVXXfXc0IMe9CCuuuqqq6666qrn9RM/8RMG+M7v/E729vb4/0YS/xY7OzsA3Hjjjdx0000A7OzssLOzw87ODv9ae3t7AOzt7QFwxx13ALC/v8+lS5e48847uep/H9v8b7GzswPATTfdBMBNN90EwM7ODjs7O+zs7PCi2tvbY2dnh729PQD29vbY29vj9ttvZ2dnhzvuuIM77riD/+ls8z/Fzs4O7//+78/Zs2ef8cEf/MEP5qqrrrrqqquuem5Urrrqqquuuuqq5/E6r/M67w3wuMc9jr29Pf43k8R/pb29PQD2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zTb/lba2tgC47777buWqq6666qqr/n8iuOqqq6666qr/p86ePXsr/0q2sY1tbPPfwTa2sY1tbPM/kW1sYxvb2MY2trnqqv+tbGMb29jGNraxzf9EtrGNbWzz38E2trGNbf4r2MY2trnxxhsBOHv27K1cddVVV1111f9PBFddddVVV131/9R99913K8DOzg7/VraxjW3+O9nGNraxzf90trGNbWxjG9vY5qqr/rvZxja2sY1tbGOb/8lsYxvb2MY2/x1sYxvb2Oa/gm1sYxvbPD/33XffrVx11VVXXXXV/09Urrrqqquuuur/qfvuu+9WgO3tbf4j2OaBJPHfxTbPjyT+p7PNCyOJq67697DN/3a2+Z/CNv8dbPOi2N7eBuC+++67lauuuuqqq676/4nKVVddddVVV/0/t729zX8G2zw3Sfx3ss1zk8T/Jrb5l0jiqv+fbPN/jW3+J7HNfxfb/Gvt7OwAcPbs2Wdw1VVXXXXVVf8/Ubnqqquuuuqq/6f+4R/+4XcAtre3+a9imweSxH832zw3SfxvZpsXlSSu+p/PNv/X2eZ/Itv8d7HNVVddddVVV13170blqquuuuqqq/6f29nZwTYAkvivZJsHksT/BLZ5fiTxf41t/rUkcdW/jW2uAtv8T2Wb/062+Y904403AvAP//APv81VV1111VVX/f9E5aqrrrrqqqv+nzp79uytPBfb3E8S/9Vs89wk8T+FbZ4fSfx/Ypv/aJL4n8g2V/3b2OZ/Otv8d7PNVVddddVVV131n4rKVVddddVVV/0/dd99990KsL29zfNjmweSxH8H2zyQJP6nsc0LIomr/mW2uep/J9v8b2Gb/262+a+0vb0NwH333XcrV1111VVXXfX/E8FVV1111VVX/T9233333Qqws7PDv8Q2trGNbf672MY2trGNbf4ns41tbGMb29jGNldd9b+FbWxjG9vYxja2+Z/KNraxjW1s89/FNraxzX8V22xtbQFw33333cpVV1111VVX/f9FcNVVV1111VX/j509e/ZWgO3tbf61bGMb29jmv5NtbGMb29jmfwPb2MY2trGNbWxz1VX/lWxjG9vYxja2sY1t/qezjW1sYxvb/HeyjW1sY5v/KraxjW0AdnZ2ADh79uytXHXVVVddddX/X1Suuuqqq6666iq2t7f597LNA0niv5Ntnpsk/rewzb9E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1VVXXXXVVc9C5aqrrrrqqquu4r777rsVYGdnhweyzQNJ4r+bbZ6bJP43s80LI4mrrvqPZpv/y2zzP41t/ivs7OwA8A//8A+/zVVXXXXVVVddReWqq6666qqrrnqR2eaBJPE/gW2emyT+r7DNi0ISV11lm/9PbPM/lW3+O+zs7HDVVVddddVVVz0Llauuuuqqq666irNnzz4DYGdnh38N2zyQJP6nsM3zI4n/q2zzopLEVf972OYqsM3/ZLb572ab+9133323ctVVV1111VVXEVx11VVXXXXVVZfdd999twLceOON/FvZxja2sY1t/qexjW1sYxvb2Ob/G9vYxja2sY1tbGMb29jGNraxjW2u+vexjW1sYxvb2MY2trGNbWxjG9vY5v8b29jGNraxjW3+p7GNbWxjm/8OtrGNbWyzs7MDwH333XcrV1111VVXXXUVAJWrrrrqqquuuuqys2fP3nrNNdc8mP9gtnkgSfxPZJvnRxJXPZtt/rNI4n8C21z1X8M2/1vY5n8K27wgN910EwBnz569lauuuuqqq666CoDgqquuuuqqq6667L777rsVYGdnh/9MtrGNbWxjm//JbGMb29jGNra56j+ebWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbHPVfzzb2MY2trGNbf4ns41tbGOb/062sY1tbPOiuO+++27lqquuuuqqq64CoHLVVVddddVVV11233333Qqws7PDfzXbPJAk/qezzQsiiauu+v/GNv9b2eZ/Etv8W21vbwNw33333cpVV1111VVXXQVA5aqrrrrqqquueg7b29v8d7PNc5PE/xa2eUEkcdVV/1vZ5n872/xPY5v/KDs7OwCcPXv2GVx11VVXXXXVVQBUrrrqqquuuuqqy/7hH/7hdwB2dnawzQNJ4r+bbZ6bJP63sc0LI4mrrvrvYpv/S2zzP5Ftrrrqqquuuuqq/zJUrrrqqquuuuqq57Czs8Nzs80DSeJ/Ats8P5L438o2/xJJXHXVv5Zt/i+zzf9UtvmvctNNNwHwD//wD7/NVVddddVVV10FQOWqq6666qqrrrrs7Nmzt/Iiss0DSeJ/Ets8N0n8X2GbF5Ukrvq/zTb/n9jmfzrbXHXVVVddddVV/2NQueqqq6666qqrLrvvvvtuBdjZ2eFfyzYPJIn/aWzz/Eji/zLb/GtI4qr/Pra56tls87+Bbf4nsM3Ozg4A9913361cddVVV1111VUAVK666qqrrrrqqme57777br3mmmsevLOzw97eHv9WtnlukvifyDbPjyT+P7LNv5ck/j+yzVX/Nrb538I2/1PY5oF2dnYAuO+++27lqquuuuqqq666H5WrrrrqqquuuupZzp49e+s111zz4J2dHfb29viPZJsHksT/ZLZ5fiRx1Qtnm6uuem62+d/INv+T2OYF2dnZAeDs2bO3ctVVV1111VVX3Y/KVVddddVVV131PHZ2dvjPZpvnJon/6Wzzgkjiqqv+v7PN/1a2+Z/GNi+qnZ0dAO67775bueqqq6666qqr7kdw1VVXXXXVVVc9y9///d//NsD29jb/HWxjG9vYxjb/m9jGNraxjW1sYxvbXHXV/wW2sY1tbGMb29jGNv9b2MY2trGNbf4nsI1tbGObf42dnR2uuuqqq6666qrnQeWqq6666qqrrvofzTbPTRL/G9nmhZHEVVf9d7PN/zW2+Z/KNv9RdnZ2APiHf/iH3+Gqq6666qqrrrofwVVXXXXVVVdd9Sz/8A//8DsAN910E7axjW1s8z+JbWxjG9vY5v8C29jGNraxjW1sYxvbXHXVv4dtbGMb29jGNraxjW3+t7ONbWxjG9v8T2Ib29jGNlddddVVV1111X86KlddddVVV1111YvENg8kif9JbPP8SOL/Etu8KCRx1f8ftvn/yDb/09nmv8pNN90EwH333XcrV1111VVXXXXV/ahcddVVV1111VXPcvbs2VsBdnZ2+JfY5rlJ4n8a2zw/kvi/zDb/GpK46n8O21z1bLb538A2/xOcPXv2Vq666qqrrrrqqvtRueqqq6666qqrnuW+++67FWBnZ4d/C9s8kCT+p7LN8yOJ/49s8+8liavANlf929jmfxPb/E9hm52dHQDuu+++W7nqqquuuuqqq+5H5aqrrrrqqquueg733Xffrddcc82Dd3Z22Nvb49/DNs9NEv+T2eb5kcRVL5xtrrrqX2Kb/41s8z+Nba666qqrrrrqqn8RwVVXXXXVVVdd9RzOnj17K8DOzg7/GWxjG9vY5n8L29jGNraxjW1sc9VVVz0v29jGNraxjW3+t7CNbWxjm/8JbGMb29jmgW666SYA/uEf/uG3ueqqq6666qqrHojKVVddddVVV13138o2z00S/5vY5gWRxFVX/V9km/8rbPM/kW1eVDs7OwDcd999t3LVVVddddVVVz0QwVVXXXXVVVdd9Rz+/u///rcBbrrpJv672MY2trGNbf63so1tbGMb29jGNra56qr/qWxjG9vYxja2sY1t/reyjW1sYxvb/E9hG9vYxjZXXXXVVVddddV/CCpXXXXVVVddddXzZZv/SWzz/EjifzPb/EskcdVV/9Fs83+dbf4ns81/lJ2dHQDuu+++W7nqqquuuuqqqx6I4Kqrrrrqqquueg5nz559BsDNN9+MbWxjG9v8T2Qb29jGNrb5v8Y2trGNbWxjG9vYxja2ueoqANvYxja2sY1tbGMb29jm/xLb2MY2trGNbf6nsY1tbGOb/0jHjh0D4OzZs8/gqquuuuqqq656ICpXXXXVVVddddVzuO+++27lBbDNA0nifyLbPD+S+L/MNv8akrjqfz7bXHWFbf63sM1/pe3tbQDuu+++W7nqqquuuuqqqx6IylVXXXXVVVdd9RzOnj17K8DOzg7/Ets8N0n8T2Wb50cS/x/Z5t9DElf9y2xz1b+Obf63sc1/p2PHjgFw9uzZW7nqqquuuuqqqx6IylVXXXXVVVdd9R/KNs9NEv+T2eb5kcRVL5htrrrq38M2/xvZ5n+anZ0dAO67775bueqqq6666qqrHojgqquuuuqqq656Dvfdd9+t99133607Ozvs7OzwH8E2trGNbf63sI1tbGMb29jGNlddddWLxja2sY1tbGMb2/xvYRvb2MY2/xPYxja2sc1VV1111VVXXfUCEVx11VVXXXXVVc/j7NmztwLs7Ozwn8E2trGNbWzzv41tbGMb29jGNraxzVVX/X9iG9vYxja2sY1t/rexjW1sYxvb/E9gG9vYxjYPdNNNNwFw33333cpVV1111VVXXfXcqFx11VVXXXXVVf8j2Oa5SeJ/K9u8IJK46qr/TWzzf5Ft/qeyzYvq2LFjAPzDP/zDb3PVVVddddVVVz03gquuuuqqq6666nncd999twLs7Ozw38k2trGNbWxjm//tbGMb29jGNraxjW1sc9VV/5VsYxvb2MY2trGNbf4vsI1tbGMb2/xPYhvb2MY2V1111VVXXXXVfxgqV1111VVXXXXV87jvvvtuBdjZ2eF/Its8N0n8X2KbF4UkrrrqBbHN/ze2+d/ANv9RdnZ2ALjvvvtu5aqrrrrqqquuem5Urrrqqquuuuqq53H27NlnAOzs7GCbB5LE/0S2eX4k8X+ZbV5Ukrjqfz/bXHWFbf63sM1/lp2dHQDOnj37DK666qqrrrrqqudG5aqrrrrqqquueh733XffrQA7Ozs8N9s8kCT+J7PN8yOJ/29s828liav+49jmqhedbf43sc1/pZ2dHa666qqrrrrqqheIylVXXXXVVVdd9TzOnj17K8CxY8f4l9jmuUnifzrbPD+SuOp52eY/iyT+J7LNVf91bPO/lW3+Ox07dgyAf/iHf/htrrrqqquuuuqq50blqquuuuqqq676D2eb5yaJ/w1s84JI4qr/eLa56v8P2/xvZpv/aXZ2drjqqquuuuqqq14gKlddddVVV1111fO47777bgXY2dnhP4ptnpsk/jexzQsiiauuuuoK2/xfYJv/qWzz3O67775bueqqq6666qqrnhvBVVddddVVV131fN133323Atx00038Z7GNbWxjG9v8b2Ub29jGNraxjW1sc9VV/5fYxja2sY1tbGMb2/xvZBvb2MY2tvmfxDa2sY1t7rezswPA2bNnn8FVV1111VVXXfX8EFx11VVXXXXVVc/Xfffddyv/DWxjG9vYxjb/F9jGNraxjW1sYxvbXHXV/yS2sY1tbGMb29jGNv/b2cY2trGNbf6nsY1tbGObF+Tmm28G4L777ruVq6666qqrrrrq+SG46qqrrrrqqquer7Nnz94KcOzYMf672cY2trGNbf6vsY1tbGMb29jGNraxjW2uuurfwza2sY1tbGMb29jGNrb5v8Q2trGNbWzzP5FtbGMb2/xr3Xfffbdy1VVXXXXVVVc9P1Suuuqqq6666qrn67777rsVYGdnh/+JbPP8SOL/Mtu8KCRx1f8PtrkKbPO/iW3+I+zs7ABw3333PZ2rrrrqqquuuur5oXLVVVddddVVVz1fZ8+evRVgZ2cH2zyQJP6nss3zI4n/T2zzbyGJq/772OaqF842/9vY5j/LsWPHADh79uwzuOqqq6666qqrnh8qV1111VVXXXXV83XffffdCrCzs8Nzs80DSeJ/Ots8P5K46tls8x9BEv9f2Oaq/3i2+d/KNlddddVVV1111f8YVK666qqrrrrqqhfq2LFj/Ets89wk8b+BbV4QSVz1b2Obq656UdjmfzPb/He6+eabAfiHf/iH3+aqq6666qqrrnp+qFx11VVXXXXVVc/Xfffddyv/DrZ5bpL438Q2L4gkrrrqqheNbf4vsM1VV1111VVXXfW/DpWrrrrqqquuuur5Onv27DMAdnZ2+I9im+cmif+NbPOCSOKqq/4/sc3/Nbb5n8w2ADs7OwDcd999t3LVVVddddVVVz0/BFddddVVV1111Qt033333Qqws7PDfxbb2MY2trHN/3a2sY1tbGMb29jGNra56qr/TWxjG9vYxja2sY1t/rezjW1sYxvb/E9jG9vYxjYAOzs7ANx33323ctVVV1111VVXvSAEV1111VVXXXXVC3T27NlbAY4dO8Z/JdvYxja2sc3/NbaxjW1sYxvb2MY2trnqqv8KtrGNbWxjG9vYxja2+b/ENraxjW1s8z+RbWxjG9s8P8eOHQPg7Nmzt3LVVVddddVVV70gVK666qqrrrrqqn/Rzs4O/91s8/xI4v8q27woJHHVVc/NNv+f2eZ/E9v8a+3s7ABw33333cpVV1111VVXXfWCEFx11VVXXXXVVS/Q3//93/82wM7ODv9T2cY2trGNbWzz/4ltbGMb29jGNraxjW1sYxvbXPW/k21sYxvb2MY2trGNbWxjG9v8f2Ib29jGNrb5n8w2trGNbWzzb3Hs2DGuuuqqq6666qp/EZWrrrrqqquuuupFYpv7SeJ/Ots8P5L4/842/x6SuOpfzzZX/fvY5n8j2/xn2NnZAeAf/uEffoerrrrqqquuuuoFoXLVVVddddVVV71A//AP//A7ADfffDMPZJvnJon/DWzz/EjiqheNbf47SeLfwjZX/c9nm//NbHPVVVddddVVV/2PQuWqq6666qqrrnqRvNiLvRj/GpL4v0ISV1111X8c2/xfYZv/LjfffDMA9913361cddVVV1111VUvCJWrrrrqqquuuuoFOnv27K3/8A//8Nsv9mIv9to333wzV1111VVX/c/yW7/1W9999uzZW7nqqquuuuqqq14Q9KAHPYirrrrqqquuuuoFu+aaax78ju/4jp/FVVddddVV/+P86I/+6Ofcd999t3LVVVddddVVV70g6EEPehBXXXXVVVddddVVV1111VVXXXXVVVddddX/SVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxX/CJ3sH1QJZh6iAAAAAElFTkSuQmCC) +![Rendered example of shell 5](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADX6ElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV/2Pd8011zyYZzpz5syDeaZrrrnmwTzTmTNnHsS/4Jprrnkwz3Tffffdygtw9uzZZ/Bc7rvvvlt5prNnz94KcN99993KVVddddVVV1111VX/k1G56qqrrrrqqquuuuq/zDXXXPNggDNnzjz4mmuuefCZM2cexDNdc801D77mmmseDHDmzJkHX3PNNQ/mf4n77rvvVoCzZ8/eCnDffffdCnDffffdevbs2WcA3HfffbcC/MM//MNvc9VVV1111VVXXXXVfxX0oAc9iKuuuuqqq6666qqr/v2uueaaB585c+bB11xzzYPPnDnzIIBrrrnmwddcc82Dz5w58+BrrrnmwfwrXLhwgftduHABgAsXLnC/Cxcu8EAXL17k+blw4QIvzMmTJ3lBTpw4wf1OnjzJ/U6ePMn9Tp48ycmTJ/nXuO+++24FOHv27K333XffrQD/8A//8DsA9913361nz5699b777ruVq6666qqrrrrqqqv+vdCDHvQgrrrqqquuuuqqq676l11zzTUPBnixF3ux1z5z5syDAF78xV/8tc+cOfPga6655sH8Cy5cuADAhQsXuHjxIhcuXADgwoULXLhwAYCLFy9y4cIF/jeyzcmTJwE4efIkACdPngTgxIkTnDx5kpMnTwJw8uRJTp48yQtz33333Qpw9uzZW++7775b/+Ef/uF3AO67775b/+Ef/uG3ueqqq6666qqrrrrqRYEe9KAHcdVVV1111VVXXXXVs11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1eSEuXLjAhQsXuHjxIhcuXADgKU95CgBPfepTuer5O3nyJAAnTpzg5MmTnDx5kpMnT3LixAlOnjzJyZMneUHuu+++W8+ePXvrfffdd+s//MM//M5999136z/8wz/8NlddddVVV1111VVXPRB60IMexFVXXXXVVVddddX/V9dcc82DX/u1X/u9AF78xV/8tV/sxV7stXkBLly4wIULF3jqU58KwFOe8hQuXrzIhQsXuOo/x8mTJwE4ceIEJ0+e5OEPfzgnTpwA4OEPfzjPz3333Xfr2bNnb73vvvtu/Yd/+Iffue+++279h3/4h9/mqquuuuqqq6666v8n9KAHPYirrrrqqquuuuqq/w+uueaaB7/2a7/2ewG8+Iu/+Gu/2Iu92GvzfFy4cIGnPvWpXLhwgac85SlcvHiRCxcucNX/LCdPngTgYQ97GAAPf/jDOXHiBA9/+MN5bvfdd9+tAP/wD//w2//wD//wO/fdd9+t//AP//DbXHXVVVddddVVV/3fhx70oAdx1VVXXXXVVVdd9X/NNddc8+AXe7EXe+0zZ8486MVf/MVf+8Ve7MVem+dy4cIFLl68yFOe8hQuXrzIU5/6VC5cuMD/Rra56tlOnjzJwx72ME6ePMnDHvYwTp48ycmTJ3mg++6771aAf/iHf/jtf/iHf/id++6779Z/+Id/+G2uuuqqq6666qqr/m9BD3rQg7jqqquuuuqqq6763+6aa6558Gu/9mu/F8A7vdM7fTbP5cKFC1y8eJGnPOUpPPWpT+WpT30qV/3Xs81/l5MnT3LixAlOnjzJwx/+cF7hFV6B53bffffd+g//8A+//Q//8A+/c9999936D//wD7/NVVddddVVV1111f9u6EEPehBXXXXVVVddddVV/9tcc801D37t137t93rxF3/x136xF3ux1+a5XLhwgT/7sz8D4Fd/9Ve56v8H2/xrnDx5koc97GE8/OEP58SJEzz84Q/nge67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4be56qqrrrrqqquu+t8FPehBD+Kqq6666qqrrrrqf7prrrnmwS/2Yi/22mfOnHnQO73TO302z+XChQv82Z/9GU996lN56lOfylVX/VucPHmSEydO8LCHPYyHP/zhPOxhD+OB7rvvvlv/4R/+4bf/4R/+4Xd+67d+67u56qqrrrrqqquu+p8PPehBD+Kqq6666qqrrrrqf6Jrrrnmwa/92q/9Xi/+4i/+2i/2Yi/22jzAhQsX+LM/+zOe+tSn8tSnPpWrrvrPcPLkSU6cOMHDHvYwHv7wh/Owhz2M+9133323AvzWb/3Wd//DP/zD7/zDP/zDb3PVVVddddVVV131Pw960IMexFVXXXXVVVddddX/FNdcc82DX/u1X/u9Xud1Xue9r7nmmgfzTBcuXODP//zPAfjVX/1VrvqPZZur/mUnT57kYQ97GA972MN4hVd4BR7ovvvuu/Uf/uEffvu3fuu3vucf/uEffpurrrrqqquuuuqq/xnQgx70IK666qqrrrrqqqv+O11zzTUPfu3Xfu33eqd3eqfP5gEuXLjAn//5n/PUpz6Vpz71qVz1f5dt/jc6efIkL//yL8/DH/5wHvawh3G/++6779Z/+Id/+O3f+q3f+p5/+Id/+G2uuuqqq6666qqr/vugBz3oQVx11VVXXXXVVVf9V7vmmmse/Nqv/drv9U7v9E6fzQNcuHCBP//zP+dXf/VXueqq/wi2+a9w8uRJHvawh/EKr/AKPOxhD+N+9913363/8A//8Nu/9Vu/9T3/8A//8NtcddVVV1111VVX/ddCD3rQg7jqqquuuuqqq676r3DNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3ThwgX+/M//nF/91V/lqqv+p7LNi+rkyZM87GEP4xVe4RV42MMexv3uu+++W3/rt37ru3/7t3/7e+67775bueqqq6666qqrrvrPhx70oAdx1VVXXXXVVVdd9Z/pmmuuefA7vuM7ftbrvM7rvDfPdOHCBf78z/+cX/3VX+Wqq/4vO3HiBK/wCq/Awx72MB72sIcBcN999936D//wD7/9D//wD7/zW7/1W9/NVVddddVVV1111X8e9KAHPYirrrrqqquuuuqq/2jXXHPNg1/7tV/7vd7pnd7ps3mmCxcu8Od//uf82Z/9GRcvXuTfShJX/fvZ5qr/WidOnOAVXuEVeMM3fEPud9999936W7/1W9/927/9299z33333cpVV1111VVXXXXVfyz0oAc9iKuuuuqqq6666qr/KNdcc82DX/u1X/u93umd3umzeaaLFy/yZ3/2Z/zar/0aV131QLb5/+jEiRM87GEP4xVe4RV42MMeBsB9991362/91m999z/8wz/8zj/8wz/8NlddddVVV1111VX/MdCDHvQgrrrqqquuuuqqq/69XuzFXuy13+md3umzXuzFXuy1eaZf/dVf5c///M+5ePEiV131X802/xucOHGCV3iFV+AN3/ANud99991364/+6I9+zm/91m99N1ddddVVV1111VX/PuhBD3oQV1111VVXXXXVVf9W7/iO7/hZr/M6r/Pe11xzzYMBLl68yJ/92Z/xa7/2a1x11f8FtvmvcOLECV7hFV6Bl3/5l+fkyZMA3Hfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVdd9W+DHvSgB3HVVVddddVVV131r/WO7/iOn/U6r/M6733NNdc8GODixYv82Z/9Gb/2a7/GVVdd9Wy2+dc4ceIED3vYw3iFV3gFHvawhwFw33333fpbv/Vb3/2jP/qjn8NVV1111VVXXXXVvw560IMexFVXXXXVVVddddWL6sVe7MVe+8M//MO/65prrnkwwMWLF/nVX/1V/vzP/5x/L0lc9T+Lba7672Gbl3/5l+cVXuEVeNjDHgbAfffdd+uP/uiPfs5v/dZvfTdXXXXVVVddddVVLxr0oAc9iKuuuuqqq6666qp/yTXXXPPgD//wD/+uF3uxF3ttgIsXL/Jrv/Zr/Pmf/zlXXfUfyTZXPaeXf/mX5w3f8A05ceIEAPfdd9+tX//1X/8+//AP//DbXHXVVVddddVVV71w6EEPehBXXXXVVVddddVVL8g111zz4Nd+7dd+r3d6p3f6bICLFy/y53/+5/zar/0aV131v4Vt/rc7ceIEL//yL88rvMIrcOLECQB+67d+67t/9Ed/9HPuu+++W7nqqquuuuqqq656/tCDHvQgrrrqqquuuuqqq56fd3zHd/ysd3qnd/psnunXfu3X+LVf+zWuuur/I9v8T3DixAle/uVfnjd8wzcE4L777rv1t3/7t7/nR37kRz6bq6666qqrrrrqqueFHvSgB3HVVVddddVVV131QNdcc82DP/zDP/y7XuzFXuy1AZ761KfyLd/yLVx11VX/Nrb5j3bixAle/uVfnjd8wzcE4L777rv1sz7rs17nvvvuu5WrrrrqqquuuuqqZ0MPetCDuOqqq6666qqrrrrfO77jO37WO73TO302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+G2uuuqqq6666qrnh8pVV1111VVXXfV83Xfffbfy72Cb5yaJ/01s84JI4qqrrnrR2Ob/AttcddVVV1111VX/61C56qqrrrrqqquer7Nnzz4DYGdnh/8otnlukvjfyDYviCSuuur/E9v8X2Ob/8lsA7CzswPAfffddytXXXXVVVddddXzQ3DVVVddddVVV71A9913360AOzs7/GexjW1sYxvb/G9nG9vYxja2sY1tbGObq67638Q2trGNbWxjG9vY5n8729jGNraxzf80trGNbWwDsLOzA8B99913K1ddddVVV1111QtCcNVVV1111VVXvUBnz569FeDYsWP8V7KNbWxjG9v8X2Mb29jGNraxjW1sY5urrvqvYBvb2MY2trGNbWxjm/9LbGMb29jGNv8T2cY2trHN83Ps2DEAzp49eytXXXXVVVddddULQuWqq6666qqrrvoX7ezs8N/NNs+PJP6vss2LQhJXXfXcbPP/mW3+N7HNv9bOzg4A9913361cddVVV1111VUvCMFVV1111VVXXfUC/f3f//1vA+zs7PA/lW1sYxvb2MY2/5/Yxja2sY1tbGMb29jGNraxzVX/O9nGNraxjW1sYxvb2MY2trHN/ye2sY1tbGOb/8lsYxvb2MY2/xbHjh3jqquuuuqqq676F1G56qqrrrrqqqteJLa5nyT+p7PN8yOJ/+9s8+8hiav+9Wxz1b+Pbf43ss1/hp2dHQD+4R/+4Xe46qqrrrrqqqteECpXXXXVVVddddUL9A//8A+/A3DzzTfzQLZ5bpL438A2z48krnrR2Oa/kyT+LWxz1f98tvnfzDZXXXXVVVddddX/KFSuuuqqq6666qoXyYu92IvxryGJ/yskcdVVV/3Hsc3/Fbb573LzzTcDcN99993KVVddddVVV131glC56qqrrrrqqqteoLNnz976D//wD7/9Yi/2Yq998803c9VVV1111f8sv/Vbv/XdZ8+evZWrrrrqqquuuuoFQQ960IO46qqrrrrqqqtesGuuuebB7/iO7/hZXHXVVVdd9T/Oj/7oj37OfffddytXXXXVVVddddULgh70oAdx1VVXXXXVVVddddVVV1111VVXXXXVVVf9n0Tlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1fxj8SgJX7fgtdTAAAAAElFTkSuQmCC) ```kcl // Shell sketched on face objects on the end face, include all sketches to shell @@ -179,6 +179,6 @@ shell([thing1, thing2], faces = [END], thickness = 5) ``` -![Rendered example of shell 6](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADgXElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV/2Pd8011zyYZzpz5syDeaZrrrnmwTzTmTNnHsS/4Jprrnkwz3Tffffdygtw9uzZZ/Bc7rvvvlt5prNnz94KcN99993KVVddddVVV1111VX/k1G56qqrrrrqqquuuuq/zDXXXPNggDNnzjz4mmuuefCZM2cexDNdc801D77mmmseDHDmzJkHX3PNNQ/mf4n77rvvVoCzZ8/eCnDffffdCnDffffdevbs2WcA3HfffbcC/MM//MNvc9VVV1111VVXXXXVfxX0oAc9iKuuuuqqq6666qqr/v2uueaaB585c+bB11xzzYPPnDnzIIBrrrnmwddcc82Dz5w58+BrrrnmwfwrXbhwAYALFy4AcOHCBe534cIFHujixYs8PxcuXOCFOXnyJM/PiRMnuN/Jkyd5oJMnTwJw8uRJAE6ePMm/xn333XcrwNmzZ2+97777bgX4h3/4h98BuO+++249e/bsrffdd9+tXHXVVVddddVVV13174Ue9KAHcdVVV1111VVXXXXVv+yaa655MMCLvdiLvfaZM2ceBPDiL/7ir33mzJkHX3PNNQ/mX3DhwgUALly4wMWLF7lw4QIAFy5c4MKFCwBcvHiRCxcu8L+RbU6ePAnAyZMnATh58iQAJ06c4OTJk5w8eRKAkydPcvLkSV6Y++6771aAs2fP3nrffffd+g//8A+/A3Dffffd+g//8A+/zVVXXXXVVVddddVVLwr0oAc9iKuuuuqqq6666qqrnu2aa6558JkzZx78Yi/2Yq8F8OIv/uKv/WIv9mKvzQtx4cIFAJ761Kdy4cIFAJ7ylKcA8NSnPpWrnr+TJ08C8LCHPQyAhz/84QCcOHGCkydPcvLkSV6Q++6779azZ8/eet999936D//wD79z33333foP//APv81VV1111VVXXXXVVQ+EHvSgB3HVVVddddVVV131/9U111zz4Nd+7dd+L4AXf/EXf+0Xe7EXe21egAsXLnDhwgWe+tSnAvCUpzyFixcvcuHCBa76z3Hy5EkATpw4wcmTJ3n4wx/OiRMnAHj4wx/O83Pffffdevbs2Vvvu+++W//hH/7hd+67775b/+Ef/uG3ueqqq6666qqrrvr/CT3oQQ/iqquuuuqqq6666v+Da6655sGv/dqv/V4AL/7iL/7aL/ZiL/baPB8XLlzgqU99KhcuXOApT3kKFy9e5MKFC1z1P8vJkycBeNjDHgbAwx/+cE6cOMHDH/5wntt99913K8A//MM//PY//MM//M5999136z/8wz/8NlddddVVV1111VX/96EHPehBXHXVVVddddVVV/1fc8011zz4xV7sxV77zJkzD3rxF3/x136xF3ux1+a5XLhwgYsXL/KUpzyFixcvcuHCBZ761Kfyv5Ftrnq2kydP8rCHPYyHP/zhnDhxgpMnT3Ly5Eke6L777rsV4B/+4R9++x/+4R9+57777rv1H/7hH36bq6666qqrrrrqqv9b0IMe9CCuuuqqq6666qqr/re75pprHvzar/3a7wXwTu/0Tp/Nc7lw4QIXL17kKU95Ck996lN56lOfylX/9Wzz3+XkyZOcOHGChz/84TzsYQ/j4Q9/OM/tvvvuu/Uf/uEffvsf/uEffue+++679R/+4R9+m6uuuuqqq6666qr/3dCDHvQgrrrqqquuuuqqq/63ueaaax782q/92u/14i/+4q/9Yi/2Yq/Nc7lw4QJ/9md/BsCv/uqvctX/D7b51zh58iQPe9jDePjDH86JEyd4+MMfzgPdd999t/7DP/zDb//DP/zD79x33323/sM//MNvc9VVV1111VVXXfW/C3rQgx7EVVddddVVV1111f9011xzzYNf7MVe7LXPnDnzoHd6p3f6bJ7LhQsX+LM/+zOe+tSn8tSnPpWrrvq3OHnyJCdOnOBhD3sYD3/4w3nYwx7GA9133323/sM//MNv/8M//MPv/NZv/dZ3c9VVV1111VVXXfU/H3rQgx7EVVddddVVV1111f9E11xzzYNf+7Vf+71e/MVf/LVf7MVe7LV5gAsXLvBnf/ZnPPWpT+WpT30qV131n+HkyZOcOHGChz3sYTz84Q/nYQ97GPe77777bgX4rd/6re/+h3/4h9/5h3/4h9/mqquuuuqqq6666n8e9KAHPYirrrrqqquuuuqq/ymuueaaB7/2a7/2e73O67zOe19zzTUP5pkuXLjAn//5nwPwq7/6q1z1H8s2V/3LTp48ycMe9jAe9rCH8Qqv8Ao80H333XfrP/zDP/z2b/3Wb33PP/zDP/w2V1111VVXXXXVVf8zoAc96EFcddVVV1111VVX/Xe65pprHvzar/3a7/VO7/ROn80DXLhwgT//8z/nqU99Kk996lO56v8u2/xvdPLkSV7+5V+ehz/84TzsYQ/jfvfdd9+t//AP//Dbv/Vbv/U9//AP//DbXHXVVVddddVVV/33QQ960IO46qqrrrrqqquu+q92zTXXPPi1X/u13+ud3umdPpsHuHDhAn/+53/Or/7qr3LVVf8RbPNf4eTJkzzsYQ/jFV7hFXjYwx7G/e67775b/+Ef/uG3f+u3fut7/uEf/uG3ueqqq6666qqrrvqvhR70oAdx1VVXXXXVVVdd9V/hmmuuefBrv/Zrv9frvM7rvPc111zzYJ7pwoUL/Pmf/zm/+qu/ylVX/U9lmxfVyZMnedjDHsYrvMIr8LCHPYz73Xfffbf+1m/91nf/9m//9vfcd999t3LVVVddddVVV131nw896EEP4qqrrrrqqquuuuo/0zXXXPPgd3zHd/ys13md13lvnunChQv8+Z//OX/2Z3/GxYsXueqq/6tOnDjBK7zCK/Cwhz2Mhz3sYQDcd999t/7DP/zDb//DP/zD7/zWb/3Wd3PVVVddddVVV131nwc96EEP4qqrrrrqqquuuuo/2jXXXPPg137t136vd3qnd/psnunChQv8+Z//OX/2Z3/GxYsX+beSxFX/fra56r/WiRMneIVXeAXe8A3fkPvdd999t/7Wb/3Wd//2b//299x33323ctVVV1111VVXXfUfCz3oQQ/iqquuuuqqq6666j/KNddc8+DXfu3Xfq93eqd3+mye6eLFi/zZn/0Zv/Zrv8ZVVz2Qbf4/OnHiBA972MN4hVd4BR72sIcBcN999936W7/1W9/9D//wD7/zD//wD7/NVVddddVVV1111X8M9KAHPYirrrrqqquuuuqqf68Xe7EXe+13eqd3+qwXe7EXe22e6Vd/9Vf58z//cy5evMhVV/1Xs83/BidOnOAVXuEVeMM3fEPud9999936oz/6o5/zW7/1W9/NVVddddVVV1111b8PetCDHsRVV1111VVXXXXVv9U7vuM7ftbrvM7rvPc111zzYICLFy/yZ3/2Z/zar/0aV131f4Ft/iucOHGCV3iFV+DlX/7lOXnyJAD33Xffrb/1W7/13T/6oz/6OVx11VVXXXXVVVf926AHPehBXHXVVVddddVVV/1rveM7vuNnvc7rvM57X3PNNQ8GuHjxIn/2Z3/Gr/3ar3HVVVc9m23+NU6cOMHDHvYw3vAN35CTJ08CcN999936W7/1W9/9oz/6o5/DVVddddVVV1111b8OetCDHsRVV1111VVXXXXVi+rFXuzFXvvDP/zDv+uaa655MMDFixf5sz/7M37t136Nfy9JXPU/i22u+u9x/PhxHvawh/EKr/AKPOxhDwPgvvvuu/VHf/RHP+e3fuu3vpurrrrqqquuuuqqFw160IMexFVXXXXVVVddddW/5Jprrnnwh3/4h3/Xi73Yi702wMWLF/nzP/9zfu3Xfo2rrvqPZJurntPLv/zL84Zv+IacOHECgPvuu+/Wr//6r3+ff/iHf/htrrrqqquuuuqqq1449KAHPYirrrrqqquuuuqqF+Saa6558Gu/9mu/1zu90zt9NsDFixf58z//c37t136Nq67638I2/9udOHGChz3sYbzhG74hJ06cAOC3fuu3vvtHf/RHP+e+++67lauuuuqqq6666qrnDz3oQQ/iqquuuuqqq6666vl5x3d8x896p3d6p8/mmX7t136NX/u1X+Oqq/4/ss3/BCdOnODlX/7lecM3fEMA7rvvvlt/+7d/+3t+5Ed+5LO56qqrrrrqqquuel7oQQ96EFddddVVV1111VUPdM011zz4wz/8w7/rxV7sxV4b4KlPfSo/+qM/ysWLF7nqqqv+9WzzH+3EiRO8/Mu/PG/4hm8IwH333XfrZ33WZ73OfffddytXXXXVVVddddVVz4Ye9KAHcdVVV1111VVXXXW/d3zHd/ysd3qn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JLZ5fiTxf4ltXhSSuOr/D9v8f2Sb/+ls81/lpptuAuC+++67lauuuuqqq6666n5UrrrqqquuuuqqZzl79uytADs7O/xLbPPcJPE/jW2eH0n8X2abfw1JXPU/h22uejbb/G9gm/8Jzp49eytXXXXVVVddddX9qFx11VVXXXXVVc9y33333Qqws7PDv4VtHkgS/1PZ5vmRxP9Htvn3ksRVYJur/m1s87+Jbf6nsM3Ozg4A9913361cddVVV1111VX3o3LVVVddddVVVz2H++6779ZrrrnmwTs7O+zt7fHvYZvnJon/yWzz/EjiqhfONldd9S+xzf9GtvmfxjZXXXXVVVddddW/iOCqq6666qqrrnoOZ8+evRVgZ2eH/wy2sY1tbPO/hW1sYxvb2MY2trnqqquel21sYxvb2MY2/1vYxja2sc3/BLaxjW1s80A33XQTAP/wD//w21x11VVXXXXVVQ9E5aqrrrrqqquu+m9lm+cmif9NbPOCSOKqq/4vss3/Fbb5n8g2L6qdnR0A7rvvvlu56qqrrrrqqqseiOCqq6666qqrrnoOf//3f//bADfddBP/XWxjG9vYxjb/W9nGNraxjW1sYxvbXHXV/1S2sY1tbGMb29jGNv9b2cY2trGNbf6nsI1tbGObq6666qqrrrrqPwSVq6666qqrrrrq+bLN/yS2eX4k8b+Zbf4lkrjqqv9otvm/zjb/k9nmP8rOzg4A9913361cddVVV1111VUPRHDVVVddddVVVz2Hs2fPPgPg5ptvxja2sY1t/ieyjW1sYxvb/F9jG9vYxja2sY1tbGMb21x1FYBtbGMb29jGNraxjW1s83+JbWxjG9vYxjb/09jGNraxzX+kY8eOAXD27NlncNVVV1111VVXPRCVq6666qqrrrrqOdx333238gLY5oEk8T+RbZ4fSfxfZpt/DUlc9T+fba66wjb/W9jmv9L29jYA9913361cddVVV1111VUPROWqq6666qqrrnoOZ8+evRVgZ2eHf4ltnpsk/qeyzfMjif+PbPPvIYmr/mW2uepfxzb/29jmv9OxY8cAOHv27K1cddVVV1111VUPROWqq6666qqrrvoPZZvnJon/yWzz/EjiqhfMNldd9e9hm/+NbPM/zc7ODgD33XffrVx11VVXXXXVVQ9EcNVVV1111VVXPYf77rvv1vvuu+/WnZ0ddnZ2+I9gG9vYxjb/W9jGNraxjW1sY5urrrrqRWMb29jGNraxjW3+t7CNbWxjm/8JbGMb29jmqquuuuqqq656gQiuuuqqq6666qrncfbs2VsBdnZ2+M9gG9vYxja2+d/GNraxjW1sYxvb2Oaqq/4/sY1tbGMb29jGNv/b2MY2trGNbf4nsI1tbGObB7rpppsAuO+++27lqquuuuqqq656blSuuuqqq6666qr/EWzz3CTxv5VtXhBJXHXV/ya2+b/INv9T2eZFdezYMQD+4R/+4be56qqrrrrqqqueG8FVV1111VVXXfU87rvvvlsBdnZ2+O9kG9vYxja2sc3/draxjW1sYxvb2MY2trnqqv9KtrGNbWxjG9vYxjb/F9jGNraxjW3+J7GNbWxjm6uuuuqqq6666j8Mlauuuuqqq6666nncd999twLs7OzwP5Ftnpsk/i+xzYtCEldd9YLY5v8b2/xvYJv/KDs7OwDcd999t3LVVVddddVVVz03KlddddVVV1111fM4e/bsMwB2dnawzQNJ4n8i2zw/kvi/zDYvKklc9b+fba66wjb/W9jmP8vOzg4AZ8+efQZXXXXVVVddddVzo3LVVVddddVVVz2P++6771aAnZ0dnpttHkgS/5PZ5vmRxP83tvm3ksRV/3Fsc9WLzjb/m9jmv9LOzg5XXXXVVVddddULROWqq6666qqrrnoeZ8+evRXg2LFj/Ets89wk8T+dbZ4fSVz1vGzzn0US/xPZ5qr/Orb538o2/52OHTsGwD/8wz/8NlddddVVV1111XOjctVVV1111VVX/YezzXOTxP8GtnlBJHHVfzzbXPX/h23+N7PN/zQ7OztcddVVV1111VUvEJWrrrrqqquuuup53HfffbcC7Ozs8B/FNs9NEv+b2OYFkcRVV111hW3+L7DN/1S2eW733XffrVx11VVXXXXVVc+N4Kqrrrrqqquuer7uu+++WwFuuukm/rPYxja2sY1t/reyjW1sYxvb2MY2trnqqv9LbGMb29jGNraxjW3+N7KNbWxjG9v8T2Ib29jGNvfb2dkB4OzZs8/gqquuuuqqq656fgiuuuqqq6666qrn67777ruV/wa2sY1tbGOb/wtsYxvb2MY2trGNba666n8S29jGNraxjW1sY5v/7WxjG9vYxjb/09jGNraxzQty8803A3DffffdylVXXXXVVVdd9fwQXHXVVVddddVVz9fZs2dvBTh27Bj/3WxjG9vYxjb/19jGNraxjW1sYxvb2MY2V13172Eb29jGNraxjW1sYxvb/F9iG9vYxja2+Z/INraxjW3+te67775bueqqq6666qqrnh8qV1111VVXXXXV83XffffdCrCzs8P/RLZ5fiTxf5ltXhSSuOr/B9tcBbb538Q2/xF2dnYAuO+++57OVVddddVVV131/FC56qqrrrrqqquer7Nnz94KsLOzg20eSBL/U9nm+ZHE/ye2+beQxFX/fWxz1Qtnm/9tbPOf5dixYwCcPXv2GVx11VVXXXXVVc8Plauuuuqqq6666vm67777bgXY2dnhudnmgSTxP51tnh9JXPVstvmPIIn/L2xz1X882/xvZZurrrrqqquuuup/DCpXXXXVVVddddULdezYMf4ltnlukvjfwDYviCSu+rexzVVXvShs87+Zbf473XzzzQD8wz/8w29z1VVXXXXVVVc9P1Suuuqqq6666qrn67777ruVfwfbPDdJ/G9imxdEElddddWLxjb/F9jmqquuuuqqq676X4fKVVddddVVV131fJ09e/YZADs7O/xHsc1zk8T/RrZ5QSRx1VX/n9jm/xrb/E9mG4CdnR0A7rvvvlu56qqrrrrqqqueH4KrrrrqqquuuuoFuu+++24F2NnZ4T+LbWxjG9vY5n8729jGNraxjW1sYxvbXHXV/ya2sY1tbGMb29jGNv/b2cY2trGNbf6nsY1tbGMbgJ2dHQDuu+++W7nqqquuuuqqq14Qgquuuuqqq6666gU6e/bsrQDHjh3jv5JtbGMb29jm/xrb2MY2trGNbWxjG9tcddV/BdvYxja2sY1tbGMb2/xfYhvb2MY2tvmfyDa2sY1tnp9jx44BcPbs2Vu56qqrrrrqqqteECpXXXXVVVddddW/aGdnh/9utnl+JPF/lW1eFJK46qrnZpv/z2zzv4lt/rV2dnYAuO+++27lqquuuuqqq656QQiuuuqqq6666qoX6O///u9/G2BnZ4f/qWxjG9vYxja2+f/ENraxjW1sYxvb2MY2trGNba7638k2trGNbWxjG9vYxja2sY1t/j+xjW1sYxvb/E9mG9vYxja2+bc4duwYV1111VVXXXXVv4jKVVddddVVV131IrHN/STxP51tnh9J/H9nm38PSVz1r2ebq/59bPO/kW3+M+zs7ADwD//wD7/DVVddddVVV131glC56qqrrrrqqqteoH/4h3/4HYCbb76ZB7LNc5PE/wa2eX4kcdWLxjb/nSTxb2Gbq/7ns83/Zra56qqrrrrqqqv+R6Fy1VVXXXXVVVe9SF7sxV6Mfw1J/F8hiauuuuo/jm3+r7DNf5ebb74ZgPvuu+9WrrrqqquuuuqqF4TKVVddddVVV131Ap09e/bWf/iHf/jtF3uxF3vtm2++mauuuuqqq/5n+a3f+q3vPnv27K1cddVVV1111VUvCHrQgx7EVVddddVVV131gl1zzTUPfsd3fMfP4qqrrrrqqv9xfvRHf/Rz7rvvvlu56qqrrrrqqqteEPSgBz2Iq6666qqrrrrqqquuuuqqq6666qqrrrrq/yQqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KfwQAyRHiSjzGpwAAAABJRU5ErkJggg==) +![Rendered example of shell 6](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADgWUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV/2Pd8011zyYZzpz5syDeaZrrrnmwTzTmTNnHsS/4Jprrnkwz3Tffffdygtw9uzZZ/Bc7rvvvlt5prNnz94KcN99993KVVddddVVV1111VX/k1G56qqrrrrqqquuuuq/zDXXXPNggDNnzjz4mmuuefCZM2cexDNdc801D77mmmseDHDmzJkHX3PNNQ/mf4n77rvvVoCzZ8/eCnDffffdCnDffffdevbs2WcA3HfffbcC/MM//MNvc9VVV1111VVXXXXVfxX0oAc9iKuuuuqqq6666qqr/v2uueaaB585c+bB11xzzYPPnDnzIIBrrrnmwddcc82Dz5w58+BrrrnmwfwrXLhwgftduHABgAsXLnC/Cxcu8EAXL17k+blw4QIvzMmTJ3lBTpw4wf1OnjzJ/U6ePMn9Tp48ycmTJ/nXuO+++24FOHv27K333XffrQD/8A//8DsA9913361nz5699b777ruVq6666qqrrrrqqqv+vdCDHvQgrrrqqquuuuqqq676l11zzTUPBnixF3ux1z5z5syDAF78xV/8tc+cOfPga6655sH8Cy5cuADAhQsXuHjxIhcuXADgwoULXLhwAYCLFy9y4cIF/jeyzcmTJwE4efIkACdPngTgxIkTnDx5kpMnTwJw8uRJTp48yQtz33333Qpw9uzZW++7775b/+Ef/uF3AO67775b/+Ef/uG3ueqqq6666qqrrrrqRYEe9KAHcdVVV1111VVXXXXVs11zzTUPPnPmzINf7MVe7LUAXvzFX/y1X+zFXuy1eSEuXLjAhQsXuHjxIhcuXADgKU95CgBPfepTuer5O3nyJAAnTpzg5MmTnDx5kpMnT3LixAlOnjzJyZMneUHuu+++W8+ePXvrfffdd+s//MM//M5999136z/8wz/8NlddddVVV1111VVXPRB60IMexFVXXXXVVVddddX/V9dcc82DX/u1X/u9AF78xV/8tV/sxV7stXkBLly4wIULF3jqU58KwFOe8hQuXrzIhQsXuOo/x8mTJwE4ceIEJ0+e5OEPfzgnTpwA4OEPfzjPz3333Xfr2bNnb73vvvtu/Yd/+Iffue+++279h3/4h9/mqquuuuqqq6666v8n9KAHPYirrrrqqquuuuqq/w+uueaaB7/2a7/2ewG8+Iu/+Gu/2Iu92GvzfFy4cIGnPvWpXLhwgac85SlcvHiRCxcucNX/LCdPngTgYQ97GAAPf/jDOXHiBA9/+MN5bvfdd9+tAP/wD//w2//wD//wO/fdd9+t//AP//DbXHXVVVddddVVV/3fhx70oAdx1VVXXXXVVVdd9X/NNddc8+AXe7EXe+0zZ8486MVf/MVf+8Ve7MVem+dy4cIFLl68yFOe8hQuXrzIU5/6VC5cuMD/Rra56tlOnjzJwx72ME6ePMnDHvYwTp48ycmTJ3mg++6771aAf/iHf/jtf/iHf/id++6779Z/+Id/+G2uuuqqq6666qqr/m9BD3rQg7jqqquuuuqqq6763+6aa6558Gu/9mu/F8A7vdM7fTbP5cKFC1y8eJGnPOUpPPWpT+WpT30qV/3Xs81/l5MnT3LixAlOnjzJwx/+cF7hFV6B53bffffd+g//8A+//Q//8A+/c9999936D//wD7/NVVddddVVV1111f9u6EEPehBXXXXVVVddddVV/9tcc801D37t137t93rxF3/x136xF3ux1+a5XLhwgT/7sz8D4Fd/9Ve56v8H2/xrnDx5koc97GE8/OEP58SJEzz84Q/nge67775b/+Ef/uG3/+Ef/uF37rvvvlv/4R/+4be56qqrrrrqqquu+t8FPehBD+Kqq6666qqrrrrqf7prrrnmwS/2Yi/22mfOnHnQO73TO302z+XChQv82Z/9GU996lN56lOfylVX/VucPHmSEydO8LCHPYyHP/zhPOxhD+OB7rvvvlv/4R/+4bf/4R/+4Xd+67d+67u56qqrrrrqqquu+p8PPehBD+Kqq6666qqrrrrqf6Jrrrnmwa/92q/9Xi/+4i/+2i/2Yi/22jzAhQsX+LM/+zOe+tSn8tSnPpWrrvrPcPLkSU6cOMHDHvYwHv7wh/Owhz2M+9133323AvzWb/3Wd//DP/zD7/zDP/zDb3PVVVddddVVV131Pw960IMexFVXXXXVVVddddX/FNdcc82DX/u1X/u9Xud1Xue9r7nmmgfzTBcuXODP//zPAfjVX/1VrvqPZZur/mUnT57kYQ97GA972MN4hVd4BR7ovvvuu/Uf/uEffvu3fuu3vucf/uEffpurrrrqqquuuuqq/xnQgx70IK666qqrrrrqqqv+O11zzTUPfu3Xfu33eqd3eqfP5gEuXLjAn//5n/PUpz6Vpz71qVz1f5dt/jc6efIkL//yL8/DH/5wHvawh3G/++6779Z/+Id/+O3f+q3f+p5/+Id/+G2uuuqqq6666qqr/vugBz3oQVx11VVXXXXVVVf9V7vmmmse/Nqv/drv9U7v9E6fzQNcuHCBP//zP+dXf/VXueqq/wi2+a9w8uRJHvawh/EKr/AKPOxhD+N+9913363/8A//8Nu/9Vu/9T3/8A//8NtcddVVV1111VVX/ddCD3rQg7jqqquuuuqqq676r3DNNdc8+LVf+7Xf63Ve53Xe+5prrnkwz3ThwgX+/M//nF/91V/lqqv+p7LNi+rkyZM87GEP4xVe4RV42MMexv3uu+++W3/rt37ru3/7t3/7e+67775bueqqq6666qqrrvrPhx70oAdx1VVXXXXVVVdd9Z/pmmuuefA7vuM7ftbrvM7rvDfPdOHCBf78z/+cX/3VX+Wqq/4vO3HiBK/wCq/Awx72MB72sIcBcN999936D//wD7/9D//wD7/zW7/1W9/NVVddddVVV1111X8e9KAHPYirrrrqqquuuuqq/2jXXHPNg1/7tV/7vd7pnd7ps3mmCxcu8Od//uf82Z/9GRcvXuTfShJX/fvZ5qr/WidOnOAVXuEVeMM3fEPud9999936W7/1W9/927/9299z33333cpVV1111VVXXXXVfyz0oAc9iKuuuuqqq6666qr/KNdcc82DX/u1X/u93umd3umzeaaLFy/yZ3/2Z/zar/0aV131QLb5/+jEiRM87GEP4xVe4RV42MMeBsB9991362/91m999z/8wz/8zj/8wz/8NlddddVVV1111VX/MdCDHvQgrrrqqquuuuqqq/69XuzFXuy13+md3umzXuzFXuy1eaZf/dVf5c///M+5ePEiV131X802/xucOHGCV3iFV+AN3/ANud99991364/+6I9+zm/91m99N1ddddVVV1111VX/PuhBD3oQV1111VVXXXXVVf9W7/iO7/hZr/M6r/Pe11xzzYMBLl68yJ/92Z/xa7/2a1x11f8FtvmvcOLECV7hFV6Bl3/5l+fkyZMA3Hfffbf+1m/91nf/6I/+6Odw1VVXXXXVVVdd9W+DHvSgB3HVVVddddVVV131r/WO7/iOn/U6r/M6733NNdc8GODixYv82Z/9Gb/2a7/GVVdd9Wy2+dc4ceIED3vYw3iFV3gFHvawhwFw33333fpbv/Vb3/2jP/qjn8NVV1111VVXXXXVvw560IMexFVXXXXVVVddddWL6sVe7MVe+8M//MO/65prrnkwwMWLF/nVX/1V/vzP/5x/L0lc9T+Lba7672Gbl3/5l+cVXuEVeNjDHgbAfffdd+uP/uiPfs5v/dZvfTdXXXXVVVddddVVLxr0oAc9iKuuuuqqq6666qp/yTXXXPPgD//wD/+uF3uxF3ttgIsXL/Jrv/Zr/Pmf/zlXXfUfyTZXPaeXf/mX5w3f8A05ceIEAPfdd9+tX//1X/8+//AP//DbXHXVVVddddVVV71w6EEPehBXXXXVVVddddVVL8g111zz4Nd+7dd+r3d6p3f6bICLFy/y53/+5/zar/0aV131v4Vt/rc7ceIEL//yL88rvMIrcOLECQB+67d+67t/9Ed/9HPuu+++W7nqqquuuuqqq656/tCDHvQgrrrqqquuuuqqq56fd3zHd/ysd3qnd/psnunXfu3X+LVf+zWuuur/I9v8T3DixAle/uVfnjd8wzcE4L777rv1t3/7t7/nR37kRz6bq6666qqrrrrqqueFHvSgB3HVVVddddVVV131QNdcc82DP/zDP/y7XuzFXuy1AZ761KfyLd/yLVx11VX/Nrb5j3bixAle/uVfnjd8wzcE4L777rv1sz7rs17nvvvuu5WrrrrqqquuuuqqZ0MPetCDuOqqq6666qqrrrrfO77jO37WO73TO302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uur/HypXXXXVVVdd9f/QfffddyvA9vY2/5ls80CS+O9im+cmif/pbPMvkcRVV70gtvnfzjb/U9jmv4Nt/q22t7e56qqrrrrqqv/HqFx11VVXXXXV/0Nnz569FWB7e5v/SrZ5IEn8d7LNc5PE/za2+ZdI4qr/W2zzf5Ft/iexzX8H2/xH2dnZAeAf/uEffpurrrrqqquu+v+HylVXXXXVVVf9P2ebB5LEfxXbPJAk/rvZ5vmRxP9mtvnXkMRV//Vs8/+Fbf4nss1/F9tcddVVV1111VX/4ahcddVVV1111f9D9913360A29vbPDfb3E8S/5Vs80CS+J/CNs+PJP4vss2/lST+P7PNVc9mm//JbPPfxTb/Fba3twG47777buWqq6666qqr/v+hctVVV1111VX/T9133323XnPNNQ++4YYbuOuuu3h+bPNAkvivZJvnJon/SWzz/Eji/yvbXPX/j23+p7PNfzfb/Ffa2toC4L777ruVq6666qqrrvr/ieCqq6666qqr/p86e/bsrfwr2cY2trHNfwfb2MY2trHN/0S2sY1tbGMb29jmqqv+t7KNbWxjG9vYxjb/E9nGNraxzX8H29jGNrb5r2Ab29jmxhtvBODs2bO3ctVVV1111VX/PxFcddVVV1111f9T9913360AOzs7/FvZxja2+e9kG9vYxjb/09nGNraxjW1sY5urrvrvZhvb2MY2trGNbf4ns41tbGMb2/x3sI1tbGOb/wq2sY1tbPP83Hfffbdy1VVXXXXVVf8/Ubnqqquuuuqq/6fuu+++WwG2t7f5j2CbB5LEfxfbPD+S+J/ONi+MJK666t/DNv/b2eZ/Ctv8d7DNi2J7exuA++6771auuuqqq6666v8nKlddddVVV131/9z29jb/GWzz3CTx38k2z00S/5vY5l8iiav+f7LN/zW2+Z/ENv9dbPOvtbOzA8DZs2efwVVXXXXVVVf9/0Tlqquuuuqqq/6f+od/+IffAdje3ua/im0eSBL/3Wzz3CTxv5ltXlSSuOp/Ptv8X2eb/4ls89/FNlddddVVV1111b8blauuuuqqq676f25nZwfbAEjiv5JtHkgS/xPY5vmRxP81tvnXksRV/za2uQps8z+Vbf472eY/0o033gjAP/zDP/w2V1111VVXXfX/E5Wrrrrqqquu+n/q7Nmzt/JcbHM/SfxXs81zk8T/FLZ5fiTx/4lt/qNJ4n8i21z1b2Ob/+ls89/NNlddddVVV1111X8qKlddddVVV131/9R99913K8D29jbPj20eSBL/HWzzQJL4n8Y2L4gkrvqX2eaq/51s87+Fbf672ea/0vb2NgD33XffrVx11VVXXXXV/08EV1111VVXXfX/2H333XcrwM7ODv8S29jGNrb572Ib29jGNrb5n8w2trGNbWxjG9tcddX/FraxjW1sYxvb2OZ/KtvYxja2sc1/F9vYxjb/VWyztbUFwH333XcrV1111VVXXfX/F8FVV1111VVX/T929uzZWwG2t7f517KNbWxjm/9OtrGNbWxjm/8NbGMb29jGNraxzVVX/VeyjW1sYxvb2MY2tvmfzja2sY1tbPPfyTa2sY1t/qvYxja2AdjZ2QHg7Nmzt3LVVVddddVV/39Rueqqq6666qqr2N7e5t/LNg8kif9Otnlukvjfwjb/EklcddWLwjb/V9jmfxrb/HewzQuzvb0NwH333XcrV1111VVXXfX/F8FVV1111VVX/T/293//978NsL29zX8029jGNrb5n8A2trGNbWzzv5ltbGMb29jGNraxjW1sc9X/XbaxjW1sYxvb2MY2trHN/1a2sY1tbGOb/wlsYxvb2Oa/km1sY5t/yc7ODlddddVVV111FVSuuuqqq6666qr/ErZ5IEn8T2Cb50cS/1fY5kUliav+e9nm/xvb/E9mm/8utvm32t7eBuAf/uEffoerrrrqqquu+v+L4Kqrrrrqqqv+H/uHf/iH3wG48cYb+a9mG9vYxja2+Z/ENraxjW1sY5v/62xjG9vYxja2sY1tbGMb29jGNraxjW2uAtvYxja2sY1tbGMb29jGNraxjW1sY5v/y2xjG9vYxja2+Z/ENraxjW1s81/NNraxzVVXXXXVVVdd9e9G5aqrrrrqqquuusw295PEfwfbPJAk/qexzfMjiavANlddZZv/LWzz3802/xluvPFGAO67775bueqqq6666qr/v6hcddVVV1111f9jZ8+evRVgZ2eHB7LNA0niv4Ntnpsk/ieyzQsiiauu+r/INv+b2OZ/Ctv8Vzl79uytXHXVVVddddX/X1Suuuqqq6666v+x++6771aA7e1tXhjbPJAk/rvY5rlJ4n8y27wgkrjqqv+pbPO/lW3+J7HNf7WdnR0A7rvvvlu56qqrrrrqqv+/CK666qqrrrrq/7n77rvvVoDt7W1eVLaxjW1s89/NNraxjW1s87+FbWxjG9vYxja2sc1VV/1nso1tbGMb29jGNrb538I2trGNbWzz3802trGNbf6r2eaqq6666qqrrrqM4Kqrrrrqqqv+nzt79uytADs7O/xb2cY2trHN/wS2sY1tbGOb/41sYxvb2MY2trGNbWxz1VUviG1sYxvb2MY2trHN/0a2sY1tbGOb/wlsYxvb2Oa/g21sY5sbb7wRgH/4h3/4ba666qqrrrrq/zcqV1111VVXXXXVfzjbPJAk/iewzXOTxP92tnlRSOKq//1s8/+Fbf6nss1/N9u8IDs7OwDcd999t3LVVVddddVV/78RXHXVVVddddX/c3//93//2wA33ngj/1lsYxvb2OZ/EtvYxja2sY1t/i+yjW1sYxvb2MY2trGNbWxjG9tc9Z/PNraxjW1sYxvb2MY2trGNbf4vso1tbGMb29jmfwrb2MY2trHNfxfb2MY2V1111VVXXXXVi4TKVVddddVVV131X842z00S/5PY5vmRxP8ntvmPIIn/a2xz1b+Obf43sM3/FLb5t9je3gbgvvvuu5Wrrrrqqquu+v+NylVXXXXVVVf9P3f27NlnANx44438d7LNA0nifyLbvCCSuOr5s81V/3/Y5n8L2/xPY5t/r52dHQDOnj37DK666qqrrrrq/zcqV1111VVXXfX/3H333Xcrz2QbAEn8d7PNc5PE/2S2eUEkcdVV/5fY5n8j2/xPY5v/aDs7OwDcd999t3LVVVddddVV/79Rueqqq6666qr/586ePXsrwPb2NvezzQNJ4n8C2zw3SfxvYJsXRBJXXfU/jW3+t7PN/0S2+c+2vb0NwNmzZ2/lqquuuuqqq/5/o3LVVVddddVVV/2LbPNAkvifwjbPTRL/m9jmhZHEVVf9R7PN/yW2+Z/KNv/VdnZ2ALjvvvtu5aqrrrrqqqv+f6Ny1VVXXXXVVf/P3XfffbcC7OzssLOzw97eHv8S2zyQJP4nsc1zk8T/VrZ5UUjiqqsAbPN/mW3+J7PNfyfbXHXVVVddddVVz0Jw1VVXXXXVVVfx93//978NsL29zb+FbWxjG9v8T2Qb29jGNraxzf8ltrGNbWxjG9vYxja2sc1V/zvZxja2sY1tbGMb29jGNrb5v8I2trGNbWxjm/9pbGMb29jmv5ptbGMb29x4440AnD179hlcddVVV1111VVUrrrqqquuuuqq/3C2eSBJ/E9lm+dHEv9X2ebfQhJX/cewzVXPZpv/TWzz3802L8jOzg4Af//3f//bXHXVVVddddVVVK666qqrrrrqKs6ePXsrwM7ODnfeeSf/0Wzz3CTxP5ltnh9J/H9lm/9okvifzjZX/cewzf9GtvnvZpurrrrqqquuuurfhMpVV1111VVXXcV99913K8D29jb/VWzzQJL438A2z48krvrXs81V//fY5n8r2/xPYZt/i52dHQDuu+++p3PVVVddddVVV1G56qqrrrrqqqs4e/bsrQA7Ozv8d7HNc5PE/xa2eUEkcdVV/9fY5n872/xPYpv/CDs7OwCcPXv2GVx11VVXXXXVVVSuuuqqq6666iruu+++WwG2t7exzf0k8d/JNs9NEv/b2OaFkcRVV/1PY5v/a2zzP4lt/jNsb29z1VVXXXXVVVc9C5Wrrrrqqquuuor77rvvVoCdnR0eyDYPJIn/brZ5bpL438w2L4wkrrrqP5pt/i+zzf80tvmvsLOzA8A//MM//DZXXXXVVVdddRWVq6666qqrrrrqRWabB5LE/wS2eW6S+L/CNi8KSVx1lW3+P7HN/1S2+e+ws7PDVVddddVVV131LFSuuuqqq6666irOnj37DICdnR3+NWzzQJL4n8I2z48k/q+yzYtKElf972Gbq8A2/5PZ5r+bbe5333333cpVV1111VVXXUVw1VVXXXXVVVdddt99990KcOONN/JvZRvb2MY2tvmfxja2sY1tbGOb/29sYxvb2MY2trGNbWxjG9vYxja2uerfxza2sY1tbGMb29jGNraxjW1sY5v/b2xjG9vYxja2+Z/GNraxjW3+O9jGNraxzc7ODgD33XffrVx11VVXXXXVVQBUrrrqqquuuuqqy86ePXvrNddc82D+g9nmgSTxP5Ftnh9JXPVstvnPIon/CWxz1X8N2/xvYZv/KWzzgtx0000AnD179lauuuqqq6666ioAgquuuuqqq6666rL77rvvVoCdnR3+M9nGNraxjW3+J7ONbWxjG9vY5qr/eLaxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trHNVf/xbGMb29jGNrb5n8w2trGNbf472cY2trHNi+K+++67lauuuuqqq666CoDKVVddddVVV1112X333XcrwM7ODv/VbPNAkvifzjYviCSuuur/G9v8b2Wb/0ls82+1vb0NwH333XcrV1111VVXXXUVAJWrrrrqqquuuuo5bG9v89/NNs9NEv9b2OYFkcRVV/1vZZv/7WzzP41t/qPs7OwAcPbs2Wdw1VVXXXXVVVcBULnqqquuuuqqqy77h3/4h98B2NnZwTYPJIn/brZ5bpL438Y2L4wkrrrqv4tt/i+xzf9Etrnqqquuuuqqq/7LULnqqquuuuqqq57Dzs4Oz802DySJ/wls8/xI4n8r2/xLJHHVVf9atvm/zDb/U9nmv8pNN90EwD/8wz/8NlddddVVV111FQCVq6666qqrrrrqsrNnz97Ki8g2DySJ/0ls89wk8X+FbV5Ukrjq/zbb/H9im//pbHPVVVddddVVV/2PQeWqq6666qqrrrrsvvvuuxVgZ2eHfy3bPJAk/qexzfMjif/LbPOvIYmr/vvY5qpns83/Brb5n8A2Ozs7ANx33323ctVVV1111VVXAVC56qqrrrrqqque5b777rv1mmuuefDOzg57e3v8W9nmuUnifyLbPD+S+P/INv9ekvj/yDZX/dvY5n8L2/xPYZsH2tnZAeC+++67lauuuuqqq6666n5UrrrqqquuuuqqZzl79uyt11xzzYN3dnbY29vjP5JtHkgS/5PZ5vmRxFUvnG2uuuq52eZ/I9v8T2KbF2RnZweAs2fP3spVV1111VVXXXU/KlddddVVV1111fPY2dnhP5ttnpsk/qezzQsiiauu+v/ONv9b2eZ/Gtu8qHZ2dgC47777buWqq6666qqrrrofwVVXXXXVVVdd9Sx///d//9sA29vb/HewjW1sYxvb/G9iG9vYxja2sY1tbHPVVf8X2MY2trGNbWxjG9v8b2Eb29jGNrb5n8A2trGNbf41dnZ2uOqqq6666qqrngeVq6666qqrrrrqfzTbPDdJ/G9kmxdGEldd9d/NNv/X2OZ/Ktv8R9nZ2QHgH/7hH36Hq6666qqrrrrqfgRXXXXVVVddddWz/MM//MPvANx0003Yxja2sc3/JLaxjW1sY5v/C2xjG9vYxja2sY1tbHPVVf8etrGNbWxjG9vYxja2+d/ONraxjW1s8z+JbWxjG9tcddVVV1111VX/6ahcddVVV1111VUvEts8kCT+J7HN8yOJ/0ts86KQxFX/f9jm/yPb/E9nm/8qN910EwD33XffrVx11VVXXXXVVfejctVVV1111VVXPcvZs2dvBdjZ2eFfYpvnJon/aWzz/Eji/zLb/GtI4qr/OWxz1bPZ5n8D2/xPcPbs2Vu56qqrrrrqqqvuR+Wqq6666qqrrnqW++6771aAnZ0d/i1s80CS+J/KNs+PJP4/ss2/lySuAttc9W9jm/9NbPM/hW12dnYAuO+++27lqquuuuqqq666H5Wrrrrqqquuuuo53Hfffbdec801D97Z2WFvb49/D9s8N0n8T2ab50cSV71wtrnqqn+Jbf43ss3/NLa56qqrrrrqqqv+RQRXXXXVVVddddVzOHv27K0AOzs7/GewjW1sY5v/LWxjG9vYxja2sc1VV131vGxjG9vYxja2+d/CNraxjW3+J7CNbWxjmwe66aabAPiHf/iH3+aqq6666qqrrnogKlddddVVV1111X8r2zw3SfxvYpsXRBJXXfV/kW3+r7DN/0S2eVHt7OwAcN99993KVVddddVVV131QARXXXXVVVddddVz+Pu///vfBrjpppv472Ib29jGNrb538o2trGNbWxjG9vY5qqr/qeyjW1sYxvb2MY2tvnfyja2sY1tbPM/hW1sYxvbXHXVVVddddVV/yGoXHXVVVddddVVz5dt/iexzfMjif/NbPMvkcRVV/1Hs83/dbb5n8w2/1F2dnYAuO+++27lqquuuuqqq656IIKrrrrqqquuuuo5nD179hkAN998M7axjW1s8z+RbWxjG9vY5v8a29jGNraxjW1sYxvb2OaqqwBsYxvb2MY2trGNbWxjm/9LbGMb29jGNrb5n8Y2trGNbf4jHTt2DICzZ88+g6uuuuqqq6666oGoXHXVVVddddVVz+G+++67lRfANg8kif+JbPP8SOL/Mtv8a0jiqv/5bHPVFbb538I2/5W2t7cBuO+++27lqquuuuqqq656ICpXXXXVVVddddVzOHv27K0AOzs7/Ets89wk8T+VbZ4fSfx/ZJt/D0lc9S+zzVX/Orb538Y2/52OHTsGwNmzZ2/lqquuuuqqq656ICpXXXXVVVddddV/KNs8N0n8T2ab50cSV71gtrnqqn8P2/xvZJv/aXZ2dgC47777buWqq6666qqrrnoggquuuuqqq6666jncd999t95333237uzssLOzw38E29jGNrb538I2trGNbWxjG9tcddVVLxrb2MY2trGNbWzzv4VtbGMb2/xPYBvb2MY2V1111VVXXXXVC0Rw1VVXXXXVVVc9j7Nnz94KsLOzw38G29jGNraxzf82trGNbWxjG9vYxjZXXfX/iW1sYxvb2MY2tvnfxja2sY1tbPM/gW1sYxvbPNBNN90EwH333XcrV1111VVXXXXVc6Ny1VVXXXXVVVf9j2Cb5yaJ/61s84JI4qqr/jexzf9FtvmfyjYvqmPHjgHwD//wD7/NVVddddVVV1313Aiuuuqqq6666qrncd99990KsLOzw38n29jGNraxjW3+t7ONbWxjG9vYxja2sc1VV/1Xso1tbGMb29jGNrb5v8A2trGNbWzzP4ltbGMb21x11VVXXXXVVf9hqFx11VVXXXXVVc/jvvvuuxVgZ2eH/4ls89wk8X+JbV4UkrjqqhfENv/f2OZ/A9v8R9nZ2QHgvvvuu5Wrrrrqqquuuuq5Ubnqqquuuuqqq57H2bNnnwGws7ODbR5IEv8T2eb5kcT/ZbZ5UUniqv/9bHPVFbb538I2/1l2dnYAOHv27DO46qqrrrrqqqueG5Wrrrrqqquuuup53HfffbcC7Ozs8Nxs80CS+J/MNs+PJP6/sc2/lSSu+o9jm6tedLb538Q2/5V2dna46qqrrrrqqqteICpXXXXVVVddddXzOHv27K0Ax44d419im+cmif/pbPP8SOKq52Wb/yyS+J/INlf917HN/1a2+e907NgxAP7hH/7ht7nqqquuuuqqq54blauuuuqqq6666j+cbZ6bJP43sM0LIomr/uPZ5qr/P2zzv5lt/qfZ2dnhqquuuuqqq656gahcddVVV1111VXP47777rsVYGdnh/8otnlukvjfxDYviCSuuuqqK2zzf4Ft/qeyzXO77777buWqq6666qqrrnpuBFddddVVV1111fN133333Qpw00038Z/FNraxjW1s87+VbWxjG9vYxja2sc1VV/1fYhvb2MY2trGNbWzzv5FtbGMb29jmfxLb2MY2trnfzs4OAGfPnn0GV1111VVXXXXV80Nw1VVXXXXVVVc9X/fdd9+t/DewjW1sYxvb/F9gG9vYxja2sY1tbHPVVf+T2MY2trGNbWxjG9v8b2cb29jGNrb5n8Y2trGNbV6Qm2++GYD77rvvVq666qqrrrrqqueH4Kqrrrrqqquuer7Onj17K8CxY8f472Yb29jGNrb5v8Y2trGNbWxjG9vYxja2ueqqfw/b2MY2trGNbWxjG9vY5v8S29jGNraxzf9EtrGNbWzzr3XffffdylVXXXXVVVdd9fxQueqqq6666qqrnq/77rvvVoCdnR3+J7LN8yOJ/8ts86KQxFX/P9jmKrDN/ya2+Y+ws7MDwH333fd0rrrqqquuuuqq54fKVVddddVVV131fJ09e/ZWgJ2dHWzzQJL4n8o2z48k/j+xzb+FJK7672Obq1442/xvY5v/LMeOHQPg7Nmzz+Cqq6666qqrrnp+qFx11VVXXXXVVc/XfffddyvAzs4Oz802DySJ/+ls8/xI4qpns81/BEn8f2Gbq/7j2eZ/K9tcddVVV1111VX/Y1C56qqrrrrqqqteqGPHjvEvsc1zk8T/BrZ5QSRx1b+Nba666kVhm//NbPPf6eabbwbgH/7hH36bq6666qqrrrrq+aFy1VVXXXXVVVc9X/fdd9+t/DvY5rlJ4n8T27wgkrjqqqteNLb5v8A2V1111VVXXXXV/zpUrrrqqquuuuqq5+vs2bPPANjZ2eE/im2emyT+N7LNCyKJq676/8Q2/9fY5n8y2wDs7OwAcN99993KVVddddVVV131/BBcddVVV1111VUv0H333XcrwM7ODv9ZbGMb29jGNv/b2cY2trGNbWxjG9vY5qqr/jexjW1sYxvb2MY2tvnfzja2sY1tbPM/jW1sYxvbAOzs7ABw33333cpVV1111VVXXfWCEFx11VVXXXXVVS/Q2bNnbwU4duwY/5VsYxvb2MY2/9fYxja2sY1tbGMb29jmqqv+K9jGNraxjW1sYxvb2Ob/EtvYxja2sc3/RLaxjW1s8/wcO3YMgLNnz97KVVddddVVV131glC56qqrrrrqqqv+RTs7O/x3s83zI4n/q2zzopDEVVc9N9v8f2ab/01s86+1s7MDwH333XcrV1111VVXXXXVC0Jw1VVXXXXVVVe9QH//93//2wA7Ozv8T2Ub29jGNraxzf8ntrGNbWxjG9vYxja2sY1tbHPV/062sY1tbGMb29jGNraxjW1s8/+JbWxjG9vY5n8y29jGNraxzb/FsWPHuOqqq6666qqr/kVUrrrqqquuuuqqF4lt7ieJ/+ls8/xI4v872/x7SOKqfz3bXPXvY5v/jWzzn2FnZweAf/iHf/gdrrrqqquuuuqqF4TKVVddddVVV131Av3DP/zD7wDcfPPNPJBtnpsk/jewzfMjiateNLb57ySJfwvbXPU/n23+N7PNVVddddVVV131PwqVq6666qqrrrrqRfJiL/Zi/GtI4v8KSVx11VX/cWzzf4Vt/rvcfPPNANx33323ctVVV1111VVXvSBUrrrqqquuuuqqF+js2bO3/sM//MNvv9iLvdhr33zzzVx11VVXXfU/y2/91m9999mzZ2/lqquuuuqqq656QdCDHvQgrrrqqquuuuqqF+yaa6558Du+4zt+FlddddVVV/2P86M/+qOfc999993KVVddddVVV131gqAHPehBXHXVVVddddVVV1111VVXXXXVVVddddVV/ydRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9V/CO8NhhRti4O6wAAAABJRU5ErkJggg==) diff --git a/docs/kcl-std/functions/std-transform-rotate.md b/docs/kcl-std/functions/std-transform-rotate.md index ddb68d8cc..715ef3237 100644 --- a/docs/kcl-std/functions/std-transform-rotate.md +++ b/docs/kcl-std/functions/std-transform-rotate.md @@ -209,7 +209,7 @@ rotate(parts, axis = [0, 0, 1.0], angle = 90deg) ``` -![Rendered example of rotate 5](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEVA0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqr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4eHh7ou/+Iu/9unTp7n55pu55557GMeRF5Vt/rVs869hmxeVbQBuuOEGrrnmmgf/1m/91vdw1VVXXXXVVf8/UI4fP85VV1111VVXXXXVVVddddX9Dg8Pd//hH/7hd377t3/7e17xFV/xrY8fP378+uuvp+s6zp8/zwtim38L2/xr2eZFZRuAcRx5xCMewTXXXPPgf/iHf/ids2fP3spVV1111VVX/d9HOX78OFddddVVV1111VVXXXXVVc/t8PBw98/+7M9+5vDwcPdlXuZlXvv06dMAnD9/ngeyzb+Fbf61bPOvYZv7jePImTNn2Nzc5L777rv1H/7hH36Hq6666qqrrvq/j3L8+HGuuuqqq6666qqrrrrqqquen8PDw91/+Id/+B2AF3/xF3/t06dPA3Du3Dn+rWzzr2Wbfw3bPD9HR0c86EEP4pprrnnwL/zCL3wNV1111VVXXfV/H+X48eNcddVVV1111VVXXXXVVVe9MP/wD//wO2fPnn3GK77iK7716dOnATh37hz/Grb5t7DNv4ZtXphHPOIRbG5uHv+Hf/iH3zl79uytXHXVVVddddX/bZTjx49z1VVXXXXVVVddddVVV131L7n11lv/+uzZs894xVd8xbc+ffo0AOfOneNfYpt/C9v8a9nmhRnHkTNnzrC5ucl999136z/8wz/8DlddddVVV131fxvl+PHjXHXVVVddddVVV1111VVXvShuvfXWvwZ48Rd/8dc+ffo0AOfOneO52ebfyjb/WrZ5UR0dHfGgBz0ISfzWb/3W93DVVVddddVV/7cRXHXVVVddddVVV1111VVX/Sv8wz/8w+/wTLfccgunT58GwDa2sc2/hW1s869lm3+Ng4MDAM6cOfNgrrrqqquuuur/PoKrrrrqqquuuuqqq6666qp/hbNnz94K8MM//MNsbGzwsi/7stjm38M2/xa2+dewzdHREWfPngXgxV7sxV6bq6666qqrrvq/jeCqq6666qqrrrrqqquuuupf4b777rsV4OzZs/z93/89GxsbvNzLvRz/Fraxzb+WbWzzr2Gb+509e5ZrrrnmwS/2Yi/2Wlx11VVXXXXV/20EV1111VVXXXXVVVddddVV/0r/8A//8Nv33XcfX/u1XwvALbfcwunTp3lR2MY2tvm3sM2/lm0e6OzZswC8+Iu/+Gtz1VVXXXXVVf+3EVx11VVXXXXVVVddddVVV/0bXHvttZw9e5av/dqvBeDlXu7leGFsY5t/K9vY5l/LNs/t8PAQgDNnzjyYq6666qqrrvq/jeCqq6666qqrrrrqqquuuurf4JprrkES//AP/8Df/d3fsbGxwcu93Mvx3Gxjm38P2/xb2Ob5OTo64vDwkGuuuebBL/ZiL/baXHXVVVddddX/XQRXXXXVVVddddVVV1111VX/RpI4e/YsP/IjPwLAxsYGGxsb2MY2tvn3sI1t/i1s88IcHR1x1VVXXXXVVf8PEFx11VVXXXXVVVddddVVV/0r3XfffbcCSEIS//AP/8Df//3fc/r0aR796EfzH8E2/1a2+ZecPXsWgBd7sRd7La666qqrrrrq/y6Cq6666qqrrrrqqquuuuqqf6VrrrnmwZK4nyS+9mu/FoAzZ87w72Eb2/xb2eZFcfbsWQBe/MVf/LW56qqrrrrqqv+7CK666qqrrrrqqquuuuqqq/4Nzp07hyQkIYmzZ8/y93//92xsbPCgBz2Ifwvb/HvY5l/rzJkzD+aqq6666qqr/u8iuOqqq6666qqrrrrqqquu+lc6c+bMgwEkIQlJSOKHf/iHAXjMYx7Dv4ZtbPPvYZt/jcPDQ6666qqrrrrq/wGCq6666qqrrrrqqquuuuqqf4Nz584REdxPEmfPnuXv//7vATh9+jT/EtvY5t/LNv9aR0dHAFxzzTUP5qqrrrrqqqv+7yK46qqrrrrqqquuuuqqq676V7rmmmsefPbsWSQhCUlI4uzZs/z93/89GxsbPOhBD+IFsY1t/iPY5t/q7NmzALzYi73Ya3PVVVddddVV/zcRXHXVVVddddVVV1111VVX/TtEBACSkMQ//MM/AHDmzBmem21s8x/FNlddddVVV1111QtFcNVVV1111VVXXXXVVVdd9a9wzTXXPBjg7NmzAEgiIgCQxOMe9zgANjY2OH36NLaxjW3+I9nm38M2h4eHAFxzzTUP5qqrrrrqqqv+byK46qqrrrrqqquuuuqqq676Vzhz5syDeS4RAYAkJPH3f//3AJw+fZr/DLa56qqrrrrqqqteJARXXXXVVVddddVVV1111VX/Ctdcc82Dz549y3OLCO73D//wDwCcOXOG/2i2+feyDcDh4SEAZ86ceRBXXXXVVVdd9X8Tlauuuuqqq6666qqrrrrqqv8AEYFtAB73uMcBsLm5yX8k21x11VVXXXXVVf8qVK666qqrrrrqqquuuuqqq/6Vzp49ywNJAiAiyEzOnj3LfzTbXHXVVVddddVV/2oEV1111VVXXXXVVVddddVV/wpnzpx50NmzZ3l+JAFw9uxZ7rvvPjY2NtjY2ODfyzb/UWxz1VVXXXXVVf+PEFx11VVXXXXVVVddddVVV/0rXHPNNQ/mBZBERCCJs2fPArC5ucm/h22uuuqqq6666qp/M4Krrrrqqquuuuqqq6666qp/pbNnz/KCRAT/UWxz1VVXXXXVVVf9uxBcddVVV1111VVXXXXVVVf9K1xzzTUP5l8QEZw9e5ajoyM2Njb4t7DNVVddddVVV13170Zw1VVXXXXVVVddddVVV131r3DmzJkHnz17lhcmIgDY2Njg38I2V1111VVXXXXVfwgqV1111VVXXXXVVVddddVV/4EkAXDu3DkANjY2+NewzX+Vzc1NAM6ePfsMrrrqqquuuur/JoKrrrrqqquuuuqqq6666qp/hWuuuebBZ8+e5V9yzTXXcHR0xNHRES8q2/xnk8RVV1111VVX/T9C5aqrrrrqqquuuuqqq6666l/p7NmzvCg2Njb4n2xzcxOA++6771auuuqqq6666v8mgquuuuqqq6666qqrrrrqqv8BbPNfRRIAGxsbAJw9e/ZWrrrqqquuuur/JoKrrrrqqquuuuqqq6666qoX0TXXXPNggLNnz/IvOXPmDABHR0f8S2xz1VVXXXXVVVf9p6By1VVXXXXVVVddddVVV131Ijpz5syDeRGdPn0agMPDQ14Q2/x3kcTm5iYA9913361cddVVV1111f9NVK666qqrrrrqqquuuuqqq15E11xzzYPPnj3Li+ro6IgXxDb/nTY2NgA4e/bsM7jqqquuuuqq/7uoXHXVVVddddVVV1111VVX/SucPXuWF8WZM2cAODo64rnZ5r/b5uYmAPfdd9+tXHXVVVddddX/XVSuuuqqq6666qqrrrrqqqteRGfOnHnQ2bNn+bewzf8kGxsbANx33323ctVVV1111VX/d1G56qqrrrrqqquuuuqqq676D3bmzBkAzp49i22uuuqqq6666qr/NlSuuuqqq6666qqrrrrqqqteRNdcc82D+RfY5vTp0/xPt7m5CcB99933dK666qqrrrrq/y4qV1111VVXXXXVVVddddVV/wpnz57lX3LmzBkADg8P+Z9qY2MDgLNnzz6Dq6666qqrrvq/i+Cqq6666qqrrrrqqquuuupFdM011zz47Nmz/HtIQhKSkIQkJCEJSUhCEpL4z7S5uclVV1111VVX/T9A5aqrrrrqqquuuuqqq6666kV05syZB/NvJIl/LUk8N9v8R9jY2ADgH/7hH36bq6666qqrrvq/i8pVV1111VVXXXXVVVddddW/wtmzZ/mXnD59GoCjoyMAJPEfRRIPZJurrrrqqquuuuoFonLVVVddddVVV1111VVXXfUiuuaaax589uxZ/iVnzpwB4PDwEEn8Z5LEA9nmRbG5uQnAfffddytXXXXVVVdd9X8Xlauuuuqqq6666qqrrrrqqv8kkvivJokHss1z29jYAOC+++67lauuuuqqq676v43KVVddddVVV1111VVXXXXVi+Caa655MMDZs2f5l5w5cwaAo6Mj/rtJ4oFss7m5CcDZs2dv5aqrrrrqqqv+b6Ny1VVXXXXVVVddddVVV131Ijhz5syDeRGdPn0agMPDQ/6nkcTm5iYA9913361cddVVV1111f9tVK666qqrrrrqqquuuuqqq14E11xzzYPPnj3LVVddddVVV131vwqVq6666qqrrrrqqquuuuqq/2BnzpwB4OjoiP+JNjY2ALjvvvtu5aqrrrrqqqv+b6Ny1VVXXXXVVVddddVVV131Ijp79iz/F2xubgJw9uzZZ3DVVVddddVV/7dRueqqq6666qqrrrrqqquuehGcOXPmQWfPnuVfcubMGQCOjo74n2pjY4Orrrrqqquu+n+CylVXXXXVVVddddVVV1111YvgmmuueTAvgjNnzgBweHjI/1Sbm5sA/MM//MNvc9VVV1111VX/t1G56qqrrrrqqquuuuqqq656EZ09e5Z/yenTpwE4Ojriqquuuuqqq676b0dw1VVXXXXVVVddddVVV131IrjmmmsefPbsWf67SEISkpCEJCQhCUlIQhKSkIQkJCEJSUhCEpLY2NgA4L777ruVq6666qqrrvq/jcpVV1111VVXXXXVVVddddWL4MyZMw/mRXDmzBkADg8P+beSxH+WjY0NAO67775bueqqq6666qr/+6hcddVVV1111VVXXXXVVVf9Bzpz5gwAR0dH/GtI4r/CxsYGAGfPnr2Vq6666qqrrvq/j8pVV1111VVX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ALaxjW0AbPNAtrnqqquuuuqqfwHBVVddddVVV1111VVXXXXVM11zzTUP5kVw5swZANbrNQCSuJ8k7icJSQBIQhIAkpAEgCQkASAJSQAcP36cRz7ykZw8eZJhGJimidYamUlrjcwkM8lMMhPb2AbANraxjW1eENvYxja2AbCNbWwDYBsA29jmgWxzzz33cM8997C1tcVLvuRL8vzY5n62uZ9tAGxjmweyzQPZBsA2trENgG0AbGObq6666qqrrnouBFddddVVV1111VVXXXXVVc/l7NmzvDBnzpwBYLVaIQkASUgCQBKSuJ8kJAEgCUkASEISAJKQhCQkIYkTJ07weq/3eqxWK8ZxZJomWmtkJplJZmIb29jGNraxzQPZxja2sY1tbPPcbHM/29gGwDa2AbCNbWxzvz/4gz8A4Nprr8U2trGNbWxzP9sA2OZ+trmfbWzzQLaxDYBtHsg2ALa53+bm5oO56qqrrrrqqmcjuOqqq6666qqrrrrqqquueqYzZ848mH8DSdxPEpIAkIQk7icJSQBIQhIAkpCEJAAkIQmAkydP8pCHPIRhGJimidYarTUyk8wkM8lMbANgGwDb2MY2Lyrb2MY297PN/Wzz3GxzcHDAPffcw9bWFi/1Ui/F82MbANsA2OZ+tnkg29jGNvezDYBtbGMbANvYxjYA6/Waq6666qqrrnoAgquuuuqqq6666qqrrrrqqme65pprHnz27Fn+JWfOnAFgvV5zP0lI4n6SuJ8kJHE/SUgCQBKSkASAJCQBIAlJvORLviTr9ZpxHJmmicyktUZmkpnYxja2AbDNA9nGNrZ5braxjW2em20AbHM/29jGNra539/8zd8A8LCHPYwHso1tAGwDYBsA29zPNrZ5braxDYBtHsg2tgGwjW2uuuqqq6666rkQXHXVVVddddVVV1111VVXPcDZs2f5l5w5c4b7SUIS95OEJAAkIQlJAEhCEpIAkIQkJAEgCUkASEISkjh16hS2yUwyk9YatrHNc7MNgG2eH9vYxja2eUFs80C2eUFsc88993DPPfewtbXFtddei21scz/bPJBtAGxjm/vZxja2sc39bANgG9vY5n62sY1tbHPVVVddddVVD0Bw1VVXXXXVVVddddVVV131TGfOnHnQ2bNneVENw8D9JCGJ+0lCEveThCTuJwlJ3E8SkgCQhCQkAVBrxTYA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r3+bq6666qqrrnrBCK666qqrrrrqqquuuuqqqx7gH/7hH377sY99LC+MJJ4fSUjigSQhiftJQhL3k4Qk7icJSUQEkpDE/SQBIIn/TLZ5INs8kG3+o9jmBbGNbZ4f29hmmqZbueqqq6666qoXjOCqq6666qqrrrrqqquuuuoBfuu3fuu7X+zFXozndubMGQCGYeC5SUISDyQJSTyQJB5IEveThCTud/HiRSQBIIl/iST+M9nGNra5n20AbHO/66+/HoC77roL29jGNraxDYBtbGObB7INgG2em21sY5v72WYcx1u56qqrrrrqqheM4Kqrrrrqqquuuuqqq6666gHOnj37jH/4h3/47dd+7dfmga655hoAhmHggSTx3CTxQJKQxP0kIYn7SeJ+kpDEhQsXeCBJvCgk8R/FNi8q2wBsb2/zwtjm+bHNA9nGNraxzQPZxja2aa09g6uuuuqqq656wQiuuuqqq6666qqrrrrqqquey9///d//9mu91mvxwkhCEs9NEg8kiQeSxP0kIYn7SeJ+u7u7SEISkgCQhCT+M9nmRWEbANvczzb329/f50Vlm/vZ5vmxDYBtHmiapt/mqquuuuqqq14wgquuuuqqq6666qqrrrrqqufyD//wD79zzTXX8EBnzpwBYBgGJPH8SOKBJPFAkrifJO4nCUncTxIXL15EEi+IJCTxn802z802D2QbgOuvvx6A/f19bPMvsY1t7mcbANs8kG0AbANgG9vYRhJXXXXVVVdd9UIQXHXVVVddddVVV1111VVXPZezZ8/eeubMGR772MdyvzNnzgAwjiPPjyQeSBL3k4Qk7ieJ+0nifpKQBIAkACQBIIn/Srb5l9jmgba3twG46667ALCNbWxjGwDb2MY2D2SbB7KNbWwDYJsHso1tMvNWrrrqqquuuuoFI7jqqquuuuqqq6666qqrrnou9913363/8A//8Nuv/dqvzYtCEg8kiftJ4oEkcT9J3E8S95PE7u4ukpCEJB5IEveTxH8U2zw/trGNbWzz/NjmX2Kbf4ltXhjb2AZgGIbf5qqrrrrqqqteOIKrrrrqqquuuuqqq6666qrn40d+5Ec+58Ve7MW435kzZwAYhoEHksQDSeIFkcT9JHE/SdxPEvfddx//09kGwDb3u/766wHY39/nRWUb2wDYBsA2D2Qb29jmfraZpulWrrrqqquu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sc3zY5vt7W3uZ5sXhW1sA2AbANvczzYPZBsA27TWbuWqq6666qqrXjRUrrrqqquuuuqqq6666qqr/oeRxP8EtnlutgGwzXPb398HwDa2eUFs84LYxjYAtrHN/WzTWruVq6666qqrrnrREVx11VVXXXXVVVddddVVV/0PkZkPjggAJPHfwTb/GjfccAMA+/v7PDfb2MY2trGNbR7INgC2eSDb3M8291uv17/NVVddddVVV73oCK666qqrrrrqqquuuuqqq/6HyMwHA0gCQBL/mWxzP9v8S2zzQLbZ3t4G4M477+RfyzYPZBvb2AbANvezjW1sc9VVV1111VX/ClSuuuqqq6666qqrrrrqqqv+53iwJAAkASAJSTw/kvjvYJvnxza2eVHY5n62eVHYZhiG3+Gqq6666qqrXnQEV1111VVXXXXVVVddddVV/0NIepAkJPH8SEIS/9ls89xs8/zccMMNAOzt7XE/27wwtrmfbQBs80C2AbCNbWwDYJurrrrqqquu+legctVVV1111VVXXXXVVVdd9T9EKeXBkrifJP672Ob5sQ2AbR5of3+fB7KNbWxjG9vYxjYviG1sY5vnxzbjOP42V1111VVXXfWiI7jqqquuuuqqq6666qqrrvofIiK4nyQeSBL3k8S/l23uZxsA2/xr2ObGG28EYG9vj38t2wDY5rnZxjYAtrENQGbeylVXXXXVVVe96KhcddVVV1111VVXXXXVVVf9D1FKebAkJHE/SfxPYRsA2zy3vb09bPOiss0D2eZ+trmfba666qqrrrrq34HKVVddddVVV1111VVXXXXV/xCllAdLAkASkgCQxH832zw/29vbAOzv7wNgG9u8ILaxzf1scz/b2AbANg9km/V6/dtcddVVV1111b8OwVVXXXXVVVddddVVV1111f8QkgCQxL+GJP41bPOC2OZFYZvt7W0A9vb2eG62sY1tbGMb2zyQbV4UtgGYpulWrrrqqquuuupfh+Cqq6666qqrrrrqqquuuup/iFLKgyXxX8k2z802D2Sb+9nmfjfeeCMA+/v72ObfyjYPZBsA29zPNuM43spVV1111VVX/etQueqqq6666qqrrrrqqquu+h8gMx8kCQBJSOK/km0kcT/b/EtsA7C3tweAbV5UtgGwDYBtbGMbANsA2OZ+0zQ9g6uuuuqqq67616Fy1VVXXXXV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duwYD2Sb+9nmhbHNA9nGNgARQUQgCYD1en0rV1111VVXXfWfh8pVV1111VVXXXXVVVddddV/kVLKgyUhCUk8N0n8Z7KNJF4Y2wDs7OwAcPvtt/P82MY2z80297PNc4sIJCEJgMPDw9/mqquuuuqqq/7zULnqqquuuuqqq6666qqrrvovIglJPDdJ/FexjSQAbPOCHDt2jEuXLrG7u8v9bPPcbGMb29jmudnmfraRhCQkcdVVV1111VX/BQiuuuqqq6666qqrrrrqqqv+i5RSHgwgCQBJ/GezzXOzjW2em20e6NixYzw327wobHM/29gGICKICCQBcHBw8DtcddVVV1111X8eKlddddVVV1111VVXXXXVVf9FIuLBknggSTyQJP4tbCOJ/wg33XQTALfddhsAtvnXsM0LEhFIQhIA4zhy1VVXXXXVVf+JqFx11VVXXXXVVVddddVVV/0XkQSAJCTxP4lt7nfs2DEALl26xPNjmxfENvezjW0AbBMRRAQRgSQAlsvlb3PVVVddddVV/3kIrrrqqquuuuqqq6666qqr/otExIMl8V/BNv+RbPNAtrHNA9nmfra5n20ASilEBBFBRAAwTdOtXHXVVVddddV/HoKrrrrqqquuuuqqq6666qr/Apn5YEk8kCReEEn8W9jmudnmhbHN/Wxzyy23AHD77bdjm/vZ5rnZxja2+ZdEBBGBJCQhiauuuuqqq676T0blqquuuuqqq6666qqrrrrqv0BmPlgSkpCEJP4nsM1/NNsA2OZ+timlEBFEBAD7+/u/zVVXXXXVVVf95yK46qqrrrrqqquuuuqqq676L2D7wZJ4fiQhiX8N2/xr2Oa52eaBbANw8803A3DbbbcBYJv72eaFsc0D2cY2AKUUSilEBJJYr9e3ctVVV1111VX/uahcddVVV1111VVXXXXVVVf9FyilIAlJPJAk/qvYRhIAtvmX2Ob5sc3zY5v72eaBbFNKISKQBMDR0dGtXHXVVVddddV/LoKrrrrqqquuuuqqq6666qr/Gg/imSTxX8E2z802tnlutrnfsWPHALh06RL3s80D2cY2trGNbZ6bbQBsAxARRAQRgSSOjo6ewVVXXXXVVVf95yK46qqrrrrqqquuuuqqq676LxARD5bE/SQhiQeSxL+Fbf6jHDt2DIBLly4BYJv72eZFYZv72QYgIqi1Ukoh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7RlcddVVV1111X89gquuuuqqq6666qqrrrrqqv8EH/7hH/5dvACS+O9gmweyzfHjxwHY3d3l38I2ALa5n202Njbo+55SCpK47777fpurrrrqqquu+q9HcNVVV1111VVXXXXVVVdd9Z/g9OnTry0JSUjifpIAkMR/Jts8kG2en2PHjvHcbHM/27yobGObY8eOsVgsqLVSSgFAElddddVVV13134DKVVddddVVV1111VVXXXXVf4K77777wZK4nyT+M9lGEg9kmxfENgDHjh0D4LbbbsM2z49tnh/bANjmgY4fP85isaDrOiICgGEYbuWqq6666qqr/usRXHXVVVddddVVV1111VVX/Qd7ndd5nfeWhCQkcT9J/FvZ5j/D8ePHAdjd3eWBbPNAtrGNbWxjmxdkZ2eH2WxGrRVJ/OVf/uXvcNVVV1111VX/PahcddVVV1111VVXXXXVVVf9Bztz5syDzp49y/0k8T+JbV4Q2/xr2AbANraxzdbWFrPZjForEcFdd911K1ddddVVV13134Pgqquuuuqqq6666qqrrrrqP9jZs2efUUpBEpL415DEv5Vt/jUe9KAHAfCMZzwD2zw32/xbbGxs0Pc9pRQkMU0TV1111VVXXfXfhOCqq6666qqrrrrqqquuuuo/2JkzZx4kCUm8MJL497LNv4Zt7nfs2DEAdnd3eUFs84LYBsA297PNYrGg73siAoC//Mu//G2uuuqqq6666r8HwVVXXXXVVVddddVVV1111X+ws2fPPuPFXuzFeCBJ/Esk8Z/JNg9km+fHNg9kmweyjW0eyDa2AVgsFnRdR0Qgidtvv52rrrrqqquu+m9CcNVVV1111VVXXXXVVVdd9R/svvvuu/Waa65BEpKQxP0k8Z/JNi+qBz3oQQA84xnPAMA297PNA9nGNrZ5INs8UCmF+XxOrZWIwDZ33HHHb3PVVVddddVV/z0Irrrqqquuuuqqq6666qqr/oOdPXv21jNnzvDoRz+aB5IEgCT+rWwDYJsXxDbPzTYPZJv/KLa53/b2NrPZjForkgAYx/FWrrrqqquuuuq/B8FVV1111VVXXXXVVVddddV/sPvuu+/W3/qt3/ruV3/1V0cSLwpJ/EeyjW1sY5vn50EPehAAz3jGM7ifbe5nmxfGNvezjW22traYzWbUWpHEHXfccStXXXXVVVdd9d+H4Kqrrrrqqquuuuqqq6666j/Bb/3Wb33Pox71KAAk8Z/JNv8atnlutnl+bPP82AbANg+0sbFBrZVSChHB1tbWg6+55poHc9VVV1111VX/PQiuuuqqq6666qqrrrrqqqv+E5w9e/bWzLz1Ld7iLQCQxP80x48fB2B3d5cHss0D2cY2ALaxzQsyn8/p+55SCgCtNa655poHc9VVV1111VX/PQiuuuqqq6666qqrrrrqqqv+E9x33323fv3Xf/37vMqrvAqnTp3iuUniRWWb/yi2ATh+/DgAly5d4n62eWFs80C2AbCNbWwzm83ouo6IAOCuu+7iqquuuuqqq/4bEVx11VVXXXXVVVddddVVV/0nOXv27K133333b7/He7wH/9ls869xyy23AHDrrbdim+dmm3+Lvu/puo6IQBL33XcfV1111VVXXfXfiOCqq6666qqrrrrqqquuuuo/yX333Xfrj/7oj372sWPHbn2TN3kTXhBJ/Fewzb+GbV4Q2wDY5n62mc1m1FqRBMCxY8e47777buWqq6666qqr/nsQXHXVVVddddVVV1111VVX/Sf6h3/4h9/5rd/6re9+pVd6Jd74jd8YSfxHsc0D2eYFsc0DHTt2DIDd3V0eyDYPZJvnZpsHso1t+r6n6zoigojANsePH+e+++67lauuuuqqq67670Hlqquuuuqqq6666qqrrrrqP9lv//Zvf88111zz4Fd8xVd8b0n82q/9Gv+VbPPcjh8/DsDu7i4AtnlBbGMb29jmfrZ5oMViQd/31FoB2N3d5R/+4R9+m6uuuuqqq67670Nw1VVXXXXVVVddddVVV131n+y+++679Ud/9Ec/5+677/7tV3iFV+AN3/AN+fewzQtimweyzXOzzfHjxwG4dOkSz802/xaz2YxSCqUUIoJLly5x33333cpVV1111VVX/fchuOqqq6666qqrrrrqqquu+i9w33333fr1X//17zNN062v8AqvwBu8wRvwr2WbF4VtbGObF+TYsWMA7O7ucj/b3M82L4xtAGxjG9v0fU/XdZRSWK/XLJdLfvRHf/RzuOqqq6666qr/PgRXXXXVVVddddVVV1111VX/Re67775bP+uzPut17rzzzt9+gzd4A17/9V8fSfx72OZfwzYAx48fB2B3dxfbPD+2eX5s8/x0XUetFUlcvHiR3/qt3/ru++6771auuuqqq6666r8PwVVXXXXVVVddddVVV1111X+h++6779av//qvf+8f+ZEf+ew3eIM34BM/8RN5yEMewn+l48ePA7C7u8tzs80D2eZ+trHN/WxzP9t0XUcphYhgtVrxoz/6o5/DVVddddVVV/33ohw/fpyrrrrqqquuuuqqq6666qr/SkdHR5f+4R/+4XcAXv7lX/61X+7lXo4TJ05w9913s16vAZCEJCQBIAkASQBI4n6SeFHYBuDaa6/lpV7qpbjnnnv4m7/5G/4ltrHNA9kGwDa2sc21117LYx/7WE6ePMlnfuZnvs6tt97611x11VVXXXXVfy+Cq6666qqrrrrqqquuuuqq/yY/+qM/+jkf8iEf8pB/+Id/+O2XfdmX5f3e7/14ndd5Hf6zHT9+HIBLly5hGwDb3M82/xaPfexjecQjHsGP/MiPfPY//MM//DZXXXXVVVdd9d+Pcvz4ca666qqrrrrqqquuuuqqq/67HB4e7v7DP/zD7xweHu6+/Mu//Gs/5CEP4WVf9mWZz+fceuutSAJAEgCSAJDEA0nihbHN/R71qEfx4Ac/mCc+8YnceuutPD+2eUFsA2AbANu82Zu9GS/+4i9+65/+6Z/+9Hd913d9DFddddVVV131PwPl+PHjXHXVVVddddVVV1111VVX/Xc6PDzc/Yd/+Iff+e3f/u3vOTw83H35l3/5137IQx7Cy7zMyzCbzbh06RLr9RoASdxPEveTxAtimwd6qZd6Ka677jr+5m/+hnvuuYf72eaBbPPcbHM/2zzsYQ/jwz/8w7nmmmtu/a3f+q3v/q7v+q6P4aqrrrrqqqv+56AcP36cq6666qqrrrrqqquuuuqq/wkODw93/+Ef/uF3fvu3f/t7Dg8Pd1/+5V/+tR/ykIfw6Ec/muuuu47FYsG9997L/STxQJJ4UbziK74ix48f54lPfCL33HMPtnlBbGMb29jmfsePH+d93ud9eKM3eiP29/dv/fqv//r3+e3f/u3v4aqrrrrqqqv+Z0EPetCDuOqqq6666qqrrrrqqquu+p/ozJkzD3qd13md936nd3qnz77vvvtuveaaax68u7vLM57xDP76r/+a2267jecmifvZ5rnZ5iM/8iM5fvw4X/M1X8Pu7i62AbCNbQBsYxvb2MY2x48f52Vf9mV5gzd4A+73Iz/yI5/9oz/6o5/DVVddddVVV/3PhB70oAdx1VVXXXXVVVddddVVV131P9k111zz4Nd+7dd+rxd/8Rd/7Rd7sRd7bZ5pd3eXS5cu8YxnPINbb72VZzzjGfxLbPOZn/mZAHzO53wOALaxDYBtbANw7Ngxjh8/zkMe8hBe7/Vej/vdd999t/7oj/7o5/zWb/3Wd3PVVVddddVV/7OhBz3oQVx11VVXXXXVVVddddVVV/1vcebMmQe9zuu8znu/+Iu/+Gu/2Iu92GvzALu7uwA84xnPYHd3l0uXLrG7u8ulS5fY3d3FNgCf+ZmfCcDnfM7nYJvjx49jmwc/+MEcP34c2zzkIQ/hIQ95CA9033333fpbv/Vb3/2jP/qjn8NVV1111VVX/e+AHvSgB3HVVVddddVVV1111VVXXfW/0TXXXPPgF3uxF3vtF3uxF3uta6655sEv9mIv9tr8B7vvvvtu/a3f+q3v/q3f+q3vPnv27DO46qqrrrrqqv9d0IMe9CCuuuqqq6666qqrrrrqqqv+L7jmmmseDPBiL/Zir/1iL/ZirwVwzTXXPBjgxV7sxV77vvvuu/Waa655MM/lvvvuuxXg7Nmzt/793//9bwP8wz/8w+/8wz/8w29z1VVXXXXVVf+7oQc96EFcddVVV1111VVXXXXVVVddddVVV1111VX/J1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8q/hHRzMxGF39n4wAAAABJRU5ErkJggg==) +![Rendered example of rotate 5](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAEVNklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qr/Z6655poHc9VVV131v8CZM2cezDOdPXv2Vp7LfffddytXXXXVVVddddVVLxyVq6666qqrrvp/4pprrnnwO77jO37W67zO67w3V1111VX/h9x33323Apw9e/bW++6779b77rvv1rNnzz7jvvvuu/Uf/uEffpurrrrqqquuuur/M/SgBz2Iq6666qqrrvq/7pprrnnwN33TNz39iU98Il/+5V/Ov4ck/rNJ4j+bJP6zSeK/giT+K0niv4Mk/qeQxP92kvjf5uTJkzy3kydPcurUKWxz8uRJTp06xcmTJwF4xCMeAcB9991369mzZ2+97777bv2t3/qt7/mHf/iH3+aqq6666qqrrvr/Aj3oQQ/iqquuuuqqq/4vu+aaax784R/+4d913XXXvfYnf/In88JI4j+TJP6zSeI/myT+s0niv4Ik/itJ4r+LJP6nksRV//FOnDgBwCMe8QhOnjzJIx7xCB7xiEcAcN999936D//wD7/9D//wD7/zW7/1W9/NVVddddVVV131fxV60IMexFVXXXXVVVf9X/a5n/u5v3Xddde99qd8yqfwn0kS/9kk8Z9JEv+ZJPGfTRL/VSTxX00S/90k8b+JJP4/sc3zY5v7nTx5kkc84hE8/OEP55Vf+ZW57777bj179uytv/Vbv/U9//AP//Db9913361cddVVV1111VX/V6AHPehBXHXVVVddddX/VZ/7uZ/7W9ddd91rf9d3fRdPetKT+PeQxH8WSfxnksR/Jkn8Z5LEfzZJ/FeRxH8HSfxPIon/LyTxn8U2L4xtnptt7mebkydP8sqv/Mo84hGP4BGPeAT33XffrT/6oz/6Ob/1W7/13Vx11VVXXXXVVf/boQc96EFcddVVV1111f9Fn/u5n/tbL/ZiL/baX/7lX86TnvQkXhhJ/GeSxH8WSfxnkcR/Jkn8Z5LEfzZJ/FeSxH8XSfxPJ4mrns02z80297PN/WwDcPLkSV7plV6JRzziERw/fvzWf/iHf/jt3/qt3/qef/iHf/htrrrqqquuuuqq/43Qgx70IK666qqrrrrq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3OMeB8Dm5ib/kWxz1VVXXXXVVVf9q1C56qqrrrrqqquuuuqqq676Vzp79iwPJAmAiCAzOXv2LP/RbHPVVVddddVVV/2rEVx11VVXXXXVVVddddVVV/0rnDlz5kFnz57l+ZEEwNmzZ7nvvvvY2NhgY2ODfy/b/EexzVVXXXXVVVf9P0Jw1VVXXXXVVVddddVVV131r3DNNdc8mBdAEhGBJM6ePQvA5uYm/x62ueqqq6666qqr/s0Irrrqqquuuuqqq6666qqr/pXOnj3LCxIR/EexzVVXXXXVVVdd9e9CcNVVV1111VVXXXXVVVdd9a9wzTXXPJh/QURw9uxZjo6O2NjY4N/CNlddddVVV1111b8bwVVXXXXVVVddddVVV1111b/CmTNnHnz27FlemIgAYGNjg38L21x11VVXXXXVVf8hqFx11VVXXXXVVVddddVVV/0HkgTAuXPnANjY2OBfwzb/VTY3NwE4e/bsM7jqqquuuuqq/5sIrrrqqquuuuqqq6666qqr/hWuueaaB589e5Z/yTXXXMPR0RFHR0e8qGzzn00SV1111VVXXfX/CJWrrrrqqquuuuqqq6666qp/pbNnz/Ki2NjY4H+yzc1NAO67775bueqqq6666qr/mwiuuuqqq6666qqrrrrqqqv+B7DNfxVJAGxsbABw9uzZW7nqqquuuuqq/5sIrrrqqquuuuqqq6666qqrXkTXXHPNgwHOnj3Lv+TMmTMAHB0d8S+xzVVXXXXVVVdd9Z+CylVXXXXVVVddddVVV1111YvozJkzD+ZFdPr0aQAODw95QWzz30USm5ubANx33323ctVVV1111VX/N1G56qqrrrrqqquuuuqqq656EV1zzTUPPnv2LC+qo6MjXhDb/Hfa2NgA4OzZs8/gqquuuuqqq/7vonLVVVddddVVV1111VVXXfWvcPbsWV4UZ86cAeDo6IjnZpv/bpubmwDcd999t3LVVVddddVV/3dRueqqq6666qqrrrrqqquuehGdOXPmQWfPnuXfwjb/k2xsbABw33333cpVV1111VVX/d9F5aqrrrrqqquuuuqqq6666j/YmTNnADh79iy2ueqqq6666qqr/ttQueqqq6666qqrrrrqqquuehFdc801D+ZfYJvTp0/zP93m5iYA991339O56qqrrrrqqv+7qFx11VVXXXXVVVddddVVV/0rnD17ln/JmTNnADg8POR/qo2NDQDOnj37DK666qqrrrrq/y6Cq6666qqrrrrqqquuuuqqF9E111zz4LNnz/LvIQlJSEISkpCEJCQhCUlI4j/T5uYmV1111VVXXfX/AJWrrrrqqquuuuqqq6666qoX0ZkzZx7Mv5Ek/rUk8dxs8x9hY2MDgH/4h3/4ba666qqrrrrq/y4qV1111VVXXXXVVVddddVV/wpnz57lX3L69GkAjo6OAJDEfxRJPJBtrrrqqquuuuqqF4jKVVddddVVV1111VVXXXXVi+iaa6558NmzZ/mXnDlzBoDDw0Mk8Z9JEg9kmxfF5uYmAPfdd9+tXHXVVVddddX/XVSuuuqqq6666qqrrrrqqqv+k0jiv5okHsg2z21jYwOA++6771auuuqqq6666v82KlddddVVV1111VVXXXXVVS+Ca6655sEAZ8+e5V9y5swZAI6OjvjvJokHss3m5iYAZ8+evZWrrrrqqquu+r+NylVXXXXVVVddddVVV1111YvgzJkzD+ZFdPr0aQAODw/5n0YSm5ubANx33323ctVVV1111VX/t1G56qqrrrrqqquuuuqqq656EVxzzTUPPnv2LFddddVVV1111f8qVK666qqrrrrqqquuuuqqq/6DnTlzBoCjoyP+J9rY2ADgvvvuu5Wrrrrqqquu+r+NylVXXXXVVVddddVVV1111Yvo7Nmz/F+wubkJwNmzZ5/BVVddddVVV/3fRuWqq6666qqrrrrqqquuuupFcObMmQedPXuWf8mZM2cAODo64n+qjY0Nrrrqqquuuur/CSpXXXXVVVddddVVV1111VUvgmuuuebBvAjOnDkDwOHhIf9TbW5uAvAP//APv81VV1111VVX/d9G5aqrrrrqqquuuuqqq6666kV09uxZ/iWnT58G4OjoiKuuuuqqq6666r8dwVVXXXXVVVddddVVV1111YvgmmuueTD/jSQhCUlIQhKSkIQkJCEJSUhCEpKQhCQkIQlJbGxsAHDffffdylVXXXXVVVf930Zw1VVXXXXVVVddddVVV131Ijhz5syDz549y7/kzJkzABweHvJvJQlJSEISkviPsrGxAcB99913K1ddddVVV131fx+Vq6666qqrrrrqqquuuuqq/0BnzpwB4OjoiH8NSfxX2NjYAODs2bO3ctVVV1111VX/91G5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e/bsra/zOq/z3vwXuHDhAvP5HEm8MJL4t7KNJB7INpJ4INtIAsA297PN/Wyzvb0NwP7+PraxjW1eENs8kG3uZxvb2AbANra5n22GYfgdrrrqqquuuupfRuWqq6666qqrrrrqqquuuupf8A//8A+/ffbs2Vt/9Ed/9HN4JtuWJB7AtiWJB7BtSeIBbFuSeADbliSueLokHkgS/1VsI4n72eZfsr29DcD+/j4PZBvb2MY2trHNA9kGwDbPzTYPZBvb2Oaqq6666qqrXgRUrrrqqquuuuqqq6666qqrXgT33XffrfwXyMwHHz9+HABJSEISAJL4j2AbSfxb2QbANvfb3t4GYH9/n38N2zyQbe5nmweyzf2mafptrrrqqquuuupfRnDVVVddddVVV1111VVXXfU/SGY+GEAS/xls8+9hmweyDcD29jYAe3t7vKhscz/b3M82tgGwjW1sA2Ab22TmrVx11VVXXXXVv4zgqquuuuqqq6666qqrrrrqfxDbD5YEgCQk8e9hmxeFbR7INi+Mbe5nmweyjW1eENvY5l/LNra56qqrrrrqqn8Fgquuuuqqq6666qqrrrrqqv9BSilIQhL/HWxzP9s8kG2enxtuuAGAu+66iweyjW1sYxvb2Oa52QbANg9km+dnvV7/DlddddVVV131oqFy1VVXXXXVVVddddVVV131P0hEPEgSAJIAkIQknh9JvKhsI4l/Dds8N9sA2AZge3sbgL29Pf61bANgGwDb2MY2ALaxjW1sY5tpmm7lqquuuuqqq140BFddddVVV1111VVXXXXVVf+DRMSDASTx/EhCEv8atrHNC2KbfyvbbG9vcz/bvKhs88LY5vmZpunpXHXVVVddddWLhspVV1111VVXXXXVVVddddX/IBGBJAAkIYn/SWwDYJv7bW9vA3DXXXcBYBvbvCC2sc39bANgm/vZBsA297ONbaZpegZXXXXVVVdd9aIhuOqqq6666qqrrrrqqquu+h+klPLakpDEc5PE/STxn8U2z49t/jVsYxvb2MY2tnkg2zyQbWzzQLaxDYBtMvNWrrrqqquuuupFQ3DVVVddddVVV1111VVXXfU/iCQk8UCS+JdI4t/LNi8K2wDYBuCGG24A4I477uDfyjbPzTYPZBsA27dy1VVXXXXVVS8agquuuuqqq6666qqrrrrqqv9Baq0PBpCEJCQBIIn/DLZ5fmxzP9vY5vmxzfb2NvezzYvCNrYBsA2Abe5nmweyDYBtWmu3ctVVV1111VUvGipXXXXVVVddddVVV1111VX/w0jifwLbPDfbANjmue3v7wNgG9u8ILZ5QWxjGwDb2OZ+tmmt3cpVV1111VVXvegIrrrqqquuuuqqq6666qqr/ofIzAdHBACS+O9gm3+NG264AYD9/X2em21sYxvb2MY2D2QbANs8kG3uZ5v7rdfr3+aqq6666qqrXnQEV1111VVXXXXVVVddddVV/0Nk5oMBJAEgif9Mtrmfbf4ltnkg22xvbwNw55138q9lmweyjW1sA2Cb+9nGNra56qqrrrrqqn8FKlddddVVV1111VVXXXXVVf9zPFgSAJIAkIQknh9J/HewzfNjG9u8KGxzP9u8KGwzDMPvcNVVV1111VUvOoKrrrrqqquuuuqqq6666qr/ISQ9SBKSeH4kIYn/bLZ5brZ5fm644QYA9vb2uJ9tXhjb3M82ALZ5INsA2MY2tgGwzVVXXXXVVVf9K1C56qqrrrrqqquuuuqqq676H6KU8mBJ3E8S/11s8/zYBsA2D7S/v88D2cY2trGNbWxjmxfENraxzfNjm3Ecf5urrrrqqquuetERXHXVVVddddVVV1111VVX/Q8REdxPEg8kiftJ4t/LNvezDYBt/jVsc+ONNwKwt7fHv5ZtAGzz3GxjGwDb2AYgM2/lqquuuuqqq150VK666qqrrrrqqquuuuqqq/6HKKU8WBKSuJ8k/qewDYBtntve3h62eVHZ5oFscz/b3M82V1111VVXXfXvQOWqq6666qqrrrrqqquuuup/iFLKgyUBIAlJAEjiv5ttnp/t7W0A9vf3AbCNbV4Q29jmfra5n21sA2CbB7LNer3+ba666qqrrrrqX4fgqquuuuqqq6666qqrrrrqfwhJAEjiX0MS/xq2eUFs86Kwzfb2NgB7e3s8N9vYxja2sY1tHsg2LwrbAEzTdCtXXXXVVVdd9a9DcNVVV1111VVXXXXVVVdd9T9EKeXBkvivZJvnZpsHss39bHO/G2+8EYD9/X1s829lmweyDYBt7mebcRxv5aqrrrrqqqv+dahcddVVV1111VVXXXXVVVf9D5CZD5IEgCQk8V/JNpK4n23+JbYB2NvbA8A2LyrbANgGwDa2sQ2AbQBsc79pmp7BVVddddVVV/3rULnqqquuuuqqq6666qqrrvofwPaDASRxP0lI4n8K2wDYBmB7exuA/f197mebF8Y2tnlhbPNAtrHNNE2/zVVXXXXVVVf961C56qqrrrrqqquuuuqqq676HyAzHywJAEk8N0lI4n6S+K9km+e2s7MDwN7eHg9kG9vYxja2sY1tHsg2ALa5n21eEElcddVVV1111b8SwVVXXXXVVVddddVVV1111f8AEYEkJAEgif8MtnlBbPMvsQ2Abba3twHY29vjX8s2D2Qb2wDYBsA2trGNbVprt3LVVVddddVV/zoEV1111VVXXXXVVVddddVV/wNIerAkACTxQJK4nyT+o9jmRWGb52d7exuA/f19bGObF4Vt7mebF8V6vf5trrrqqquuuupfj+Cqq6666qqrrrrqqquuuup/gFLKgyUhiftJ4r+Cbe5nmweyzf1sA2AbgJ2dHQD29va4n21eGNvczzYAtgGwjW0AbHM/27TWbuWqq6666qqr/vWoXHXVVVddddVVV1111VVX/Q8QEdxPEpIAkMR/Ndv8e9jGNra5n21s84LY5n62uZ9tAGxz1VVXXXXVVf8GBFddddVVV1111VVXXXXVVf8DlFIeLAlJ/Gexzb+VbR7ohhtuAODOO+/ENi+IbWzz3GwDYJsHss39bANgm/V6/TtcddVVV1111b8ewVVXXXXVVVddddVVV1111f8AEfFgSfxXsc0D2eZFYRuA7e1tAPb29gCwzYvKNg9kG9vY5qqrrrrqqqv+g1G56qqrrrrqqquuuuqqq676H6DW+mAASUjiRSWJ/2y2eW47Ozs8N9v8S2xzP9u8ILYBsA3AMAy/zVVXXXXVVVf96xFcddVVV1111VVXXXXVVVf9DyGJ+0lCEs+PJP6j2OaFsc39bANgm+3tbQDuuOMOHsg2trHNA9nGNvezDYBtHsg2tnkg22TmrVx11VVXXXXVvx7BVVddddVVV1111VVXXXXVf7PMfLAkACTx3CQhiX8P2/xLbPNAtnlR2Ob5sY1tbPPC2MY2tnkg2wC01m7lqquuuuqqq/5tqFx11VVXXXXVVVddddVVV/03y8wHA0gCQBL/XWzz/NgGwDYAN954IwB33nknALZ5UdkGwDbPzTYPZJv1ev3bXHXVVVddddW/DZWrrrrqqquuuuqqq6666qr/fg+WBIAkHkgS95PE/2S2+ZfY5gWxzfNjm6uuuuqqq676NyK46qqrrrrqqquuuuqqq676b1ZKQRKSuJ8k/rPY5oFs88LY5rnt7OwAsLe3xwPZxjbPzTa2uZ9tAGxjG9sA2AbANraxzTiOt3LVVVddddVV/zYEV1111VVXXXXVVVddddVV/80kPUgSz00S/xFs8/zY5l/DNgA33HADAHt7e9jm+bGNbWxjmweyzb/GNE3P4Kqrrrrqqqv+bQiuuuqqq6666qqrrrrqqqv+m0XEgyUhCUlI4r+abZ4f2zy3nZ0dAO68804AbPNvYZsHsg2AbR5oHMff5qqrrrrqqqv+bahcddVVV1111VVXXXXVVVf9N4uIB/M/kG3uZxsA2zw/tnlR2OaBbGMb2zw/tpHEVVddddVVV/0bUbnqqquuuuqqq6666qqrrvpvVkp5sCQkIYkXRhL3k8R/JNu8KG688UYALl26xAPZxjbPj21scz/bPDfbPJBtAFprt3LVVVddddVV/zYEV1111VVXXXXVVVddddVV/80kIYn7SUIS95PEfxTbPJBt/iW2eX729/exzXOzjW1sYxvbPJBtAGxzP9s8kG0A1uv173DVVVddddVV/3YEV1111VVXXXXVVVddddVV/81qrQ8GkMRzk8S/h23+o9gG4MYbbwRgb28PANu8qGzzQLaxDYBtnts0Tbdy1VVXXXXVVf92BFddddVVV1111VVXXXXVVf8DSAJAEveTxP0k8R/JNi8K27wge3t73M82/xLb3M82/xLbTNP0dK666qqrrrrq347gqquuuuqqq6666qqrrrrqv9E0Ta/NfzPbPD+2uZ9tAGyzs7MDwN7eHg9kmxfENs/NNvezDYBtbHO/YRiewVVXXXXVVVf921G56qqrrrrqqquuuuqqq676b2T7wZKQhCQAJPE/1c7ODgB7e3vY5rnZxja2sY1tbPNAtrmfbWzzgmTmrVx11VVXXXXVvx3BVVddddVVV1111VVXXXXVf6OIQBLPTRL/0WzzgtjmfraxzfNz4403ArC3tweAbf41bANgmweyzQPZxjattVu56qqrrrrqqn87gquuuuqqq6666qqrrrrqqv9Gkh4kCQBJSOI/im1eGNs8kG1s89xsA2Cb++3t7XE/27wobPNAtgGwzQuSmbdy1VVXXXXVVf92BFddddVVV1111VVXXXXVVf+NIuLBkpDEfxXb/Fvt7OwAsLe3xwPZ5oWxzf1scz/bvCCttVu56qqrrrrqqn8fKlddddVVV1111VVXXXXVVf+NIgJJvCgkcT9J/FewDYBtALa3twHY29vDNg9kG9vY5n62sc2/xDa2uZ9tVqvVb3PVVVddddVV/z4EV1111VVXXXXVVVddddVV/41KKQ8GkIQkJCEJAElI4j+TbV4Q2zy3nZ0dAPb29gCwzfNjG9s8N9sA2MY2trHNA9nmqquuuuqqq/6DEFx11VVXXXXVVVddddVVV/03KqU8WBL/2WzzH2FnZweAvb097mebF4VtXhDbPLfVavU7XHXVVVddddW/D8FVV1111VVXXXXVVVddddV/o1LKgwEk8UCSuJ8k/rVs86KyzXOzzf1sA2CbnZ0dAC5dusQD2eaFsc39bPNAtnl+bHPVVVddddVV/04EV1111VVXXXXVVVddddVV/80kASCJ/yq2eSDbANjGNv8WtnlutrHN/WwDYBvb2OYFGYbht7nqqquuuuqqfx+Cq6666qqrrrrqqquuuuqq/yaZ+WBJAEgCQBL/mWzzgtjmudkGwDY33XQTAHfccQcAtnlutrGNbWzzr2UbANu01m7lqquuuuqqq/59qFx11VVXXXXVVVddddVVV/03ycwHS0ISDySJ/4l2dnYA2Nvb4362eVHZBsA2D2Sbq6666qqrrvpPQnDVVVddddVVV1111VVXXfXfxPaDJQEgCUn8V7LNC2ObB9re3ub5sc2/xDYPZBvb2Ob5Wa/Xv81VV1111VVX/fsRXHXVVVddddVVV1111VVX/TcppQAgiX+JJO4niRfGNg9km38t29zPNgA7OzsA3H777djmgWzzgtjmfrZ5brZ5INtM03QrV1111VVXXfXvR+Wqq6666qqrrrrqqquuuuq/iaQHSeIFkcT/JraxjW1sYxvbPDfb3M82z880Tbdy1VVXXXXVVf9+BFddddVVV1111VVXXXXVVf9NIuLBkpCEJCQhCQBJ/Gexzf1s89xscz/bANjmpptuAuCOO+4AwDb/Gra5n21s84Ks1+tncNVVV1111VX/flSuuuqqq6666qqrrrrqqqv+m0QE/xJJ/EexjSSem23+NWxzP9u8KGwDYJsXxTiOv81VV1111VVX/ftRueqqq6666qqrrrrqqquu+m9Sa31tSUjigSTxP4FtHmhnZweAvb09Hsg2tnlBbPOC2Ob5kcRVV1111VVX/QcguOqqq6666qqrrrrqqquu+m8kCQBJ/E9lm5tuugmAvb09AGzz3GxjGwDb2MY297MNgG1sY5v7SeKBpmm6lauuuuqqq6769yO46qqrrrrqqquuuuqqq676b1JrfTCAJAAk8S+RxAtjmweyzfNjmxfGNg+0s7MDwB133MH9bPP82OZFZZvnNk3TrVx11VVXXXXVfwwqV1111VVXXXXVVVddddVV/40k8UCS+O9mm/vZBsA2ALZ5INu8KGwDYJv72eb5Wa1Wv81VV1111VVX/ccguOqqq6666qqrrrrqqquu+m+QmQ+WxP0k8YJI4j+Kbe5nmxfVzTffDMDe3h62eSDbvDC2eSDb2OYFsc1VV1111VVX/QchuOqqq6666qqrrrrqqquu+m+QmQ+WhCQk8Z/NNs+PbR7INvezzXPb29vj+bHNc7ONbe5nm+dmG0nczzar1ep3uOqqq6666qr/GFSuuuqqq6666qqrrrrqqqv+ezxYEg8kCQBJSOK/im1eGNvcdNNNAFy6dAkA2zw329jGNrZ5INsA2OZ+tnl+bHPVVVddddVV/0GoXHXVVVddddVVV1111VVX/TcopQAgCUlI4rlJ4r+LbZ6fS5cucT/b/FvYxjYAknhu6/X6t7nqqquuuuqq/xgEV1111VVXXXXVVVddddVV/z1eSxLPTRL/VrZ5INs8P7b519rZ2QFgb2+PB7LNv8Q2ALZ5INs8P621W7nqqquuuuqq/xhUrrrqqquuuuqqq6666qqr/htEBJL4n8g297PNzs4OAHt7ewDY5oFs84LY5oFsA2Cb52eaplu56qqrrrrqqv84VK666qqrrrrqqquuuuqqq/4blFIeDCAJSbwoJPHf4aabbgLg0qVLvCC2sY1tbGMb29zPNvezzQuyWq1+m6uuuuqqq676j0Nw1VVXXXXVVVddddVVV13136CU8mBJ3E8S/1lsA2Cb+9nm+bHN/WzzQHt7e9zPNi8q2zw/tgGQxFVXXXXVVVf9JyG46qqrrrrqqquuuuqqq676byAJAEncTxLPTRL/WWzzQLZ5fnZ2dgC4dOkStrmfbf41bGMbANsASAJAEgDDMNzKVVddddVVV/3HoXLVVVddddVVV1111VVXXfXfoJTyYEkASOK/i22eH9vcb2dnB4C9vT2em21eGNsA2OZ+tnlBhmF4BlddddVVV131H4fgqquuuuqqq6666qqrrrrqv1hmPohnksRzk8S/l23+I9hmZ2eHB7LNA9nGNvezjW1s8681DMNvc9VVV1111VX/cQiuuuqqq6666qqrrrrqqqv+i9l+sCQkcT9JAEji38I2Lwrb/Ets80DHjh0D4Pbbb+d+tnlutrHNc7MNgG1sYxvbSEIS95OEJK666qqrrrrqPxDBVVddddVVV1111VVXXXXVf7HMfLAk7ieJ5yaJ/262AdjZ2QHg0qVL/GeQxP2mabqVq6666qqrrvqPQ3DVVVddddVVV1111VVXXfVfLCKQhCQkcT9JvCCS+LewDYBt7mebF8Q2L4xt7mebf4ltAGzzQLZ5bsvl8ne46qqrrrrqqv9YVK666qqrrrrqqquuuuqqq/6LSXow/wPZ5rnddNNNANx+++08P7axzXOzjW0eyDa2sQ2AJCRxv2mabuWqq6666qqr/mMRXHXVVVddddVVV1111VVX/ReLiAdLQhKS+O9gmweyzQPZBmBnZweAvb097meb52Yb29jGNg9km+dmmweSxDiOT+eqq6666qqr/mNRueqqq6666qqrrrrqqquu+i8WEUjifpKQxHOTxH8m2/xLdnZ2eH5s86KwDYBtnpskACRhm2EYnsFVV1111VVX/cciuOqqq6666qqrrrrqqquu+i9WSnkwgCT+M9jm+bHNi8I29zt27BgAt912G7Z5INv8a9jGNraRBIAk7jeO461cddVVV1111X8sgquuuuqqq6666qqrrrrqqv9ikh4sCQBJ/HvZ5j+DbZ6bbR7INs+PbWwDYJvnRxIPNE3TrVx11VVXXXXVfywqV1111VVXXXXVVVddddVV/8VqrQ8GkMRzk8R/J9s80M033wzAHXfcwQtiG9vYBsA2L4xtJAEgCQDbtNZu5aqrrrrqqqv+YxFcddVVV1111VVXXXXVVVf9N5DE/SQBIAkASfxHsA2Abe5nmxfENvezDYBtAGxzP9u8ILZ5INsA2MY2trmfJO43TdOtXHXVVVddddV/PIKrrrrqqquuuuqqq6666qr/Qpn5YEncTxL/Ekn8Z7PN83Ps2DEALl26xAPZ5l9imxdEEgCSADg6Ovptrrrqqquuuuo/HsFVV1111VVXXXXVVVddddV/ocx8sCQkIYn7SeK/im0eyDYPZBuAnZ0dAC5dugSAbR7INi8K2zyQbSQhiauuuuqqq676T0blqquuuuqqq6666qqrrrrqv9aDJfHfzTb/kptuugmA22+/nfvZ5oFsY5sHso1tHsg2trENgCQkIQmA5XL5O1x11VVXXXXVfzyCq6666qqrrrrqqquuuuqq/0IRgSQkIYkXRBL/FrZ5fmzzorDNv4VtbGObB7LNi2KaJq666qqrrrrqPwGVq6666qqrrrrqqquuuuqq/0KSHsQDSEIS/xMdO3YMgEuXLmGb+9nmRWEbANvczzaSkIQk7rdarX6bq6666qqrrvqPR+Wqq6666qqrrrrqqquuuuq/UEQ8WBL/UWwjif8ItrmfbXZ2dgDY29vjudnmhbHNA9nGNgCSkIQk7tdau5Wrrrrqqquu+o9HcNVVV1111VVXXXXVVVdd9V8oIpCEJCTxQJL4j2IbANvczzb/GjfffDMAly5dAsA2D2Sb58c297PNc5OEJK666qqrrrrqvwCVq6666qqrrrrqqquuuuqq/0KllNfm+ZAEgCQeSBL/FWxzP9s80KVLl7ifbR7INrYBsI1tnptt7mcbSUhCEgCHh4e/zVVXXXXVVVf95yC46qqrrrrqqquuuuqqq676LyYJSQBI4r+SbZ6bbZ6fY8eOAXDp0iX+JbZ5bra5n21sAyAJSUgCYBzHW7nqqquuuuqq/xxUrrrqqquuuuqqq6666qqr/gvVWh/Mc5HEfyXbSMI2z802ADs7OwBcunQJANvczzb/Etu8IJKQBIAkhmG4lauuuuqqq676z0Fw1VVXXXXVVVddddVVV131X0wSkpDEfyTbPD+2eW62eWF2dnYAuHTpEs+PbV4Q29zPNg9kG0lIQhIAR0dHz+Cqq6666qqr/nNQueqqq6666qqrrrrqqquu+i8yTdNrS+JfIon/Dra537FjxwDY29vjfrZ5INvY5oFs89xsYxvbSCIikIQkAKZpupWrrrrqqquu+s9BcNVVV1111VVXXXXVVVdd9V/E9oMl8b/Bzs4OAJcuXcI297PNc7ONbWzzQLZ5bhGBJCQhCYDMvJWrrrrqqquu+s9BcNVVV1111VVXXXXVVVdd9V9EEpKQhCQkIYl/K9s8P7YBsM39bPPC2OZ+tjl27BgAly5d4t/CNgC2uZ9tJCEJSQBIYhzHW7nqqquuuuqq/xxUrrrqqquuuuqqq6666qqr/otIehAvgCSemyT+K9jmuR07dowHss39bPPC2OaBbGMbgIggIpAEwHq9vpWrrrrqqquu+s9D5aqrrrrqqquuuuqqq6666r9IKeXBkpCEJJ6bJP4z2UYSL4xtAHZ2dgC4/fbbeX5sY5vnZpv72ea5RQSSkATA4eHhb3PVVVddddVV/3moXHXVVVddddVVV1111VVX/ReRhCSemyT+q9hGEgC2eUGOHTvGpUuX2N3d5X62eW62sY1tbPPcbHM/20hCEpK46qqrrrrqqv8CBFddddVVV1111VVXXXXVVf9FSikPBpAEgCT+s9nmudnGNs/NNg907NgxnpttXhS2uZ9tbAMQEUQEkgA4ODj4Ha666qqrrrrqPw+Vq6666qqrrrrqqquuuuqq/yIR8WBJPJAkHkgS/xa2kcR/hJtuugmA2267DQDb/GvY5gWJCCQhCYBxHLnqqquuuuqq/0RUrrrqqquuuuqqq6666qqr/otIAkASkvifxDb3O3bsGACXLl3i+bHNC2Kb+9nGNgC2iQgigohAEgDL5fK3ueqqq6666qr/PARXXXXVVVddddVVV1111VX/RSLiwZL4r2Cb/0i2eSDb2OaBbHM/29zPNgClFCKCiCAiAJim6Vauuuqqq6666j8PwVVXXXXVVVddddVVV1111X+BzHywJB5IEi+IJP4tbPPcbPPC2OZ+trnlllsAuP3227HN/Wzz3GxjG9v8SyKCiEASkpDEVVddddVVV/0no3LVVVddddVVV1111VVXXfVfIDMfLAlJSEIS/xPY5j+abQBscz/blFKICCICgP39/d/mqquuuuqqq/5zEVx11VVXXXXVVVddddVVV/0XsP1gSTw/kpDEv4Zt/jVs89xs80C2Abj55psBuO222wCwzf1s88LY5oFsYxuAUgqlFCICSazX61u56qqrrrrqqv9cVK666qqrrrrqqquuuuqqq/4LlFKQhCQeSBL/VWwjCQDb/Ets8/zY5vmxzf1s80C2KaUQEUgC4Ojo6Fauuuqqq6666j8XwVVXXXXVVVddddVVV1111X+NB/FMkvivYJvnZhvbPDfb3O/YsWMAXLp0ifvZ5oFsYxvb2MY2z802ALYBiAgigohAEkdHR8/gqquuuuqqq/5zEVx11VVXXXXVVVddddVVV/0XiIgHS+J+kpDEA0ni38I2/1GOHTsGwKVLlwCwzf1s86Kwzf1sAxAR1FoppRARSOLo6Oi3ueqqq6666qr/XFSuuuqqq6666qqrrrrqqqv+C0QEkpDE/zS2ud/NN98MwG233cbzY5sXxjYAtnmgWiulFCICSUhCElddddVVV131n4zgqquuuuqqq6666qqrrrrqv0Ap5bV5Jkm8MJL497DN/Wzz72WbF4VtHsg2ALbpuo5SChFBRAAwjuOtXHXVVVddddV/LoKrrrrqqquuuuqqq6666qr/ApKQhCT+s9jmX8s297PNzs4OAJcuXcI2z49tbPNAtrmfbe5nG4BaK6UUSilI4tKlS7/DVVddddVVV/3no3LVVVddddVVV1111VVXXfVfoJTyYB5AEv9VbCOJ52ab53bs2DEALl26xAPZ5rnZxja2+ZfUWqm1EhHYZrVa3cpVV1111VVX/ecjuOqqq6666qqrrrrqqquu+i8iCUlI4n6SkMR/Nds8kG0AbrnlFgAuXbrEc7PNv8Q2ALaxjW1sU2ullEIpBUlcddVVV1111X8RKlddddVVV1111VVXXXXVVf/JMvPBknhukvi3sI0k/jVs869x6dIlAGzzorLNC9J1HbVWIgLbXLx48be56qqrrrrqqv98BFddddVVV1111VVXXXXVVf/JMvPBkpDEfxXbvKhsc79jx44BsLu7y/Njm+fHNvezzXOrtVJKoZSCJI6Ojm7lqquuuuqqq/7zUbnqqquuuuqqq6666qqrrvrP92BJAEji+ZEEgCT+NWwjif8Ix44dA+DSpUs8kG0eyDa2sY1tbPPcbGMb2/R9T9d11FqRhCSWy+WtXHXVVVddddV/PipXXXXVVVddddVVV1111VX/ySKCB5KEJP4nsM39dnZ2ALh06RIAtrmfbV4Utnlus9mMrusopSAJSUzTdCtXXXXVVVdd9Z+P4Kqrrrrqqquuuuqqq6666j+ZpAdJQhL/2WxzP9v8axw7dgyAS5cu8W9hGwDbPNBsNqPrOmqtRASr1epWrrrqqquuuuq/BsFVV1111VVXXXXVVVddddV/soh4sCQAJPGfwTb/WrZ5oGPHjgGwu7vL/WxzP9u8ILZ5INvYxjZ939N1HbVWIoJz5879NlddddVVV131X4PKVVddddVVV1111VVXXXXVf7KIeDCAJP6r2UYSz802D2SbY8eOAXDp0iVs8/zYxjYPZJv72ea5zWYzuq6jlIJtrrrqqquuuuq/EMFVV1111VVXXXXVVVddddV/soh4sCTuJwkASUjiP5ttHsg2z8+xY8d4fmzz3GxjG9u8MLaZzWZ0XUetlYjg3Llzv8NVV1111VVX/degctVVV1111VVXXXXVVVdd9Z9MEgCSkMR/NttI4oFs84LYBuDYsWMA3HbbbQDY5l/DNgC2sY1tAPq+p+s6SilI4vDwkKuuuuqqq676L0Llqquuuuqqq6666qqrrrrqP1kp5cGSeCBJ3E8SAJL473Ts2DEAdnd3eW62eWFs8/x0XcdsNqPrOkopRAR7e3u/zVVXXXXVVVf916By1VVXXXXVVVddddVVV131nygzHwQgif+JbPPC2OZ+tnl+bHM/2zzQ5uYms9mMvu8BiAgigquuuuqqq676L0Llqquuuuqqq6666qqrrrrqP5HtB0sCQBL/kWwjif8It9xyCwC33XYbL4xtbGMb29jmudnGNrbZ2NhgNpvRdR2ZSUQwDMOtXHXVVVddddV/DYKrrrrqqquuuuqqq6666qr/RJn5YEncTxKS+M9gm/vZ5l9im/vt7OwAsLu7C4Bt7mebF4VtntvGxgaz2Yyu6yilcPfdd/82V1111VVXXfVfh8pVV1111VVXXXXVVVddddV/IklIQhL/EWwjiQeyjST+NWzzH8k2ALZ5oMViwWw2o+s6bLO3t3crV1111VVXXfVfh+Cqq6666qqrrrrqqquuuuo/kaQH80yS+K9km+fHNg9kmwc96EEA3HbbbdzPNvezzQtimweyjW1ss7GxwWw2o+s6IoL9/f1bueqqq6666qr/OgRXXXXVVVddddVVV1111VX/iUopD5aEJB5IEpL4z2abB7LNv8Q2z49tbPNAtrmfbZ7bYrFgNptRayUiuOOOO57BVVddddVVV/3XoXLVVVddddVVV1111VVXXfWfSBKSuJ8knh9J/EewjSQeyDYviG0AbrnlFgCe8Yxn8EC2eW62sY1tXhjbLBYLZrMZXddRSuHw8PBWrrrqqquuuuq/DpWrrrrqqquuuuqqq6666qr/RBHxYJ5JEgCSuJ8k/ieyzb+GbQBsYxvbHDt2jMViQd/3lFIAaK3dylVXXXXVVVf916Fy1VVXXXXVVVddddVVV131nygiHiwJSfxPY5v7HTt2DIDd3V2em21eGNs8Pzs7OywWC/q+ByAiGIbhVq666qqrrrrqvw6Vq6666qqrrrrqqquuuuqq/0SllAfzP9yxY8cAuHTpEi+IbZ4f29zPNg907Ngx5vM5fd+Tmezt7d3KVVddddVVV/3XIrjqqquuuuqqq6666qqrrvpPJglJAEjiP4JtHsg297PNv8Q297vlllsAeMYznsED2eaBbGOb+9nmudnGNrbZ2tpisVjQ9z2lFJ7ylKf8NlddddVVV131X4vKVVddddVVV1111VVXXXXVf5LMfHBEcD9J/EezjST+NWzzwtjmfrZ5braxzQPZ5rltbm4yn8/p+57MxDZXXXXVVVdd9V+M4Kqrrrrqqquuuuqqq6666j9JZj4YQBL/1Wzzojp27BgAu7u7/FvYBsA297PN5uYm8/mcWiulFG699dbf4aqrrrrqqqv+axFcddVVV1111VVXXXXVVVf9J7H9YEkASOJ+kpDE/STxorDNv5dtHsg2x44dA+DSpUvczzb3s82Lyja2Adjc3GQ2m9F1HZI4d+4cV1111VVXXfVfjMpVV1111VVXXXXVVVddddV/kohAEv9dbAMgCdu8IMeOHQPg0qVL2Ob5sc1zs41tAGzzQLPZjI2NDWazGbVWJHHu3Lnf5qqrrrrqqqv+axFcddVVV1111VVXXXXVVVf9J5H0IABJAEjigSTxH8k2z49tnh/bABw/fhyA3d1dHsg2D2Qb29jGNi/MqVOn2NjYoO97aq1IYpqmW7nqqquuuuqq/1pUrrrqqquuuuqqq6666qqr/pNExIMlASAJAEn8T3Ps2DEALl26BIBt/jVsA2Ab29jm+PHjLBYLuq6jlEJEcNVVV1111VX/DahcddVVV1111VVXXXXVVVf9J4kIJCGJ/2lsA3Ds2DEALl26hG2em23+LXZ2dpjP5/R9jyQe97jH/TZXXXXVVVdd9V+P4Kqrrrrqqquuuuqqq6666j9JRLw2/wVscz/b/Etsc79jx44BsLu7ywtimxfENgC2eaCtrS3m8zm1ViKCu+6661auuuqqq6666r8ewVVXXXXVVVddddVVV1111X8SSTyQJP6nOXbsGACXLl3igWzzQLaxzf1sY5sHso1tbLO1tcVsNqPWSkTwtKc97Vauuuqqq6666r8ewVVXXXXVVVddddVVV1111X+SUsqDJSEJSTw/kvjXsg2AbZ4f27wgtnmgY8eOAbC7uwuAbe5nm+dmG9s8kG2e28bGBrPZjForknja0572DK666qqrrrrqvx7BVVddddVVV1111VVXXXXVf4IP//AP/y5eAEn8d7DNA9nm+PHjAOzu7vJvYRsA29zPNhsbG/R9TykFSdx3332/zVVXXXXVVVf91yO46qqrrrrqqquuuuqqq676T3D69OnXloQkJHE/SQBI4j+TbR7INs/PsWPHeG62uZ9tXlS2sc2xY8dYLBbUWimlACCJq6666qqrrvpvQOWqq6666qqrrrrqqquuuuo/wd133/1gSdxPEv+ZbCOJB7LNC2IbgGPHjgFw2223YZvnxzbPj20AbPNAx48fZ7FY0HUdEQHAMAy3ctVVV1111VX/9Qiuuuqqq6666qqrrrrqqqv+g73O67zOe0tCEpK4nyT+rWzzn+H48eMA7O7u8kC2eSDb2MY2trHNC7Kzs8NsNqPWiiT+8i//8ne46qqrrrrqqv8eVK666qqrrrrqqquuuuqqq/6DnTlz5kFnz57lfpL4n8Q2L4ht/jVsA2Ab29hma2uL2WxGrZWI4K677rqVq6666qqrrvrvQXDVVVddddVVV1111VVXXfUf7OzZs88opSAJSfxrSOLfyjb/Gg960IMAeMYznoFtnptt/i02Njbo+55SCpKYpomrrrrqqquu+m9CcNVVV1111VVXXXXVVVdd9R/szJkzD5KEJF4YSfx72eZfwzb3O3bsGAC7u7u8ILZ5QWwDYJv72WaxWND3PREBwF/+5V/+NlddddVVV13134Pgqquuuuqqq6666qqrrrrqP9jZs2ef8WIv9mI8kCT+JZL4z2SbB7LN82ObB7LNA9nGNg9kG9sALBYLuq4jIpDE7bffzlVXXXXVVVf9NyG46qqrrrrqqquuuuqqq676D3bffffdes011yAJSUjifpL4z2SbF9WDHvQgAJ7xjGcAYJv72eaBbGMb2zyQbR6olMJ8PqfWSkRgmzvuuOO3ueqqq6666qr/HgRXXXXVVVddddVVV1111VX/wc6ePXvrmTNnePSjH80DSQJAEv9WtgGwzQtim+dmmweyzX8U29xve3ub2WxGrRVJAIzjeCtXXXXVVVdd9d+D4Kqrrrrqqquuuuqqq6666j/Yfffdd+tv/dZvfferv/qrI4kXhST+I9nGNraxzfPzoAc9CIBnPOMZ3M8297PNC2Ob+9nGNltbW8xmM2qtSOKOO+64lauuuuqqq67670Nw1VVXXXXVVVddddVVV131n+C3fuu3vudRj3oUAJL4z2Sbfw3bPDfbPD+2eX5sA2CbB9rY2KDWSimFiGBra+vB11xzzYO56qqrrrrqqv8eBFddddVVV1111VVXXXXVVf8Jzp49e2tm3voWb/EWAEjif5rjx48DsLu7ywPZ5oFsYxsA29jmBZnP5/R9TykFgNYa11xzzYO56qqrrrrqqv8eBFddddVVV1111VVXXXXVVf8J7rvvvlu//uu//n1e5VVehVOnTvHcJPGiss1/FNsAHD9+HIBLly5xP9u8MLZ5INsA2MY2tpnNZnRdR0QAcNddd3HVVVddddVV/40Irrrqqquuuuqqq6666qqr/pOcPXv21rvvvvu33+M93oP/bLb517jlllsAuPXWW7HNc7PNv0Xf93RdR0Qgifvuu4+rrrrqqquu+m9EcNVVV1111VVXXXXVVVdd9Z/kvvvuu/VHf/RHP/vYsWO3vsmbvAkviCT+K9jmX8M2L4htAGxzP9vMZjNqrUgC4NixY9x33323ctVVV1111VX/PQiuuuqqq6666qqrrrrqqqv+E/3DP/zD7/zWb/3Wd7/Jm7wJb/zGb4wk/qPY5oFs84LY5oGOHTsGwO7uLg9kmweyzXOzzQPZxjZ939N1HRFBRGCb48ePc999993KVVddddVVV/33oHLVVVddddVVV1111VVXXfWf7Ld/+7e/55prrnnwK77iK763JH7t136N/0q2eW7Hjx8HYHd3FwDbvCC2sY1tbHM/2zzQYrGg73tqrQDs7u7yD//wD7/NVVddddVVV/33Ibjqqquuuuqqq6666qqrrvpPdt999936oz/6o59z9913//YrvMIr8IZv+Ib8e9jmBbHNA9nmudnm+PHjAFy6dInnZpt/i9lsRimFUgoRwaVLl7jvvvtu5aqrrrrqqqv++xBcddVVV1111VVXXXXVVVf9F7jvvvtu/fqv//r3mabp1ld4hVfgDd7gDfjXss2Lwja2sc0LcuzYMQB2d3e5n23uZ5sXxjYAtrGNbfq+p+s6Sims12uWyyU/+qM/+jlcddVVV1111X8fgquuuuqqq6666qqrrrrqqv8i9913362f9Vmf9Tp33nnnb7/BG7wBH/RBH4Qk/j1s869hG4Djx48DsLu7i22eH9s8P7Z5frquo9aKJC5evMhv/dZvffd99913K1ddddVVV13134dy/Phxrrrqqquuuuqqq6666qqr/qscHh7u/sM//MNvHx4e7r7Ga7zGa7/cy70ci8WCpz/96UhCEgCSkIQkACQBIAkASdxPEv8ax48f55Ve6ZXY3d3lT/7kT3gg2zyQbe5nG9vczzYAtslMrrnmGm6++WZuuukmpmniS7/0S9/m8PBwl6uuuuqqq67670M5fvw4V1111VVXXXXVVVddddVV/5WOjo4u/cM//MPvALz8y7/8az/0oQ/lxIkT3H333azXawAkIQlJAEgCQBIAkrifJF4UtgG49tpreamXeinuuece/uZv/oZ/iW1s80C2AbCNbWxz7bXX8tjHPpaTJ0/ymZ/5ma9z6623/jVXXXXVVVdd9d+L4Kqrrrrqqquuuuqqq6666r/Jj/7oj37Oh3zIhzzkH/7hH377ZV/2ZXm/93s/Xud1Xof/bMePHwfg0qVL2AbANvezzb/FYx/7WB7xiEfwIz/yI5/9D//wD7/NVVddddVVV/33oxw/fpyrrrrqqquuuuqqq6666qr/LoeHh7v/8A//8DuHh4e7L//yL//aD3nIQ3jZl31Z5vM5t956K5IAkASAJAAk8UCSeGFsc79HPepRPPjBD+aJT3wit956K8+PbV4Q2wDYBsA27/7u787DH/7wW//0T//0p7/ru77rY7jqqquuuuqq/xkox48f56qrrrrqqquuuuqqq6666r/T4eHh7j/8wz/8zm//9m9/z+Hh4e7Lv/zLv/ZDHvIQXuZlXobZbMalS5dYr9cASOJ+krifJF4Q2zzQS73US3HdddfxN3/zN9xzzz3czzYPZJvnZpv72eZhD3sYH/7hH87Ozs6tv/Vbv/Xd3/Vd3/UxXHXVVVddddX/HJTjx49z1VVXXXXVVVddddVVV131P8Hh4eHuP/zDP/zOb//2b3/P4eHh7su//Mu/9kMe8hAe/ehHc91117FYLLj33nu5nyQeSBIvild8xVfk+PHjPPGJT+See+7BNi+IbWxjG9vc76EPfSgf+qEfymu+5muyv79/69d//de/z2//9m9/D1ddddVVV131Pwt60IMexFVXXXXVVVddddVVV1111f9EZ86cedDrvM7rvPc7vdM7ffZ999136zXXXPPg3d1dnvGMZ/DXf/3X3HbbbTw3SdzPNs/NNh/5kR/J8ePH+Zqv+Rp2d3exDYBtbANgG9vYxja2OX78OC/7si/LG7zBG3C/H/mRH/nsH/3RH/0crrrqqquuuup/JvSgBz2Iq6666qqrrrrqqquuuuqq/8muueaaB7/2a7/2e734i7/4a7/Yi73Ya/NMu7u7XLp0iWc84xnceuutPOMZz+BfYpvP/MzPBOBzPudzALCNbQBsYxuAY8eOcfz4cR7ykIfweq/3etzvvvvuu/VHf/RHP+e3fuu3vpurrrrqqquu+p8NPehBD+Kqq6666qqrrrrqqquuuup/izNnzjzodV7ndd77xV/8xV/7xV7sxV6bB9jd3QXgGc94Bru7u1y6dInd3V0uXbrE7u4utgH4zM/8TAA+53M+B9scP34c2zz4wQ/m+PHj2OYhD3kID3nIQ3ig++6779bf+q3f+u4f/dEf/Ryuuuqqq6666n8H9KAHPYirrrrqqquuuuqqq6666qr/ja655poHv9iLvdhrv9iLvdhrXXPNNQ9+sRd7sdfmP9h9991362/91m9992/91m9999mzZ5/BVVddddVVV/3vgh70oAdx1VVXXXXVVVddddVVV131f8E111zzYIAXe7EXe+0Xe7EXey2Aa6655sEAL/ZiL/ba9913363XXHPNg3ku9913360AZ8+evfXv//7vfxvgH/7hH37nH/7hH36bq6666qqrrvrfDT3oQQ/iqquuuuqqq6666qqrrrrqqquuuuqqq676P4nKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9X8Y+DV9XPfQsCXwAAAABJRU5ErkJggg==) ```kcl // Translate and rotate a sketch to create a loft. diff --git a/docs/kcl-std/functions/std-transform-scale.md b/docs/kcl-std/functions/std-transform-scale.md index 4a954a41e..aa6e369be 100644 --- a/docs/kcl-std/functions/std-transform-scale.md +++ b/docs/kcl-std/functions/std-transform-scale.md @@ -71,7 +71,7 @@ sweepSketch = startSketchOn(XY) ``` -![Rendered example of scale 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADUbElEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV/0nu+aaax585syZBwNcc801Dz5z5syDeKZrrrnmwTzTNddc82Cey5kzZx589uzZW8+cOfNg/hXOnj17Kw9w33333coz3XfffbeePXv2GQD33XffrQBnz5699b777ruVq6666qqrrrrqqquu+r8FPehBD+Kqq6666qqrrrrqP8qLvdiLvfbrvM7rvNc111zz4DNnzjz4mmuueTD/gvvuu4/73Xfffdzv7Nmz/FucOXOGB7rmmmu45ppreGHuu+++W3mmr//6r3+ff/iHf/htrrrqqquuuuqqq6666n8/9KAHPYirrrrqqquuuuqq/wjv+I7v+Fnv9E7v9Nn33Xcfv/Vbv8Xf//3f8w//8A+82Iu9GB/xER/BNddcw/NzdHSEJFarFRFBZtL3PbPZjNlsRt/3zGYzJGGb1hrDMLBcLjk6OmK5XALQWqO1xmw2wzYbGxtsbm7ygvzWb/0Wv/mbv8k111zDNddcwzXXXMOZM2eQ9Ntf//Vf/z733XffrVx11VVXXXXVVVddddX/blSuuuqqq6666qqr/oP9wz/8Ay/+4i/OO73TOwFw3333cc011/CCbGxsALBYLAAYhoGIoJRCZjIMA+M4cj/b2CYiWCwWbG1t8W/xYi/2YrzYi70YZ8+e5e///u95ndd5HQAuXrz42q/92q/9Xj/6oz/6OVx11VVXXXXVVVddddX/bpTjx49z1VVXXXXVVVdd9R/h7Nmzz3jCE57w0ddddx3XXXcdEcFsNmNzc5N/jVIKEYEkAGyTmWQmmYltbAMQEfxbHB0d0XUd4ziSmWxtbXHnnXfyB3/wBwBcuHDht//hH/7hd7jqqquuuuqqq6666qr/3ahcddVVV1111VVX/Qe57777bh3HkQsXLvDHf/zHzOdzZrMZJ0+epJRCrZWdnR1KKWxvbxMRlFLY3NxkGAa2trYopdB1HV3XsVgs6PueruuotVJKoZSCJLquwzaZSWuNcRxZr9es12uOjo5Yr9es12sODg6Ypolpmjg4OODg4IBpmmit0VpjmiamaWKaJtbrNcvlkoc97GFcddVVV1111VVXXXXV/xFUrrrqqquuuuqqq/4D2cY297PN3t4eXddRa2W5XFJr5fz589RaKaXQdR1d19F1HfP5nPl8zubmJtvb22xvbzObzdjY2GCxWND3PbVWJGGb1hrr9ZrDw0OGYWAYBo6Ojjg4OGC5XLJarRiGgXEcGceRF0YSkrh48SJXXXXVVVddddVVV131fwTBVVddddVVV1111X+g1tqttvnXsg2Abe5nmxeVJCQBIAlJPDdJAEjifpKQxANJ4qqrrrrqqquuuuqqq/6PoHLVVVddddVVV131HygzAbCNbe5nG9sA2AbANgC2eW62AbCNbWxjmweSBIAk7ieJfy9JXHXVVVddddVVV1111f8RBFddddVVV1111VX/gWqt2ObfwzYAtnl+bHM/SQBIQhIAkpCEJCTx/Eji+ZEEwDXXXPNgrrrqqquuuuqqq6666n8/gquuuuqqq6666qr/QKvV6lbb2AbANi8q29gGwDYAtrGNbQBs89wkIQkASfx7SeKqq6666qqrrrrqqqv+j6By1VVXXXXVVVdd9R/MNgC2AbDNv4Vt/jUkIQlJPJAknh9J3E8SkpDEVVddddVVV1111VVX/R9CcNVVV1111VVXXfUfKCKwjW1eGNs8kG3uZxvbANjGNraxzXOTBIAkJHE/SUjifpIAkMS/5NKlS1x11VVXXXXVVVddddX/EVSuuuqqq6666qqr/gON43irbV4Q27wwtrmfbQBs88JI4n6SkMT9JPFvcc011zyYq6666qqrrrrqqquu+t+PylVXXXXVVVddddV/INvYxja2sQ2AbZ4f29jmgWxzP9sA2Oa5SeJ+kpDE/STx3CTx/Ejiqquuuuqqq6666qqr/o+ictVVV1111VVXXfUfKDNv5QWwzQtjm/vZxja2sQ2AbWzz3CRxP0lIAkASAJJ4IEncTxL3k4QkJHHVVVddddVVV1111VX/R1C56qqrrrrqqquu+g9km8zENvezzQPZBsA2LyrbPD+SAJCEJCQBIIl/q0uXLnHVVVddddVVV1111VX/R1C56qqrrrrqqquu+g+UmdgGwDYvKtsA2MY2trGNbWwDYJsXRhIAkrifJAAk8UCSeCBJ3E8SV1111VVXXXXVVVdd9X8Elauuuuqqq6666qr/QLafYRvbANjmP4JtXhBJSAJAEgCSkMS/1ZkzZx7MVVddddVVV1111VVX/e9H5aqrrrrqqquuuuo/kG1s829hm/vZxja2sc39bPOCSAJAEi+IJO4niecmiauuuuqqq6666qqrrvo/hMpVV1111VVXXXXVf6CIuNU2trENgG1sA2AbANvczzYPZJsHso1tbANgm+cmCQBJPJAkJAEgiRdGEgCSuOqqq6666qqrrrrqqv8jqFx11VVXXXXVVVf9B8pMbGMbANvczzbPzTYPZJv72cY2L4wkJAEgCUlIQhKSeFFI4oH29va46qqrrrrqqquuuuqq/yOoXHXVVVddddVVV/0Hy0wAbPNvZRsA29jGNrZ5UUjiuUniRWWbq6666qqrrrrqqquu+j+CylVXXXXVVVddddV/oIi41Ta2+dewzf1sA2Cb52ab50cSkpAEgCReEEncTxIAkgCQhCSuuuqqq6666qqrrrrq/wgqV1111VVXXXXVVf/BMpMXxjYAtnkg29gGwDa2sY1tbPOCSOKBJAEgCUlI4l/rmmuueTBXXXXVVVddddVVV131vx+Vq6666qqrrrrqqv9gmYltbGMb29jm38o2ALZ5QSQhCUkASOKFkcQLIomrrrrqqquuuuqqq676P4LKVVddddVVV1111X+giLgVwDb/VraxjW1sA2AbANvY5oWRBIAkHkgSknhBJCEJSVx11VVXXXXVVVddddX/EVSuuuqqq6666qqr/oPZxja2eSDb2Oa52eaFsQ2AbV4YSUgCQBIAknhBJPH87O3tcdVVV1111VVXXXXVVf9HULnqqquuuuqqq676D9Z1HfezzfNjGwDbANjGNra5n21sA2Cb50cSkpDE/STxQJKQxAsiiauuuuqqq6666qqrrvo/iuCqq6666qqrrrrqP9hyubzVNvezzb+GbWwDYBvbANjGNi+IJCRxP0n8e1xzzTUP5qqrrrrqqquuuuqqq/53o3LVVVddddVVV131H6yUgm1scz/b/HvY5oWRxP0kIQkASbwwkgCQxP0kcdVVV1111VVXXXXVVf9HEFx11VVXXXXVVVf9B1utVrfaBsA2z802ALZ5QWxjG9vYxja2AbCNbZ6bJCTxL5HE8yMJSQCcPXuWq6666qqrrrrqqquu+j+AylVXXXXVVVddddV/AtvY5l/LNrZ5INvczzb/EklIQhL/FpKQxFVXXXXVVVddddVVV/0fQHDVVVddddVVV131H0wSD2QbANvY5gWxzQPZxjYAtrHN8yMJSUhCEs9NEpKQxP0k8cJI4syZMw/mqquuuuqqq6666qqr/nejctVVV1111VVXXfUfbJqmW21jG9v8S2xjmweyzf1s868hCUlIQhIPJImrrrrqqquuuuqqq676f4TKVVddddVVV1111X8C2zyQbR7INgC2eW62AbCNbWxjG9vYxjbPjyQk8e8hCUlcddVVV1111VVXXXXV/xFUrrrqqquuuuqqq/6DtdZuzUxs869lGwDbPJBtXlSSeFFIAkASz+3cuXNcddVVV1111VVXXXXV/wFUrrrqqquuuuqqq/6D2eZ+trHNv4VtbGMbANvY5vmRBIAkACQhCUlI4l8iCUncr5TCVVddddVVV1111VVX/R9A5aqrrrrqqquuuuo/WGaSmdjmgWwDYBsA2zyQbQBscz/bANjmfraxzXOTBIAknpskXlSSkMRVV1111VVXXXXVVVf9H0Bw1VVXXXXVVVdd9R/M9jNs80C2+dewjW0AbANgG9u8MJIAkMRzkwSAJO4niQeSxP2uueaaB3PVVVddddVVV1111VX/u1G56qqrrrrqqquu+g9mG9vYxja2uZ9tnpttbANgmweyjW1s84JI4oEkASAJSVx11VVXXXXVVVddddX/Y1Suuuqqq6666qqr/oNFxK22sc2/h23uZxvbANjmuUlCEpIAkMT9JHE/SfxLJHHhwgWuuuqqq6666qqrrrrq/wAqV1111VVXXXXVVf/BMhPbANjm+bENgG2em21sA2Ab2wDYxjb/ESTxwkQEV1111VVXXXXVVVdd9X8AwVVXXXXVVVddddV/gszENvezjW1eGNs8kG3uZ5sHso1tnpskJCEJSfxrSOJ+kjhz5syDuOqqq6666qqrrrrqqv/dqFx11VVXXXXVVVf9B4uIW21jG9vY5kVlGwDbANjGNraxjW1s8/xI4rlJAkASL4gkJAEgiauuuuqqq6666qqrrvo/hMpVV1111VVXXXXVf4LM5PmxjW1eGNsA2AbANv8akgCQxANJ4oEk8fxI4qqrrrrqqquuuuqqq/6PoHLVVVddddVVV131nyAzsc0LYxsA29jm+bENgG1sY5vnRxIAkgCQxP0k8a+1u7vLVVddddVVV1111VVX/R9A5aqrrrrqqquuuuo/WETcCmAb29jmX8s2tgGwDYBtAGxjm+cmCQBJvDCS+JdI4qqrrrrqqquuuuqqq/4PoHLVVVddddVVV131n8A2D2Qb27wwtrGNbe5nGwDbANjmhZEEgCQkIYkXRhLPTRJXXXXVVVddddVVV131fwTBVVddddVVV1111X+C1tqttrHN82MbANu8MLaxjW1sA2AbANs8P5J4bpIAkMQLIglJAEjimmuueTBXXXXVVVddddVVV131vxuVq6666qqrrrrqqv8EtrENgG3+tWxjGwDb3M82ALZ5bpJ4fiRx1VVXXXXVVVddddVV/08RXHXVVVddddVVV/0nKKVgG9s8kG1s89xs8/zYBsA2tnlutnkgSQBIQhKS+NeSxKVLl7jqqquuuuqqq6666qr/Awiuuuqqq6666qqr/hOsVqtbeQDbPDfbPD+2AbANgG1sYxvb2OaFkcTzI4n7SeKBJHHVVVddddVVV1111VX/B1G56qqrrrrqqquu+k+SmQDYBsA2z49tAGxjGwDbANjGNvezDYBtHkgSDySJF5Uknpskrrnmmgdz1VVXXXXVVVddddVV/7sRXHXVVVddddVVV/0niAgAbPNvZZv72cY2ALYBsM1zk4QkACQhCUk8P5J4bpKQxFVXXXXVVVddddVVV/0fQeWqq6666qqrrrrqP8E4jrfaxjYAtnkg27wwtgGwjW1sA2CbF0QSL4gk/jUkcdVVV1111VVXXXXVVf8HULnqqquuuuqqq676T5CZ2AbANvezzQPZ5rnZ5vmxDYBtbPPCSOL5kYQknh9J3O/SpUtcddVVV1111VVXXXXV/wFUrrrqqquuuuqqq/4T2L7VNra5n20AbPOC2OZ+trGNbWxjG9u8MJKQBIAk/iWSuOqqq6666qqrrrrqqv/DqFx11VVXXXXVVVf9J7CNbV5UtrHN/WxzP9vYBsA2tgGwjW1eGElIAkASLypJnDlz5sFcddVVV1111VVXXXXV/25Urrrqqquuuuqqq/4TZCa2sY1tbPPcbANgmweyDYBtbHM/29zPNi+MJP6tJHHVVVddddVVV1111VX/R1C56qqrrrrqqquu+k9g+xmZyX8E29jGNraxzQsjCQBJ3E8SL4wkACQBIImrrrrqqquuuuqqq676P4DKVVddddVVV1111X8C29jGNrYBsI1tXhjbANjGNrYBsM0D2cY2DyQJSQBIAkASz48kXpi9vT2uuuqqq6666qqrrrrq/wAqV1111VVXXXXVVf8JIuJW29zPNvezjW0AbPMvsQ2AbWxjmweyzb+HJB5IEra56qqrrrrqqquuuuqq/wOoXHXVVVddddVVV/0nyExsY5sXlW0AbHM/29jGNraxDYBtAGzz3CQBIAkASbwoJHE/SVx11VVXXXXVVVddddX/AVSuuuqqq6666qqr/pNkJraxzb/ENg9kG9vczza2AbANgG1eEEk8P5K4nyRemGuuuebBXHXVVVddddVVV1111f9uVK666qqrrrrqqqv+E0TErbZ5YWwDYJsXxDa2uZ9tXhhJPJAkACQhCQBJ/EskcdVVV1111VVXXXXVVf8HULnqqquuuuqqq676T5KZ2MY2trGNbV4Y29zPNvezjW1sYxvbvCCSAJDEv5YkJLG/v89VV1111VVXXXXVVVf9H0Bw1VVXXXXVVVdd9Z/ENrb517KNbQBsYxvb2AbANgC2sc3zI4n7SeIFkcTzY5urrrrqqquuuuqqq676P4Dgqquuuuqqq6666j9BRNxqG9vY5oFsYxsA2/xr2AbANv+ZJAFwzTXXPJirrrrqqquuuuqqq67634vKVVddddVVV1111X8S29zPNrZ5QWxjmweyjW1sYxvb2MY2D2SbF0QSLwpJXHXVVVddddVVV1111f9BBFddddVVV1111VX/SVprt9rmgWzzwtgGwDb3s41tbHM/29jm+ZEEgCT+rSRx1VVXXXXVVVddddVV/wcQXHXVVVddddVVV/0nyUxsY5vnxzbPj20AbGObB7KNbe5nGwDbAEgCQBIPJIkHksRzkwSAJADOnj3LVVddddVVV1111VVX/S9H5aqrrrrqqquuuuo/Sa2V+9nmBbHNC2Mb29jGNraxjW1eFJIAkIQknpsk7icJAElEBFddddVVV1111VVXXfW/HMFVV1111VVXXXXVf5LVanWrbWwDYBsA29jmRWGb+9nm+bHN8yMJSfxb2AbgzJkzD+aqq6666qqrrrrqqqv+9yK46qqrrrrqqquu+k9kGwDb/Etscz/b2AbANrYBsI1tbGMb2zw/kvj3kMRVV1111VVXXXXVVVf9H0Dlqquuuuqqq6666j9JRGAb29zPNg9kGwDbANjGNvezDYBtbGMb29jmBZHECyMJAElcddVVV1111VVXXXXV/3FUrrrqqquuuuqqq/6TjON4q23+vWwDYJsHss1/BklI4vz581x11VVXXXXVVVddddX/clSuuuqqq6666qqr/pPYxja2sY1tHsg2L4htbANgG9vYxja2sQ2AbV4QSUhCEpL41yqlcNVVV1111VVXXXXVVf/LEVx11VVXXXXVVVf9J8nMW21jmweyjW3uZ5sXxDYAtgGwjW2em20eSBL/Ea655poHc9VVV1111VVXXXXVVf97EVx11VVXXXXVVVf9J7GNbR7INi+IbQBsA2AbANsA2OZ+trGNbf49JAEgCQBJAEjiqquuuuqqq6666qqr/g+gctVVV1111VVXXfWfJDOxjW1sY5vnZpsHss0D2QbANraxjW3+LSTxwkjigSRx1VVXXXXVVVddddVV/8tRueqqq6666qqrrvpPYvsZtnlR2OaBbHM/29gGwDa2sY1tAGzzQJIAkIQkHkgS/xJJAFy4cIGrrrrqqquuuuqqq676X47gqquuuuqqq6666j+JbWxjG9vczzYvCtvY5n62sQ2AbWxjm3+JJJ6bJP4lEcFVV1111VVXXXXVVVf9L0flqquuuuqqq6666j9JRNyamTyQbe5nm+fHNg9kG9vYBsA2z802DySJB5LECyKJ5yYJgDNnzjyIq6666qqrrrrqqquu+t+LylVXXXXVVVddddV/kszENrYBsM39bHM/2zw32wDY5oFsYxvb2MY2trnqqquuuuqqq6666qqrni8qV1111VVXXXXVVf+JMhPb2OZfYhvb3M82ALaxjW1sA2Cb52abB5LE8yOJF4Ukrrrqqquuuuqqq6666n85KlddddVVV1111VX/SSLiVtu8MLZ5UdjGNraxDYBtbGObF0QS/xqSAJDE7u4uV1111VVXXXXVVVdd9b8clauuuuqqq6666qr/RJmJbWxjG9vY5rnZ5n62uZ9tbPNAtrHNA9nmBZEEgCReFJK46qqrrrrqqquuuuqq/yOoXHXVVVddddVVV/0nykz+LWxjm/vZxja2uZ9tbPNvJYkXRhLXXHPNg7nqqquuuuqqq6666qr/vahcddVVV1111VVX/SeJiFsBbGObB7KNbQBscz/bPJBtbGMb29jGNra5n22emyQeSBL/EkncTxJXXXXVVVddddVVV131fwDBVVddddVVV1111X8i29gGwDa2eUFs88LYBsA2trGNbQBs89wk8dwk8fxI4rlJ4qqrrrrqqquuuuqqq/6XI7jqqquuuuqqq676T9R1HbZ5INu8MLaxjW1sYxvbANjGNraxDYBtAGwDIIn7SeKFkcQLsru7y1VXXXXVVVddddVVV/0vR3DVVVddddVVV131n+jo6OhW29jm+bENgG3+JbaxzQPZ5j+aJAAkcdVVV1111VVXXXXVVf/LUbnqqquuuuqqq676T1Rr5X62uZ9tXlS2sY1tbGMb29jmfrZ5QSTxryUJgGuuuebBXHXVVVddddVVV1111f9eBFddddVVV1111VX/iVar1a22sQ2Abe5nm+dmm/vZxjbPzTa2AbCNbf6jSOKqq6666qqrrrrqqqv+D6Fy1VVXXXXVVVdd9Z/MNgC2AbDNA9kGwDYAtrHN/WxjG9vYxjYAtnkg27wwkrifJP4le3t7XHXVVVddddVVV1111f9yVK666qqrrrrqqqv+E0UEtrHNv4VtAGxjG9sA2MY2trHN8yMJSQBI4n6SeCBJXHXVVVddddVVV1111f9RVK666qqrrrrqqqv+E43jeKttXhDbvCC2AbDN/WxjG9sA2OaBbHPVVVddddVVV1111VVXPQvBVVddddVVV1111X+izATANraxDYBtHsg2D2SbB7KNbQBsA2AbANs8kG0k8e8hCUmcOXPmwVx11VVXXXXVVVddddX/XlSuuuqqq6666qqr/hPZvjUzsc39bANgm+dmmweyjW0AbGMb29jGNrYBsI1tnh9J/GtIAkASV1111VVXXXXVVVdd9b8cwVVXXXXVVVddddV/ItvY5l/DNgC2uZ9tAGwDYJv72eZFJYkXRBJXXXXVVVddddVVV131fwyVq6666qqrrrrqqv9EmYltbGMb2zw32wDY5rnZxja2sY1tbGMb29gGwDb/0fb29rjqqquuuuqqq6666qr/5Qiuuuqqq6666qqr/hPZfoZt/rVs89xsA2AbANsA2AbANrZ5UUnifpJ4IElcddVVV1111VVXXXXV/wFUrrrqqquuuuqqq/4T2cY2trENgG1sA2AbANs8N9sA2MY2ALaxjW0AbANgm+dHEv8akniga6655sFcddVVV1111VVXXXXV/14EV1111VVXXXXVVf+JJN2amdzPNvezzXOzjW3uZ5v72cY2ALaxjW1s8y+RhCT+NSRx1VVXXXXVVVddddVV/8tRueqqq6666qqrrvpPZBvb2MY2/xa2sY1tAGxjG9s8kG0eSBJXXXXVVVddddVVV131/xyVq6666qqrrrrqqv9kmYltXhDbANjmfrZ5fmxjGwDb2MY2/1aSeG6SANjf3+eqq6666qqrrrrqqqv+lyO46qqrrrrqqquu+k8UEbfyALaxjW3+JbaxDYBtbGMb29gGwDa2uZ9tnpsk/rUkYZurrrrqqquuuuqqq676X47gqquuuuqqq6666j9ZZmIb2zw32zw32zyQbe5nGwDb2OZ+trHNfyRJAFxzzTUP5qqrrrrqqquuuuqqq/53Irjqqquuuuqqq676T9ZawzbPzTb3sw2AbZ4f29gGwDa2sY1tbPNAtnlhJCGJf4kkrrrqqquuuuqqq6666n85KlddddVVV1111VX/iSLiVkkA2MY2tvmX2MY2trENgG1sY5v72QbANgC2ueqqq6666qqrrrrqqqueheCqq6666qqrrrrqP1lmYpsHss39bANgmxfENgC2sY1tbANgGwDb/FtIAkASz+38+fNcddVVV1111VVXXXXV/2JUrrrqqquuuuqqq/6TdV2HbWzzr2Ub2wDY5n62sY1tbGObB7LN8yOJF4Ukrrrqqquuuuqqq6666v8Agquuuuqqq6666qr/ZEdHR7faBsA297ONbZ6bbQBscz/b2MY2trGNbWxzP9s8N0kASOJFIQlJAEgC4MyZMw/mqquuuuqqq6666qqr/neictVVV1111VVXXfWfrNaKbWwDYJvnZhsA2wDY5n62uZ9tbPNAtrENgG2uuuqqq6666qqrrrrqqmchuOqqq6666qqrrvpPtlqtbuW52OZFYRsA29gGwDa2sY1tAGxjGwDbPD+S+Nc6d+4cV1111VVXXXXVVVdd9b8YwVVXXXXVVVddddV/AdvYxjbPzTYAtvmX2AbANraxjW3+M0giIrjqqquuuuqqq6666qr/xahcddVVV1111VVX/SeLCGzz3GzzwtgGwDa2sY1tbGMb29jGNraxjW2emyT+JZJ4IEkARARXXXXVVVddddVVV131vxjBVVddddVVV1111X+ycRxvtY1tbGOb+9nmudnGNgC2uZ9tAGxjm/8q11xzzYO56qqrrrrqqquuuuqq/52oXHXVVVddddVVV/0ny0xs80C2eSDbANjmudnGNgC2sQ2AbWxjG9vYxja2eVFI4qqrrrrqqquuuuqqq/6Po3LVVVddddVVV131n8z2rbaxzb+GbR7INrYBsI1tbGOb/wySkMRVV1111VVXXXXVVVf9L0blqquuuuqqq6666j+ZbWwDYBvbPD+2eW62AbDN/WxjG9vczza2+Y924cIFrrrqqquuuuqqq6666n8xKlddddVVV1111VX/yTIT29jmgWwDYJsHso1t7mcbANvYxja2AbCNbWwDYBsA2/xbSeJ+EcFVV1111VVXXXXVVVf9L0blqquuuuqqq6666j+Z7WdkJraxDYBtAGzzorANgG1sA2Ab29gGwDYAtvmPdObMmQdx1VVXXXXVVVddddVV/ztRueqqq6666qqrrvpPZpsHss1zsw2Abe5nG9vYBsA297ONbWwDYBsA2/xLJPEvkYQkJHHVVVddddVVV1111VX/i1G56qqrrrrqqquu+k8WEbdmJrb5t7KNbWxjG9vYBsA2ALZ5QSTx/EjigSTxQBcvXuSqq6666qqrrrrqqqv+F6Ny1VVXXXXVVVdd9Z8sM7ENgG0AbGMbANsA2OZ+tnl+bGMb29jGNraxzf1sA2Cb5yaJF0QSz00SV1111VVXXXXVVVdd9b8Ylauuuuqqq6666qr/ApmJbQBscz/bPDfb3M82trGNbZ6bbQBsA2CbF4Uk/iWSuOqqq6666qqrrrrqqv/lqFx11VVXXXXVVVf9J4uIW21jG9u8qGzz3GxjG9vYxja2eW62eW6S+NeSxDXXXPNgrrrqqquuuuqqq6666n8nKlddddVVV1111VX/BWzzwtgGwDbPj21sYxvb2MY2ALaxDYBtrrrqqquuuuqqq6666qpnIbjqqquuuuqqq676L9Bawza2sY1tbPOC2OZ+tnkg29jGNraxjW3uZ5t/DUk8N0kASOKqq6666qqrrrrqqqv+FyO46qqrrrrqqquu+k8WEbdKwjbPj20AbANgGwDb2AbANraxzQPZ5n62sc1/FEns7u5y1VVXXXXVVVddddVV/4tRueqqq6666qqrrvovkJnYxjYPZJt/iW3uZxvb2MY2trGNbe5nG9v8W0niga655poHc9VVV1111VVXXXXVVf87EVx11VVXXXXVVVf9F6i1cj/b2OZfyzYAtrGNbQBsY5v/DJK46qqrrrrqqquuuuqq/8UIrrrqqquuuuqqq/4LLJfLW21jm/vZ5n62AbDNA9kGwDYAtgGwjW1scz/b2Oaqq6666qqrrrrqqquuehaCq6666qqrrrrqqv8CtVZsA2Cbf4ltbANgGwDbANjmfraxjW3uZ5v/KHt7e1x11VVXXXXVVVddddX/YgRXXXXVVVddddVV/wVWq9WttnlutrENgG0AbPPcbANgG9vYxja2sY1tbGMbANvY5kUliecmiauuuuqqq6666qqrrvpfjspVV1111VVXXXXVfxHb2AbANi8K29zPNrYBsI1tAGxz1VVXXXXVVVddddVVVz1fVK666qqrrrrqqqv+C0QEtrGNbQBs86KwjW3uZxvb2MY2ALYBsI1t/r0kASCJM2fOPJirrrrqqquuuuqqq67634nKVVddddVVV1111X+BYRhu5YWwDYBtAGxjmweyjW1sA2Ab29jGNs+Pba666qqrrrrqqquuuur/MSpXXXXVVVddddVV/wVsYxvbANgGwDa2eUFs8/zYBsA2trmfbWxjm38LSTzQ3t4eV1111VVXXXXVVVdd9b8Ylauuuuqqq6666qr/ArZvzUwAbANgmweyDYBtHsg2trGNbWxjG9sA2MY2ALb5jyKJq6666qqrrrrqqquu+l+O4Kqrrrrqqquuuuq/gG0AbPPvZRvb2MY2ALZ5bra56qqrrrrqqquuuuqq/+eoXHXVVVddddVVV/0XyExsA2Ab2zw/tgGwjW3uZxvb2OZ+trGNbQBsYxvb/HtI4n6SuOaaax7MVVddddVVV1111VVX/e9E5aqrrrrqqquuuuq/gO1nZCa2eSDbANjm+bGNbe5nG9vYBsA2trHNA9nmqquuuuqqq6666qqrroLgqquuuuqqq6666r+AbWzzQLYBsM0D2eb5sQ2AbWxjm/vZBsA2tvm3kMRzk8RVV1111VVXXXXVVVf9L0blqquuuuqqq6666r9ARNxqG9vYxjbPzTYviG0AbHM/29jGNgC2+Y8iCUns7e1x1VVXXXXVVVddddVV/4tRueqqq6666qqrrvovkJnYxjYvKtvYxjYAtgGwjW1sYxvb2AbANraxjW1eGElcddVVV1111VVXXXXV/3EEV1111VVXXXXVVf9FMhMA2wDYxjYAtgGwDYBtHsg2ALaxjW0AbGMb2/xnuuaaax7MVVddddVVV1111VVX/e9D5aqrrrrqqquuuuq/QETcahvbANjmfrZ5UdjmfraxzQPZxjYPZJt/D0lcddVVV1111VVXXXXV/2JUrrrqqquuuuqqq/6LZCa2sc0LY5sHss39bGMbANvYxja2uZ9tbPMf5ezZs1x11VVXXXXVVVddddX/UgRXXXXVVVddddVV/0UyE9u8ILZ5INvYBsA2trmfbQBsYxvbANjmfrb595JERHDVVVddddVVV1111VX/SxFcddVVV1111VVX/ReIiFt5JtvYxja2eX5s8/zYxja2sY1tbGMb29jGNv8RJGEbgDNnzjyYq6666qqrrrrqqquu+t+HylVXXXXVVVddddV/EdvY5rnZxjYAtnlutnkg2wDY5gWxzX8ESVx11VVXXXXVVVddddX/YlSuuuqqq6666qqr/ouUUrCNbV4Y2zw329jGNgC2sY1tbGMb29jGNg9kmweSxFVXXXXVVVddddVVV/0/QXDVVVddddVVV131X2S1Wt1qGwDb2OaFsY1tnpttbANgG9vYxjb3s41t/q0kcb9z585x1VVXXXXVVVddddVV/0tRueqqq6666qqrrvovUmvludnmfra5n23uZxvb2MY297ONbR7INra5n23+PSQREVx11VVXXXXVVVddddX/UgRXXXXVVVddddVV/0VWq9WttrGNbe5nG9sA2OZfYhvb2AbANraxzX+GiOCqq6666qqrrrrqqqv+lyK46qqrrrrqqquu+i9kG9u8qGxzP9vYBsA2ALaxjW1sYxvb2ObfShLP7ZprrnkwV1111VVXXXXVVVdd9b8Plauuuuqqq6666qr/IpmJbe5nG9s8N9sA2AbANra5n20AbGMb29zPNvezzb+WJO4niauuuuqqq6666qqrrvpfjspVV1111VVXXXXVf5HMvNU2trHNc7PNv8Q2trGNbWwDYBvbANjmP4okJHHVVVddddVVV1111VX/S1G56qqrrrrqqquu+i9iG9s8N9s8N9s8N9s8kG0AbGMb29zPNgC2+fe6ePEiV1111VVXXXXVVVdd9b8Ulauuuuqqq6666qr/IrZvtY1tbGOb+9kGwDYPZBsA2wDYxja2AbCNbR7INv/Rzpw58yCuuuqqq6666qqrrrrqfx8qV1111VVXXXXVVf9FbGObB7LNc7MNgG0AbANgm/vZxja2sY1tbHM/29jmfrb5t5LEVVddddVVV1111VVX/S9F5aqrrrrqqquuuuq/SGZiG9s8P7b5l9jGNgC2uZ9t7mebB7LNv5Ukrrrqqquuuuqqq6666n8xKlddddVVV1111VX/RWw/wza2sY1tAGzz3GzzQLZ5INsA2MY2trHNf4bd3V2uuuqqq6666qqrrrrqfykqV1111VVXXXXVVf9FbGObB7INgG0AbPNAtrENgG1sYxvb2MY2tgGwDYBtbGMb2/xbSeKqq6666qqrrrrqqqv+l6Ny1VVXXXXVVVdd9V9E0q22sY1t/iW2eWFscz/b/GeRxFVXXXXVVVddddVVV/0vReWqq6666qqrrrrqv4htMpP72eb5sc1zs41tbGMb2wDYxja2sQ2AbWzz7yEJAEkAXHPNNQ/mqquuuuqqq6666qqr/vchuOqqq6666qqrrvovZBvb2OZ+tgGwzf1scz/bPJBtAGxjG9sA2OaBbPMfQRJXXXXVVVddddVVV131vxTBVVddddVVV1111X+RiLg1M7ENgG1sA2Cb58c2D2QbANvYxja2sQ2AbWzzH2l3d5errrrqqquuuuqqq676X4rKVVddddVVV1111X8D2zw/trmfbe5nG9sA2Oa52cY297MNgG1s80C2+deQxFVXXXXVVVddddVVV/0vRXDVVVddddVVV131X6i1hm1eGNv8S2xjG9vYBsA2ALb5j3bNNdc8mKuuuuqqq6666qqrrvrfh8pVV1111VVXXXXVf5GIuFUStgGwjW1sA2Cb52Yb29zPNraxjW1sYxvbANgGwDa2+feShCSuuuqqq6666qqrrrrqfymCq6666qqrrrrqqv9CmQmAbR7INg9kmweyjW1eENvYBsA2z49trrrqqquuuuqqq6666v8ZKlddddVVV1111VX/hUop2OYFsc39bPPcbGMb29jGNrYBsM39bANgGwDb/GtJAuDSpUtcddVVV1111VVXXXXV/1IEV1111VVXXXXVVf+FVqvVrbaxjW1sY5sXxjYAtnlutrGNbe5nGwDbXHXVVVddddVVV1111f9zVK666qqrrrrqqqv+C9Vasc3zYxsA29zPNgC2AbCNbWxjm/vZxjb/GSRx5syZB3PVVVddddVVV1111VX/+xBcddVVV1111VVX/RdarVa32sY2trmfbR7INv8S29jGNvezjW1scz/b/GtI4n6SuOqqq6666qqrrrrqqv/FCK666qqrrrrqqqv+C9nm38o2ALaxDYBtbGMb2zyQbWxz1VVXXXXVVVddddVV/49Rueqqq6666qqrrvovFBHYxjYAtrHN/WxzP9sA2MY2ALYBsI1t7mcb2wDYxjb/Ufb29rjqqquuuuqqq6666qr/pahcddVVV1111VVX/Rcax/FW2wDY5vmxzf1s88LYxjZXXXXVVVddddVVV1111fNF5aqrrrrqqquuuuq/kG1sY5sHso1t7meb52Yb29jGNraxjW1sYxsA29jGNv8RJHHVVVddddVVV1111VX/SxFcddVVV1111VVX/ReyfattbGMb29jmX2Kb52ab+9nGNs/NNrb515IEgCQArrnmmgdz1VVXXXXVVVddddVV//tQueqqq6666qqrrvovZBvbvCC2uZ9tAGzzQLaxDYBtbHM/29gGwDb3s81VV1111VVXXXXVVVf9P0Tlqquuuuqqq6666r9Qaw3b2AbANgC2sc1zs839bGOb+9kGwDa2sc39bPPvJQmA/f19rrrqqquuuuqqq6666n8pgquuuuqqq6666qr/Ws/ITABs8/zY5oWxjW0AbANgG9sA2OY/km2uuuqqq6666qqrrrrqfykqV1111VVXXXXVVf+FbANgm/vZ5rnZ5n62sY1tbHM/29jGNvezDYBtbGObfy9JXHXVVVddddVVV1111f9SBFddddVVV1111VX/hSTdmpnYxja2eSDb3M82z49tbHM/29jGNgC2eX5sY5t/q2uuuebBXHXVVVddddVVV1111f8uVK666qqrrrrqqqv+C9nGNs/NNrZ5brZ5QWxjmweyDYBt7mebq6666qqrrrrqqquu+n+K4Kqrrrrqqquuuuq/mG1sYxsA2zyQbZ6bbWxjG9vYxja2sY1tbANgGwDb/HtJQhJnz57lqquuuuqqq6666qqr/heictVVV1111VVXXfVfKCJutc39bPP82OZ+tvmX2MY2tnkg2wDY5t8jIrjqqquuuuqqq6666qr/hQiuuuqqq6666qqr/otlJraxzXOzzf1s89xsA2Ab29jGNvezjW1s8y+xzb/GmTNnHsxVV1111VVXXXXVVVf970Jw1VVXXXXVVVdd9V8sM7HN/WxjG9s8N9sA2MY2ALZ5INvYxjYPZJurrrrqqquuuuqqq676f47KVVddddVVV1111X+hiLgVwDYAtnlutvmX2MY2tgGwDYBtAGwDYBvb/HtI4qqrrrrqqquuuuqqq/6XIrjqqquuuuqqq676L5aZANjmBbHN/WxzP9vY5oFsA2Cb/yznz5/nqquuuuqqq6666qqr/hciuOqqq6666qqrrvov1lq71TYAtgGwDYBt7mebF8Q2trGNbWxjG9vYxja2+Y8SEVx11VVXXXXVVVddddX/QlSuuuqqq6666qqr/ovZxja2AbANgG2em20AbGMbANvczzYAtvmX2OZfQxKSAJDEVVddddVVV1111VVX/S9EcNVVV1111VVXXfVfrJSCbV4Q2zyQbe5nGwDb2AbANgC2sY1tbGMb29jGNv9WkgC45pprHsxVV1111VVXXXXVVVf970Jw1VVXXXXVVVdd9V9svV7fCmAb2/x72AbANgC2+ZfY5qqrrrrqqquuuuqqq/6fILjqqquuuuqqq676L2Yb29zPNrZ5INvY5n62sY1tbANgGwDbANgGwDb/0S5cuMBVV1111VVXXXXVVVf9L0Rw1VVXXXXVVVdd9V/MNraxzQPZxjYPZJvnxzYAtgGwjW1sA2Ab29jmgWzzbxERXHXVVVddddVVV1111f9CVK666qqrrrrqqqv+i9m+1TYAtvmX2OaBbANgGwDb2OZ+tvnPcObMmQdx1VVXXXXVVVddddVV/7sQXHXVVVddddVVV/0Xy0wAbANgmweyzfNjG9sA2AbANrYBsI1tAGxzP9vY5oFs86KShCSuuuqqq6666qqrrrrqfyEqV1111VVXXXXVVf/FbN9qGwDbANjmgWzzQLZ5bra5n23uZxsA29jmqquuuuqqq6666qqr/h8juOqqq6666qqrrvovZpvMxDYPZBvb3M82tnlutrENgG1sA2Ab2wDY5rnZ5t/q4sWLXHXVVVddddVVV1111f9CVK666qqrrrrqqqv+i9nmgWzzwtjmfra5n23uZ5v72QbANv9RJHHVVVddddVVV1111VX/CxFcddVVV1111VVX/RdrrWEb29gGwDb3s83zY5v72QbANrYBsI1tAGxzP9v8e0gC4JprrnkwV1111VVXXXXVVVdd9b8Llauuuuqqq6666qr/es/ITGzzgtjmgWxzP9sA2OZ+trENgG3uZ5t/D0kASOKqq6666qqrrrrqqqv+FyK46qqrrrrqqquu+m9gGwDb2AbANra5n23+Jbaxzf1scz/b3M82V1111VVXXXXVVVdd9f8Qlauuuuqqq6666qr/YpJutY1t/iW2sQ2AbWxjG9vYxjYAtrGNbQBs8+8hiQeShG2uuuqqq6666qqrrrrqfxmCq6666qqrrrrqqv9itrGNbWwDYJv72eZfwza2eX5sY5v72ebfYnd3l2uuuebBXHXVVVddddVVV1111f8uVK666qqrrrrqqqv+i0XErZnJ/WwDYJv72eaBbANgGwDb2MY2tgGwjW0AbGOb/wiSuOqqq6666qqrrrrqqv+lqFx11VVXXXXVVVf9N8hMbHM/2wDY5n62eSDbANjmudnmX2KbfytJXHXVVVddddVVV1111f9CVK666qqrrrrqqqv+G9jGNraxzQtiG9s8P7axjW0AbGObf4ltXhSSuN+lS5e46qqrrrrqqquuuuqq/4WoXHXVVVddddVVV/0Xi4hbbWMb29zPNgC2eW62AbANgG0eyDYPZBvb2AbANv9eZ86ceTBXXXXVVVddddVVV131vwuVq6666qqrrrrqqv8GpRRsA2Ab2wDYBsA2z802ALYBsI1tbANgG9s8N9v8W0lCEpK46qqrrrrqqquuuuqq/4UIrrrqqquuuuqqq/4brFarW21jmxfENrZ5fmzzQLZ5INv8R9rb2+Oaa655MFddddVVV1111VVXXfW/C8FVV1111VVXXXXVf4Npmm61jW1sYxvbANjmgWxjGwDb2AbANraxDYBtbPPvIYnnJglJXHXVVVddddVVV1111f9CBFddddVVV1111VX/DWxjm+dmGwDbPDfb3M82D2Sb+9kGwDb/FpJ4bnt7ewBcc801D+aqq6666qqrrrrqqqv+9yC46qqrrrrqqquu+m9QSsE2trHN82Mb2zw32wDYxja2sY1t7mcbANu8qCTxQJKQhCQkAXDmzJkHc9VVV1111VVXXXXVVf97ULnqqquuuuqqq676b7Ber2/NTGwDYBvbANjmgWxjGwDbANjmfrYBsI1t/iWS+JdI4oEkcf78ea666qqrrrrqqquuuup/GYKrrrrqqquuuuqq/waZeSuAbWxzP9u8ILZ5INvYBsA2/xkkIQlJXLx4kWuuuebBXHXVVVddddVVV1111f8eVK666qqrrrrqqqv+G2Qmmcn9bGOb+9nGNs/NNraxzf1sA2Ab2wBIwjYvKkm8MJKICK666qqrrrrqqquuuup/GSpXXXXVVVddddVV/w0y8xmZiW1scz/b2OZ+trGNbZ6bbWwDYJsHss3zI4kXlSQAJCGJ3d1dzpw58yCuuuqqq6666qqrrrrqfw+Cq6666qqrrrrqqv8Gkm7NTGxjG9v8S2wDYBvbANjGNraxjW1eFJK4nyQeSBL3kwSAJC5dusQ111zzYK666qqrrrrqqquuuup/D4Krrrrqqquuuuqq/ya2sc39bHM/29jmudnmfrYBsM0D2eb5kcQDSUISDyQJAEncTxKSuHTpEtdcc82Dueqqq6666qqrrrrqqv89CK666qqrrrrqqqv+G0i6NTOxjW1sA2Ab29zPNraxzf1sYxsA2wDYxja2AbCNbf41JPFAknigvb09zpw582Cuuuqqq6666qqrrrrqfw+Cq6666qqrrrrqqv8mrTVsYxsA29zPNs/NNra5n20AbANgG9vY5n62eW6SeFFJQhKS2N/f56qrrrrqqquuuuqqq/6XIbjqqquuuuqqq676bxARt9omMwGwDYBtbANgmxfENgC2AbDNCyOJF0YSDySJ+0lCEpK45pprHnzNNdc8mKuuuuqqq6666qqrrvrfgeCqq6666qqrrrrqv8k0Tbfaxja2sc1zs41tbGMbANsA2MY2trGNbWxjG9s8P5L4l0gCQBKSAJDE3t4eAGfOnHkwV1111VVXXXXVVVdd9b8DwVVXXXXVVVddddV/k3Ecb7WNbe5nGwDbPD+2AbCNbQBs868lCUlIQhL3k8Rzk4QkIoKnPvWpXHPNNQ/mqquuuuqqq6666qqr/negctVVV1111VVXXfXfxDaZiW1sYxsA2wDYxja2sY1tAGxzP9sA2MY2trHNv4UknpskACQREUjizJkzD+Kqq6666qqrrrrqqqv+d6By1VVXXXXVVVdd9d+ktXarbWxjG9vYBsA2z49tAGxjG9vYxja2eWEkASCJF0YSkpAEgCQkIYlbb72Va6655sFcddVVV1111VVXXXXV/w4EV1111VVXXXXVVf9NMvPWzMQ2trmfbQBs8/zY5oFscz/b2OZfIokHksTzIwlJAEhif3+fa6655sFcddVVV1111VVXXXXV/w4EV1111VVXXXXVVf9NpmkiM7ENgG1s80C2sY1tbGMbANvYxjYAtrGNbQBs8/xI4n6SkIQk7ieJ50cSktjb2+PMmTMP5qqrrrrqqquuuuqqq/53ILjqqquuuuqqq6767/M7mYltbHM/29jmBbENgG0AbGMb2wDYBsA2/xqSuJ8kJCEJSUgiItjf3+eaa655MFddddVVV1111VVXXfW/A8FVV1111VVXXXXVfxPbtNbITGxjG9vczza2sY1tbGMbANsA2MY2trGNbQBsA2Cb5yaJ5yaJ+0niuUlCEnt7ewC82Iu92Gtz1VVXXXXVVVddddVV//MRXHXVVVddddVVV/03iYhbW2vYxja2AbCNbV4Q2wDYxja2uZ9tbPP8SOJ+knh+JHE/SQBIQhKSKKXw1Kc+lRd7sRd7La666qqrrrrqqquuuup/PoKrrrrqqquuuuqq/0atNWxjG9vY5n62sc39bGMbANs8kG1sA2Ab29jmfpIAkMT9JCEJSQBI4n6SAJCEJAAkIYm9vT1e/MVf/LW56qqrrrrqqquuuuqq//kIrrrqqquuuuqqq/6bRMSt4zjempnYBsA2trHN/Wxjm/vZxja2sY1tbGMb2/xLJPHCSOK5SUISEcHe3h5nzpx5MFddddVVV1111VVXXfU/H8FVV1111VVXXXXVf6PW2q2ZiW1s80C2eWFsYxvb2AbANraxzQsjCUkASEISAJIAkIQkJCEJSUgiIrj99tu56qqrrrrqqquuuuqq/yUIrrrqqquuuuqqq/4bZSaZiW1sYxvb2AbANraxjW1sYxvbPDfb2OZ+trGNbV4QSbwoJCEJSezv73PNNdc8+MVe7MVem6uuuuqqq6666qqrrvqfjeCqq6666qqrrrrqv1Fr7dbMxDa2sY1tAGzzwtjGNraxjW0AbGOb50cSknh+JAEgCQBJSEISAJKQxP7+Pk996lO55pprHsxVV1111VVXXXXVVVf9z0Zw1VVXXXXVVVdd9d9oHMdbMxPb2OZ+tgGwjW1sYxvb2MY2ALaxjW1sYxvbANjmgSRxP0lIQhKSkASAJAAk8UCSkEREEBHs7e1x5syZB3HVVVddddVVV1111VX/sxFcddVVV1111VVX/TeS9DuZSWZiG9vYxja2eWFsA2Ab29jGNraxDYBtXlSSAJAEgCQkIQlJSEISEcHf/u3f8uIv/uKvzVVXXXXVVVddddVVV/3PRnDVVVddddVVV1313ygzmaaJzMQ2trHN/WxjG9vYxja2sY1tbPNAtgGwjW2eH0lI4oEk8UCSuJ8kACQhiYhgf3+fM2fOPJirrrrqqquuuuqqq676n43gqquuuuqqq6666r9RRNzaWsM2trENgG1s8/zY5n62sY1tbANgmxdEEveThCQkcT9J3E8SkgCQhCQkEREcHh5yzTXXPPjFXuzFXpurrrrqqquuuuqqq676n4vgqquuuuqqq6666r9RRNxqm8zENraxDYBtbGMb29jGNgC2sQ2AbWxjG9vYxja2sc2LShIAknggSUgCQBKSiAie9rSn8WIv9mKvxVVXXXXVVVddddVVV/3PRXDVVVddddVVV13132y5XP52ZmIb29jGNgC2eW62sQ2AbQBsYxvb2MY297PNA0lCEpKQhCQkASAJAEkASAJAEpKQhCQigttuu40Xf/EXf22uuuqqq6666qqrrrrqfy6Cq6666qqrrrrqqv9mmUlmkpnYxja2sQ2AbWxjG9vczza2sQ2AbWxzP9v8a0gCQBIAkpCEJAAkIYmIoJTCHXfcwZkzZx7MVVddddVVV1111VVX/c9FcNVVV1111VVXXfXfbJqm326tYRvbPJBtHsg2trGNbQBsYxsA29jGNraxDYBtACRxP0lIQhKSAJAEgCTuJwlJSEISkogI7rzzTq655poHv9iLvdhrc9VVV1111VVXXXXVVf8zEVx11VVXXXXVVVf9N5um6RmZSWZiG9vYxjYAtrGNbZ6bbWxjG9sA2MY297PNc5PEc5MEgCQAJCEJAElIQhKSkERE8PSnP53XeZ3XeS+uuuqqq6666qqrrrrqfyaCq6666qqrrrrqqv9+t07ThG1sYxvb2MY2D2Qb29jGNrYBsI1tbGMb29jGNs9NEgCSkIQkJAEgCQBJSAJAEveThCQiglIKf/u3f8uLvdiLvTZXXXXVVVddddVVV131PxPBVVddddVVV1111X8zSbdO00RmYhvb2AbANraxjW3uZxvbANjGNraxjW0AbGOb50cSz00SAJK4nyQAJCEJSUQEkogI7rjjDq655poHv9iLvdhrc9VVV1111VVXXXXVVf/zEFx11VVXXXXVVVf9N4uIW22TmWQmtrGNbQBsA2Ab29jmfraxDYBtbANgm/vZ5gWRhCQkASAJAElIAkASAJKQhCQigojg8PCQpz3tabzYi73Ya3HVVVddddVVV1111VX/8xBcddVVV1111VVX/Q+wXC5/u7WGbWwDYBvbANjmgWxjG9sA2MY2trGNbWxjGwDbPDdJ3E8SkgCQxP0kASAJSUhCEpKICEop3Hbbbbz4i7/4a3PVVVddddVVV1111VX/8xBcddVVV1111VVX/Q/QWiMzsY1tbGMbANvYxja2sc0D2cY2ALaxjW1sA2CbB5KEJAAkIYn7SQJAEpIAkIQkACQhCUlEBKUU/uEf/oEzZ848mKuuuuqqq6666qqrrvqfh+Cqq6666qqrrrrqf4Bpmn67tUZmYhvbANjGNg9kG9vYxja2sY1tbGMb29jGNi+IJO4nCUkASEISAJKQBIAkJCEJSUgiIjg8POTg4ODBr/M6r/PeXHXVVVddddVVV1111f8sBFddddVVV1111VX/A9j+ndYamUlmYhvb2AbANraxzf1sYxvbANgGwDb3s41tbPP8SEISAJKQhCQAJCEJAElIAkASkogIIoJSCrfddhuv8zqv815cddVVV1111VVXXXXV/ywEV1111VVXXXXVVf8D2L51miYyE9vYxja2sY1tAGxjG9s8kG1sYxvb2MY2trmf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/8lms9lvXXvtta+9ubnJbDaj6zq6rqOUQq2VUgoRQSmFiCAiKKUQEZRSiAhKKUQEpRQigoiglEJEEBFIIiKQBIAkAGwDYBvb2MY2trGNbWxjm8zENraxjW1sYxvb2MY2ALaxjW1sYxvb2CYzsY1tMhPb2MY2tvmfwja2sc3m5iZbW1tsbW1xww03sL29zWw2u/Uf/uEffvu3fuu3vucf/uEffpurrrrqqquuuuqqq/47oAc96EFcddVVV1111VVX/U/Wdd1vnTlz5rW3t7eZzWb0fU/XdZRSqLVSSiEiKKUQEZRSiAgiglIKEUEphYiglEJEEBGUUogIIoKIQBKSkASAJABsA2Ab29jGNraxjW1sYxvb2MY2trGNbWwDYBvbANjGNgC2sY1tbGMb2wDYxja2uZ9tnh9J2AZAEraRxL+XbQAkAWAbANvYxja2yUwyk9Yam5ubXHfddTz60Y9mNpvd+lu/9Vvf/du//dvfc999993KVVddddVVV1111VX/VdCDHvQgrrrqqquuuuqqq/4ny8zXvvbaa3/r2LFjLBYL+r6n1kqtlVorpRRKKUQEpRQigoiglEJEEBGUUogISilEBBFBKYWIICKICCQREUgCQBIAtrmfbWxjG9vYxja2sY1tbANgG9vYxjb3s839bANgGwDbANgGwDYAtrHN/Wzz3CTxX8U2ALaxTWZiG9tkJplJZtJaY5omNjY2eMQjHsGrvuqrct9999369V//9e/zD//wD7/NVVddddVVV1111VX/2dCDHvQgrrrqqquuuuqqq/4ny8wHnzhx4uknT55ksVgwm83ouo5aK7VWSimUUogISilEBBFBKYWIICIopRARlFKICCKCUgoRQUQQEUQEkpCEJAAkAWAbANsA2MY2trENgG1sYxvbANjGNvezzb+VbWzzP4FtbGMb22QmtslMMpPMJDNprdFao7XGNE0sFgse+chH8tjHPpZhGG79rM/6rNe57777buWqq6666qqrrrrqqv8s6EEPehBXXXXVVVddddVV/9PNZrPfuuaaa157c3OT+XxO13XUWqm1UkqhlEJEUEohIiilEBFEBKUUIoKIoJRCRBARlFKICCKCiCAikEREACAJAEkA2AbANgC2sQ2AbWxjGwDb2OZ+tnlukrifJCQBIAlJSEISAJKwDYBtbPPcJPFfxTaZiW0yk8wkM8lMWmu01shMWmu01mit0VpjmiamaWKxWPCIRzyCRz7ykbf+1m/91nf/6I/+6Odw1VVXXXXVVVddddV/BipXXXXVVVddddVV/wsMw/Db0zS9dmaSmdjGNraxjW0AbANgG9vYxja2sY1tbGMb29jGNraxjSRsI4nnJgnbSMI2knggSdjGNpKwzQsiCUlIAiAikIQkIoKIICIopRARSMI2trENgG0AJPGiksS/hW3uJ4nMJDPJTFprZCatNVprTNPENE201pimiYggIogIIoKIYL1e89d//dc84QlPePA7vMM7fDbAj/7oj34OV1111VVXXXXVVVf9R0MPetCDuOqqq6666qqrrvqfrrX22tdee+1vHTt2jMViQd/3dF1HrZVSCqUUSilEBKUUIoKIoJRCRBARRASlFCKCiKCUQkQQEUQEEUFEIAlJSEISAJK4n23uZxsA2wDY5n62eW6SkIQkJCGJiCAiiAgiglIKpRS6rqPWSimFiADANraxjW0AJHE/Sfxnsk1E0FqjtUZm0lpjmiamaWKaJsZxZBxHpmliHEemaWKaJlprTNNEa43WGtM0MU0T8/mcRz7ykTzykY+89bM+67Ne57777ruVq6666qqrrrrqqqv+o1C56qqrrrrqqquu+l9A0q3DMNBaIzPJTDIT29jGNrYBsI1tAGxjG9sA2MY2trGNbWxjG9vYBkASL4gkAGwjiQeShG0AJHE/SQBIQhKSiAgigoiglEIphVIKXdfRdR1939P3PbVWaq0A2MY2trGNbSQhiecmiX8rSdjmudkmIpimicyktcY0TYzjyDiODMPAMAwMw8AwDEQEEUFEME0TkpCEJCQhifV6zV/+5V9yxx13PPhjPuZjfuuv/uqvvvtHf/RHP4errrrqqquuuuqqq/4jULnqqquuuuqqq676XyAibl2tVr89TdNrt9awjW0yk4jANraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY0kbHM/SdhGEg8kCQDbSOJ+knhukpCEJCQREUQEEUEphVortVZqrfR9z2w2YzabMZ/P6fueWiuSyExsA2Ab2wBIAkASL4gk/r1sExGM40hm0lpjHEfGcWQcR9brNavVivV6Ta2ViCAiiAgkASAJSUhCEpKQxNmzZ/md3/mdB7/DO7zDZ19zzTUP/vqv//r34aqrrrrqqquuuuqqfy8qV1111VVXXXXVVf9LLJfL3x7H8bUzk8zENraxjW1sYxvbANjGNrYBsI1tbGMb29jGNraxjW1scz9J2EYSL4gknh9JAEgCQBIRgSRKKUQEpRRKKdRa6fueruuYzWbM53Pm8zmLxYK+7+m6DklkJrYBsI1tJAEgiecmiX8tSTyQbe5nm4hgmiZaa2Qm4zgyjiPjOLJarei6jlorpRQkERFI4n6SeEHW6zU/9mM/xqMe9aj3/qZv+qbX/vqv//r3+Yd/+Iff5qqrrrrqqquuuuqqfyvK8ePHueqqq6666qqrrvpf4hl933/0bDaj1kpEEBFEBJKQhCQkIQlJSCIikIQkJCEJSUhCEpKQhCQkIQkASQBIQhIAkrifJCQhCUlIQhKSiAgkIQlJRASlFCKCUgqlFGqt1Frpuo6+7+n7ntlsxnw+Zz6fs1gsWCwWLBYLZrMZXdfRdR1d19F1HV3X0XUdXdfR9z1d19H3PV3X0XUdXdfRdR1d19H3PV3X0XUdXdfRdR1d19F1HV3X0XUdXdfRdR1d19F1HV3X0XUdXdfRdR1d19F1HV3XUWul6zpqrdRaKaVQSiEiiAgkIQlJvDCSAJCEJCQxDAO33347s9ns+Ju+6Zu+9ubm5vF/+Id/+B2uuuqqq6666qqrrvq3oHLVVVddddVVV131v0RE3LparX67tfbarTUyk8zENraxjW0AbGMbANvYxja2sY1tbGMb29jGNraxDYBtHkgS95PEA0nigSQBIAlJSCIiiAgiglIKpRRqrdRaqbXSdR1d19F1HX3f0/c9fd/T9z21ViRhG9sA2MY2AJIAkMQLIol/L9tIorVGZpKZ1FoppVBrJSKQhCQAbJOZ2MY2tnlR/fmf/znAg1/ndV7nvf/hH/7hd/7hH/7ht7nqqquuuuqqq6666l+Lcvz4ca666qqrrrrqqqv+F3ntxWLx0l3XUUqhlIIkIgJJSEISkpCEJCQhCUlIQhIRgSQkIQlJSEISkgCQBIAkJCEJAElI4n6SuJ8kJCGJiCAiiAgigoggIogISinUWqm10nUdXdfR9z193zObzZjNZsxmM/q+p+s6aq1EBJKQREQgCUmUUogISilEBBFBRFBKISKICCKCiCAiiAgigoggIogIIoKIoJRCRBARRAQRgSQiglIKkiilIAlJRASSkIQknltmAmAb2wDYBsA2L4gkAG6//Xb6vj/+pm/6pq/9Z3/2Zz9zeHi4y1VXXXXVVVddddVV/xqU48ePc9VVV1111VVXXfW/xTiOlxaLxXv3fU8phYggIogIJCEJSUgiIpCEJCQhCUlIQhKSkIQkJCEJSUhCEgCSeCBJSAJAEgCSAJAEgCQkIQlJSCIiiAgiglIKpRRKKZRS6LqOWitd19F1HX3f0/c9XdfRdR21ViICSQBIQhKSkEREIAlJRASSkIQkJCEJSUhCEhGBJCQhCUlIQhKSkIQkJCEJSUhCEpKQhG0kIYkHso1tAGxjm8zENraxjW1s86KQxO23385yuTz+7u/+7m/9Z3/2Zz9zeHi4y1VXXXXVVVddddVVLyqCq6666qqrrrrqqv9FJN26Xq+ZponMxDa2sY1tbGMb29jGNraxjW1sA2Ab29jGNraxjW1sYxvb2MY2trmfbZ6bJAAkIQlJSEISkpCEJCQhiYggIiilEBGUUogISilEBBFBRCCJF0YS95PECyIJSUjiP4IkJAEgCUlEBKUUaq3UWqm10nUdXdfRdR1d19F1HV3XUWul1kophVIKpRQigoiglEIphVortVa6ruNJT3oSf/zHf/zgz/mcz/ktrrrqqquuuuqqq6761yC46qqrrrrqqquu+l8kIm5drVa/PU0TrTUyk8wkM7GNbWxjG9vYxja2uZ9tbGMb29jGNraxjW0yE9vYxjYAtrHNCyKJ5yYJSUhCEhFBRCCJiEASEUFEEBFIQhKSuJ9tbGOb+9kGwDb3s80LYhvb2MY2trGNbWxjG9vYxja2sY1tbGOb+9nGNrZ5IElIQhIRQa2VUgq1Vmqt1FqptVJrpdZKrZVSCqUUSimUUiilUEqhlEIphVIKtVa6ruNJT3oSj3/84x/8Td/0TU/nqquuuuqqq6666qoXFeX48eNcddVVV1111VVX/W8yjqMWi8Vb931PrZWIICKICCQhiYhAEpKQREQgCUlIQhKSkIQkJCEJSUgCQBKSAJDE8yMJSUhCEgCSiAgkIYmIICKICCKCiCAiKKVQa6WUQimFWiu1VmqtlFIopVBKISKQxHOzzQNJ4t9KEs+PbR7INgC2sY1tbGObzCQzyUwyk9YamUlrjcwkM8lMbGMb2wDYxjYAtnlhnvGMZ9D3/fFXfMVXfPCf/umf/gxXXXXVVVddddVVV/1LKMePH+eqq6666qqrrrrqf5ndvu8/ejabUUqhlEJEEBFIQhKSkIQkIgJJSEISkpCEJCQhCUlIQhKSAJCEJAAkASAJSUhCEpKQhCQkARARSEISEYEkJBERSCIiKKVQSiEiKKVQa6WUQq2VWiu1VmqtlFKICCTx3GzzH8U2trGNbWxjmweyzf1sYxvb2MY2tslMMpPMpLVGZpKZtNbITDKTzCQzsY1tbGMb2wDY5gWRxDOe8QxuuOGGl37IQx7CP/zDP/wOV1111VVXXXXVVVe9MJTjx49z1VVXXXXVVVdd9b+JpF3brz2fzx/cdR2lFCICSUQEkpCEJCQhCUlIQhKSkIQkJCEJSUhCEgCSkIQkACQBIIkXRhKSkIQkJBERRASSiAgigoggIiilUEqhlEIphVorpRRKKUQEEYEkJAFgG9vYBsA297ONbWxjG9vYxjb/Xra5n20yEwDb2MY2mUlm0lqjtUZrjdYarTVaa7TWyEwyk8zENraxjW0AbGObF0YSu7u7vNZrvdZrnzhxgn/4h3/4Ha666qqrrrrqqquuekEox48f56qrrrrqqquuuup/m3EctbGx8dZ931NKISKICCICSUhCEhGBJCQhCUlIQhKSkIQkJCEJSQBIQhKSAJAEgCTuJwlJSEISkpAEgCQkIQlJSEISEUFEUEohIiilEBGUUogISimUUiilUEohIpCEJABsYxvb2MY2ALaxjW1sYxvb2AbANraxjW1sYxvb2MY2trGNbWxjG9tkJrYBsI1tMhPb2CYzyUxs01ojM8lMWmu01mit0VojM8lMMhPb2CYzsY1tbGMb2/xL1us1T3/603m1V3u1B58+ffrEP/zDP/w2V1111VVXXXXVVVc9P5Tjx49z1VVXXXXVVVdd9b+N7d2+7z96NptRSqGUgiQkERFIQhKSkIQkJCEJSUhCEpKQhCQkIQkASUhCEgCSAJAEgCSemyQkIQkASUhCEpKQREQQEUgiIogISilEBKUUIoKIoJRCRBARSOJ+trGNbTIT29jGNgC2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sU1mkplkJrbJTDKT1hqZSWuN1hqtNVprZCatNVprZCaZSWZim8wEwDa2sc2LYr1e8/SnP/34W77lWz7k6U9/+l+fPXv2Vq666qqrrrrqqquuem6U48ePc9VVV1111VVXXfW/jaTdzHztxWLx4K7rKKUQEUQEEYEkJCEJSUhCEpKQhCQkIQlJSEISAJKQhCQkASAJAEkASOKBJHE/SUhCEgCSkEREEBFEBBFBRBARRAQRQURQSiEiiAgiAklIAsA2trGNbTIT29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW0yk8wkM8lMMpPMJDNprZGZtNZordFao7VGZtJaIzPJTGxjm8zENraxjW3+JbYBWK/XHBwcHH/7t3/71/6zP/uznzk8PNzlqquuuuqqq6666qoHohw/fpyrrrrqqquuuuqq/43GcXzwxsbGa3ddR0QQEUQEkpCEJCQhCUlEBJKQBIAkJCEJSUgCQBKSkASAJCQBIAkASdxPEveTBIAkACQhCUlIQhKSkEREEBFEBBGBJCKCiCAikIQk7mebzCQzyUxsk5nYxjaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmbTWsE1m0lojM8lMWmtkJq01Wmu01mitkZm01shMMhPbZCaZiW1sYxvb2AbANraxzQtim3vvvZdHPvKRx2+66abjf/qnf/ozXHXVVVddddVVV131QJTjx49z1VVXXXXVVVdd9b+R7Wf0ff/Rfd9TayUiiAgiAklIQhKSkIQkJCEJSQBIQhKSkASAJCQhCQBJSAJAEgCSuJ8kACRxP0kASEISkogIJCEJSUQEkpBERBARSEISEQGAJO5nm8wkM8lMMpPMxDaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmrTUyk8wkM2mtkZm01mitkZm01mit0VqjtUZrjcwkM2mtYRvb2CYzsY1tbGObB7KNbWwDYBvb3O9pT3sab/AGb/DST3va037n7Nmzt3LVVVddddVVV1111f0ox48f56qrrrrqqquuuup/I0m7mfna8/n8wbVWSilEBBGBJCQhCUlEBJKQhCQkIQkASUhCEgCSkIQkACQhCQBJAEjifpIAkMT9JCEJAElIQhKSkIQkJBERRASSkEREEBEASOJ+tslMMpPMJDPJTDKTzCQzyUwyk8zENplJZpKZZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWbSWiMzsU1m0lojM2mtkZlkJq01MpPWGplJa43WGq01WmtkJplJZpKZZCa2yUwyE9vYJjMBsA2AbWzzQLZ5bqvVijvuuIN3f/d3f+1f+IVf+Bquuuqqq6666qqrrrof5fjx41x11VVXXXXVVVf9bzWOoxaLxVv3fU8phVIKkogIJCEJSUhCEpKQhCQkASAJSUgCQBKSkASAJAAkIQkASdxPEgCSuJ8kJAEgCUlIQhKSAIgIJCEJgIhAEveTBIBtbJOZZCa2yUxaa2QmmUlmkpnYJjPJTDKTzCQzyUwyk8wkM8lMMpPMJDPJTDKTzCQzyUwyk8wkM8lMMpPMpLVGa43MpLVGa43MJDPJTFprZCatNVprtNZorZGZtNbITDKTzMQ2mYltbGMb29jGNvezjW1s80C2ud/u7i7XXHPN8euvv55/+Id/+B2uuuqqq6666qqrrgKgHD9+nKuuuuqqq6666qr/rWzvdl330bPZjForEUFEIImIQBKSkIQkJCEJSUhCEgCSkASAJCQhCQBJAEgCQBIAkgCQBIAk7icJSQBIQhIAkgCQhCQkASAJSUhCEpIAsI1tbJOZZCatNTKT1hqZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlrjdYamUlrjcwkM2mtkZlkJq01WmtkJq01Wmu01shMMpPMJDPJTGxjG9vYxjYAtrGNbWxjGwDb2MY297MNwF133cWrvdqrPfi+++77m/vuu+9Wrrrqqquuuuqqq66iHD9+nKuuuuqqq6666qr/rSTtZuZrz+fzB3ddRymFiCAikIQkJCEJSUhCEpKQhCQAJCEJAElIAkASkgCQBIAkACQBIIn7SQJAEgCSkIQkJAEgCQBJSEISAJKQxP1sYxuAzCQzyUwyk9YamUlmkplkJplJa43WGplJZpKZZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlmkpm01mitkZlkJq01WmtkJq01MpPMpLVGa43MJDPJTDIT22QmmUlmYhvb2MY2ALZ5INsA2MY2L8hqteL8+fPH3/iN3/ghv/Vbv/XdXHXVVVddddVVV11FOX78OFddddVVV1111VX/m43jqMVi8dZd11FKISKQREQgCUlIQhKSkIQkJCEJSQBIQhIAkgCQhCQAJAEgCQBJ3E8SAJIAkASAJCQhCUlI4n6SkIQkJHE/STyQbTKTzCQzyUwyk8wkM8lMMpPMJDPJTFprtNZordFao7VGZpKZZCaZSWaSmWQmmUlmkplkJq01Wmu01mit0VojM8lMWmu01shMMpPWGq01MpPWGplJa43MpLVGa43WGplJZpKZZCa2sU1mkpnYxja2sY1tbGMbANvYBsA2tgGwzf1ss7u7yy233PLgvu+fceutt/41V1111VVXXXXVVf+/Ubnqqquuuuqqq676X07Sb6/Xa6ZpIjPJTGxjG9vYxja2sY1tbGMb29gGwDa2AbANgG1sA2AbANsAZCYRAYBtADKTiCAziQhsk5k8P5J4QWxjm8wkIpCEJP6nsM39bANgG9vYJjPJTDKTzCQzyUxsY5v72QZAEgCSkIQkJCEJSUhCEpKQhCQiAttEBLaJCEopdF3H7//+7/Pu7/7un/Vbv/Vb381VV1111VVXXXXV/2+U48ePc9VVV1111VVXXfW/maTd1tqD5/P5S9daKaUQEUgiIpAEgCQkIQlJSEISkgCQhCQAJAEgCUncTxIAkgCQxP0kASAJAEkASEISz00Sz49tAGwDkJlkJplJZpKZZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWZim8wkM8lMMpPMJDPJTFprZCaZSWaSmWQmtmmtkZm01shMMpPMpLVGZpKZZCatNTKTzCQzyUwyk8wkM7FNZmIb29jGNpmJbWxjG9vYxja2sQ2AbQBsYxvbPNByuWR/f//467zO6zz4T//0T3+Gq6666qqrrrrqqv+/KMePH+eqq6666qqrrrrqf7tpmi7N5/P37vueUgoRQUQgCUlIQhKSkIQkJCEJSUgCQBIAkgCQBIAkACQBIIn7SQJAEveTBIAk7icJSTyQJB7INgC2sY1tMpPMJDPJTDKTzCQzyUwyk8wkM8lMMpPMJDOxTWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlmkplkJplJa43MJDNprZGZZCatNTKTzCQzaa2RmWQmmUlmkpnYxjaZSWZiG9vYxja2sY1tbGMb29jGNgC2AbDNA9nGNgBHR0fcfPPNx/f39//m7Nmzt3LVVVddddVVV131/xPl+PHjXHXVVVddddVVV/1vFxG3ZuZrz+fzB9daKaUQEUQEkpCEJCQhCUlIQhKSkASAJAAkASAJAEkASAJAEveTxP0kcT9JAEjigSTx3CRxP9vYxja2sY1tMhPbZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlmkplkJq01MpPMJDPJTDKTzCQzyUwyk8wkM7FNZpKZZCaZiW1sk5nYxja2sY1tbGMbANvYxjYAtgGwDYBtbHM/26xWK46Ojo6/53u+52v/wi/8wtdw1VVXXXXVVVdd9f8T5fjx41x11VVXXXXVVVf9XzBN04MXi8Vrd11HKYWIQBIRgSQkIQlJRAQAkpCEJAAkIYn7SQJAEgCSuJ8k7ieJ+0nifpIAkMS/lm1sYxvbZCaZSWaSmWQmmUlmkplkJrbJTDKTzCQzyUwyk8wkM8lMMpPMJDPJTDKTzCQzyUwyk8wkM8lMMpPMJDNprZGZZCaZSWaSmWQmmUlmYpvMJDPJTDIT22QmtrGNbWxjm8zENrYBsI1tbGMb2wDYBsA2ALYBsI1tbHM/21y8eJFHPvKRx1trz7j11lv/mquuuuqqq6666qr/fyjHjx/nqquuuuqqq6666v8C28/ouu6j+76nlEJEEBFIIiKQhCQkIQlJAEhCEgCSkASAJO4nCQBJ3E8S95PEA0nifpIAkMTzY5vnZhsA29jGNplJZpKZZCaZSWaSmWQmmUlmkplkJpmJbTKTzCQzyUwyk8wkM8lMMpPMJDPJTDKTzCQzyUwyk8wkM8lMMpPMJDPJTDKTzMQ2mYltMhPbZCa2sY1tMhPb2MY2trGNbWxjG9vYxjYAtrENgG1scz/bANjmfrYBsI1tnvSkJ/Fu7/ZuL/1nf/ZnP3N4eLjLVVddddVVV1111f8vlOPHj3PVVVddddVVV131f4Gk3cx87dls9uCu6yilEBFEBJKQhCQkIQlJSAJAEpIAkASAJO4nCQBJ3E8SDySJB5LE/STx/NjmfrYBsA2AbWxjG9tkJplJZpKZZCaZSWaSmWQmtrGNbWyTmWQmmUlmkplkJplJZpKZZCaZSWaSmWQmmUlmkplkJplJZpKZ2CYzyUwyk8wkM8lMbJOZ2MY2mUlmkplkJraxjW1sYxvb2MY2trGNbQBsYxsA2wDYBsA297MNgG3uZxvbLJdLHvWoRx2/+eabj//pn/7pz3DVVVddddVVV131/wvl+PHjXHXVVVddddVVV/1fMU3TM2az2Xv3fU8phYhAEhGBJCQhCUlIQhIAkpAEgCQAJHE/SQBI4oEk8UCSeG6SuJ8knh/bANgGwDa2sY1tMpPMxDa2sY1tbGMb29gmM8lMMpPMJDPJTDKTzCQzyUwyk8wkM8lMMpPMJDPJTDKTzCQzyUwyk8wkM8lMbGMb29jGNrbJTGxjG9tkJraxjW1sYxvb2MY2tgGwjW1sYxvbANjGNgC2AbDN/WxzP9vYxja2sQ3Ak570JN7ojd7oxNOf/vS/Pnv27K1cddVVV1111VVX/f9BOX78OFddddVVV1111VX/V9jG9kvP5/MH11qJCCICSUhCEpKQhCQkASAJSQBIAkASAJK4nyQeSBLPTRLPTRIPJInnZhvbANjGNrbJTGxjm8wkM8lMbJOZZCaZSWZiG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9tkJplJZpKZZCaZiW1sYxvbZCa2yUxsYxsA29jGNraxjW1sA2Ab29jGNgC2uZ9t7meb+9nGNra5n22WyyWnT58+ftNNN/Gnf/qnP8NVV1111VVXXXXV/x9Urrrqqquuuuqqq/4PiYhb1+v196zX69fu+55aK7axjW1sY5vMRBK2AbCNbQBsA2AbANvczzYPlJlEBA+UmUgiIrhfZiIJSUQEmYkkJGGbiEASkrCNJCQhCQBJ/EeQxL+Xbf61bANgGwDb2MY2trHN/WzzQJIAkMT9JCEJAElIAkASEYFtbBMRlFKotfLbv/3bvM/7vM9rc9VVV1111VVXXfX/C+X48eNcddVVV1111VVX/V+Smbtd13103/eUUogIIgJJRASSkIQkJCEJAElIAkAS95PE/STx3CTxL5HEv4ZtbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYBsA2trGNbWxjG9vYxja2sY1tbGMb29jGNpmJbWxjG9vYBsA2trFNZmIb29jGNraxjW0AbGMb29jGNgC2sY1tbANgm/vZxjb3s839bANgG9vYxjbL5ZIzZ84c7/v+Gbfeeutfc9VVV1111VVXXfX/A+X48eNcddVVV1111VVX/V8iaXeapgfP5/OX7rqOUgoRQUQgCUlIAkASkgCQhCQAJHE/SdxPEs9NEv9etrGNbWxzP9sA2MY2trENgG0yE9vYBsA2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29gGwDYAtgGwjW1sA2AbANvYxja2AbCNbe5nG9s8kG0AbANgG9vY5vbbb+fd3/3dX/oXfuEXvoarrrrqqquuuuqq/x8ox48f56qrrrrqqquuuur/mtba33Rd99Fd11FKISKQREQgCUlIQhKSAJCEJAAkASCJB5LE8yOJfw/bPDfbANgGwDa2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2ALaxjW1sYxvb2MY2ALa5n21sYxvbANgGwDa2sY1t7mcb2zw329zPNrYBsI1tlsslj3rUo47ffffdv3P27Nlbueqqq6666qqrrvq/j3L8+HGuuuqqq6666qqr/q+RtJuZrz2bzR5cayUiiAgkERFIQhIAkgCQhCQAJAEgiftJ4oWRxHOzzYvKNg9kGwDb2MY2tgGwjW1sYxvb2MY2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2AbCNbWxjG9vYxjb3sw2AbWxjG9vczza2sY1tbGObB7KNbWzzQLaxjW1sYxvbPPGJT+Tt3u7tHvxbv/Vb38NVV1111VVXXXXV/31Urrrqqquuuuqqq/6PWq1Wn7Ner197NptRa6WUQmaSmUhCEraxDYBtbCMJ2wDY5n62eWEyE0lIQhKSkMQLYhtJSEISkrCNJCRxP0n8a0niv5Mk/jVsY5sHss2LQhKSkIQkJAEgCUlIIiKICEopHB4eUmt97Rd7sRd77X/4h3/4ba666qqrrrrqqqv+b6McP36cq6666qqrrrrqqv+LJN2ama89n88fXGullIIkJBERSEISAJKQhCQkASCJ+0niP4ptHsg2D2QbANvYBsA2trGNbWxjG9vYxja2sY1tbGMb2wDYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2sQ2AbWxjG9vY5vmxzf1sYxvbANgGwDYvjG1sYxvb3M82trGNbWyTmdx33328wiu8An/6p3/6M1x11VVXXXXVVVf930Y5fvw4V1111VVXXXXVVf9XDcOg2Wz21l3XUUohIpCEJCQhCUlIQhKSkASAJO4niX8v2zw329zPNgC2AbANgG1sYxvb2MY2trGNbWxjG9s8N9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9vYxja2AbCNbWxjm/vZxja2sY1tHsg2tgGwzf1sA2Ab29jGNraxzfNjGwDb2AbANrY5f/48j3zkI48//elP/5nDw8Ndrrrqqquuuuqqq/7vohw/fpyrrrrqqquuuuqq/8N2a61v3ff98VIKpRQkIYmIQBKSkIQkJCEJAEncTxL/HrZ5brYBsM39bANgGwDb2MY2trHNv8Q2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trGNbWxjG9sA2MY2trENgG1s8y+xDYBtHsg2ALaxjW1s8/zYxjb3s41tbGObzMQ2Xdcdf+VXfuXjf/qnf/ozXHXVVVddddVVV/3fReWqq6666qqrrrrq/7CIuPXg4OBzFovFd3VdR62ViMA2mYkkJGEb29jGNgC2AZCEbZ6bJB7INi8q20jigWwjCdtIwjb3k8T9bPM/jSQAbHM/SQDYBkAStgGQxPNjGwDb3M82z00SkrDNc5OEJCQhCUlIQhKSKKVQSuH222/nDd/wDV+Hq6666qqrrrrqqv/bKMePH+eqq6666qqrrrrq/7LM3O37/qNrrZRSKKUQEUgiIgCQhCQkIQkASQBI4oEkIYkXlW0eyDb3sw2AbQBsA2Ab29zPNraxjW1sYxvb2MY2trGNbWzzX8k2trHN/Wxjm/vZ5n62sc1zs839bGObB7INgG1sYxvb2Ob5sQ2AbWwDkJnY5ujoiNOnTx+fzWbPuPXWW/+aq6666qqrrrrqqv+bKMePH+eqq6666qqrrrrq/zJJu+v1+hmz2eyta62UUpBERCAJSUhCEpKQBIAkACRxP0m8IJL417DN82Ob+9nm38o2trGNbWxjG9vYxja2sY1tbGMb29jGNraxjW1sYxvb2MY2trHNA9nGNvezzf1s80C2eW62AbDNc7MNgG1s80C2sY1tbGOb+9nGNraxjW1s84xnPIP3fM/3fOlf+IVf+Bquuuqqq6666qqr/m+iHD9+nKuuuuqqq6666qr/6zJzt+/7j661UkqhlIIkJCEJSUhCEpIAkASAJO4niRdGEi+MbZ6bbQBscz/b3M82trGNbf4nso1tHsg297PN/WzzL7ENgG1sYxvb3M82ALaxjW1eENsA2MY2ALaxzdHREY985COP33vvvb9z9uzZW7nqqquuuuqqq676v4dy/Phxrrrqqquuuuqqq/6vk7S7Xq+fMZvN3rrWSimFiEASEYEkACQhCQBJAEgCQBL/lWzz/NjGNraxjW1sYxvb2MY2trGNbWxjG9vY5j+LbR7INvezzfNjm+fHNi+IbQBsYxsA29jGNraxjW3uZxvb2MY2mUlmMo4jr//6r//g3/qt3/oerrrqqquuuuqqq/7voRw/fpyrrrrqqquuuuqq/w8yc7fv+4+utVJKISKICCQhCUncTxKSkMT9JPGikMS/lW0eyDb/GWxjG9vYxja2sY1tbGMb29jGNraxjW1sY5vnxzb/Etu8KGzz/NgGwDYAtrGNbV4Q29jGNraxjW0ODg5427d92wf/wz/8w++cPXv2Vq666qqrrrrqqqv+b6EcP36cq6666qqrrrrqqv8PJO2u1+tn9H3/1l3XERFEBJKICAAkIQlJSAJAEgCS+LeQxL/ENi+Ibf6nss3zY5v72ebfwzbPzTb3s41t7mcb29jGNraxDYBtbANgm8zk6OiIm266icy89R/+4R9+h6uuuuqqq6666qr/WyjHjx/nqquuuuqqq6666v+LzNwtpbx113XHSylEBBGBJCQhCUlIQhIAkgCQxItKEv9WtnlutvmfyjYvKtv8W9jGNvezzf1sA2Ab27wwtrGNbWxjm8zk3nvv5c3f/M0f/Au/8Atfw1VXXXXVVVddddX/LZTjx49z1VVXXXXVVVdd9f+FpN3lcnmp7/u37rqOUgoRgSQkIQlJSEISAJKQxHOThCQk8aKSxFUvnCTuZ5sHso1tHsg2ALYBsI1tbPNAtgGwjW1sY5vM5Pz58zzsYQ87fvbs2d85e/bsrVx11VVXXXXVVVf930E5fvw4V1111VVXXXXVVf/P7Np+6b7vH1xrJSKQhCQkIYn7SUISAJK4nyQeSBLPTRL3k8QLI4n/ryRxP0k8P7Z5YWwDYBvb3M82trHN/WxjG4DMxDaZydbWFidOnLj1H/7hH36Hq6666qqrrrrqqv87KMePH+eqq6666qqrrrrq/xNJu+M4PqPv+/fuuo6IICKQREQgCUlIQhKSAJAEgCSeH0n8R5DEc5PE/1SS+K9gmxfENgC2AbCNbWzzQLYBsI1tbGObzOTs2bO81mu9Fr/1W7/1PVx11VVXXXXVVVf930E5fvw4V1111VVXXXXVVf/fSLq1tfbafd8/uNZKRBARSEISkpCEJCQBIAkASbwgknggSTw3SfxfIIkXRBLPjyReEEk8kCTuZ5sXxjb3s41t7mcb29jmfraxjW1sk5kcHR3xEi/xEg8+d+7c79x33323ctVVV1111VVXXfV/A+X48eNcddVVV1111VVX/X80TdPv1Fo/utZKKYWIICKQhCQAJCEJAEkASOKFkcTzI4kHksRzk8Rzk8R/Nkn8Z5HEv5Yknh/bvCC2AbANgG1sY5sHsg2AbWxjG9u01tja2uL48eO3/sM//MPvcNVVV1111VVXXfV/A+X48eNcddVVV1111VVX/X8kaXe9XjOfz1+71kpEIAlJSEIS95OEJAAk8S+RxP0k8cJI4gWRxL+HJP6rSeJfIgkASTw3Sbwwtnl+bANgGwDb3M82trENgG0AbAOQmWQm9913H6/92q+t3/qt3/purrrqqquuuuqqq/5voHLVVVddddVVV131/1hmfs/R0dF7d1334FIKEUFEIAlJSMI2trENgG3+rSRhG0nYRhK2AZCEbe4nCdu8IJL4l9jmv4okAGxzP0nYBkAStnl+JGGbB5LEv4YkbCMJ20jCNveThCQAJCEJSUgiIiilcHh4yD333PNgrrrqqquuuuqqq/7voBw/fpyrrrrqqquuuuqq/68k7R4dHV2azWZv3XUdpRQkIQlJSEISkgCQhCReFJK4nyReGEk8kCSeH0n8d5HEv4Yknh9JvCCSAJDEC2Ob58c2ALYBsM39bGOb+9nGNraxTWbSWuO66647Po7j75w9e/ZWrrrqqquuuuqqq/73oxw/fpyrrrrqqquuuuqq/88i4q9ba6/ddd2DSylEBBGBJCQhCQBJSEISDyQJSUjiuUniuUkCQBLPjyQeSBL/kSTxn00SDySJ5yYJAEkASOK5SeK52eYFsc39bANgG9vY5n62AbCNbWxjG9vcd999vMM7vMODf+u3fut7uOqqq6666qqrrvrfj8pVV1111VVXXXXVVaxWq/dZrVZP77qOUgoRgSQkIQlJ2MY2mUlEcD/b3E8Stnl+JGGb5yYJ2wBIwjYAkgCwzQsiiX8t2/xnkMT9bHM/SdgGQBK2eWEkYRtJ2OYFsc1zk4RtnpskJGEbAElIQhKSkIQkIoKDgwPuvvvuB3PVVVddddVVV131fwPl+PHjXHXVVVddddVVV/1/J2n36OjoGbPZ7K1rrUQEkpCEJCRxP0lI4n6SeCBJPJAk7icJAEk8N0ncTxLPTRL/FSTxH0US95PE/SQBIAkASQBI4rlJ4l/DNvezDYBtbGMbANvYBsA2trFNZtJa48yZM8dba79z9uzZW7nqqquuuuqqq676341y/Phxrrrqqquuuuqqq64CSX/dWnvtvu8fXEohIogIJCEJSUhCEpK4nySemyQeSBLPjyQAJHE/STyQJP61JPHfSRIPJIn7SeJfIgkASbwwtnl+bANgGwDb3M8297MNgG1sYxvbTNPEK73SK/Gnf/qnP8NVV1111VVXXXXV/25Urrrqqquuuuqqq656luVy+T7L5fLptVYigohAEpKQxANFBAC2eX4kYZvnJgnbSMI2DyQJ29xPErZ5bpJ4YWzzbyWJfy/b3E8StgGQhG0AJGEbSdhGEraRhG0kYRsASfxbSMI2krDNc5MEgCQkERFEBPv7+7zYi73Ya3PVVVddddVVV131vx/l+PHjXHXVVVddddVVV111haTd5XL5jL7v37rWSkQgCUlIQhKSkIQkACTxgkjifpJ4fiQBIIn7SeKBJPFvIYn/LpJ4IEncTxIvKkncTxL3sw2AbZ4f2wDYBsA2z49tbGMb22Qmh4eHPPKRjzx+7733/s7Zs2dv5aqrrrrqqquuuup/L8rx48e56qqrrrrqqquuuurZJP11a+3BXde9dCmFiEASkpDEA0kCQBL/GpIAkMRzk8QDSeL5kcR/JEn8Z5HE/SRxP0kASAJAEgCSAJAEgCT+tWxzP9sA2MY2trGNbQBsYxvb2CYzWa1WvPRLvzR/+qd/+jNcddVVV1111VVX/e9FcNVVV1111VVXXXXV81itVp+zXC5vXa/XTNNEa43WGpmJbWxjG9vYxja2sY1tbGMb2wDYxjYAtrGNbWxjGwDbANjGNvezjW2em21sYxvb2MY2trGNbf41bGMb29jGNraxjW3uZxvb2MY2trGNbWxjG9vY5n62sQ2AbWwDYBsA2wDYBsA2ALYBsI1t/jUk8YJIQhKSuJ8kIgJJRAS33XYbL/ZiL/baXHXVVVddddVVV/3vRjl+/DhXXXXVVVddddVVVz0nSbur1epnuq776ForEYEkJAEgiftJAkAS/xqSAJAEgCTuJ4n7SeL5kcS/lyT+q0jifpJ4YSQBIIn7SeIFsc0LYhsA29zPNraxDYBtbGMb29jm8PCQhz70ocfPnTv3O2fPnr2Vq6666qqrrrrqqv+dKMePH+eqq6666qqrrrrqqudrd7Va0ff9a9dakYQkJCEJAEkASAJAEs+PJO4niRdGEveTxANJ4kUhiX8PSbwobPMvkcQDSeJ+kgCQBIAknh9JAEjiX8s2ALYBsI1tAGxjGwDbZCa2yUwyk5d7uZcjM2/9h3/4h9/hqquuuuqqq6666n8nyvHjx7nqqquuuuqqq6666gX6nXEc6brutUspRASSkASAJCQhCQBJvCgkASAJAEkASAJAEveTxPMjiX8tSfxbSQLANv9WkrifJAAkASAJAEkASAJAEgCSAJDEv5ZtAGxjGwDb3M82ALaxjW1aa9x99928yqu8Cr/1W7/1PVx11VVXXXXVVVf970Tlqquuuuqqq6666qoXar1ef8/+/v5rl1JeOyKQhCQAJHG/iCAziQieH0nY5gWRhG0eSBK2AZDEA9lGEv8atnluknhR2EYSz49tXhhJANgGQBK2kYRtJGEbSdhGEraRhG0kYRtJ2ObfQxK2eSBJAEhCEhFBKYX9/X3OnDnzYK666qqrrrrqqqv+96IcP36cq6666qqrrrrqqqteMEm7wzD8TkS8ddd1xyUREUhCEg8kCQBJ/EskASCJB5IEgCTuJ4kHksSLQhL/GpJ4YSTxQLZ5bra5nySemyQAJPHCSAJAEgCSAJDE82ObF8Y2ALaxzQPZBsA2trFNZnJwcMDDH/7w4+fOnfud++6771auuuqqq6666qqr/vehctVVV1111VVXXXXVi+LW3d3d1+n7/umSkMRzk0RmEhFkJhHBc5OEbZ6bJGwjCdtIwjaSALCNJO5nGwBJvDC2uZ8k/iW2AZDEv8Q2D2Sb52ab+0kCwDYPJAnbSMI2krANgCRsIwnbSMI2AJL4t5KEbe4nCQBJSEISkqi18pSnPIWrrrrqqquuuuqq/8Uox48f56qrrrrqqquuuuqqF8nu0dHRM2az2VtHBBGBJAAkIQlJAEgCQBIvjCSemyQAJHE/SdxPEg8kiX8tSbwoJPFAkgCwzf1s80C2eW6SeCBJAEgCQBIAkgCQxP0kASAJAEk8kCRs86KwDYBtbGMb29gGwDa2sY1tWmuM48hDH/rQW//hH/7hd7jqqquuuuqqq67634fgqquuuuqqq6666qoXme3vPnv27PscHR0xDAPTNNFaIzNprZGZ2CYzsU1mYhvb2MY2trGNbWxjG9sA2MY2trGNbQBscz/b2OaBbGMb29jGNi+MbWzzL7HNC2Ob+9nGNs+PbWxjGwDbANjGNraxjW0AbANgG9sA2AbANg9km38LSUhCEpIAkIQkJCGJiGB/f58Xf/EXfx2uuuqqq6666qqr/neictVVV1111VVXXXXVv0pmfvf58+cfJOmzeYBaK/eLCDKTiCAzkYQkJCGJB5KEbQAkYRtJ2EYStpGEbSRxP9tIwjbPj20AJPGC2EYSL4xtJHE/2zw32wDY5gWRBIBtHkgStpGEbQAkYRtJ2AZAEraRhG0k8dxs80CSsM39JGEbSdjmgSRxP0lIIiLY29vj3nvvfTBXXXXVVVddddVV/ztRjh8/zlVXXXXVVVddddVV/zqZ+Tvr9Zq+7187IpAEgCQAJCEJAEn8W0gCQBIAknggSUjiRSWJF0QSL4wkACRhGwDbANgGwDb3s80DSeKBJAEgCQBJAEjifpIAkMT9JAEgiftJ4vmRxP1scz/bANjGNvezDYBtbJOZ2Ka1xqu/+qsfv/fee3/n7Nmzt3LVVVddddVVV131vwvl+PHjXHXVVVddddVVV131r5eZv7Ner+m67rUjAkkASAJAEveTxAsjiftJ4n6SAJAEgCSemyQAbHM/STw/knh+JPGCSOJ+krDN/WwDYBsA2/xLJAEgiQeSBIAk7icJAElIAkASAJL417DN/WxjGwDb2AbANgCZiW0yk9Ya6/WaG2644dZ/+Id/+B2uuuqqq6666qqr/nchuOqqq6666qqrrrrq32wcx885e/bs+6xWK4ZhYJompmkiM2mtkZlkJplJZmIb29jGNraxjW1sYxvbANjGNgC2AbCNbZ6bbR7INs+PbZ4f2/xLJPH82AbANgC2sY1tbGMb29gGwDa2sY1tAGxjG9vYBsA2tgGwjW0AbANgm38PSTw3SQBIQhKSiAhuvfVWXvzFX/y1ueqqq6666qqrrvrfh8pVV1111VVXXXXVVf8u0zR997333ss111zzXba5XymFB4oIMhNJRAT/EknYBkAStpEEgG0k8cLYRhLPzTaSeFFI4oEkAWCbB7KNbQBs8/xIwjYAkrCNJGwjCdtIwjYAkrANgCRsAyAJ20jCNpJ4UUjCNs+PJCQBIAlJSEISEUEphTNnzjyYq6666qqrrrrqqv99CK666qqrrrrqqquu+nebpum777777occHBzculqtGMeRaZpordFaIzNprZGZ2CYzyUwyk8wkM7GNbWxjG9sA2MY2ALaxDYBtbPPC2OY/i21sYxvbANgGwDa2sY1tAGxjGwDb2MY2trGNbWwDYBvbANjGNvezDYBtAGzzQLYBsM1zkwSAJAAkIYn7SeJ+kpBERLC/v8999933YK666qqrrrrqqqv+96EcP36cq6666qqrrrrqqqv+Q+weHR39zHw+f2vgOM8kiedHEi8KSdxPEveThCQkAWCb+0nigSTx3CTxQJJ4bpK4nyQigszk+bGNbQBscz9JPD+SAJAEgCTuJ4n7SUIS95MEgCQAJPGvYRsA2wDYxja2sQ2AbWyTmWQmrTUWiwWttd85e/bsrVx11VVXXXXVVVf970E5fvw4V1111VVXXXXVVVf9h9k9PDz8mXEcd7uue21JSOJfIol/DUncTxK2eX4kcT9JPDdJPJAkHkgSAJKQhCQyEwDb2MY2trGNbQBs828hiftJ4oEkIQkASQBIAkAS/xq2AbCNbe5nG9vYxja2yUwyk2EYeNjDHnbrP/zDP/wOV1111VVXXXXVVf97EFx11VVXXXXVVVdd9R/K9q2Hh4efc/fdd7/OwcHBravVinEcmaaJ1hqZSWaSmWQmtslMMpPMxDa2sY1tbGMb29jGNraxjW0eyDa2uZ9t7mcb2zyQbV4Utnkg2wDYxja2sY1tbGMb29jGNraxDYBtbGMb29gGwDa2AbCNbe5nG9vYBsA2/1EkcT9JSEISkpCEJCSxv7/Pi7/4i782V1111VVXXXXVVf+7EFx11VVXXXXVVVdd9Z9imqbfvvfee1/nvvvu++zVasUwDEzTxDRNTNNEa43MpLVGZpKZ2CYzyUwyk8wkM7GNbWwDYJsHso1t7mcb2wDYxjb3s41t7meb+9nmgWxjmweyjW1sYxvbZCaZiW0yE9vYxja2sY1tbGMbANsA2MY2ALaxDYBtbGOb+9nGNvezDYBtbPOvJYkXRhKSiAj29vY4c+bMg7nqqquuuuqqq67634Vy/Phxrrrqqquuuuqqq676z2F7dxiG31kul8+otb60pOO8iCTx/NjmfraptWIb27wgknggSTw/knggSQBIAkASrTVsk5nYJjOxjW1s89xs86KSxP0kIYkHkoQk7icJAEn8a9kGwDa2sQ2AbQBsY5vMJDPJTB7xiEccv++++37n7Nmzt3LVVVddddVVV131vwPl+PHjXHXVVVddddVVV131n6u19teHh4c/MwzDbt/3r52ZSMI2ALb517DN/UoptNYAsI1tnpttbHM/2zw/tnkg2zyQJFpr2MY2mUlmYhvb/FtI4oEk8UCSkMQDSUISAJIAkMS/hm0AbHM/2wDYxja2sY1tpmliNptx7733fs/Zs2dv5aqrrrrqqquuuup/B8rx48e56qqrrrrqqquuuuo/n+3dYRh+Z29v73umadrt+/61bWMbANvYBsA2ALZ5fmxzv4ggM7GNbWwDYBsA29gGwDa2sQ2AbWwDYBvbANjGNraxzf1s01qjtYZtMpPMxDa2sY1tbGOb+9nmX0MSz00SknggSQBIAkASL4gkbPNAtgGwjW1sYxsA29jGNplJa42HPOQhHD9+/NZ/+Id/+B2uuuqqq6666qqr/negHD9+nKuuuuqqq6666qqr/uvY3l2v17+zt7f3PcMw7EbEg4HjtrGNbWxjm/vZxja2sY1tbGObUgqtNTIT29jGNraxjW1sYxvb2MY2trGNbWxjG9tkJraxjW1sYxsA24zjSGaSmWQmtrGNbWxjG9sA2OaBbPP8SOK5SUISz00SkpAEgCQkASCJB7LNc7PN/WwDYBvb2MY2trGNbWyTmWQm4zjySq/0SvzWb/3W93DVVVddddVVV131vwOVq6666qqrrrrqqqv+W7TWbr106dLn7O/vf/d8Pn+dra2t1zp16tR7j+NIKYVSChFBRBARSCIiAJCEJCQREUzThG0eSBL3k8QDSeKBJPFAknggSUhCEuM4kpnYxja2sc0DSUISAJKQhG0k8YJIwjbPTRL3s80DSQLANpKwjSReGEnYBkAStgGQhCQkASAJSQBIQhKXLl3izJkzD+aqq6666qqrrrrqfw8qV1111VVXXXXVVVf9t8rMZxwdHX330dHRd58/f/5zJLFYLF5rc3PztWez2YO3t7dfOyKQhCQkASCJiMA24zhimweSxP0k8fxI4rlJ4rlJQhIArTUyk/vZRhIAkpAEgCQkIQlJSOJ+tpHEc5OEbV4QSdzPNveThG0kYZt/iSRscz9J2OZ+krifJCQREVy6dAngwddcc82D77vvvlu56qqrrrrqqquu+p+PylVXXXXVVVddddVV/2O01m4F2N/fv3V/f/97eKZa64MB11ofIola64MBSimWpNYaD2BAPCcD4jkZEM/JgHhOliSeyTYR4c3Nzdfu+/7BW1tbrw1QSkESEYEkIgJJSEISkpCEJCTxgkgCwDYvjCTuZxtJ/EeShCTuJ4mI4Ny5c5w5c+bB9913361cddVVV1111VVX/c9H5aqrrrrqqquuuuqq//GmaboVYJqmZ/A/xO7u7vcA1FofvL29/V6nTp16777vH1xKoZRCRBARRASSkERE8KKSxAtimweSBIBtJPGikIRtJGEbAElI4oEkIQlJRARPetKTuOaaax78D//wD1x11VVXXXXVVVf9L0A5fvw4V1111VVXXXXVVVdd9W+Vmbur1ep3Ll269NPr9Xp3Pp+/tm1s88JI4t9KEpKQhCTuJwkASbwobANgGwDb2AbANgC2sU1m0lpje3ubnZ2dv/6Hf/iH3+Gqq6666qqrrrrqfz6Cq6666qqrrrrqqquu+g/QWnvGpUuXPuepT33qQy5evPjb6/WacRyZpolpmshMMpPMxDaZSWZiG9vYxja2sY1tbGMb29jGNraxjW1sY5v72QbANi8KSbwgknggSUQEly5d4sVf/MVfm6uuuuqqq6666qr/HQiuuuqqq6666qqrrrrqP1Br7dZ77733fe65557PXq1WjONIa43WGq01MpPMxDa2yUxsYxvb2MY2trHNi8o2D2SbF5UkXhBJSAJAEru7u1x11VVXXXXVVVf9L0Llqquuuuqqq6666qqr/oNl5q17e3uf01rjmmuu+ez5fI5tSik8UEQAkJlEBA8kCQDbvCgkAWAbSQDY5l9LEpIAkMT9JCGJ/f19zpw582Cuuuqqq6666qqr/ncguOqqq6666qqrrrrqqv8kh4eHn3PXXXd99mq1YhxHWmu01shMMpPMxDa2sY1tbANgG9vYxja2sY1tnh/b2OZfSxL3k8T9JHE/SUhCEgDnzp17MFddddVVV1111VX/O1COHz/OVVddddVVV1111VVX/Wdprf3OMAzM5/PXloQkACRxP0kASAJAEs9NEpKQxPMjCUlIAkASL4gkbHM/2wDYxja2sQ2AbTIT22QmrTVe+qVfmvvuu+937rvvvlu56qqrrrrqqquu+p+NylVXXXXVVVddddVVV/0nOzo6+px7772Xa6+99rMlASCJB4oIbANgmweShG2eH0nczzYAkrCNJJ6bJGwjCdu8KCQBIAlJPPnJT+aqq6666qqrrrrqfwmCq6666qqrrrrqqquu+i9wdHT0Pbu7u789DAPTNNFaIzOxjW1sYxvb2MY2tgGwjW1s89xsYxvb/FtJ4n6SkIQkHkgSkogILl26xGMf+9jX4qqrrrrqqquuuup/PoKrrrrqqquuuuqqq676r3Hr7u7u+yyXS8ZxZJomWmtkJplJZpKZ2MY2tgGwjW1sA2Ab29jGNs/NNrYBsM0LI4kHksRzk4Qk7ieJ3d1drrrqqquuuuqqq/6XILjqqquuuuqqq6666qr/IrZvvffee99nGAamaSIzaa2RmdjGNraxjW1sY5v72cY2trmfbWxjG9vczzYAtgGwzb+WJO4nCUlI4tKlS7z4i7/463DVVVddddVVV131Px/BVVddddVVV1111VVX/RdqrX33xYsXf3scR6ZpIjPJTDIT29jGNraxjW1sYxvb3M82trHNc7PNA9nmBZEEgCSeH0lIAkASkpDENddc82Cuuuqqq6666qqr/ucjuOqqq6666qqrrrrqqv9i+/v777Ner5mmidYamUlmkplkJpmJbWxjG9vYBsA2trHN/WxjG9vY5n62+beQhCQeSBIAkrh06RL33XcfV1111VVXXXXVVf8LEFx11VVXXXXVVVddddV/vVvPnTv33cMwME0TmUlmkpnYxja2sQ2AbQBsY5v72cY2z49tXlSSuJ8k7ieJB5IEgCQkPeiaa655MFddddVVV1111VX/sxFcddVVV1111VVXXXXVf4P1ev05wzAwTRPTNJGZ2CYzsY1tbGMb29jGNgC2sc39bGMb29jGNvezzYtKEs+PJO4nCUmcP3+eM2fOPJirrrrqqquuuuqq/9kIrrrqqquuuuqqq6666r+BpFvvu+++9xmGgdYamUlmYhvb2MY2trGNbQBsYxsA29jGNv9ZJAEgCUlIQhIXLlzgmmuueTBXXXXVVVddddVV/7NRueqqq6666qqrrrrqqv8m0zT99nq9pus6SilEBJKQhCRsYxtJ2MY2AJKwDYAkAGzz/EjCNpJ4bpKwDYAkbPMvkUREUGvlzJkzD+Kqq6666qqrrrrqfzaCq6666qqrrrrqqquu+m8SEbeePXv2s4dhYJomWmtkJrbJTGxjG9vYxjYAtrENgG1s8y+xDYBtACQBIInnJglJSAJAEgCSAJDEU5/6VK655poHc9VVV1111VVXXfU/G8FVV1111VVXXXXVVVf9N8rM71mv17TWyEwyk8zENraxjW0AbGMb2wDY5n62sc1zs839bPMvkcTzIwkASQBI4qqrrrrqqquuuup/AYKrrrrqqquuuuqqq676bxQRt+7v7//2OI601shMMhPbZCa2sY1tAGwDYBsA29jmfraxjW1s86KQBIAknpsk7icJAElcunSJF3uxF3ttrrrqqquuuuqqq/5nI7jqqquuuuqqq6666qr/ZkdHR5+9Xq+ZponMxDaZiW1sYxvb2MY2tgGwjW0AbGOb58c2/1EkIQlJXHXVVVddddVVV/0vQHDVVVddddVVV1111VX/zUopv3NwcPDb0zTRWiMzsY1tbGMb29gGwDa2sQ2Abe5nG9vczzYvCkm8IJKQxP0kcenSJa666qqrrrrqqqv+FyC46qqrrrrqqquuuuqq/wEODg5+exxHWmu01shMbJOZ2MY2trENgG0AbANgmweyjW3uZ5sXlSQkIYkHkoQkACQh6cFcddVVV1111VVX/c9GcNVVV1111VVXXXXVVf8DSPqecRxprZGZZCaZiW1sYxvb2MY2ALYBsA2AbWzz7yGJB5LEc5OEJM6dO8c111zzYK666qqrrrrqqqv+5yK46qqrrrrqqquuuuqq/wEi4tbDw8Pfbq2RmWQmtrGNbWxzP9vYBsA2ALa5n21sYxvb2OYFkcT9JPGCSOKBJCGJq6666qqrrrrqqv/hCK666qqrrrrqqquuuup/iIODg9+eponWGplJZmIb29jGNrYBsI1tAGwDYBvbvCC2eX4k8cJIAkASkpAEwLlz5zhz5syDueqqq6666qqrrvqfi+Cqq6666qqrrrrqqqv+h4iI75mmiczENplJZmIb29jGNra5n20AbHM/2/xrSeJfQxIXLlzgqquuuuqqq6666n84gquuuuqqq6666qqrrvofIiJuPTw8/O3WGpmJbWxjG9vYxja2sY1tAGwDYJv72cY2trGNbQBs88JIQhKSkMRzk4QkJBERXHXVVVddddVVV/0PR3DVVVddddVVV1111VX/gyyXy99urZGZ2MY2mYltbGOb+9nGNgC2AbCNbf6jSAJAEg8kib29Pa655poHc9VVV1111VVXXfU/F8FVV1111VVXXXXVVVf9D9Ja+53WGpmJbWxjG9vYBsA2trmfbQBscz/b/Esk8UCSeGEkASAJANucOXPmQVx11VVXXXXVVVf9z0Vw1VVXXXXVVVddddVV/4NIunWaJjKTzMQ297ONbWxjG9vYBsA2ALa5n21sA2Ab2wDY5l9DEs9NEru7u1x11VVXXXXVVVf9D0dw1VVXXXXVVVddddVV/4NExK1HR0e/nZnYxja2sY1tbGOb+9nGNgC2AbDNA9nmhZHEA0lCEs+PJK666qqrrrrqqqv+FyG46qqrrrrqqquuuuqq/2GWy+Vvt9bITGxjG9sA2AbANra5n20AbANgmxfGNg8kCQBJ3E8Sz48kJCGJa6655sFcddVVV1111VVX/c9FcNVVV1111VVXXXXVVf/DZObvZCaZSWZiG9vYBsA2trGNbWwDYBsA2wDYxjYPZJt/DUkASEISD7S7u8s111zzYK666qqrrrrqqqv+5yK46qqrrrrqqquuuuqq/2Ek3dpawza2sc39bGOb52abB7LN/WxjG9u8MJL4l0gCQBJXXXXVVVddddVV/wsQXHXVVVddddVVV1111f8wEXHrcrn87czENraxjW3uZxvb2MY297PN/WzzH0ESDyQJAElcddVVV1111VVX/Q9HcNVVV1111VVXXXXVVf8DjeNIZmIb29jGNraxjW0eyDa2AbDN/WzzwkjigSQhCUm8MJK4dOkSZ86ceTBXXXXVVVddddVV/3MRXHXVVVddddVVV1111f9A6/X6tzMT29jGNs/NNraxzf1sA2Cb+9nmgWwDYJv7SeK5SeKqq6666qqrrrrqfzmCq6666qqrrrrqqquu+h/I9m9nJraxDYBtbGOb58c2D2Sb+9nGNrZ5QSTx3CQBIAlJPLdrrrnmwVx11VVXXXXVVVf9z0Vw1VVXXXXVVVddddVV/zPdmplkJraxzQPZxja2sY1t7meb/yySkIQkAB73uMfdylVXXXXVVVddddX/XARXXXXVVVddddVVV131P1BEPMM2tgGwjW1s84LYxjYAtgGwzb9EEg8kCUn8SyRxzTXXPJirrrrqqquuuuqq/7kIrrrqqquuuuqqq6666n+o5XL527axDYBtAGxjG9vYxja2uZ9tAGwDYBvbvCgkcT9JAEjiqquuuuqqq6666n8pgquuuuqqq6666qqrrvofqrVGZmIb2wDY5oWxzQtim/9Ikrjqqquuuuqqq676H47gqquuuuqqq6666qqr/ocahuG3bWMb29gGwDYPZBvb2OZ+tgGwzQPZxja2eSBJSOKFkcT9JAEgiauuuuqqq6666qr/wQiuuuqqq6666qqrrrrqf6hxHLGNbe5nGwDb2MY2z802D2SbF5UkJCEJAEkASOJ+krjf2bNnueqqq6666qqrrvofjOCqq6666qqrrrrqqqv+5/qdzATANrZ5YWxjm/vZ5n62+Y8giftJQhJXXXXVVVddddVV/4MRXHXVVVddddVVV1111f9QtrGNbe5nG9s8kG1s80C2AbDNv5UkACRx1VVXXXXVVVdd9b8UwVVXXXXVVVddddVVV/0PFRG32sY2tnkg2wDY5rnZ5vmxzQsjCQBJvKgkcdVVV1111VVXXfU/GMFVV1111VVXXXXVVVf9D2Yb2wDY5oFs80C2sc39bANgm/vZ5oWRBIAkXhhJXHXVVVddddVVV/0vQHDVVVddddVVV1111VX/Q0XErTyTbQBsY5vnZpsXxjb3s80DSUISz48kXpjM5Kqrrrrqqquuuup/MIKrrrrqqquuuuqqq676H2wcx1ttA2CbF4VtbANgm38rSbwwkpDEVVddddVVV1111f9gBFddddVVV1111VVXXfU/WEQAYJsHss39bANgG9u8ILa5n22emyQAJPHcJCEJAEnc7/Tp01x11VVXXXXVVVf9D0Zw1VVXXXXVVVddddVV/4MNw3CrbZ4f29jmBbENgG1eVJIAkMT9JHHVVVddddVVV131vxTBVVddddVVV1111VVX/Q9mmweyjW3+JbZ5fmzzryGJB5LEA9133323ctVVV1111VVXXfU/F8FVV1111VVXXXXVVVf9DxYR3M82L4htAGxjm/vZBsA2L4wk7icJAElcddVVV1111VVX/S9H5aqrrrrqqquuuuqqq/4HG8fxVtvY5j+bJABsI4mrrrrqqquuuuqq/wMIrrrqqquuuuqqq6666v8o2zyQbQBsc9VVV1111VVXXfX/BMFVV1111VVXXXXVVVf9D2ab58c297MNgG3uZ5v72eaFkcT9JCGJF9WpU6e46qqrrrrqqquu+h+M4Kqrrrrqqquuuuqqq/4Xs81zs82/liQkcT9JSEISkrjqqquuuuqqq676X4rgqquuuuqqq6666qqr/peyzb/ENgC2AbDNv4Ukrrrqqquuuuqqq/4XIrjqqquuuuqqq6666qr/wSTxr2Gbfw9JSOKqq6666qqrrrrq/wiCq6666qqrrrrqqquu+j/KNi+MbR5IEveThCRemFIKZ8+evZWrrrrqqquuuuqq/7kIrrrqqquuuuqqq6666n8wSfx72eb5kYQkACRxP0k8P5J4oK2tLa666qqrrrrqqqv+hyO46qqrrrrqqquuuuqq/8H6vn+wJP4ltrmfbWzz3Gzz/EjifpJ4IEm8IJK46qqrrrrqqquu+h+O4Kqrrrrqqquuuuqqq/4Ha60BIIn/bJK4nyT+JcePH+e+++67lauuuuqqq6666qr/uahcddVVV1111VVXXXXV/2CS+M9gmweSBIAkJAEgiRfGNlddddVVV1111VX/wxFcddVVV1111VVXXXXV/2G2eW62eX4k8fxI4qqrrrrqqquuuup/KYKrrrrqqquuuuqqq676H04SAJL4t7LNCyKJ+0lCEpL4lxw/fpz77rvvVq666qqrrrrqqqv+5yK46qqrrrrqqquuuuqq/8FqrQ/m38g2L4gkHkgSknhukrjqqquuuuqqq676X4zKVVddddVVV1111VVX/T8miRdEEi+IbWxz9uzZZ3DVVVddddVVV131PxfBVVddddVVV1111VVX/Q9mm38L2zw/tnl+JAEgCUlI4l9y4sQJrrrqqquuuuqqq/6HI7jqqquuuuqqq6666qr/wSTx72WbF0YSAJK46qqrrrrqqquu+j+G4Kqrrrrqqquuuuqqq/6PsM2/lyReVCdOnOCqq6666qqrrrrqfziCq6666qqrrrrqqquu+h9sNps9mP8kkpAEgCQkASCJF4Vt7rvvvlu56qqrrrrqqquu+p+L4Kqrrrrqqquuuuqqq/4Hy0wk8cLY5n62+deSxHOThCSeH9sA2Oaqq6666qqrrrrqfziCq6666qqrrrrqqquu+j/GNs+PbV4QSUhCEpL4l9jm5MmTnD179lauuuqqq6666qqr/uciuOqqq6666qqrrrrqqv/BbPPvYZvnJokHksQLIgkASTw321x11VVXXXXVVVf9D0flqquuuuqqq6666qqr/geTxH8mSdxPEv8ap06d4qqrrrrqqquuuup/OCpXXXXVVVddddVVV131P1RmPpj/RJK4nyTuJwlJvCjuu+++W7nqqquuuuqqq676n4vgqquuuuqqq6666qqr/heQxP1scz/bANjmudnmRSEJAElI4kVhG9tcddVVV1111VVX/Q9H5aqrrrrqqquuuuqqq/4fkgSAJAAk8dwk8YJI4tSpU1x11VVXXXXVVVf9D0dw1VVXXXXVVVddddVV/wfZ5oFs84JI4oEk8UCSsM0D2ea+++67lauuuuqqq6666qr/2Qiuuuqqq6666qqrrrrqfzBJvCC2eSDb/FtJQhKSAJDEA0kCwDYAkrjqqquuuuqqq676X4Dgqquuuuqqq6666qqr/ofKzAfzAtjm+bGNbV4UkpCEJP61dnZ2OHv27K1cddVVV1111VVX/c9G5aqrrrrqqquuuuqqq/6XsM1/FklI4gWxzVVXXXXVVVddddX/QgRXXXXVVVddddVVV131P5QkXhS2eVFJ4l8iiRfGNseOHeO+++67lauuuuqqq6666qr/2ahcddVVV1111VVXXXXV/0OSkIQkJCEJSbwwtrnqqquuuuqqq676X4bgqquuuuqqq6666qqr/ofKzAcDSOJ+tvnXss2/liSuuuqqq6666qqr/g8guOqqq6666qqrrrrqqv+hJCGJ/2iSuJ8kJCEJSQBIAkAS95PEAx0/fpz77rvvVq666qqrrrrqqqv+ZyO46qqrrrrqqquuuuqq/6Ek8aKyzX8ESbwobHPVVVddddVVV131vwDBVVddddVVV1111VVX/Q8liX+Jbf6tJAEgCUlI4rlJ4qqrrrrqqquuuup/MYKrrrrqqquuuuqqq676H0oS/xq2eW62eX4kASAJAEkASEIS/5ITJ05w9uzZZ3DVVVddddVVV131PxvBVVddddVVV1111VVX/Q8liX8t2/xrSQJAEveTxAtjm6uuuuqqq6666qr/BQiuuuqqq6666qqrrrrqfyjbD+LfwDa2sc0LIwlJSEISkpDEi+LEiRNcddVVV1111VVX/S9A5aqrrrrqqquuuuqqq/6Higgk8V9NEs+PJO5nm/vuu+9Wrrrqqquuuuqqq/5nI7jqqquuuuqqq6666qr/oSTxwtjm30ISkpCEJCQhCUlIAkASknhBbHPVVVddddVVV131vwDBVVddddVVV1111VVX/Q8liefHNg9km38vSdxPEi+MbU6cOMHZs2dv5aqrrrrqqquuuup/NipXXXXVVVddddVVV131/4QknpskJAEgCUm8KGxz1VVXXXXVVVdd9b8AwVVXXXXVVVddddVVV/0PJenBvAC2+feQhCQkIQlJSOJFdfLkSa666qqrrrrqqqv+FyC46qqrrrrqqquuuuqq/6Ek8aKyzYtCEs+PJAAkIQlJ/Evuu+++W7nqqquuuuqqq676n43KVVddddVVV1111VVX/Q8miReVbQAk8aKQhCQkASCJ5yaJ58c2V1111VVXXXXVVf8LULnqqquuuuqqq6666qr/oSTxn0ESkrifJCQhCUlIAkASL8ipU6e46qqrrrrqqquu+l+A4Kqrrrrqqquuuuqqq/6HksS/xDb/VpKQBIAkACTx3CTx3M6ePfsMrrrqqquuuuqqq/7no3LVVVddddVVV1111VX/Q9VaH8x/MklIQhL3k4QkXhBJXHXVVVddddVVV/0vQeWqq6666qqrrrrqqqv+h8pM/jNJAkASkgCQxL9kZ2eH++6771auuuqqq6666qqr/uejctVVV1111VVXXXXVVf9DSeI/gyQkASAJSQBI4qqrrrrqqquuuur/GIKrrrrqqquuuuqqq676X842D2SbF0QS95OEJAAkASAJSUhCEs/PsWPHuO+++27lqquuuuqqq6666n8+KlddddVVV1111VVXXfU/VN/3D+Y/iSTuJwlJXHXVVVddddVVV/0fRHDVVVddddVVV1111VX/Q7XWeGFscz/b/GtJQhKSkIQkJCGJ+0niqquuuuqqq6666n8xKlddddVVV1111VVXXfU/mCQkcT/bvCC2AZCEbV4QSdxPEpKQBIAkACTxghw7doz77rvv6Vx11VVXXXXVVVf9z0dw1VVXXXXVVVddddVV/8PZ5j+CJO4nCUkASEIS95PEC2Obq6666qqrrrrqqv8lqFx11VVXXXXVVVddddX/UJIAkMS/lySemyQkIQkASUjiqquuuuqqq6666v8Qgquuuuqqq6666qqrrvpfyDb/FpKQhCQAJCEJSUhCEpIAkMT9JHG/48ePc/bs2Wdw1VVXXXXVVVdd9T8flauuuuqqq6666qqrrvofqpTyYJ4P20ji30sSkpCEJB5IEi+Iba666qqrrrrqqqv+l6By1VVXXXXVVVddddVV/0NJ4l9iG0k8P7Z5QSQhCUkASAJAEs9NEg90/Phxrrrqqquuuuqqq/6XILjqqquuuuqqq6666qr/oWzzn0ESDyQJSQBIQhL/krNnz97KVVddddVVV1111f98VK666qqrrrrqqquuuup/Adu8ILaRxL+GJCQhCUlI4oEkIQlJPLfM5Kqrrrrqqquuuup/CSpXXXXVVVddddVVV131P5Qk/rVs88JI4n6SkIQkJAEgCUm8MCdOnOC+++67lauuuuqqq6666qr/+ahcddVVV1111VVXXXXV/0CZ+SCei21eENsASOIFkQSAJCQBIAlJSAJAEv8S21x11VVXXXXVVVf9L0Hlqquuuuqqq6666qqr/p+ShCQkIYn7SUISL8iJEye46qqrrrrqqquu+l+CylVXXXXVVVddddVVV/0vZRtJ/FtIQhKSkIQkACTxorjvvvtu5aqrrrrqqquuuup/PipXXXXVVVddddVVV131P5gk/iNJQhKSkIQkJCEJAElIAkASDySJq6666qqrrrrqqv9lqFx11VVXXXXVVVddddX/UJL4zyaJiEASDySJF+TEiRNcddVVV1111VVX/S9B5aqrrrrqqquuuuqqq/4Hsv1g/gNJ4n6SkIQkJCEJSQBIQhL3k4QkHui+++67lauuuuqqq6666qr/HahcddVVV1111VVXXXXV/3GSAJCEJO4nCUlIQhIAknh+JAEgiauuuuqqq6666qr/RQiuuuqqq6666qqrrrrqfyHbANjmudnmhZGEJCQhCUlEBJKQhCQk8fxsb29z9uzZW7nqqquuuuqqq67634HKVVddddVVV1111VVX/T8kCUlIQhKSkMQDSeKqq6666qqrrrrqfzkqV1111VVXXXXVVVdd9T9QZj6YF5Ft7ieJF0YSkgCQhCQkIQlJSEISL8ixY8e47777buWqq6666qqrrrrqfweCq6666qqrrrrqqquu+h9IEpJ4braxzb+XJCQhCUlIAkASkpDEVVddddVVV1111f8BVK666qqrrrrqqquuuup/IEn8R5MEgCQkIQlJRASSkIQkHkgSV1111VVXXXXVVf+LUbnqqquuuuqqq6666qr/gSTxn0ESAJIAkIQkJCEJAEkASOK57ezscNVVV1111VVXXfW/CJWrrrrqqquuuuqqq676H0gS/5EkcT9JAEgiIpCEJCQhCQBJ3E8SD3TffffdylVXXXXVVVddddX/DgRXXXXVVVddddVVV131v5Rt/q0kIQlJSCIikIQkJHHVVVddddVVV131fwTBVVddddVVV1111VVX/c/0YP6DSUISkpCEJCQREUhCEpJ4fiQBsLOzw9mzZ5/BVVddddVVV1111f8OVK666qqrrrrqqquuuup/IEn8Z5JERCAJSUhCEpKQhCSuuuqqq6666qqr/g+gctVVV1111VVXXXXVVf8DSUIS/1q2uZ8knh9JAEhCEpKQRETwQJKQxP0kcezYMa666qqrrrrqqqv+FyG46qqrrrrqqquuuuqq/4Ek8aKwzf1s8/xI4n6SAJCEJCICSUhCEpKQxAtim/vuu+9Wrrrqqquuuuqqq/53ILjqqquuuuqqq6666qr/gSLiwbyIbPMvkYQkACQhCUlIIiKICCQhCQBJXHXVVVddddVVV/0fQHDVVVddddVVV1111VX/A9nmhbHNA9nm+ZHEA0lCEpKQhCQkIQlJSEISDySJ++3s7HD27Nlbueqqq6666qqrrvrfgcpVV1111VVXXXXVVVf9DyQJAEn8Z5CEJCQREUhCEg8kiauuuuqqq6666qr/5ahcddVVV1111VVXXXXV/xOSkIQkJCGJiEASkpCEJCQhiefn+PHjXHXVVVddddVVV/0vQuWqq6666qqrrrrqqqv+B5LEfxZJSEISkpBERCAJSTyQJAAkcb/77rvvVq666qqrrrrqqqv+d6By1VVXXXXVVVddddVV/0NJ4j+KJJ6bJCQREUhCEpKQxAtim6uuuuqqq6666qr/RQiuuuqqq6666qqrrrrqf6CIeDDPxTYAtvm3koQkJBERRASSkIQkJAEgCUk8txMnTnDVVVddddVVV131vwjBVVddddVVV1111VVX/Q8kiX+JbV4UkgCQBIAkJCEJSUgiIpAEgCQeSBL3u++++27lqquuuuqqq6666n8PKlddddVVV1111VVXXfV/hG3+JZIAkIQkIoKIQBKSkASAJJ6bJK666qqrrrrqqqv+lyG46qqrrrrqqquuuuqq/0Vs828hCUkASEISkpCEJCQhCUlI4vnZ3t7m7Nmzt3LVVVddddVVV131vwfBVVddddVVV1111VVX/Q/Udd2DeRHYBsA2LwpJSEISkpBERBARSEISkgCQhCQAJCGJq6666qqrrrrqqv9lCK666qqrrrrqqquuuup/oMzkRWWbF0QSDyQJAElEBBGBJCQhCUkASOK5bW9vc999993KVVddddVVV1111f8eVK666qqrrrrqqquuuur/CUkASEISkpBERCAJSQBI4oEkcdVVV1111VVXXfW/FJWrrrrqqquuuuqqq676P04SkgCQhCQkIYmIQBKSkIQkrrrqqquuuuqqq/4PoXLVVVddddVVV1111VX/Q0niBbGNJP4tJCGJiEASEYEkIgJJSEISknig7e1trrrqqquuuuqqq/6XoXLVVVddddVVV1111VX/A0ni30sSDyQJSUgiIpBERCAJSUhCEg8kiQe67777buWqq6666qqrrrrqfw8qV1111VVXXXXVVVdd9T9QKeXB/CeShCQkEREASEISkrjqqquuuuqqq676P4Lgqquuuuqqq6666qqr/g+SxANJQhKSkIQkIoKIQBIRgSTuJ4kHksTOzg5nz559BlddddVVV1111VX/e1C56qqrrrrqqquuuuqq/+MkcT9JSEISkpCEJCQhCUlI4oEkAWCbq6666qqrrrrqqv9lqFx11VVXXXXVVVddddX/UraRxAsjiecmCUlIIiKICAAkIYn7SUIS99vZ2eGqq6666qqrrrrqfxmCq6666qqrrrrqqquu+l/ANs+PbQBscz9JPDdJSEISkpBERCAJSUQEkpCEJCTx3Gxz33333cpVV1111VVXXXXV/x4EV1111VVXXXXVVVdd9T9MZj6YF8I2D2Sbfw1JSEISEUFEIAlJXHXVVVddddVVV/0fQ+Wqq6666qqrrrrqqqv+j5MEgCQkIYmIICKQhCQAJCEJSTw/29vbnD179lauuuqqq6666qqr/vegctVVV1111VVXXXXVVf8PSAJAEpKQhCQigojANpKQBIAkJAEgCUlcddVVV1111VVX/S9E5aqrrrrqqquuuuqqq/4HksS/lyQeSBIAkpBERCAJSUhCEpKQxP0kcb9jx45x1VVXXXXVVVdd9b8Mlauuuuqqq6666qqrrvofJjMfzH8QSTyQJAAkIYmIICKwjST+Jffdd9+tXHXVVVddddVVV/3vQeWqq6666qqrrrrqqqv+F7GNJP41JCEJSUhCEpKICCQhCQBJSEISz49trrrqqquuuuqqq/6XIbjqqquuuuqqq6666qr/YSQBIIkHss39bPNvJYmIQBIRgSQkIQlJAEhCEg90/Phxrrrqqquuuuqqq/6XoXLVVVddddVVV1111VX/h0jiBZGEJCQhCUlIIiKwjSQAJHE/SUhCEvfdd9+tXHXVVVddddVVV/3vQuWqq6666qqrrrrqqqv+D7DNA0nigSQBIAlJSCIiiAgkASAJSTw/krjqqquuuuqqq676X4jgqquu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VVddddVV/0sRXHXVVVddddVVV1111f8Q11xzzYNf4iVe4sGSeGFs8y+RhCQkcT9JSEISkpCEJCTxwtjmvvvuu5Wrrrrqqquuuuqq/30Irrrqqquuuuqqq6666n+I++6771aARz/60byobPMvkYQkJAEgCUkASOKBJHE/SUjiqquuuuqqq6666n8xgquuuuqqq6666qqrrvof5B/+4R9++9Vf/dV5fmzzgkhCEs9NEgCSAJCEJCQhCQBJSEISz88111zD2bNnb+Wqq6666qqrrrrqfx+Cq6666qqrrrrqqquu+h/kt37rt77n0Y9+NKdOneKFsY1tnpsk7icJAEkASEISkpCEJCTxL1kul8+47777buWqq6666qqrrrrqfx+Cq6666qqrrrrqqquu+h/kt37rt747M299i7d4C/6tJCGJB5KEJCQhCUlIQhKSkMTz86hHPYr77rvv6Vx11VVXXXXVVVf970Rw1VVXXXXVVVddddVV/8P86I/+6Oc87GEPu/VN3/RNAbDNv5UkJAEgCUlIQhKSeEEksVgseNSjHsVv/dZvfQ9XXXXVVVddddVV/ztRueqqq6666qqrrrrqqv9hfuu3fuu7z5w586B3eqd3+mxJ/Oqv/ir/FpK4nyQAJCEJSUhCEveTBIAkZrMZj3zkI/mHf/iH3/6t3/qt7+aqq6666qqrrrrqfyeCq6666qqrrrrqqquu+h/ot37rt777H/7hH377Td7kTfiMz/gMTpw4wb+FJCQBIAlJSEIS95PEA9VaeehDH8qJEyf4kR/5kc/hqquuuuqqq6666n8vyvHjx7nqqquuuuqqq6666qr/aY6Oji79wz/8w+/ceuutf/Nar/Vab/3iL/7ibGxs8LSnPQ1JSEISkpBEKYVaK6UUSimUUiilUGul1krf98znczY2Ntje3mZ7e5uNjQ36vkcSmclqtWK1WnHy5Eme8pSn/PbXf/3Xv88//MM//DZXXXXVVVddddVV/3tRjh8/zlVXXXXVVVddddVVV/1PdHh4uHt0dLR76623/s1rvdZrvfXDHvYwXv7lX57FYsHTn/50JCEJgFIKpRRKKZRSKKVQa6WUQtd1dF3HfD5nc3OT7e1ttre32djYoOs6JHHu3Dn29vaICO67775bv+u7vutj/uEf/uG3ueqqq6666qqrrvrfjXL8+HGuuuqqq6666qqrrrrqf6rDw8PdW2+99a9/+7d/+3se8pCHvPQtt9zy4Ic+9KG83Mu9HDfccAOr1Yrd3V1qrZRSKKVQSqGUQimFWiu1Vvq+Zz6fs7m5yfb2Ntvb23Rdx8HBAbfffjur1Yp777331ltvvfWvv/RLv/Rtbr311r/mqquuuuqqq6666n8/9KAHPYirrrrqqquuuuqqq6763+LFXuzFXvud3umdPuvFXuzFXptnunjxIrfddhu33347h4eH1FpZLpesVitmsxmnTp1iY2OD06dPc/3117O1tcV8Psc297vvvvtu/dEf/dHP+a3f+q3v5qqrrrrqqquuuur/DvSgBz2Iq6666qqrrrrqqquu+t/mmmuuefBrv/Zrv9eLv/iLv/aLvdiLvTb/Bvfdd9+tv/Vbv/XdZ8+efcZv/dZvfTdXXXXVVVddddVV//egBz3oQVx11VVXXXXVVVddddX/Ztdcc82DX+zFXuy1X+zFXuy1rrnmmgcDnDlz5sHXXHPNgwHuu+++WwHOnj1763333Xfrfffdd+s//MM//M4//MM//DZXXXXVVVddddVV/7ehBz3oQVx11VVXXXXVVVddddVVV1111VVXXXXVVf8nUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fxT8CxsO/m+tYG3EAAAAASUVORK5CYII=) +![Rendered example of scale 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAADSL0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV/0nu+aaax585syZBwNcc801Dz5z5syDeKZrrrnmwTzTNddc82Cey5kzZx589uzZW8+cOfNg/hXOnj17Kw9w33333coz3XfffbeePXv2GQD33XffrQBnz5699b777ruVq6666qqrrrrqqquu+r8FPehBD+Kqq6666qqrrrrqP8qLvdiLvfbrvM7rvNc111zz4DNnzjz4mmuueTD/gvvuu4/73Xfffdzv7Nmz/FucOXOGB7rmmmu45ppreGHuu+++W3mmr//6r3+ff/iHf/htrrrqqquuuuqqq6666n8/9KAHPYirrrrqqquuuuqq/wjv+I7v+Fnv9E7v9Nn33Xcfv/Vbv8Xf//3f8w//8A+82Iu9GB/xER/BNddcw/NzdHSEJFarFRFBZtL3PbPZjNlsRt/3zGYzJGGb1hrDMLBcLjk6OmK5XALQWqO1xmw2wzYbGxtsbm7ygvzWb/0Wv/mbv8k111zDNddcwzXXXMOZM2eQ9Ntf//Vf/z733XffrVx11VVXXXXVVVddddX/blSuuuqqq6666qqr/oP9wz/8Ay/+4i/OO73TOwFw3333cc011/CCbGxsALBYLAAYhoGIoJRCZjIMA+M4cj/b2CYiWCwWbG1t8W/xYi/2YrzYi70YZ8+e5e///u95ndd5HQAuXrz42q/92q/9Xj/6oz/6OVx11VVXXXXVVVddddX/bpTjx49z1VVXXXXVVVdd9R/h7Nmzz3jCE57w0ddddx3XXXcdEcFsNmNzc5N/jVIKEYEkAGyTmWQmmYltbAMQEfxbHB0d0XUd4ziSmWxtbXHnnXfyB3/wBwBcuHDht//hH/7hd7jqqquuuuqqq6666qr/3ahcddVVV1111VVX/Qe57777bh3HkQsXLvDHf/zHzOdzZrMZJ0+epJRCrZWdnR1KKWxvbxMRlFLY3NxkGAa2trYopdB1HV3XsVgs6PueruuotVJKoZSCJLquwzaZSWuNcRxZr9es12uOjo5Yr9es12sODg6Ypolpmjg4OODg4IBpmmit0VpjmiamaWKaJtbrNcvlkoc97GFcddVVV1111VVXXXXV/xFUrrrqqquuuuqqq/4D2cY297PN3t4eXddRa2W5XFJr5fz589RaKaXQdR1d19F1HfP5nPl8zubmJtvb22xvbzObzdjY2GCxWND3PbVWJGGb1hrr9ZrDw0OGYWAYBo6Ojjg4OGC5XLJarRiGgXEcGceRF0YSkrh48SJXXXXVVVddddVVV131fwTBVVddddVVV1111X+g1tqttvnXsg2Abe5nmxeVJCQBIAlJPDdJAEjifpKQxANJ4qqrrrrqqquuuuqqq/6PoHLVVVddddVVV131HygzAbCNbe5nG9sA2AbANgC2eW62AbCNbWxjmweSBIAk7ieJfy9JXHXVVVddddVVV1111f8RBFddddVVV1111VX/gWqt2ObfwzYAtnl+bHM/SQBIQhIAkpCEJCTx/Eji+ZEEwDXXXPNgrrrqqquuuuqqq6666n8/gquuuuqqq6666qr/QKvV6lbb2AbANi8q29gGwDYAtrGNbQBs89wkIQkASfx7SeKqq6666qqrrrrqqqv+j6By1VVXXXXVVVdd9R/MNgC2AbDNv4Vt/jUkIQlJPJAknh9J3E8SkpDEVVddddVVV1111VVX/R9CcNVVV1111VVXXfUfKCKwjW1eGNs8kG3uZxvbANjGNraxzXOTBIAkJHE/SUjifpIAkMS/5NKlS1x11VVXXXXVVVddddX/EVSuuuqqq6666qqr/gON43irbV4Q27wwtrmfbQBs88JI4n6SkMT9JPFvcc011zyYq6666qqrrrrqqquu+t+PylVXXXXVVVddddV/INvYxja2sQ2AbZ4f29jmgWxzP9sA2Oa5SeJ+kpDE/STx3CTx/Ejiqquuuuqqq6666qqr/o+ictVVV1111VVXXfUfKDNv5QWwzQtjm/vZxja2sQ2AbWzz3CRxP0lIAkASAJJ4IEncTxL3k4QkJHHVVVddddVVV1111VX/R1C56qqrrrrqqquu+g9km8zENvezzQPZBsA2LyrbPD+SAJCEJCQBIIl/q0uXLnHVVVddddVVV1111VX/R1C56qqrrrrqqquu+g+UmdgGwDYvKtsA2MY2trGNbWwDYJsXRhIAkrifJAAk8UCSeCBJ3E8SV1111VVXXXXVVVdd9X8Elauuuuqqq6666qr/QLafYRvbANjmP4JtXhBJSAJAEgCSkMS/1ZkzZx7MVVddddVVV1111VVX/e9H5aqrrrrqqquuuuo/kG1s829hm/vZxja2sc39bPOCSAJAEi+IJO4niecmiauuuuqqq6666qqrrvo/hMpVV1111VVXXXXVf6CIuNU2trENgG1sA2AbANvczzYPZJsHso1tbANgm+cmCQBJPJAkJAEgiRdGEgCSuOqqq6666qqrrrrqqv8jqFx11VVXXXXVVVf9B8pMbGMbANvczzbPzTYPZJv72cY2L4wkJAEgCUlIQhKSeFFI4oH29va46qqrrrrqqquuuuqq/yOoXHXVVVddddVVV/0Hy0wAbPNvZRsA29jGNrZ5UUjiuUniRWWbq6666qqrrrrqqquu+j+CylVXXXXVVVddddV/oIi41Ta2+dewzf1sA2Cb52ab50cSkpAEgCReEEncTxIAkgCQhCSuuuqqq6666qqrrrrq/wgqV1111VVXXXXVVf/BMpMXxjYAtnkg29gGwDa2sY1tbPOCSOKBJAEgCUlI4l/rmmuueTBXXXXVVVddddVVV131vx+Vq6666qqrrrrqqv9gmYltbGMb29jm38o2ALZ5QSQhCUkASOKFkcQLIomrrrrqqquuuuqqq676P4LKVVddddVVV1111X+giLgVwDb/VraxjW1sA2AbANvY5oWRBIAkHkgSknhBJCEJSVx11VVXXXXVVVddddX/EVSuuuqqq6666qqr/oPZxja2eSDb2Oa52eaFsQ2AbV4YSUgCQBIAknhBJPH87O3tcdVVV1111VVXXXXVVf9HULnqqquuuuqqq676D9Z1HfezzfNjGwDbANjGNra5n21sA2Cb50cSkpDE/STxQJKQxAsiiauuuuqqq6666qqrrvo/iuCqq6666qqrrrrqP9hyubzVNvezzb+GbWwDYBvbANjGNi+IJCRxP0n8e1xzzTUP5qqrrrrqqquuuuqqq/53o3LVVVddddVVV131H6yUgm1scz/b/HvY5oWRxP0kIQkASbwwkgCQxP0kcdVVV1111VVXXXXVVf9HEFx11VVXXXXVVVf9B1utVrfaBsA2z802ALZ5QWxjG9vYxja2AbCNbZ6bJCTxL5HE8yMJSQCcPXuWq6666qqrrrrqqquu+j+AylVXXXXVVVddddV/AtvY5l/LNrZ5INvczzb/EklIQhL/FpKQxFVXXXXVVVddddVVV/0fQHDVVVddddVVV131H0wSD2QbANvY5gWxzQPZxjYAtrHN8yMJSUhCEs9NEpKQxP0k8cJI4syZMw/mqquuuuqqq6666qqr/nejctVVV1111VVXXfUfbJqmW21jG9v8S2xjmweyzf1s868hCUlIQhIPJImrrrrqqquuuuqqq676f4TKVVddddVVV1111X8C2zyQbR7INgC2eW62AbCNbWxjG9vYxjbPjyQk8e8hCUlcddVVV1111VVXXXXV/xFUrrrqqquuuuqqq/6DtdZuzUxs869lGwDbPJBtXlSSeFFIAkASz+3cuXNcddVVV1111VVXXXXV/wFUrrrqqquuuuqqq/6D2eZ+trHNv4VtbGMbANvY5vmRBIAkACQhCUlI4l8iCUncr5TCVVddddVVV1111VVX/R9A5aqrrrrqqquuuuo/WGaSmdjmgWwDYBsA2zyQbQBscz/bANjmfraxzXOTBIAknpskXlSSkMRVV1111VVXXXXVVVf9H0Bw1VVXXXXVVVdd9R/M9jNs80C2+dewjW0AbANgG9u8MJIAkMRzkwSAJO4niQeSxP2uueaaB3PVVVddddVVV1111VX/u1G56qqrrrrqqquu+g9mG9vYxja2uZ9tnpttbANgmweyjW1s84JI4oEkASAJSVx11VVXXXXVVVddddX/Y1Suuuqqq6666qqr/oNFxK22sc2/h23uZxvbANjmuUlCEpIAkMT9JHE/SfxLJHHhwgWuuuqqq6666qqrrrrq/wAqV1111VVXXXXVVf/BMhPbANjm+bENgG2em21sA2Ab2wDYxjb/ESTxwkQEV1111VVXXXXVVVdd9X8AwVVXXXXVVVddddV/gszENvezjW1eGNs8kG3uZ5sHso1tnpskJCEJSfxrSOJ+kjhz5syDuOqqq6666qqrrrrqqv/dqFx11VVXXXXVVVf9B4uIW21jG9vY5kVlGwDbANjGNraxjW1s8/xI4rlJAkASL4gkJAEgiauuuuqqq6666qqrrvo/hMpVV1111VVXXXXVf4LM5PmxjW1eGNsA2AbANv8akgCQxANJ4oEk8fxI4qqrrrrqqquuuuqqq/6PoHLVVVddddVVV131nyAzsc0LYxsA29jm+bENgG1sY5vnRxIAkgCQxP0k8a+1u7vLVVddddVVV1111VVX/R9A5aqrrrrqqquuuuo/WETcCmAb29jmX8s2tgGwDYBtAGxjm+cmCQBJvDCS+JdI4qqrrrrqqquuuuqqq/4PoHLVVVddddVVV131n8A2D2Qb27wwtrGNbe5nGwDbANjmhZEEgCQkIYkXRhLPTRJXXXXVVVddddVVV131fwTBVVddddVVV1111X+C1tqttrHN82MbANu8MLaxjW1sA2AbANs8P5J4bpIAkMQLIglJAEjimmuueTBXXXXVVVddddVVV131vxuVq6666qqrrrrqqv8EtrENgG3+tWxjGwDb3M82ALZ5bpJ4fiRx1VVXXXXVVVddddVV/08RXHXVVVddddVVV/0nKKVgG9s8kG1s89xs8/zYBsA2tnlutnkgSQBIQhKS+NeSxKVLl7jqqquuuuqqq6666qr/Awiuuuqqq6666qqr/hOsVqtbeQDbPDfbPD+2AbANgG1sYxvb2OaFkcTzI4n7SeKBJHHVVVddddVVV1111VX/B1G56qqrrrrqqquu+k+SmQDYBsA2z49tAGxjGwDbANjGNvezDYBtHkgSDySJF5Uknpskrrnmmgdz1VVXXXXVVVddddVV/7sRXHXVVVddddVVV/0niAgAbPNvZZv72cY2ALYBsM1zk4QkACQhCUk8P5J4bpKQxFVXXXXVVVddddVVV/0fQeWqq6666qqrrrrqP8E4jrfaxjYAtnkg27wwtgGwjW1sA2CbF0QSL4gk/jUkcdVVV1111VVXXXXVVf8HULnqqquuuuqqq676T5CZ2AbANvezzQPZ5rnZ5vmxDYBtbPPCSOL5kYQknh9J3O/SpUtcddVVV1111VVXXXXV/wFUrrrqqquuuuqqq/4T2L7VNra5n20AbPOC2OZ+trGNbWxjG9u8MJKQBIAk/iWSuOqqq6666qqrrrrqqv/DqFx11VVXXXXVVVf9J7CNbV5UtrHN/WxzP9vYBsA2tgGwjW1eGElIAkASLypJnDlz5sFcddVVV1111VVXXXXV/25Urrrqqquuuuqqq/4TZCa2sY1tbPPcbANgmweyDYBtbHM/29zPNi+MJP6tJHHVVVddddVVV1111VX/R1C56qqrrrrqqquu+k9g+xmZyX8E29jGNraxzQsjCQBJ3E8SL4wkACQBIImrrrrqqquuuuqqq676P4DKVVddddVVV1111X8C29jGNrYBsI1tXhjbANjGNrYBsM0D2cY2DyQJSQBIAkASz48kXpi9vT2uuuqqq6666qqrrrrq/wAqV1111VVXXXXVVf8JIuJW29zPNvezjW0AbPMvsQ2AbWxjmweyzb+HJB5IEra56qqrrrrqqquuuuqq/wOoXHXVVVddddVVV/0nyExsY5sXlW0AbHM/29jGNraxDYBtAGzz3CQBIAkASbwoJHE/SVx11VVXXXXVVVddddX/AVSuuuqqq6666qqr/pNkJraxzb/ENg9kG9vczza2AbANgG1eEEk8P5K4nyRemGuuuebBXHXVVVddddVVV1111f9uVK666qqrrrrqqqv+E0TErbZ5YWwDYJsXxDa2uZ9tXhhJPJAkACQhCQBJ/EskcdVVV1111VVXXXXVVf8HULnqqquuuuqqq676T5KZ2MY2trGNbV4Y29zPNvezjW1sYxvbvCCSAJDEv5YkJLG/v89VV1111VVXXXXVVVf9H0Bw1VVXXXXVVVdd9Z/ENrb517KNbQBsYxvb2AbANgC2sc3zI4n7SeIFkcTzY5urrrrqqquuuuqqq676P4Dgqquuuuqqq6666j9BRNxqG9vY5oFsYxsA2/xr2AbANv+ZJAFwzTXXPJirrrrqqquuuuqqq67634vKVVddddVVV1111X8S29zPNrZ5QWxjmweyjW1sYxvb2MY2D2SbF0QSLwpJXHXVVVddddVVV1111f9BBFddddVVV1111VX/SVprt9rmgWzzwtgGwDb3s41tbHM/29jm+ZEEgCT+rSRx1VVXXXXVVVddddVV/wcQXHXVVVddddVVV/0nyUxsY5vnxzbPj20AbGObB7KNbe5nGwDbAEgCQBIPJIkHksRzkwSAJADOnj3LVVddddVVV1111VVX/S9H5aqrrrrqqquuuuo/Sa2V+9nmBbHNC2Mb29jGNraxjW1eFJIAkIQknpsk7icJAElEBFddddVVV1111VVXXfW/HMFVV1111VVXXXXVf5LVanWrbWwDYBsA29jmRWGb+9nm+bHN8yMJSfxb2AbgzJkzD+aqq6666qqrrrrqqqv+9yK46qqrrrrqqquu+k9kGwDb/Etscz/b2AbANrYBsI1tbGMb2zw/kvj3kMRVV1111VVXXXXVVVf9H0Dlqquuuuqqq6666j9JRGAb29zPNg9kGwDbANjGNvezDYBtbGMb29jmBZHECyMJAElcddVVV1111VVXXXXV/3FUrrrqqquuuuqqq/6TjON4q23+vWwDYJsHss1/BklI4vz581x11VVXXXXVVVddddX/clSuuuqqq6666qqr/pPYxja2sY1tHsg2L4htbANgG9vYxja2sQ2AbV4QSUhCEpL41yqlcNVVV1111VVXXXXVVf/LUbnqqquuuuqqq676T5KZt9rGNg9kG9vczzYviG0AbANgG9s8N9s8kCSuuuqqq6666qqrrrrqKgiuuuqqq6666qqr/pPYxjYPZJsXxDYAtgGwDYBtAGxzP9vYxjb/HpIAkASAJAAkAXDNNdc8mKuuuuqqq6666qqrrvrfi8pVV1111VVXXXXVf5LMxDa2sY1tnpttHsg2D2QbANvYxja2+beQxAsjiQeSxFVXXXXVVVddddVVV/0vR+Wqq6666qqrrrrqP4ntZ9jmRWGbB7LN/WxjGwDb2MY2tgGwzQNJAkASknggSfxLJAFw4cIFrrrqqquuuuqqq6666n85gquuuuqqq6666qr/JLaxjW1scz/bvChsY5v72cY2ALaxjW3+JZJ4bpL4l0QEV1111VVXXXXVVVdd9b8clauuuuqqq6666qr/JBFxa2byQLa5n22eH9s8kG1sYxsA2zw32zyQJB5IEi+IJJ6bJADOnDnzIK666qqrrrrqqquuuup/LypXXXXVVVddddVV/0kyE9vYBsA297PN/Wzz3GwDYJsHso1tbGMb29jmqquuuuqqq6666qqrrnq+qFx11VVXXXXVVVf9J8pMbGObf4ltbHM/2wDYxja2sQ2AbZ6bbR5IEs+PJF4Ukrjqqquuuuqqq6666qr/5ahcddVVV1111VVX/SeJiFtt88LY5kVhG9vYxjYAtrGNbV4QSfxrSAJAEru7u1x11VVXXXXVVVddddX/clSuuuqqq6666qqr/hNlJraxjW1sY5vnZpv72eZ+trHNA9nGNg9kmxdEEgCSeFFI4qqrrrrqqquuuuqqq/6PoHLVVVddddVVV131nygz+bewjW3uZxvb2OZ+trHNv5UkXhhJXHPNNQ/mqquuuuqqq6666qqr/veictVVV1111VVXXfWfJCJuBbCNbR7INrYBsM39bPNAtrGNbWxjG9vY5n62eW6SeCBJ/EskcT9JXHXVVVddddVVV1111f8BBFddddVVV1111VX/iWxjGwDb2OYFsc0LYxsA29jGNrYBsM1zk8Rzk8TzI4nnJomrrrrqqquuuuqqq676X47gqquuuuqqq6666j9R13XY5oFs88LYxja2sY1tbANgG9vYxjYAtgGwDYAk7ieJF0YSL8ju7i5XXXXVVVddddVVV131vxzBVVddddVVV1111X+io6OjW21jm+fHNgC2+ZfYxjYPZJv/aJIAkMRVV1111VVXXXXVVVf9L0flqquuuuqqq6666j9RrZX72eZ+tnlR2cY2trGNbWxjm/vZ5gWRxL+WJACuueaaB3PVVVddddVVV1111VX/exFcddVVV1111VVX/SdarVa32sY2ALa5n22em23uZxvbPDfb2AbANrb5jyKJq6666qqrrrrqqquu+j+EylVXXXXVVVddddV/MtsA2AbANg9kGwDbANjGNvezjW1sYxvbANjmgWzzwkjifpL4l+zt7XHVVVddddVVV1111VX/y1G56qqrrrrqqquu+k8UEdjGNv8WtgGwjW1sA2Ab29jGNs+PJCQBIIn7SeKBJHHVVVddddVVV1111VX/R1G56qqrrrrqqquu+k80juOttnlBbPOC2AbANvezjW1sA2CbB7LNVVddddVVV1111VVXXfUsBFddddVVV1111VX/iTITANvYxjYAtnkg2zyQbR7INrYBsA2AbQBs80C2kcS/hyQkcebMmQdz1VVXXXXVVVddddVV/3tRueqqq6666qqrrvpPZPvWzMQ297MNgG2em20eyDa2AbCNbWxjG9vYBsA2tnl+JPGvIQkASVx11VVXXXXVVVddddX/cgRXXXXVVVddddVV/4lsY5t/DdsA2OZ+tgGwDYBt7mebF5UkXhBJXHXVVVddddVVV1111f8xVK666qqrrrrqqqv+E2UmtrGNbWzz3GwDYJvnZhvb2MY2trGNbWxjGwDb/Efb29vjqquuuuqqq6666qqr/pcjuOqqq6666qqrrvpPZPsZtvnXss1zsw2AbQBsA2AbANvY5kUliftJ4oEkcdVVV1111VVXXXXVVf8HULnqqquuuuqqq676T2Qb29jGNgC2sQ2AbQBs89xsA2Ab2wDYxja2AbANgG2eH0n8a0jiga655poHc9VVV1111VVXXXXVVf97EVx11VVXXXXVVVf9J5J0a2ZyP9vczzbPzTa2uZ9t7mcb2wDYxja2sc2/RBKS+NeQxFVXXXXVVVddddVVV/0vR+Wqq6666qqrrrrqP5FtbGMb2/xb2MY2tgGwjW1s80C2eSBJXHXVVVddddVVV1111f9zVK666qqrrrrqqqv+k2UmtnlBbANgm/vZ5vmxjW0AbGMb2/xbSeK5SQJgf3+fq6666qqrrrrqqquu+l+O4Kqrrrrqqquuuuo/UUTcygPYxja2+ZfYxjYAtrGNbWxjGwDb2OZ+tnlukvjXkoRtrrrqqquuuuqqq6666n85gquuuuqqq6666qr/ZJmJbWzz3Gzz3GzzQLa5n20AbGOb+9nGNv+RJAFwzTXXPJirrrrqqquuuuqqq67634ngqquuuuqqq6666j9Zaw3bPDfb3M82ALZ5fmxjGwDb2MY2trHNA9nmhZGEJP4lkrjqqquuuuqqq6666qr/5ahcddVVV1111VVX/SeKiFslAWAb29jmX2Ib29jGNgC2sY1t7mcbANsA2Oaqq6666qqrrrrqqquuehaCq6666qqrrrrqqv9kmYltHsg297MNgG1eENsA2MY2trENgG0AbPNvIQkASTy38+fPc9VVV1111VVXXXXVVf+LUbnqqquuuuqqq676T9Z1Hbaxzb+WbWwDYJv72cY2trGNbR7INs+PJF4Ukrjqqquuuuqqq6666qr/Awiuuuqqq6666qqr/pMdHR3dahsA29zPNrZ5brYBsM39bGMb29jGNraxzf1s89wkASCJF4UkJAEgCYAzZ848mKuuuuqqq6666qqrrvrficpVV1111VVXXXXVf7JaK7axDYBtnpttAGwDYJv72eZ+trHNA9nGNgC2ueqqq6666qqrrrrqqqueheCqq6666qqrrrrqP9lqtbqV52KbF4VtAGxjGwDb2MY2tgGwjW0AbPP8SOJf69y5c1x11VVXXXXVVVddddX/YgRXXXXVVVddddVV/wVsYxvbPDfbANjmX2IbANvYxja2+c8giYjgqquuuuqqq6666qqr/hejctVVV1111VVXXfWfLCKwzXOzzQtjGwDb2MY2trGNbWxjG9vYxja2eW6S+JdI4oEkARARXHXVVVddddVVV1111f9iBFddddVVV1111VX/ycZxvNU2trGNbe5nm+dmG9sA2OZ+tgGwjW3+q1xzzTUP5qqrrrrqqquuuuqqq/53onLVVVddddVVV131nywzsc0D2eaBbANgm+dmG9sA2MY2ALaxjW1sYxvb2OZFIYmrrrrqqquuuuqqq676P47KVVddddVVV1111X8y27faxjb/GrZ5INvYBsA2trGNbf4zSEISV1111VVXXXXVVVdd9b8Ylauuuuqqq6666qr/ZLaxDYBtbPP82Oa52QbANvezjW1scz/b2OY/2oULF7jqqquuuuqqq6666qr/xahcddVVV1111VVX/SfLTGxjmweyDYBtHsg2trmfbQBsYxvb2AbANraxDYBtAGzzbyWJ+0UEV1111VVXXXXVVVdd9b8Ylauuuuqqq6666qr/ZLafkZnYxjYAtgGwzYvCNgC2sQ2AbWxjGwDbANjmP9KZM2cexFVXXXXVVVddddVVV/3vROWqq6666qqrrrrqP5ltHsg2z802ALa5n21sYxsA29zPNraxDYBtAGzzL5HEv0QSkpDEVVddddVVV1111VVX/S9G5aqrrrrqqquuuuo/WUTcmpnY5t/KNraxjW1sYxsA2wDY5gWRxPMj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tvm3ksT9zp07x1VXXXXVVVddddVVV/0vReWqq6666qqrrrrqv0itledmm/vZ5n62uZ9tbGMb29zPNrZ5INvY5n62+feQRERw1VVXXXXVVVddddVV/0sRXHXVVVddddVVV/0XWa1Wt9rGNra5n21sA2Cbf4ltbGMbANvYxjb/GSKCq6666qqrrrrqqquu+l+K4Kqrrrrqqquuuuq/kG1s86Kyzf1sYxsA2wDYxja2sY1tbGObfytJPLdrrrnmwVx11VVXXXXVVVddddX/PlSuuuqqq6666qqr/otkJra5n21s89xsA2AbANvY5n62AbCNbWxzP9vczzb/WpK4nySuuuqqq6666qqrrrrqfzkqV1111VVXXXXVVf9FMvNW29jGNs/NNv8S29jGNraxDYBtbANgm/8okpDEVVddddVVV1111VVX/S9F5aqrrrrqqquuuuq/iG1s89xs89xs89xs80C2AbCNbWxzP9sA2Obf6+LFi1x11VVXXXXVVVddddX/UlSuuuqqq6666qqr/ovYvtU2trGNbe5nGwDbPJBtAGwDYBvb2AbANrZ5INv8Rztz5syDuOqqq6666qqrrrrqqv99qFx11VVXXXXVVVf9F7GNbR7INs/NNgC2AbANgG3uZxvb2MY2trHN/Wxjm/vZ5t9KElddddVVV1111VVXXfW/FJWrrrrqqquuuuqq/yKZiW1s8/zY5l9iG9sA2OZ+trmfbR7INv9Wkrjqqquuuuqqq6666qr/xahcddVVV1111VVX/Rex/Qzb2MY2tgGwzXOzzQPZ5oFsA2Ab29jGNv8Zdnd3ueqqq6666qqrrrrqqv+lqFx11VVXXXXVVVf9F7GNbR7INgC2AbDNA9nGNgC2sY1tbGMb29gGwDYAtrGNbWzzbyWJq6666qqrrrrqqquu+l+OylVXXXXVVVddddV/EUm32sY2tvmX2OaFsc39bPOfRRJXXXXVVVddddVVV131vxSVq6666qqrrrrqqv8itslM7meb58c2z802trGNbWwDYBvb2MY2ALaxzb+HJAAkAXDNNdc8mKuuuuqqq6666qqrrvrfh+Cqq6666qqrrrrqv5BtbGOb+9kGwDb3s839bPNAtgGwjW1sA2CbB7LNfwRJXHXVVVddddVVV1111f9SBFddddVVV1111VX/RSLi1szENgC2sQ2AbZ4f2zyQbQBsYxvb2MY2ALaxzX+k3d1drrrqqquuuuqqq6666n8pKlddddVVV1111VX/DWzz/Njmfra5n21sA2Cb52Yb29zPNgC2sc0D2eZfQxJXXXXVVVddddVVV131vxTBVVddddVVV1111X+h1hq2eWFs8y+xjW1sYxsA2wDY5j/aNddc82Cuuuqqq6666qqrrrrqfx8qV1111VVXXXXVVf9FIuJWSdgGwDa2sQ2AbZ6bbWxzP9vYxja2sY1tbANgGwDb2ObfSxKSuOqqq6666qqrrrrqqv+lCK666qqrrrrqqqv+C2UmALZ5INs8kG0eyDa2eUFsYxsA2zw/trnqqquuuuqqq6666qr/Z6hcddVVV1111VVX/RcqpWCbF8Q297PNc7ONbWxjG9vYBsA297MNgG0AbPOvJQmAS5cucdVVV1111VVXXXXVVf9LEVx11VVXXXXVVVf9F1qtVrfaxja2sY1tXhjbANjmudnGNra5n20AbHPVVVddddVVV1111VX/z1G56qqrrrrqqquu+i9Ua8U2z49tAGxzP9sA2AbANraxjW3uZxvb/GeQxJkzZx7MVVddddVVV1111VVX/e9DcNVVV1111VVXXfVfaLVa3Wob29jmfrZ5INv8S2xjG9vczza2sc39bPOvIYn7SeKqq6666qqrrrrqqqv+FyO46qqrrrrqqquu+i9km38r2wDYxjYAtrGNbWzzQLaxzVVXXXXVVVddddVVV/0/RuWqq6666qqrrrrqv1BEYBvbANjGNvezzf1sA2Ab2wDYBsA2trmfbWwDYBvb/EfZ29vjqquuuuqqq6666qqr/peictVVV1111VVXXfVfaBzHW20DYJvnxzb3s80LYxvbXHXVVVddddVVV1111VXPF5Wrrrrqqquuuuqq/0K2sY1tHsg2trmfbZ6bbWxjG9vYxja2sY1tAGxjG9v8R5DEVVddddVVV1111VVX/S9FcNVVV1111VVXXfVfyPattrGNbWxjm3+JbZ6bbe5nG9s8N9vY5l9LEgCSALjmmmsezFVXXXXVVVddddVVV/3vQ+Wqq6666qqrrrrqv5BtbPOC2OZ+tgGwzQPZxjYAtrHN/WxjGwDb3M82V1111VVXXXXVVVdd9f8Qlauuuuqqq6666qr/Qq01bGMbANsA2MY2z80297ONbe5nGwDb2MY297PNv5ckAPb397nqqquuuuqqq6666qr/pQiuuuqqq6666qqr/ms9IzMBsM3zY5sXxja2AbANgG1sA2Cb/0i2ueqqq6666qqrrrrqqv+lCK666qqrrrrqqqv+C9kGwDb3s81zs839bGMb29jmfraxjW3uZxsA29jGNv9ekgC45pprHsxVV1111VVXXXXVVVf970Jw1VVXXXXVVVdd9V9I0q2ZiW1sY5sHss39bPP82MY297ONbWwDYJvnxza2ueqqq6666qqrrrrqqv9HqFx11VVXXXXVVVf9F7KNbZ6bbWzz3GzzgtjGNg9kGwDb3M82V1111VVXXXXVVVdd9f8UwVVXXXXVVVddddV/MdvYxjYAtnkg2zw329jGNraxjW1sYxvb2AbANgC2+feShCTOnj3LVVddddVVV1111VVX/S9EcNVVV1111VVXXfVfKCJutc39bPP82OZ+tvmX2MY2tnkg2wDY5t8jIjhz5syDueqqq6666qqrrrrqqv9dqFx11VVXXXXVVVf9F8tMbGOb52ab+9nmudkGwDa2sY1t7mcbANv8S2xz1VVXXXXVVVddddVV/8cRXHXVVVddddVVV/0Xy0xscz/b2MY2z802ALaxDYBtHsg2trHNA9nmqquuuuqqq6666qqr/p+jctVVV1111VVXXfVfKCJuBbANgG2em23+JbaxjW0AbANgGwDbANjGNv8ekrjqqquuuuqqq6666qr/pQiuuuqqq6666qqr/otlJgC2eUFscz/b3M82tnkg2wDY5j/L+fPnueqqq6666qqrrrrqqv+FCK666qqrrrrqqqv+i7XWbrUNgG0AbANgm/vZ5gWxjW1sYxvb2MY2trGNbf6jRARXXXXVVVddddVVV131vxDBVVddddVVV1111X8x29jGNgC2AbDNc7MNgG1sA2Cb+9kGwDb/Etv8a0hCEgCSuOaaax7MVVddddVVV1111VVX/e9C5aqrrrrqqquuuuq/WCkF27wgtnkg29zPNgC2sQ2AbQBsYxsA29jGNraxzb+VJK666qqrrrrqqquuuup/KYKrrrrqqquuuuqq/2Lr9fpWANvY5t/DNgC2AbDNv8Q2V1111VVXXXXVVVdd9f8EwVVXXXXVVVddddV/MdvY5n62sc0D2cY297ONbWxjGwDbANgGwDYAtvmPduHCBa666qqrrrrqqquuuup/IYKrrrrqqquuuuqq/2K2sY1tHsg2tnkg2zw/tgGwDYBtbGMbANvYxjYPZJt/i4jgzJkzD+Kqq6666qqrrrrqqqv+d6Fy1VVXXXXVVVdd9V/M9q22AbDNv8Q2D2QbANsA2MY297PNVVddddVVV1111VVXXXUZwVVXXXXVVVddddV/scwEwDYAtnkg2zw/trENgG0AbGMbANvYBsA297ONbR7INi8qSUjiqquuuuqqq6666qqr/heictVVV1111VVXXfVfzPattgGwDYBtHsg2D2Sb52ab+9nmfrYBsI1trrrqqquuuuqqq6666v8xgquuuuqqq6666qr/YrbJTGzzQLaxzf1sY5vnZhvbANjGNgC2sQ2AbZ6bbf6tLl68yFVXXXXVVVddddVVV/0vROWqq6666qqrrrrqv5htHsg2L4xt7meb+9nmfra5n20AbPMfRRLXXHPNg7nqqquuuuqqq6666qr/XQiuuuqqq6666qqr/ou11rCNbWwDYJv72eb5sc39bANgG9sA2MY2ALa5n23+PSRx1VVXXXXVVVddddVV/0tRueqqq6666qqrrvqv94zMxDYviG0eyDb3sw2Abe5nG9sA2OZ+tvn3kASAJK666qqrrrrqqquuuup/IYKrrrrqqquuuuqq/wa2AbCNbQBsY5v72eZfYhvb3M8297PN/Wxz1VVXXXXVVVddddVV/w9Rueqqq6666qqrrvovJulW29jmX2Ib2wDYxja2sY1tbANgG9vYBsA2/x6SeCBJnDlz5sFcddVVV1111VVXXXXV/y4EV1111VVXXXXVVf/FbGMb29gGwDb3s82/hm1s8/zYxjb3s82/xe7uLlddddVVV1111VVXXfW/EJWrrrrqqquuuuqq/2IRcWtmcj/bANjmfrZ5INsA2AbANraxjW0AbGMbANvY5j+CJK666qqrrrrqqquuuup/KSpXXXXVVVddddVV/w0yE9vczzYAtrmfbR7INgC2eW62+ZfY5t9KElddddVVV1111VVXXfW/EJWrrrrqqquuuuqq/wa2sY1tbPOC2MY2z49tbGMbANvY5l9imxeFJO536dIlzpw582Cuuuqqq6666qqrrrrqfxcqV1111VVXXXXVVf/FIuJW29jGNvezDYBtnpttAGwDYJsHss0D2cY2tgGwzVVXXXXVVVddddVVV/0/ROWqq6666qqrrrrqv0EpBdsA2MY2ALYBsM1zsw2AbQBsYxvbANjGNs/NNv9WkpCEJK666qqrrrrqqquuuup/IYKrrrrqqquuuuqq/war1epW29jmBbGNbZ4f2zyQbR7INv+R9vb2uOqqq6666qqrrrrqqv+FCK666qqrrrrqqqv+G0zTdKttbGMb29gGwDYPZBvbANjGNgC2sY1tAGxjm38PSTw3SUjimmuuefA111zzYK666qqrrrrqqquuuup/D4Krrrrqqquuuuqq/wa2sc1zsw2AbZ6bbe5nmweyzf1sA2CbfwtJPLe9vT0Azpw582Cuuuqqq6666qqrrrrqfw8qV1111VVXXXXVVf8NSinYxja2eX5sY5vnZhsA29jGNraxzf1sA2CbF5UkHkgSkpCEJK666qqrrrrqqquuuup/IYKrrrrqqquuuuqq/wbr9frWzMQ2ALaxDYBtHsg2tgGwDYBt7mcbANvYxjYvjCT+JZJ4IEmcP3+ea6655sFcddVVV1111VVXXXXV/x5Urrrqqquuuuqqq/4bZOatALaxzf1s84LY5oFsYxsA2/xnkIQkJHHx4kXOnDnzIK666qqrrrrqqquuuup/DypXXXXVVVddddVV/w0yk8zkfraxzf1sY5vnZhvb2OZ+tgGwjW0AJGGbF5UkXhhJRATXXHPNg7nqqquuuuqqq6666qr/PahcddVVV1111VVX/TfIzGdkJraxzf1sY5v72cY2tnlutrENgG0eyDbPjyReVJIAkIQkdnd3ueaaax7MVVddddVVV1111VVX/e9BcNVVV1111VVXXfXfQNKtmYltbGObf4ltAGxjGwDb2MY2trHNi0IS95PEA0nifpIAkMSlS5c4c+bMg7nqqquuuuqqq6666qr/PQiuuuqqq6666qqr/pvYxjb3s839bGOb52ab+9kGwDYPZJvnRxIPJAlJPJAkACRxP0lI4tKlS1x11VVXXXXVVVddddX/MgRXXXXVVVddddVV/w0k3ZqZ2MY2tgGwjW3uZxvb2OZ+trENgG0AbGMb2wDYxjb/GpJ4IEk80N7eHtdcc82Dueqqq6666qqrrrrqqv89CK666qqrrrrqqqv+m7TWsI1tAGxzP9s8N9vY5n62AbANgG1sY5v72ea5SeJFJQlJSCIiAHixF3ux1+aqq6666qqrrrrqqqv+d6By1VVXXXXVVVdd9d8gIm61TWYCYBsA29gGwDYviG0AbANgmxdGEi+MJB5IEveThCT29va46qqrrrrqqquuuuqq/2UIrrrqqquuuuqqq/6bTNN0q21sYxvbPDfb2MY2tgGwDYBtbGMb29jGNraxzfMjiX+JJAAkIQkASezt7QFwzTXXPJirrrrqqquuuuqqq67634Hgqquuuuqqq6666r/JOI632sY297MNgG2eH9sA2MY2ALb515KEJCQhiftJ4rlJQhIRwVOf+lTOnDnzIK666qqrrrrqqquuuup/BypXXXXVVVddddVV/01sk5nYxja2AbANgG1sYxvb2AbANvezDYBtbGMb2/xbSOK5SQJAEhGBJK655poHc9VVV1111VVXXXXVVf87EFx11VVXXXXVVVf9N2mt3Wob29jGNrYBsM3zYxsA29jGNraxjW1eGEkASOKFkYQkJAEgCUlI4tZbb+Waa655MFddddVVV1111VVXXfW/A8FVV1111VVXXXXVf5PMvDUzsY1t7mcbANs8P7Z5INvczza2+ZdI4oEk8fxIQhIAktjf3+fMmTMP5qqrrrrqqquuuuqqq/53ILjqqquuuuqqq676bzJNE5mJbQBsY5sHso1tbGMb2wDYxja2AbCNbWwDYJvnRxL3k4QkJHE/STw/kpDE3t4eV1111VVXXXXVVVdd9b8IwVVXXXXVVVddddV/n9/JTGxjm/vZxjYviG0AbANgG9vYBsA2ALb515DE/SQhCUlIQhIRwf7+Ptdcc82Dueqqq6666qqrrrrqqv8dCK666qqrrrrqqqv+m9imtUZmYhvb2OZ+trGNbWxjG9sA2AbANraxjW1sA2AbANs8N0k8N0ncTxLPTRKS2NvbA+DFXuzFXpurrrrqqquuuuqqq676n4/gqquuuuqqq6666r9JRNzaWsM2trENgG1s84LYBsA2trHN/Wxjm+dHEveTxPMjiftJAkASkpBEKYWnPvWpvNiLvdhrcdVVV1111VVXXXXVVf/zEVx11VVXXXXVVVf9N2qtYRvb2MY297ONbe5nG9sA2OaBbGMbANvYxjb3kwSAJO4nCUlIAkAS95MEgCQkASAJSezt7fHiL/7ir81VV1111VVXXXXVVVf9z0dw1VVXXXXVVVdd9d8kIm4dx/HWzMQ2ALaxjW3uZxvb3M82trGNbWxjG9vY5l8iiRdGEs9NEpKICPb29jhz5syDueqqq6666qqrrrrqqv/5CK666qqrrrrqqqv+G7XWbs1MbGObB7LNC2Mb29jGNgC2sY1tXhhJSAJAEpIAkASAJCQhCUlIQhIRwe23384111zz4Bd7sRd7ba666qqrrrrqqquuuup/NoKrrrrqqquuuuqq/0aZSWZiG9vYxja2AbCNbWxjG9vYxjbPzTa2uZ9tbGObF0QSLwpJSEIS+/v7ALzYi73Ya3HVVVddddVVV1111VX/sxFcddVVV1111VVX/Tdqrd2amdjGNraxDYBtXhjb2MY2trENgG1s8/xIQhLPjyQAJAEgCUlIAkASktjf3+epT30qL/7iL/7aXHXVVVddddVVV1111f9sBFddddVVV1111VX/jcZxvDUzsY1t7mcbANvYxja2sY1tbANgG9vYxja2sQ2AbR5IEveThCQkIQlJAEgCQBIPJAlJRAQRwd7eHmfOnHkwV1111VVXXXXVVVdd9T8bwVVXXXXVVVddddV/I0m/k5lkJraxjW1sY5sXxjYAtrGNbWxjG9sA2OZFJQkASQBIQhKSkIQkJBER/O3f/i3XXHPNg6+55poHc9VVV1111VVXXXXVVf9zEVx11VVXXXXVVVf9N8pMpmkiM7GNbWxzP9vYxja2sY1tbGMb2zyQbQBsY5vnRxKSeCBJPJAk7icJAElIIiLY398H4MyZMw/mqquuuuqqq6666qqr/uciuOqqq6666qqrrvpvFBG3ttawjW1sA2Ab2zw/trmfbWxjG9sA2OYFkcT9JCEJSdxPEveThCQAJCEJSUQEh4eHALzYi73Ya3HVVVddddVVV1111VX/cxFcddVVV1111VVX/TeKiFttk5nYxja2AbCNbWxjG9vYBsA2tgGwjW1sYxvb2MY2tnlRSQJAEg8kCUkASEISEcHTnvY0XvzFX/y1ueqqq6666qqrrrrqqv+5CK666qqrrrrqqqv+my2Xy9/OTGxjG9vYBsA2z802tgGwDYBtbGMb29jmfrZ5IElIQhKSkIQkACQBIAkASQBIQhKSkEREcNttt3HmzJkHc9VVV1111VVXXXXVVf9zEVx11VVXXXXVVVf9N8tMMpPMxDa2sY1tAGxjG9vY5n62sY1tAGxjm/vZ5l9DEgCSAJCEJCQBIAlJRASlFO644w6uueaaB7/Yi73Ya3PVVVddddVVV1111VX/MxFcddVVV1111VVX/Tebpum3W2vYxjYPZJsHso1tbGMbANvYBsA2trGNbWwDYBsASdxPEpKQhCQAJAEgiftJQhKSkIQkIoI777wTgBd7sRd7La666qqrrrrqqquuuup/JoKrrrrqqquuuuqq/2bTND0jM8lMbGMb29gGwDa2sc1zs41tbGMbANvY5n62eW6SeG6SAJAEgCQkASAJSUhCEpKICJ7+9Kfz4i/+4q/NVVddddVVV1111VVX/c9EcNVVV1111VVXXfXf79ZpmrCNbWxjG9vY5oFsYxvb2MY2ALaxjW1sYxvb2Oa5SQJAEpKQhCQAJAEgCUkASOJ+kpBERFBK4W//9m85c+bMg7nqqquuuuqqq6666qr/mQiuuuqqq6666qqr/ptJunWaJjIT29jGNgC2sY1tbHM/29gGwDa2sY1tbANgG9s8P5J4bpIAkMT9JAEgCUlIIiKQRERwxx13cM011zz4xV7sxV6bq6666qqrrrrqqquu+p+H4Kqrrrrqqquuuuq/WUTcapvMJDOxjW1sA2AbANvYxjb3s41tAGxjGwDb3M82L4gkJCEJAEkASEISAJIAkIQkJBERRASHh4c87WlP48Ve7MVei6uuuuqqq6666qqrrvqfh+Cqq6666qqrrrrqf4DlcvnbrTVsYxsA29gGwDYPZBvb2AbANraxjW1sYxvbANjmuUnifpKQBIAk7icJAElIQhKSkEREUErhtttu48Vf/MVfm6uuuuqqq6666qqrrvqfh+Cqq6666qqrrrrqf4DWGpmJbWxjG9sA2MY2trGNbR7INrYBsI1tbGMbANs8kCQkASAJSdxPEgCSkASAJCQBIAlJSCIiKKXwD//wD5w5c+bBL/ZiL/baXHXVVVddddVVV1111f8sBFddddVVV1111VX/A0zT9NutNTIT29gGwDa2eSDb2MY2trGNbWxjG9vYxja2eUEkcT9JSAJAEpIAkIQkACQhCUlIQhIRweHhIQcHBw9+ndd5nffiqquuuuqqq6666qqr/mehctVVV1111VVXXfU/gO3faa2RmWQmtrGNbQBsYxvb3M82trENgG0AbHM/29gGQBLPTRKSAJCEJCQBIAlJAEhCEgCSkEREEBGUUrjtttt4sRd7sdfmqquuuuqqq6666qqr/mchuOqqq6666qqrrvofwPat0zSRmdjGNraxjW1sA2Ab29jmgWxjG9vYxja2sc39bPOCSAJAEgCSuJ8kJAEgCQBJSCIiKKXwD//wD1xzzTUPfrEXe7HX5qqrrrrqqquuuuqqq/7nILjqqquuuuqqq676H2IcRzIT29jGNgC2AbDN/WxjG9vYxja2sY1tbGMbANvY5oEkIQkASQBIAkASAJKQhCQAJCEJSUQEkpBERHB4eMjTnvY03umd3umzuOqqq6666qqrrrrqqv85CK666qqrrrrqqqv+B4iIW9fr9W9nJplJZmIb2wDYxja2sQ2AbWxjG9sA2MY2trGNbWzzgkhCEpIAkASAJCQhCQBJSEISkpCEJCKCiKDWyu23386LvdiLvfaLvdiLvTZXXXXVVVddddVVV131PwPBVVddddVVV1111f8QrTVaa2QmtrGNbWzzQLaxzXOzjW0AbGMb29jGNrZ5QSQhCUlIQhL3k4QkJAEgCUlEBJKICCKCf/iHfwDgdV7ndd6Lq6666qqrrrrqqquu+p+B4Kqrrrrqqquuuup/iGmafru1hm1sYxvb2MY2trHN/WxjG9vYxja2sY1tbGObB7LN/SQhCUkASAJAEgCSkIQkJAEgCUkASCIiiAhKKRwdHfH0pz+dF3uxF3ttrrrqqquuuuqqq6666n8Ggquuuuqqq6666qr/ITLzd1prZCa2sY1tAGxjG9vYxjYAtrGNbWwDYBvb2MY2trGNbV4QSQBIAkASkpDE/SQhCUlIQhKSkEREUErh93//97nmmmse/Dqv8zrvzVVXXXXVVVddddVVV/33I7jqqquuuuqqq676n+PWcRzJTDIT29jGNrZ5INvYBsA2trGNbWxjG9sA2MY2z48kJAEgCUlIQhL3k4QkJCEJSUhCEpKICCKCUgpHR0c87WlP4x3f8R0/i6uuuuqqq6666qqrrvrvR3DVVVddddVVV131P8g0TbTWsI1tbGMbANvYxjYAtrHNA9nGNrYBsI1tAGxjm+dHEpIAkASAJCQhCUlI4n6SkIQkJBERRASHh4f83d/9Hddcc82DX+zFXuy1ueqqq6666qqrrrrqqv9eBFddddVVV1111VX/Q0TErev1+rczk8zENraxjW1sYxvb2AbANraxjW1sYxvb2MY2ALa5n21eEEkASEISknggSUhCEpKQREQgiYiglMJdd90FwOu8zuu8F1ddddVVV1111VVXXfXfi8pVV1111VVXXXXV/yDTNN3aWiMzyUxsYxvbPJBtbANgG9vYxja2sY1tbGMb29gGQBIPJAlJSEISkpCEJAAkIQlJSEISkpBERGCbiCAiKKVwdHTE3/zN3/BiL/Zir81VV1111VVXXXXVVVf996IcP36cq6666qqrrrrqqv8pxnF86a2trdfu+55aK6UUIoKIICKQhCQigohAEhGBJCQhCUlEBJKQhCQkIQlJSOJ+krCNbWxjm/vZ5kVhG9sA2Abgrrvu4rVf+7WPA/zDP/zD73DVVVddddVVV1111VX/PQiuuuqqq6666qqr/mf5nWmayExsYxvb2MY2trGNbWxjG9s8N9vYxja2uZ9tbPPcJCEJSUgCQBKSkIQkJCEJSUhCEpKQREQQEUQEpRSOjo7467/+a17ndV7nvbnqqquuuuqqq6666qr/PgRXXXXVVVddddVV/4NExK3DMJCZZCa2sQ2AbR7INgC2sY1tbGMb29jGNraxjW3uZ5v7SeJ+kgCQhCQkIQlJSEISkpCEJCQhCUlIIiKICGqt/NEf/RHXXHPNg1/sxV7stbnqqquuuuqqq6666qr/HpTjx49z1VVXXXXVVVdd9T+FpF3gtTc3Nx/cdR21ViKCiCAikIQkJBERSCIikIQkJCEJSUhCEpKQhCQkASCJ58c2z802trGNbWzz3GxzP9sArNdrhmHgzd7szV77z/7sz37m8PBwl6uuuuqqq6666qqrrvqvRXDVVVddddVVV131P0xrjdYamUlmYhvb2MY2trGNbWxjGwDb2MY2trGNbWxjG9vY5oWRhCQkIQkASUhCEpKQxP0kIQlJSEISEUEphVIKj3/847nmmmse/OEf/uHfxVVXXXXVVVddddVVV/3Xoxw/fpyrrrrqqquuuuqq/0laaw/e3Nx87dlsRq2VUgoRQUQgiYhAEpKICCQhiYhAEpKQhCQkIQlJRASSuJ8knpttbGMb2/xr2Oa5rddrzp07x6u/+qs/GOAf/uEffoerrrrqqquuuuqqq676r0M5fvw4V1111VVXXXXVVf+TZKY2NjbeezabUWullEJEEBFEBJKICCQhiYhAEpKICCQhCUlIQhKSkIQkJCEJSdxPErb5j2QbgOVyyalTp3jkIx/54FtvvfVvzp49eytXXXXVVVddddVVV131X4Pgqquuuuqqq6666n8YSbcOw0BmYpvMxDa2sY1tbANgG9vYxja2AbCNbWxjG9vYxja2sY1tHkgSAJKQhCQkIQlJSEISkpCEJCQhCUlIQhIRQURQSqGUwnK55Jd/+Ze55pprHvzhH/7h38VVV1111VVXXXXVVVf916EcP36cq6666qqrrrrqqv9JJO0Cr72xsfHgrusopVBKISKICCQhCUlEBJKICCQhCUlEBJKQhCQkIQlJSEISknh+bGOb/yi2Wa/XTNPEYx/72OPXXHPNg//0T//0Z7jqqquuuuqqq6666qr/fJTjx49z1VVXXXXVVVdd9T9NRLz3xsbGg/u+p9ZKRBARRASSiAgkIYmIQBIRgSQkIYmIQBKSkIQkJCEJSQBI4gWxzb+WJABscz9JAOzu7nL69Gle+qVf+qXPnj37jFtvvfWvueqqq6666qqrrrrqqv9cBFddddVVV1111VX/Ay2Xy9+eponMJDOxjW1sA2AbANvYxja2sY1tbGMb29jGNraxDYBtXhhJSOJ+kpCEJCQhiYhAEpKQREQgCUlEBBFBRBAR1FpZLpf8yq/8CgDv+I7v+FnXXHPNg7nqqquuuuqqq6666qr/XARXXXXVVVddddVV/zP9zjiOtNbITGxjG9vYxja2AbANgG0AbGMb2wDYxja2sY1tAGxjmweShCQAJCEJSUhCEpKQhCQkIQlJRASSkIQkJCGJiKCUQimFWiur1Ypf/MVf5Jprrnnw53zO5/wWV1111VVXXXXVVVdd9Z+Lcvz4ca666qqrrrrqqqv+J5rNZh89m83ouo5SChFBRBARSEISkpCEJCQhiYhAEpKQhCQkIYmIQBKSkIQkACQhiQeyzf1s86KSxPMjCYCzZ8/SWuMxj3nM8WuuuebBf/qnf/ozXHXVVVddddVVV1111X8OyvHjx7nqqquuuuqqq676n0bSru3X3tjYeHDXdZRSKKUQEUQEkpCEJCICSUQEkpCEJCQhiYhAEpKQhCQkIQkASUjCNv8WkrifJO4niftJAkASkrjjjjtorfGar/maLw3wD//wD7/DVVddddVVV1111VVX/cejHD9+nKuuuuqqq6666qr/iTLzwRsbG6/ddR21ViKCiCAiiAgiAklIIiKQhCQkIQlJSEISkpCEJCQhCUlIQhIPJIn72eb5kcRzk8T9JAEgiftJQhKSiAjuuOMOpmniTd7kTV77dV7ndd77z/7sz37m8PBwl6uuuuqqq6666qqrrvqPQzl+/DhXXXXVVVddddVV/xO11rSxsfHes9mMWiulFCKCiCAikEREIAlJSCIikEREIAlJSEISkpCEJCQhCUkASOJfYpvnJonnJgkASdxPEveThCQkceedd9Ja49GPfvTxV3zFV3zrzc3N4//wD//wO1x11VVXXXXVVVddddV/DMrx48e56qqrrrrqqquu+p+q67qPns/n1FoppRARRAQRgSQkERFIQhKSkIQkJCEJSUhCEpKQhCQkIQlJAEjigSRhmxeFJAAkASAJAEkASAJAEpKQhCQigrvuuovWGo9+9KOPv/iLv/hrv87rvM5733rrrX9z9uzZW7nqqquuuuqqq6666qp/H8rx48e56qqrrrrqqquu+p9I0i7w2hsbGw/uuo5SCqUUIoKIQBKSkIQkIgJJRASSiAgkIQlJSEISkpBERAAgCUlI4n6S+NeSBIAkACQhCQBJAEhCEpKQhCQkcffdd/MP//APPOQhD+HUqVPHX+zFXuy1Nzc3j//DP/zD73DVVVddddVVV1111VX/dpTjx49z1VVXXXXVVVdd9T9VZj54c3Pztfu+p9ZKRBARRASSkIQkIgJJSEISkpCEJCQhCUlIQhKSkIQkACQBIIkXlSQAJHE/SQBIQhIAkpCEJAAkIQlJSEISEcE4jjztaU9juVzyqEc96viLv/iLv/brvM7rvPfR0dGlzc3N49dcc82DJXF4eLjLVVddddVVV1111VVXvWjQgx70IK666qqrrrrqqqv+p8rM17722mt/69ixYywWC/q+p+s6aq2UUiilUEqhlEJEUEohIogISilEBKUUIoJSCqUUIoJSChFBRBARSEISkrifbQBsYxvb2CYzsY1tMhPb2CYzsY1tbJOZ2MY2trGNbWyTmdjGNplJZpKZZCatNTY2NnjkIx/JDTfcwM0338xzu++++24FOHv27K38F/r7v//7377mmmse/A//8A+/c9999936d3/3d7dGxK1cddVVV1111VVXXfU/FXrQgx7EVVddddVVV1111f9UmfngkydPPv3kyZMsFgtmsxld11FrpZRCrZWIoJRCRFBKISIopRARRASlFEopRASlFCKCUgoRQUQQEUhCEpKQxP1sYxsA29gmM7GNbWyTmdjGNraxTWZiG9vYxja2sY1tbGMb29gmM7FNZpKZZCaZSWayubnJ9ddfzw033MD29jbPbW9vj/9MOzs73G9/fx8A2wBsb28jieVyeevZs2dvffzjH3/rbbfd9jv33HPPrefOnfttrrrqqquuuuqqq67674Ye9KAHcdVVV1111VVXXfU/2Ww2+61rr732tTc3N5nNZnRdR9d1lFKotVJKISIopRARRASlFCKCUgoRQSmFiKCUQkQQEZRSiAgiAklEBJIAkASAbQBsYxvb2MY2trGNbWyTmdjGNraxjW1sYxvb2AbANraxjW1sYxvbZCa2sU1mYhvb2MY2/1PYxja2yUy2tra4/vrrueGGG9je3mY2m90K8MM//MPf/fjHP/577rvvvlu56qqrrrrqqquuuuq/GnrQgx7EVVddddVVV1111f9kXdf91pkzZ157e3ub2WxG3/d0XUcphVorpRQiglIKEUEphYggIiilEBGUUogISilEBBFBKYWIICKICCQhCUkASALANgC2sY1tbGMb29jGNraxjW1sYxvb2MY2ALaxDYBtbANgG9vYxja2sQ2AbWxjm/vZ5vmRhG0AJGEbSfx72QZAEgC2AbCNbWxjm8wkM2mtsbm5ySMe8QhuvPFGZrPZrb/1W7/13T/6oz/6OVx11VVXXXXVVVdd9V8JPehBD+Kqq6666qqrrrrqf7LMfO1rr732t44dO8ZisaDve2qt1FqptVJKoZRCRFBKISKICEopRAQRQSmFiKCUQkQQEZRSiAgigohAEhGBJAAkAWCb+9nGNraxjW1sYxvb2MY2ALaxjW1scz/b3M82ALYBsA2AbQBsA2Ab29zPNs9NEv9VbANgG9tkJraxTWaSmWQmrTWmaWJjY4NHPOIRPPzhD7/18z//87/7zjvv/Byuuuqqq6666qqrrvqvgB70oAdx1VVXXXXVVVdd9T9ZZj74xIkTTz958iSLxYLZbEbXddRaqbVSSqGUQkRQSiEiiAhKKUQEEUEphYiglEJEEBGUUogIIoKIICKQhCQkASAJANsA2AbANraxjW0AbGMb29gGwDa2uZ9t/q1sY5v/CWxjG9vYJjOxTWaSmWQmmUlrjdYarTWmaWKxWHDdddexv79/6w/90A+9j6Tf5qqrrrrqqquuuuqq/0zoQQ96EFddddVVV1111VX/081ms9+65pprXntzc5P5fE7XddRaqbVSSqGUQkRQSiEiKKUQEUQEpRQigoiglEJEEBGUUogIIoKIICKQREQA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YDabvXZEcD9J3E8S95PEA0lCEi8qSUgCQBIvKtsA2MY297MNgG0yE9tkJkdHR7zUS73Urf/wD//wO1x11VVXXXXVVVf9z0c5fvw4V1111VVXXXXVVVdd9Z9hHMffWS6XLBaL15aEJAAkcT9JAEjifpJ4YSQhCUlIQhL3k4Qk/jVsYxsA29gGwDa2sY1tMpNpmuj7/tanP/3pP8NVV1111VVXXXXV/3xUrrrqqquuuuqqq6666j/Rer3+nHvvvZdrr732s3kBIoLMJCIAsM1zk8T9bPPcJHE/20jiBZGEbR5IErZ5IElIAkASkogIrr322gdz1VVXXXXVVVdd9b8Dlauuuuqqq6666qqrrvpPdnR09Dn33nsv11577WdLAkASDxQR2AbANg8kCds8P5K4n20AJGEbSTw3SdhGErZ5UUgCQBKS2N3dfTBXXXXVVVddddVV/zsQXHXVVVddddVVV1111X+Bo6Oj79nd3f3tYRiYponWGpmJbWxjG9vYxja2sQ2AbWxjm+dmG9vY5t9KEveThCQk8UCSkEREMJvNHnzNNdc8mKuuuuqqq6666qr/+Qiuuuqqq6666qqrrrrqv8atu7u777NcLhnHkWmaaK2RmWQmmUlmYhvb2AbANraxDYBtbGMb2zw329gGwDYvjCQeSBLPTRKSuJ8kdnd3ueaaax7MVVddddVVV1111f98BFddddVVV1111VVXXfVfxPat99577/sMw8A0TWQmrTUyE9vYxja2sY1tbHM/29jGNvezjW1sY5v72QbANgC2+deSxP0kIQlJXLp0icc+9rGvxVVXXXXVVVddddX/fARXXXXVVVddddVVV131X6i19t0XL1787XEcmaaJzCQzyUxsYxvb2MY2trGNbWxzP9vYxjbPzTYPZJsXRBIAknh+JCEJAElIQhIv/uIv/jpcddVVV1111VVX/c9HcNVVV1111VVXXXXVVf/F9vf332e9XjNNE601MpPMJDPJTDIT29jGNraxDYBtbGOb+9nGNraxzf1s828hCUk8kCQAJHHp0iXOnj3LVVddddVVV1111f8CBFddddVVV1111VVXXfVf79Zz58599zAMTNNEZpKZZCa2sY1tbANgGwDb2OZ+trHN82ObF5Uk7ieJ+0nigSQBIAlJD+aqq6666qqrrrrqfz6Cq6666qqrrrrqqquu+m+wXq8/ZxgGpmlimiYyE9tkJraxjW1sYxvb2AbANra5n21sYxvb2OZ+tnlRSeL5kcT9JCGJiHjQNddc82Cuuuqqq6666qqr/mcjuOqqq6666qqrrrrqqv8Gkm6977773mcYBlprZCaZiW1sYxvb2MY2tgGwjW0AbGMb2/xnkQSAJCQhCUlcuHCBM2fOPJirrrrqqquuuuqq/9kIrrrqqquuuuqqq6666r/JNE2/vV6vmaaJ1hqZSWaSmdjGNrYBsI1tbANgG9vczza2sY1tbGMbANs8P5K4nyReFJKICGqtvNiLvdhrcdVVV1111VVXXfU/G8FVV1111VVXXXXVVVf9N4mIW8+ePfvZwzAwTROtNTIT22QmtrGNbWxjGwDb2AbANrb5l9gGwDYAkgCQxHOThCQkASAJAEkASOKpT30qL/7iL/7aXHXVVVddddVVV/3PRnDVVVddddVVV1111VX/jTLze9brNa01MpPMJDOxjW1sYxsA29jGNgC2uZ9tbPPcbHM/2/xLJPH8SAJAEgCSuOqqq6666qqrrvpfgOCqq6666qqrrrrqqqv+G0XErfv7+789jiOtNTKTzMQ2mYltbGMbANsA2AbANra5n21sYxvbvCgkASCJ5yaJ+0kCQBKXLl3iqquuuuqqq6666n8Bgquuuuqqq6666qqrrvpvdnR09Nnr9ZppmshMbJOZ2MY2trGNbWxjGwDb2AbANrZ5fmzzH0USkpDEVVddddVVV1111f8CBFddddVVV1111VVXXfXfrJTyOwcHB789TROtNTIT29jGNraxjW0AbGMb2wDY5n62sc39bPOikMQLIglJ3E8Sly5d4syZMw/mqquuuuqqq6666n82gquuuuqqq6666qqrrvof4ODg4LfHcaS1RmuNzMQ2mYltbGMb2wDYBsA2ALZ5INvY5n62eVFJQhKSeCBJSAJAEufOneOqq6666qqrrrrqfziCq6666qqrrrrqqquu+h9A0veM40hrjcwkM8lMbGMb29jGNrYBsA2AbQBsY5t/D0k8kCSemyQkce7cOa666qqrrrrqqqv+hyO46qqrrrrqqquuuuqq/wEi4tbDw8Pfbq2RmWQmtrGNbWxzP9vYBsA2ALa5n21sYxvb2OYFkcT9JPGCSOKBJCGJq6666qqrrrrqqv/hCK666qqrrrrqqquuuup/iIODg9+eponWGplJZmIb29jGNrYBsI1tAGwDYBvbvCC2eX4k8cJIAkASkpAEgKQHc9VVV1111VVXXfU/G8FVV1111VVXXXXVVVf9DxER3zNNE5mJbTKTzMQ2trGNbWxzP9sA2OZ+tvnXksS/hiQuXLjAVVddddVVV1111f9wBFddddVVV1111VVXXfU/RETcenh4+NutNTIT29jGNraxjW1sYxvbANgGwDb3s41tbGMb2wDY5oWRhCQkIYnnJglJSCIiuOqqq6666qqrrvofjuCqq6666qqrrrrqqqv+B1kul7/dWiMzsY1tMhPb2MY297ONbQBsA2Ab2/xHkQSAJB5IEnt7e1x11VVXXXXVVVf9D0dw1VVXXXXVVVddddVV/4O01n6ntUZmYhvb2MY2tgGwjW3uZxsA29zPNv8SSTyQJF4YSQBIAsA211xzzYO56qqrrrrqqquu+p+L4Kqrrrrqqquuuuqqq/4HkXTrNE1kJpmJbe5nG9vYxja2sQ2AbQBscz/b2AbANrYBsM2/hiSemyR2d3e56qqrrrrqqquu+h+O4Kqrrrrqqquuuuqqq/4HiYhbj46OfjszsY1tbGMb29jGNvezjW0AbANgmweyzQsjiQeShCSeH0lcddVVV1111VVX/S9CcNVVV1111VVXXXXVVf/DLJfL326tkZnYxja2AbANgG1scz/bANgGwDYvjG0eSBIAkrifJJ4fSUhCEmfOnHkwV1111VVXXXXVVf9zEVx11VVXXXXVVVddddX/MJn5O5lJZpKZ2MY2tgGwjW1sYxvbANgGwDYAtrHNA9nmX0MSAJKQxAPt7u5y1VVXXXXVVVdd9T8cwVVXXXXVVVddddVVV/0PI+nW1hq2sY1t7mcb2zw32zyQbe5nG9vY5oWRxL9EEgCSuOqqq6666qqrrvpfgOCqq6666qqrrrrqqqv+h4mIW5fL5W9nJraxjW1scz/b2MY2trmfbe5nm/8IknggSQBI4qqrrrrqqquuuup/OIKrrrrqqquuuuqqq676H2gcRzIT29jGNraxjW1s80C2sQ2Abe5nmxdGEg8kCUlI4oWRxKVLl7jmmmsezFVXXXXVVVddddX/XARXXXXVVVddddVVV131P9B6vf7tzMQ2trHNc7ONbWxzP9sA2OZ+tnkg2wDY5n6SeG6SuOqqq6666qqrrvpfjuCqq6666qqrrrrqqqv+B7L925mJbWwDYBvb2Ob5sc0D2eZ+trGNbV4QSTw3SQBIQhJXXXXVVVddddVV/8sQXHXVVVddddVVV1111f9Mt2YmmYltbPNAtrGNbWxjm/vZ5j+LJCQhCYBz585x1VVXXXXVVVdd9T8YwVVXXXXVVVddddVVV/0PFBHPsI1tAGxjG9u8ILaxDYBtAGzzL5HEA0lCEv8SSVxzzTUP4qqrrrrqqquuuup/LoKrrrrqqquuuuqqq676H2q5XP62bWwDYBsA29jGNraxjW3uZxsA2wDYxjYvCkncTxIAkrjqqquuuuqqq676X4rgqquuuuqqq6666qqr/odqrZGZ2MY2ALZ5YWzzgtjmP5Ikrrrqqquuuuqqq/6HI7jqqquuuuqqq6666qr/oYZh+G3b2MY2tgGwzQPZxja2uZ9tAGzzQLaxjW0eSBKSeGEkcT9JXHXVVVddddVVV/0vQHDVVVddddVVV1111VX/Q43jiG1scz/bANjGNrZ5brZ5INu8qCQhCUkASAJAEveTxP0kPZirrrrqqquuuuqq/7kIrrrqqquuuuqqq6666n+u38lMAGxjmxfGNra5n23uZ5v/CJK4nyQkcdVVV1111VVXXfU/GMFVV1111VVXXXXVVVf9D2Ub29jmfraxzQPZxjYPZBsA2/xbSQJAElddddVVV1111VX/SxFcddVVV1111VVXXXXV/1ARcattbGObB7INgG2em22eH9u8MJIAkMSL6pprrnkwV1111VVXXXXVVf9zEVx11VVXXXXVVVddddX/YLaxDYBtHsg2D2Qb29zPNgC2uZ9tXhhJAEjihZHEVVddddVVV1111f8CBFddddVVV1111VVXXfU/VETcyjPZBsA2tnlutnlhbHM/2zyQJCTx/EjihbHNVVddddVVV1111f9gBFddddVVV1111VVXXfU/2DiOt9oGwDYvCtvYBsA2/1aSeGEkcdVVV1111VVXXfU/HMFVV1111VVXXXXVVVf9DxYRANjmgWxzP9sA2MY2L4ht7meb5yYJAEk8N0lIAkAS93vsYx/7YK666qqrrrrqqqv+5yK46qqrrrrqqquuuuqq/8GGYbjVNs+PbWzzgtgGwDYvKkkASOJ+krjqqquuuuqqq676X4rgqquuuuqqq6666qqr/gezzQPZxjb/Ets8P7b515DEA0niqquuuuqqq6666n8Rgquuuuqqq6666qqrrvofLCK4n21eENsA2MY297MNgG1eGEncTxIAkrjqqquuuuqqq676X47KVVddddVVV1111VVX/Q82juOttrHNfzZJANhGElddddVVV1111VX/BxBcddVVV1111VVXXXXV/1G2eSDbANjmP8o111zzYK666qqrrrrqqqv+5yK46qqrrrrqqquuuuqq/8Fs8/zY5n62AbDN/WxzP9u8MJK4nyQk8aI6deoUV1111VVXXXXVVf+DEVx11VVXXXXVVVddddX/YrZ5brb515KEJO4nCUlIQhIvyH333XcrV1111VVXXXXVVf9zEVx11VVXXXXVVVddddX/Urb5l9gGwDYAtvm3kMRVV1111VVXXXXV/0IEV1111VVXXXXVVVdd9T+YJP41bPPvIQlJXHXVVVddddVVV/0fQXDVVVddddVVV1111VX/R9nmhbHNA0nifpKQxAtTSuHs2bO3ctVVV1111VVXXfU/F8FVV1111VVXXXXVVVf9DyaJfy/bPD+SkASAJO4niedHEg+0tbXFVVddddVVV1111f9wBFddddVVV1111VVXXfU/WN/3D5bEv8Q297ONbZ6bbZ4fSdxPEg8kiRdEEvfdd9+tXHXVVVddddVVV/3PRXDVVVddddVVV1111VX/g7XWAJDEfzZJ3E8S/5Ljx49z1VVXXXXVVVdd9T8clauuuuqqq6666qqrrvofTBL/GWzzQJIAkIQkACTxwtjmqquuuuqqq6666n84gquuuuqqq6666qqrrvo/zDbPzTbPjySeH0m8IPfdd9+tXHXVVVddddVVV/3PRXDVVVddddVVV1111VX/w0kCQBL/VrZ5QSRxP0lIQhL/kuPHj3PVVVddddVVV131PxzBVVddddVVV1111VVX/Q9Wa30w/0a2eUEk8UCSkMRzk8RVV1111VVXXXXV/2JUrrrqqquuuuqqq6666v8xSbwgknhBbGObs2fPPoOrrrrqqquuuuqq/7kIrrrqqquuuuqqq6666n8w2/xb2Ob5sc3zIwkASUhCEv+SEydOcNVVV1111VVXXfU/HMFVV1111VVXXXXVVVf9DyaJfy/bvDCSAJDEVVddddVVV1111f8xBFddddVVV1111VVXXfV/hG3+vSTxojpx4gT33XffrVx11VVXXXXVVVf9z0Vw1VVXXXXVVVddddVV/4PNZrMH859EEpIAkIQkACTxorDNVVddddVVV1111f9wBFddddVVV1111VVXXfU/WGYiiRfGNvezzb+WJJ6bJCTx/NgGwDZnz569lauuuuqqq6666qr/uQiuuuqqq6666qqrrrrq/xjbPD+2eUEkIQlJSOJfYpuTJ09y1VVXXXXVVVdd9T8cwVVXXXXVVVddddVVV/0PZpt/D9s8N0k8kCReEEkASOK52eaqq6666qqrrrrqfzgqV1111VVXXXXVVVdd9T+YJP4zSeJ+kvjXOHXqFPfdd9+tXHXVVVddddVVV/3PReWqq6666qqrrrrqqqv+h8rMB/OfSBL3k8T9JCGJq6666qqrrrrqqv8DCK666qqrrrrqqquuuup/AUnczzb3sw2AbZ6bbV4UkgCQhCReFLaxzVVXXXXVVVddddX/cFSuuuqqq6666qqrrrrq/yFJAEgCQBLPTRIviCROnTrFVVddddVVV1111f9wBFddddVVV1111VVXXfV/kG0eyDYviCQeSBIPJAnbPJBt7rvvvlu56qqrrrrqqquu+p+N4Kqrrrrqqquuuuqqq/4Hk8QLYpsHss2/lSQkIQkASTyQJABsAyCJq6666qqrrrrqqv8FCK666qqrrrrqqquuuup/qMx8MC+AbZ4f29jmRSEJSUjiX2tnZ4ezZ8/eylVXXXXVVVddddX/bFSuuuqqq6666qqrrrrqfwnb/GeRhCReENtcddVVV1111VVX/S9EcNVVV1111VVXXXXVVf9DSeJFYZsXlST+JZJ4YWxz7Ngx7rvvvlu56qqrrrrqqquu+p+NylVXXXXVVVddddVVV/0/JAlJSEISkpDEC2Obq6666qqrrrrqqv9lCK666qqrrrrqqquuuup/qMx8MIAk7mebfy3b/GtJ4qqrrrrqqquuuur/AIKrrrrqqquuuuqqq676H0oSkviPJon7SUISkpAEgCQAJHE/STzQ8ePHue+++27lqquuuuqqq6666n82gquuuuqqq6666qqrrvofShIvKtv8R5DEi8I2V1111VVXXXXVVf8LEFx11VVXXXXVVVddddX/UJL4l9jm30oSAJKQhCSemySuuuqqq6666qqr/hcjuOqqq6666qqrrrrqqv+hJPGvYZvnZpvnRxIAkgCQBIAkJPEvOXHiBGfPnn0GV1111VVXXXXVVf+zEVx11VVXXXXVVVddddX/UJL417LNv5YkACRxP0m8MLa56qqrrrrqqquu+l+A4Kqrrrrqqquuuuqqq/6Hsv0g/g1sYxvbvDCSkIQkJCEJSbwoTpw4wVVXXXXVVVddddX/AlSuuuqqq6666qqrrrrqf6iIQBL/1STx/Ejifra57777buWqq6666qqrrrrqfzaCq6666qqrrrrqqquu+h9KEi+Mbf4tJCEJSUhCEpKQhCQAJCGJF8Q2V1111VVXXXXVVf8LEFx11VVXXXXVVVddddX/UJJ4fmzzQLb595LE/STxwtjmxIkTnD179lauuuqqq6666qqr/mejctVVV1111VVXXXXVVf9PSOK5SUISAJKQxIvCNlddddVVV1111VX/CxBcddVVV1111VVXXXXV/1CSHswLYJt/D0lIQhKSkIQkXlQnT57kqquuuuqqq6666n8Bgquuuuqqq6666qqrrvofShIvKtu8KCTx/EgCQBKSkMS/5L777ruVq6666qqrrrrqqv/ZqFx11VVXXXXVVVddddX/YJJ4UdkGQBIvCklIQhIAknhuknh+bHPVVVddddVVV131vwCVq6666qqrrrrqqquu+h9KEv8ZJCGJ+0lCEpKQhCQAJPGCnDp1iquuuuqqq6666qr/BQiuuuqqq6666qqrrrrqfyhJ/Ets828lCUkASAJAEs9NEs/t7Nmzz+Cqq6666qqrrrrqfz4qV1111VVXXXXVVVdd9T9UrfXB/CeThCQkcT9JSOIFkcRVV1111VVXXXXV/xJUrrrqqquuuuqqq6666n+ozOQ/kyQAJCEJAEn8S3Z2drjvvvtu5aqrrrrqqquuuup/PipXXXXVVVddddVVV131P5Qk/jNIQhIAkpAEgCSuuuqqq6666qqr/o8huOqqq6666qqrrrrqqv/lbPNAtnlBJHE/SUgCQBIAkpCEJCTx/Bw7doz77rvvVq666qqrrrrqqqv+56Ny1VVXXXXVVVddddVV/0P1ff9g/pNI4n6SkMRVV1111VVXXXXV/0EEV1111VVXXXXVVVdd9T9Ua40Xxjb3s82/liQkIQlJSEISkrifJK666qqrrrrqqqv+F6Ny1VVXXXXVVVddddVV/4NJQhL3s80LYhsASdjmBZHE/SQhCUkASAJAEi/IsWPHuO+++57OVVddddVVV1111f98BFddddVVV1111VVXXfU/nG3+I0jifpKQBIAkJHE/Sbwwtrnqqquuuuqqq676X4LKVVddddVVV1111VVX/Q8lCQBJ/HtJ4rlJQhKSAJCEJK666qqrrrrqqqv+DyG46qqrrrrqqquuuuqq/4Vs828hCUlIAkASkpCEJCQhCQBJ3E8S9zt+/Dhnz559BlddddVVV1111VX/81G56qqrrrrqqquuuuqq/6FKKQ/m+bCNJP69JCEJSUjigSTxgtjmqquuuuqqq6666n8JKlddddVVV1111VVXXfU/lCT+JbaRxPNjmxdEEpKQBIAkACTx3CTxQMePH+eqq6666qqrrrrqfwmCq6666qqrrrrqqquu+h/KNv8ZJPFAkpAEgCQk8S85e/bsrVx11VVXXXXVVVf9z0flqquuuuqqq6666qqr/hewzQtiG0n8a0hCEpKQhCQeSBKSkMRzy0yuuuqqq6666qqr/pegctVVV1111VVXXXXVVf9DSeJfyzYvjCTuJwlJSEISAJKQxAtz4sQJ7rvvvlu56qqrrrrqqquu+p+PylVXXXXVVVddddVVV/0PlJkP4rnY5gWxDYAkXhBJAEhCEgCSkIQkACTxL7HNVVddddVVV1111f8SVK666qqrrrrqqquuuur/KUlIQhKSuJ8kJPGCnDhxgquuuuqqq6666qr/JahcddVVV1111VVXXXXV/1K2kcS/hSQkIQlJSAJAEi+K++6771auuuqqq6666qqr/uejctVVV1111VVXXXXVVf+DSeI/kiQkIQlJSEISkgCQhCQAJPFAkrjqqquuuuqqq676X4bKVVddddVVV1111VVX/Q8lif9skogIJPFAknhBTpw4wVVXXXXVVVddddX/ElSuuuqqq6666qqrrrrqfyDbD+Y/kCTuJwlJSEISkpAEgCQkcT9JSOKB7rvvvlu56qqrrrrqqquu+t+BylVXXXXVVVddddVVV/0fJwkASUjifpKQhCQkASCJ50cSAJK46qqrrrrqqquu+l+E4Kqrrrrqqquuuuqqq/4Xsg2AbZ6bbV4YSUhCEpKQREQgCUlIQhLPz/b2NmfPnr2Vq6666qqrrrrqqv8dqFx11VVXXXXVVVddddX/Q5KQhCQkIQlJPJAkrrrqqquuuuqqq/6Xo3LVVVddddVVV1111VX/A2Xmg3kR2eZ+knhhJCEJAElIQhKSkIQkJPGCHDt2jPvuu+9Wrrrqqquuuuqqq/53ILjqqquuuuqqq6666qr/gSQhiedmG9v8e0lCEpKQhCQAJCEJSVx11VVXXXXVVVf9H0Dlqquuuuqqq6666qqr/geSxH80SQBIQhKSkEREIAlJSOKBJHHVVVddddVVV131vxiVq6666qqrrrrqqquu+h9IEv8ZJAEgCQBJSEISkgCQBIAkntvOzg733XffrVx11VVXXXXVVVf970Dlqquuuuqqq6666qqr/geSxH8kSdxPEgCSiAgkIQlJSAJAEveTxFVXXXXVVVddddX/UgRXXXXVVVddddVVV131v5Rt/q0kIQlJSCIikIQkJHHVVVddddVVV131fwTBVVddddVVV1111VVX/c/0YP6DSUISkpCEJCQREUhCEpJ4fiQBsLOzw9mzZ5/BVVddddVVV1111f8OVK666qqrrrrqqquuuup/IEn8Z5JERCAJSUhCEpKQhCSuuuqqq6666qqr/g+gctVVV1111VVXXXXVVf8DSUIS/1q2uZ8knh9JAEhCEpKQRETwQJKQxP0kcezYMa666qqrrrrqqqv+FyG46qqrrrrqqquuuuqq/4Ek8aKwzf1s8/xI4n6SAJCEJCICSUhCEpKQxAtim/vuu+9Wrrrqqquuuuqqq/53ILjqqquuuuqqq6666qr/gSLiwbyIbPMvkYQkACQhCUlIIiKICCQhCQBJXHXVVVddddVVV/0fQHDVVVddddVVV1111VX/A9nmhbHNA9nm+ZHEA0lCEpKQhCQkIQlJSEISDySJ++3s7HD27Nlbueqqq6666qqrrvrfgcpVV1111VVXXXXVVVf9DyQJAEn8Z5CEJCQREUhCEg8kiauuuuqqq6666qr/5ahcddVVV1111VVXXXXV/xOSkIQkJCGJiEASkpCEJCQhiefn+PHjXHXVVVddddVVV/0vQuWqq6666qqrrrrqqqv+B5LEfxZJSEISkpBERCAJSTyQJAAkcb/77rvvVq666qqrrrrqqqv+d6By1VVXXXXVVVddddVV/0NJ4j+KJJ6bJCQREUhCEpKQxAtim6uuuuqqq6666qr/RQiuuuqqq6666qqrrrrqf6CIeDDPxTYAtvm3koQkJBERRASSkIQkJAEgCUk8txMnTnDVVVddddVVV131vwjBVVddddVVV1111VVX/Q8kiX+JbV4UkgCQBIAkJCEJSUgiIpAEgCQeSBL3u++++27lqquuuuqqq6666n8PKlddddVVV1111VVXXfV/hG3+JZIAkIQkIoKIQBKSkASAJJ6bJK666qqrrrrqqqv+lyG46qqrrrrqqquuuuqq/0Vs828hCUkASEISkpCEJCQhCUlI4vnZ3t7m7Nmzt3LVVVddddVVV131vwfBVVddddVVV1111VVX/Q/Udd2DeRHYBsA2LwpJSEISkpBERBARSEISkgCQhCQAJCGJq6666qqrrrrqqv9lCK666qqrrrrqqquuuup/oMzkRWWbF0QSDyQJAElEBBGBJCQhCUkASOK5bW9vc999993KVVddddVVV1111f8eVK666qqrrrrqqquuuur/CUkASEISkpBERCAJSQBI4oEkcdVVV1111VVXXfW/FJWrrrrqqquuuuqqq676P04SkgCQhCQkIYmIQBKSkIQkrrrqqquuuuqqq/4PoXLVVVddddVVV1111VX/Q0niBbGNJP4tJCGJiEASEYEkIgJJSEISknig7e1trrrqqquuuuqqq/6XoXLVVVddddVVV1111VX/A0ni30sSDyQJSUgiIpBERCAJSUhCEg8kiQe67777buWqq6666qqrrrrqfw8qV1111VVXXXXVVVdd9T9QKeXB/CeShCQkEREASEISkrjqqquuuuqqq676P4Lgqquuuuqqq6666qqr/g+SxANJQhKSkIQkIoKIQBIRgSTuJ4kHksTOzg5nz559BlddddVVV1111VX/e1C56qqrrrrqqquuuuqq/+MkcT9JSEISkpCEJCQhCUlI4oEkAWCbq6666qqrrrrqqv9lqFx11VVXXXXVVVddddX/UraRxAsjiecmCUlIIiKICAAkIYn7SUIS99vZ2eGqq6666qqrrrrqfxmCq6666qqrrrrqqquu+l/ANs+PbQBscz9JPDdJSEISkpBERCAJSUQEkpCEJCTx3Gxz33333cpVV1111VVXXXXV/x4EV1111VVXXXXVVVdd9T9MZj6YF8I2D2Sbfw1JSEISEUFEIAlJXHXVVVddddVVV/0fQ+Wqq6666qqrrrrqqqv+j5MEgCQkIYmIICKQhCQAJCEJSTw/29vbnD179lauuuqqq6666qqr/vegctVVV1111VVXXXXVVf8PSAJAEpKQhCQigojANpKQBIAkJAEgCUlcddVVV1111VVX/S9E5aqrrrrqqquuuuqqq/4HksS/lyQeSBIAkpBERCAJSUhCEpKQxP0kcb9jx45x1VVXXXXVVVdd9b8Mlauuuuqqq6666qqrrvofJjMfzH8QSTyQJAAkIYmIICKwjST+Jffdd9+tXHXVVVddddVVV/3vQeWqq6666qqrrrrqqqv+F7GNJP41JCEJSUhCEpKICCQhCQBJSEISz49trrrqqquuuuqqq/6XIbjqqquuuuqqq6666qr/YSQBIIkHss39bPNvJYmIQBIRgSQkIQlJAEhCEg90/Phxrrrqqquuuuqqq/6XoXLVVVddddVVV1111VX/h0jiBZGEJCQhCUlIIiKwjSQAJHE/SUhCEvfdd9+tXHXVVVddddVVV/3vQuWqq6666qqrrrrqqqv+D7DNA0nigSQBIAlJSCIiiAgkASAJSTw/krjqqquuuuqqq676X4jgqquuuuqqq6666qqr/ofJzAdL4l9im3+JJCQBIAlJSEISkpBERCAJSUhCEpJ4oM3NTc6ePXsrV1111VVXXXXVVf+7ULnqqquuuuqqq6666qr/YSTxQLZ5QWwDIInnJonnRxIRQUQQEUhCEpKQxP0kcdVVV1111VVXXfW/HJWrrrrqqquuuuqqq676H0YS/9EkIQlJSEISkpCEJCQhiedHEtvb29x33323ctVVV1111VVXXfW/C5Wrrrrqqquuuuqqq676H0YS/1kkIQlJRAQRQUQAIAlJSEISAJK46qqrrrrqqquu+l+MylVXXXXVVVddddVVV/0fJwlJSEISkogIJCEJSUhCEpK46qqrrrrqqquu+j+E4Kqrrrrqqquuuuqqq/6HkcQLY5sXRhL3k8Rzk4QkIoKIQBKSkASAJAAkcb+trS2uuuqqq6666qqr/heictVVV1111VVXXXXVVf/D2H4Q/wkkIQlJSEISkpCEJCQhCQBJ3E8SAPfdd9+tXHXVVVddddVVV/3vQuWqq6666qqrrrrqqqv+h5GEJP49JCEJAElIQhKSiAgigohAEhGBbZ4fSVx11VVXXXXVVVf9L0Zw1VVXXXXVVVddddVV/8NI4l/LNi8KSUhCEpKICCQhCUlIQhLPbXt7m7Nnzz6Dq6666qqrrrrqqv9dqFx11VVXXXXVVVddddX/MJL4jyIJAElIQhKSkIQkJCEJSUhCEveTxP1sc9VVV1111VVXXfW/EMFVV1111VVXXXXVVVf9DxMRD+ZfYJsXlSQeSBIRQUQQEUhCEpIAkIQkHmhnZ4errrrqqquuuuqq/4UIrrrqqquuuuqqq6666n8Y2/xr2OZfIglJSEISkpCEJCQhCUlI4oEkIYnM5L777ruVq6666qqrrrrqqv9dCK666qqrrrrqqquuuup/GEm8ILa5n21s84JI4oEkIQlJSCIikIQkJCGJq6666qqrrrrqqv9jCK666qqrrrrqqquuuur/CElI4oEkIQlJAEhCEhGBJCKCiEASAJKQBIAk7re1tcXZs2dv5aqrrrrqqquuuup/FypXXXXVVVddddVVV131P4wkJPFvJQlJPDdJSEISkogIJCEJSUjifpJ4INtcddVVV1111VVX/S9E5aqrrrrqqquuuuqqq/6fkIQkJCEJSUhCEpKQhCQeSBIAx44d46qrrrrqqquuuup/IYKrrrrqqquuuuqqq676H0bSg3kutrHNv5YkJCGJ+0kiIpCEJCQhCQBJSOKBJGGb++6771auuuqqq6666qqr/nehctVVV1111VVXXXXVVf/DSOI/giQeSBKSkIQkIgJJSAJAEi+Iba666qqrrrrqqqv+F6Jy1VVXXXXVVVddddVV/8dJQhIAkogIJCEJSUhCEpKQBIAkJHG/Y8eOcdVVV1111VVXXfW/EMFVV1111VVXXXXVVVf9L2Obf4kknpskJCEJSUgiIgCQxP0kcT9JSOK+++67lauuuuqqq6666qr/fahcddVVV1111VVXXXXV/zCllAfz7yCJ+0kCQBKSkIQkIgJJSEISkpDE8yOJq6666qqrrrrqqv+lCK666qqrrrrqqquuuup/Ods8P5IAkMT9JCEJSUQEkpAEgCQk8dw2NjY4e/bsrVx11VVXXXXVVVf970Nw1VVXXXXVVVddddVV/0NJ4gWxzQNJAkASz48kJCEJSUhCEpKQhCTuJwlJSEISV1111VVXXXXVVf+LUbnqqquuuuqqq6666qr/gSTxL7ENgCReEElIAkASkpCEJCQhCUlIQhKSeG6bm5vcd999t3LVVVddddVVV131vw+Vq6666qqrrrrqqquu+j9IEg8kiftJIiKQhCQkIQlJXHXVVVddddVVV/0fQ+Wqq6666qqrrrrqqqv+h+m67sH8B5DE/SQhCUlIQhKSkMQLIgkASVx11VVXXXXVVVf9L0Vw1VVXXXXVVVddddVV/8NkJv8WkgCQxP0kIQkASUgiIpCEJAAkIQlJSEIS95PExsYGV1111VVXXXXVVf9LEVx11VVXXXXVVVddddX/MJJ4QWzzbyEJSUhCEpKICCQhiecmiftJ4r777ruVq6666qqrrrrqqv99CK666qqrrrrqqquuuup/kNd5ndd5b9v8e0lCEgCSuJ8kJBERSEISAJK46qqrrrrqqquu+j+I4Kqrrrrqqquuuuqqq/4Hecd3fMfP4t9BEg8kCQBJSEISkpCEJCQhCUlIQhLPbXNzk7Nnzz6Dq6666qqrrrrqqv99qFx11VVXXXXVVVddddX/MJL4zyAJSUhCEpKQhCSeH0lIwjZXXXXVVVddddVV/0tRueqqq6666qqrrrrqqv9B7r33Xmzzr2GbB5LEA0lCEgCSkIQkJHE/SUgCQBKSuN/W1hZXXXXVVVddddVV/0sRXHXVVVddddVVV1111f8Q11xzzYNf4iVe4sGSeGFs8y+RhCQkcT9JSEISkpCEJCTxwtjmvvvuu5Wrrrrqqquuuuqq/30Irrrqqquuuuqqq6666n+I++6771aARz/60byobPMvkYQkJAEgCUkASOKBJHE/SUjiqquuuuqqq6666n8xgquuuuqqq6666qqrrvof5B/+4R9++9Vf/dV5fmzzgkhCEs9NEgCSAJCEJCQhCQBJSEISz88111zD2bNnb+Wqq6666qqrrrrqfx+Cq6666qqrrrrqqquu+h/kt37rt77n0Y9+NKdOneKFsY1tnpsk7icJAEkASEISkpCEJCTxL1kul8+47777buWqq6666qqrrrrqfx+Cq6666qqrrrrqqquu+h/kt37rt747M299i7d4C/6tJCGJB5KEJCQhCUlIQhKSkMTz86hHPYr77rvv6Vx11VVXXXXVVVf970Rw1VVXXXXVVVddddVV/8P86I/+6Oc87GEPu/VN3/RNAbDNv5UkJAEgCUlIQhKSeEEksVgseNSjHsVv/dZvfQ9XXXXVVVddddVV/ztRueqqq6666qqrrrrqqv9hfuu3fuu7z5w586B3eqd3+mxJ/Oqv/ir/FpK4nyQAJCEJSUhCEveTBIAkZrMZj3zkI/mHf/iH3/6t3/qt7+aqq6666qqrrrrqfyeCq6666qqrrrrqqquu+h/ot37rt777H/7hH377Td7kTfiMz/gMTpw4wb+FJCQBIAlJSEIS95PEA9VaeehDH8qJEyf4kR/5kc/hqquuuuqqq6666n8vyvHjx7nqqquuuuqqq6666qr/aY6Oji79wz/8w+/ceuutf/Nar/Vab/3iL/7ibGxs8LSnPQ1JSEISkpBEKYVaK6UUSimUUiilUGul1krf98znczY2Ntje3mZ7e5uNjQ36vkcSmclqtWK1WnHy5Eme8pSn/PbXf/3Xv88//MM//DZXXXXVVVddddVV/3tRjh8/zlVXXXXVVVddddVVV/1PdHh4uHt0dLR76623/s1rvdZrvfXDHvYwXv7lX57FYsHTn/50JCEJgFIKpRRKKZRSKKVQa6WUQtd1dF3HfD5nc3OT7e1ttre32djYoOs6JHHu3Dn29vaICO67775bv+u7vutj/uEf/uG3ueqqq6666qqrrvrfjXL8+HGuuuqqq6666qqrrrrqf6rDw8PdW2+99a9/+7d/+3se8pCHvPQtt9zy4Ic+9KG83Mu9HDfccAOr1Yrd3V1qrZRSKKVQSqGUQimFWiu1Vvq+Zz6fs7m5yfb2Ntvb23Rdx8HBAbfffjur1Yp777331ltvvfWvv/RLv/Rtbr311r/mqquuuuqqq6666n8/9KAHPYirrrrqqquuuuqqq6763+LFXuzFXvud3umdPuvFXuzFXptnunjxIrfddhu33347h4eH1FpZLpesVitmsxmnTp1iY2OD06dPc/3117O1tcV8Psc297vvvvtu/dEf/dHP+a3f+q3v5qqrrrrqqquuuur/DvSgBz2Iq6666qqrrrrqqquu+t/mmmuuefBrv/Zrv9eLv/iLv/aLvdiLvTb/Bvfdd9+tv/Vbv/XdZ8+efcZv/dZvfTdXXXXVVVddddVV//egBz3oQVx11VVXXXXVVVddddX/Ztdcc82DX+zFXuy1X+zFXuy1rrnmmgcDnDlz5sHXXHPNgwHuu+++WwHOnj1763333Xfrfffdd+s//MM//M4//MM//DZXXXXVVVddddVV/7ehBz3oQVx11VVXXXXVVVddddVVV1111VVXXXXVVf8nUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fxT8CfloJG0XSn5AAAAAASUVORK5CYII=) ```kcl // Scale an imported model. @@ -113,6 +113,6 @@ scale(parts, z = 0.5) ``` -![Rendered example of scale 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAE+RklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVf9r3PNNdc8+HM+53N+i/8nPuuzPut17rvvvlu56qqrrrrqqqv+tdCDHvQgrrrqqquuuuqqq6666qr/Pa655poHf9M3fdPTAc6dO8f58+f5v+zEiRO3XnPNNQ/+zM/8zNf5h3/4h9/mqquuuuqqq67616By1VVXXXXVVVddddVVV/2vcubMmQfzTE960pP4ru/6Lv4tbPO/wau+6qs++H3f93358A//8O/6rM/6rNe57777buWqq6666qqrrnpREVx11VVXXXXVVVddddVV/6tcc801D+aZHvWoR/FvJQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSfxn+8M//EOe+MQncs011zz4Hd/xHT+Lq6666qqrrrrqX4Pgqquuuuqqq6666qqrrvpf5+zZszzucY/j1KlTvOqrvir/nSQhCUlIQhKSkIQkJCEJSUhCEpKQhCReFN/5nd8JwOu8zuu89+u8zuu8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k4Qk7ieJ2Wz2IK666qqrrvpvd8011zyYf4OLFy8CUErhfpKwjSRsIwnbSMI2DyQJ20jCNg8kCdtIwjYPJAnbPJAkbCMJ27wgkrDNA0nCNi+IJGzzryUJ2wBIwjYAkrANgCRs868hCdtcddVVV131PwaVq6666qqr/q+5NTOxjW0AbGObzEQSAJK4X0Rgm8wkIrANQGYSEWQmAJIAsI1tbGMb29gmM4kIWmtEBBGBJCICSQBI4n62AbANgG3uJwmAiKCUQtd19H3PfD5nPp8zn8/p+55aKxFBRCAJ20giIogIIgJJRASSAJCEJAAk8UCSkIQkJHHVVVddddX/DBcuXOA/gm0AbANgGwDbPDfbANgGwDb3sw2AbQBscz/bANjmfrYBsM1zs839bANgm/vZBsA297PN/Wzz3GxzP9vczzb3s839bHM/29zPNvezzf1scz/bPJBt7rdcLgG45pprHsxVV1111VX/XahcddVVV131f4qkW21jGwDb3M82trFNZvLcIoLMBEASEUFmEhFkJhFBZiKJB7KNbWxjm8wkIpBERCAJSQBI4oFs89wkERFIQhIRQSmFWiulFCICSUgiIpCEJAAkERFEBJKQREQgiYhAEveTBIAkJPFAktje3n7t++6773O46qqrrrrqv9WZM2cedOHCBf49bGMbANvczzYAtgGwDYBt7mcbANsA2OZ+tgGwzf1sA2Cb+9kGwDb3sw2Abe5nGwDb3M8297MNgG3uZ5v72eZ+trmfbQBscz/b3M8297PNA9nmfra5n23uZ5sHss1VV1111VX/Y1C56qqrrrrq/5SIuDUisI1tbGMb2wDYxja2sY1tbJOZAEgCQBIAkgCQhG0iAknczzYRgW1sk5lEBJmJJCQhCUncTxLPjyQkERHYBkASknggSUhCEgCSkASAJCQREUQEEYEkJCEJSUhCEgCSuJ8kJCEJAElcddVVV1313++aa6558IULFwCwjST+tTIT2wDY5n62AbANgG3uZxsA2wDY5n62AbDN/WwDYJv72eZ+tgGwzf1sA2Cb+9nmfrYBsM39bHM/29zPNvezzf1scz/b3M8297PN/WxzP9vczzYPZJv72eZ+trnqqquuuup/FCpXXXXVVVf9n7NcLn+77/vXts0D2ea52cY2ALYByEwigsxEEgCSkIRtIgLb2EYStpFEZhIRZCaSkASA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IQlJSEISkpCEJCQBIAlJSAJAEpIAkIQkJAEgCUkASEISAJIAkIQkACQhCQBJAEgCQBIAkgCQhCQAJHE/SQBIAkASAJK4nyQAJAGwWCwA+Id/+Iff5qqrrrrqqv8rqFx11VVXXXXVVVddddVVV/0P9g//8A+/zTN1XYcknptt7meb+9nmfra5n23uZ5v72QbANvezDYBt7meb+9kGwDb3s839bANgm/vZ5n62eSDb3M8297PNA9nmgWxzP9s8N9s8kG2e2/HjxwG47777buWqq6666qr/K6hcddVVV1111VVXXXXVVVf9D3bffffd+lu/9Vvf/WIv9mKvfc011zy4lMJV/3n+4R/+4bf/4R/+4Xe46qqrrrrq/wr0oAc9iKuuuuqqq6666qqrrrrqqv/pXud1Xue9z5w58yCu+k/1D//wD7/zD//wD7/NVVddddVV/1egBz3oQVx11VVXXXXVVVddddVVV1111VVXXXXVVf8nUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V/FPwIya7aZfzBn3QAAAABJRU5ErkJggg==) +![Rendered example of scale 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAE+bUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVf9r3PNNdc8+HM+53N+i/8nPuuzPut17rvvvlu56qqrrrrqqqv+tdCDHvQgrrrqqquuuuqqq6666qr/Pa655poHf9M3fdPTAc6dO8f58+f5v+zEiRO3XnPNNQ/+zM/8zNf5h3/4h9/mqquuuuqqq67616By1VVXXXXVVVddddVVV/2vcubMmQfzTE960pP4ru/6Lv4tbPO/wau+6qs++H3f93358A//8O/6rM/6rNe57777buWqq6666qqrrnpREVx11VVXXXXVVVddddVV/6tcc801D+aZHvWoR/FvJQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSfxn+8M//EOe+MQncs011zz4Hd/xHT+Lq6666qqrrrrqX4Pgqquuuuqqq6666qqrrvpf5+zZszzucY/j1KlTvOqrvir/nSQhCUlIQhKSkIQkJCEJSUhCEpKQhCReFN/5nd8JwOu8zuu89+u8zuu8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D89kG0lIQhKSkIQkJCEJSUhCEpKQhCQkIQlJSEISkpCEJCQhCUlIQhKSkIQkJCEJSUgCQBKSkASAJCQBIAlJSAJAEpIAkIQkACQBIAlJAEhCEgCSAJAEgCQAJAEgCUkASOJ+kgCQBIAkACRxP0kASAJgsVgA8A//8A+/zVVXXXXVVf9XULnqqquuuuqqq6666qqrrvof7B/+4R9+m2fqug5JPDfb3M8297PN/WxzP9vczzb3sw2Abe5nGwDb3M8297MNgG3uZ5v72QbANvezzf1s80C2uZ9t7mebB7LNA9nmfrZ5brZ5INs8t+PHjwNw33333cpVV1111VX/V1C56qqrrrrqqquuuuqqq676H+y+++679bd+67e++8Ve7MVe+5prrnlwKYWr/vP8wz/8w2//wz/8w+9w1VVXXXXV/xXoQQ96EFddddVVV1111VVXXXXVVf/Tvc7rvM57nzlz5kFc9Z/qH/7hH37nH/7hH36bq6666qqr/q9AD3rQg7jqqquuuuqqq6666qqrrrrqqquuuuqqq/5PonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KfwQUOYBziOuX5AAAAABJRU5ErkJggg==) diff --git a/docs/kcl-std/functions/std-transform-translate.md b/docs/kcl-std/functions/std-transform-translate.md index cedc1fd6e..a3e07753a 100644 --- a/docs/kcl-std/functions/std-transform-translate.md +++ b/docs/kcl-std/functions/std-transform-translate.md @@ -116,7 +116,7 @@ translate( ``` -![Rendered example of translate 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFg80lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqr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NvezjW0AbGMb29gGwDa2sY1tMhPb2MY2tslMIgIA29gmM7FNZpKZZCaZSWZiG9vY5j+aJK666qqrrvqvYRsA2wDY5n62AbANgG0AbANgm/vZBsA2ALYBsM39bANgGwDb3M82ALYBsM39bANgm/vZBsA297MNgG3uZxsA29zPNs/NNvezzf1sA2Cb+9nmfra5n22uuuqqq676f4PKVVddddVVV70QmcnzY5t/Dds8kG2em21sYxvb2MY2tslMbJOZRASZCYBtMhPbZCaZiW1sYxvb2MY2ALaxjW1eFJKwzfMjiecmiauuuuqqq/7j2QbANgC2AbANgG0AbHM/2wDYBsA2ALa5n20AbANgm/vZBsA2ALa5n20AbANgm/vZBsA297MNgG3uZxsA29zPNvezDYBt7meb+9kGwDb3s839bHM/29zPNvezzVVXXXXVVf/nUbnqqquuuuqqf4FtAGzzQLb517DNA9kGwDa2sY1tbGObzCQzyUwyk8wkM8lMIgKAzCQzyUwyk8wkM8lMMhPb2MY2tvn3ksQLIglJXHXVVVdd9a9nG0m8ILaxjW0AbANgm/vZBsA2ALYBsM39bANgGwDb3M82ALYBsM39bANgGwDb3M82ALa5n20AbHM/2wDY5n62uZ9tAGxzP9vczzYAtrmfbe5nm/vZBsA297PN/Wxz1VVXXXXV/xtUrrrqqquuuupFYBsA2zw32/xr2OZ+tgGwjW1sk5lkJplJZtJaIzNprVFKITOxDUBmkpm01shMMpPMJDPJTDIT29jGNra5n23+NSRhG0k8N0lcddVVV131Lztz5syD+TeyjW0AbANgm/vZBsA2ALa5n20AbANgm/vZBsA2ALa5n20AbHM/2wDYBsA297MNgG3uZxsA29zPNvezDYBt7meb+9nmfrYBsM39bHM/29zPNvezzf1scz/bXHXVVVdd9X8elauuuuqqq656ISTdapsHss1zs82LwjYAtgGwjW1sYxvb2CYzyUwyk8yktUZm0lpDEhEBQGbSWiMzaa2RmbTWyExsYxvb2MY2trGNbV4QSdjmqquuuuqq/zlsYxvbANgGwDYAtrmfbQBscz/bANgGwDb3sw2AbQBscz/bANjmfrYBsM39bANgm/vZBsA297PN/WwDYJv72eZ+trmfbQBscz/b3M8297PN/WxzP9vczzb3s81VV1111VX/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BBFBRBARRASSkIQkJPFAkpAEwGw2ezBXXXXVVf+HXHPNNQ8GOH/+PC+KEydOAHB4eMi/hSSuek7XXXcdAP/wD//w21x11VVXXXXVsxFcddVVV1111X+SiPidzMQ2ALYBsA2AbWxzP9vczzbPzTYPZJsXlW1sYxvbANjmudnGNraxjW1s80CSiAgkERFEBBGBJCQhCUlIQhKSkMT9JCGJWuuDueqqq676P+LMmTMP5rnY5gU5efIkAIeHhzw3SVz1r7e1tQXAfffddytXXXXVVVdd9WwEV1111VVXXfWf51bbZCa2sY1tnh/bPDfb2OaBbPNAtnlhbGOb52ab+9nGNrYBsI1tbGMb29jmfpKQREQQEUQEEUFEEBFIQhLPjyTuV0p5MFddddVV/0dcc801D75w4QLPj22e28mTJwE4PDzk30oS/xJJ/EeQxP80trnf1tYWV1111VVXXfUCEFx11VVXXXXVfyLb2MY2D2Sb58c2z802trmfbR7INraxDYBtbGObfy3bANjGNraxzf0kIQlJRAQRQUQQEUQEkpCEJCQhCQBJSAJAEpKICK666qqr/i85f/48/1Ek8V9FEv8RJPHf5brrrgPgt37rt76bq6666qqrrnpOBFddddVVV131nyQibm2t3Wob29jGNrYBsI1tbANgGwDbPD+2uZ9tnh/bvKhsYxsA29jGNraxjW1sYxvb2OZ+kpBERBARRASSiAgiAgBJAEjifpIAkETXdQ/mqquuuur/iDNnzjzowoULvDC2ud+JEycAODw85AWRxL9EElddddVVV1111QtFcNVVV1111VX/iVprt9rGNg9kmxfGNv8S2/xHsM0D2cY2trGNbWxzP0lIIiKICCKCiCAikIQkJCEJSdxPEgCSkMRsNnsQV1111VX/R1xzzTUP5l/h5MmTABweHvKfTRL/111//fUA/MM//MPvcNVVV1111VXPieCqq6666qqr/hPVWslMAGxjG9sA2OZ+tgGwzf1s89xs80C2eVHYxja2sc3zYxvb2MY2trGNbWzzQJKQhCQigoggIogIJCEJAElIQhLPbTabPZirrrrqqv9Dzp8/z4vCNi8qSfxLJHHVVVddddVVV71ABFddddVVV131n+jo6Oi3bWMb29jmgWxjmxfENraxzf1s80C2sc1zs41tbPPcbANgGwDbANjGNraxjW1sYxvb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5n5nz569lauuuuqqq676j0flqquuuuqqq6666qqrrrrqX+m+++679b777rv11KlTDz5//jynTp0CIDORxItKErb5z2QbAEk8N9sASOJ+tpHE/WwjCQDbSALANpIAsI0kbAMgCdtIwjaSsI0kbCMJ20hisVgAcN99993KVVddddVVV/3HI7jqqquuuuqqq6666qqrrvo3uO+++2595CMfCcCpU6cAyEwiAklEBJKICCQhiYhAEpKQhCQkIQlJSCIikIQkJCEJSUhCEpKQhCQAJCEJSUhCEpKQhCQkIYn7SUISkpCEJAAkIQlJ3E8SkrifJO4niftJAkASkgCQBIAkACQBIAkASZw8eRKAf/iHf/htrrrqqquuuuo/B5Wrrrrqqquuuuqqq6666qp/g3/4h3/47Zd5mZd5bYBTp04BYBtJPD+SsM39JGGbB5KEbf4z2UYSz802AJK4n20kcT/bSALANpIAsI0kbCMJANtIwjaSsI0kbCMJ2ywWCwDuu+++W7nqqquuuuqq/xwEV1111VVXXXXVVVddddVV/wb/8A//8NunTp3iuUkiIpBERCAJSUhCEpKICCQhCUlIIiKQhCQkIQlJSEISkpCEJCQhCUkASEISkpCEJCQhCUlIQhKSkMT9JCEJSUhCEgCSkIQk7icJSQBIQhIAkpAEgCTuJwkASQBIAkAS91ssFgDcd999t3LVVVddddVV/zmoXHXVVVddddVVV1111VVX/Rvcd999t546dYpHPvKRnDx5EgDbSOK5ScI2AJKwzQNJwjb/VrYBkMS/hm0AJPFAtgGQxP1sIwkA20gCwDaSALCNJABsIwnbSMI2krANgCQWiwUAZ8+efQZXXXXVVVdd9Z+DylVXXXXVVVddddVVV1111b/B2bNnn/EP//APv/3IRz7ytU+dOsX9IgLbSMI2DyQJ2zyQJGzzH8E2DySJF4VtACTxQLaRxP1sIwkA2wBIwjYAkrCNJABsIwnbSMI2kgCwzcmTJwG47777buWqq6666qqr/nNQueqqq6666qqrrrrqqquu+jf6+7//+99+mZd5mdfmmWwjiQeShG2eH0nY5j+LbR5IEi+MbSTxQLYBkASAbQAkAWAbSQDYRhK2kQSAbSRhG0nYBkAS9zt79uytXHXVVVddddV/DipXXXXVVVddddVVV1111VX/Rv/wD//wO6//+q/P/SQhCUnYRhK2AZCEbe4nCdu8IJKwjW1sYxvbZCYAkshM/jVscz9JPD+2AZDEA9lGEvezjSQAbCMJANtIwjYAkrCNJGwjCQDbLBYLAO67775bueqqq6666qr/HFSuuuqqq6666qqrrrrqqqv+jc6ePXvrqVOnuJ8kJPHcJGGb+0nCNs9NEraxjW2en4jANpmJJP6tbAMgiefHNgCSuJ9tACQBYBtJANhGEgC2kQSAbSRhG0nYBuDkyZMA/MM//MNvc9VVV1111VX/eahcddVVV1111VVXXXXVVVf9G91333233nfffbdec801D+aZIgLbSMI2z00StnkgSdjGNi+qiCAz+feyzf0k8dxsAyCJ+9lGEgC2AZCEbQAkYRtJANhGEraRBMB8Pgfgvvvuu5Wrrrrqqquu+s9D5aqrrrrqqquuuuqqq6666t/h7Nmzt15zzTUPBpDEc5OEbQAkYZsHkoRt/i0igszkP4ptACTx3GwjifvZRhL3s40kAGwjCdsASMI2krANwGKxAOC+++67lauuuuqqq676z0Plqquuuuqqq6666qqrrrrq3+Hv//7vf/vFXuzFXhuglMLzY5vnxzYPZJvnZpv72eaBbHM/2zw329zPNg9kmweyzQPZ5rnZ5rnZ5vmxzQtim8ViAcDZs2efwVVXXXXVVVf956Fy1VVXXXXVVVddddVVV1317/Dbv/3b33P27NlnfPiHf/h3SeL5kcRVz+tHfuRHPvu3fuu3vpurrrrqqquu+s+DHvSgB3HVVVddddVVV1111VVXXfXvcc011zz4zJkzDwYMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpMB8ZwMiOdkQDwnA+I5GRDPyYB4TgbEczIgnpP/4R/+4Xe46qqrrrrqqv9c6EEPehBXXXXVVVddddVVV1111VVXXXXVVVddddX/SVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9V/CN0N9j6c4O5AwAAAABJRU5ErkJggg==) +![Rendered example of translate 2](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAAFglklEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqr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66+/ntlsBsB9991362/91m9994/+6I9+DlddddVV/wfcd999twKcOnWKCxcu8ECnTp0CoLWGJF4QSdgGQBK2eVHZRhIvjG0k8UC2kcT9bCMJANtIAsA2kgCwjSQAbCMJ2wBIwjaSsI0kbCMJ2wBIwjYPJAnbSMI2krDNqVOnAPiHf/iH3+aqq6666qqr/mNRueqqq6666qr/Be67775bf/RHf/Rzzp49+4x3fMd3/KxrrrnmwR/4gR/IX/zFX/BXf/VX3HrrrUjihbGNJGwjiefHNgCSuJ9tJPH82GaxWPDQhz6URz/60dzvvvvuu/W3fuu3vvtHf/RHP4errrrqqv9j/uEf/uG3H/nIR772k5/8ZABsI4kHksR/FdtI4oFsI4kHso0k7mcbSQDYBkAStgGQhG0AJGEbSQDYRhK2kYRtJGEbAEnYRhK2kYRtHkgStpHEVVddddVVV/0nonLVVVddddVV/4v81m/91nf/wz/8w2+/9mu/9nu90zu902e/3Mu9HC/3ci/HxYsX+eu//mv+6q/+ir29PQBscz/bSOK52UYSz802krifbSQBsLW1xfb2Ntdffz0v+ZIvyQPdd999t/7Wb/3Wd//oj/7o53DVVVdd9X/U3//93//2y7zMy7z2L/zCL/BAJ0+eBKC1RkRgG0nYRhK2eWEkYZt/C9tI4oFsI4kHso0k7mcbSdzPNpIAsI0kAGwjCdtIAsA2krCNJGwDIAnbSMI2krCNJGwjCdsASMI2GxsbANx33323ctVVV1111VX/sahcddVVV1111f8y9913360/+qM/+jm//du//T2v/dqv/V6v8zqv897XXHPNg1/ndV6H13md12F3d5dbb72VZzzjGTzjGc/g0qVL3M82krCNJABsI4nnZhtJbG9vc8MNN7Czs8MNN9zAddddxwPdd999t/7Wb/3Wd//2b//299x33323ctVVV131f9w//MM//M7rv/7r89xOnToFQGYiif8stpHEc7ONJB7INgCSuJ9tJHE/20jifraRBIBtJAFgG0nYBkAStpGEbSQBYBtJ2EYStpGEbSRhG0nYBuDUqVMA/MM//MNvc9VVV1111VX/8ahcddVVV1111f9S9913360/+qM/+jm//du//T0v9mIv9tov9mIv9lqv8zqv897Hjx/npV/6pXnpl35pAHZ3d7l06RKXLl1CEnt7e+zt7QEQEQBI4tixYwBI4sYbb0QSN9xwA8/Pfffdd+tv/dZvffc//MM//M4//MM//DZXXXXVVf+PnD179tZTp07xyEc+kic96Uk8N0lI4vmRhG0AJGGb/0i2kcRzs40k7mcbAEkA2AZAEgC2kQSAbSQBYBtJANhGEraRhG0AJGEbSdhGEraRhG0kYRtJ2GZjYwOA++6771auuuqqq6666j8elauuuuqqq676X+6+++679b777vvu3/qt3/ruH/3RH/2cM2fOPPjFXuzFXuvFX/zFX/vFXuzFXvv48eMcP36cf6v77rvv1rNnz97693//97/9D//wD7/9D//wD7/DVVddddX/Y/fdd9+t//AP//Dbj3jEI177SU96Evd75CMfCUBmIglJ2EYStnlhJGGbF5VtJPH82EYSz802kngg20jifraRBIBtJAFgG0kA2EYSALaRhG0kAWAbSdhGEraRhG0kYRtJ2EYSi8UCgPvuu+9Wrrrqqquuuuo/HpWrrrrqqquu+j/kvvvuu/W+++679R/+4R9++0d/9Ec/B+Caa6558JkzZx58zTXXPBjgzJkzD7rmmmsezHO57777buWZ/uEf/uF3AP/DP/zD73DVVVddddXz+Pu///vffpmXeZnX/oVf+AWeW2YiiecmCdsASMI2L4wkbPNvYRtJPDfbSOKBbCOJ+9lGEgC2AZCEbQAkYRtJANhGErYBkIRtJGEbSdhGEraRhG0kYZuNjQ0Azp49+wyuuuqqq6666j8elauuuuqqq676P+6+++679b777rv1H/7hH7jqqquuuuo/xj/8wz/8zuu//uvzQKdOnQLANhGBbSRhm/8OtpHEc7MNgCTuZxsASQDYBkASALaRBIBtJGEbAEnYRhIAtpGEbSRhG0nYRhK2kYRtJHHq1CkA7rvvvlu56qqrrrrqqv94VK666qqrrrrqqquuuuqqq/6Vzp49e+upU6c4deoU58+f54Ek8dwkYRsASdjmfpKwzQNJwjYvjG0k8cLYRhLPj20k8UC2kcT9bCMJANtIAsA2kgCwjSRsIwkA20jCNpKwjSRsIwnbSMI29zt79uytXHXVVVddddV/PCpXXXXVVVddddVVV1111VX/Svfdd9+t9913362nTp168Pnz5zl16hQAmYkkXlSSsM1/JtsASOK52QZAEvezjSTuZxtJANhGEgC2kQSAbSRhGwBJ2EYStpGEbSRhG0nYRhKLxQKA++6771auuuqqq6666j8ewVVXXXXVVVddddVVV1111b/Bfffdd+sjH/lIAE6dOgVAZhIRSCIikEREIAlJRASSkIQkJCEJSUhCEhGBJCQhCUlIQhKSkIQkJAEgCUlIQhKSkIQkJCEJSdxPEpKQhCQkASAJSUjifpKQxP0kcT9J3E8SAJKQBIAkACQBIAkASQBI4uTJkwD8wz/8w29z1VVXXXXVVf85qFx11VVXXXXVVVddddVVV/0b/MM//MNvv8zLvMxrA5w6dQoA20ji+ZGEbe4nCds8kCRs85/JNpJ4brYBkMT9bCOJ+9lGEgC2kQSAbSRhG0kA2EYStpGEbSRhG0nYZrFYAHDffffdylVXXXXVVVf95yC46qqrrrrqqquuuuqqq676N/iHf/iH3z516hTPTRIRgSQiAklIQhKSkEREIAlJSEISEYEkJCEJSUhCEpKQhCQkIQlJSAJAEpKQhCQkIQlJSEISkpCEJO4nCUlIQhKSAJCEJCRxP0lIAkASkgCQhCQAJHE/SQBIAkASAJK432KxAOC+++67lauuuuqqq676z0Hlqquuuuqqq6666qqrrrrq3+C+++679dSpUzzykY/k5MmTANhGEs9NErYBkIRtHkgStvm3sg2AJP41bAMgiQeyDYAk7mcbSQDYRhIAtpEEgG0kAWAbSdhGEraRhG0AJLFYLAA4e/bsM7jqqquuuuqq/xxUrrrqqquuuuqqq6666qqr/g3Onj37jH/4h3/47Uc+8pGvferUKe4XEdhGErZ5IEnY5oEkYZv/CLZ5IEm8KGwDIIkHso0k7mcbSQDYBkAStgGQhG0kAWAbSdhGEraRBIBtTp48CcB99913K1ddddVVV131n4PKVVddddVVV1111VVXXXXVv9Hf//3f//bLvMzLvDbPZBtJPJAkbPP8SMI2/1ls80CSeGFsI4kHsg2AJABsAyAJANtIAsA2krCNJABsIwnbSMI2AJK439mzZ2/lqquuuuqqq/5zULnqqquuuuqqq6666qqrrvo3+od/+Iffef3Xf33uJwlJSMI2krANgCRscz9J2OYFkYRtbGMb29gmMwGQRGbyr2Gb+0ni+bENgCQeyDaSuJ9tJAFgG0kA2EYStgGQhG0kYRtJANhmsVgAcN99993KVVddddVVV/3noHLVVVddddVVV1111VVXXfVvdPbs2VtPnTrF/SQhiecmCdvcTxK2eW6SsI1tbPP8RAS2yUwk8W9lGwBJPD+2AZDE/WwDIAkA20gCwDaSALCNJABsIwnbSMI2ACdPngTgH/7hH36bq6666qqrrvrPQ+Wqq6666qqrrrrqqquuuurf6L777rv1vvvuu/Waa655MM8UEdhGErZ5bpKwzQNJwja2eVFFBJnJv5dt7ieJ52YbAEnczzaSALANgCRsAyAJ20gCwDaSsI0kAObzOQD33XffrVx11VVXXXXVfx4qV1111VVXXXXVVVddddVV/w5nz5699ZprrnkwgCSemyRsAyAJ2zyQJGzzbxERZCb/UWwDIInnZhtJ3M82krifbSQBYBtJ2AZAEraRhG0AFosFAPfdd9+tXHXVVVddddV/HipXXXXVVVddddVVV1111VX/Dn//93//2y/2Yi/22gClFJ4f2zw/tnkg2zw329zPNg9km/vZ5rnZ5n62eSDbPJBtHsg2z802z802z49tXhDbLBYLAM6ePfsMrrrqqquuuuo/D5Wrrrrqqquuuuqqq6666qp/h9/+7d/+nrNnzz7jwz/8w79LEs+PJK56Xj/yIz/y2b/1W7/13Vx11VVXXXXVfx70oAc9iKuuuuqqq6666qqrrrrqqn+Pa6655sFnzpx5MGBAPCcD4jkZEM/JgHhOBsRzMiCekwHxnAyI52RAPCcD4jkZEM/JgHhOBsRzMiCekwHxnPwP//APv8NVV1111VVX/edCD3rQg7jqqquuuuqqq6666qqrrrrqqquuuuqqq/5PonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q/iHwECosQyiDKiUAAAAABJRU5ErkJggg==) ```kcl // Move a sketch. diff --git a/public/kcl-samples/screenshots/ball-joint-rod-end.png b/public/kcl-samples/screenshots/ball-joint-rod-end.png index d9c2a0650c407b987a52fd21ba897c0b806c2d4b..ba74c58b0c31cf59a5fba12e3a7c7a896910b610 100644 GIT binary patch literal 85463 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 literal 85382 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 diff --git a/public/kcl-samples/screenshots/spool.png b/public/kcl-samples/screenshots/spool.png index a4b47568258fd1642d0abbeb61709b163ffe5f1d..393b1723b41610a1930603077226ed6ceb8538b4 100644 GIT binary patch delta 115832 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 KM<;%=;r{^MNF-MP diff --git a/public/kcl-samples/screenshots/utility-sink.png b/public/kcl-samples/screenshots/utility-sink.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a2f1c03223874e2ee4715bf026b6db77137011fb 100644 GIT binary patch literal 77354 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 literal 85382 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 diff --git a/rust/kcl-lib/tests/non_string_key_of_object/execution_error.snap b/rust/kcl-lib/tests/non_string_key_of_object/execution_error.snap index 86b3de274..6cc358244 100644 --- a/rust/kcl-lib/tests/non_string_key_of_object/execution_error.snap +++ b/rust/kcl-lib/tests/non_string_key_of_object/execution_error.snap @@ -1,5 +1,5 @@ --- -source: kcl/src/simulation_tests.rs +source: kcl-lib/src/simulation_tests.rs description: Error from executing non_string_key_of_object.kcl --- KCL Semantic error diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-appearance-hexString1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-appearance-hexString1.png index dc9bc0bd282584a39574b4cd64134bc48cf2c2a5..04e2fd062b00c48b047490367e98622484919c22 100644 GIT binary patch literal 56157 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 MH@#K%#%Ntzk zLMv9sQbkFZU&k&#rLEHfvIHxNElZ~3C@M=J2vHG2h>(OV?{`1X^G2cV@A|Iq-|zD3 zObAGl_kGSe_qoq~&hxNm)w4@Sk9c?l$8n>VFI)UP#|^_%>A(Gk1B><_-Og! zMK7jEx+;7=2!G|h^A;hw`<)9l$2YBb?d1A~Z^i%p?d|;co+-$GYW9?F$CkpsZ~f=4 zg$b7mqHin;Fn<2U$Iy!7HP zeiA-i_~O&Gzw}A?nXvk~;$OHta><^8k2d|n<&igXtCqC?{GRB24(RsYzp+6pdf#G0 z-2c8S4)TrrF*d|EzBqXwJca`Qeef9KAos!JK6u<`9)k(seXcloHSUw(p{sG9-4CsL z?w2h?s?Gc0F*IE6SI|Sk<-Rm9ME$rA9{0iHem!=-9=k7?4#t7|s5p2v*4?L6_bJtV zmFm7qbzh|#j05*kaqw!~SE+`s#(kA)NZEbAxjv-qzE7!!5X}EygNKX(gL_v|$B~2( z*Pj&qe=5kRol_tAzTkVZxZ{YgRk$#xeyz170pFc*DL0aTvmZ$~nc72s{HjMzUzpBb zGM&Cel~g+?phL)_FR5RfRJ&bu`&``ZZybEf;1}ZE6GCc)asStEu+f@9757&&wmM&JFE{Gw&?r?<8e* z7G`#qIF#4v>l1YS3A%c^AoZ!o>QmMEH}TJf7|P8bGGm>u+ahp>Opotf`EYrb=p-VOVhX18|>wH%RYL0LvQu9X3J!Q-x+Btab9hZF;Tr{^>n4GvcCzo`v+Wfz46% zsk1`veBhhNkSeq!ndiCVGlZ6{_6H|}wN_H9k*H0fW)8(G4 zf75m~$7zMSuND0)2G?Y*cnJ-ul~QZ4^GN+icyGlksbX?fs=b z8;L21<9@95+JFQiTpNZeu*T8HW-eJvuCm#jWGl9oI=;|7{C~cfy@0;OAAa&;Nza4= z%foB=fnU?*W=qVLn=QRd(NFz@c}X8dgwY#q#kf_odsf8J`DgQV0|^|v=3nrhKf%S! z_E*@)QV*7NM<>6hb(R@g+e6&HkL!LiXIRT1f1+MxqDIOS&M|*N#KxJ*s4MxTcdqpK zJs8*hm7=aXs^c72M8ea}qKG~^Xe@Q`UnQqkCAdu|ns z862wsDW$89KF$?J{wy1G9M1IE_#CzSGwt>6BvX-r+}Wm_OuW&<1!tX2tPc@ncF2<)6FIB<^-l;dXhgg5lQH&Q_5gN%X z0nz7$4wVsTJ6Sm>r9Dwm=((QLgGK+CEP6p}t;+gMYH?NRJfK6c&!9kK*@?k-o-mEz z=k0IkZI@7UBG7UK&d}ecyx_Br@Aw1pfSla4+bd|~489~}IZtaL%SpH-3aL(V%eqdQ zC7WzbwR-nuy=A>}U_EXx;UoeuqUUQx|JS9B*}6#z+n*G^%mnoF+2Z#zCuM}B>(WL9|vdtLDA&U3hTPdosTJM2=3P!Tyq>10qF}lwtT>T+IP&2I~aSGfehkL{p|GA~T01g^@|_Imc72^=YG{d)74%*U)4ocmF7NA4UE)3~ccD zZv84a?W_7s`pEc0$Kmeiw0&AO#wyD+w@-nB+d95ija8+7glLlVg(KL}4SPUQsu zDH{x>jTzmOl(saTzR-O~-!rMkTI9KdNS_n;PGQPBt4#wJkJF$M!F4di@gFd74F+QI zUAW`mwDp=2JwYJB=J;0Y`I~22y*9cQx#0`zgaXeka-l5jS-^|QCE(4UhW*4AL={$D zSXbV4oZlP&q`sbEhv(ta#@9m54vH`qTm5RG-$qk(ud-%PfKfW}2DvEUt2x>Jt#-hl zUKA46`2;v|=3@wnD(T?NMVHP>vskSV!!j2G5oFu49Fnw*4Vk@59l5xlhp|$syxg>! zYyu=t4vL7v!J+Dq-}q@nkRY`OAV@viT`NcqQrNEKw!j_w5UJ%dwodW-{IWg@v)*Kw zMdK25k+&xk`f(+J#AxQDhW?KY=dG{jx0A?fkGtKTVy#b2iUTLw=L8o9^SXyZX2!gd z7;p0V&^PMFBF3nOF^a)h!d>JPvy;UBt=j4DdHkf#GfLa{ioCMAtnoGG91MaH0zc|o zbyo)&V6boG-&A-!7S}mLRF>M=sx=yn0}0O}AvhmSZz(Aq&F)ww^r?hsG5bakpZb3d zB+oZkz9SL*iPddBhSn29vcfN1(qPbKysKH>W7Ro*NhAn=ARY@&@f=A~57cYt*HQ{c zF^Qp(o<5%|)G}Ja(jH~>K6hhDFL>mXA0@2w=9!KH%il{IKbHRzC#?O2+^H0tI=w2g z)t@FTVFFE79f%@A^A@nhV#_pyutcO)Au9D-QHUI~m6LL66uA%(CLx@>WtDDk@ofZk zs&zFF09)TYfdSa5cztvmOX&15Px#9qz+j~K9%*aHyfxik2&8z3AjLr-MZFOji<_6$ ze|vVO6~v{4CWK^`798qd3h`4mOOnpECcR;$XNE8V>yEhYI0s}+pA15%7+!JpRJ_(= z;{}_pZ*Vap7JY;xde$+AMfPk{R_KK~^+wy(G)MhuPt6=4h3WvjqTbXV;tXm8GeEh* z?vT+-`j{vD=I8h6G0HvL^o{|2Yxk*S>y+8K$bDN8OR9ajXKx%1pZ;*xnAWu*JjV@?EsRexA>M%CIpbC7MfJL zX@Z&L8M$syWje&hVw&R0yLRz=g&FlK5)w`IEk1_!^_-mr=wS5L{hL-I|3~>kQvO-~ zAOCL|N-_A}?$y*!R5ZowiE(}5ydDWDQuu#>$*jiGSudp&S4BSj3u$x6z0s-J$3SD?NfO{cuZ0F@6#he+ zD7)wz{V#n^lVzw3+t|4aY{<>06qTq~SI z@TgefKd9ta3RYb;DXo;%L-`-&d^%63&XXbH)5=Xhr6A;e%1J5j3gI2Ll`TkJ{;v4b zsHSMLQhQFLVi;7|*AX~)R9Ma^^iQM&eLgsm6P!pcJmi@TFacltL&5nqrTt$dxes3) ztSt;;GFm2${hXBEi>~%IZG|e*vxi*SoxdR@40|K^+SMY(XJ99a9N~kUI5XjF7B~*Ak$gl&i1{&ntmO|3;@@7TQ0Td{(we(6Mao-tOz+X&M65b03NsU$ zU6)joS;SN3(nTXSpFUsjImm)_P~I9|)Ebo+@3B9`7iE7(qtf~x(mC>U zj&&fpI(HPU;9b*G2fYnTf5`2^LgYWU3^-JsUFrG)IeApXQ8B`hm;WF}7+onZ(Hgv7 zchesWu38#g+Ya*uohwx|X@P8clh&ZLKm);BXD??tzHMQ7TRam0eSr9$eR@YnfwB9P zt+(J$aeuDY7QaWzE5vMuKPk4fB6*|5;}F?Qd;O=3vZsmGSpBTVA}&$WhuW%alG?LC zT~}Rpr8-eJD5KETKgMi8byW`^69BoQi1dvIblt3~yjzAtM?0sA%rEI)P+geOu(C(h zHPET=xtp#;t(DO?m+w|)1}}<3iBQ@m>Z(*8_c#<+yi~Y!QrGcoZQpb9is~}^$Ae1@ zs&cd{|BZ!OnE5kZjU}dUyoo6#yFPO>p?`yJOiY#AMPY+dGq&Q^-|`mwbV~M+nA{Rv z1@r_GF<_4UCq$WLFqu_eU|Et@Uzh3gxwPsMlbgVj+czY4zzI_34081$HQ{!W^Xt-d z)c!Py-*s|G8#lEbx@)3{0BpEb09k9`M^Qweaw8KFtn%wD%QE8-Hi2Brl#Le%Q4CrA zzVL_`zzIEBYWKIIZv*T)4PG%i^e0u#!fK)+l0Yc|g?&s2tI57j1&FFhxZ|DI$elet zxVE8XYMKb10lh;tva3#%ZqD`PUDNr0@Dr`-&F-5C$oZuYk|LFc%V53EL31tB*OeCr z8yzrbZYSBto?YdhEc~%XcVl37y_A&9v_=XiNr-E?ef5;y?$ilR!vK9NrU5B0Ku|Mz zye2F3+$iiN(t~R?lq?n&L~^Lg)79lAv9Ms!1dXkLm$QISe>_QvnE2cR*AM2lM|HhU`!RzfiLy9;S6A2XLL3)-6VHy0ztY@%JuD#g!U`<`tHS23 zohqxmWl&sAq-iC+=Xl0gL;qQ2EeVezl6I1>G&jDQmb881$*8lN>yOSaFD_1XU0$Ph z=Ygj;|G;Zl)Cx|GIoDPIH#vdkO7{5!hz#&Hhw#*J@Qf`lcVg;sHWyZVnwNme`M zF>BOied@aWsI*4~3Cjb`E=VIEOFTx)%9az+9pk`joId$)Hgvg?=gnIHY%*PKzS8n; z!0DZ}wY6{l>*j;(pK$r6&>-J>Zgu*(!r}Jp>5*B<&bRd)3T@BgG5hw}%_u*t zkvG3>xZ2#<@@`?{cO4xama}KiHqi?i6A+N>2p}-hA@4)`##k`Ahp2Sv-_>V6&O4Ar z46Q9Uc295GGLaTUqan0iShIoNPHSsx_ld&hfrwqZc9pmmvTB&7gr!kr-T$UhyOBM{ zmG>v4{AYckyWoF(59%G2Aj;Q2yp+PK;+rhOnNNGUN{!l$5}pFFmJ*2<%LZ@Ko3+~P@6W~ zmQU_Iq7a^`lK1Z4ReFcqI?XO)yhb!oBSu6-3;OlsHW#>U7@B7R?A zqa8)!vP1WuGe1gJp6*-js?)m1D1|jjz1elu{Ax{gxxG4szwmTO?|-0PWSpn(M%4wk zVdvd;O&@=CNPON^z=^~V_ofj9QIzabvI|pwMr)j=uhM$alO(J@8NU)&b(u zujb!0@m8DTvV34B(Y%F2B)1TTR=1|KIbkE@x?)3TNEKSS^jp%%FQ5UrH+I$bW{G6(}D8wulWs(>(%q_dR>6I{}4T%qgUsLG@`;%FfAe$Z=iBN$(e1i$8fKpqpe8)WE_hZ#L>9*{I`0$_AE9 zMU_nSZ@wGrrnZQU9}g6Iz6Z)h|6{mon#=lDn|wg8Qa5NFhqaCcqLQ+ZB|r*s$?Vn8 z7A!PnP_m|uCo&32hJE!dkH@*^V72}ha)Yk+CaNInE)E9g0E9Id!MG4;6rM!#KC@o+ zJX!{AVuIX0S6$V2T;CHT?+t^$vXbmrG>L%{205v-5ZhI_b!Q$~w7L2-F5f2=7l>AU zD*DD*qE$Z_aA%9!w#BHdFs0X-T$iaTJ6GRMs8W*7+UaU<6ZQf53>Ix&WHri(c9IwD z6@`36H}ozv&+yq{0jVL7QEr+m@p5N(hr-jUK&j9J+ z>GO1~)=0O;X9g*Sg*rXd5_wN>PMS1#kFb#lU3t38g!7XINI6(cxsYLsCs@$wLKucv#>oA0wcIpw;3H)#~;@6 z9ixQjXdU2_4lXt!S#_=bcPiH>sfY9A-=XA!ns!Nbko33O6!|?VXfkEy>QcUIgYcpJ zk8f#T1A5pNyv@KUQHnlh=SO1U6ap{>O3r<=7gnRl!bWfLIG(`61YQ4~{hEF-yc#MgB6+hw(i%Y8* zm$nm1S4MivLY=P&OTKgjVN}m&)1wb99g}nY-L|Qzms(#c_8jRYcB(KHivNd&M(#E$_zC*Q&Np+%ONiizA^o#@2YMO5y%b8|;00 zJGk@0)VWFesI;}oO=Fnk=ml0cBoDWmwetm6fiTN3uw8j3PuHB#n`Q3rXKI0EYrz>Z zOn~l}>!NEZ?vFHO%NMB0KlIff?SP{+vSAZ(EFIMSYWGRy=A*)2X$OFWN{?RX zH=~2u{{k|TZUGrDz@=XP0s?y9EjXbI9U(-uDzbY|B;TRx^lA2-C~6g(wj}mu>3XK~ zwS_{jI!TwCVc+h^*+O7)D^)&Bf?aQSC_S^|y59{j`83~thqQrc+!m&wJThh40!a7d zmAGFI=d4nqY7;guh9e{lbN9$#grj?8xjUDioOCWvXRNkpTf4Ink!sfjL;pk_e%4ss z^B0BlsnW)$<=^?1*RCP{{C8xL{0pS>iTF&Jf&jVK<8@yuLgv;Z$=R!1F1g!3S*!G| z@GW)ZNj7%W9QL)yZ*(`U%WPG9-cs4~bgctzRSr%4*2kM~e-Z~!KrSTe9#CcLqi7=Y zTCK2MNqS2u6ZQoE&@qhUI1+Nl3RCc_z=L7~I;Sgp!MI2vH0cU(Kwi!N&+PcRNWT_^ zI&HYlZsX4?JZ{5A_g8JDH&>L7r_ex3HxyfQOV0rwkWZ@!)JUn`{(6UD8ENNIC1ef# zG>SEbfpMhY+im73Hn`%8od21nyA!~lQ$%$a6m2lgQzTiRPPrJI_P4l>j$J(+1(|3D z_tm4}98Z+Tb>QncCcwnJ7}$FWimcfLoPI^JFA#_7fD3hyD(pE@6oSG&*U|+^9W~n} znSFob&qggRaosw>pS5}1YU=@vc12{~SYdr0PrQ-_GHJ$id0D=1rVCFreXlOiR^&|bJgI0lRA%=@SQlhhZGxQW z&=jVvj&A8{K12b;T~}bu%@Gzd0QpBiN=b4%Ag-y%pmMnlJ@ZwzcA{y73-8t)oo@}* zSlc6me;DTZt7oa}M^}!$xIc+2{o&S2DgV7QBV=>ObBMCi`BeWP`MnnrHW)^rZ?DzI zXV~K{n-u+!Wop)s>tj~Om7JA$dtlFU3Gj$jjwf+!U7Cm*ZfvtN?Co&8ve#{ z7{--BdUC(OcxPF%d3%JbeVn?jAm2W!BC@bVPsR(@;kS?Y-kU#bH{7Jun$#v7X-$`R zRb?L03SCO{Bb^8zw5N#}^$zW^k^VIRS9plfW>a|FctRH}UxPQu?fvR=K1~^a%vISB z>N*;DM`3DaclnniD;Ou)R-#w6n1mZE9of^PcIKvCKbv}Lb>=VzInZAq=A_R-=^|*z zut)pOaoldxM&x<`Ug;xbu!;0o$J=$*{fjh;qey_Eh92qR3bB8tj0j-d& zGnxcrL6N62vDx*y>aBnjcRdKAn~E#vMa6^=c0r=}M{2p3Iy2(^fiC4g2OT?=1FvOz zay$>#%-$nBl5FnoEk@nI_(ebXMV{`zD+m*z97An^X2ZI5a+icMYQ=#RqT_>BUHifU zaJUSNJcWjj!3jn;oj(x&l|w(B>n?wDkJ;`v0Q|evsfX8uRDxzKD!sa*lwK+l$pF!D z`sQNPN`MqyNuVV~s?SaRFuLW00geE^E+SWD4(4@i3rRKbetfZ~<{>88IC8>c)^5=^ zQ*^0SxX-GRn(7jp@0?Q|iOBdW7d$B5t|`o1i1%wH;DRe$NBZvDOw;m}NjmgMFhJtQ z>_lN|T6eOI$~z9oJLu^+p=FQaNS!xa_)+E;)0p(;p0s>RgzMUD&wB}l`>fB$hg43C zy8cP(XR`xHO|+RvNs}oJ(WSVQ;0l5-p*eY`6_E<-V_2`Vm||Gii!q@EjpjA{on3Z< zE8WRJ3NOofe@cv|)z?ywIbJLB)O-Ubqnk)65-AV} zoOe>KmCvT)>ML^BlZ3Zm@y&73rq1%Wbr6u+zYcEunuWK=r__#mBf%%KIPIwsVIv#X z{%`PCwR*KHQmNM`eSPfuOZ5dmeEiR)mQNEx&gH4B9TaBd_I+}{3cVWwY_8CgOX-R* z;cjsu-DoQ#(_@w-1a;;_PTq4;&e4gNM`_PcC}d~A4Jf-IX%$LK8>`Fa8T!{Ne?b4f z3Yu$9uN8GRa-VLD+@58=;G5Y3La4SJ0l`ThNyf%Zs!d+3X*NC{cd)ZSdDf>1MThRr zij^%TI_JvNQ2&@Kks67mp3j)Bus#)Gp~HNvzgnxi$V3H{Noo4tGuqx%+*lb3x|1mA z>hn>X-SPn?Or02QN+^E^i#EMSahJ=G0W*ABMt2b5FK1QJmbso=d-N^y_n1uG)?Dz3 zL;~3@VmU}zrG(&C;OeXEgSJWN0pH=%}EIzZIUW)p1ZsA+zvzj)O)BGu56S z3NGZ8^*#!rJ$;@WgAM1_ly-bU3R2Rtbcazwe;spIGf0CQz=z&tX0oaXJmsdUCwFD) z0+dI`EiQjasAnpjuaK_gjq~(fUc#dka(O_+?dqNmh3#unzG(YA<|^OvzBQz5U=_bU zH)V{x=d$`7)ZXVv@30n$o6pw@A1gZ=GCjemW27~Fw10RAVL9dQvS7T4VfMBb~2p;2>CnVXai_7k&;OfBA}>9=5w_|nW2r} zR-)+IWHWU2X7jd)^eQM<>VY6qI01leKOTV6Vqm?d5SU=HU)DNiB2M`nQ)oVFdost@ zkFkw4y3v5++phq$`CV$~_i~f&2P(;E()zbZERRVgwr+FpI{r>WdcE8|SCMpad+Nd9 zw1=9}yf{LD1wuy`U_a$|9-}|lOo%X#d`fQcv!uu&b=LQwi4BQ5aD%EsPbES?XKi>j zAL8ms37um*B!tqkRMI{Fv@FPP2awMEj^{cH@(Zm5$!`uN8B#O~FrP!ktnpC(!TQZyW(e|Ao zovi+8NVw%`(5^gjnV!PTcYL=N2lF#MFZjh~J$c~E(b8A0bi@`{Q0Osf+y1=p`;X5r zwfz0;7X*5SQPBdpaQ_*BAEeWu^AvLGoFEK|G3d3-Ruo@5}el(OuEr_ej+>1uZK~g}4 z+z?wq@CZyU1iYz_auQ-A(U?8mO4HR!>(s=<>ti?#CnjhOQL#rrKXLrNyvvv07XPHn zrFML4c(%ZRlu9J;uTZ_ z;rlA%5tx`GdO~O-9ijNyq5n6mTqMjM{jBaiWWsS2nFI2<+n4n%cdxO;B&)8p2Yc=m zIQmtd$@xp9H6xR3JJ)fP)LOO6BT?*Hv=%EsX)Q2D-t!lAWu6X*g5jo@OV1^gKTLW} zz0d_uky0YyO)rt5Xak&Vg%oj|KSK(#9_98F5T%qoYUewKj$lu3LF(0A(K{metGOMo z%Lf9Zdrlbkk{X4`0*etLf(Ej{IFzLHO)>UOG>&ukz(bLL=g*$rmVGSZF#Wl!i%*6NV$A zK9Z)Zg0{1=S9;ZzT!MndU~%fsCcC27Cf|Ng-t%xlZC-gLV?~#p8JK~8S$&r2jB@nR zNmDpRq(rniHP=gt+>;3g+g^j<4$wE)=k69ZQ zb|#~Gh3i%qUscfTNnTr$`gTNV`zI-%T`cT*{ql+W+Mbgw3+1w6{3>VfNm_7yZAh>E zQdH=?aSf#}XN)gsirR~Eq#8B-H~74=Xfmiy_07BV#TOl2@^9rKVA|&473lXuT)JF< z#+ECi^a-z~l0t{(hNt{+d*-s(pl=t2j(jcf!gq7I;OZrw8J^wBqwcWd*Jg&yiQ2pL zcR9vO=U2C(t!B+K+p|ys8Jh0NEGpMo6){+Gen5Ivz;!bABq?$>mpG0VcqVy_X3sWL zKPnOwPGrE4o>JS#PZV**mlT1W1T~}HH@zA|a3cD~_ULRf)J|m4$*Cxben(28vqU-F zq(l8w*p}5@9IsV*+Nbv-p+!J!PnHblWZZ*+`oF|P=Dl0#MoQ?up3y9BM3UclE1|9@ za#XS*S#Icu?xGh4%pi{fW~fTaClA$8F~Q4gF%v}u^7i#9AC&0V8HwcL_+onWcHLIv z`o@(S3G}c?CB>4jbG8PuLCCvO59z|2xyFqhqZAj&gwuLuKba?YMU!!kI^XiMYmgT= zW02_f$LLu`y{kpGHoY!){*@?XdqolEIA5!9-85_jnB*%hiee};_1eff+MFBAjmQki z+Y_HXc3mNXzu?8LVbQiUl8<((T8ToFVny);dO~I>p`wt6wo*vrE2^VGCI|qLP;+;e zZ^U(6)U`D5?GY&xEN^t|JZ<`J2}iittDf!Dba7;;tQ@sccXLy_W9&v-H^d_F7lo@` zmFV8nmR`|WHb&k5wSvSQRZQL?bG{gYLYZ-AX0!2<>K!sl1r-YfS@=Q|n z2osF+o61V63!!xMj>Pa%>1}L?$SeEr3d`3R=BB-Fyy+L%z=9z~y=zpxb^*AUm$8tF z>9W?f9GI7xBaD^pj-RdgcUkT%i$f{QCX{82BB^?N%EjFDnQ{H^`C=t7A`BU1I3aL) zx5o^C?nwhtDH}~yTOfiZ2kkFgGBgzTWKYS_`AHpTINR;6O-jpejfX3Jnobo~E22CF zj!&wDIrUwWOs{X)`h>do3XqsQ@!Uc!zncFYBU{+Nf<9*o;fT<%A-B?Ll>lbw%%i;~QE( zdDZ|am|@Ob5p$HJLD*1w`(xGH0qG6NO;~RNjvt`)b9;@}s7JwgAWW z?g0B?PyD>Y(^LB_mr~zM`!(Sn>de|an8n(07h8Bs01we~t)8`9)b2Ct_J+)!2B4;{ ze=8f#r>9{L=yKR0)`Aa)KzX5oDX$9KCdGN$fN3Pt{j@{^A5mM-MP5J{$W)X^>MB+LB)?L*`= z)IPrD)eUqT81hw8t{pn`n#`L4o_)|Wq=`Fa?>qNAT9Y)6bl{SX@ZXb7I1QPuY?Dsj>o6PDPNK`Vt*HL1n%(+vU=Frs;a(aS_3@q@2+aq)9EW z;b&RW_n0=@&aI2KRq=ZX$uQQ&^}lY{)Td1*6hOaKu#sMc7`)&#Rp2aA{c;wLjqvk))- zAo83vOBNa!D%oiMdybj^L0<8KN0Sh-&oVrsT&CE3>o0M=cOFO3tOfL)@7&08JgU?P zLhMUt&^*sZ&wN?lm8PsM8TnBtB0MzwDN?Af4OFyQ$021 zjkWsMAU@_{;0yCd^`=ae_PX4&EOG4F-0@db0s9?q#-YJEQ;}cFHVcvA@r&aYefH z|Ew>S_s|ItH{JDkR(FwfMu!!(9=RAf-N)#_f)inqhcJn(dMf&k8*Sp~BSZuwQe$!v z5~)zKJNOc*^w;Zp9z`&?9+LO`Q{?3++8;LbKdL*Uif+H@>fCKwG28-eB{5!t~h!n~EG>6fXoViwv-&FE3xbz?}<;x6lefntvgROrMZIG z4!FIgDD6?IkM?xm!XwztrViSv0mR&G8>}Ui#=O>OQsHRKV0VLhann?IPJ54M|e1S z&XLg{j_6*&9Lpmh<_uz6kIXLp6k6b8qyY74Dae0wVY1fXL*{!tuS<8}g{4o#*BwoL zLXfatXvAqELmB1ykd=bB5C*4Te(w|Mw9TMeQBFtHI3W2<&r7mpjTxRPyyN-U=z`N~NA@TA@jqC9UKi^FQKo3d)=4C$fR#UDJsO7_UGC4pl< z9Y229k`Me|lpfml%%V^5(7+NC~Si`2^-Rq?Jw7tin;Ha06f95;mO=fEmI`XwgRf9L*6$2`6HkfAM;c-5I~V|$#jU399B zp-x4Mmq#(0+L&!Et+As0Yzg4dC7ydg^s7+uYmCP0U+|JfGn;8(UIJ~if0RB~f|&qk za}r*C>p{JinlgB?hIwP69^%DPx`nt5`)lLEJBBeYjl5_0WyH2{n${qW_+X&ugK&`4 zZNYmu|3F(wr)wC8Z;uM=$jf%v>&GgdvZU`8Mi80jftG>Ss*1EJ(c$}Jr2gTa7p_DW zPJC87+#Aq{iO5PFt_U+?+2_GnRVy_qzklr1EfW!zXpfz z50y!m&ya=TYZ%s<*nj6Lzwq6fz#Xf0=SHT^=8~I|6~e(!iD^X(lP_blo>?>&W`~8J zTP52YgXb{$_^gj&WJIjbHT@ZTA`6Pg&`I%^Jw7zQ3@`eRXvBws2k=c`C?4Xbs(ds$dkMs^PQvHJGSunEMmgm)*2_r1m$kk{5ai%mjL#CTr_W$RDp#|}Dj$v$dM;q37R|7YOjGEa?>R*w7?wG4Tv)KTIlzJ8eq zVcuWIC89#fUd+ONnx%lcMyN&i9)1I1%usK)@DgjhHl8XR8H69=$E4y2BtGje+g&YN zrfE5StPRC}|6^!=MUSe$l!ip~2fF9riHfr7D8DQ$GXgzyk>9Xo+X8oll5hR?hwg}7 z7CSajDkDQ8J{(OD&<{AaIA?iwZUtw0a|em>Z8Mk$j2(7p+muy^Xjpym_$edC?%W-_ zIP9aq=XTFnEQ|lw=!$jFGLoK9{1=x(bB(@5NxO!!FV`gdBdm9X$1a+&+Yb+Z!#*UD z{$c2N65sd-V!coVIQT|MUi_1a|5le*Rx>q1@H<2I-V5W1Df$LF3tAns^<5`R>Nf2p zs|t?xbJG*R2=xpUn1{E}jU{;k)k_~}X^-pusx+n})zxl@3PB6_zmG@ek$2h6AI6s* zfkp|o80cgbOez*?iTo(M!8`uDMv{UpvX=S|CE3$PIL&{T=PM*Z$etyNwXzm4|I}7Q zIkRULXVIdtK}pi`*0`!-t=)!S43}0WjTIiKKM!6TW<(<>J}Wd4}l&#xLke$hW*SJ-*?wr4(=0mzmvAyx&bXFc;l5C9-+ z3L^cxIoG5un7nIMwNWl1?z|Hj%9fIK%&akY&3VtVJ4FL8GydrKD@R4A;7g z3Zag`uJ{esG|WF78di6Z@UF*W7CeQtbEOEfK9+ne%D19#dd}3lZ}`(E7S(S!qi!EZ z-!KtX8b?J3*YrT)UD@v7JtT>*GwFT2Q7`&|EB9-MIh+&U4TZkvN+JiBdM|j7Ly<_P zUwj(N3P&2}`-f+N-r)E2zY6mYn>8-fQze!ShTfnN_*7VQCo}UDWbV6WmW@~>tFKEY z9se>{0@Uw6c&0+GBU_3i^PR+m9|4_*!Jq)|@qlSWE52v&P0}?`99eq&&ZS84l3 z%zuxu#T9Im8OGGb{cUR^HcT78V;evmhV~ki1#e*JNdOlCcH_TRS_?3UF;q_!e7q4X z7AqL5RGhcQhuk<>((Ti7y7ODGP}qlAjllK};`-FSff_DRAGHfr6oq|;{os15I_5WS zHWTd57{!I*w=LgM^i0W=`4yR5(?pG5j_n4=Q{y^RPrH0Em%Y(;ZiQ$$FLCrBjF)I+ zyM>1;`7wiBid|5V(}=fHZa!d|7URm6?KVyEte{M7nM<8armh}r>0Xfwd@h~gy#pg3 z0My-)GJz1W{iq!ea?lro>etJCTOfs{X4P2#NPFRI2L&en$YjMR)UE;Hejf&UjU6gO zYV-qI`{6Nmgx@0Bh^!RO`dEkRP4v;}YxC>)(B;H<0O&=ZQ2qr2e}d2jNF!}8BFM~u zdfP{cY*}djE{B3$cBlx$h}WOuupgscFvz@P$0c@Be{uxX>(>Sl=+lbE3}9zW2`d=~ zeSqjVT>ZMjbA9#duwgJJH7e{!7Ipcutne7r>12_*i%t76E<=Y$#nYyI$a`GwEQmTw zTGTtA(mgCFP_JApIcvn@pC;nZ^s-C{$N**h^-CbV{ja%F? z|NUUNQT$zd(E<|PQAL&vLLELP9^oztjltc4XjKX$2&o}C7mNxR95iClpf6#_$Mtnv zxFRqddp&BR1h(Va9zf+R$1TsB^*bqqk$pZiMSLX5tt|qH#Ga-vTlduN^1rT#|~u^@`F-tk=QL zWpWEK8_CfEeL@W-(Ay6C4q%$XmpfUuWn$p-B-W);L@Y6>j4T%M8HUGD=_HiqdP^h;4+@CvM0aT9BbgrE23)Vv* z!J^)BuYV`M&Jygv3&-vC<48?LjJ!bN&B5&b_oC>Mv3v)p9)vQ?#Fa@%%*44s7vc|4 zKd=QFmG~&#TL2|QHW=M0q-mL7c;ITkz_q%hqx?in)aci;lXxEW7R4yWef((z!`w)I zi(~wz&@@aQKbQh$T|WyM9J4nmV>(prtQHp&vE%naz+n=rusy-*=kA5=j1hZD^s+C0 zKx*g1bm%3&*0qA{XAkmHZMHkjC-ODRsBNL+Wt3%6+f(M16&ULm2BWj!J`mIM_qH!2 zsLE`?rJoYbmdzP4bxFu-VYSpA(#*I_2Wq;=Ty6F(d`}S@;RXALlUz&})$0fhx&hg~ z9NW8RVfrjem;`-~;wcSC60U=@Y$I?Tsf0Q%VCCU-BOMxW$M-gpOvk9)a+ zSPl8t+ry=Gc_HRDdS!|QSu&$)DG6X!Chf;FI#R}{zq|u;9RyOs^;2R>ITH9*#t>Y& zUpm0z8Ds<>(oEbp8Bm=RkG#Q;@F#BrC+Tvnes z0^TH>-8?nAU3M}fI8AJEeSw^tGA4OlksoNYtf3>H6F!vzY%(MBUwn!XL(56b-_(ngXRpCSfd=0^=5zMl(|7{3Pn z_5uAqG^aVos!+ zaCi-wMSid){grWm_QfyKpr3|%8kPnI0N$6}OWYI=KAkaQ2KEmuNhA|=^n4B!vUKQc z*hZ&uOYEY+9os@7ocKwXi}oHn!W-xuLHt1Dk6k}v}%2SL13@MgT!0(-*(%2c&ogc`St^H&ExzY2@<}%JW|1kd}HYMcI^P!@SG3`|86-QX|m!w?H&3H0y9(;A3 zO|r4;o4jSQBmM_(aF>lCSQ){lKOt<)k2>W0tVBM9>ict@tE5WO^Hk31hp_reS{Dx^ z+ZxFvzku{2E?E^TT=#+0VV?FHl>NDyc;)voYBV$R(X=l+7?d4(aThzOpAW ze7_x13L|Ai)$lri;`2e-+AF~+6DQHwz3U`+vJE<^q{wr9W=!cS?28QZRKeCz#$I~E z>%8ba(`X*&P_08dH@+eZB59qIEpx5JwGk5Ed?`f4?(tc%f!n~i z$D)kh8xuAIH8A2B3fGjPE#E@ph&Q*XI*C}qwovh3?tX@fAgjhtd4wt=(?0s(Q)>L3 z_?Ky<;3D6$e_OKK^lBXTJR23~`2X=995UBD1!O#Mhjh7UeG;%FS>u5tLI!tWe z>8*^|cy>;F%DWGBpSFR=A6sz#6f3CWa49jG6c21*J8JNu%)3MR@6p&W<~kgF9b1bb zi(gM9(ib&*>>zs*!y;R=nro2@MB8XsOs+~as8{f+6rP2KHZ2D5Y*ZejDoUl0A^sL1 z!g?AF62xs(l@6zf>Ah?JYl#u%5+&X6x&zQKD<2@q-&I0qnkmZ zEY=xYBUl~u-2M?c@9*=Wxmkl#j7Y_LcUPBtgLc)b86sE{Ep$+FCP5jPyBy{|-aDSd zG)#nIZ*JP2T%Q&uwfrR98FZ;|9+y$hrF@oqdICXb4$w@Zoj|mhtI7A!wUhK=7{#$k zS>C7>qqYk*mk;+oA0;t52x6y%CL-KXIK9CZZz8tTO(Lb!`RrJiKGFTzK@>Q;%cL_+ z>Mhq7USk7VNxEi}b@FEi*_atS?g_%N^}Fnf=~P3p$j{S!Hrp#n{m%Om`p-nF(WJE2 z2s4Z$B+@XHRYkEHl##@tNJ0;7Io$>Ib94V=`m+G?;--xq5C0^OpX?_TjOJm8B#3U< zd*><{+bCR-V%ef~S9{#dg_tdpn#NyLRAlHfFik=d)KHw|YJ=mc-CBCh{jNUd&f z>q#2#m5FgL8dby^XPSZ)Ua_3*BBsC3zYfo*iW>S$zW7T zHjDBctHqs{okY;y7U;FK4B81QF7g-?HeNCoD(0CvO%u4}V`Vw~oTRHX7qM}eP%fNW zmKYj|`_u6-C^7V>L7xv+xj)~*AiULpo|9{ucO!!+6j!XvOMY&~_y@$oi^yc#Sj8Rd zCkfpVcmVPk7Z#rQ$Vyaz*n|JkY0tGzma)aQRj_E|UFd~AO#UA?KDlZ01Wo7326SqW z#L)p2d6$&3ZB$%R*qIC4qjTgrIX1ZfNrY~3#%}D=8QrJNk8u%47Yv82xB}s2O!W_p z1(L%U7~YNEE}#QI%}K)pul!{fe*f3o^HgrEWZD6mCq^PyhAExudxZUjS zcm6z6TaMx*6ey?B+z=dat<@}1+X59MfCwd-1lNy6RqJxFmyrpgr+9yO@M=gZ80(PY zn(#qbKym}BGvsI^AT)I*&(!6Bd{kC6xM6Z|ZkoBX0QN+))}ZDxwBaPhb6(a=_1Ono zX1b#Xhc>9%htDkjgl231mtqgCn)V|3LNj~Nb19V@Cuwx9UAkd4*|!ki>|~}xLQE_L z@6sYUoIU%a@h|TwFgwTz9_7mOrfJ^a~4- z+KFkI)e$ztQX1XX|8#L|Q;aw?B?>K1SY5QQ1(+Z1&AE`V{w$TDVNukHK||7+3_f<( z;E>?mZ?O!{&&v~Li4zRXI`T8-F_pSQsbe~H$7tr3 z;Ywps8&-A%iuy=ab2{&Xtqey0dfb^+B)3 zeTlvm6H@Q>w66Q-E3;C5+=DZJ()|L3)Jp#0#GR?Lj3bDPv_fA4ncwax2)9gn!=oRo zU&NvJVOPb3S{^eV-cfnVKW6Q(07$Ur!bqR{20| zZ&OmBzn z`0|~=^V~9N#oU}pa{mgIt4T$v^yW(=mw1&=+UKL38dz+|kP~$~EBt?AMo?xYBRO^l zz73+uRu)P+*fEW1=CNM&lT1&e;DMs8YU_5^k%Fppk0~7DS1G~W{DYh%)-Ul~lu3bI z)^A};M8RK*I&aS>(KhK`O+=C`eoy>CB|n);ny%zyN(C;j3&FO6pI#n~pU1=I#X)Jxn6c?D7pFxw9ujG&;kg_}od zO6r=cPQ7nBTN*kDg2e_uI?7N%P$Y#)cdi<{gJ3TynFjR`pJ_d^VWOs_8!Sn8z@eY= z(lembA3n3^nNOcb+MS8?It~BP==@~yhxm_h={+;X6F6@Fa~)N=?NsHaSdK%BsH`U$ zQ}Q(8(QoXC9Vnd9x*%m!(19XtVC*t!7HPwr`E1Jw+ExxeS6x({(BBAA=H=h0Dq6Du^F55hF|snCimQW~VojLm5|celhaiZk)# z{If|#VW2Q8xvQHn?}M76?;=$Q%e9pcbSRHiCViRu?sAMGFtu`h;)frNw6_y=;auIjgkz4}JVjlcVl<;~^aLGARDxsQ2ACXXG%y)AiS zc*XmxUY$ttKzScc`$CG|LzO0?POU#d@pMs^vi7#h>$%lzjw9g zYKp`zCN&a+Me80%d$$X@a+xM2x{^ol7aV5~ACV_KNq#lU%fnzD`ch1KyjF#N5zNx? zzK|}(BnYal-=Yv&&Jn&2+u2MxM+<0<)c|gVH`p2o(Apsb3k}PED5u`&!Xfmsdu)A5D?;=X2 zSQJ4j`D`-jU~5w50%*esE)%L8>iPH>8L!iTigXyB1xN9Mu=fc=Wm@>Mtr)C@fsWO& z>#ASHz&dC+X9K5=^M=0E9=u!lE3L3eD-vuMtq?kf!hVf3M`+oELi}Z9$*f9Drl;)* zrt>a-fw7S)G?0F|BT2F=850d$hMExliv4KM$UxlT{spgjo<7F5N{n{SkWzvSE=3&x z+-V88vt$~Z*?VLdro29t)xViXGHZq_0Yh|UGPdPV5JQApsa4DbaD!CAErJex^vrXg z5XX3K=5sSXAO8~hA^p*+kBGO7e_-z;RmVq=86k9$K*{e_P^^Ue*t0v-Pa3wvZ`h(x z2ISlhBvdlZF>9Q(rS^uCp{nU7B(Q@IZO&*G?bd2v`16ky=#B$5*WrbG=7T2h*`n7 zP)j6s3`@lKTzVkJs9HiOkww|WmZrou%L3u-HyXQPk>8$22}KUgBA_Ah3&*=7_?Im+ z8ZhC>4(~>46nCo`HgZG(L18qW6vESxmSe^e#_SDxYVMPt!OA}y^gOU_)ii2368g-- z#KtdC8;kZ`g>OCz#5d1A8$}c=h43)8i%j;O>p@M5Qdo93%uxX=NrFa@Es4wy#B0)q zs$9E%66XVST$qa5iFXU)HJn5SBqo2oW`s|$(Gc=i zk*wNhGz5<=1x)uAf6Jn3CG`v0RQ{m%b>251+qOv_e*qYQk%dYt#!Kqy7y^{>-SG!f zvfl74eV0;XXeIYvjSpbiz}fhUr?196sQV~(mGZZ*fWr}`Bs`1kRa%Cs3lMUT#p#=U zxemt@iv6vFl0>-wk{ExM8DdzHn6}D)Fo7eJp4(=>zMY?w=j+up$=r%;<7dBOfxeh| z#y>uN@m}oH$bV_?h?gi7EdKD*-u;)PnDE5N{F1-qGofskcglU=z*MG;Q3vr44{OCRJ*%m*2PIoBFzUS@}%7 zgD565_tUT^c_B*#0kOU4LwT6Aabwp*`AVw`4VvgN=uTZHnj{*5D5RHb0vQn8=(alV zde#lHy|xv@!6IwN6e;y9_HeIU4iohhacG4#LPk$t$-(lkODlCZPFjPBhb4M4sDrpn zq}g)s^_D4P>5zg0LkelMXB`mku>~o1dw+!#_`6NjuFk{4Dq5lyYl#QMEJG&~#wYZS z;DkS#AJ@7jbLg6wO(GV!*o_+iY z%=glkHxwksdnEk}USKFsP5(K~1TTF?QR1aT^xIWp4uG%3&afAv#^aZZN1J#{yp0>I zlVWA05dxklLn^Xn-JlY6_jA$oebkaey1H;qAxZzOC!odR1kBq0s zYj|HL>ZxQNDU@J8*q``7QUMzlLzj!zYvVnaYEEHuEXD{~gZoP7ho3+H(r3?o_W6r1 zeGaBa&H3S{_|YRs=_6j+$*lX*%tywLSaN91dr@qPP2|f_EZx^WE@%`_YWQ3!LL%{PVU<)yx+54K^@`vzm_a%N30z|j z_6x+>28;mGAt|vI&|o%@Rt2PQMu+}!&}7S+A&wH+-CQOkO1hLpHg<_b%XT}X`yh@wfs3}n{;{vZ|3GhOcu zygUDiX#8%4iXS;BNl-p<0Nf&oDD9*x7Eq(xM{)%wa{G;R$H_xD9DGl0XUd)vong`k z7SU=#^2rAx#Q=bi<_aAp#t7S?mft=`i^|f!(kb;;LjJs4HpJn_p8f4_AADgYBancN z&*5i;YY^9?jz_2!{A+wn0$AzQ=LXo{X2W4%_#;sNs~_0yE8wpV;@G?O z%I`*!?ISjFoX>;xaV0S$DjM~3xmUT0W!&%zJgLy^ha6D9cD8A>p=Ws9txulqg^YW^ znb8rS+0n_We0d8yzng48*LCLU?6VyXl`y%y&zC<+l!B2-^%?P`r#&Y0P?*H!?^}sVZt*?h9PE}YhkHHSkM|_$+&I+| zf5VXUOtZ=P&p1;FrEKC+vIl8rknj;v0)MCKK8G_TcsOC=D5|Mn1|P=J*&ZJk{UZjn zb)Sj9LUhcQS-dpzZLM%nX)+1d_1G`9B>#8V(;NwMbgV)EN~Cx{mDz*C(pITA@?d8tmyX7p2*P^xsGNT8>tZ4CN{!10XrR zM{1~A)y)TREKcS$OyCA-^sX9x`Z1>b`=nov&$!%~eh~-5UNi`oaJ&y%r7gjpZnJ$S zZ}-KKT>e~m{&sY%YIWzKb>Zwi3ywBvD4T3^il@_4w;8f@$IDvtdNT`Le|LS?=E*m^ z+LSG-DREzRCX>0n;!~wJsBDI}a{Ph3mCwDmVkZmJBKI=Ri0>@5t=8Qv*{DA=Ez|Km zueZ7S` zq%*|jm{^}^c=LjKa^ySm;yd%kW7AGdR=8i-FcPcJLx>JVQ4?eI2HdA)P6ZpP3$XjS ztwh>0RoOdLn?dGqFxMU6*pG9~SGp=!+Ar1VQ@^n$^)Ij%z4neW>LQ}Ye+L)VJssjw z=J1LKeXjie{QG(PMgZG!bfWG$X>$4)Zbku2GM?t5#gmwO@mHVv%vLh~W$3$+Ca--w zSl#;N!t0++&;Q}z%E*V7Uobkxf{+Xk%io1T=9~vZBq#@)&*`rFH20A+soXIfyJe>P z2zxfU?1@YZQZ9&$Y>Zm4;Pjm!1&+INA1QD=Q)R&USi7c2-MmQ-rpTA$k1f=yd^Pyn zuu0%fY|fQnDtQJFMBKKlH}p?v?isCa85iC9|Fn1QQB7UxK1!9*>cneRXsx8J_0rZ= zqGg7t1fqQmbsS~dt{K{CNwiL7W~!!2HH5?*(OOihRBcNs0(NTc%(WUjlty_)3WyA1 zYH1Df2ndo00g@2OJ16(sd!H~Tm9G2uT`Mlv5m9np`+NPqZ~uM`@_!brXadN9@kKZm=?v{E*IZ?1NZ`3eIp`aVWrF&j2bYY z9edbzP3q28UP`QaobNsNYMb~9hBcYfjR2ER{&IMZ5SG!&#(CG(zUllxJKwoK*VfK= z_ipCT^Yy<}^2_}hkcA3!Qw&*2_}@-ejsR1FV+Jr4f*+Bo#?pG54d!C`h1{f%hZ~L~ z!@LgnRT>zSxb{h0pI{31hzDb0M(7)*{u??VQs>GCat+(l{N!$ zfQ}l&@-^JRsszNJo^3uul_A3YPX*n+o`UNBd1CWTuIY&WwYu8umM(=t7>U{t^_hx5 zn&Q_WxCCT=)FGH)x|wcp9deK6`(FlS(x9NJiK0zf50>r84Lp>Rl2VE2>W^mKZV`xF zZ%8Zl33d(T+4slmx1SSl(-~rPYlS=r@P<2}Z910Nh}dQp;9VaL$P>j$M^7o;jjG8& zx)@Y)TmxI_4Mx)Lx)mg_@4{fPzGT@B-{)%WK7pz}&u%@Ye{0#<3(mK=P{{6nXVz?h zrDjim7_$7T_O;x;&(B^s&`sM#eSDsiD~z>wA`f60Jte(VK>1=}X9h%YB11vxWxMo^ z=$Q*U&9k5Q$E@iGr^77VoGEa42c~3T=O6+Ir;GgtPS0Yk zy-2^U|e(zPs)=53SUg4$ajqfeJ6dkc19nqI<@Q3(y_w3GP2B3)Z=`Gt=Z6RfZD6!~B0to1sLCg~b{vcYaweNyCNTG9} zuW~8^bJue=b0Q$v&)`Huhv9;weYw>2u73M)d8VOf=2@WAL1=7>2St(4`r`K9wc>%LRhFXaN4PjE z_Fy?6KiRTR{T;75wI9iGk836(X=9)+Mr1j{BH(49zf3j4+r6f2)A(jl?yox_CkBMX zaHn5<+)3?C3tlx_Yn!=hmeMI)HD(-kXVwfCP{mQk2!m_Py;~rUK#bx*lsDE5+Zj&Rde^AvHH-#}#Qa~t}^gd)Hk8&P`0gGw(Sln%Cy-AXx z4-qZw3z!(x^k=+H34(m~7DRq@!0Si3tCZ@}@9I)uJrrLoCjTb-@Rk2}&e`yt4dr|zA!4LWSD9exbsXw& z=k^6wW`1_zTIcgejlWs(*R3ayy?u1u_p3L-p((@QFFd|ER({&4SPX-caU~s*Rpv+bA8Q>ZRj(|uryDQ<|NPsZE^ryR@4Iwo+xbP;-p zoQ)CDoF(gl^)25vRr=OUsdcIzD9!UQkb%f%_jRsuta-KD7omc*FdNKO{&;f1BUCt9xj!`~Pbd9BE+YCg?*ZZrC`pHS;W2kQrip_tqyzyA^}^3B4Gb`)pg35Eu(vz zQg1#}<1oXR%5vzkLzxL&qmfkuuQnX)4cN; zmf8F(`PI6}?f$Dv4TGPF_Ee4}Hrqjs4)I^s%;ULs0*kl``J6H!?V`L297)_iEBKg{ ztMIi{%dCr2y^*wWs2DoP00VHIf8IJxZS_>$+#6G8Qnu=W;KbembS~COz(|g0dLh_g zm>%|9gSa^vObt<7gxYyrUASambDX=_wodiB@_`pm%z6w8mxC*z`&@h4{6O;VT$Dr1 zS6&q;XX=I_z%;nOU1nCH4`nZ&LKu?tEF>?11@j{$3m2pRs`{yRli zj7Hjdb<2E>O^`@EbM#k&?^kCoEJnVe5Icw(&tdgchz7p7StrmKZ(mum5i1>#l$>A< z__2`zz$fmUh)mj#+aIUT;{J^fB5=Efk*x>*M$bZJhsOUHn6H$64T0V7rFu@rj>;%a zZcF_AfEOU=Aj>*X&}QuF_HT;0jQ~YPEtL@voJbEAsD4CFv$hU6v+^S*_aI;bBV>|0 zel0Lf+wPlWKR)B)j#!QSSej}M@(#v|mpT|pG9piiGh;^3aue~-#Ma307r@3Pz~I=H zYDZEfPVa8uBFEgo7FW5bCsF0+PFli!C~n+GI4M6c^|D+WN$l`9d;&bw?;}+vnGHgn zHbfLOrQ6Z0y&6$HRLA?bfU1uiEl92Wkn6r~>33g1B;rH;NKoKHK`;0pM)MMTo}j$n zL=wJQtAJ|MK_W6*pgVsE*c)9-Ri1^S4`6l*gtp9?aupOqN4Z(80%MEBJvS(&>Ax=B z6_r_Ylki^NaY|s&@(BXv5kr*L{n zjt=f@*uvQFHJqrEkH^Phd=hENfT1o))jyEmm$r46&>1rv0WfUAYUQ`h+8AKyZL}`$ zzB7gh6%%xuKoX$)2v_Nq^^&(q#E=*&MgiWiPoi%30A#Uc@>7{&+xe=?mi}s?q2Tv0 zqXIkEa`tG9zcI86fQ8lb3~<`{fh+|;6U2)Pto5(+8M6(2k*KwCf_W$*zUN$2sz@yN z95`Gjj^21Nx+8jtaYNL6^-fbgFx09cfp+$HS|SVsNdQNvxFb%Cm;^K9GPG~&Hm;CN zSi;ZTfWVoejEW!9d+(pG>$%==#@FwVpzL79>exbb;HD>iz!iCKg4gj+;rSlt0fYp! zc|}^f2KjnutVd*;%xRhlIfrk7&;x>6ZAHcRUjdiC-r{A>j$ZmOgS2Y zs2N>cS_=+Xevt#)r;VSK0O!%K;EBX`#%4CPJz6BW{4NSQ##DJMqmT+oDNVv zRaCb^6_f$7-0>h9q5;i=p)U{<81U*zigljvoTjKiuf^@-c^8dj^nh^!7o=jT0aV1n z;7}(gWZ_dMa4;tigghJ$VfAj30B6{!nNvj^fD1VQ#Z(>$IyILSq8tHe!OFAB3KWk| zkRt?El3dVRF7Z|qu~7M`N*Uhn9#AH64dnZN4|JS48bFBqZd{41YMKws zh`xg;OPIinsE_f*lFP)NQ9ORh74>{b5v_SpLI4Rw;~NRoooS_jd4~hv#ZdWx|}Kl7B=1j(Idot6ZY~=nGsF z0GT$m7dBc0ZJ)zz19ICqGWYR+t>l=VbKDr&T3u`E+qkf=a#b(n%e(6lGar<&qq|^) zq+Ho-+O-^}6@q*4pnQ@z4L~siG6;19_a?&iSVE8Fy2e7_IVnk|R!|rG1;RJzIZvTd zV6%NRlCP^2E7Mf8o+{C~2X)Zn0MNk5_iQ4q7WTuyTdXSvbJ#{MzH9AG0+M;^p4~{0 zq&HI46Qi<5T51#Y;to6D^G9V0jX5MeXQ!f3WGld36#yC+PPTR#N+k5LSle^mfeud9 zorPyjha>|>0IW;PI;mrjMGy@_QKM7AoY`* z`Ti9MYebxW&AK`>A387-W^)010;0dqdFK>`RToUskT_+%cVd@NLwuOxS)GD*D%}#ApZSG4g<45 z-XfunRAY?pA0JQBxxllOcbh{b))fUV;HZtz-g!rBDydFV4OJ)ahMmT?Kk~-@Yus4J zM|DGhn&3@C1R5%5ngl2;Rm)E)@*VCEGlV6Q>fvdf8exyuU`;x|b7PUlx1S4M#k?ac z4{G|K$*TF7hl12!XjiZ6O(KkC|DEY&d;B&5^>W;vdha)pw!aPEQ)-_nsROzvrf?5Y zNxT>Dr-tome0l};c}(RlY<+=uyz9$O%`4}}o^ALz?fk}uXX4gDc}nqsY<%K8{9a;^ z!+O=QGaG6Nn_h*D(^wdHJx{oW{uRC1uFD!7YWnkkTeja!&uaKA?Usr1n=Zh_7-=jJ zN?KxvxV=y@=w3CB*;NcqQQ!|`8O@b=e^>VctA`@#V`Ytu5tR%8C48}2BLiuyXkd449^cCuy0Xc6!CD{`lh}rv z_z|6ouXWwWEAt9g?26ED-3;`{UerKiq5{fnGKjvmRr>=@Ux~zSFmXLTwPa4N@F~r* z;lq(+u#8=?QlI`zsAd-I@#N!e4<2QFBm-wt|HMB-z*4-_+evsAwl-uRiFKwLLG7VV z&jsl<1k|weUp%^$KDGy{zT2yqzkEwDOtQ=gh;RWnkC}+af(NL2e1l*RdX<`J2$wXo zRwz?@AtIe2<&G) z8Ae;afQ6kfcoLW3hpbAsC6g4$>{=)AKB+@kZduCQZAjjq!g4w6WJ^fS49T&YDkZzs z>3mXS;|ekaJjf*bbm$7Tx59~Ip-a@uvR2X%WYU*@b_zv`cY4una4fU%h+10pUs!gB z-!4|k_OmLjz&UbTxVXUQA+Hg@Ac}D@xx^cnA`lvzB&L^UV>%+@Pe_7=kMjte5nKmk zWs!^qA19MeBx%b8&f&AOLleG;(4WTZGDu4X|L!3jgTMw>^u@PJ=ILl=aka5lD!Ens z3Wo8qm>Ck_lCqvG1cHnb1P`Ozc6@9JY(Vsx-;u>i-UHt4=pd_(9aJu`4PSa{4BpdSo$&dRb&ymf#tdlTcjz@ctkTw7GOhB(h z%_SU{%ztH{Gw{R{Ke@8;zXtw5W>!dv$o`@K37ih!80%q%-&n|c3@=62+5qbb+gR9n zgxx(mE`{S5`)Py&bjZ`#@nbmi2+94zxnfBA9CjWd<`T~C$14{6T*A&H>^#C1G`j)` z*JJFb5w6EVpGFwW38_xQ@LMR18Fn6_<`M>TLd+$M1c#VQ7zqv|!QpO8NUJMckA>^8 za6QIOBEl&Z`)P#hvCyXxuE#Lk z^>U|yg_-$$&NVrSiMQ8oJpESdH|~GG-&gR_Zwd<*M?5lMeYf}z z+ds=*miS{~%+03*y1zJi`rF(8{4grn^WBT9aTf`I^{uj%q&m z_l1qSqyM(pJ?{T+R~+XX|BkVHeBK^xOk ziKoM%&aO~J{>iwxO&d}gv!wW)J6~&$Ej5Ly5>J=vtJ!x&_?606`J<}~zmY27x13$Y zrMIQ;G%jh14(ep@7R>*{-*hn3+@3nWiXQt~iW1aYb$B`&;2I3jG`=W4%w9d=@-g|~ z-iqeE6%X={$i6G!S9GV?1ABY^mh3aIr+C|E-=??a*Jx`v8WG@CqW?HCWNI?|cCn(b zxU!dhq&{|iex2j5)%h%YS-Q&3!1S|$=}+)$71*~8bglBwl$LCz#jN->r3g4?biw&*9^nmVrO?@roQ2*pZ8ZUg=Co9150cJrs(3nLdp61$~%vi z&^<`)lh|t{_7V1YS?0JZ%Zyt8+PmzNe=W6rt?MJ34fd5^?kkU~YERI5C!1TQv}F!N z=N+v-ElHWYP;6^n<(2%?{mlI7smXnV^Il77ToRz@Z&LJ|w;KbM#wG>#5z&(mAandIQscYL#1tt0~emHbFxS4Dc$HPgZ_(p_`=72nvq1! zNV=%}%Cd?p38v>#)e>!cuQtVOHN_Xy;FaEXe12tva`b*?Izco1s%E$y_I3>}V~?#H zwzV)vWH-IPNq)RZUdW!mr7F{^{W=Fsy`?t$(uLa1DUMrL%I|yB_Wa7W zpGe()LaRTDiwnWa9q$=P>2=@lwafL30({e2R!JV>?$6DNOVf=Ou;*`$S=aX->n40V z&bm((nw~PWzak%OPnC9xT|;Z^KT4Osud&yMn^r_>n}(az*GKzehrSfsCdQ3y3aw)n zA9qLDy|l9Xs(1aFxjMY2&=F_2yUuX8B~`s#E4E(_O)-~Fv7a+ICu!@2_<}lNgHnIL z*mh*q;Fmd>KC+Ql3cdJEX;M0xG+K6RB3%Lhi@hshZbess>xd?!JJ(tt9&veN*W0>W(`amC$=xr86Vb6+}%4j!_}`l7L|T#eHX(vhIzJPrL9=gOW*j=)iW+;D_F?tfFYW}Y-K~S>yCKn+^mKO z`ZqOxA%b?U*!JJ6hBg;Ezi4~scI_$Q-j6o;hIr(SLI;7qZW}W`V%7S-WOQStBT#W@ ze#0icXew+!KdCBS$nxLS7kj+BF|PkbdC_|1lHcf0@k`{d>A6sTiTrZ;t2sB4J9UfI z_PGV;qjReT{bKK+B$%EX==$RwcYl=bFW&z3dd={imZD;X12JH0OVwo-54oyX9vPwV zQUSIQKD7Pk-`$ip) z$?RiDY|e4s%u!5pvw&f>_wsQPr1KL>Rn3VkMpD0iDa8Kg(9s{;QnV9R2&%N#lM3ph z!%fGgR^?Z;%r|Y8jeJ*rr#|K|^P@u7XrWTgvBnv|1L}amazH)IP{q+NaZbsw#o8a4 zp-OwYAtgcxs*2w0F9c0(QZKE`uef@0aC4#Ki~EaTRrbNsWy-s&ly_4slG_i%&m?`v zJ8m71u>tU`BWlO96z@U8bYbE`?VAO;)pR2%bmGrcCp&KCmbaYL{M_LBMs}X%qJ+$= z2^E*=>3o+T0}&@7wqZL<7tRs2Yl5OH$Mqfny4Ma0efzVXYP?e`m8 zk+SFO%7^i>R!Mr9Gv>QK=`iB+72(5m+$u7#;Omj-Tb0JZv5&=un>o3Cu?5#7Bsa54ZZ#ae=f;(|t3cO(!n)h1d#oLLi{H*AaXs54Hj~6< zv!2v!pByHvDF2zqxI&OBFSBLU&@8pFV1v@}xZ?UM#q}bOJ+8asR$@+3_K8Eyb7StB zDj%A2FfDRN+B)Bb`W=Lj+Bdw(AgaDt_4UR$+lz8nYT6V=Z#2$6jWd&TE34!>kBuM1 z#={236s6^2hE3~yM0h5wAWJUf_r}Ac^IAAAa{P+v$?C|=(YXdqNQvnsAJG9G62U$?sFIV6J*qSA-g_nwL~Es;4`Ds-|` z(B<0wFH)gI+nZ@H59P%w7Hi)yMRV&4%|g7l${+S!Iq#c4FQKG$+^j4s?g>}kx!B?M zI=B8anv)fB_fLLX-TJ%hKISw$a!)l4e=WJYQscWuB^Z;str6xTxnN4tw=@(TwY{cv ztm(MZ827$e>55`ddaqO8;CD05v`y+Nk{I$U^E4Uu7Y+(O!o=DsoAP_#T&R*i7%bq1 z;=}4kubi;#3rG*$@>ELq)$z&1nMcg?Y?HH1>uA%BA~Wv^aQv-Mv_qI17i4;lyd>p) z7Pt%mfrA~cw>l2f?2)@AtD=^8EbM{Bf$wj*V#PXTe{@guLAsrYG^~`ySUFXDu{hGlk<^K_>t=2E) zhNZ~$UNNt^dDqnv=XF@&#klv2w}a&jkGoipea)ZDmMD&meZ?VlsoI2e8mut}h#gk7 z%X_uRCu{|bymOCIl9GJpI%91}&vRs>pB27qe=M&1thl1IRBmTwLbmJE7;}omTpZ%) z7F#<)M@yyWU)WMM1#Ys#r&~JDXx|g~U37hQ*I}upUlN~^(qr+{Xwxf)_i8MAH6tv6 z1i02#fVf{ySN<(L^KY@4Hm%)DZ9cB^oAFGTG0Dqk;`A_qOfola;*PXR=a4bBGf-hR z%da$T-``Vc10B4o97#})L}X`Ym)XUvyt3q1-pViN_>FupTk&JlV42cX9JWI6sx{3B zn;urMhW-gVgxXDB)3xfQPeymIDb`)qU$|f_PQMbBdFzu;K3QAbvAs`f()_(wG0^M0 z%1R3}vw>V^&Yb;=Ji19D`fw^?>rr9S^oa-Yf<9i;h204=gs|xoMakyU6#F@u(G!vy*YA+W43?KejrWBb+tW|}Xf)gZBJNIg>1CF{HDNn^gc+;D zL@N5vhIz(c%n(+G&6%|3jyTVLW2X9&K0{&8()DI`jB1^Cv7_8qEa()`?x*Mz9<=Vt;diC#3 z3T>?OnQ3{62TPvw62TDU8IRm2_A<3Ohe8W3iS1WI2S;QhzYb8`Sik*z6EA_5Mn|{Z zP#$8{iUC9~)&4)RmQmSqCn0j!9G~u^J`>5RFvxpp^Y$dnT)%sMttouEwySe+x6WbG zgmuA7%;^=wr;0m9qY|_Q6(72urQ-a~*P8D6mEDDm^eop5?tSt<7d$O^`7l%L_JeV? zbLpRIMRe|pXjRF%=)GOYDNibp2JDvgijjnhB~^^tPIK)=^}Zy)`PbOdzp9^-w{I(S ztO04YpHtf>O`PspEb^KjwqPdQn2b7c1w1A?e?^#2RrL?|X-p@S->r=v{Xy)wU3m95 z0nRHD#}###@+ei3uG3LUQx?7&k{-0gU3GMZKwLEV4MO|lEjIBs{{Zm6} z?<25G$un+`bS-LlKwtXs?AgXVrFCuHhn} zL|&5+7|*KG1W~ubYr5-QP}BNp({e2B65HAiXJg0B>O$L7{}5_}oQW}xJ3LA1I&~2x zUaaq=Ib?&d0txP+_7USRx+iaaU#Q*N4eM$$+Im{rnxo-#mXX5DzEj1{Mo1m98_FHL z#09i#9jB<0(dSm)cvTRog!csUyd6Hce<3T#X^hX|6^{zFMZ4#NjBh<(-8Dxun6EkC z3jnE%^w@U_w=bh++`fO7nwCUc4=h^|9mpb=ycz$<8S%Pa!X#ljf>%3Fn7gAEW{#~K zera9*o$|Z&71!4ek!>|Kt{Dg>we8hH%Lj#)t7>zFuD;mSEgpI#cZJuUUS?7rxMW~N z?&{TEd$MjEmMGhL4oLKeax(hL)W&^8$Yt>U*N^g9q=v%KGu9Nw@aroSx-p!^* z7K)FQp4;%cb4aYNZBJGAJg>X^W6nJ$m9!!GEK^*)e6+8_Rukh&Jm>|V6TARYwMCPr zi&beq997m;cipG4olw^0S6)t>t!!_S_ZK^hB(@^%Ysxd+2ndPT(a!@MhYP9hyZ_*H zmCr+Mo zOi@-lK1q`==}OtUF69}q(&Q44mkNnU5f7>2>M)clU;g z!bCf>K6%W1Y}v(=6%F;#mac&GW+S6E4?DAMj8M4g`}c*TKUbIy&I8H_iq{A60PLG2 z%oPp_E4p9CJ$*(scO-9ZLE6QKFBUG{cDwpYSC=-~Lz*J*p~r6FO=imy%--()=NqC1?-u>iqw^bzW(m-DPA^=4 zWd773RaAP>`Wq23J(*k(aE_u*GIuHen_DixIhbQPRqVK={ncb3j!)Ha!n&c)3a!5p z%I|Cp5kb6)^+IAYk>;edTEbH_D3o(cZFeR(yN$8F`6x?$7c$bQUmQ#fm&(8R)5}sm zkd2nd{`p|B;!<|TrInV@+l-V%WnPI|?pUe0KA(h=S##&^@R^8Iop2wtlDV?cpBMU6 z)yE8VL68}}U%PoACUplDMX0(;ZEX|q*e zVvHnn0c?MTO3eTFXR0Ut{@A3W-#;X_-CSi{8fxrv7s#YG*2qi}clNLAJDuKNY;DkX zPTrA*gxvjX0#liWpfc^wPI1(|K-y4~I=YUEyEeKox=sRhev#*9hRr-y^4M1whA+kr z?pGUcWtfm9`u^c<+~v69$Mwd%Sovh}A8SpUOwY7L`vs%$IS%#4IFX71dOrHX30&Oc z1?TlBN~-m^qn7&c=pAJPWjPvqw(?KUT{)F-!MN>vh;#MjG?#`4LXF9*vI)3iFZHyI7Xp*KJj>_D>UcV{SmK-;-D5q0*d!Q)L zQh!mh2if2S%lkUVqYENbqAFk1RJ=M1P7=+cI80@(I~8_iviTk;I|xi1Q9>tk+raf3Wnr#au=d)bs1n=wN(Xj3*wW4iY6 z>X{MxGiOn1K{V^?SkcpQV!N|6`I(23n0I}(hm~9}N^d`=wBhw5 zq}i?=oMNquOKne7c9<1nrS*^D-d+MgRWSbInewm;ZHC6UTOZ0>vL(>0Zmieiwn3i7 zn>dFiF$SDk+E;1&(~{HR^fJdWZRzmJnCmM;&bd}_a>*sq(9svA=cO^$x-etL8vDr> zDC;Qk8{@1Wiqc$B=@HIT@X%>0sk2{KIUJ=NUazs;v|F{F1QqwrJ$Uw)G**Er%8JvQ z4BJ1?+kQ7ou1X(R+6`}cX@$K}cWgpuLHYquIze3XiGQT z*A!P)?UsV;Nb{RS$mc7dh@20~(!v}po*`X>P2+lX$Z2q0&0u!7Uq!8uYLZ-HYE@H? zV?bJAmM-u5y!_5yXr=OoN7G!z=`%xacC1ZQI6^Ob4Hg$0ypwgGE}6JO*pTu+z26>R zIx(*Mv$sySA2rU1lBHNYKa!oxulR1hafSJbaHsR! z2eywMRVuean6IBScObQ~{O!iScnx-k_il(NEVtAxHJ3qgCZl!-DqH~o(&+n0Q-H!+ zeF0UX|51{&b$3hEbp|IoA0u3Eb7htDa#IfhBtg@7Lh;aQ6_FSbNTmSa504#E$VTUt zx6Ief2zW=gz1v`3-&R~uB0EwdTfSAd{rZm6x8^rB{9F)MF7N&L$adL_I)YW()JH;JX>S?Vd@P~&NJp*8u0YF()G|RJlI@BkG|sR1 z+kB%_HnKVT`{mi$ZRzjS>e^C6&9figYN!^`e~vafPPaFAe%ttb91>c|mXzGQZ}ks_ z++=dWcwx>{U*-MT5AvpGuyKlsi@fMXtWyuO=l;ps<=OVzg)vzOi|YuB$b#Iob=^DW zZq+0fws(FScYCVLvMb8;JMp%UZS9%n36+jk9xE`VG#+n3$-e#O! zIC$yR@q$t)ZyT1C4ZN<|rnTVH3lKghRR!3q`vrSdXh-z}UPhsNv1qq#(vFfl z*N)E;Z#6|0x|*+)*EY7o(nXLyLrJPkbxx#A51EJ*Pf^zXxA4$t)0kQZUn(>|^baY~ zEgEwWZq2ZtNH)L!+QEZ9Gs5CVew)*IMc3O-t&9P)Iq)O9;XoW z+Mw^sA>k`UyedS|w7b66lm?vM$=^2@?+eG)D6~rzowHJtkBSn3xD2wfRg*p~!1`lCbe6Pq_@#m6(df^B6ezxtPm64NYs=8@nl{v|eJ#abcK7@2 zw>3;xA1|qS`ZE(&2B1OX(Rh1%8M)(O%}7aP)pGOfAt<}^b+(F}-lY&@;MQSlqQkfL ze;r)j72MGfT=Byb8`ArI1u%#Lt*zY9OUjX;l1KjJ&VsjoGSYgXq!AYup3-%$LgP59 zwjM34aS4T%r(~8_WrN>B(V=dwkZkyLiDtxX9`aTu`w0`@OPfZe*>qKjT9{k#{D!hC zrtRW)KW$+w(=qy0^Qd2AX@a)ojjod`)d` z*Lg$c5q7*M%v~^ZgK`L&<1@+}L-fYmyQ8!Z57wmi?`)j1$&}F&eXz9qabE^$9>7xww0ROCs7ZHK+q@E zZhA%tLjxK);+A1#p#09Gs12CU8kQ;sXQjU39fUpuSeg96d|Qj2`P8-Z$C@Oss27eavUG%6cIcc};1o?=N)?wsR%x!Utu(iS8V=5$TaZ<2ddzr^-k>_6+*Ssz zoGY}Yyi;4)LB3RS(MUZe$nxe0RU@LrFTXD`N?wy4^T(*|H&>Q!Ntvl)Ra!sq29X25 zz3+{BkkFzx1~1prSfK=a>B1v@7-Und$sa$>Co$;mmZZ>?g0ytr1w2mc~d-~ zH;5OMKGPN(oh#H%nQPoR`#_ye`k$uogq$aj9fo`N9e4{UBfq~jI2ej!!Nf@IX6i~r z#%{lTC9Su3d&-uI;j5aZ=_7Ye*`s*ftYEVQ&cDhm^QL{Ymc%Xr602xXAshKDqs~tu zdC z@Q_%0^};-*wd7)!sKMERi@t2Q`?uodJ+m|^BX?R}waV^t1xhb->O&oJoozWPJujpK zlI@WEAVj^5>a6@qqGpj#(U_KxY28gd{_o*(+9F~vb&p)Y+rW|Jzv4K5k3|mK!!9M&xYDsh1JaK-9*HAtk!Y5 z;@#Y+jGBD8)|_!aLu_Io`c{o2P(Y_mn0f?!9J2{Q3nNu;+HxFB^gg zR;qDRp20+As#t2>8>@dAX#qM31gBc>-Ss|U1K|SXU7;zYPhN4cK;IsB!xtk3>BtYe z4BcWE)naIfENpJ32edPj0Me2p>(lBkc8tym9hwu+rTKv)Sgf;JT|R=wrTQ74sADmW zCp3n1jCXAJ5hQp2YO)W$us{&H_J*b|OlJR(?=V9ttyM*E(ubwu3C~lvyt2TvsqGuE#94{1mk-(31u$E}7`G{165Ri5IOdT77S(iDA=c*7V7Yu5;~ zLk`&cbp^d(%I{8__G`3IW%^ChkwYqLy(VKZYC&y1$q(M>G)kQ}deYDqDC=R3ZL}&} zcM~k`eot=9tz5tvK6>cEPVONFZNFja^k^Zo$Yq9ftM}qlHc6kzl>V z^?VE|H)WDriJD1|V6tRZrEzA=2dg^Xo@st!Rpp>~pgYRY+`E)uex=a8qt<)1eeYa= z%5{VIw573ZTH2?HkwBCOWg{OKULLvNs~j!~r{3?A)xP02o2}ecrs?DA6g$KSDoz;lz_kb%D#RaSBtLsJT4Z*EGAqF;#CZ zlE?Yhbp738Tf0_as$3pt{riJW{Yj=*3N4fEm(`A?$SQZF-_|bE^tUGeB*<&3d2z=@ zsa}Q793uJ81!%T%H(fB(Yio^yIO5&XIEql=^Z{#a9(OZF9l^8n!ofv7nD9n z9{X&!d^MuGmELsFiP%XJKWInupxh>QEmo!s%+70ZdoD%A4oWRqTd&IoDgsq`l_Rgj z;RWqq)63ewW)mUl9?zXWzOy25ipHBwXsjGW6iGS*oSo|+dHDw1$%?qnK20$j<(S5Kz;Ia&g+#c;m0p-i8()S_e#FGCbP z`_U1Tyvt`pr@8!r05P{tIPZKOD<7l@7sQ7T?*VK*I(=e?;rWjD%*x!T37v$el>Jkl ze7;%usWVSi6A*O~k=}%}i?nZgCmY^AU)a7is&IS%tjKl8G6v^YK}n3EpR={ z-9_1zEtUq|f&Btqn6RQX{P$^ISuHN(&os?9^6osCwRyjt3{)XWFJ z&LYhHUaCt8&%3N= z_xE&n3+w4P-dhn}-}RKWY}rVuOxAcZ+U_H^y^+&B8gatfE^*8sNI+$H6d@9HM&A8G z!3CSfwk*`ex;~s_2HIGgcJv#y_5GeEb?Gjd{jWKqPQ&F;d-5{`y&P}WI z2@6?`2H$SKr;Z)gXwG!HHTYcGQzmLBbW!?bf&gX#5!+U&FPY1yZY zcWahpzcBRksAF9>fHU%;Q^iBA8e3V$-_b0|f-t4%O0LB{SyI-^XoItkMHS8S~!lgR6HD>X^KiYvtcJ|J@W^L4{Fc3?7iz_y6>anECC~& z#*^AKUsjqi2OUT#*xNYeP1DXJ^QZ0FAt~vZ7T2%OFCD4f)8l5u+&hO|58tpDdpuvX z@;A@dSo4*?tb&+jK;t7N6vZc(5AJc#Kh@OiVda>|IY&l(QH8w)*Ax*gMJH^bwob)x zt-hjdqx{45^7r$c?}NJ*c1c<=JQD8s`>p(tk!!JK234$mhoy~45;v#bGKqlxQGWy+zv=xFB+XLl{Ny+z&^ zY8}?W6@i+2qLd%5@4BKhwTmp*PIO$J1C}z2iMq5(CK~j$o+Xt1m?70=(J`$q!juO=ZzZ345~( zmS)oj28Y*QoElpmCt&w&M*0o~CxYn~Of%t%y1nT^Fmk+?(w9`~~vBGS`qe z#n3ee4(LT`-7%GB_dHOUa;8*Qy}dECO|eX7K5}u89U}0jPCr`oTo7=n@ALTJHFsZ) zgoMDVi;6q4LGnQ)=3MzYbXa>a@`)!ql1#@MQWl##(rYhfwuKJiXAV%awF|RRJ*Cdk zT;ib{^AjTCt5{9cTG=1Yj!9hR{A4KMGMUlK?_wP`t+NH zBrte1xV?{H-mgjsI^z%2JCbhpjk&Q(eW@ZnvE$CRxcyqoZnJlA5;8c=SubqPXf->g z^Ov{;F(by7YExHi2QSip7DdOa)$Q$C9$TWK@ zo9~R@w}?J_@EL1YxU@6TH4=mN#;zzO>Y&EB-mlXl(G9leYi_XF*u5^&v&AE?P~WVo zXpgPp&ZD8#Cp5if-h)eGD{^#CmgRtI?Bk7!=s?!J4WYJbB&OxRIlI3RO_VbjrG=I( zYfIk~y8Xh-r#1SAVoW_TA89Q4nl4QZH;gpKxQDK_e1&fC5Y7M)2!T$%7@P5sGWGYN z!AaiKAjWv_hRs!gz(u}-H`k1`Z)^h<>io|4p3uTC}wy4Uq9o;?}I zQewpSU~j$t*=>-Z;Nh9~3(Ay{Ul^SAnyI|_W~Dz;5z)tK{981N-d~XA9iv~bn4seH zo0-6U`eD?yual2*xSDuPAXN6II}ZTvYyx+uA`zTQ%f_5}L%;XUfeQ0(vF%F@sTQ-F zq{JgjchBW2?IT7L-l0uM3WF4rxqSOVv(rfJhNXJ;-%i5kl8 z5g+}xin*#X?3CGFVuJ#y1G{5wH3>cM^M|$5#+8CVgM>+u!l;EjH>IYu+w_jLZW^W&ugEq6j%=nq?JLXdl zy58q4x45i&%6*7`p zT5}=eV4MkXk5aUh`zJ`|l_jnYNs{|)`R3BnLOMwl7|1Ed%_K8|&g zONl_E(1evdgwcR196W%J3{;w9oZT{K0dv_WoKrYIm0}7+keb$~?)1mm2O3}pP)!XY z-UnYIA7aj=eWQvdmf>gmrEsvU#sG=cOLF)6lnu(pS(Ud;G5NjknwOi02%ica?6FbF z4+o{Hm-z|ZFURy$ba<;Yx>tv4ilv?MS3zv=wGHjHc3?2{FP;uk)*c*k0((G~bQ64vXz~e?@e%y(P zmcACue7;(c$I_pzMfhKn;M<0ZRpl-D6%QF)PT3?Os8t1Bq+!Ys<_gpJ=XOIzzz7=x zoG@6dExDxYc=u2OvL4P-oWGzdRU<9o9-oDZ<68xP-OREANd$yWDJ@W9E(X|tI4)%9 zS1G~}$Pb|osP^6W7COML0fU^K#nWppvCbd6L_s}jD}LMX!$g6l7-T(vU-Dbb&R4|; z!)Xv8^-}w=Zcus)J^gJRwm^l! zoVLY)S=nxnC<%<8Flk|YNELkOo3nCwFuvrzL=ruGd7*DZX8oZ; z#ku3cv85^Q1EE&&J7_gh`UM<=(PIju`vi(dk!43hTb*uTfV_xfP=gAs!i_lgKqh}V z3HdG9^c?aLqK^Lgt3(Tf6#WOvz_tRpI_%C69GmF4(j_pY2L0mv-q%w!X62Qr8#Fs4 z#0;b=1Kp)2340`Wv%1qSKd?4B5YFVCtgRMFNBxw7yUokcG?LE{Ih4P0kGZ+l@(~jO z`b=yOvRF)2wD|us-FbE5IMjGu!!1Sb~ja6-0q#QRWfk^Qb_YHBWeIm-pKfzIzZ@%rouPgPk zfeD?Pq}}InJ!y+pv>C+CQ5m0(>DF928j%q4o_wAN3Uvk~p)YU%u_@Xb2k(Ka(v+Kg z0eR2<#*{_)0xm%xljUrrR__Zz@aL)V&Mjt@uB3OoL}U?j)XOwmQ*g)IVtSSn(6zVs z_-(21#+|?k3Sg)ZiJaC9-=Qx_T{wRsQh$`?F*>@UU%ZjPJ;N$>c?+Cay6L4KZ)*6` zFqsIMO#bJjkelQ?$eX(RRXMhH-Hnc#mCS3(SDtA=Z#(3E-S%0(ueYQRWS=yp67V%3?xxTzs3BsBr_N>`3nmD*yO`M#dp14sEl9 ztge%a8@DhZxi)%NRC+~|54bmO-rT=-4%ja9Q_~!(>)epXhJQqgL8EzScG8)%`$Z`d z&U)!!2Qwz20HA0e90=r|iwS3(E37|wYgU!JZzWe?=1G4gVh zUfOvbt|vN<(U@QM7Kv78cz6f%8DLz>q6-{$7O?T4=rQDL#=BJoZKU_7bc#s0V({ie zA~trEB;V!5D4q**Mn3ov+?EX^G)aI7##O=~k!^}2lnews0|~(!8Tdd6M{S3@#IcAD z#N^Fl4qH>PYOSJwq>M$bolU@;cgOE3Om)tDx_dFQ9;W)B=Jh&scb`YM_@bnM2oXzO zZdKtQ*fvHqQqG7h1sZ3fFh0S!_l3EFck<4cQ)gv^-CmXtrSgZ+>8%3EuBWqv4UQx* zZ{U6e%#7&+(~56cnj_VV+zAq;nx?rNh;iHpt(pd;X{4G-&iSqtoYe_Bb6Ko+6%u+g zUWBd~aRgdE3w?1qXUM9#Dv~4!izw(Ytus*ZRrg7S^_GxPRaX8mOp?{ODH7BD@FP(& zopCp*@37)(N~d3_GSvL=ej>VBWR%t*)QKJ_AZAoWTpkmV_=wFcrCs2eOoXv8Yh$aq zM7DJ3ZLxI*ytdNEod34~g(pq2gNa9M6)h(#C({X4ufdw)<9?=$AS%k<_=--$zsy1qKiZH`elgu^@IyF{`Sews z-CB$khN%J8M!)g2x-ytCFNLh8GHMA?|Wj_8q1GjVWtp2(_mVR z-f$NZe3>1Iu3T zTW^F*W~uHi?#Dc4{kUq<8)L3*Qz(m!^BVw(rwlU}5ibdN$526YfE||!Z@gnV-vU#_ z5ZnsYL7&|?4ttRuT|eRqW2h`r49g7o+_qU1Lq~8T5<)=qUJxFJ$RN+W4r5qEvBYqx zG*#AUc7ZsTTl+K*V#-Mkr}3INo#kG=rYiiwsk% zY?_vQ(V%y6hlsA18i^pr_)SViR156~?_;Ko0HicyT7j2a`o%!&^|G=lZgV=b*d6g* z(Y<)mTztHrGSY__oTH2cNMQw*!k1NAj1(UvatzAA+(R}{nysnq4dES2Hf)o^k9@eo zecbd|^EN@e$o^en^aBgcT=(&$B!15QC!VtzOaSa>5?Dul40b-WtTH8aFU2vI!-5fw z^3U0~T|eWwh?6rxY1=minFqGHKnVw_hbmVR!Qj&{nj2P#;6OX9j;6tuBbu^IwWcC7 zhe_CtajtDhEGxXc<^pM?n8aIJqx^>Zyec%UtpX7KGSyAEyU1NBi-BFi02k&ZEN^g> zfpZWEV?H7vi`l==z3dGkz_>+dOKu;wH$@1Pc|?ONi;sJAmk5SC1<)_S`}i|=&e=#c z6UkoWeje|b3V;(#S+Qk)9uv-=cm_mV{!vu=hwJA=7F$}|mpiwl=F~Ha3&u+T;_t4) zk!akdw;M$^Y@SNG2L4g@j<>X?1k(RFb#V&_2Py4fTIEnl13*V$+byttLOM%j$b^9Y zAU{3M_z46@P?$%GxN9th^er2x4CWhgJazXZPu*R}eb3UTsmz=2At!FhSpmI|r5h5V zS@wBTAaRhmN{Mqcg1lf?Z!DdYny$0#SAU0-8lPB4WUk)}%n?n7ceu-4)3r?yfI65Y zqFxbIR|tWnMBGR?B?i-oV?=aQlaMV?Due7b=Rmh;yj~d_j_GBT&$|fl zd#_pdNj1H{Kr8XVV1(iRMUXn_DeGl5A4&KUH$xr?9sfxEzG@Y#sTu1aN z0x6*E?O;ej^S0Nxl!wx2qti#q2~;<<;3_ zs0^S008LFI;de}Cfj&hHgpvsZ+KuGL@J=Kwpe|lpnK|GkU}KfodCk5G#2&{1g(`h1 zmX~N23p7H769sHw3iK6|FVIykQKDk0#N!qfetsSwnBf5laXVV~+BzoZ@|0m(3pLsXioKcoS{7U-drK3CnDw`^{RSJF@|LpG(^1zFotbz|4ws-D>zlU zn4U+7bW>&k<)Y4%o1mtgSp;Lz2`qer+FPi2h{2E^(N!{#i1T+GmX@4@-#pqoP;-f^!>c&cCY z8yQUOZ9sHoc@Hdo(p|4JvB4v`J?)X)f;kt!=hmIVQ8=@gUVfCMTRHDv#`#tO!0zod zQ5q4Yq2d1gY1AtybFpP7aS-SBZqwPT7z~vth25COuTj3oWYy>^6=iD$a5bP05{6@+ z2(*IMbHJ#$8A+&Pz#-Xl&@CM9Yw7UY6N(EV{X%U{3SKuky`goi`q1=M9V=?_Gcc0YW142pHwZ4P3 zG>BKNJj74$Vzb*#5RKHlX+%djUO+t~$6#uRo6%CSLXbuOCGK(-{>Q(JL~!F9{zuZ+ zd-HX6*4VdcxL9-$htEY*=>Y3*1^cyj^A3O1geb!iIlmw|7WE3n2pS~%76`+njBI4` z+EMIw!vAoP7SppSh93^6=X_Mo2ejFv$-qKqa@ZuAk1tvs2GqcTv6I3eb{*{ee|rlj zq>UT4YMn967ib~i!hiCX`7C=GD$D{V(CYsIS1?mDzU#dLgTe_|kTrUR5sfff<#Jq$ z9V}S0(Pg%lYi;YGZxTj-s662&i&9(uvY!A1h=TSd6({%b4y<*FgsO@X0J4BL&A?4H zzxIkZMfu>D;^FQ;2@?#i(;Q7iUTopuhb|wUcbx-wL=8Q>l`nM4eg+5=OM z^uEqL!w!1Nlns0d=5ed?lO4!0mxh~OtFN!D-D{HGqRyJawkgyUbXt;$g?1l3N@WV= z5+DexoB8+=Aqe{8^k(#g0EfyMkINFW&<9vtlesFCGF^e+0|^^mpL^V+9R9B0~^* zS;jX&B-k4)Bwqnac<3l{9Qa2Oc>-F70tfAU*Ia%|tVtcyShPCcw7GET3jrdBSp*&C z0^Esb6X-T>Exys?1;o#&0pNxVkPpBHqaT?YjEP$dSCEXk__ryvCQ8wBVi0{npBSu(x*schR@hfDX5kSv3AAo-tV7u;~K3Ks2NIH_+8b_m_H$pnCf-pd!K~N?HF5RFQ|pzB9%^0)zNy z+_7lJ4JYKAUR9Buh<+kv2~G-0`XahW{Xe(?!gVRZ1OfwP88!W12b44nJ}uLsfJDAp^2QeB93n8OQ^ywxVo% zYANm4oKPZL!mtA7Cd(5~fc?pd7@G}3-OLeyT7kq^n7R2Q^#`yZ(R|9+U6QM>v&rXP z+O>&|AznB;63YgOxw`321RKfpxL8(;Qa}*tqH2tEf0hM;p^OT2(8Kjxw%rcnB-q6lC`jUYB&N4!yv>T|~k+3w#=r zImT?yhf5HZZgIQ@XF$D@sq{b#cPi--bR=V@<@*4~?`Sj3Gcz#D^f4{&WmAljW0+9o z3=tbRQBF`D>Lv-4&H&3kCiQTa0L(a3c zO_8oOO!@Fe8h|lC@dz?ltfID|Sb^1HMu-crGMT(8TFNJq7#2M1mLkT+MJ{I6-^a2# zGdHQxWPIicS zh1ZJcT%Q??T2!oBMF|ApPnsnYq`2tNqJMTX6&9f;`)kD&{#A@EyVZwrR;O=^lH0ev zDyY!?pi+WM4m4pK9iAcqJ9Zl$Wv337--=NX;sGqysrQ<#xS5CaKT%kNpv=qsC0|&| zIE#H1hCR?CV7)U=31@*1L(!&k0*v%c3_oE22lsWH@sG?utr?lhvVXwj4*Rya<7|oS z06X;QJV_A@+dv+2BRvzW8Aemw5^MX(>@@Z0g@F*p5VIO9vb|le5iWO9McMHqayuJ0 zB3paHodr3d-5W|0l85^VRVGaL65;jT@|S%*!;Ok$1I{m_Z}NwUKZW@OcYT03-w%$1 zj!!% zq}gWT?GOw}HD$dhYVhM9#5FhyG@(d{3n(Ai09d2)E9SEWw6VpPQ#G$GPj34F;&QL- za>0$4Nf@MIW-xX}&OH4mX2st4jUnL6%^Qj<8r>ml_z9>9RVS1TeES5_@VJoW0suN8 zr1rUonSC2@qg$1}WWZ-;&{hN-P5SgJ_eNK1z&rg${{=wbaQVeg5j-6GUun(gbih- zd=WmDCu=(;e7D@Yzwf`wW=Pr2x2=GE3Q+Ux5HH+0o`_io>0cR`X+Hi{+g^QD;M<=( zZKS}lHc|>una$bJNCP5`$vUJ8mQPhRMvPh5n>0fVP?53&IhfXSVowr~BhvLWTRST{ zy*#EDesypW@)>JKbGB9Oi~g;9hJlDC&ib@mprHUZ>i`a(H2GkfCN*PiCEKlQiG7zO zxyi|mn*(_2<2^*ik6CjEgbmgush3wyJYRY&HZ^D?56seT+CV)dy+bX3U)*Q6b=_gg zih5KDZ2A+v<45!j9~9H4<1I`*bZa523`hC)as@>3usLyHX$V^4RYwwvNUozO9ivuM z%_GagyI6@$rshon?Bs}wbdR4MWTGR_I<(?RzjQUGoZO(x+Qpt6>ke0LO*9em1FwJE z|CYe+`#+W1I=;r8R~c!a=Y2bkPPM|GVAj+a1pJXz^F(JDGIOHsd~YsWw}%N{TDA3^ z{U-MQ^bUqzr<>@tAvMFBqRk`#p$K5n{Q-{SvY_p7A%<}*fUq7DbSPGlg{BHK#OCgt zuFoRExA1+!dd&xnFTvZXK*E`qNNS@(+oPa#3-2sa36cq1L034?(vPZ2-!1CV)N^2Z z_XiP4GoG-$Subp}uf;8=uUMF7#WLZ`b{4AVGpwtacj!xBXw zi6|teu-*0;wk7`b|F&)K>)wMGFe=3lI^l0JQ0I5p^;3(_?$Eg$GVk)cYo+xMFhv&k zlBZUt=99W2j5l@eLAL)?Wx=}D0FI#Sk7!r}nEX9Cx!*XUDMZRMYe6HO=s?lfND>51 zHZ{jDjAxUrfNZcv++UPXjp*tjcrfho^+i2)Y>arxhOQN!!_u@SO@M0xPqsqb(6zT1 z%LSdKpJoCqK`;UhIfQyPzyoGQYS5BBi4L)E$fxZ}d~iAcTO;;VBEdwpS%nR&Bk3ZN zr%~O_*fDULT!iVm_?&nPb~*$vTID8C^oIg|(8{l@mp_242o3=VVtOI#z`(rmS)~oo z_aUv~3sxwg3j^O|Ww&P}ps1NpTEzas!+baNiQ6*GG7W8=S{-JbJr}Cq#~6jBfg#WM zP&J+RVbSbv@%vVlPsd>oCUd%H%p`L>CGv-y{iyP`f8NIi7O6G{(?Gnk;YC=Pc`@l1`wEw=5TR0mwvPle&w&-3Dx#WFYy_J4CA;h$pV>-N@a4x*ZB{- zUUOp8nzL9G*IheLTZ3Ps@TbbhqpHz(8>@GK5`Of`6u4BXQ_kH)r-1VFp8VRI=f_BF zm13;G_WRL(5N_X2?2bt|O9MUrB$Z>aHtp7agT!)n-T?g?a3~QX7~|p%2;r%SWGWVg z^6IQDzMZV1&UeN09fL)$Tl#tW?SB7DR`&jsZO2%IGF zHK7kSQfQ1V{Dth{eEEhb?Q=i1moOE%7w{6c5tn}k4&au%JOqr2;V}XRrhR&OB->+^ zHmY;ouwfSh%U;2qA2-edFuPrVCVi-81=5lQQPAD%1D>usegflINAjL5n&64b^XyJk zEio1Jz79K37{f;xC_vw$mvQ%0I1ylv)bsF+=#)G6pAcCNVJC@Julb&}P-9)40p*vO z;DJ(ziYfAc_{ltPn)DpY(Gcf>*Rz?}qJn87Xp0C)z@JB)5G?&VXFt@!YHWg# zWnu;IwZhDi6F5d~nvJ!I{rY(%YT|Z|i5(DX3!cglS zrW<&MKi?Z0{^U3ybO04D0LI56o+%&v6hk~u*2r2%u*Xv994HfGRr&oH*G^Of7qwVg z-Mdc1`ClgDOV2AuEIacu1|L6-n4>m38xh8e78FHw0`3VrPz;=A{|7s&i9r2wf8!?c z*7~hNf!(Y$d7LQF#&lCrT5(>YqJbF_WgQO5w!<54@WJ6BK8X2r3MaN{he8-7nO|+5f`|(&Pm@N=_#kQv>JSvMKe+?N z3wMPyW}#!Sx>!K>4u4dtQTZ1J<9u;j_FG9AX4>2mHc3?`-oXAy6}G$O=9TLo8c)A5 zjDnmk=0{2(80J#IheV1q9mC~!hnu|JpVTdm=*Gkm_UCx`-y@2u!obp65Swx7oVt=s z*dAlzV((;ZE)-}GVo}&%J2%DY50wwi*A02rGX-)q;y{j<;z3QvA@{N2?lC)yvOvly zt<&fXn}5+OnnLouJ$E6ONyGj6eR(DCW)nQJX2m{YWQ=Ary@RN;C#s1vcQI>`j8&~4 z4$bhmx-*}x!8HrzPXBPXop-X~Ok`X-g97l~OKguN{(b0-a0v!C1I0m5oa?g)x9XrH znQ=%*VU1$4?1;Aqy5Zw{ajch9Zo(~r_WxYkhrs`B)d9r(uYVj-)k^OESQ30ZnoHUbxTALpdG?_i*q> zJRJN}wzzV(3W(f|sD4U-LBY#7Yc;kA?<$PJ_hRC$`!2SMG3IAL`cJ9f4X!-^o&_`m2J5h_sMg|fjJ zOLf5L==5LIgWp8P63J9WyGk)LdhGMmd+NZTH58Z6s&IIm=LFo(0ZU}L8KdT%H? zvbFy&5O6rgqcEC4L=1$i_YGdAfp;$=yoM>*WDC)0WS_hWXJdlk?!9UFs1r}ASg?z& zquVyT&X_x>c2Fz*E>#$mpz*tyA$M2N9tsXiLs=Ox?+W;KmTJ5pKZP|oo!3!}*zV}I z_a#8D4%wlS+H)nM&QA+Vch$3u%%Z!Ik14p>Il|>l{s)Sx)=HJjW%f%rq=G-|_KDiF zydiXKdBfkBQ}K_#t?4aeoMHHHSj52aoFtQ<$}UV#Vg?FZ^D#)a96jpMlPA!uIw5b^ zcsItqb1l%u$crc~r%67S3nmmGV5$h-3%olq2I&jIjNDoZCO(48Yq#;(F2_jL*s(>HV6%=ic?Oz;T#TIOu{e;Y-p#q_$D0DnLhiYp`TTaWHP_OzoAQd_ zb#&|tYrF^rK&4Hu|73NRp6R_{Hn-KOlk(WQw@imm91x9pq#MtpN^WhhV&ykX&W9R7 z!f8T@bTHgQjQ0YED1(7xu;{L0e0sU`4mw%x)m(flvRTm+71Mj)*NPF^9=aae427mG zTiDbRo0KoTcksYpC7;7I?~cA3anr_Mu_tfu_As+z1^W|if+uf3RnSP)7{C{!vG+1^ zU&NI5O{5$D(5Y3J$5f+o=-skhK2+J{{yT}9YNmzqT}>ljUyQO?isg@ETAY<%sA)(% z`^5#`jYrFs3oG%6Ff2brgAa-P>x-MquV)oE2WApz?X4 zU>ZLJ_r}ZMb^kAE?*bNOo%at92Srm3N`;0pn5SCH(cDB67|Jbmt!1C>Y1vX|Y}MG- z11PJ212Y&EnkkywqLEPBmQU-WW4Q*%VL(tcz^N<|1%~se2*WVI%rGywTXPFRVYvGx2PE<8ELEUrm7k55s3VI+>HPHm=WTrO~NCAUY?-J%M&{GUtd>J^)yX4N0JXtolK@ztcPA; zR@hS(qY4SHd6DCGWqsUsy>2o;4KXK-;8hW7{YPtI8z0U9Q)eJm8CyU zrqEo{SFLd-X&2gqJ7xx40mh@AG=1j`R-`|@Hpl!LXgF#f{UB`NAfY(bZVKA^A- zhPa-~??XwL6i-yzNvM5!Wk)8h2GCXlsV&Ted;mR%6L?$byj zJI6@43<4vZrAIz}C$kH^@XT2@PNGAV8;l#WxK1p@k-1>WH(rpzpv(cND&xzGqi(+; zVr<%_ZS1uDT4u%`#aEuBT=d!0(7BXYrz^*Ye~JT^p|M#|11OZXth@g@Mq_XA2t58xxn*rIf>xsVQKGK zQ+k$pBkIDZL`j{R=J3hLC?{b*nOX=Qcg-#Lq>OCU-fA%eVI0rjx`Re4Ba*L_`ka!n z>sW)IrbAerloXs-&&1mIeCEShfsBsmaCT~EmY61q)z_b0ckUZ$wJRfOvziSS&|oPG z2#{e>u66&EI-MO3tUP1ie8}ljWXZdr+3j3MMD?D=nn|3zRJ*1&)w(RwSM=S8S(w8T zlk8BuCmK9#t_+b3X*WxpiVUifYoDcjx$!qiJzb;48g$@S$@Oatu3!MI!R9Jt=83EV z2Nf4LA;s2~58?$Xtp(;fN|AY4eyCRlmS;OJW~Yf%uP)6pk3m;4OT^zm0x+XMERJISMmjvYM~KIuAej< z%_t0jLR>GQ(=AKgnU$;=cv8Zz)F-dyWFF-!^PZ_#nHT9LnZyh~83vYM?aTLQCM5_Lj9VZAH6{GxKtQ>1z+3 z7#NOM3hXgv0ERuzc=J!ztESyj9t=7miRoKcm8v4!8Xy-LiFGt2HYDfgd9?PR9KLz3`%Kwx09m*Un2 zPy6hl$Pk^2qPbgf1v+J)?xgvf3gD|KzU8 zLKac?IXl2Wzg?$-XWK4;+lf_KMjm7q)kff%D^YORoM73U;P^(&?%k|c zENbT~F^kpCMSMeG&8S4IHpEAEObblCl@&ekg&)!+!#Sz5V!@(ClMbfLZA-<|rbG0O z0Zby0Lsv$A7pLy*?(fUWZ(-<%!=icm6vbr6`*n47?K0u;va*5WQC$#6Vh#iohk`)M=a4v-N+3#8%SP1#& z{dmQs1a6v%P7dQYF5P)06D1F6)qgrw3-DkiB}P@*qJ)7L5c{sw4XiXU7E$-7bT#Pe zRb48>5iJ|~(cG>bI^1o`oZVQ{`sa?tV?j_Aq+bbopB0g^T`3QHg%iaC=nUpMYy~Ov z6@&j(&u24WBtB0_N=YfKasQSSjUDz9z|U!iuh!=++TrvM+u<*F*@|H>UahiB!+&8h z&TcRQ51iM!{{Uk>l{rAU&@LA?*razrb82M{(#Vk|ueVq4R~8>OFSD-hSbW4-6DjQ) zg>C3s%LWMn>zY<7Tr*QIU8&~77q)D-Ee8~Wm6erEEQUM^oYc6qZi1>@U5>@iix2U( z<63O8K;db2hpIqSnxY@p6HidE!n`4s+$l?2%u=^mR_RXUpA17N3Bvb*@~z$(gy4_q z))6%i3p!k=c|d5gz&LcHxr+kklv|-&#C(gH-z;u;Pwrg!t+~BgoFe(BV`^AfFB=Fn z-LJOt-EiUYiHY;P!@=`&pWa#~1`dE=$RD7a+VSP^4)JA|nIt*`lW`&rkmbh9EzG>U zbSqo;eNAJnG*So)s1Jr@Kt(ffCQm_uQ^!`F9%GK20ke#fN!nuxmR|>Yx2!DdSlQgg zIWMx7zyP{V6N98jVyeDsPv|?f(RQo4X;j-N=zgU1xe^JiiSB%eu41qGgZf@c-%Mry z%mmKiAnm1-B-GVVklj{nByW3|Z>% zq!BR(XNYZOs&EHaiWjYM=d%&gkgf#1QbMb+V(QD!mB#S?^U-qd0nM&^(!#(dOavq@ z5xSaH7!1syJ_JjQQms#Q~oyx9p63wo9{z?iJ@CcO0ott&3B2Z;YKP z7yg`Gv|pa$jGA(Cc3uu4dasBCOh$^tTmlsQx5?2CglX;bnq6nYMvHdOwDbGT#>G=+#jKvCkeDM$b;nK1+nb^;v-vCD&nemAmjTRl zecDl`W}AhaMI<7ux0gz+huP|zU!fyaYyV6&H}M^N2nG$i-hp-~!r>f^*Y_>XxBohu z5?!7I+~@LV(h+Cx-#-^f;J77S$E`yb`wEP6y`j4o$h*=wExAN)PM<=ZXA)I490sR9 z+6}zF(F0SEt(h!@@XkNC&LB(r`ls#A!BT5Krm8D>u!X@N#GL4|!vgRqc!ZPXJtB{j z)$iTrv~A@zt+Tg_?w#!N_FkM;P1z94>|h2Eh>Aiad;CB<4ILw;oqYtC4nM=qkt|TP# zzCHQ2Zz&T7R|%ua6eAwlc6x?vmWMsfUxUX$>-t^b;<}Ylwg)wq0n3z=vx4-`<6vQs zi5ij&a#E0Y%k}ng(T=IgkK)n?o)*J@9(RDR{GP;gb#(y~>c{Dd;hEYc7v50Xi&Zkv zy4O_cVj=_0&yCr7e&y=o%6grBWm3=8k6Ce3X8%Bzn(I;AXYMJk7!BCIYS(USdi z9P3{r71y|)a@Kr=3spCw`(KwJ@pOVtg~wI8YfN$i%IE0rkY*{9r(zYxRLW}@?4{c5z^pj7@$ajO}{x-`>CV8}V)W}R{=j(h@j<=<`Bhi))RhhBimPMnv z0JjTS6gdUC$q1kOH73J0+P~GNrBn5Kl$cMUv0b3ca(CW~(OA&zC%09|T&Hp`PtlyI zUR~W)(w>m74uF>p3PhA#0^*`05T4!fsoC{A7v;NtBda`99m3iJYOo1hy5TwNMmlRo zkxoLX9r#-2x-Ls?+S=UGTHpV#aej@e!Y(Cv7@gz5@>IBE;|0Gm=Th4zaVcZONk#-P zQukBbd-9uP-ji-ud254$(yD>^Cz}pi{#Cj(pn5bWk@r?fx|HiJjSBpavW}+}@5Pn2 z{!$ccvA`f@BqD>L#YoWTIqLiw5H)DdbZa*pKkn>l7{@Bm+zpRV=qSaV@6#?H*G+^e z<{=~t5-ei2=EcJ-kJ6<#Z7=!0GVH?3b5{e7V(ERJ7!6~L1;G_J_nudNtk+aVtlzkh z?LiFk*oB{qC){fN4%E2e9$|Q%A>-Q4C>>`E-3+WP6qKd`woaw`0VGSYt@t5jp{U-G za+({Xesli|2?M|7gHfEGl1J`#IY_WiruJ>r4Qv=QWb-Y{~aax3r?z z>@g2~a!!7eJsr?F8=Y4PsA_G7GWFY+f&XU@B|roqm{Nwtg783MA=e0HPzp7Gy<89W0UosK7ZoTH(nG(m! zrgJVXSX{_hhGds>QjYs&Y}p)PsBxy+^^MAYBPl24Ak1`EQPXu~_GW|kNnxQ?vb_4lP_2_bx-avMR%?N+#U&fj2ZP{Jw z5y7|^AxL)+!t~GdDAPyi%2U}ok43(tD>8AoA;ftq3z#JSpOG&lple#Rl*`g5ggZt#@I+1<0Njw@qSu@2J!neMxf^Y zSRCh)TR1fb`;$|f)h%c$R#j=8KlM0!P8jXEtMryl&qac%KB;)fHafxfL&R20YP0X0 zT=Tx?Ddp(A*R`(era^{~iR-COwI!H}stir1YqU|FiahzQlwBvAK0=|f_+3QTXI2+K zZB+AT$a@On^OSQWQVt!>(9&|_&szTkewrOJpx92-sCp-2M@+V$eoJktYt_k7ElpC( zS`Gul7bRR=Q{2->U?&;OxZr6fhdzy}e|2C-sXYP2$oOt-{%j`jq^Oeo)ZrS6qWz_5 z3uN27eusM&Z^PwGf0H3#@p`*yl z$02(Y=k7D)l{2L1$6hzV=6p3UuR- z!+EcVuN&l5^M}X&@m2OZ!p#T#xNYJ#fL&wt z;1s5=`2;P_Bz|qrM~ISy&?CO%(ptlEKWs7Ov+eL3kT{wAJZcfa!Ap19WYCZ4x*AO9b|$n>*!!jJB_|MFBHfBv3=_U|6E z{PXv8DWCuU_rZpx;9y6rOn?MVhRVp*mi;9btPJiUt{VEkpj5DmEllx&4RPX^{Y}yB z#SC#VnxJ_(JAs6E1-#e-I9GlyE?3yWvs{vwC3rz1E{ZcLNZ`1&E(LE9F^ytM$F%sv z__NIPvxOes6=zc3`A_3W|3u2bQFcc&jFnWdeACVjDKQtuebp2>c=$86s-ya zeYT(+nVwn6F`!$XUmbjF;hkuMY3HC#M+n9H9He=K@XD_Ds57vQn_q+(%U z1)=|9@rYwe@w?(i{$6y^?`GQH!f!1^gHlNk2e-<*)oU>pIh?5=^hMeJkA=dIk4uQ$ z-uLb*u*YZo`{mdrdRVnsJK}O)h5UMX@n02rF30cgAu-8gIVmf7e(28nzde2hd7?60 z4hxLQ`)RQpOK};57EefdVqC@@E0YaA2I29p`izmr$=$@?i5)J}jO30(((*3pP_n*h?2*#^vJZ_F)Iiqf3q_io?!R+K$Rc z?@`*CUQYU*%G8GH$PXX@9T0%!%-OJ>Rsk0PF_+e~FjFuhSc@nJ zdDJCvR0E1cd_iq}j6wj1={&Laf+BbZLB!#OdIoc#+~KgXsVM&1DQ95JHj#Ri(7_$- zotlh#%Q($IwX^dOy}_+ZXbC;B5J(+sld$x?)`E*aNI2E$|8NL=3-ZadzAOnPj<7^ZSs;3VA>QX45F zSaiapoY@R3J)UQlET{ZfywyO?Zm>AtvRKEBdhcnYeJJ1dyt*}6m^4GN9_vq%d8;*D zV9R(-Tbo;Y^>`xI9eIeyy4m8>)O^Queu&i_IJR}M{-`ko9Co;#Yo=lzjY}{h3;@l2 zc?iVII>6v_0eFxJ01v77+?-R&`F&gr!CkyHi_!j$e0W`%D@1+JSVJ4db59eUN+_X< ze?VAEDW~I9Pb&a0(Dv_HeI`ejXRf4}sh1&Lh}2<=^~Aq0M)mRvuzf$Ja5Ks*4z%tmES0P^8f24)hL$}iNfJI zz^TUYC~>E+3;m&`g9M4>C%Ofc+I&!jmv%fspf2pblaAwR$z{L4W4qRc1&I%_JNS-r~+|K}*AbtVhm^AMZx@;SKXdR!_VgrC;X-q>oLWrsdGe3IQiDFa_EM>P;_L^$> z|aNiH~!^=@xOt!9Q;K|!$#dN&i7osFF|G30lOit(`Y#BXiQ}%Oa{^m zSez*WCr-p?E{CBcDF@7+@Xr$Wjgpz?Q~CCfl@C<8_m;N9PsH=G8Y!Sb7^k~Pw7^O4 z#9+P@b2y?Yhsa>06Z%qr^qKP!>9=RU{8R!*N4Wd>xb5cjf8=mO1RJc4()m2mb&;G#EK>uu zV)g5IOp`F42uZndVD#+u+gz7kPV4g11TC=fS(kj4e%w9MfRQa_&4>Ifv^I42kE3%a zPwfLQYD7}vsnNcYF_Iwn&Nk(?#KbDvVYLG&c>0}1;J3AZqjmA(7aI-WV;fI#wdKs6 z24S6CKRf+=0qobf49TvPSzcgMrzxw4{gy2wX5E7Z*J<5_n>JP1l^dlzQn&KfC1Xmi zDY=a3U8VT}w-cN0&^x{J2mB4^nv61((>An?3Puq&1Jhp_g)goi>WFW=U=r-gb$@Y2 z8CrWpcg(tTMdDqcbrDMt1d%#D8^wx^|DVvpw(PlCp--Fb(Sr3Ty&| zn#-M0w|Ea_2f+A5 z?b4++w%h&@=sHl($`Q_En&D&eO7}z-n(A)lmfgB_;;(+19}3iSBW;JuI#+SS zu*l2X3m>=b0S^bc#QcPJP)1B*;$Psbd$&4=(0nt;!pUlG(GVSrM3;Cna!vHe5g_*_ zUfaPym(;up`e-2aeK|wIo~8r{PZMPsDc>In>9`bIb`)&L@{X4b13zVholSRcqgb%% zlQ;5%-dNV#tr?n~-Vk91+tdSuK3w$>#(nZ@R`0N;8*T3xhJBg`wkuq=?y}1pb%U(I zC{EaLw)5X8R81Q-&BGT=W}I$MZ)023FfPq zIMNI)pgyHDkaq^SH}BY9Upiz=*IWB@Vs}2ZT#^w}@+ZuJzO;H4ZtFC-ltI&bsWE+M zimq>ou12M+yrCOdMU;flRYu%h$tp|&g!_wQWap*BPb({73o?P1*JcMsyT=&7CR8N_ z>u+HSzC8pfrR@}m#p)GdQ={6&Stb=zT6MlPHD7yu)rtL@n{gWd*s}J3xxwM2P;EtH z=!4?FF)`uLWtgp3eZwVQlD3wc2N2!JqlEyhJO-8xUEe6GmuEc0UGx}wphmF>BP`&R zR}CX?2W@qFFpHb!B~OU)PV~dplpD2!BM1N5U06#*zcN^ zApA|~N;TM`pqTmNA0XUGiLdwAw}S{73LPY8Ccykq-zbusHtOn*sh>$!7D~ocJ%ovf44N4_O%pJWnxB{mv~NjLV#-C6 zvmxL7h1T_2wRE@z{c(|K`%@lE>uB0XEA+33ZHv;~+`H%xb5jE*V!YQFj!WcV=mi)r zio=K2acWq;<_<9;+&G1A>S=V8*%B;}PMH$czXXQ1#JZ%Ua%IBiE&Z$_fN5)P!#Lk8u{D`L z#grAP_*f#bUmqlvf5^$8l?pR@WcFL_0GFr)T)Oi%)>O7QJm8Bl6 z?|Y)nivudb1d&?-piV5hh@9*jHZ|>UM+;KOskaqBt zIk;>fG}{f0^nQR`izH|wZmzLP^DvNz=%IHS9_Trs=ZaCTUxN^V?QJ}PHn#PQke6*tVml0 zPC_%hz!^xxWktH}{b#!sj-@*1oW*~b3xd8qH8b*F3Xh4Dp=lj%-h{u1KM0X{(VGDA zTmbupaI_mTaE5zh(Nc_vbjVQZj3Mb5J-|`A{|x8Jl#(3s^t}3t)@iDoxl`TW z0VT!r&@~76r@O0=MsuL+wstgAJK4v0)Xa5~_rx8}4bDJVxEHZf-112K)%a5dI*oHG zpr@sxNB5MrjGs)At3MVi*28+vFx_C<6ikwaGSbYVvG6CM8MEcCTX+7_)EinVbn6DhXxvBCNao6-%$JvB!)>NN zO~wY^;_tz9XZWNL{~7qqF%m=?Pr$ZD)*MPG{m{>l(!NsvsM<({V^3qjZNA@EmfSvG zCM2hK7YMgArxDCB=93p9T){wt+TqA@f+&4ga!OXjPMYSJQ!*q526fzb7_8|A>v4l6 zSRVNI4BrQ0!h;Zb8^fWGzPsHqU9Ylr9SN*z$`4oaDjX%28&T91)ECmm%SY}vsOu!G z35ly*scA0I1pX?69bSxg44iddZef1mi&$7WxLb1sNuXa=)`6}bh^Atg&og7PImi75 zhMEn|fdqF$etU>;lR{yj&ylGML5QyIw6 zf>t80^h10W^8~4R4G((L#`)FEWG#A+yij(@wS8k+|vZZ;FI#?>H@(IcIr46ATuSsfv&&H+Si`(9*Zk@!vR20UaxZD^Wj#^+G(KU zM%f_QppwZfZL%F{@k#6WMnRVQ1@4!USC`mY^p0MW*I1|mgq}iMWBA*6K=;%^(uPEk z7B<1I23oJqm!oe_R}S+YCCPEWp@S9ZjOt#aaJ9hgWJTm<6lb%X!f%h}pfAkiF7_h} zbjLl)Eam3XXkkC1yg-4~S6X%7^D-x&qMMy=Dd_81(u+jOJ1A!?oG(Q$f#EUXc`N8Y z_+)%${iAu$H-a(@e&6z!%D#v*e_eIAvipa>wpVA1fTORt4}P&CFj_U#p?nt3a|KY_ zQOLX2+}v_7yX2r)?XPTTRuG5+$U$C4S!h(A+$>w5&o4R$2nN7el@o6&Bk(LPP#wzQ z8_sO1+8M!%(;vv(zlNJPID&(`-~`2EZ5h5YJGCQoOULkn*+oL_3Q3s#lTf^P9372a z@xeKJLXJWe>`!6EA5`*BXa$VMw&d*G6Qb&4qY;7bmzu#oVLTp|>{ugnjnlc8flCBt z3t^5o5;#P?RH^ORH!8c({sO(E@;3;k3Wb5kB>{h1i26uojtsVOno{~mfh!v9hXgAz2ib)JA%d>U?GM2xiPyWu;+MsI=shv)w;}O%_+fv z=sr(4lbaHrxc8QAqbAU*;M!A*7hTJGv*V@a7XL6O>zY(*4#f_mZtx{~0&*m#kY5xC zm^0p^c?e;ySEB3ImB{`Jct}4!t{6I)jW_bi=sEvZX6FaS*U8O(KS4Y6gUr=3E@ZCr zGS`d>9#!(ho+@AF=`bMhgA@~ypoEduQ-%N*?r>(K;YR>v`^y`lpvJ_0Ci_9NflYpF_M+l^*?Nsz2-Qw`5}gu!rl-&| z3N%u$u;eiyOnW18+J%U^oX{Kk(0+SR*j`K6nW#5nVYr-tdBQMQuC3rIkd<~ZEAnmk zXkI}xnA_!nM$i_*#Y1v1U zi;psZnXp%NeSR8rv2N}8q=nX?dS|0dvUs(oA0O#ktuNSz+FBU_u1^z^TaqjG0u~t& zG(y6O=y_Hvqg(fcpPUCr`z&l<%qJ~IjVr>QVa3u8AK>7c*~OZ;drODJ7K-|OTwi`q zox=Vh>o^g|_g_QKQ_~9avm+c+6~gcNU$*;Z}I z$yQB~_=lxk6;3R;GVsiqtM|;-r286D($2=BqlVYCAzC0yfHE#ZwSn4Be>EEOR6|9^ zyeP(Fg2}HgHAeFz`WijbMum}9P#VQz8)#G414-``om>5SIV^e7J6`KT=V4Q8zS*fEl9j>&jIH2p~wQ2HM=n0biimld-SD~P0cMuP3gU8 zH2G<&WT+HD=#vltviCwIdF;aVZw0@Wd9|>2V1>GCiEiJ0OFH95R8cfHbJ8Yj>>abg zGs6-Nq}V7O?<%~5b`sE9)ic41sUTRVj-n=2qHlRrR+gkul~{FVRj6cjLD40Ak1XJI z@|HmKLBK{AtqRz5v5MWoa~r>#RidyQk=iG08geCzBmK%dEN9xdrh6me$22nLaF0~8 z*)UPRw5@0jX~fWb+KW(#2?V!YpC5S%5ZH+l4Al7n?l$EjCJKQBd*(c_wdw7TwnGDd zRpvUTey{j)-a9Y;$^W&?tsST3eLe}UA?(U#0br4h4?1`yYALD==)*=$h7siP5Av%F zTm4y~V=O+f@(5v$GA0J&4!sa2vEDKHB;rN=W>carr>ymbyck%Hiynfht|-E+*R0afs@d zVzsRMo77u5WxFsGlU;ksMFYTUgk1X&!x}cxv6dc@e&yKK zD=!_};yMs$KY&kvlYjcH@i~S;sNpXji)q`SymJukl(NTVj%&*jb*i~xeRDMC|Hdfa zEo*;7Y;lfp7NU>0HpXt+)?|M2WYkxeLQC&drhJ*DsBz(p^H6d<#M-*-z*%z&z`q&5 zktcM8+1Fa$ei2+A(#nYROYs(lb1Jq*G@qh=m#}l#FTFJ<%GNusILK=PB{nmB$qAXP z4=13Z2f5d&tbz92CHifq<_Vgl`o+S~<|9b_#= z|40DaeOrjy%_>$C7>?4WO-pB8J23Xh0sq%3H@D@M-LzaoLBE)HTWzud-VFP3(1d!L zeN7OuJ<8Xp$mA973;xKw4p;NQOK7vHXZ9wWDkcE-y}!Wvac4qrRJEZQnC)!lKL!Q$8#O73P9rmXv>Qxv(m z5$RX4aGsSuM6)MenD9+k+jFFPaGeIz59p~JNQthpBsFcn0r+jhML|m4xwcYMZ<4p}x6XQt zsFLH;`c!>iXQ%s0tg9ni;)J#@owt>dA3{s8qfV6_7ku}tq!lZpI$mRr;02juUaxhW z&QhJ`$aY62=SKxX70|y#&z9I@7FE3aV&YrDPuVZX?3?oXZ5rDhaTtFu@0aN=VBRS{ z{kss&PnnO8dK952V#C%SACGpWHy@?gqtIX#ZUH>A_;P+fd0b63&UXc!oqb{9}Ay0odx}@`uL*?B!vL?CcvGGrJc? zK>X#0Bhs#A78%GorW%H(I?uO<`TgeN+kg9R)}&==f2oQ{H;0(X18P0S;GkH<#EEK# zvT)$c6Wx>lm=7d0BGYVosrl^))#q_-YLECE90i(j65#*n&w~iA$N+gSX|0rAR+SE{ z1gBVWgs z7HS%0C*`Rhus3xX23`U+jsw;@SgN-=&*%3)F`B5jfuf4laoRiECmo#BY@46m2}OWO zd^jU^_+PP(JCzor+_UXHY<+g*=$$5eM6-EQhN`!r9Wz*C)2zwv$HNu#yu#5K0M|hG zj+D1r*Kws$1)rE-$ z55lRkBX5x~@USb>;GWw2u~p-U@M+20>xcEE$ahSxL0xMD77kHl%uNa3l@d^&cdcWe zV(9e}V|VEc34|F9?8{Pfk9^2Nye*Ru;;akZl=znaZ%$Q=J<@U^7aV@(3X}cvUE|iz z&Fh1MrE=2^o!_J3-k_|93G2-57ZU7WNE(ZiFKQ!Oe_v*bmHO>At_&Auwv8&LY~A5_fLNSgWHMD^KdqH)GqIF**;-XhLbpsk3ZIf(cKs^<`OJ00Tk&=FM9v zBzKye0R~~Z{JB@P38iJ-Vdpdlc`=oDI^u+kK;L`)45}An_51nALxl$BErf*OS&gP* zw=>rM;q0hgAO=i%I1>w74_j7)y0mCg?FIxjpgd5IPjDWt-qth}Ag=iFu@_I5Qa5#E z|3i14&AIVJmfc4}hDqp^cVa<3#Ev-TkZ}eR;I!RFW6N4v^>0F$+W2inMft{(3m5?e zP=3PD8`|2Tp|>ccfqh1tzIgHtAmbx%9+QD0(l_5Mq<=Ra+_k#Cr=20!lH9M(KB=>x zkav|D4koLw)Q@UWsa;z8|C$_63SDnn`<+Oi!(z}siSgdr00fJKJhe=RW@BgK)BU$) zLXcwUtL%Tgyw92V@=8m3B|j z4Zj_qSQwUiW?AI!ob+0ZlhvoalIMK?Mv>#rVo5pUQaCm3P^K$=OPO$eRq{9A?BL~h zo2-waHVnSMw^-{c)(pl`aKa*#R?v%;T%=%XQ`I@G=H^GCcK5(^QnrMSuX~g26iNQ@^kT2)2hC`+(i%m{OuT5bW z2{K^=usI}C#`|cJ^ij^%%>`TMjV~F-9%oI|&{tspED6wIWNK@g`_8LfYphG0A;5_n z{ztxm@M)>qs&zkt*@+mGB&i32N+(v|=_>{A{c-;A$9j-Oo5x7X95Ugr+4iFRu7uvQ zy_v7qot{+df-)QbI8UEN)%sIiTGQD>2F>-C7ym(v;3T2#JdGSU*q=NIa!~2k(@Ury zxgb1TzmqLR2(0VRCaBW%QL41zW9~;Gwy`avf@OzUR5ET`;;AmwFt(^WMN5mUJF9L#pjhmWpL3s zpcw)XZ~TF^nTJsEB1-QM9^K-i`ih}dSI+B1#`Nywm z(T)%yLz(V85pGVHt_VU2ee0t4ojq&f?LWMP;g{m-4Q1xfSEy!hdBKTQ287keo}YQVv_p`d@P)J?@Cq;OO=y!%-B}XkYDr4Z>#i z;G3~Nl3c&107vcJ5UE_K*H`SsPGM4@Zn$H%<Ky}q5ZirAmDGSU(Y-AmH**64Abl-3D7|p_2;k6C-~?JKKRAGrM1cFb;h**l|Ih8 zE4{6mWnJ+_);2HwQV9)sJ&Tdgm^S3~Z&m(u(GclU1jJ2GaQ-^G6KUsvt=81NskX+t z-veqYp-!W6vHYU%o^EaN{v6epAx4iW3XMN$zhiK8>wHEnFLAHZjZzM`N`1?<(ZcVe zg=6Ym6h%^Y%@ES7#y#4S7}cK@tJ_;Sc=32t|Fb9!O8rr4>oqe2oA}(qQw;`r%TdG7 z37Uj^M@vcow(GRP0@siFDe^y@Ah{ev?X`U14p%sI4Y?k(THxM|ZMnky`TCsH2}dB9 zpH#jMM6}{VnXk9}Bpq6-==~~tR0Y(o{Xm`Y`O1D>%3d4-9m!xeWiV7Z-c=Ps0@c4N8$m=j!GUZCq(fHzsir8;hc1}?GDxE6%7=Cpxj?iqm3FIhXfcHA3)LypF`-lF(y zlRZyvT+`f1yPWA5Gky>>qtY6znRGN@uzy3I+$(%*19IYE9@2Hmzvs2g98K>rT|~Ln zd0lD#%Fw@(fLk#`nJNHIZ$1X2fotuB&>RTfRz+loO4FW@S|D>gE@{4VM)_g>@C6xB zsgxrzocE2_^idjnayIL0bm_|Z^`nfkw|pn&n+4N(hwi6buf7dB;aFOO*8RBqQC?xI z)xCwtfwbfO`HA}G2?ocp?DiV9OE0ly6sR^vTQcPt#u`j_vQO4-B zYlH2-q-cM%O=vu=(^oqiV=Yk{Asz-Kv!YRt#N@77n^bGTf+#8njq<)GP5&}JR>0QJ zxsUY>KPvtrLI$rHe3Z{Dv+~HOzIsi%A6&QYvL#-z$nw_Yc?aC zM%5%n6i)JU3df|C#G5ARg6;Z|MVC>1Gv&joG?Ui-G)SIO!@#z}Fd~T^N539ms~M@` znf~vpWK;ULD2HBdOfqM{$JWKBx923j|O#+Dl+xX?*cm> zu%M!CRp2XHn8TazhV-E)^h+aaBGk3Zu#}SKE0MbA=*U|=OafWXsL(y2ls*XX@tPr% z*KROa>)qu!uI7A6-x2B1rzNOdF8Ece%-w6Ui~F3i{61eyua|*AI70p7GV|BSLnz(e zfVhDwO&N7QN8-P(Al`NM1x11YNhSfrVR#OcoSdCluIl3xwv;2R6%O%}u9+P@Hi(f8 zfNvn~@EnK(tdaV5Qgjv-+9*g%wts5s#EW3C##X>7!VsMYTUKCZsscdx`mQ`zRGA~z zeb_X7NY0@ED4x-<&5*U88R_SjdMdE8zq34PZU*XoOKeyySs~gWe7gXEec55^AVhbq zQ~wQuF?$<23^rivU~O+{;>GIp8``b<^FAkaUB8qMzNGy2^pP3{6#o8$pS1Kk zE_*SyZ;O&bsTqo)`Ppp?noXr#T!gO6jua5BG5#(9iyvi61^AlVJHXp>JYPr&GWP+3-(ZQ;oVQ|_gV$krO`dB`1=AcKUI&H!SeqBfwop)r$scai zd$o|DWZUieV0?t~A=n=;fsjkEB>|eT8u-hi{9Q`*xprIk5)+>!W7Lkgj*X=S6kEc`4-rp5L%BwAtsg<;=EDm zX65!O*9;7XdRL)CZj{%sw+ks($_KZU8S91jK!#Rli6`nUVtOG~S_bzG(^8aA0h83a zS$6@^J{nC|(z>#Aa_pgCT>+-Sd&WOVJj}{gqq@DIP^g_8-R{%umtk@p(iszaOF~Gs zmCO$@Z{gl4c7Uk(?ei|m=iHt|w@fwcw`!^juswL#kJ;2(&DTtncl0~aag<)lE&X>$uK1yzz3Mm#KelPz5Dc zeacqUoKuKm$kIsB{YTVGDKxfZB)c!=ckBYVGq9X%?)xf_3<=$&?!?GvT;9M8ai_|d z6m2Z91&YFk?)Ah;j7si&zy7mlifkKNO#^dO;&R+e&O3ktXmS=g2mJN6a{Iu=x}5i&@hB9 zz|JysV7+Rt7`Eh>?|p6}8=gmt@@bJBUMe3UBk3+vlz7}_W)Y3MF{M&|fqHnH-o-Gqv0Q218Y)5qAtK925xKGfUFt*sbx zu;ni4ZFdMZ6VT8pWH=mhkq$_tA<#&%4XCmP*uGY}UzR9(&r54+%53XW!zQ|4VKZ;m z;G8um@EUAer9S1=?r#&!5!R1KF=2ver$#fw0I)754?s1>r4c8R)Z_mctZ|xZZM6Ls z!uhAuus%Au0Q=3E;E<)TXA+o1PNlxidIpTa&-S$(&B1sAqbH)(yGFr(ApqCmM0J#o zrav@E#wMNMc)MQ9nQATa|GU`8=hPZ1%Cou!i{QY#h{42>!oreQMc#;u1{-5>^@Yk|19 zw+>HJh*tJ5(fO2*3>(yw)+WKq51@+?E;@#uVM;@v3oIUZQ?t#==)zK=y1wYKY> z1+tG*E8Zt{wK$PMM@ud9q$22sP zo#lQdx_7C(qtvVHPQ3u48ln~u`9>_%-@<`A_p)zf{<#>g4ZEpw4@e7>O$R~~QsFth8fJyqn=$*U zD*{Z=aBuMlU^H;!0gOa`ChVt?Mtk|z;zEh__FRo#kIW^z9#<`5|k&L$eAhoZ-p(6HkPQJmd1fHcQ zAY{Zn8A^N2F*9}6sln*b)!cZ?KVt=E%X}xw9H44u>%|OR#QiJLYG{(G)17raR*Lb?1S|;z6N>W&fwoM%GSIqNR^PST;8i7|?cd_7$ z`rbU~vl!dul12Z-Gj*{SBan3f74?&hmb?u}`Ea=P@%iS-rW(u_OZ(BeUN2(V*#rAn z=r9Vi62gq$qQXGXq!CG1q~^jx;1_44mQg7JzQPFeeyGUU7HzPEYW&M{bMy3QO! z45AHODLi51q zQXb0wzdlE}EcM|7_2Bhm5GEOK&mhpnYq03L#S-PPpN1M%_zhM%pz;B}BzO$WxI5`& zl!omgEM4HZ5Vk-DgYxYLZ{LZ~A}`pjuEoqj(3l(k@oa-7L^B#@E$4^>q>@SaZmcBz zCU+47x4$+o3w$q_gvgTcZnQW`P#_28#4| z=2?qTDFCpwIvB~k{5%}^Xm;u`X&2&4q?oe7aH!KXx(ffJP5v!&N)hEUxBU?HreF$? zQ|q(m!{FH$tj&{&j+~q1K2mR8>h-AAnx4tgEo%&3n-^XSNJ>U=#U`Rk{v*{KzF~*H9@ZIEB~tRvkpb5VhDorp>qLG2VxNil z_jRu5_EJMA$7{@0^|n&pKSI%cAnW%My>hh2l@gBx9l-3Ex0m-csz-X^<_{y=M=;a* zp%;QZ+sjCoS=dg}gS4L)9uc@5fO8~XhD#DIO(1DeSxq5nUfQi}*EEUDF;VvJ{O|(@ zM3a6NsSy<+z-IJ!cHlDfRdC=`*P|TG6HPNhc8aQ4ro|3D4^+*yr7D0MPPLl1$?Ox6 zg_lGx=OCZ`$`)yu+h$nUho$&GiyCfitRA<4=`+tT>A2q^#^BAML4l6Ljf2FU0)u{& zzc&wkO4|n0KjDMkJ%>6d`Zp2nFD0O$0oF9ul znRppa;3-^O_7+wWV=`jAy})R@7F`$30>bIR+)%r{ySTUGRS+QI=rK0*6j?N+m=wC9 zxbzf?a9Bw4asANl_R3&8QBQbEJNA1%yhY5=kb?yvCWwG>7u`4i_SL@4aO!#o9ktvgl0 zqW=xtt!H3Dsm)7c`Io9txV|8*yjVB=cUU@UzB8yeq;ooEXH;=GzZE>6<&Ox$G^C;u zPI<|nprSY&I-1i=wyp6->9u)FhFv>Qh4oOASBe{J%o6qBrP#X$ z!V|93iIZgAxOM^8R6NF0!LCt7@oou6>EI0_=WIKIR);}-WSRVt88g5>C`lOlh1R=V z3&>+~7!t^e40=RnUUs0)g#?4d0i6gVN)Knp@gVC-;V64{tYckpka{RHFgP>@0*D|p z^&tsrg2G>Gh#8nz-;tD&^@N-wMi=gSau9CcP#V-r7*5+fPoc&s@RG|U<=NgPuzDZfv-|n6>DKpt}FQ_>%zQaC+( z>pRRl5MdZ1a`kx7@S!%y>^gVkCi|eytEJA+vi(_#$lb*yPwH$pH08NvSC8`xR%$+A z0S)w~@R%9B2v}HD>gY5P$Kw=<5R5t3I`X#MG^c)|8VbNH_VtZG%1>L$9;02h1GE1U z=j}uJqwkvgy;T$oY&r%0D0l}M%sElHg9iIrW3dM3b?ZwBPhiaX9eiwormnFi`0gBRO7>w-`LLTq^~o%|mq~Dv$h&c>^VT-I>wxw{`dbvQ zkwRi6EXPJnHjhfPXj6qF=R&*^c_=mPUDePKrj_~jJp)toIBWf0kHyXdFDG`e6L1Kf z)n?}rzpr5o-k~7ea&GcG+3w9Ky&2F_|daYgtzgRxSkgEYO8hq{16{P=A@@1KIu{%yZPe zDfCP8el=6X1L=}qIs$Au-@b?fL#6H_&!{b0GSmo_*x?X6BORs;=C!N26mYlu9g>uW z9QEVE9EN;Y_S13Q^%EGF>o{i7G9FimLnx6_jRv^3cu5&@qEPV4#N`kCQUtHF$8Mv5 z5Fa#4Cf2zx4R2I8bq<%Y)eh)M5E8?FuIRTTX6>rp!KVRh8Iidk~E zT4tyv4p~~^zuI?jfx?7U-Z-5zo!MhgEXA)?du!SnD`MO z&X>t;tlyifImT1A4AtB_C_7M<^yl_B19b`FR%L!noLw7*wTw$4K6@fmP4yii>TWBB zhEm3}M)eI(hki7LSffbsgy%&9$F;&BQ$*^(&~frk40oSthJ5E#iOl*t*(J>x%sH$B zFs!P#6Xj+;R(xvTW_0T4*A?se<%-SH(`{93-sPQSC!gIYOKCwUarTP*W} zE(Wg0j2KGci+FY%gyF0$R1otbr#UGmBgJji%%KsN^XL-leGp4w@i(HKpQf8bDYEDZ z@{Xz@s$58n?uAkBLzBqVf(&Hg+FmOgK3DY4RF0p~>|WFSH{Ed7Z1cA4^lK;BkX@8> zHmh6%ruy@x6nq^b?GvAS#pqgHw#T%JCtB$EVVZRb1tiXpoq(KsBtuu$t=P1VDV2;3>G}qo+Wqwent4MI!vb@_wJ(x2eH6Y94wxp z7yKiuZLkx?z#51tE*vBH zsXew+_UPTrHkz9{8taHVjP>RNb!dN36@zM4C_z98{f0q55{%Z+={P^iWV$f3@+8ei zFBbY``Qyg~{jTpRnI%yi(}`V&!U|O>?l+o}5mqy^t~A6-4r@Wlos}h%>Xk_!>6}@! z=UWGEc$AF{`cdm>+lQKzUr^?Xb7us3B^TM_rJ|%o3TEUaQ?r-#&eUx#OsXqStOy*9 zSrjOK)vqz_*SJ{972Bjop7~0yS(3YgH zUH7>+Z&Cv+5Ula|NhxR2HEswqkD0-i;;`%`9!ck(*m4O>A_7uWbHE#%Hi_y>Mj(?= zd5oWkCC0k?tS^(1AWv|bdN*9zTML$qS{L-092%Vm@{lUfvQkYcKA6=Ns8xjWw$aOL z*Mn?hE@W<_%kv!lSQ8)XkcHW)TkcmKYJtF|Z9!QC=>yZA1FE?IxsNT*;$!PS`T^5t z&<|%6`4I!$3KMF`zVVon)$&j}Kox+GGN2J{x1vlaVMukI9`ub0!ZV$cUMK=pfB;{0h%G72;I@&sgGr|}5TCQF-) zhY@Sp@ zJZtY%32Pdg^Ep%Z4{MUs3$TBeG@5%CO4=xS3%}=BxM6~Ul2|^b4sp1U$(bojOrfP5 zsbEY@iT!xVFC?1u`lDiUmWJFc9>*9N;RB{L;?t`HcW=Pm-pPY^%jjtgz|nhka#Mgl zKecuIVMjxxbc6!Di#ZLy7L1wwWWxm3Qf7sG!~fB8CAwz~$5R)W6m-e4qK9)DDfm?H zrSKfu;2KYK%4AzwwD~&&t&SQ^%A=ZrRl1>Q=WH_f3koTZ;!R77Hxh05bZS|!Cz&;$ zJ;}96rq6wZ<3|bD8i?pq`lR1dh+Q!{R})2*u(b+b7P|{8qdGBBn6%}Y)PA_$d{)UM z3-kXl_BLQqmg)QO3@E6mkY8vhgJoJ-j%i6IFjniD>y}$>>%UaSGG#Z-(MSP-c`!3I zQvBE&31w>imAmUNr`FdH85mHM3~;hiRD|I}W>kckVT74sKA!iy?t2DtcmK!x9><0s zD-ZMB*L7dt*LfDRF$nq{jY1&$#bHaQi^VLA7p(DW5HEEsGmVD3pn{jC;g}(u6bIUb zsuqj0ipP~pPp}0j`$d(6!@%V9^@J5l87fhM&v}T2$H~r9m^&lkK+% zSPg%nqFP_`V1{i=ks2d&;N{&W4rOY~;@_ZoKOacMkkHM*j0NfNL`)YcUEe60elE^5 z6o?_z5{g3I5eG-{5UX|I47n-jJ4>?VZM#2@tA84GUV>ErcFyo(u( zVCnnL22(brH<%QP#1S*waE-NtsYQUWCvcq9BA7Ny9LHIC);_b*dr6Z~`Ct@aj<&bI zbTFi;ur#qygN7%s2qPUVkfJ;&r+N`cro$Z)bMK0(;K@aQa5v+iX%W|i9HfE;E)5-E zG1^6M2ICuqIh%2wGMokCQ<$HeCcsGyBM#6##%9H3R7$kcbq(j<#X=Ecs{PTGeRkmh zOYulHk#CnL>}IC)ylwYVi(pX4|GG6+ZxbJWbfi4^Gv{A<`RpD3)?9sI; z;S9!ni#V4x{!HHEO2;!=|5|I9bno1pCICuG2*RJ(cTtC<_9^vgYbA8&!P?}2>tW#t zW54JFM!H*+v9uB*0vUiOAVC;_==0Z%q&%z=C*)@UvThLe>6Em3Wfg*)aa$ORmnw8= z+Is~knoDp>jt`J|5WhDmJ?oSqhr=)l4i^QJ)GJuN#ZpksBj!R-!iO-BEVhrJDRaL; zmbu?S(_!&QeG)(CyHN?w+4Lh)3DHhzI-T<~JYn}neDcIuj&l8}7;@}QSI3nneY51B zpc;Y%K44kNx>7wPW({iq05tjgA}K4qw<#{O$bXTyDYDGCM1QT?^f89#6Xd*!F>pGZ zUsynCsivJku7!g0V$(v?`!iY5kr!0@>YVfXW}3>`qc_xbtZUdXN0Q@aYAi+U<3@Lb z*SYb_fe%OJJgxS6JzkovQ8~0XPL4$Mj&|Piawy$)-qxkNjjWC4JZQ#{jV#d-r*`ak zTr%xosi(v(e~%!`fAk@FrhWmL1IArWda92KoTz&-9zy@m(7MhwApzCA4rMS(Xj7A> z5O}arW7vy-MJf!sIGi!!!P6VaLd+42iH2d|z8PbrPQ-s4GaWUCq;rvLzTeO@i=(oO z1Nin$?v^dqGGHYDv58_1DN2gWYf*^_r9tvrl+E%K2;E1=V;{9|+{NImH?g-1v=0*H zcjIezWsL-tR*ti_twH%T#lI4?k~DJ2ZErI{Vkqa1h&u4hhRzKE-10^2yx3zm!BQmm zz8Q~V3)*dH+hTTvRd^8sP>BOkKkFAFG;%Dywzkdi1C?S2p4ga@JC!LUj~HO0NlwT; z$uzj5xrKlf3}-jY!O<~Rl7T1IX6C}4u|g5PAW{p3IH1Bz>FLZ#_A^2w|up>Y?oyv zTs+i|d-^rl=%89iOw+^Ko$`+ryqW=Rcu3|orM!Yjx=O+%yVZr)Z|GsyR zer9TjJgs_gy>V*7DUPb;YRBXL6{Oa%!IaVOk-v zRW^>JefCWa+;wiz>@sw-r+R256MM(NL#IqHBBfk{jz66zJl$Nd#G!tETl!X}r|Fo* z(Ol$~a{)1M{!I-#s53!>Aj>iCO&J9>{OF2vS4SP*{p~NUVfN`q;X9tg)9oA8q4QR`E^m_t%iZ6xChoe1OOxgIvwuzAj$|SZ!B?C#8HZ?E z8A8KdzTxx+PAzT)Yyf-Tn5L^8?{=od^rolH#?NvHZre%i9+Q&+l`8l^hd@b~ldL zPUQ>vZjApFP~V;64b*!{E_(n7(hSAlQMC5m4(K!wz{r}nZ~%^ zZNa9w<|*}k^(RAFVJWfMx>d1^^&@d+Y$*6?+}K_VvyFs zdZ+U64%WLSHGN-I*;olLy9I?1@!PvXUFLcQi1GA!%f zzw=jTv*B_;XqlxKrXt?zclK;7ma0xdK36{9Pwi3{1H>{LcofC@lbx3VZQ$6zMwD42 z+o3`?jztx$gN6sl9k0YIBZ8LbjGA$N0hyt9HLKIt7y2o5jG00LxDaJJCOgt;o{bJzF!hAU)H-O zr~Ui16KhuotTs|KXgh8=l#JIYjAxKp50_{E@}mAuZIQ&b1jlTu4NfpD@3Y;{v2lvK&$FB6k)C6>d;+kLpvM&GbnR6?% z4KGgt+&ZXTj%L&4Zcat)w3)ca3vVg~o^J+skW4lG9l_c+SqmIpu6da9_M1y#&v}8H zTlHaF=X9{@U#&gynUKiTdpT2V7<7l6?0LX+A(Fy#ViJ4r$B4~f;jTCi4LO9sjWOp2<{J--!gEw%)Bf#6ZDG`lGuPmY3S^T02h!s}?765Q|1 z_;hh7um2SURz5d1_cb(>+++^3VJ&VZAqwFW_ET;|y!c~bJ;I?ClJrv}{pL)Uiu3z0 z5|&U~vg*!|1gv*ZPU%MPosuBDa02UQ_#cvYf7^bdvvN$o*u)#(PxZ3@QJ`x@q%wv# zDqsS*eNaOPIQX-(zDHx5BoH%Qe<3$Lbg4`L3&!!?frCeRJeU0) zmEoa@Y_2!<21K+=bF%pv=8Ad7;Z{-jzJ&a;`KzObLhLDIP+s}vn&gL3Kq|tadZAjQetR!FSAA-c-c8GOLEBG?Y(^$pVdY38p~C-ae}jgjyR+Lxv83TEm4 zf$VTN!K_5v^@ytG7_;;E@*V6Qg^H;LjrwMclpmbgaE{p{PM)+-;SFnajgCFzKrBEW zRla4|S)@tGu&5wSMpYZHcF>og=5p;6NPkvd1;eSIG4Cja2eKR8fYLajrnu2I&kB z1|$5~RiXM{ht=6%iC>zFrchtnzF**j)Npg8=otEC3E0@i_BLf$-xJs^_cJ=gP`&-Z zSSeTfKvWY*gmC)1v5y0=6ViHMq|8@r6DM;|N#=YVZS7x1T`3g(`U(n;sSDfh*u$D$ zZFFITlCgF)2Z3-`_8FT8_)+o#Tv_MI2}y0QHUcgc0S&Vl_=N_iD86a5`aTXYG&BAi zARw~9n0+c3j>a3K(6Z*I)Bc^w zx0{!<^*8G6koqGK5b>4T&y}1mTuH!K0;E9A=%-^jc0NTEJGE- z)R(rA}$2Mrs88M^nlx3eN?+Yld!d);tO4 z&vB{VC)?T^aK$~taU8kj{)jMS%>RF_?7kW!rgD#UE`vVSl#c)Pj9IDo-75Ayrqr@0+~JS zt8r7b7g5bK$+yhy5*KI7HC(|Vg8rF({DlqcCaCWGeH(2ykQ|`+%;ZpbOMk(0TI^^_ z9fdmEjD9}OX1dMvh;v@4gWar>8 z-JY+$K0hhE=_}QV9VjaPhe$A$iRNhf&4RV&?BuqKl0c{t936e~?uF>5T#W0@_t!-k zD~^_|MGg^+b>Kcfsf~EEJfUcj|9X5Nn_fO`$q7k9ZH032m8C_cgnty2Kwl++3j~J}YE~=Ve^Q;IdJNO2z?mw_Im-$U zhBo-R`y@hl1S4VKMT!0~3`eftqbalhRsspAucx|X+?n(9pk7^)ySs5W_;EtUeUecI zZKUBonr9A}DWJ)vexl2$N|OdOl*IylKKepbFc3AIVjt){k2|P3^OVx@5^FnDv%3O= z^U1rgSolnUPHV(cacFrS`Z-y{#pnAeoJ4P*n((ys{@~~Fe z&Z^KHd9(vXLzph%FVlh*G$aue|C67RvtQY$x4F2~GF6YmB*+oITX+# zXc^I^#YR;)`u|Wo;~6HLMHz?Ur2(mO9~2CrF1)-;rZ^vnVSTGvQxAy7&nNeO8CmMC z(An?LYpN2w@{Ec~!|%P-`0|4O4_faz6)UcBYVQE`dt4EyHE*0V`N4|th)6PmR}W72<*>x$*u#+!%3CLbcV@L)_Hl> zw)V}38`Cxm`RQL)8up~WTxvN|_N3}gOJsP{v8486$rc9O{4CGYk{M-+^47EQvMO7A zTEl6W-XrK9aA5bLLx&o+C0w5<_x)6`c9V^4QpGn# z7@x$57Dj{Ueh7PNeH2mE13fcfbNn2IK=@*@`idsA12<=~+N%?XOgCzZYuMl`VpoZI zHpXIs4IwknI32COSa16o(5yV#VZt09EUxLEpRM*j-S?;U>FFmt%tbjEhD>(H@hN$R za|QaRG4!{n8HhZNDgKo$^B(j+v^QN{)_cUX3lUX8Kv8*=Abf$cLDC8$y;+#h^RnCr z1f4(lo2=UN74J38-XY}A)ei#j0wDNX2D<+zZPUBSzB95K<^}L9O<66Y0y=$dQ~Ni< zFx!uE=f8BmZ&$x$|J8Gz`u`v&n)iVJVCBMwtO?pXU+abk)HA?#LC^`AjO&0e1wo4^ zNYKP@@RsZ+apYTUuf!);EiUT@PQyJKG@Xb?SZp+hF(X})Z>WB}3Uer(B^74n+Yb46 zwT2&Hj5EH#<#T`O%vuykunpH2mR*0>C1Y%|>9#F0@6XU)bGWkT*lDYx;~%&gV*$^> z3UHLoQ2`D~%!#$0u}a&YRHql3vLcv21>1{EoY7~mV(&ptx`botiKwGVS*nx z;DgknQ+ukS;`3;JMf49(T5llF(sWVjdsC8iDJA<-JD@l^yA(gsGZlt0mR*;YUBdw3pA?^GyCpfCQL}yH_m^*F`pri( zUD5f`d*Gw6F8Plbon@-27qKU&5j$$_J(|}n{QdOl(+!O4f$wN2k<*nEgb(!rm2c6F zp;V79%{DBB1VVj(4S-DR0^iNeD3DhcXSHiK*|y|`dbhUI;7gQ542Xdy%1t zke^6u+iCicau1g8C>Z=*pOA*#BcwC`S0R1>{VH#_(o_*KIe33u*B7Zn$;(9CtHB%l z?jY&1=SQ6l7l7{2_hV+#NV(m+BYH<=?r*_61h8;x_eXN$w$h6jEP6=U^^ht6k0-9< znk>y_VNNi5TI3YjjApf&A2@?U=Sf5%)pgc&9g6i zbJx@u%IPK{6F(c{{yuHfl)w!FuAjoO!6oawapT6%T*nzK32H>|&%{)LWx{gF3M_O} zGo~*mcTbm~8d958m01>FH(}0Mrez!gI*7?sbPpy|(KFzlLVw+JOiL_O*=>u}#dYd@ zP4PIk>7U-rolJxSaY2v1_lRO>&OP|I(NE*M*vk>$l+ryqx#u{5W#Tc?wWu^V`uF-5 z$j`X%vwbS-9YaCFkbA#h!_8#y#@t+j=uNfOu+6e)>16-N?UtS$s^0sNs+10un7Wsl zx}RXlaf4TGXBIis)&d-C9f}Ldkr?RQ5Qz}K1j{b^=~nj;`RV%7JGrUv|HXL;Q?6R^ z7Oso6cdTE-C<=P-dNv3XMQ&Ue1Yo1ScSlo8!D!4ZJvG&KPUqYdl;=4NSk{C0i}V>X z)q-un^|1;+yP;;ooGO>^aN@xKV$zVZsGp+iGKyy!9eJWFPZ$>*buw-1&jny=C7&Cp z+;D8ImC5E+jn`jHK5#gp?J=6pj+l%SRZfn*fy%k-19^G`0ot~(@8P2gK{V2NBoY?< zrUiy!Nitn$b+$hjZnDhA!j+Mp6=Hv2grx4^HFJGZPe+Dp=V7eOl4%Gm!U*|+PCqwH znzFV{jW-^OJ@=}$q`Xu!9JUd6XMg*yckPc`eV6oi9k5UEK02oNB-cF&^BA>r*$Y4UNQ_-GFIOBs~ptZuX~OW(Oo5t73hA{is7tWS=S zi9p*9F3$N6aiER^M)v^|AGNeq8@!QTK+T6@?6b)60i1sNh3%lyT5JX;9yWNGc_GS` zJ;vbCaU^w+ziJ&z`2LLAy-16lpdYosz{mzT-rw%q9)0WNzIr{J(#KBqAx${%t#Gfz z!+!A$n{X7)Te8lpr2K<@YRH^na)b-#5;eo4#QTBhpL_e{3SfRxD2~F7^#9{AoSr^K z#DvtTeSk7c$j|JFOfN&j&VQWxP{U-tL5=OBm18)mEjueMQ>1tO(Iv!a@5M_6No}!$ ztj4h5^-RClh}}4|a=AnPuZ*>5jyjTY$Mp6?0H9*FjHUF(K-itjcgyb{a+a|%)^Nuq zG?n0v0j)fNTo$iZW}v)!+N1yRi2ba*r-g6+@PaVU(1L@Z;=e&n|ICIVIN3GZpjlIR z6G%)l7xJNSjAg4VZjig$KhR@bcZSuGq&tOv)q2bmu%WjUktY~J<$pYeO=j0ED&D7b zADd#Uzvf|9>9g@%}hc`-2mlWKztEP~eeTvNp3IeiQh4t*HBSI(c-- z3cRPqiJX*x(|Q6Iyu)6dCx(}`=ZU*5XyzhiLWKB)vH9e|6=+fEALX5JrUyJ><=J#F zQkO;Ca|LHIO(z2N4(BFD{bSCj5ie!$R|XoYAI_wgfqQtuM42z(YW@$vDU-K)SX;Ee zayW$koaaF`D2xDttu|@1)qPRXx^*P%*GrwY-|B1+H+s8*b4(SSZ+A}dcO>8XtUZHj*QLq6mBl8Wp>VyYSDz||GqqP&(V#d7%?mq$n`kI@ ztOdeN37|<6@`Y#`2GKXKh^?Ssf8AM^+HihWU?h$gHduJ=mA%h!waBa*I9D}P%9o9u z;Sv`fv>9{W(+aoL=2n{3bRB=2r+$*KO%Vgma(Y;D!{-gn;@{bXH<=v&GCpR{M7l7~ zlj+Aay{o-mWx0Z6*tjiYOzIVQ%=Fgi%qJSJpGiJIBP0fHRawk6K4?`H_cAP}FjMNi z3hq2>H(T({rcb{=R#}2qG05;7S9}4M0>f;SfUqTe{kr z4Qz*b{TyLK)w{tBRDzc2Olvs*L~`%f1@!#*jPEo}C~b9OXBahM*2?p7LlG>7Sf1;T z_$&@#F42hb+a?xP=-5{k!+u6=bizcF16Wnnq<_(Vbk14aaUk;p7n=S*Dv|qm7S#dl zXDb`4Y!koiw_cz;{SxP${F%=mtjzmSm&`(<21*^6^# z;J!mh{ficYhKbI`@cR4Zq07?N6j0dYMv&KanPA z!%uF^%te-nu~kehEfLyL>n#b`ci|S>K<3KK9S;k;083X4bL_zYZDcucd=h@zFlP>m znY9j{A^BKaJ#gsatL%8;YLuQ*&Qy|-)On?(lD@G>Q+9Jz?2W?Gg;Z%|$r78b=%g}7 zU}+_oaOgJQgH3;tuUquT3E}pPArF|9yamWx0(ZLuffVjFBS*Pn+)3;k2qMj1mqhd7 zY&p)sSMJzn&-j`NB@lP>PkC2XM>l=;AJXQp3?j$d$KBCPE+Jkfm{49RTz4_GABGvH zz1hGFD8A)Pa)E`{1Q`4l3s|O>b5F(cg+P1S*v!Pkp|aT5OLxWnZXwS-*+&c5YYD$+ zJbUFgZ)x{=6x z0sj>C@pofjIgzYI%H}GHZz((2!R5TG1lVI_vy?RZuoj*w)kitq&Zwx}TadeG5QS{hnDq zHaN>dlYXz7!r)kj^7Z{}b4`9Y55EzJ(51x`jfY~Y z`(bf>|2g3o7M%>|u{n>*gVC5FdJ{-nDucFL#V;-oU3q3ppMWt;*W~iW3w+cfKV3H` zH;Lq(R1UGGU+m12P;LzUquD9)_72Z;xpML`9l^|w(8IpAGq>qs`X&E>DR$va-X5a^ z3iPhTe0GQkFLb_S36D#?eE*bhp7HdPn}mBm82d&Z_OMfOFXjmyHM|P#+?z3@Rx9$U zWNuiK0q@}5z_;4j+i)ZH0F&527xPVgyF9Sa5mZd)+PZ(VDmFM=OMd8VJ89v z2Sm6E+OQ-e#%!BFYK{?Wonl})cG+k=lpvU108Yy!hF+{@;^&2yVB*24r~4%y2p2Gu zuWnBBZ!a+}YXVFiFxY`vl?nKN5Ib#d?wtwNxEheIJ(1Uh-=|-xO4`dKYfw4*Z&(6{ zC|vF*-C$&mr@6N(ybnqkAsBnMH)GmN0JTq&5XMRO;g`Dpm8S-m(KF|&lX_p~>0CfW zOo4b(=lJhWchJ*&>FGep>vZ6gkH`d9}}e>9{(_Q4cO!Pp!!+a zQGFX5EYrY2;F!O3vc&EkCm|3M;{hCq11x9XJ-!pILpVgm6m zf1Kc&Pi3Do$Wa0sp}&177C?->C;_uu=VLd}!9B1zkzZ6!B*%Y`r#bMnXnZ(CQ3;V) zp8&(5WES)-0XlZ;WqRV7g3_x;0;8ZlmdXZ8%lD?T5DBO@?6URFt)Lf?`R+5GCX^>o z7=pp3fIwST#&-Xi38^;Ocaa63K7QBPL9#A+oA_UjkU#lC-;*cqPdQe6YI(VNM$GiF zYqr$lW&mh*)01_w`sUC^`@uj}iJ5-Bd=uO@^Z#2ky(0h>NjInDjj55;RC~V6S1-gy zEr#sHXK=VmVJ{)P5DdDRIJdaD74b)ZQ6TnIc5+M0GYil{xWQ6ocMDI$ zqzB#n`0R^-8U_bvvH#9r{xcoBhXXC5DR}A2z{0TEvfMGAv~fm3^_uClM^I19KdPR8 z>duGjYwH6Vc~7wY-aVy|p#Io93^oTUAc93JSFiqY|`jjt)qaI13P&TrK?ggzlrItEwvlilX~9CDzDcM`!7%8aO3^*V>nW7*O`c;YakP*G8Gcq zf&eGg0WRcsNXQ-aY~;L`6~dc^FZl~H_x8UOC7<}Tt4Zl2uzgVqf*<^iB2g!&nkPt&{+}MzkwjdvN}TlYTj-A|8nH5goTl6zl{oZ}DEIZx__anp5LT*p;|J7San7e$pN z+u|gC8Fa|2DOQLp)TAflb5#%DwaZmqrPu?C!`2LKkx(BFX1ubNC1CaTT`}?=Jh%3o z$uKL$@|6O-w>xC+TGRCzJ1i54sfV#hgZ|0AH~kB6?fARwdErforsfIBET*>wNYzi5 zwnE)fvMc9jRU+c`Cur|HZmN-c&&i}1&;Tj6G-rSWd?E=`>}$fBnr`eixgClJJ6d(_ zA-Z%gB_uq|ZVsZ8-vQbCtNb;|C}*lKM1!5wQIsISX13%Hp#KdSEEy070{G1X!spNT zp4a*Z*BwmC_6}28HYm-!FV~+G$2!0Nc!{E7O7_oFe7_P0`16W8)xea2RF6g(7wFfu zm|B{ewiBh(d+XL!g6pX|R$!wz2z&w!+cx2ge#Y|~m3Tqh3>fM8;Ik!$-^um^^f>>a z@#81h7w2Wp@XX()x6CQ^tqvtWf7)tO{L1OJc{O62`kclQA=u^E;5W=K#-o>0Mm7cN}*ism77ZrKf1Y5_@Me4>y2meGnY zF!k1se@v5u_V!9haD*f-YB8~UtXC{ZD3D5|>(;&h!@ffQ`(qsLEeaPFm%kB+0C#nt zUsc~j6w{F8gbgX8yD97aQaNM*jO6;Q68oBvO5y9kwH&m+E`6tF4kJHO`BH?Q6a`~6 z5###XTCKC&RFUWXSp}FwFl9?~DpN;D1`!FF##MA#kpJVhiTASyq9r4dfS~74b^K#}U6jY98q*maD z)23Gp-!;70)9CqO)&#+rmZ7QR*;?O>cIG{!b!nSe2j!WKw@*6#KSlap`9gw4bx9l^ z>dJewP~n)%knN6^oVSCJ?*1wz8)p-58~wLasI%^taY%fcn(c-tgg;El=SF z0!w;y%MiQFD9Oo44r^Ml=;TfmK&n7gxq5uSj0WZg!7fQ8@`$5tO-9d0)(-~(W)z zpNt5WVd99Zz#CsJ89zSOjw8b<`kl;IC=;(l5$QJ^ANXlvPlgOsTZ zDOh!<4XAlS_w$CX)l~xcUZcR-3jeZO0s$ib*g<60&Y6<%ZQJ16z2mITm#pi&%$Ed$ zj-8Em+~H%5Uihm+ikmTIn^B+%=kg1Y><~utLnqgVZH{Tj@KV2MhtIOQk)~V?h(F$A z#w^NVh5h`TUBb`t!bn_Q3B2Ypz{vc8%&vRyiRa=#MY+2oM-r1W1tXOD(*WirBoLcqF4#0B(22MKfKZwE^wZD0ZEZQzYQ@~8 zuZge71`9-n@E{(rFP;NZHC`$1DHRFzY5)mr{Z?cZ2ta4=5Qomf>^F2dGpoMHH!7fw zF2u&Kd*ivO?bYi%8ySD-T=0`0+b$-3RAQY|Wl?t&{q)lo9^krEoJsoPs7Qa0w)gej z@HQYoWAn!m_ZU;;^VS|n-taA+ea1}>plub&0 z80OR!zbE}mSV4HKORDvrQfHEj1sS>GZ-Z%$qH3G^jK=Y|`{X0QeaX*hK#LScO7cRS zG-TkzU|`NjvK%pdOeH08tv`lWT3Kn_UBcEE4uK7ttCD?QTPdz=S8!Ty67+qX4gLSq~)rFH~`5mIJEBoyoypsBq>kb&US zP2_8d2>E439^=zpUG9(J!%?R7*5Yunt+jB_2&j!D#15Z1m{NTA46JQ8fO0t1&|AP0 zd6q@h3R`%^&VfHRYMtMhhPMo4r5_4FCeKa4MMuh3yj{ozzKsd^jOUYFYz8G)oXjg} zg8RcMD4*HF5v^O|>KHI znvvE_*pV{Q_`v$D`1yp=2Sj@?&(a|ZZdX-meMgakGlLX}Vg1si&J*eO3aaRZgA4V6 zD5DmkRQhBoqafx9f=D3io%Z#LrkY z=rMmxRv;mi`K5yUf2O>b@2&&HZ%%sh2*hgRac-bq#GmIfzR9=`f7e{Ez7dWc6HKAB z7%KStmKTZO6*AAxXLHvpad|?bwoe7gCgKo?jotm-bEOXf?RTKMMI+oi&Odse{%^Xg z|I1S>SDn2CvPX^q@Trn0=e`dsh5J$!F?<^ez;A8!WgSx(#9Q#~xmUn|g)`BGya1;L z+c#tfLaF=#gX~&R+W@8j$zQ#?sfwfB`zfonwy;(z%n3M>t#IA;$0!&q+~UfcQmB#G zLmINd|B9`GFs|#~XwFsu35nShYF}5r*rJ@*vUM+56sJK~@wTq7Q5X&9En0_?7uO@2 zP})k#nB_>Q42Ad$7vw;p?FS&4fKi5$Lrb9P177$dX9RIK{m@Zl@;9-|3G_wQ_2#52 zFp$32sfjTFQ^3l3EaU;N0_6)waqN_oLhpeg9Jf1ezg8Y$NNI5e&^kU z!PI}~hDrPE`U@=s_aGcI?8K)%l@A~%)1l+(Hde?PBW@+wvoDn14#j|h#G^YX3hIIX zA?OOJOdV-l;H?M8!g5E#8e-8>H`fWdfv#Nyx0j)RN^Yk|Gy#Yi$ex!nDk@%$e&Io3%8QZu~L#2XT7@ZTI+pn)Rv>y#O zoQHADbSMM-L8u@*i#^w7V<&h6N);B$j`lGl1v|sFd&CP-Ap<`?WfXgL4p!MYBYep! zcaNboS*#t1t!4jf1Ga~Qi*)KF39?2QBni|^`Wz8eOGi8$_d$t#X_Hgy`q0@|Y;W&F zG!(uoE$uwkd7|~_EzdH&rqb&O<2GbP%BlpxOgQ*huLpde#RcVGK#sF1$k!m3< z>JrDKnKEU9y-28LE_IAJk1rIco1N-B)ZbgT?nOju`b~>+lKnAo=OUnCdLH+I(sf+f z%2JqI@c~{gVb<7yOg9Xi>i+J^h{^bQOD9tLF|SX@CqXeEqJ(F2-y6cCUtS#$aATT! z3RZDZt~?5`5d?HlFwKss_~@**@fbirCz4h9AnG@B2fwjcmi3onZy&E3uaB|DRM1$&A8>f>1_zq^6&Io%H z9?z77{ZXJ%CM4&hQ3%Kp4+CR*AGIY%fGgX3_*)c%ht5hfrOE_%k-*(@G)|EXlvo=} zVGRd?Iu!M~?bRPrZukodf$&UzSXZMa{iT+zy<3$&I>%&7saqaM#iR3t1mp89iUXDS z*Xx1e2xCgQILn}6*S%*<{>RxgML&TFS`ye0hi;00B{~1s0cf}Zy+>^r2zBAkbD}~( z7ZSHQ=el%~Gus|^jVX@lZ$^eyN%6NoXIeJf=Z!Cpf`5ym0P zeGJC197n&8LYo!-Y;3DX*DRel_gc1dHaLmZTHa|5v?2C!Ln3(c{6il`rUd&j04xh< zsuRt7mZtThM|pYvIwl|UC<#@u(U%4Z{S}AgT6Sj${RPa=xog=y34;5?6o>Xy!alk= z_a#|clUhLk$&aDT*O)2GG8Q}jFk~?d_E98-+9>KmpDQT41)eu_+XfIwzs-9MB`^G( zId^-KZ6mdn!q8A~ih9!cG%B;+L2Sk=EW4sgSjO-Xng#l~sE&j*_3oQOt?1;Q=12=~ zLsLuoU`sKT)Bw>qC2q?oodj zg6Q5*wXmTpF36xMQXFeMw|ui?=%DFwSWLK52|~sJW9On70+{UtMrR6Io7f$blFj$! zHL0nJN@|Sm8>BFvy7^SD@ZzY-m!%lH&}2xE!1GQ2=2EzIrRRTVd+%!0mb)4?JK-^F zX|hu{3_!^Q%L^*xo;?I;K12Qk#{NQp=vGzi@7;IJiYE1^l5|kXJ(Scsv+*ERQ<3w! z-zH^4M&GvY#3{HcwqTvA*pWibZi6vi-8#j<6N?^}m&_7(_^+${&CjMO|If3dp!8$| z0xe7o3t)Oek-e81+3uJBaV@oZ1Ta6(GIjIiziQh*AJh`=AE9=nYA*czyiEL@5&>l$ zg5Q*cqK8y}E!#R0>~ne5T+%Tt5AkBV{w>HHjseOVhH#bBGdz z@CKV+#t-SCAJUm%u!Rei=(Vt89b{IXyJqdow6@9pW|d19n9#&$7!PIL_Pb_N>qpdb z0e>!zDtQO#8aNJAkvZ)fHxd|jr*oCA>rwnzuvw7!g7W%7?yZp79-F0EfbI<(Z`^uk zsgv8RZpx7Qh&rq+b}`sIhP+90z1!~7l-@oqtEf)$60KR;IJ`@y2AEQovCsz0q`)NN zRl5F3uQHxq1>DokgS}@)#)gl9Z;p82M5gnBypugA>p}oo_?v$2M(~%EjRY9n+_6XnF)`ZH!GR{rp}xtmfnT4CY;0)goi+##7wR$?sJmV$INWZ}F{=L*)b5wC5ZC!vL{)^jjFTNNj-b6SqmdH zuJ$RWvr0wVMt|=kMSws{>?~fl!(utPud2B7`f$?Gg^HF{N9SaGqEWkQ^;hztT&v4w zu!o?sE3-!!Jo8bC%ka;mJ?3wVPvL+}uXmnsUJKY5J^=u_CFUl(GxIVNsQH8IA%QJ^ z2Jqfjr`r80`>KSWps?O9lRs1=S@1^jX1)PSh8tR}@TELOP$(%`P=Kn7iz3TwbL zS((qsGEJCQrJ-Zfwe{gbcGUzByi7>5jYpFo;5JtePM}|aR+hgy4LD>4Ytbw0ehsEE z`?W^#@x~8SXj8QjlP@Nl#)Mu*L*=m%zgbt8?Oea+yCy|F|Jib{-@19&h_O+|b74E8 z^I^d;Br`wZ17muT6XW5SnUyR2Rw-Ci*IF8ViTH~F=KN1KW9l6csON{*y(?=4l*`t5 z_3hkLfVzU6y>xV%fhJAfRrp?|H=hQJ_`)a*EfpBl9jj**B>{|$)HDvuSD|C0Bx9qN zqhwZ@3UZhX#_GqIsxhFuu*Cbb!aEEQ+m#KOCEo51W7F$3$CjquetLPb*&L2#bp>{} zCbX_xtDdgvxurW#GcyjU%JIF|YxNH|*yb2eEVy?1f?lxJ{-w9@jrMPXW0b@%!Z?~}DM1L0)qR%f4IUe{SArC z*o8lY0z4lxAZK6t7I6Cc%eRdD*RzwK{_=g|qZz5|+MDO^V9SpaK;g~$jJ}_&qCLfw zYJcE2o1-44a0o%x=kb}x7Xu-_s}>XJ0i8EFN`xB2N9ixsO)xcIT`@;*UsyI)b?245 zfqZiA8p0bVmZ@B&3UrFWiS(Cs&rN>&xmkZ6w&=m%?~F_@N^5>i*|}2iU?+5@a+?_7 zv@r<6I#41e)TT*##Dlwza0hw3FPxia4={1V>=*8nJ5RUXK(h{v}RdyXfzV5UO1 z9;zqb0O%}G!H*>jt$@At7>q`Y^rSkootuZ{?;iY3#gol%Hc=$fc=PebmJ+_{;9A7% zbQ}KIo+)&uWyO3f89XWqCm`89m+DI{@0K@-{uJ7a(F^Zlu#U|K%dsh7-|0HyWM9DYL7ChYEd}-w4rj#VD zI7?iRME%Q>U8{VVLSvCICya_YXyI)}bgLPRq>R;ja?(F@3j5;Qe5N}j3|xSp0o*Ta z@XT}-)N7?cZN_eME*8x?##?X$qEy}%`I+i#U4WNQ%KS_#9yB%A3)i>ZtZO$Ff8DO^ zs|^|FwFS%C`zFMm&7^dtakLb?At_NTFwQ_UnCY^1007&Db6y z*$(Q^qO6&)j-~^iY^T+KpP{QrEQh8`a$I%O7jK{1d8MJXup!ZJ9+zfIG&tw$e|fDf6`G?JJZYXtM9DaDBbV_ax=Y8kNT`L)XIk z<)`Vk=68I_4!0L^cp#lSCUjLreejtiu3UmlTq;FS{!j8$u20g0NDPP$$;s^5=>7^* zIc1(abu^K+ay11N(6o-Og&OvM#vBC-l1JaW+A&$~e+5%a1}w9_p*w>EUmuPQe)G)EE9g*?H6aL;;!F(}|V7jZZ7d8`gYEj}F{gt)4K!0vw z7urpq)5sqM(feo!(1wQ~gm=zHzRaM%=e`hvqG*)Ry?9ZJ&m?{m3m$_9Ya3&BfJ>ov zQMNBS)nN61WwMkAHzU*iL$_O&AB~cKSo|Eb*Ct=J@B@@oVLPjHy`^^+=pv~8GvLIrvDdW<&2hl{ysm%R%bkM zQ0~5>Y=$PH{%xMUBYG=RAFi8KwDn)Hu;IOt*6z=Brx0&Ac4~VE!_)ecOg;M)z)L7x zz&01W(NszD&l@4Z^;99OyHbFaBGSW15qr3HnL~RMYFKuCv3jf3eMr$#n%wqU`k|_% z&*FuhbxpO()~8&%jbauR!6dtPS2j2ss!%jDb>V{@OOZ~G>r9c%^)6)0tTPcCU`qHA z$-k?f1VF-oVK@V{_p}|*J4KU5=5&(Y9dN4K7K4+h^(mV4{fI1OP@&yFg*%hYa}|Fdd>5hBnZ2Wh$TPOhRh%~zpv zJfiCQlfLHhNboY>e$aL5PKxiGPCTosdqdS{15^LdSHJxYZ>CU?8dgqL&W0uKIXUSU z@~2iB3f=JdOZ>NVg%y1|MJ8_u8#~8>oIdIWkX+Cv=8*7 z@a>kbookOLxK=7}U&v}r5kj0xPgEvaW^u>d)WV^Jb1RliQ zrtpQA^*-20bQ-Xno{=bL`a`KM|B+?o(dj_XjsoEv$Ulb$svuK5)m4eZ5q0lIESI>~ zm~L>IF;RUYB@K+_SCnR*c6~UO#HUF2TP7t(!Q8&&yxqCp*x3r#(%G~#x$8T9-RiO- zR`GikqTsVf921qcdC2izPkwlZIE2bIHi}v0lB|awj%67cRflg%<5jTh?|w^_5P!Jtqvqq5 zY_Z-O&US#Z*s7DR(2H`zsh2)X9}^QbsC@Zm5XsGm>vaArFMWW?^)gnqgPzvpn{TK_ z`*jA8?@5D+^RKC}VOiOYXyK#y47;W!JK1;K{cE1Lfcf+4d@%vRNe)T}$?W3}B_q_d=O{U(zmA-&&wH zbF5t(Oy`w~*5S#((dT62Aj{it*>mIS^IwoN~MuS>_arF4KR zh&CgxbDhm|k4^4D0S6{1$y}xW#OiKUm<@opyDahksPKl$JckrN>JTd72{W^PIV?P5 z1-_hd<%r+dG=itds~NO@YjKSpAMa4o=M*l6Vs-v{WV*)c{}YyW>oY)LmM`o9VLAGS zAl^vZA@^TYUM~@EIEz7wo76O+aZhA=UD^uWi`rV@0~&1|OF`)F5CCg}F4b7a^l+!F z`+|fe9|y}i+TGB(WdLH@N4zuG1|AM1H%&w8Uo_U@I1;9%K?<-;ah2~qVa9T;=mi{DjqZ5kum$I8PlRkyvGH>NWTJa?? z8tPjSWmNrXf$$r<=ag*$d+~7pFQB&}8u&(N62`8aUhE1$_Imf~(lJ(Xmvs=*SMZXZKwjAPK{~zvS#J6x2VUa0h-0i~8q2dL=ogvO3B9a#rgUlr;_Bc(GjLy-i?r z`vu_P1}^^-XA^XgwCl1}e4@;fCT=HD7bH1;f$Ybj8Fa#bvK@6hwlJ_0!iA8$zecMk z0tKjQg1#M9K=CgGWLpq@2E~pnBNk4W@Visa+sxP>f>IiuegP5GW8!G?a0II=nI-=r zMPHSPJ*xCc6w@wLcc5N0M`gjS1uWwq0LcX@%fcwuNXxS8yde^q?Y#9=38*X#(PG7U zf&gdlNo|A=C!r+^3OZ;JtdjrFEdM0sJfyzkAt$qp3ET?;C@$~_?87fh>e^Noo^zl( zGSGqzCRHo$cFVqCwL@+U>XxM)Kw_kA#yt2qFPKo-H3vSL|08svbpb-8PmJkG(2Sw6 zYG3ml$iY#Kqdo)Xf}>qVzKZEvFSCDX9cFu3>Dl7##)Q#q#2Rmx?-w3tVDdl>G*jYq zL+81VjJ_uOyZMe^Oy1E5Oe9;L9f4*;t*1^i?#h^0j;D(g z8FXqw4r4e39zv&ms^EFr-#adiTjUhs85nt7k}H$g7Kd9GXZIpK(hp?9&AOfE8!G}d znAnu^Sb&*{^*PduB*$sRftaHuRJUlmzM-ykjJShja%9r9nFI*6D%1w#^6#kjeh!ZQ zu1PN={ABrdTt5&Jz6}Jaxd!hELo2(<>At$m(mLK8FF4VS4)$MJMD$hZuY>2eQ z*Jyp5=&v4(<4b65ik|{g2x-0+tD|mF+0N)60F}Ff*#*Ex3!95Ar>4n#8x*G!qo=L+ zJ#{!kOxv^?w>sGdIfZUn!i3(Ppl-^v+Ci)kKO>lJe#Lg$(|~N}V!eM~uSX%4&-K-d%HCmt~$O z{0&T|;-A??IYgaeD>mSKbNXlvs$+kQo!7jsMfL2S%<3Ann_zU&b zX~I38_fxO0&z@hVAGkM6f7Rfk~^gK~zK9|B!4r+p>@T$1J zd4f2O{~m)V4N$6Z(`4Hu*+T@+67M=l` zmyDb-ed=vsE8!BYMa__j#lma1!ysUS%uUo0u zBJcg1wyiL8njK73eqxO-C&LRT8-+Wq`;iJ+c62}fNDbd}CdLIIKFg~wyiF-BYuBhF z!2^b2%^9J<7l*_fR|G!eltvzEa=+55Myu2#1D zOr76IU3<0el|)R-NjPNZh~x%PXI0Ga!W}xEVeZgb(tLF_LNZDz`R4u1Ww@(W@iWz6 z_~;*Xl;sm)H^(6N7JXZ6`T3!wp84tlIhxFKn(H;g;uBmXlSjGJ`xt;(pVzk(0wAU3WP{b`fr=JTyZ2{O)DtID5+*Tj$JGCg(#unf> zJVlTW!RNW_RCCxKpgf15kU-$LF(a;?9Xs9AOO!aVt4oC6kl`ZfT#Qa__bh0kf)U&P zHMnwxp~M2djb><5Y_jWY_M@HYs9Zc}vXk+(yba4i-1L1S&GL0={fP!_2^hihhy~TQ zj&dy7j(8Y3XZDL6Pk{rWYj2EH+X;gSc*X2WX?}&%{FOhm3uLygPdFiCINO${PW410tBU~s?Y9@QF+hude0O# zOPfd>TE6%4GKLN+2gl#io^e)R5>l#GvCvTF*a)f{Zgg?{NNZt(%0TVR?ke9-V-t91 zgxwq(Mw8)skZvhmRb0|0up?9L%p+Rw^z}y#J@-$K^H-OmCR~e}@C8ZMIWnRT zQvMRrl?d~X#%;%OjuQiFPG&n}Fzj&lnvr_ZkJ8YE)ONK-GpbJ%fnf zJn!w~-PYbxQ&CH9B4~H- zbc;r@suzW&Qkri6nFGc-WPA=a0-Ar_N=XLM2F!cwTVm)kaptIFJndX4NXp~0FQjZ4 zHfU5FARKx?Q{yQTJelatFa;cFs}>yi=_OUfn(94*7!HLD3QONGe@qF-UafC55SUjW z>}l5(e9GI@$pX zC1uy^)H?v(O@wUE!7rZ)Tn&Ac8ANi+(41(tN_gJF64C_tDM_O>r4J zW&)F6>iV0~KO5dkf&{S|`7juA5$%K9nvz5Jk@~fK#1=<4M?EH(B3hsCs~Ww;hiEAX zF*eP6Gju<0hiXOgC~Cb_W21W})E~9tlq^YH=aj)wR;OBZjwV4|M+}>WMCq-bveB%+ zKF1rL!3K81Twf{tOOoFQ^~Whj+$GLpWua-F_QTgu$!VJfbwCXyv78+mmvdY{bi(i6@?)1L-ScV?ncN$?V8G}gRbuvIBf zM1rK9Oq2!`O^7Fw2Z781IFv#}c`l5&VYv7#=MHJa7KHSnoGAH$dFZd`wmdw3~|y=&X%tptCAxCwRu`MKN; z5Y}b1e*7d2wCitICjkZnpaK}b&ds4got1^IN`t$TMXvAqL%9Xua3(a+5QgV`knu9H z00pnaN15l9tohEB+l7S!MMqu$Ery0HE$EB{L!6Z5>KjjJMOcYb2!W{CMh<|Hf5dIRKL)Ewa zK{zMpUFzm-e72Hs(I`;s(!GglrRl7GjTE0{Sw*O~OC~>5XA&CrR0;ILhIxZn2Da3L7t|OiB77h1tTtsrb+v2 z931`u&Y5kMTb&tO;y;Mm8#iFYUIbe4nHNE6q*DoDEVCVhlLEILt5L!y;<$~?g$twa z+8}m|`X^Ug3(Il0uFI_RoYdc55gSS%ao)p(NU+9# z%zLq;D3pVMY1cTh;?j>T&U{UxzA5v61hmh$VQJ*xR>a6T$`rdZron$8AYz63V11~g zFA_2}vpOaKI7-qoUczB-sYSt>%zdFYv$J?Wd3D+CLmA|4SqMZMfJWq)T1iE1yj<A@<@j~NN_a&*qzMNcf30C?BGtNo?e)|G$_IN`qvFe3Al!6~c& zK$@}hp>jPaNQs%%Y^p>iU{+RmYriQ<48RH10SNy9%3CM@VV`)MtQ6O#f#Q)5}_e`*b?pFDp@ zrSc?->|_t5<)FqsgyG6xSnm#qL54xwSx5Ms3 zs;ZqZRhPL|VD;3S$SYof*|A{=R(wuW*g$H6IOS6)De>qUZcw95yvSJAQHnu{o0U$W zk=0k01Cp^ZmQ}F5Q;y^p_4KF~wjjM83vsO%A|?BUJ)nTZy91v+0hJ8I6kw%(AG>Po zdkoIi2LJ5%33Jp_`(1uSDyrg|dqP0vDv2WmnHw9ZlCY9h-%{~iT~vH3b^PsLh+0%D z{O{I;`nu%eFbO45yw!x+N^tBbtt*la=9EVehc)Q#?m5yl{tmg8w|7{X6K7!8~gmbr=@ zYhrKcREC3h>!@#drxd)1of1HcjHDCYcyzk>0K9wj4XGtJXo^A#n2-r~joR2K0ufVquF;4AW_aBN$$PF8R-INESGAkW!hlqe7eZ$e6o^_P5wxzRDgaI~l|zBRpaqELZzp3m5-}m^ z2)l2!bl+xEiRMrK2qvR2G!-6VIbYz5Sr`w!nbX~RXU>Nhin5LfL`Qj2e!DK@gUgV< zDFE#!Tl0Og*t2G=5QCB#`ZigkC?t9}p@63cR8L_ng2=&xes|GxePQTI#CKb3Q=h=n zoe31!n0%MoU6MUAQc5g^P)uFMS2HRK-D408PKBy4&owA7Jl zs1=`v+*fi|F8_nqQrG7l@sD2fty@E{JkC31YJO28W`9v+Ue=8mKC@6u0;HK-=<|LV9S^n_tC(X2anZsT^fWq^l(9+6OGAZ-DefGs zFw>3R?h5?K*-?h;OB@8sU>2*5Ihq54h7HTmRSI8I15KZgs=sSkiqaNxseovca{$OS zx&vHg@XSVF2VYLJC7?E0`1FyP#pi^BJjnu|KtFHHkrS(9{Ut<6b%$Q1*;VqXhG1&~R%#2MD6c4w__c(Sa^wErYtWy%`n~XK z&o~x+hz$-qJ2h<0gPZ3qb&6ZkyFauI5=ZbuebQ`;Cod;dBP(7@6Vg&9_{<`O^@F_g z?8#z~^{vnVtgPSc{!8?&npt8LU1ipgOMbcHVE%Y>xEGnfV!{;d+UhH7+#BsrcOHIz zcu|siE;zcumkWD?GKcc^29lpgnhy=OhGM)pM!nwcwiE?D@(0}AOQS|Wcn(+Gk9P(= zz3;ARt9Fco=WJiyOSNn9`i1Cg$CCqc<=Xvu;=m`!N&-r~)}KpqI)YhMN>(*O;fL$w z-7}7vSk}?_uE>NE>+!#pj>UGSGUuoIE;mju^uz9(MAeP;^DB#kAkF0Uu;AUc@oqz@=UiJ!CU~->qKkg8YJn-5t}eYdas z&nuy3>oh$SNITb+Wt)BuEZ#dFg)Y8{$qfiWBCplzmOys|GZRxG`chOK(sXJ?nN&p5 zKoq%5H3S*%ybKv4Har*|#l+N@F1^181O4Oe+lR{!MRcT~jePnA_++53vF)s2VRBv> zx=4dK$tA&aFhe{CGog#crKs$7HAIY~9bGta8h^mNJL{@O_}A8-zf+7RZ|0|PH?!)% z3~JY(jmt3vJ9euV!14L0)Gi>%^1b+qBl+T4b^N{ZMYF6QNT0+iZ)Zj1 z{%wFDyo;Q6iC%Gg7$O8O37sqK;9&zB{iuLD&}%ZDY$SRe^3G#dzptN;eNymI_0bhv zag9KMUh6e&PpXI`7@q*qHb9Kf)pR@qp!- z9@i}P#^N6SEWd)J1zwR6Cf62>V&Yi2^UGWh=ky{Q>lttcK&C0;L0qHScEEq?J+y9$ zRSIh8a*lz*b#Mj38pU>7)g&k;5J6(6oARsV$$BpHgk6-lH#em8eZ5YLc2Rb%DnH08 z%PnkN=#EcG9IYE`N6vc-Y3O|APB<&^Ok=J@^C+nGx`-R-Z7}_wK zuwmxK!sW27ZwM9^aysoXTO1%`ir(GEf?5s9BQLJ8OpWoEFr01&MAzN$;nPD5SP3tL zU^x2>TF0He!KFkAbUgCJb2@mYXNR$>PqO z)Y9i<+-(YGa7xzpL$4+Y{ie{UWJd^PI9^D)zcr@oyku&C(q@^Ea9~AmW|=~+P;C4? z2t~!uaL9MH^aeQ!%n!Yw#lG50NVXW>arHuzSQg?T0$Bv`yGUXoZe|LTNirJBFguXo zfnS!t91a(tbLtOsL;yXmi4PNwM#`fFvlIpi$8lbJo<$t*{(`^q7b&b$v0kHNmeq+rL|x*Ee1 z+(QkB>dclL=7p6V1oM=%)9@U-)6QTl5O))rU=;e3MW*pZ zzKR|^mHb$Sev2pD` z7s68m&=ZHxPzEp0HHMHky|~DIp!f>s`pROu1{SpaoUICyZ$~&!7R-+Y&}FDRCu#0| z@58T~bHXmk=;frgRTe%>kAvM{rm3{>V!xp^_Tw?T*`qKt$Z%IKE0Gwm%U%gz0{{sx z&7zr!zN!=-1HHK|24#5<10DS&Z2uO;*sjwDKxiw)L%t}#-^-1w+p2Vo@v<`LQk~|K z=VaW+$skbnVr0%yP(lg43PHm1n#M6oso>R(C>h`hmHavAmQhi>tiMF3pgjkpPWze5 z8WElgFJd-Xug~ayV@{^D$gi-I%?E3a%v`rWIx#!kAHg1uNn9*E9zT7NuJJl%_9pSn zfmHX7V-~oJRb*1CO)HXrUZVLO<=Md*6>*gYpI=;5HB<6g+?!+9BO4y0Uqu*rv*~^v ztZRJ5&C}$~7aEBL&OT%(AawA5itq@@Bq zyaVCZw!9wMbePL>bHJwN7XOseXFasd{5zv*2#d80=a}P&G)YFHi|x#sxUTz>Apt3w zNjIGb&v190{Vjl{1Q@R;e zPm_<1*W}ywS$u2B)#2jlpgwnhdj3wfDs2Z<#_*I^C~}28cD0a~(OwhR{-pE{+5Oxu z{Y!>{1-e{mzb?H>v`#K}r4OAL_;IyqMDhKingH(VFoepRu3VN~;u$m9H~b zI>=+tRU{SNhYe*m=$y#u9(>zjYO7&aP1`GYndp?62Qy8#>r(hzWE0I8ZR{;MRW5(t zPsBE;Ox->VxdWtC_+~Q`8{&P6}=6>E89SZV$9=&j4e%n}f+gj^z>UaOygC zsY@`dFi5`1S}-^VYGc~Y>mjz)g%6)vUB>|h(zX~yLVpYyL5hRP&E)KVbX@;C%iS`~ z0oBNQ1@Oq(rnw;<8>IVNQs7mTGT>cqZf=><))dnUKBGR@mVPK=b9%=<@jKwhb8Y`3 z?j$$fu7}a$!$YqZ zsiDm6;fVeImqA+^oxJA!VxjT0>F4Ydo7uG!XZobc6OSaT42e{V5?B!(Jb4N6FR?TlPC~CYa{}T|z^yE94N z+2ihW9|G;{o|3idrtU-VI8-rpUAI?8j}R)WlKY{lI=Z%Y`T49@9d|PA3nP?hCJNL8 zN>L=UvhQnySm`yjp7D@t)>HMmkf{M{DxL}{r31kVi`uaOUv$wUWRl#FWCIn!a=e$B~_Ph2Ub@j;MgghNj^psB6- z2#I2cq}ruL+0eZsMz(LyD110Kt{7}>*OvKh{?VzE!GIKBXLGS?%Z)hJ&E1SfHhFR- z$Q9YC14N$@U#pXW5a2luW(cxClr!GbsvH$LE@|W>B${4i-ys+^rF6xz4_98 zCq_wBZdMdiq8PKpJe?IAM@~Z;9?4k1kK30Qo1KbH&DkLajIJ03`)LTGMRGA=PXmhf z5l*%GUiYfdSG#f8m3ClTCw;i8($=gg-W_}Z7RItmHGq7!^M_LJFOgzWr-ayC&JmkX z9qP33Wl=o%Vi;K02%@4-HpEab^!U=gV`6%n;?`APYDg~eFP=UkL#a^PPrc^u(_W$#Z5Aj>=M5+ z7b}yKda*KGVZA=m_0doIc$dEOj?LJ)5Y1W$E{dL%DMYhEyw26Q9f6;G{PD;4cx+tB zl!NPHk2KLl6FW07cEOifGDkR$$$L|a(dLS9>|4n<{Z6@UX8{j-^#cF=BhnV9p3D(i za!xiOHA$26%JWiHC}z7Qacha}wyI5Yru!a|px3dl zju7_FkJxhf{C-Vp`xMnQ)11uUD96eoxR$`#rM`oseUXXM!r(qY7r&SkTS9jgv#?>MJ=zp-xa?9F$ z!1i?gK)FkuDUM)w%l(AZSo*?^mBrj>i?L4FK-6lfg30c)mC<=KT=xS7-zCSM5aP>P zWGFobi9__MM(4lsOAMNhJIAJ~xfg~Ts@g}9rE;ze;$(W#y*|RwN9sMJ_^GkWsnc(s97v7M$*3)_ zHXsqWQ(kE=ywEJ;2spMj{}Uus&3=S>^f%sx(*se*O4pjM@0ZZ1>3G(Cq=e)I%NbE- zO@FF+n>$)&KY(qh%i_ELcdc8eYarfY(zQbb|8$z_tJ1!s^3>D;0FQV~qB=aKKhOU6 z1aDZCtoYrA8*iniiuD{>SRsMt1gZ*ZuH-v9&>V{|G+R{z>ZfBwvV&>KCh6J>tr zCxBl;FwOvS=yoz$5*FwWP~Vj{3y~!kko2f3qKoZSdLk; zW%X38N56)^%JxDw=@@(yEUc;d^?c0d6dFEyoI-kH)R_8eZfqBHWg5`sY@|-jnP?YX zj>btUzO?~Oel|&Sf8|H4|Kw4KOCZxM+3$OX zRX|wqq|#YZR*mF%xJQ=w8)gc5$2`|~ zW3`c-+7Vb!S}=5FA`_gh`jUmu4|+U|E1PpX`NwA6^p!re)HDm^(%-mqBGv*W2%7gE z1ET<+|5U@w!e7$k>gX1QyOW#9+R-0<<=Ha`Qz;?eSnD9aRuaE;Zv;)T^AmKEH`FZ3 zAJA}(yklr66y= zYwmvB{J12)1m*1}^u}RKVuJP@*#K%ZlE;^)d#Th_s^3~fcX(mU7zrt%H4@EHe4U*+ zhFIhcmi#m)GTUxnMvVyDd0NnkvXr4;joa6x0fZ0M=0&*wuBEcv>gv4Rb2wYEhN z1A4toHJkZFkJxXakM3j!>QA!gY!_Jv5mzs5VO^-t@hY{{Z^zyw`}A&9D-~|KSdB7;fRf65M(m0iKC?T=sg9tNuPHd()cUczg#m&ujW*em7T@px-XG56mI- zNb!)MXJ?;%vQDx9@Txo(1Qcsl45qdwJtNaDK`t(d+u^`kW`9OV!=q|G1jMXRuQv8g z%ouDRO zLOkSyfxXUG^k*HgCz_9(K2i7SutzQrc3Q4Tp8o&i_NbTwv3=-7&eB4x#B>)@Q~O9j z1sJzSF1SaoPATH(dCa_8BNH&FtTsSWRJFQF9Z8_VHPE`_-rM7~zje3w*u&Cf9LZ0D zb*Y6qvMoO1zmONB?}5>{=Pj&3hGn~0CG|A7>NZ7B6gF$tmT&=q^ev!x=EB1%%6ygy z?axaei#O}uU@OY&f(IBBVfCX<0lOVIe%>F7sna1D#vZZZt$z4MK$KpA_UtvcC&&u$ zoUOrany1Uj{*^zDvpZ=Ze!xv5op{$Wb_Tsj_7Q18$Y4U0*ajfy=up=fBJ*K+E2+QP zGfh;_(XEf*$wEx*lRBA{^*R{UC4B7C7@4$9X+5B*m4}Egy4u%7gW2a^UeGw7W;9MH zoBpL|l*5y#(s@yE{tb_Hm@N1-?Z=jrkZOb`EJ?_l2p^<9r=Nb4#-K^+RRU>B6JP9- zkf^P!e#~zTfg4FSl$u|aQeBmzCM(pNv}vu-K=g6dFN|)43eAfXwdEkIK?Ea@N%OcG z|B4C4m;(fDeT1sYY9MtIPZR1eM(bN_M5rd>8g`SZui)@!LhH&%TjtUaB-~)U^U}36 z8W$r$zbdG>bPSbV1sk&BC^?%#g2>SVYx=S`GVu)mrVrUSg?Q<`%rsB}7~yUx#5Vi9 zMnAcSd;nt3M0{i(+bNkYQ{1J&o9j96G2!agM-M1sGkWI3XY|>jt0Be8< z4u+>$zdI8?pxq%6TG>00XsW_@%y71ltrw3lD}p0lCWqu_TZ_VV46^hQ{wUo|K*gU( zo%?c9D!u_+Gj%HM3RWh0yp~mZSdD16cu+#1F!lyJ>`H68f=S(+*9>xswbLDNb;a!(Ty{C~Xf{&ZZiv7BDObt;fIiJh{?@E%qw=hku=R_b*c#Xd)P z*7$3eUPtJ~l9^_ogllkIJ z3>MczcY_8#r(o!n7XNt(9M6+c+KxI+IpbH(K zT2N{rGJzT9xixB%zu>+BpZ()CP;oS~PKxflln!#eI@c7%Ik}@Qr2W}J;%Gp0}0!Ee3sB*!0eG&f&WCz^n=n|;pa2$ z0tP^fX2iMvmQVQSN!+4BI6`pRxe3u+WW#}+IysG^9G?!g?XJ-$pZrZ?W7?xI^LddC&MSp**hNkFW5gHP8^DEgrOhJ zfz9ZsYV@h;9PxDLVfgAA=PX{d^ceaHJxTT*n)7Un@&m~aCt^EwJ^o?ri8(aH3x1Pq zd7c8zv&7;3Ol$qzf?1T#tK5hZ^xBQwRNUn*3=_;60wl-HXh`U~ri3zz3P$dhV;%!} zA3!qSnTRnK%$46#pM_dAU*sP9QT&J-OYU4iEgB}mWyCkLA7e_m@dA8jewS@Tov&@o~+=9`G=C_H1w_KYUe_K zLW;89)<@XD8Jy(7HE6u)E{`-O5k07VFgn@rs`Pz^$v7N1eHEW1Akj8lHOeePv+@WF z6vMeA&$?5|#z!hslH@%*_7U-`g$ZNCsX_bQ7Bv0t}*tE`GxxN#SRm% z7gITg<)vpj0z23_>(GNa72?c^R(Tt3Z>b@~eh&iwP&gJRK#o45VBD;RC&0WCr`t0! z3ae3ZUBojjJ<*;2WlzQdYJA@+t><(G(6kmMwvQ-C2Yn78OWPnYqz4f*Bf7W+-&5&$ zBA`rXJsx8(p}I78E5Lo^c8SUwuD`{{o2^7^Y+I=7>VG$-E&|e{;3_R0o41R=W58E{ zE2I4Y_^L*^y6puRvDB>al*+0|*ZO?(skmcDkFI&Z0;de|E57|Wq06h-X%Ie*?)oCG zwzaPzv6!F|+SyA-5mcc!pe(URr@t_x9`gj4d5kDx@mC_Fow^4#EC%TsIZq?zc z_0wZ)yOpNnJloL|pU1f!c1EaemWy?!Lc_S^vHtTHK}tXdnuKhNVRTf4zbXHdk5mwR zZ#Cf~J14|-&B#x5>{i};90Cf`D|kmbfed1(aUK%(Y3-eH5~ZwOai`?!Kq4ynwC&4p z>+>6|Lv9Aq=->uvW~AD3+Md#wnn5)3mU(RvcBrOh3YkHH9}_$_vNh!9>5uPOXBOI) zL|8`!CSF`5Qn^&yrl{a)an6?`Q@T*szK&UDpj*J**^g4Z7q$&?l0dK7Vt6MW4`+1P z)H^#(9Pp{v>rFi3ay`PmEXLWbG51yE>YTY6{bbWw==syWBVq`M8$ejRlXs5sFUJXI z%L{L=$ktrXEwc4s(Rwu9k3GVQjJALSyHIgFrujG#20`&i;|CYAqOUrZ3?Dw+bXsH2 zd0-4N?aQ~d|Hk{PP;#rhAq{Yfk%=%e(gQ4zby$m_}&BygtCWhlHczIZsq zlk=^&`E`zSYvSh?RL#%goL@oW4DZe1wE##FY+k|y0t%83P;(LjhMAgkxy3hDju5Kh zNf)?!AY*wBMn_c5heQe4Rcu;m16N`oM4LhL3*M@7(NUO^8QgfOKzE_$YMsfFnvsxv zkL_-u3y{w#_$(}<;5MYF;O&t@ZnWLEwfLhvH*OHkEGRbD-|`KO*~6Hy0IG&Rk0OToz^AlVA)*enp6Y8r9Cy)E=Au=aF9ZlTC8KR)~U{PDn*;kqReJ zp9qCS(20-AKXJUFytg~1iv^Jxo};<-k)!z|B*GFL|DLbtI%dUh>M=1t~=49Qs6 zlo7*+)5NpynL_(3&7@nXCA5``y)*u7Az#=V-5bAa3m(nRT zI_@dkF8b@v4l8VJF7#OLO36d!kidt1HQNc|K@vsmor^DVzM%67vNtJ?bxQkjU01ig z5kJ8G1B&>$`VzHe8Pp>q?*%}_>3tHrF1%QJ40aow%Ka6OPm4~yaG10~3oSE?uPt(8 zesvGnaG)J5+Z0V#WgI+IKkiZfSOjDJV_6>u3fF>9~>)!fMc1GrCQaEPi4$EpV z+O`=Tw*jpZI;T(#+YxRDE%P60KDX{dK$a4DFIO{C2Hwe5dK zdl;`)EFfUv`Sg&k?HLhP^cY18pL&)m>yf4U7r#idty{9Kt#nh?BctKt)w}l*$gxHN z&#GO4`qV4 zI5SvZ+Xja8HARyX>zl1;gr&R3Vz`m`9F$c|C}RCB!p~Jge~O7WLh6DjhO+v%Adv+4 zP_W6HtQ4-s^jU<=?L z_|QA39%>KoO=LUZ;R@vg>-WV!k1u-2$_0Vq)}DTtP?w#m*4kT*;8)Sw1ri+zC`ULV zQ1Rv_)0zWjX*)>@CtseAHZYOm2O}G@^jvylAL(=WE|P&*i=m|8DACwY3ju^fW?s%M zz;Mj_0mFsvVo2bgf~3>oDUaBcaE{zb<&f)5a@+j||MD>lzLdeYVVdr;QVsZz7!1cP zqq?YcITdZ+=G$+Vg>=%UVppAku4mB?OBZ57>!?Bm()Fh};8bbJNS2;}l5^`57dVne z3?I3ckR=1)1_k=@9B`ecg!}ruw_+Un&4-KS;}ioS#lVH_VT58p05r_SZ8ZcEq6qCi z)i^RV4Fdz$x0%9|4^*YNw?Hmu>a`sHqD*HtNBXc`NHECIybM*OFJL*K5dt%-8iHVZ znved+^m9J0cBAXl>|~uqXrqaSHN49~;t29>pjMT&lo2C+0D?9`^8x?{QQNVm;rPa{ zU>m$l#HT*yyV&I?>{n*0G78q``t$6Qr*nRaM-EE-15bv0zguZXD%AoFee6t_lMro$ z9P5R)6C>Hi7kF_&0`0}MarO5gVm660;LOP`xZl3 z&|-cM*H0b=8-;H*I%;EY5}?nx{Oir7zdiP9yzJtZjMTrgbh?q5&{eK1 zo-`0H8iYt-@BK4_7u4%s29-8=0aV2da6}6J(pJmD&Izt8Zn3IUTAx*0M(8g0g$*Ep zHT05A$$co|SdPf5NL=#=Q?>;kvBdp&sZ2vOqez&eF!F|9h&v=Mfb#h`ORH{Yoa_yZ12@!69=evBVWOTv#p~pBhCKNjvfID0$xak)625bzkl@4;i=uq!@ z08l>6uu>(;=+VfE9qpdB6F2a~vUt3v6PiDRIYSlvF8Lm^Mp+jMKk_@{H*xvMU)?X7 zm-<=9M7`#}Y{hRBINP$*iP{ND;bf!^fI>^NqH84`Qvq^ER~#-OOQ3s!eq{vFW`qte zAfcMwpx9h0fN*;{JI?-9h?FN}MG`j>jvpn3l!afF#G+77qp(52Ruj0E)Qga6`eK&|CV`#yI;1qk(;- zEO8DGF{g-Tr^iTb`-u3_A*{|FQ`OECwmv@*0_;k zo=QZbXYNM$l5MzrN>@-s0-hqa%YIOt#pw_ykWu_vhRk(CA}a{!HBui0j{=mgbA#bV z0V_*h$N-#W7*@y1y}_-m_SS|wscjj&qRX~arLco zTWcq-uk^^ALl{F*4HD6+2-u4Kpb#Qv9NUxai<=JHDm0V5Emq>na3c))nbmbpQCt%G zFoqtG+=TUpp_j`EvxaxU``9AVF zv`%0jj`~v{UFTDZ3bxriQdWvU&qzt&$MzP0Owl6|KzB1#PjT~v#Y{APJ!$ct@x;e_ zS(a=s5GCHSWbA_ZJqk9d^|`POuquRw0RemvyNKVfSA3BuOF#KQE_Q}k%Qem<{+X?E zZf;po19@db0E&`8#4`y3b!D*6(^4xxgazz zOGf75rW?%Mi{Be;&*GJ+Ac5!V&#stx*l)CP>B7;DC9v=I(9#ymU1u$eG=Sh^r_tN` zliKyWiQ;sGB)B`VIhRrxfCq!jB(nxz0tft$vSTs%-HaA>w-}W_#x~a1ubfNL&-gho zY6~5)$FTLE0ht(7Ai^rjs{wsr9x5wTu7V~H$>Jt?;a+tPkZ)IwDm4R9 ztg2&gf;_ec z++7)H$%7U=4Kinou90fC^%^c3Xd$o;+2ueQ50Bq$OF(Ru_X-Rnt-vOn1(*-~(=VeA zwpA*+<_3BgriShbop%NVI%^=W1}-t)P*jBAO(w^cz8CKYG91WFoT2-Sw?DGTH&=X* z86T9L2Ec-+5!pN<5V^mXLtXK=2rK4>-&vzOdEGS_VJyho@U~;Zun#l9X90w_h~X}o zIlJW;m&AdJn|01rG4BCPkH-LslZqF(F~AMaMN$G=2BIZ$!0-66fRYN^yy2kixQyO< z-K*d!Ct?o+aa|mS$KTj{3sOVDH*eiajB^VpG5s;uPik8L8&HcTOG&i)02$q8czXIF z;E?|JR9Efw_0HR#oBrAEo4(@eYnB+iU%G$d0pWyP&wxQ@l)^@`6RbTl0!FN{pmZVV~oIYKwnMnEFWKP=`wJU$|e z9Z~g~p9@lq7S^4zM_L83eoeNI%oH~cULM%sFC)3U#V{r>2dr|~-6qXhe)|y$8Ev@P zqu^ZvKCPO@BfC%;FsRUBmCQvjUppuT*qvqTnl*34}ogLh18Jh61%k3T|b4`7DmbFK0&4if{Q`e7UEmDjkF(3)Q&DK5HChcLRP$@ zw#-t~caS$o<(c9~6dd##C?B1B+E|oBXL^hH9_v^DEHp%Qm3EWs9Ik3I;wR?7VI=Nh ziUn7IIb5=BK;|-F$*FbTJ*(k_~^I$0;NSg!uA~)Uj ztygNHc@yI|@n+}-Qq^M;6Wr&EUd!mB?FgX`sHMc|B_gfdd~tsJ zU3dQl^i%b^h9k#fZQ73+%mqnhqb>U>Y)`@p0G0VXE*7H9MsA25xE#^sIG^4VwPOL# z(pZ}{^@?k>NtUC0TJ8Uu>Z^WRf};R8d%?>u2-VF?Xvm-{_fY)tfd;gCMEUvj#vd)d zxEybFK~Ty1Juxc>XaEY~8zD`z{^wnx-rxGA_41yWHoIQ&x$iXX=ri7XQPB4z4z3q2 zlM1|uwdg9qrwBX3F8jYMOZ;!$)vHNyt3OQkXv*udJ=N2|qZ*ws1S^CN5fnv9wU{(# zx!`KOaxK=vixPWt(O40Ih1WZE4eE?tj`FE6h)hw61td6@+N?4;XfrtGl;SsXuu#cFMaWtU@INxO|Ir>#wKNL6?46F zh36KsrAPO$)!%h(=){~%p+9-@qX-BKqU(AlFAmvT0FKVnGq_=r!iuTj{2cIcVq>ArrY@smPb&jC{Q8A((UTQKofhJrLl z>o)^PJiXOI0Ruj6nYpjfmK5P1@ZR>QDBsU&|JhbkRvT}PW=(`cYg@Anv*(QZ@C+eX zyi7~`Q4l*BvpRz8jIzb_}L@tZ_+=NwjvPly3eYmo671#m&f7r=_u_$Y!vFOKW2l<0MmQor*JoCy7hB@+L@>5J&o>4EH@eNb0Qc<2UsUT13Y*F<|WZbe28!V(gB} zm}UrNW0T~hpgU)^Wj{2`0jOH5NlK8T0Gu_Q zT$bQ?0mE-ssNF_Joe{m_Y+n#fmo`#+U$maW0n9t2$*^hHu_nH%B1;?YsB`Gb0t0|(l~09 z*F>Q05FN=f$>h)1)XyDRD(qx^dHCQyxrTR8hKX`~fA^#I$KtwP%D)Um(2{ls7_H@y zv1@lgVJ5IHRc^sZ13jPl38UGIKD(~-m;zCr%eb-spo=imqrM#!7<2f|{8?(PkSqEo zC|?L1)Ti#T7ZP8spFAwg^?p5aO3M=PGl2fRoLlts_hb>V@DrB#*0wGR2K6yyW(gh! zY>7k4bn5YuG2*pNXCHxLqL6!9TjM_s4qbcgxh7bf3Db%_O|!;s0Hps-oiVbncM!JF zr?>&m5uuV86WqTCMJFsGRG>->9 ztcqU$q|niL2=ohl;lvk6dO}iQP#QYj=Tgi2Ci()s9cYz0&i^T)^>nTVMLGI^jKt)5 zH}5>4>jbhoTIS78EK99gwG2OH+y+khXc%;+a!(CcTZwqu0AoPF)61bz*-@YfF1LMDU4Wm$S4We*ens5e)}dub(JSF(ado zeabcuC=K^~aYjYf zKBxPXqO_*qRAT~#!f;}Gz4${+VE)ut7g%aDso5KqvXOJPZ|r^1*Qfp#4B(W|yvj6; zal@GA0d4Z|Ip85u-)JrVct>;g0ch6+pS1rx&(-zQA=6^5>KP&B&NVANw>Lz?{yR7E z-jb0QXt0g?Az9xwFi4a%*HSu)&KG2!V?kVtnh8hDJ>jl-vuCb6iziF4S3$!Ivu?0t_DrxX`wFM zT6N0cmG(y*1Fx&1S|UnbVOY~RQgw=tLGBb zL(}^Y3Jn9=B^IzWcn$x2Y`bdYARMc>OLoomB{-O$B-olXUE_-l1wyWnh5tQi$QSo1 zF(K<$OB?l@oYcS8{CZHikJtggoH`T5g4C6S^#n-tJ2f2lCqVpaog(x-GRyjbrWV^Spg!(-x$8q0|d{(_?B= ztMMFMF9K6e0GLuZuhgv>j}gklaN1vEb`?9ga)chrruo3Ezknk$7ehu#Pe9Tvqs=SM z`AMPed(Bvdn4~#ZAeLsswmw!evs3&)&J*D+8;l%J#bDXPs#XRvtBVerZNjl0u2WI3-eZ;HIoKu(MH&!I0rx7M^+I( znK+Z%QSxS2`(-Ch?DumGe*WR|Fd25+r-b;^qvhGl`u(_BTjgEFA%+?=RQvPajgtA5 z`c%ieM$RgesPy8^}I5TN{+w#_NF<+8M{FE9qngu~a zV7%EHg<}LwhJGq8ple^Nc+fsxYztp{I{x$M^$i8}2LT8VX}b|uo~!9v*)~dP1%Ogl zv~+A#Xuz=5r#ar{)UHFX1$=1U_(YIai~UIW$v45D3OP@W+U~sxXlk5!BM#BofQecl z<|dFF{du`~P6;6OnwsV}lsVz4M{@uN(YGX;t5nZLHkuV#r;R6r=lpwRVhhz$7*02k zY2QbD+jO|kted}k?CkGCaq+)}faE?lC7R<@Ap}+RCd-NKC$1~DTZ996xTUASnXOi~ zl?#^OaZ}INjfWylcf4!zUm8K+}tVMJmPVgWrqMzd!QAQz40c z^E=*_pX==OV;RT|B(>~C6solCzP_QMR>%y*VmvOd;>HcXY{8*(R&d<|f86{@2U`!n z*7iZZeIM~E``pPLb{AVv-SwPKn;_Q5ee}c9Q7DvVA~L=^;EVBjYs;z~E**$_-;6eVB z#Lr*C@g4-8I1*e@G7^SwTHG{D(KR@+@s;rS7X~;=mCk``TfCw|cX!Qr)Rcnc&){|6 z81Jh6UA6(!nE9%X48<38neTwqNtOB}6^R8|?u^e1uGnuG+d}?A4Q?xx?PF@X3}Sus zwiW69hu&IFd9_gF`v_)^1QQhDo30ZXS~)WDS|#4)Xho+%ICDt+#ey;7SzE=I{l9;l zIRghZ&iI&y*W_1l*vxC?o%J8C27xpe<(Jrp$L%ZK)q0J8lhxGVF{(KQDR&ZV-;qM~ z%mK`tLOvxm99DFoEFj8JhLc=U@|nife8>a|7{l=4|5icgBY%$BeKD=nuBp7!HVL0WmTZZ04pE!VDJtNh7KYZJ zT;RxED2wRGOR}bqL%Zem&lU?0RwN>3^Gl=MNs{+HHs?V^gj&*5X;NI8I}!>oF8dv| z>Gq3XvJB>^D7ct~kE=~JM*lNl3hCO`peY77uC`Y9dnEagmJ%+#uB|B#iEPRo{_n+w zm&ywx4Nf&FZeG25_2A;f&5M&;W+uoZtVfcJ8}O4* znPUml-cbZamlKh?*O~l?)_mK|5OIP_zio+El%w3YUT0WdR3DhdPG`_FQ%t?BX zwE-LUoNn&Q+Yh>+CB8kZ##mHiKc;D@N*#F6>#5xG52JeHgL?DIL2qBRX{7NSMP@%1 z9W7DnI-jpGp4NPU`P9EU7SH%|zO`ta%LiL8-*hvlu_?weW@uJS*TU>1N0q0+VAj)R zkS}pd_Rr)+(xS>cu&_SKrSp>q6OQFd{4N=~LQEU6vyfj(eNrYjPYz^_&7>|rLxTpA zOK6u|p0|taVwe}YfXGArY<@)j2V@^FuPoLtYM0jjhh?XXt_xawzZ%raebTZW|B7qK z5r37>jtE?%Fd@KQSUAzY{Beqlpy!;O{4`y`7{sto1)0SjKVU%i88rK*_fPx!%Ri!z zUNs3Zl9EsVv`XDYyN3V1(DLWzMT@*M;~c+4!wGd>_pTfAUd|cpt&5vpzSzj@UNzc<@};eX)nwyKfWB~c<%A;LP>a_|=Q+C@qx4}cvhtBHy^SZmHey!DanxL8TmzdV0@(cZA zkJKf&9z>S}RQ~tLT<3!%xHn1T#Q>V=t&M$PEbd&EpzGDA_l8YuGZS9z{`1PN*&!t> zi++Jp#w3NSnprz>2C5I6gT$}XJ3fOm`(|s=f6BjC)K4lzzxfN{OXHu@n8pc?+FLhM z58YTlUSz6Eq%7h%Zj88@)P^(;rYwH{*PsPB5-@UbfzIGAG9L_iSXX#sQBgl&SLf<3 zB#0&XX8AyII@wZ$J8QHDvkEVK6Z3fvc+oFRSjeR{JO*r*N2k!;kitsE{oBy~^NNF_ znBWS>VjHZ`)S9{x#i+8JyhvHWVH(rxCt6Qk!<>fC?@_ki2`ba}QV6mW$*C5lE^_+Q^aRTzchZ6`YYjY@-B$Jnui6#m6@r|U@xhih&2^? zYC%;Vjck#YRo;1<_Wj`{Nww=7JKOJXvo4Cw4~71Z8KrqFi^^)z4+8 zB@L~uDOwiUI=?sv;Uuz#>qig(c2HPru`!Y*Y0YXTSsZh!InVfJZ=e9v6Ti@^w3ep# zLu`McU9e1J{@#{5b9K|LQq4A1DD<_0Z(#!!mKUVCJ!W`OD}K2{Qr|^`sy1S^Cc~CR%+{f zFWx&P%~`vzft8-FGvO#2cLK!;X-3BtC5b?MN2=$S9QM7S7+aP$LX&DfqSE!xAhE_U zgbi3UpHOs2p^HH_DwC}v3hLQjYn&a@ZU!%u6)ro+r8H&~O*=C`^?CtNgzKM#jCa9l zELzKQAQqLM#$mK76_Lz$~fS%4MA=9#wU zCCK}XcBLIa&(D(-4X0c`8=nLy+DaPpBQLf1L5}bRh5v9k8Dg#QeE6xV$6_?mV^yVa^bHqFu(tyW?7MoTmkd|xw zh7t-1&LjDLXpI&po1U%TJdj{*pV)RPyB5l7YWvsJ9+w*RSfI2-es`TE4k~LSdkqBT z>qV5p0MI(Aqg8yuXe*|p&)mp=hICDH9RkPB7GK<)AUvMN=H;ICxR2e^lEGc9^@?}Y z(RssL5_SX0Y>Xx5UHlI84Ti9Vr7BtRz1+zD6GLTDX*9gSV4##ARb>^ZHZOsHsd1%P z13Q`0Mz6L-!oy$)Bj#PuOXE+$nq~tL1g#Wm<&k^$?xr#oqfLM9638d;#7913NNO1gt)$dG?J#SYvqx;DT>a)f9XsIB#%lQ zU5y&2U3(!S>m&;zfu2#0NRvB{tM#y}C8l;AY|P)P!=I~p z7q3}icyk_=-lOKERmQ8taA7=^>GYIj_-BY~+JwPkL&{aHv$u@5)bfAsS&shQ%hAp* zIwojgg%#5hd+-_Y?P&n^IV-XtFE*ha9!#aI5b}aR0sffnwJ8jTM`i*l@)^Q~O`>FK zMYN+dusBdG;Vo9O;($_k})jTv!s}ch#;J4*M&C}w#YHZiN ziq9hNqO=jbfH4qI%Gcyc_5Hz>-#SKYK7-+5wJ9=$-4wF~#~s31d7~=3OBG4-jL+2T zjC7!oHVczc7R=njx;XOotM(4_}HY?RsmRM3MK5uyt z)0pGZYk7|#n;`9W9lD{^qxmw(bhZPU%i?hTyfxZc!8S?`QehC99dSO${mFKc6yF>8 zt;gsuzI^z59Tip?g_<|J@w-Ji3%(y2r^g{+CI*0PO?kies_4`is9Ah!5poh<>>U=0 z`d{Qev5(OVo3=d7=sFC|xawsvIktiFO~}ra`eX)I)Ap8um1i1M_+U|S*aAn+4w^uv z(Za!LM&~!WI$=24BFyWIHDih&<_JT;9^RW%r&#iG%bP$A_n!tTdOj7g$VSvw ze9l1CD<76du~l4E4AA4_X?$fpw?H=`T52_9iXaYHiC9QE&2t_85ZuGEiSo}_v4Adj z;yivDE|{xoF$f2YEQ$r#@sm+)-GRtTsT$!*=d+DoqyX9r5~Z5YY{<nf82|*d zt2r%-n6t>Jva0I7_|%erY|WjSS0ereKB1wFN=bJ90Zi)OdGD50IH|JblV-H-(s`AdpTdg_HW|mb zib^exx;Ss{t-|9S=jhO-hRgc=Bdz!L?VI|?bwaCp@ zQ^Umo{sz2K?`69-g17v%S+U7RsS`+@T|4Qzy;3D6B+masXeNnvNSS7LgOxxmZYnjUl`zqeUFLzHDlv^M)CgY+e zUZt89lv8ZeWXV_Mt{22yXS>cZ9mVVt-m~Wxk5hL8BKj7x<}V)> z?TxR{>?Y<`s(v1!j-O{a0tx`AZpzIk^xZH{Y4thb2i{T4jJ@XJe4#{mmbgNP zi|xUwgVVy3imLqJYPO&@Od2<+OS)|d2(RZgFFN{$xvqz`j&nU81~^>xGH8Rre1a?v z4rw^J5Vn-O3!fC-wxSEBnZO|Xr;s z!E0&0qr%Yb;Mym1{Hznlh~MlHjwgL0U#o4M=g~VW@!Z`LJa>0A1)}ff^EPR+ZRoKI zDMR2QTq2hiKx7Nt0;KsX36zK`>FaF2nQd1sZED_LJghc9@8R>VhP~q7q-2!5b11zq zuGKJ(Io178qv%*15t!*eNDK%=Mt@^z-}Z2=%8!fPG--e!xv^3)l#~Pe2ZhFjb?+|r z-r%>^&tq@y>r)69$|5_DB1Zpu&+WsX)i#YZ|5=vWWD+XPV`Qd{3t-&%&dN~@++v`d z3&$Ml6(x?JuUek=9k^g)Z;EHUz@>J{t=dr6%IcJR-b@*5qGvm0dANVO*vzEg3G_ci z2zuRF;QYi}ttSnmscX1bEuBV&j|6kGD*FAS3>?RrnV?bXm=`nAtU0e#*zTdrq`A;f zZr(G04e5ckNv)LxIV{>8{QJV*VXimuYJ~k1kwIX%NpqREuCmYx;Vqdg^B8v0kZ0t% zvlwJL=~d#&L@|~*4`+q1_Z9EPE&NSLUrMRQp&PsJX!z{$OGRhqvtgk#jGkjP#H31eetAXp0MT?GAGt;vNp&Qn3TEq*fzZa%CoO1Sunb zrD#R_o@-ZSMVwO5BS{YHTNnk^4E6w7FT?0!$mtwjhKv~Zvw7oY;G2g4$D8H+X>@35 zZt-R6j=2WJYjlHhz9Tw;dILR7L+w0IQg_83;kjJHIf~NtsCIe7cd;)33lfRg4?k&} z1%51Xq^zwY&Z0k!gws*3-R;6i9n&0H! z{l+bZv3c_fgS<`20py6j25@qY`0_A=B{BoqD!77oWo#V62O&u zR63@nrT9XdApyt~w_YiW2AB`BjZtW=WF5o3gXC!#6X-kI)vI3f%ZDdjEw?7RetHb; znvcn-q6tmzi6;3V@i;48yZ50Y#Ip}MK(2@=az(DLU5?lv61^&fZz+4`4J2pBV?(m8 zCzutVCa$jETOkf*9cz-8HEe-n<$`()GRzwl<(v^wT?6kF(SVBz#2ak9lXX+j%kmYN=k^NYRbaI&dNzmJghNCc_eRjxv-LjSBPVmz% zlRGbFw5!V;&3lFKp)qXG?B1jrxUle_w1YG+qWeBme2Lu+?C|EJ^+V4`5k#x-K6t5k) zeb~9)u_`ai3i<6P>ophFl|?f}=Jo8s-EI1Y?nygu=^>D*+ZcSnmi>@Du~4KErYeAaSXia&L6oEGR8ja zV_z12v>p7$Sa*`@nS|4l{vj`KM{} zO*YFUZ40uH$dQcuj(ngWSvF)OYCMf|Z6PI&)60r(90P;NqU(QMKSP^g)itB4GLcjN3Vt)z;5zyI0975R756bI z2H{60tFa1_YWTg+XeTmhN9uKIS2H%u$K_|Ff)CpE4Z`75kSk4-K7$SN1? z;ajNN>|luP59r@lYQdsy{iO%07jFSCL(7N7i(92;#(85=8qtPfH>+ls#_v$Aj>@0}X}0Yz_1_MWA`^ ze_s;(G&|l9%4YoZNuJ|O0)EJ#{JODu+X0lH9V@p8y+B;xTmB-%tz+5vfk)`1$G)dO z%}yS0hW31Wek>e%A%tPSa9EhYlv&xxG&cNeQ$U)xsTUOfO5)jmX;M}&%Yk#_#GbBd zE}kI1Ryt*2;l;3+AXK*U)H#ramMUSG9%LtM+L>XIonvguR~Q*EjYEuFS^Q_=U~CQa z!=)bZzmJ}#+JNLn(N%hOsdm%ND>S^I9UX+*%2AM{u1cQEj*duW84re2e6l;_W+fA@ zK&XV7re3iP$Y3kZ6Pdw_VRgaGq(X(JKQ9=Qoi@JfT0%g$XWhCi!L}Ck%NW5ag%;4v z)cwMa(!Ni*`twJR+1}&P>oncq$%mn?H<;y?tT;2}^a~k2p&&f@!6I)A!n54=4z@K% zq~)A4l|Xl(*f$L_US#($_>Rb6L4B`5y=5k7IB$Z6^Qi9SVuG~8fMaUuutrl7BhVC5 z|4K}I6IiGLR0wY79qeuoUYYK3cCxya#VqVgsI3=|65k@EpstKHezHBsw;zD22TklTus->+iYyjoF`Z67 zJc<*0rh6j99?5o|S|bVLCHWdxn7ZpbV+Cp%xET-A9vevn-5P$M3SV)nBb81Y=fYAY zPItYp7a#-Dl;h=Y5Pa8766>h-H~$=%3I-rHS>D3>d83hNG0d&soT#lze#Jw2?S#7C z5}i+5UcO@==1u}I*r>vcN4Kls@fqA-@HZEvZ6E^$t2Bro>yfU$%wD^g3GgYb`$pLZ z@(}YPlygF9LJf91U4>X=OYnj=^g{nkz0h8@60~Ygk1aw)Mlj*Z+xM4d{hqGkf8{4; zLyEm&9Ji)Yw$)uKZ0=^G9@RQ3w8GgQWa*l?g$@HTyoN_WI2dZWGEpY2`t+4%OLX^AA%G}_`uQPZCLZL-5mpRUDi z;W$cFWOug`&5@Smrm9A|;!u9alp_V2tXr*jWL@86{Pz75?oZT1RZ6 z5lz=J9K_US40ITamw@Ej1K{WUBle=P<92?fc{?sYp9O^rP`*(`hQ;hziTD+hGUzKXk`Wnjw$$${lBnGcVF=t2?fwHcq3nM)A={KQtm_UKEDVY~H%+ zb>pmG%h$)T{imrLR$P}ts3}|ATGDZ;^ZL`c~GQ# z`2X?sE^tv->;C_D0J(SrF-23k7)qr%UUs4h4BAD_jNNYU+?6u6%QziOG%`S72J?cX ziAqXFGPTR?ZhI2V<3{B&ASfarrRiu2!$m+vm>C9`8Rqi+eV(-j#C`hz&uhOtpfSvR z*ILhd*0Vm(=e;qhd4=Ll=Tl(79&;SSfg%46Z{|Ku$iWh!w_LC5oB_)(Qe9H`M0{Fe zTNVNDj=c|~C;FKDinohX$)J2p!~W>bmS`&)C46K(8s&wZFVHFCKZ1feG^sLYUE}C_ z{WDH%7uRKm&VTN?-%^=5PjT;^ADXGsFh>w@`)u)bG1y>ZRQr6GM-W_~_T{Cdo4^WJ zc(OGXAQ}S1*#JaBLB}1zlZ?0v$Sm%>;g$Q5wvIIF!-8|Y4Sydcj-uQ}XG=q+i7dj} zxkLWIkoZ3`BdH^IPVe-%2n!GrqWaY zLjP|_VoSEtqEXyS58Ha=cD%Q#vlC^y$^MaSQetQgQp;zil&I+Y3%#3IR>ypEL58F& zi3?i-ASP7Yt;r8FBkI~3ujZmLo~gUgE&LzDLLH)fta9_R3-66Bwsq7WVw0Eolzrt4 zQ4@$wR==tJN2QV7h^2O1-Z1idZ0@GcX!6fOSFevR+y>xcg{6azWZO~!!KP?Lom$4j6*&dU8_-<_K+Ec=@Tm6%}%=W zJP?B+vd`NV?|=yfS*OexjjfP^eV*g4$%6-bo=D_~oI9Q%M1zgy00=S2yAk}vGP*Bf z%4NT$&NWor6t2ypyloI<)VT;23`}C~Q>Cc%kae3+f$oqVl?>UgbC5)ZbNt9NNAhX^ zfK5tcQN$VD0vLPKrLe22*cK~$P<<+_=XTNU0%b-FP>_CT__AOEB3fDcz7JKrO-vYf zCvVXi;yg|hm#}pV$MC&=Bojb6H?{ah#fELD5$4|7Sn;aiYis=Yd6R?I22Q=H zkBBr2CSvNabXd1`-8z3+YTwyx1ujL0{5#)|Yv~Rpz7rhn)-=QdbNkgy%FaUipk<-l zL4(BJ9zjSnNje%N3`oQma!0ee;fxo&gg_@lllY>-K&gF4y8c>#-Qg_2V0ppBS1-HB zysro^b_s28fQq4BK%6|Zm4%^IJOdea{OH>Ba`l~Q^~P{?m*I4Yiz{hTj`P8!&wK8< zv)%Bli;)?*&FS$unvbv)9QqHUTGg3YN#)Dx&4ILtCONlh_5u?e9$XqH!OBj>%Kjn8 zzZ|H>*K6ylPI?JAn{uZJ(3?Eb0FKVH+SICq#%lq+|Ao7D@(kvY8w5?7@670~kB`q` z|1NzqWkEWbWdqP(+ae1+-N?6VauV(4x)c#Xk1de@Tu3ht<}Yd)>5qcrgr^eZ1G~}4 z61sh$CG-N-dvDPe4-r)nYj72?tmR#Eow>Rv*lMb+{O?VZ0w?+(#!2ql4= zeJg5t!vY;I!p|yKMTt|3QFgaZ;>^{mv0-W&l_c%1V?mhtIcng)3NmSCKul~z8%p$J z1X4A==lBn$u$(=D&n00w!PAt9L;=6pg3$evLWtUf0T~8_1-nIo=%PWe@ta|+%4Xf$(vDn913^n4+#fukbI|lC#ikhB6lq9Cp@`^tm z-8Hcs-PSijESsSJA|NE%~rt;Rn0<%B5z!*1@lE;U@x~j0RsXDPbIk}Vu(1L}J z0SxXmp+9scVIQfjluNd;Gbrvp6hD&{>3>Vp!^gX z>h9l6oU&$?FqOo~_VcW7ix~1jDThm#$gme2tRMJ8!PU+X*1^9(Cb&19P~+-lYQwU^iLA~2c(mbD z_-3FyVgo4BjX;s-t;MYqjz25s2M`_`cr~VfpldfjV$*+>-SH4)pu@y@i{Q5uTV0s! z2yaD&6d6l<+u6>utZ&wZPOleT?fhKLo`8FkoaZ2L)AN#b6rQ(;YnV!yxP-mQ+!PR3Y6VpQ*~yJ`sm!)k zIgiwBZHUxKc_=4PC1xlGRItOO%DKJzaT?@cdYnE#q5gu&Ua2$E7s~%dP1CSFQ{h!_ z-yeO*3NuHP9-T;P_0Obp=!U=z{;KRUeFW=W?c1tuNfx^k66d<6B^9qlFM7;u0hsT$ z5dp?4g}=Ourd(9@@is+$|kt(JUB(xDBrMKDK5gJ8#2!lsohRZe_}T2 zPrhs`BQJfy9sM3Z;k1(tsAE%0(m{{#$Nqn495mYDJNoYhRfEwo%o&pKCv|>Iz(eAR z3v54rwaKzK(Ov~yQm8`zmZn(`;5PIDhUQOi%3!|FbwR0wl4!F021|m^7*RncF&^=ISUqD-ZT5$`>5Wt!Z+sVZ!cWkHpPBkWC$wbHdGgW(D}L38>-n@81PHbG zG5rznuvg7TZ{=QQy`WzYZ?ynXE*uO01f!IZ-JBZTJmL{n5~mOJS4m}lk1!7Tb-9_F zJ`EbIoS3taKae1f!T<>$T1a6_e(-?(LSd0m=Ow^CD41pkoFUK_R$Z1zek9&7h}JJ4 zV?Q^1ssl&>T#4iKt|akfX!3GWPgl9}q8#JqIIHvh;0HDtuQMIQTyJ(2-;<@f0No-u zi;l@y4yP}Mwav~~FpLh)p(f@k`=A04 zPtjP3!y<>F(Hw7QG~jNj5^8QBeFjY^G_m-lB}-Q|;TF6zp~KJ|xPgd+zi#m_UlwjI zWnXZ#T^}1WyOS>R(f=8_q=?Qsb-A{F!vs^OyeYS68J&}oO*1xNgTX8J&Ju7xcwt#x z;xIwy_$=?T^8s-(2K!S*@GqMa%F9QKBCUES0i51+bXCG##u$U1=&%FO*uQ&5OZt&~ zWkvxc`Z){YTA&o}ys0iP!r$tCJJh^7zN2?T^!+x__e#Tl9&{Y)&(oL^ z#M3+3JzP&CJ}GuQ@`^hql25$DVl`OkaU(`b@E)IpTf!MdbX>7G`_} zP?D;iBenXt4W={TyXeHZ7>yyB}5=-Ra7Q@Q-1=qAQ=iCJl zk1mmo!X|VoUW)U^c>{MZ<|zkdnlnq-LI5*qBzm#bWkxcVUjZX9 zVM}A*>qpLX-g%Z@UuycNUvuBp7zo$t`^R%{vB1aW6D%CE@13B*{w-Af=oTt>(j-^| z5PryHNK%6{ zUe3|AG_%=QY|5dH2r}|l+~c>^tZ`o}ti>B#ix>Qg8sTyxI)**f`Uupxzc4SlKaw1) z8`#d;&Sw*jO^eMSvdyA%KfEZ*)t|%PY%OWBPo!LkNg@9=KGO$N@Enh@T^w-w`7lB^ zp;*FP^xuT=b8YUHnv*wHz8_zAa8AnA80B2@jAB#aky*hzpZNRXyFM1XcgkHq+Tprmz03}KitDIIw6ia}WEWZV zM`usmrsohFYP*uOR;+?7e{W*q7-tJ##(;nZxYb;Nz1+AZuwuhpKB^uWp#Ma7jxD$J zl#95G5Z~dw0WuSqGx@NXQy!?b=EgNiRknH2@3|w&0d|MR-_J*^p1B7d>3F4k?3HE& zpcrw90V7OoQFsrm*?_^9FXAVBdh;SeKv$5e5{hgcj3CHcR0wp;p-n?!N)W%W+n*;+ zhr!IQJL>8D&CYOTq7U~a=LfZbK0v54A(qAifB3iXh zE4<=lV*zL;vmRuH0uQb(2ODR3l=9;9{#{qJj+3$rZK?9sd z^C7j$%@*9?7Q9U${tC=fZ|fTFrZF}Jx%w7q4XdL2SPg;QgAE@T*9nh|>-&$43C5M` zlFfAWgcfS}vqzyF*EUK)9SHnBU@mAM&chBu7qaC)jgwJbVJdqL|8KFgXSj zUF;yEufVesR)+^dQx9q8JGi2rRc}#+gpB(p=R@(9t8_(UjA58kzaWrIDuKL#1jbSB zimsBN=so>tp}H7d^KyCn#!NMUCs%IqDpCM0G`gJJOsEG!!zY29^57&(ry>K1cLQr( zc-7Y~4GRD?10buhFh8xZhm$SUWowbWV4{-KNRS6_%WG8MWGj@-`Dtn1_Rnft{Tz1_ z76Ji*jlm6*pL$-NrK`O&|+qLEZZ>&%(EO0w)M^2p4W~m$>D;h(US*GN+ga`$@HAK#te1Q*VC4&+2 zGifgyPFV6!gtC(_C;?5MEP$;=Hf;##Q%T>8i>twTKMcm6$ zFjyUkXfehDrLj$bw*?pobb(7g-{~~XV0<0#ySg)B{l^#Owhpz7Qx!Kl6;ye+$G0sJ-1BTxjmV>Ez9Qcuxt3QE^^Pp~m0{7kBzuf0JOqVvw# z${AL$<;qfTI@gS!c7q}RhJ&;OwvoWrg@V}kF=2;HNfil6dc@E@+30`l`%wqF&Z85d zG6rmhO%urt#7Q9njlvNOJPu?9twRB8lO$*pq&ofkahBEn@nt9Haj_@!8*L`v${ho9 z0k9!@-iAVQ(8JqrskR4y`3Mg|A?LN_lYva*8|5b zCm7_$iK{w0^4g7Qdw?Fp+f0La;%m4uBsK1;iAPA~i%@M!KGMv041S5iCcj@FXjnUR zXPb+y{AmH=SeH4n# z0MCsCu?MN48?vS~u%d^d!Pj_0z_jY`9Fgr$*LLk`jv>Kl8fD@&o0AVrx2nn^ zdOrH213X-ahD3hv2!eN_ew zw0FtxAA)sNg!L9^I+7rK9s(=31)~$=+(Exr?rPgaW+JKjj#6^6Y=3^Gnbx(D9 z4LViP|FE!0eTl#%T^|A)$lDY-LenUJ2#YbL+={Y!Le2+Cf8sCLj)vjlUW)q~?D{?J zoR-99e5?9r(v&MT@`y$qoG-;^uudH43!^_i!{o7QPTPx<{cY?3bYA%_tMKOW01#(A z7=Tl**&DdHomdjbKt#jiLEf+jYY!sI;*Q0|47ANW@n?$LBIrt@K#0&SP;XYJoRjHw zADY)>DF!5ZCdjPVr1=3z#U89TF1`9K|iLv zl_}2jWajL+8S-bpW+K5c)VDzL@#ZIiQ^eNWDNg2Tj-axBDEDrXLt21$svjM&4iLIIv2{LHEoto0QLgA${&Q}@V zw)v3);*g0~R2)?yHdi$a{?EtH6h~rzckv-QWenOIq4|Y74e%#!CwI&2Mp?2G_%o2A zJw(DtyICEj2ahZ#Z4YfQOKqB2waZ<6$kTFU$%5kM1&XoakipH-FjZBKrn~suE#>ih z62A?0d5u6->1ULA3;D_4q*o%+~D9NNx2FGhkoF_;Bp^0Hks@fDaD+W0# z#Mr6yEP@^ARzARP7Wkrih=SQ8wNKBj0hPjpMnzya+|uZ0xIy5zp2Zy%$~}x3AMkri z`)=85SaG zlE9P#R?2S{_aql*v2`!)=ge?)$!(o^6QN7iy3Z8n63~VvJ5$kcLU}zJhZd5BcGZXZ zb-mxPi1FdT1N3_s8(aB-9?4=Ti;WESq^fMSU_T2sKna&fY`aNouN}GQG|mEA7yrS2RKCCwrwBCp_b9LFWO?xSc{V_|JI4oJTbLI z^|JX7R{(2{?Px~ZWP}reI?fj1`X4*c5+YYVldnx}+v0S5xeA9T9-ht457!eT>hrzb5%Fd)MAQt1!pY6X6H)(G3mvfj zkzn?Bwzjmrqh+jl0Q8q&0SxM;5A16SZ9 z-s)f)0a!b+r9GA^tO1GNRu5YZA-IyT$Hc3_Ve^irt7qtF@06XaLHcOQ{#f2S!ezS$}s+FHoG%<%!JVx}&p`GDk>wF;B zr_Tjy$WPgpzzZO3@X%h5Cnj4jW9T~~XCcKx%v|AP8ZExXk#;-9U_MKT+IX2*YoK!xZ$ORx_CR3109(a7$SEoOSi@&7?c} z<3$OvVdGE`LL~zpB^3HkBq0`LOmo|Te%K1kj)NW`3DH7}T;wZ`rPK0|J!bEaAjXB1 z-Qou$)EkB{VBu*VT2n&ddE0n;^mGfp)EJroo^ z0@wyBMjxU6hws+IfLv{UwcQSqJ6 z(9I*<@i68e1Y~h700H1O(|HU{8Ss!LB-QH~UmNPYI94uF*T z2|{Tq!{V`?m$(RU8$u*k@q(mtmY;6VO(sAH0pS?6*qR}}@crM zw*G?uT%Ma=JJ4-xdT0h2`u8-IKZ3!;ZzDqqA)x zz~+g`*wE+dwv`AMZr2J#Sls3lxD^>g zk{579nEBK)i~s`W(4tWjXBGJkq|vSe9r4l)AAfIhXL@?<#^4-50EXMlZ6}guP%7@0 zMh#OagG_VG`LRRej{bbe`q6F$aB%u@Tu%!7$f}u4R>Xq}OTMD{4Sd=a;33_PD)hur z4&bcGWTa(5w^$_cEdf>b!vU`pho(p`$DE}u!&`>}zZW_R6{kIkfR#`wc`^byhHcw_ zm2R=rKDKD6=R(h!<8bLVQ+ydG3>Q?LcOpsx(TufCL672Hu;+;xg}r}RK8V!!kb*Pp zLC12{kj=r!1YQMMs=ao7*@zgpa>SDX3Rw1hs(ayb{}235Eo9!f z3e!uh)Bs@YvZl>&DS4b3%D43rpiktHOFu2<)B|TaE7anYR~uy9c4b zK@{1AVVUhwt8m|YB+7O5F-lZ%<9VPh7%ovh;z0*4^&I)L&_eV?q^*5N+xoJ~Ipa<{ z?uX3(vBvt^F-Iae35fuocMK5+NBM+?(dz%*LO!;Gievln5+8eyaJS0<}Se(>&@ z&h8KBYrj@dxd?nh)D;IYY8mDe?(D>iF03(FCU&(jZlJ1D=~9VvH_#Wk=aOjswa<9I=^zkVWDYN>^M* zM{O-}FSo<&zXU128-|q$EM|Kv>9!jeY+bP*squ0ERN=GWMibZh?tqf9*Ef4p*|>t; zyyxmoX}E%w_+DH&b>WVUv3bujyEk?VEWAiry)dO!wmEWpc2fCHf^D#ybx1-Ir(=jB z3<3BYMdRq=p1v{fMCzNMD#)bVCjOuVarenjzk9C8G|N13AQzeYbbm0C-EM5`CPLK| zLnK{*h9;lX5TU9A&>-C6+sAh%z>E=dzz7N1d?x6}4R{o+X079dhFNUpkU9+I`wDP~ zE%VUmrAYTXlr)!$2{_jQi3-eTYfyOd1+CY67q|(s^S|vL1{33 z0^gb8O8fUApjV^>o8Xk1B!I}08?*Ox=bfbxlmbelY9+&e{0nSR?d>fD@ zmPu4D$WhLruG^+H{>E_vcbNVFXECJfV>jG{>H+E(5{Mivno3%X_yW_FAwuWPqKom# z=-t?bm&dJlOaoC3dcT6fqhcmKRM4K{j2$v#v+d~k5?c)Qw*RP6-*}<{m({o$InQ6$ z2IH|O{GspYIuVwiY=V=Hu5?Ci$CNy!Cw>>%N~&2b^|W@!M-s!A`&u&J*-uMzWbQWELBa-SiL%A3sN2Nv?zMgzB$Q1=w|{+uTpKbUC0&Zbv( z@)@#qnpG%T)syJPvJ90y9n_8{7?{o<5r+hZwj}Q~9a8_e%&| zD4;p2$CKJ;b7=C98sJ>MmeoS>RB5}GrK*O4ajC5aU&LpXy8`VM4Bg`SWwNGG&@Bd3 z(ib$3VHQ+WQ@6 zv_%Der`xU!akP$)YKe6HTdH(QtTO(m1$|m08t2 z3ovyZzcB@xTA!@0q3cN45F9znJa-y;;#~7;;LPY;3s8cA%`nNkJ3m2oNL^t4z}8V0 z)u!uIJSXmp&3|=$4e_O(D_s^X`b3L+r6d`{XR?eWi@hoejYhTjHa?)33qL57-W%wG zmkw7mMK31IRGCASrn=CT$#u!vq_$P7OWZT2AzlK-Qj0f=B_m=kd4H^Pyr}3|s=T1R z4XeD~&Lis&LS{4j-D7nTUUQ`z%gU0_C4XT;#QiaBdWp|y_tJxEB>{!arW5I6SM5rS zj4wa)FZ}9)CRfv$Z*e+H{`hy(8*aO|`n(XiY~~8jnJX^hIy6lf4kQYcNrm^Osi*41 zf5cUQpK~vaATZUy47>;brjqdN%dV}n;}0hN8_GtAEAzuX%|2tu-V0&oxA7#Fnl<>R3vRN*nb56QbL|2zeq$_VD9hncy`<_==vPB;s=yE^H28GZ7#rD%|&JrWAjWm!1kVN1^ zz=g=#8w`~yWUN%nQB#w;M+1bu`d^PY$^iO!@Xu4GML5Z`UD=MiUb63grqi?vi-e3s z%h9h>X^X9kZ-l1vG@NiPmGIlWh@KsU<3zVO+oil}Hp@w}L}6PBPMba($9R&_2{#I7 zvQ!jaa{)C`Hb~(>GWo|^@5w}UN9Q5W1$zDlJ*hgJ1;ji@jmiMc|4?;bzVZTCt42?2GI|M^K^TyXdk0Ly%ecK@q2?OA)&#N-uuH1NSTh=~o3$o-S1jYoYCHKh}16 zL8r@b&zXVIkI{xgTYeXKL%p|k_4b{%-?ALLbk-`lYl-0QlU=zQ9NC3Cur&z!qfxdw zik=MR1(V}u9x!fR_4?QH;6u_k1|Lq1Fwmo+o3T*Kzg6aUV6N_uBbV=LV?YP{#ekn( zV;5Fm1;XI|o!mgU@X_1xw)61pp=(U--%N9E`CGmBapQ<-ci9Tpb>IrRI;}6x})gwv?DGy5X?KiyFo5D@Uk6GS2 zdhPzHHlrnO-~>PCTaWO&3;TU1#6SDZctyMM9qkYp7 zzk$3Q4K2F2srlev*dCzF!RO400|MRyaLZdO-x0nSTtH3U92~gkQ}lX7!QZX+>c*>a z;+-hR&sHu_3b=dj52>2h%9E#&kMqXp^jh&D;xlwo8Sk zoZ_blkBW`Fmp1ag?`}XfM;_S|X20fk|G7U8?G9I(Q?(ULvcx>S_KR*FSM|{aC(Y~r zJJM}mpc_aBkLT6I6l&8yQtRw>^2TJPX$8zgVGKhjzB4HtM6zjRm{k-xT-qW~6#vF4!V6 zOiHvQ*|kmB3255tW25?(buPFu1nyC1KWTT%GhNJXtc&jLL1KyDW7FBEY8|6x!#}vV z^}x($3m>=qqgMPA1k-AJ5I;eA6tsR7>u&=gc~g{lT_^fKDVc(gMTieNrV6E2_03yE zki*=yid`D>wGi;k{8!$Yo#XLSlCXsZWL$@``0i>pMG41MU+sk6e7K?%R^YZgih5HsFMZ4oO7Xy$OlwQLU7et_*S%q3Rsz;jv7i zGdaE@ui*ERlebXBH6qFV8z!>8RS}zCIugc>)3B_9y)Zs$NByr7~f?u_k1l z9XE@XyhhoL!_|4O-a8#!Y>1a-Cn!#ax;Esgx`XTQUBw=&=*n8y^x_ooC^O1SKdNLg z7f!>o-rhMxYW(M70yy9owik|68;>Y2LD5xP<{mlfNtgZSa*BInjbEX$EroUc=~eHY zlNS9?;j^&B^kFoQxjNhSIQJ55So2dUw@s<8O7r*X#bHoZOc8r$%8(k=n?e4SBILbfxZJxcFiFaf-8XFrs z(HO8(-K%og<+3kn-g;392sf5=b}R1Q5|JC4ykFze5T{c-tUXL1O~n9y#&=(cPX^+BH$+v+^3% zR=`||-rLbJ0{BLM4`H0}ln^uoa5opvNU{KRN0+U%?DgD_LU4MM*(10(BGLnugMj^A z^%{A?Bza$@s+vw{68&rPp1)ALp9?h1e}|>yD@_WIswrwQUswHD`U#pglUIeo6nFCV$UA${( z&TpSg-dx*vLU)HE?EIB^Jjh1w@W2;>PoR%?u+PL}D{LL`2(2&L38vbF#Pa3&`nROw zXST~K@hOk=^wm%cU)fVxg%35SbCRQ*NtTh0ykxtA^5bX;hz%~lJgXWf$Qn;3-Kp_z z#crMA$P)#bd4>9X<7rk;t^Ii3|6r2lUT!?z^cVkbs$z@?1z#v?(}k6D!L2xCXnAhjQ2W;dDRBbacNoY>AWp_kL#nEG3aRZWpvEih$rgvYZ{x`AV;~Db zkE^dYu0fZsoC@XAe6Nw3X^!4wM+CT$MSKlp)-ru-p1seempX=j5TN?pap)~TTv%UC zE~bz2p2>0aNQ7keYc6xYmk2?q8A=e)sjzWCXZ=;$iWA_xuir?yP@6JAYphUTEZqd- zKgg2eM@b(?&}*LpbLK2b;=#B5D>2H;fCD!CsY2=SQ*KVuh$9Dz1m2HmGhaZYQ<+`| zBulEWVS_dRH#mY#KHSQf_CY)H5v8z2T5Bw3C5bZ$d@Xe^K|M(ZxtFKs_rli4B85dm zp>e6-6C$&`dUhT3XnluO)`^ZSpI=#)*YKnI!Rry*vQtm^HRl@Jh|f0G(YG`Tcejpb znZ?~YQ}pSQ09%Llr&E80E83>VVDl`!eEotu@N8nqnz`9a|H&p^!ltXCYi^*R!L>Gy ztm!TJ{zs#~@}a@hnm$TLF1o9_{Wa&^h}KfKokT}fB>=T67|Mp@-oy}z~pOGEK; z;g0qwd0A9yW$5vu6P4OJ`^OPYN7S3GBR@&n%j*41P=^`-;xv`d4gWjLq@NJwSQc$5 z&1_ubZ}=?&Q8glN@ul&U;|{<%SPtF6>0T0Kr27J3-ca zQZU~tP+ds3S8Gs@c+tm`1X8d126l$vo&~C}HH%i_R!BfYThC*P9xvsEqv757aOLCc zZ5!*;0vs0A-*+dq7pm+d#m&s9tsP~I!d_iiPh7w&k0TgP7`|i)?hFu%aiHt^E#;nv zG7N}fYnCNVC;koRC;=XdJ7CEj-ISEkMzp|#a>p$h+So0B3Trx$zP@IJMrM|Z4{Fuh z`&B!tM-Z3Fuee++J2Asgd9OehQGt8^1hQ3s0Y00$DUuz2tqrRyVI+_xP}|~T*dv`& zEzk=S&CTskf{V*j<|e7bQvqA9Eiy}%TycoWthcPXWcyc?^`DvW>?yi3Z9}caScvTR zIXdvi?=frkl<#~2mgitucKy1bvtjiaq5vK~)A&{Fjo)sd{|K^+Z=M|T^1{RV*K`Jd z+vPa>b|TlU}bLsNFkl^v&2T0K(TGE;uuVgZY7o44cNc@67}?kJihP#CgF zw$cqnok$m4eFGP%?EXSY|IW7N+waQ14v{&h*z=FiPO_{>9MaeNaEATXaZ2--yyb37 zmVhW?Z%Wa|D8~!R1k+W^9l32JUZ3491U@pm_7v`-`bjY@r;c3r-{mGD5}*&29Zacx**LF7S%yWJ zLe<{5K?_E%A&{`hl$8h(Dp2S_xB^-#G_C(@mq(PC9NqD)^zz1#%Lr|z?KXXs=$2Dw zOE!Cda_efYV?k(f`F9b0sOAQZ_+aMGzHU5O1Z+_Gq)u#w{ZWGWi?nNsy3Z9DS_x!i zxa*kNWSRe0sl^^*ACYIcnB8tjceNH!GhZo1~8@KOp7eb%~xds@UAMN z^*mAgwq;uD-Fq!h z!^P#GT+27@bb{y-V7jWkSY-9XJ3N*0TZQrpv=7|V;Eqhpsh#RF`HyZxzx5ecZ697@ zRaD~9GQ}vmptQ8+jokFqe3Frwy{44t`%c~1~f45 zMDX5|2!Pslu>y;9j(AORFWa$)N`vk=f1t>SLX1Z+FP*Sj3%G2HSDx+ORof^l{SI&g zlj5eIa)VHOH(8x6dN#?v1cBp<)KG`9CB8>W>taPPjW6Wro83mS3#d07qn9_8>cmfU zCSEor>Rh)Ga z1Blfu2Qk9%9xgkvdV>M)%CJ30O1i=paLH)9Vl=D*iI8*dl5E)mZGJCbaApha%bu9-0_|hUN z?B2Nn`*DONyLdF#U)WBn3X@&vJ0vJ@CINmgq)}0`p}uTYL`!zDYg(wXF0^5LY+kd} zUo_cb?q9duqFyWumic;AA5eisK9Zo^8kBdVckx-UOwnVtv@gi5hOHuQ&8FsNqbp&; zjw(9B>;P(gDR&!TgEpXPXnT04zmN-NB*hKGinGKKY}Em{A_F+RR*zF<5J1yJJO@Q; zWXWh;glWr^pEBW~E_)NYdGu6mPtnwhVNfP3$3Q#ke>YiS@H^9XZU~KHM8hiW7`pK} z3ydKb_sf2H`c|wG0@Pukb1hI;<3RiadZlhhg~?rfuwS_100?(@WIt|8aH^mc1ghcA zl%~v-X#$1kT8!8*p-ElM0&!Y?QixD|KSB9f%qUt@O=lqSp_3B7p_+b}oZ@SjT&~Bl?gVhGUh0pr$MdH+|iv z-dCgM>xFrq2@nZ2JdOx|nGKaEj}K=zM2 z*5o2hGiL6KX;d`;23{)uNm>Iq{dqDG&{_-BLrG}4j3ksERgdiiug4q?vn; z*q$}{Kj;Ee=ud%MOk+LCN@+oMDg4U#*q}^0!ao0MWH8t zKWV!n1?r;7t}9Sind~?7gnsnWr)Oo3e}5L}7PKSHb0$Ju@e?fd&Mg|2QkiELAUOzu z#E?8fVcN?!EvmXQl@MPV1N+qYhg!`YT>6?uwWvGlbPFD2t}z9b(oo!a|AgZ}bnA(< zJpzas_l_FS9U0teG~mLccaXpoWS3xeUXp!gu1%=jHf$ic=}c%hCWI9V_3UIkSInsI zIaF^c5{gX;%57j%KwshsIzkL${R~(DTD|bm(~!YIlmq3*E5eQdbD36XXo+r`f-`W+ zQ^yvhZWlq5z2Vn}HeW%1O)X~auzC^67w(meo8$CHrWnVzEakz5;<8l=eV%d{Xks_B zTV$_KGLAPsss8-TgE?BUOkzHD#4$ygth*{f0_hS2H9gjYE83!dXH@JptD>4=%Q94h zaMZ82^?u_*;TW&UD3L!|PId&~7)_Fx_sOja=*YM2Gy6f91*!cMtgn+P8lBz6*&jJj z(H=hF&@C%rE6zlc!PRN}k|xHn0IZ@UifB9FjDlP22k)Yh27-wH7Q!06kR94W5?Pnm zSzK2uEScgs!Jv%_^ULtNLlI0uAm3Tht>>eMvnAoQG|J+ulkcRiw)W+8G z21M}rodNN5!%lq1D(W?75_FRT^!~c@O0SGiWsL?s@fv-5lw}&GvkQ_vQu*^RwUvyp z_-HV+EByx))Y20Dl?k<1&uF&Bay6*M?F z$xOwzgBedlwBcr6grQd8_|+!aUnl(|X8Oo~=-wFhS(?vQb6UP)F~C0?l;^-sd<>dx zXtB^i5QzO0f@@qB(2cUZt~Yp)7I`3G*&i+xPG?D@9i>5eREGi(F0Z3of4RNBY<%Rv z_3j2;Q34LIUVOpjK}ew9bOr6M@U--m`l9tPdB#crh3-UAbYV^psP(w>*LGy_h8YPT ziniwqS1*F7o{rHoXbZun3WXus`e%&BfqJ^y;jOGZwIGDs_DmBqUjC>(r|5dSM88F8 ze;bcU$`^tgVa{pmc({Skx6ajpeVYx%dTrwjwc`tQllt8Bo?GK08a~v5V=OPrlXXbX zm>MQSv=5{rGVZOI6dpcHAiJf!>?YezVzLqg@y<|T0%A^eLHUoHmKGECch7}x#Ore{ zG1)4mC;h(vTGDciP!AQj{U=lkgIMeZIYzV0j1du2P}Z>JP1&HsE&vavYS^9V z|AD&?r(u)4VTIURo9K@lSm!gwKzDt1Sz zhvPwFLb3qQy0ZGyBch4$upfh6IdF3t%3czu0RGQYwSDjB8T;tSgQIHwk@$mX3ZhhI!)Fux} z8nA&rU7Jb10?2zXH_-q|VS!SzDtJFh(&nIpWB|vdTipL3SJ>0fIKu$c1$ilMtxHcPnSKD`!aB(}WQy0Cf9j=4-YAkYq!uBRi?8)I-B)IUxsw)h47 zTTwP07Q!Ev-^+pJY7M)m`n@H~?p2hbM%_EcfF`bFP=%Qbas(ZIc9FF26PvBW%yFe8O z+X&8&d)a{zHhle$##sTVoobMOySwB1x@!t6bf}WkF}g5Bt|hdGF9ewUO(r}>UG@$c za1GRC1_iM|C=I_7I~;v^s&f0~Lj~3Zvvv_$M%>a)H`NdG>)$Lo$z~^VF>nbM3!3>V9ckna~Bdu?O;oo7iR1 zK!NUXWGkQm;GhMr(@`%Nq4_eZ#()PRgC4$TN>NUPMnr4s3A#VECSx}95!cNKay?2JY zR72kCGQDJFkc5n^yw&HGzCZr1ortfiQ70yt7X*c8KYO{ zdQ02|d;@Vw0`BN}v1EYjGdNd+Hd-xyn8pr{$``enYQ`Q5=5wFeV~bq^9rkiHGp%2= z6e`LYD+S(QAYvv&KS}NHa7}hT2w1GsN|?X&b`)(FlOtDtLOF($XYwpALV`9U`ZE|A zTN_}sI3p@!^s$l|Hmu1FQ;wx_A54D#`7|6taD_G%XP33UEO=uH(B8k+Wgu#>$%06a z6+${olI4u?5trV-v92TYAKF$>zQRJ;+ePUGl}j`up-+j~sWKlJnrzU1l4&S{ezS#`;}q9~8VjCTKBiTKN?6sPrIzik<7kaycjL=GeJWNNpjWXUPwRAiNip@v4wr;pBF+f9|0Zh^6>~ z&&q;SU*{=hG&Aw*BG$1t!~m~Q^g`CbrXX4mQDsfSSwPSPEEvK;HKF}iyV{2cV-JoQ zU}ZFSc9kaHqBE{z8aGCEEv&{Bzj2RQ+e!~`zc^W%1aaP2{1#A^G3sdRMzx=EH37aj zXgM-O?n8{kuH^<>$a(+Cq|1m6K-(|v;rO2m?jmsxg|Y-+<1vbx*sQ}&Mi0(M@Qk*d z_2_4VxG<&kVo)iLXlS`gG@qC{zB#y!0lfWh;IzOInCyG;*FT zh;V}Qbm1Sl1WVat9~NX9`j$)EWvy#C--T>JnSQ(!#*F z?w9l21^|YvAE0De#NBtu@71054D6g(7ufLy+;X5<76m5k>!^J#39DLmyW58aIg#16 zq6eQv`G((qY%VmP^2U;!9kg{1^{ux};Xsr--w=EJZ0Ko;P`|33A%zQVW*u3s~u|w?U1$dLi`Bg;mQ6$2y?`Hork1z4#O3ygYGFc8dZj9vqRpd@%CZnkJLy)=8vOl;ysO zDT!2%IxYieByU+<940^~D(joy|5B{8t9V^our#%~3?<1@P$?)GqfIshvpXKbBm@|E zHrs2QxS|0$;^6xbF8oJRucI*^P_{o1l&uUpwJ!PPy2&81`?XOA6_r4 zJX$yu99c0aIQmIIQ`@>Fb`OdhQt2dGo$YxNZ%mC!=;K4YHAR^v7Y+* zOT+e1KAR;VwUOx8<=M{iscE90Cu>^|N`!oTaj?PT4D)8s+-s?4Q2*xNp9Nrh!)``r z`mm~|Q##7RFoH5>`G##c-m@V< z+;vA>j=sM=okK934H+Cb_+gr9)A`U=qR_w+d}-khI(JD8i&8J;6o-Iha-K~)6E9}> z?`txTfhJ3DBaEvK=DF&rM8c|q;xl03J{H$CHP5Ag`n||9a&AK^)LU!ncY)c~B>SRV zc_4Jt;T4E0j`jRMVGJ^hlwp3!5{q8hi_jZ*axB|x!xNuQ=L=K~yn}gsp^0VwGBo9F zr{5``0Tw6Lky~)3*0gSjxW8Y!uL?O9vJU*|yNI^NfyDJcz5wOTGblKyw4l%&>%!eN z<7vuVQt}7aLCNEFzL*prU<<)M0ynUeOA*-7z)1@NvmSL@3C3XzJNizQ1PY~e;@PU% zgnKWJKa+N|@ffkbqjzca{R`=?E`WaX1%NGUDO&);aB$8pqUH!}o%{KI@C%GIYX_FW zpgZ}^{Dp;xp4YYMBnlVZX(5c@gJI$UXd7QEECLl!)i%%aWoD!Li}GPp44)Qiatgf$ z)+o9kthoyM=tK4Xd4}yfutcUH1;M@_$xn2|CJV%3XNRe&n;WLAOYzJTp}%~X3Z{#H z<1`W>&$=hOiB1Jb)&e&NZ|xs~+81dwcv6SKVG9D=HH}KW<$QFOpSpD+yDWAv&H(I{ z*sD8N=PLPwjp(MAETZEz^0}>Kv$7ct+pJWB<$<&ihe}FQB!Lah@^)NTu;A_BAzaPi zGQ3wQweIrLdg~bNm(%b{bd3=R#RX7d=Lidwh79<|Q^l>T(A>z4irFEeKaW<9y<}*v z7_fT#V4V|XvO;lQqX0RFxn+K~Wy=&O1mi-29oJZHL$ZA?*chSJkI)fkqe^*#y!qm= z8ORMk=7q<%;;!vggH>q^E&QXCw(}ASXJ3@NW=t#YdLrV}bnVBZdDf4@rM735&2Pa& zK+V?cMB;Pdp}3H+1Q{kCl3^keVO-7$k%5BSr@%WHH|qM{ z;ZL2rti$597eVa-iFfHdkjShP6^2;iu))j?k)!}?W>y6Hp8kY0S*2*1KmX+)s3?ZllEq z+5|uv!#p;#tOo+=IpC*wA#caNjAHzTn=yqq3joUUVhi^o=z&_LsqU-3w!ka|NEHR8jLxile=7fiqQ5Q;$Tr zEtJ!?6buNcxNB$^3<+)Pz@VU01YUJ0f1{{I<6GnqxD_6nVMXzN_J*4k>edBa|MK26 zi)|0Qr-M(I5d)+krvaDw-UQ2*BlbxiWxl-Aej%nfa4)*R83kCf5iQH>v$Bg@_VUWS z@==J>|51d4bi;CFCpD;UW6W;#h1kO3u2Y_p0rdSBBqB8s67sJw<06eOLKO z>{6y^H_5g5?sYtj&R~xUw7kg}n?uNP-VIvn)Yd7cR>Dmy}F^KGN_`ob}&Ml8;m7 z_#K;slhRgfI+LyJ0IRNS-b!iG{nUgF2dNI8fxB;{vx3WJ_BHMM4g~RJF+2cv67C>jdhy^(kk{l#Dg-9 ziqTD9y=}H>6ba4~p1K{=`dxF}$N0Z{gJMBOtpD&G>IDhYc1#P7#4eGAxC|i*i_7Fm zH5L0enGmH3X0s+`aec!msYl5p+^f&o2$xJ#-=0?3dsOydikXk=XE+KkXCek%gko%& z&NhrzYk=jO+LnQ=oU;V`v+}n8Xjpm3Y#U${Du^msb-bvEd~io6m6odyfwoCau(XNh zP*shmP7H$OWG8+?G$fXpIq`F|(OJ!oq&l%iOS0DK&N%(@qC#Yg9iPkZ?Kgj)kR0mV z`W@Xs#~raSLSXGYFb7i)XD0(kcjHv(PtU51XeF6M1{pZN1hPXRd|&z(GDIA1X_4yz zyNhV9so$S{`d$!=(y%ZCT#pq38%lgMEe!-3mp^ij)o-N(sAP&6TkY_(cfqGf9*>hgPsaP(W%!y+f0S z;}*!8Qrq|2)gzhe3(JZgdwaqJcK^3#@R)mdSL%A#@pOu(KTeNY?+rA0*oSb{gQx}m z;h*xuhT{&!{=trzeJJ~oHU^o@Y^-KVSp>==*SJImCT2_sIHxIUPp5h#3yQLK@J2VX zSl+7K@!fadE#sb|+_hWt^}LO?{p%7RTYRDYW?7 z;td_WUL=5O%;!Oze+>dDn?mTft%kM{a7ni+raeD+?G+t*~OD{~5; zzIAH?lRm;lyu&T6d{}pc&N!BcZQk$&$_3*~+eBwMa&g^@rJj?MQvq>=+;$4>^)Gsag(9$4nT1ez6PMsRds zhLzggwY^JK<mvYOHHzVnX$Vr`Hb$r{7?wPn?@3VvlGo8c6LR9MnG)4?p5Dzy44o#B@|ee#LJ9Gd%>xkEB0j=8Q)*P0-W#tp=5}%Z&R(*H#t7k~D zanASzSa3~4MoX)c)%SA@mN@%nR8b#$+c*LvthjTMPtpPX*rcDg_;&{mYlKmDUwK4v-@3kT;}L-X37=5o=pizO=_!0rRSZ_i zPf{>!Zsth%0e}ZKhDdTAH@VlNj{ZTMkp_GadW-KwnGeex??MspPoAIAPkI>^!J?@v zSl2T(?%V|Uqf5}cU0{KW;Iio6^U(*|Ygc-++EY8@Tv0Oxib>)YCS(|FtM7i=bmhfj zo1gLviba6}?0sHAB6g4q1jr`_RmvR+uysL;?7fX==vT zep+|eSDnVo{k?y@f43h)TxDjy&vQTbb04nzy4oLw(!o{9y3EhLW+!_MYpQtj z`rPq_>t^L{Z1GjKe~VdOWlvX*0qS(AiQQc0OMFNY=_cf~qRh{e1PbW-Y%&|9cm{x) zcmTDhe&>V>=kn0z2Nt#wc;3Mq4^62w%A6nGMLK+V%9~`6X zP}1MgF(2(o2*V#Xq>niq7qILY$G`ZalCNQyEA+CLGk+w6qvllBTU0?^=H6%9nK@wy zZv}i*L@HABv_QaqvzqBV5b=Q^VeiXJEnO{c$J9T z7OyZo$I;7NE0Nu(3@cQr9zDmqh^48zRFwUc?Z$m(X5izWTO_&0SLS`Mk;* z+F6!d`<*HGef(rMQH-t);G>Kqru)f5WEB+75$?8!Z^@;+-Q+^ZiusJ z;=|i4{DgD4dtOjF%J-ks9jD)`6kL_IZl!gnVlqgNGMh1KHX(;>{?3J%UCKB|Mtiu> zQwEj1VrVuRcC4Gs8s zF9#1Rweraz&jh))R@+}Nyzkf3EhSf4T5vk*sg>gZDGXQj+*W<#msjs6;f@rdL94R3 z3l#$xc9li2ZgrhFoab2`2(b^7o4b>njXg9yjZ26+YG@Kd1k5{GFFYvg=t)f)581gQ zC+N&VGVJFvKm_HI(SAT+C~rJOS)|;t_B#S2#66tU+bzTCXdEpb@ppFk4=BPocN(aQ zdNzX5NO>G<?>3#9uX-EX`Y*r8f)%4+Q==Z$fG8>D7u;fuTurW$K=>>6O&;F|o^! zRjt1f1Ng1Ov*2DFenca2*G8m{VhFwIidvB=W4*0)Bb5}uLZyM|r9c_rokjkizN!%TPk zU51auu$Ab|ejMx#SH}$-H=CFTj_VvB>Ke#fGk4?m1fqmTE}Z-pY-VXXd!`PQES(w& zXl4G)O5@2L+v6B+Qf0xeY0{o!(jj2FgA58Z&Ei3%MGst3hAFtj zRY7+#o6{DW_jP_suH;U_rJ>AP(`!B`ug`0^=wEB&nWKwkk-f4lI@>9o?HpTJiWzkF zHvV9EF4?KL<1LX29UTs*!Qo{0g#TN*>H)+^ly7hTq85_{P|^+!&SAZ%n~%kAf!!F+ z@uZE{R@v9kUWkdPzWc0yd_ZqsM7TyM_8P+Sajj6dIu^T}#3A7L6RzO}%Q330Bteg% zj-{WMcj=WnFbaiib9U*Ozk)`R$8`xuc`(GsbaRclY5ul<`LheSDa+oJ_ux=I2+MNP zAzKh-Y-+m@1D*-{3TBJo1uKu9t=pJ6TT{_A2V+w8cC(kU(~FmL`>To?IB75C8G`=c z=wO9CRP74I%%(U1^q^$MGW%T(sn(q*<4|;eCo4Nt*A^WU?Y!3lT0m}nP-WCM$fTl1 zvaWF5uz@f^y0{DO%`G^H5JAV?BbS>J5A(S};zF$%+ghYDFIV{xqa7rlA&Hj`B1uwa zOoPZ{3wc`hu74m))h5;{x9cl%!L07uIeT5!=!kQ;Z-b$_p2061cp6zg7&|C-|A6Pn_K?$VC4tfJI8O;;Qi?DliB z=0e@>dY7X!+wn9&Q%P5;qOI1uBkkdQtKHAgFf?K>BxRJ0#~Ca203#I9Rrgvh)picY zXT2YvUP&=rQ9FnsS4d{BL}Wki9qUp^A-UozMH*b2mIt~ig zAW)OC8x=KXO&3ni7>2c=(6i-51xbMVNyxnXqARMPW6%GqE>FvEN;CbGW&cUXi)$P} z&}&!5pV?IbXiDzgi@CF{bdS8@xrn{?<#pOUn}hE9U^1H}5v;+%A_3OzeAP9S>wcXM zi|)8+=-E^KD_`G1w3Q&L4TgA1^Pkhp*StRK0(1q3v7k)uJSQ)w2W(*nU&q_X;yx~S zzz0UV(*Pyx5NL4BJN;M5IyH(f>9RKI-ow z>2*4$;MX$3sWJ^LtL9|XT=47S*Eo8yQM2D$^c7pElhU4(?rs39o3<<6DTQZ~AJ8T{ zr%}m_?eYRLc^~{5SP4_17h5*Dwg=<=FJw4h2s3Sqbfhyyc9m=Be*{jheRAu72xG21 z6|j5$ka$3B>WMP#O3K&F*`x1zTZ`S|0h_Uf7~F??eZ{D$UGjRWZ&6dwpv@7 zkmqMPS|a)$0dF-8|>d&08U! zq;w$;d{Je4v6SpBo9SI3dtjT_D4bxj^8|a&=ex;yKt~o`vZd zS+oPN_%lHcH0#dFJ&eDGzF`MHw+31 zCt>M{umHs;xV=H@+HCc%N@K3Gi2ZeyBhc0_j(2^T;hIlGq=N@u*TM~=sgIg!QFxTG zwo-k!lFy3QX}{(<8h;e#THlk|0%q&3{6t-_aXK$ZO?RXq!L`mEN2 z6_J{`x*;v3zl-eD75sU*IhulVh-Sqhim&1mVNB2jaIC)3z#5gkR^?;Ldd#)L`IXAy z4I&zWODuG=&o&=YBuqa*$-Zh^OA8JIw*B|fAm=|%ag)w@TgMfQ?5t3jCjOZxQT!|9 zZ77PZmBsC%ZHWhVEwF-Os%UL@^cStnb{)Z-=#3u)O{8@NOM6M{i%yPLopLGUstyQ8$zB^|t~OaLE9cb7E4TnXtxu)U zQE7_-mf2BOa_G0PAo@SM6SfGwc6^N+K94invXf@X-nV6s)Mb!_1amx#wpwy>N&jU& z-$83+H+#wfSS!aAM;b7Iz}S-dCENscrhFZpSz_lNzSEx4+G@|}qIiNW0Xu`*l&P-I zAUOKak#t+kK^~NdIDVsi50nAiEki0|(B-XbiW}UvFvg#V8VgU(jS8X{pmDRm^SdTP zY|Ze4x>eL@XxYstT6qnbn9|y%WSIJ|AASREYjD9~@g-u}h|GHf4{f`Xzh1v^lsG!lHJHN+13)?gl7~A*$FT&EP1_`3gG$tqYt< zyx}zRuE~q0&`H16nr(2^u(k0dFq1rkxPtqF0C9(`ebEsj=n=*&m!LG6=+|%d7wRj$ zr`UPczrg;WDohD!qrCw-4a5qUc^Abv8e({B<%`s$2b)Y8?l2sTJ~CF2rhewoX_)Jf zbp;BRKt9IAy)yo>yW|$Awgg&ZMv7Y&qx*n0KIIFQz!1R{A{4n7cR8~tAFzn3Cx{=B z^T)_6YSS3XKe}iXIZ7>NLfkWK*LZ};OkO4CP?CO%)V*qH-(w4aZ4L-%r%%J?*8c12 zkR5bxHgs=xEInGH-M6_dc(4S66qs1n(%exN=St}ne)&lW9=+WXI3V4#7}qvsZA_O( z@5@=7T$3JcL3E3{JoS!t^orT+uq4Iofs_y1aaFM5Q*Kb_lr?T|HI;c2g|`^E9S|j3sD*TxeJI7Av*rR*8VArnhG^)Xq=&S-m%Mke?Xrvx zjpN6cU2jJ{b!(tGi|r*MI)Q@{$$pY0-YlnN=I*@X z$E}97$e@Cv5kw6jW9SV-C!u-80r3w_ATTd0sE=~HEJv_gx$}@<9SXhBS&IjmfcA}q zY|g$OXhRR6ba5SqhFPOng!0M&bQ30+W-cb`Y&wk3cYox5%HI)eaglQO+8HIAGFn~D>D7Ya19*%jBQJ`%zKDH>irrK=TPQo+X z(xH?CR%2P*Sd;3}66ao+x{Q7T6?zm9+_#PGvr^|6@vpcbya)jxNa2)CZ|)|`VB>tbhxbM}Aty%dCV5%k62w%+1cECL zk93dA91|jG7=N!Ro6xOS);H{8H zK9n@s=8Dr7=e>kYHU~4$C@Gp0*cLn6bJzAETcz8!Zf#ebyXa?r{z&Zaks2KWKMI95 zgFwK&Fu|X46|{;sVAAcNIMJJwe75Rr3GDr>k?kQs>Sbek4Zce@3dANDpvfE>vyDj) zNgq%Nv!JCq*NTrmlqpZbRnN+8Nzb+FIw-E4y)OMIcwv<_pjh^R&U> z4@<7O{IcGZ(U^H5h9>q%Z%;LCFdx(tK4-0PttNKYUeGcP0m>XN^3}nzwgU4O=Dy8* zDK6XVs-Rq#6|9&Hju6BK^S$WunhHBi4sFY?2g3_n*O8C=dOh+In48wQl6=`d5`vv? zq?cDhj-|rmx`+2&Y$ZT~B$!o`4~j#M#J-NER`p)-`At7%9hTtghVGXh(aU6CFg&j% zvdN4hVYk+ntIZk1K-7W90&u$=deLDSEymGt#$Y5-J zqWkxXL5KZ(OSoK=EbgA)*b{7J*<#jpB>t4VPS#^I0>jQE-aqbCZ?_~HOLYagC^7MQV zNDC$l;(*`a0>s&hJ0LEolm94pIOUG{mbuVNEYTjs4$Yb3DjvLd(ITFBIyg&nBD%W2 z4^H0$aY?B49414zB>{4Jg7rX0u)M5TY*ReNAK5&K3&H>BrsF4eE&f+o&&8FW{n&Rs znn&LGVzJ($MqXM6qz>lkRot zX;wY%Am{`IzDRcbqsrN>O7gE8V%|+Mq6dUYcxcK6*hPYi?Uc6Fp)zcB4i7s7wI#6c ziGQV=0LqQN&p#Dzbw^N(VCjZ)`YmgRdij1jXv{|e;-h92yd9MfmV-Qm9o0dD{+Qr= z&ErM3^eGJFbj8CuW>7(O8K^as-5cUQq{e&if8y_mv$YrqLgjZBr^>+gPWrEZgr5-h zv}EN3K^$NWnh#liAogaJa~rf4r%~}90({C2>2e5JPn`nKTT<3uFYm0^f`H)Qy&_7H z5ZK1pvu3-m6;&2LDpDB;S8~2q>oALR5 zSb>%X^v#f@+clMHoWToB>s&sJeIU@7XRVakzttqQQpLV*w(m;_1=^_Ci}P2smFoJq zqp9FaKS|{ve7eH{SHt|g2I4~nY<*;@G3lN4eF96yC4B-*p$ito8h^UICvH08Z%?C{ z?MQ_tX_ev;s)9>c`bWF54I&SuAE|MyUPcDFOVPbSdAubv_g#W_i$ShElU__Q4gju& zaqrB^MKK$_-Td*iH=3jesM?=w0q6V!eBP$`^b88qSf9Y&)}?dUhXbZ!LNbN=vle1E67N;x_FVcZZ{2QpSjY?^ zB)sF3)fuKAqQb_RrA<_%{3Ofq30e_~ygguF(B|}WYf(X6s`>lq!11b-DppIb@bVF?*!=ngo%CH z-RjO`)sKLLs-es@CpC6FwuWsr-X^S8#tfHN#-ZQkz3;@I;@kgvF}~H7=&JObz!&>Y z;1>u}4mH<5gmX!+#GxJzLbW@^lzjLQunNH49dt}3tnop;-hqYmmjv7-871tPrOL5_ zCTL@~905B?3;ieQ9Rj>{yG0MN$MjM#e>QJWKG+Zk8g7BwV7k`yp_Z-2wtPqVP1kM ziI#RaiM@o$MY~*Qo|gUsh1C?XLv)d_8{MDe8?NTfmkb)T{<8{MC7I2TV~VEsTuB)pAEC|sQ+dE~?7#V-}Uj^+;(We!Bmot&P<-|_pjj*VH4jl4?~ZntdJRfkLN zwgG3%Y}VS%B-}X)&gG?=tm39tYhwKC?Hb}cS|fU z{S9zZ+L@Nts?vF(dZ-P!o)ltA4W^hF*CZiEZy?a$AVdvwz_*w*T;H|^!--;DUdeD- z(TY3mqw*^5h18cTTFY7DMMlX$0pjCL%0|{|Cm0>suq8D2nKI)YduW*2VhVG8Umpib zvS-3W%jcOlEeMyFZ&KJl2Cw1YSTN) z*9yf-LzjMCdN~So*H5&3nN@#AmG~D7{Aubgx3-`+shufdn?W~AwAL2QN@b`(ytKbh z(9^Q`p~mpx5hF%aC&a{9awULc#aBDZ4X4Ot5n<#Sn*iI=Q0TLS3d62*Qwh7JH(?TX zPM@ig+uWgFTgm_ly(RcNI+DJ`ysj7YyifqF(kD$yGKk%PRYw(o>aA^D+w1{@7JV3C z6h|1*LBD}MJuXOVqujOu6HG$6OuQyDhxt+nmbkp`@=?9%w^`QT=IJMB0|DrJP?cC6 zk{Cn<{DYgRE4QvNAnC&wKOOQ6(ZkKHzTa4VKU;2|D>tJ!wsm$;o~7+gOYY;iTqxOe z8k(H&$7+H#Rp&c;>V?x%>rp9q%cequbvnoqHUK`4KV?=F?AIqWw3y;k6T|TbQU|Om z&vrIso2WPj=z#aYQEx2riER30X;n$2x-qh2CnUw{>A5cCgjW)P88(i7Vj z>11cju6H zVuq;}dl`l9f39H4wUO1f1$Fk*jj2@HyZbrdK{pq|B$twGIs`^Tyv$BZN zqMVsMi%!2Z=6=c9eDUm4${SjH3!tfn6wx=OwLM?9lf7BMWZWS+={jq&jx@~(D`Tq+ zbsf*@xtLW~?M(0jaTv-en&m`61;jfu-Z8uN2_@WS6^@=jY$hN*KS`ZGt()xSGx+Hb zcLhh^{CG=Uu(l&OE;l;-8Pv=ZC~l2`Fr-guD48v!i;%x*oGt3D)+yPdi&t&AWWYhM4nd_&Wa zJx`4T{Ai$r;Bc$f6t~FlcE#yS^JW0En2(m+aa|)6US%Kc@-sgp>wYG~`F?PCW3<)( zOQGHsHEC@^XN6+?t2Gy|ZK(S$z+;{a)#wIgcN=S0rgzRrG%6EiC=}@aGy%|T^!qjA z_r%SQuGkR@-;=6-tlECeKoX7BQo7Lrl=9K5Mfh6)20qSOvYw?Ki{*n{rBtNksSuW-BNBnVX=(^19Lp^ z{r(xQ%^5eyqeg%JOwE8%=rK-2?J|J$VSHRozZQz64ySbM=V3J%qW>NSoT^is2V*K70zHk^0-YE^ zLBZ0SBQq@Kj8cEcHUF&(CT<5qA?AZK13*BTApktSUI( z^5UA(G;LGb1>xViqpGAi61eusuQzv&Fn0ddSmK5QE${x55uACL=3P#%RXfvQS!EzR zOEY=a#AccKSgQED^ljE*DEWZ2lQI2(0~J+d+{Ubyv}o(olT5i5=d4siLRjj;?s0z_ zn|Hlfv7hp5!XbLSG-One>BFV7jZNC0ew{cYO!{J8)|39HjPylOac7hG0!n-cKvE zW5J;vXef(v-i|V5$B0j2h?y7JDoPGLSeH}?`qmKe;R*Zpba`c&KGlO0_(3C7lmt=p zrlvK^Gy8A(Xrf$w%2R@B!rWSaPr`5^6Q?~&eZ7X7nq=_}Fg77_u)=3; zLX4n3s81}1NH1VyP(QkO>-KHd&gu&Q@-QDUIyJWBF>9u=Co>g>v!&Ac*OXMPn42e; z+6$y*-A(fiU55-;q7o~kw(9mJQ1x*YX}8&ql$Zl1&h)pYoplY@I-<1Ki&cpWQZLy? zhIJIB{&`dMAqItrKDn3*GLQbDWNH4*rKV<~quJ2Ab0d(yFl^jDuaC$w&&i5zq4h}|E-ruft)!r_g;v(^KLF)r>ue5oy`!C0XyG_N=`Y+MZicdRUP zy0ENn9|WG51EoQ_c}nxVxExKwLQ#tH1;@iOmqRByaz&bwjY1^&kF`Db zLlT@J_3I7B^e&mV~-a%P7%yMXlvK)DEv(O!)N%+ zuIYqxo5q8 zVtu)?wLHcRrHb5MShO_iTD@;Ta?MfwQ`wgdgA*bPPm~5F%#>MfX`VYk$7t`~R@;349Mcpnr#u1M|NKq zr!&tv6++N9SK{^1q+t?yd`oJ_@JPqN5oe#1u#z^FwHb(oSeoegteLW4qQ5OSTJYPi zSzsQ;u9hL&N~>Zf3I|iPB}P7Fyl1$6n5ycp3A2a4zkA@8fj)5Si-;}X{XW``24!u% zV5-lF5f$K1B!!Wv(NL95YF0+;T;X{=#fsAtGIMqvuAkr^_kDeO=Z~Js&#d?BOH(}! zgEZduWfM(NK8Ynu6Md=OdPSJN+_9q9ok=ior`Qj^WX*sY>d8}JNLTMc8vbekjxDgD ziG#uROd95Abl%b=K3FYOoK=sPNW11quVC~f%L`|1H;KnseT>%2#;=(NDQ82KgS&6p-wc!r;2~cX(H$;7-gDgY86&bDShXRLL_8;r3iO#l0X;@)#1I{_VXnCFvSunh5_C?}dOL&8tSQ2Kp%tO?T)2$ebUldUmV4Yd$V$`q!3mXd>mhQx1F9Xo_})Crs7BWfnelQl_Spt#Ta3c?vS zDDpxEY95I$LsCR)Wx_M;1#DJNF!1}cISHTCosOjh*zzml5@-(sjv4VnX|`19@XYTN>PB5D6Wv| zvLb9Np9O{h0zPmWteeWZ%N=E@;)Vi9364uOr1Gu^8(*My-@@kC#Pb!0g_9r(Px-i9EJ626!uM;`oo5r!%_ee zp7~+5z1Wrg%HFqM8sz;4rWB1@bQdVwtjeBPS5vySHV&OuoZS`ZXHlnF_N`3brm;1a zI_GdC3&*i~Zh(HfS;A0X-2}oK)(%0UeU8X(ww28>>R`T=*lB-q_pHX{07iVCINps3 z#hmDai;x)gS9T^T!50Z2gP>8`EAW7)ESoWGm2>JF~Rd3Bt+0!^ZYHWO<~mEQDfx6Hk*UEpz&J+V(8t4-vW!n~6SkS*o2Qyu zbk-eh;g}XB*X9D1zoK8on(;F0(@2p{Q~B1K#3>Ru{=fQSH}2X7@l0qqq{ zBN8{C_5p%8fc9ut0CSq&Q&>_*i|!80SeWK^t1NXzO=i%I;my{cR%^%Lv|Q8d8OYFD zw#YfDHr4t_ zxEQF+?I*SDS(6+0B!>q&fems?AucTyy#kBxO2KSExRRT2IsK3UK{R2x7%)0$dpjCj3Qg8H#v z;l81e8W-2~!=uq@(-O%9J8fbBgzr;~wqr)G8q6b7&*JxxIVve5vf(JiF!c~kGYqZK z2U#{bS|x5?!jMKql!4$rs@7GM9H5zmq%tN|=BkDzMs6EC}RiUlt0A2PK>+{9itEYYR=p&1# zu$C6Qgs@8pJqW|4W#nS?*4G`kf_r1hcH}Y+KK-(eP-C zcg-#Tq(ZeG`|gxT)XjH{?U(XPr+~ASPUkL=_M?KNSxz4d&9pnlnZuqSKtNO0-&hz4C??IDmoYfDU66<-nbxt~S9&~k4hNN5JNTFcU)$^_v z!tc-wmmv zjH4wRb{h)1vb_k_;SM(LPE$UZCLPv(G{!NN*)RS*IV}qJk{6)>Kvzlc_q^ETc5KX@ z(an>-wcXcsVZ(Cltl`vz8+QupyQQV|7O6jND-`M}x?`sRX&N=m@CTd%`U4#n3fXbL z;HIGr&DHk6u#NGBxY1MVs;;zAY!`bnC4ZPi=}J+)3&=k`Dai(aTmuoEyaei#ddb5W z`u-ciFXlrC$DLy=2@o?H&kB(4h8RO8GnNoXncyfx`!FjQ^AFM$VQkeUu}4>`N4v>P zA{oNXhu;+}y7s1^fW_FcK@?r%MyImvjiB^KX`9{8b)oO&hi%=mzz^0LKmizESu$(7 z8Cd0ou5-TFxZCj$JVj_EO2HGuypln=7$|_K{)Zj;T^pqK^Ag7mn}Nn=vAirJa!1nc zg{2E(6)JY*8W|X!OhEX=9WW1$y{SohS>kG{*1Cs>@fdUqfbc5MU4%oZRfZCsgmLqG zE&|(sUIaj+O{jFJ;A1RAbGDLs8P;=1jDT{{(L2$uAlEBAlQEBy{Xphy&Fbe&(o^8X z;pkZS&!%UmxbqcW2*(4W`nU_j8@W+JpoA<2mc;^;y-XLSzpc{p^}liXO8Pcmjh48v z;L9i7KbO`1>B>uEYD|8qeq@zym#txR^KRn=?r<{krn`UfYZrmR1C`GCqy%#&>y?K@ z->PRVm8y>KRo;bJ;jQ{hmUaa@bL^Vp=Mu3imUNIwwT-|dyrkqQF_}Fe##clR@~}H^ zXE|>h+cVf0Ndb=iout|=>3e`r1kO2iT6!@7HPoCGz#}nZbmilwDdNW1FX0PA0LI)P z{$>uP&H)-{afN_!1@8F@b806tYxI~T7H`?&LGC2aQwQvKDRO7bB9T*4ozGT+mzy#e zOnr7?1tJLA9J~k_x+k8bu`8qm4Dd+ZyuJWN`HA9FZM5@XOWc;ld0*pW4j}C^nuJS$&?N=M{m*Lv=wckPv2im@oDyDDzRi!B@k79KJwgsv3G zk`fGgB7_YROpo&6lH};(h0O8c+4(VaA4Z5guyw&>^fM_eBHSSV3-K)$TgOe_g^CxV zWd0j}2l&3JsHso}jp{ediBf0^15mvvx|pW#$oTcE+h)|A*XCGM7X*`C0Sg{5erz@ z=`c&mxT$Y})n<&*G+SL!@$rRTATR@;9J3E*VH1yTJ*M*iG!nLA6ad$0zk!iq{phmC zDPq6TUClt8!7O$Hu=b(L0a-&3&Gioy2j9P3-Sc*-!j$dR7M`aO=FubMtwYtFMwfWI z;L?`nXWRr>|HV)JQ=H42%Fq`X33}e~IF9B~P{UHPNNRQ=b!_iY{)71=*5IHE1{FjU zWm()0HXs%=;7Pu}SMe80z~C}ibnkXVbRDvz^1sCS%+EuZm`WV%2PHhs;#n4JG*VZE z$1GqOJ_s&LYz?$|^%U3AsYdz%8I@kE5RPdI?w#>stPUQKYV%{Bk)Z)DfD&BUUe%p1 z7#@+pIlo2DIpZFeJOI`Jk!TTOJzRC(7!;fCTJ5CTqsj;DE@%oO?1Wm$wtX1UMNl2) z$Bzpvh+p!BbD(8spL-W*~|sK%}*^at}O*);u)J|R2`7& zSw;47aK_w?LI&v{M6PWLRax!JF%V8ja6B#BQE;g~ zn2RYrM%%^tS?;zj-NQioEGA?1Pj|nj*A+o3?x7^pV~=&`d8~8vbX(*eIH-OH5sO8^ z7c;;`;CCe!P&$?9Yo%dBP`kLa(fq5-s!L;g)ie1Ox(|a4NFJwAkr90hfH(8LR`gue z40IPHd!1HBpBT+U5)ObiBAbsJ@A|BwNjSu*mmr%`vH}C=Z1~RbBG%M9|A%75kX}U` z4%cLmxPpemvca^N7*xa3Vvj-MLJ+KdvGb`+fn;_~_ig|9%`CYQ8O{@#BnX4KU`NE< z&^?GgnVI6QV+jZjCaol2!`|?Vt*txo^%TzXZktxt_tDH_h>2mJIm}j)T9r7HvcA5B z=4lCH7L--+F1@x*gNReXJ&ozQn4}+ay?gUzw?dRAuW1?r``$Z&SrA&>6n0|L4l9nD z=wYe(>YD86Nqic|b5HiO=n_VOqhr?CZO=E@P1^4`7L?gmvG8}^6;2L`YYeHCAHz}_ zeoKJQ%mKZ%<=?QUW4BxuP*<8f(=;F`+2^5;r=zkYX%R9Xi941#b~5L>^LmgR`!E)& zc+NV!W<(>1I3NX&|@_8+aVDYFK*v-NQ>Ey`m4Z zQu!8TApR*OsTJ|V@G^8#*cQ;842!^@C>KFTm4YBN8Yx3WL_*G`?!0C}*Qj3Yj0_Gj zhxSHh(ytYNput88B5;jkT5!N9Z?@)=M8@6W8IcO@8&n*{&43rBSfULf;j#{GITemQ zaz}jCTiM#T61fWKGbfnCxIJF57>%LsM(yEFahqG(lB-q;K=bU zL%;BKXIb|{H4$>^v`?|0-Bh`Cr`*~O2U&`gAPLH~{ZWFThsGMP0nDpW5XjA*hJVO~ z;~J#Jrv#&=$`QXNciWSE+4xsS@H23L=lCD=TNGs*xZ|X2kOeSPP_&}n1|}*oCp0VJ z-UQ_b>^^kE>3ajE{v|~g1aUG)32Iak!*MB^AaFaKQ2Q(&uI7_Z57>->UrkbVXOcA% znKk37NN+q7)crqsa7dh{|1@`6uA@$phG>@L!6jY0SgG$|^LKEHbZJw-jRz&$gSpWG zVQX>Y%~Q1(rJc9gySjSSh}hfOnO}KJ_+Y6j{8y|*Pcard8ofCV-xgSLe|OJQNQB(G zv%{RnJ;uz{+`=}Rp9u%|C(bu*{&IX8?xFkGc8 zI~FQXqdhV?+y}bVQ*fPH-;WU=A&>9Vu>ML{4xhoM*f(>~z?%11sgG`|cPI zZl_Qv-)9+q)VBo2w|EgNe4MvvY4H;m?pDeHW~(s=PE)VcD8ktg%;ohsD zi>AjFJDOkdvN9>J6`IAdbE2`uWo0^&!%scnMt8*p6){=@y~en#ur(*E0|~kq4t~ zL6W#u#Y!5yg1C@vMS`|2fv*T#oc|5c zbPc$UHumXS@~d0&yI5TM{@Jj7RBspGJYvnZUe2;V^W~Rc@^x}^x@o^AJV@aoErx2l z%fjk5Se;sX(um`J6bKWJb0N48NZ8#Eh1wO!0#_z}z4G&mw;0uUgdNzYNMXPDD9MFj zOjg6?V3f3Nsp+nz6Gx=r+U%{nQ=E=|E$?ZOccJUQ@3#dP;`YlD@?}2UGyE^FEzP&R z;ksXwwcwk_diRq#G!~fcV}9;GGYM=xru_dIdL^p5^P~h=8^_mC0B6%3r)(e{4C3Nn znFz6%meMyP_A7JRXFzoT=N~<|ReQ0UZNd29Q}Ac_LJ5GTa;(PmOB=ThSDOE-^eH6x zP9nXYO7It#kn)F)1kLy>YA$!5vHm02^#};C`nem~33rBOj=h(r_#i7jEz7%xLx9+E z?emQLwmYobJZz(BOfg2HupLv{E-DF6WI(W1PsqvV!HUv@iqLC8rUOffOUYmBQfAz7Hf+2#VQ{J?7!EdO+Le($YXdGI;!>px2f8?h_fmL93f<_ zwpCm_w8_@3hoCsG2=I8oDub>@tckx&!_|~9>+N%!Y{j9j0E#$3I7P`$bO6vLc$pPj ztGah2R)!``a7z_%yFBml>gJ^C6lw$ws9_(e*`3Br@B3i$LqbxuCF_-S zXOzxq%G2krj1`>kYX<^G;;zzDxQ_{W6v8e&m?5{$i2FxM{v$v#L7`+0%h? zrkT5G;-R^~(%ivg&L7P-+st;kT)4mlMw~b0&U^eKoEr*}ss~MF+wHNT z&1cPQhx@)@o{eAJzTQmI1KB2~{L-We(Gd;TQ$8QbU6TsJAn3id%L^&q$#7!JuXD=C zJx%^~^HR0bg>CJD6B|cbMw65(>XD|2Z10`;8YU|Wl{cKWeHv(o+$Pg<)UpF=mDbS0 zwy^7wi^ot-FL8BOYa4AN5y8ZMht0=+Zzqplot7A+a@-AZ=P>T+Do-YJ_@Vncm*2cx z=ZyiqLg=)T8?UUagn|M%l>P>`6zaJX;yaK=8Ga@{bbywUz0Ra$1}Mzx{yuA`1By+D zD_(ok#P)v)2rGysF?|X4KN|gnZCXoWv85r}V2{oLNP=aMY9=e@wkUZCts$%T+@SAf zC@rn9dg$5qTV5E*V4?%M)NS0>p)0zvBFinAmOd!t25qe zaqkfaV5cnbsQg`k#){($|AYrCwD-F|d-P!NxeQ+l#rxtnN?<8Q|Aj%R%FOhsT}-JCiZiq-EVpjs2DWKu=0ex@N?GY|D{2NWjjT~GmeAcaNP@_X z#1Z|cK&G<9q^U70yUlTD=0YHtM{Y4mSomS$9tOxwBFGQ-BHAA=%C1a^crZNf{*|-a zjkWnSX5=oi^WH+;!aPfvHYCGxHKTM#rJfgEoQxsc{4gP>G36m)gO#j0N|4=F3nz;o zc&Rx(flb7+c^GjJrvE_=F^P3YA;DAkB`nAWMx?wlsX$!a-R~g=E9EQS>_sj?IfxF-8)8>+S{4-Ws3L_tE_6f zH)*>Q+=2tAGH#et{DiM{%APoYi4L*ZSYI@i1MmJ};guPxyg8~bof~;u>1U72J{PAs zBtHYm86Z8>bq^xjLjwiBVP6&{7tNQjujAhI!S~~4-x^3$etEaP2&{iBsB7e!x!Qr8 z0iNhJgba49HoH=uiEg^Shm%1w(nBA|{hR7zMrWF_vAQ^+XwAknMw-0`6Rsf7p0gg@ zxMi7@m){MEZ6 zHpG6Tk^sI*h(CbMJilGq*zzldy(p_ZH2+p8mkNrfJD&&5EJm|&?nzF&sdsmjZTG?= zU&GYFGmgj7^VD-R2LV-`$OG{p)#a{FPW|(2Y~z&~(OM>#{s5Y?Qs+dMhI1LJLH$^& zyG#o@Z0pXjGNZz=R$W(+Q8=GynX&2gbu+OlPl#mrz zU#}lcQ6VTSc*FvPhJA~ZJ6c{*5k6wCMs#BC-J`c#muw%=R&Q*xg}PjA+Gd;)n>|4c zLaC6ugvpn7nqN~qxE)xJpfL7qpb*@KqA98L_Ky<8#msP-?e%J(d}6*Cm;P_{sK}u7 z>$aWg!Tym08Rp~E6K5r44dw%`kzs!qeEmCFEyYQ*Tn1Jm`9_?>UQSA&ub&tRY&ZX` z7wT65g7=lN-MXjL?C&Q^z>q!b!f@ir-irKSo^xK_ts93-xAl4R_180N)hxK=!U}G= zFd3JE>nBf?7IoQDqj2?9YnxPUwh3+Fmox-sl@z*-<9y4Pnf1e^ru~vUeOW=E|6BC< zq%8h%hLZsvJ+&Oe-iPi6J%a+d?*<@wOnNsxTMmKqh#f}4zicfYeyfS5&uKa`2bx*V zpFl$jHfk5sPiPn1uyp3w`I+PE5mW=F7|B-Sm4qDoS5=rOAFT(q6V>A!{9<9k_ZCjE zW)>Jit%iBsbKJhz_nXtplKd>&3`I%kMYc!GrdvRwe{*dy0>bt??9_7wXAs*6_5|(* z^Hxb%=-7xanT>Gtw{{^PYwt!TP_LuPQJUjnH?%#_I6(@ zKKxo?WSd&{mD60C*W4Hp<+UL6RO5r5nO9HU(@oy{lw??cD&g)1ly7I8JWPjv`qwYxp zg6Zgd%W7;lIDD_~7Tc`wWwyq%2X1y`(c$b{hja()ToE55w}JS6_5k@ZoYj1CfY*oe zdQTD|Y}n?-@LneSYHSy7^}Qv3zH{tQ^DD$Ll3=P!pGsZ!hY|4j*E{F9@x&Y$82XAm7|Pvz!cJ4f|L7YmK?iF zmE!09J~8{;ud&0=B&?~zX>Fu72{ew9`!LWHw)jb&I%BIOH+(SK~Oyi+0<0Pz`;$G4wT| zhq`?p3T|vsQNs;aQk literal 194986 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 Y;=d<<|B+6D|E*lU=67e7ZrJtz0m6b_761SM diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-appearance-hexString3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-appearance-hexString3.png index 073489f80ff8c08efd87dd61caf3a45a19bbd1f2..5f333ade7703892275f05e0eff8d22a535145e8b 100644 GIT binary patch literal 195574 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 z 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≪Xqs!}@{XfTCR_jQ7Z+rHEbZA&} z?gqj=2-t$XA(Qs%9R^y<^YXpcq?_6Ia`B!u=4;SyM?rzd4{KKQup%()B)g?kHlpjG zQQnILbvf6L=AlX9aeA=LSgLb%XRK&L`DtFe$Gc4hR_$xeZ*ijW?_RrUP7EOy8R zy8)QW{ea04Zo?KR7KB61RGGaZ|H;mon&ojZHkx5s9#J7@_Wm?S+U$^8=!fv&+@q9^8lBt@bD<%-ciECP*ylgSJyMR4`?$8@9@KRbBDGEJ42K}SR35a zML=(WWq5if9DLMd*wobw@cf=Era0tN9{{KL;9GHrQKZoPm5@4px>bOuhxpMe>~^?s zEa*M*a5F_Jp8d3S^CR`s=|hrgeV%>Njhj#6#9rX~)jSgb(V*!~uEM9A@V=+^MFt_D zWXjysXBh;KY%DAzA@z{B<8{cRVcba!=j`wqTLC0lfpLOvi5Bp~(B72FpRlEgi-BUQ5&XY;mp=Aa*;CV(~scRcJZ7!+H%Y-d;DwrHZS%PA- z+u&u1i3q#~UWskGH_Zk7^kk7fX*A~r!ZsrzcT!jn{B=kb@FGcp8Exyz?p)$=nV1O_ z!abZaJtR{f-d)2rx@-^LlG$-Xp}I;Z9q14AkSU7?WtwmVd_b@o;>FAYlP`*)LiP*= zr{=P_U0^aCdVl%&K~{qs)jW^a=%jF0fj=)5m*oU8&h8p_g>sTRe{6a%!fv4O+DF~PbkzJht2{bTKW&G*sF@l)S_ z==m4-;JzQ7H?c%|xLwc~q0@g&Y3e$}G|7Vm~fTkK?1rdF@Q-fyOS4gHIS|J<3 z=NRNL={EVWfDB!00f3Ni{<62c8Pv?7#fu;sjEhAS!r~|h7DXXlx;6zN#Qlh;Xc}z` z8l}ix{H6bfiYZ^+mmek1-QpUUBFBl>?Xc)iEIc5haYPhUY9xzB(uJ?^3f};#XapM| zE0^D9dl`s@f_qLwSiIQ9eq0Sp&w@wz_3=Qh zV=)0c0eY8KOfhkCfHJ#}n!F;zns*2%w0N5pvD~NE_1a(a0x5fumNi5h)?02^NjOa)oS zDENU6AIsm!TA1M}&4V>}D>QnkM))hp$zr*|!1I6=43;9Z-P43O!|9fk?wfO+bY31@` zsFVq1Iz5A-24NT^d=@rW@(X_EuDVe4j!`)GwI5GDfduBVqB_ z%S7FZ5^_F%rg)Ps6$*Cav)z?0=J_Wp*tjV76+T&cS$ir~^#w&}$QqHL!J(mx$l_)a z$}VL0D2#P=p)Z2{DY8Kd*imFfOGtgyVkd0D<@(-6(N*Y})nZV1Ljh+~tY(;2s=rwo z7b>u96|BvBy{g|{y=Y8@c(2Vi@?g2CPiCY%*%lJPxMktZwxe2v)Pa{xW{2?8nAq}UuDT+aelZ?u3r{F*oOSAw!6(LjE#OQ5<0|dn`SH3Cn*$SFC{?I zY1O-GH^kZPBLV+pXCW=*_gLDbgEW-D>llt_Wo|E^{y|u9eZ148IyHQ({7-(WZNP4a zJrto*d5H-o**p3J5P95WyDbF9mAQPSipZim@!LMq8x?I~ZAi2!=Ltcf7WT+ez9C2G z4PbjRIlEa6(~NTjK){1Ed~ZpV0}|^1(gj13BxcA7&(Si zqr?KBVPjD&w<4>ThR{=4Y{1?W&&~27CX3uMfLm`iXY6s5cw5V@uN~vkW7S^-^q`T2#*Y}2b!_D*l!mvUF5}DA4@drI|4K~Yy^Rx}RmivU zrVMd7EE!@eOS1);X)2h>nmA$QIc&SIAvX;RK2q}DW8oYi2+RlJR-nRoti^*yBv4?Nm6;oEGuf>pubqvQm zzlHmKPQ|nhG)*JkVhPw$2(?H9ifZ7XWFMI_5?e{Cyp3RhU{_(!?ZfO&+9FByK>yD7 zqaJv;X(XStbMawiONupEMF9)JF4fwi1Vd5N!j1AJTTOMuT0m8v&Ub*nGjrL9ry{$M zwZQ!$=x6Q>(Qd0$^^DX}7E{BonK6A#GvBWdtFVh01mIO1;Dl zg#XuUC8S9U-eS!y2ZDp5Ta!I)?l{q7A{Q5cDK}n_&eL%5267)|I3S>?&y#5LY|=d> zSt*0}A}35(HZtp2?tRq6k&A%5u^ZZ86ewdZv}T%AGfluNQH}B~TiUvC<3%IZ`)xd; z^rG&_I)eQncm&tNi~`G$5Yy6;?Ur5k4T26JQ0WzO}`}npt6lATtSLh5ffr&X8L#+MElS~ib-Hbc#ljU z*$ym;yW!WStSbcZQCUpbGTyK0om#G&8=zR&ebBsy3e%w>21Ss{I?S!9{zc)rB{|@G zbg1u80=}nYrle%1geWW^;U|0; z6-|OdlY+|5`@cCa;1_>OWV`vr&8mc(aSG#Z#Y_3&+s7)uOka9GkTs?FR0;0OM}RWC zu>N#RX{vu!YK!%2d<5gXQ{DPGDNVmBWxUYvDyCe#&6VZltaiZ!1X^VgJTg#}A7yIl zbEJ*nyC<@2ZH<^G)namIk6n#>vDlJnjPQ_9tByqphbSBF(uIZ@n2$s{wz8|=vC8Fe zHxq!IdN;R*CdC*IL^HpqxkckSlCupt?%2Sg|sqc;$N9K(Zg;O;t5`!3E^KNPwwVjaQFpuNHPw)cPkh z`lr+l7v?e7qy5`c@k`Hw6lH9h6I+|;=!&O6UlIK_=8Twsq0hyO9`sImbsv+nDMbc> zB_8=t0g~ww|HAB^Xt0nCnQ}`|?loA7rOe8;MQ_Tg!8UPErc!g$QKDl$5|h*q%)9jOl;(FTJ`zm>qF>nK z3t`amA^`322{fTuS^v*u;?TKJ47OX0&3@@^aVyOpV(IorPd`c)SZ-?awxmfuUm3y)XrC)kehV&f|D zdr0c=Q=!!zws@0k!!r@hFM*AJ`1#}~&bR2V(+x)+IeaJiDg1oHk-z4D_tW9IKWrcM z`d`a2xER~#@wkUsG(R|S{GjmzF-|vb-{Wz4GYV_whLsn{1`2otza%_?L?ix#X-j9; zcr4Bj&dDFwxyCQa+=G4|`}tEQx9)JJ|NB1kFLs#Ub?ojDgTv3%?RexcT{3uy%dOK- ze1_1tmCNd~k7gYjo-?HBFZDMs_QtLoGYeyUZEf2V%Kp;Wn6&cq`X@=|&sk*1I4i@O zec`p{s8e>0ZMw1BbBeT%<_FJtUUBnzh5jm)CM#DkU9&`@BqjV{K^WG)M$>@5eLAmK z%qEDqZAcJIPlGrMf`U4e^Oe2E?#=6}kS|@q5{PjMWNauZp;}6T8LQBc zJH}`YN@9ra0wlS9DewF&#)c<6&f}Ky&<;G#Cg5lqRk;^Z3ood>DOdJkW#KJs<_EHB zjq)-(E_)BPv~7Ba)Vgi{ClbOF6515A#r0-IRBrvdBBo|!WGsmU=cix9JKFmKP9gLG zGxs;AVJIHYtv!SqgMbPtRy{<^-5EiD|E&v$o_`vR-X5 zNE;g)8}_?fSSyh-Yzzxl!I3Vhb;rJztnsl?$lF%intKVldkLn62{j8n^u2*?2u*~s z+B1}Ix>4dw5gP6m(%2eGF}XD+O1q3@BKVgdCMQLzS1UbDzg$plzV)bU*Iti*N90>`_HFrnDn{>?1Av`f-_J+zwi8B-`c-$=)evK1#3?{ z?Q?nTkKdl%x6j@EuV;5hkxDR45UzVSqb5&PlV?eGWEJqDRWdPCD6vI6zza3 zveweZ(b9W|RN)nJ9S17KS8 z_r)`*hGph-TSna0dZBhb?FG{AA1bSHu@p#=(Pm-}tKH;FS)1zc+`;E(uR8y9x>8#g zu2}63ary4@r)RHajoY6B8u|XJh5%L8S65rYEIeH##ooFD)po{owzm(G=zB=?*Cc?U z%6*#EQ>NF+C%2RlzEX}Kiua>->zFm z4RF=K*paXaJnd~sx3BIDy=hXb~B#@22=1(6!x%C-=^Qo@~ z&5QkJ-m*S}NH)Hm2RCscGw;T6AS7357D#IrG(CnzI2ah0iFx=C-fuNLxt1-dxGl_h z8WttLStez#jd|D4Cm(j6e)_`}vUvqRAIH!WKe|0i6#~q&=N$cd#`@_^e|hxwwG3O& z`nVOyQ2ZNzjHy^vRKCgrlx4o6YP=HNoVz5Q{XiUX((2ch)hu+gD?TF8ACVZafw*+l zswlR&7QxTy@-#iPWYbiLYadCKd$J!iZ~finx^TEr_KywVktFn=y&{=LR0$Z~E&>KV z^&Dk3Nu&F&UAvNv!a%4k1mpS258y+w+?`gtN=`LS#|JOc4+VsFvzuz?e1%3Q+EHS{ zN=GcMXm;eC&UQT8ak}JU;`CEwLBv(BS9*pk=gl~OQ82PR^U0u{UoQP0`?oJUJJtPa zUph7*xRZdPcO~-vN+)@R|2?8$Z5>$<-hvT2ebL+bMSI z>0RJHEe`ZAzc;_kO`e_~^yJFiRp%$Wyub8Qx65PydU7ml&$lPym zP+dA>LzQ-}{_b9A+LU5G*71PNn11H4&*dX&s@I0N=c}_;yO+^^DEuSjiaSlo8w zS)7Z*yPoVNYugC&&MO`;B0SGhz%>g=tis9)PqL zu8mz!-Hy>ipQJsi?|Ur)0p{={b2}Uynf2{L_aEIy&FsGB8_bDkeX@VrtelA+#=g2I ze)`X^6yE9?sW9GGgq@;oDP13PjDgmil>Fg@+y!jTBl}eS8T*LWi~LWBBCd)mmWHR# z6M7uk?LFmUI|O#Kdr){g+2Qb&F5xg6?>>at7;<>-?snS+zs{VH^O?nDe6}86dGryL z<=p6f!R7Y1pWXiwB_i4EGI*&k6fCN}Tb#xWFv2!{RGM(Cc_OZqsqll>{r!~eIZ zAZx}y1ARrS+2+5ZZ>YPbWJSr_(ib0G>3p;Dktbi>`q0OP_Gxxs-10MXEe=-Kf&`#y zBBHRP)Aww36+D`@0#4u25edLf{3Z=F71W%GHqG{beao+vr53|u8SzdQQ~@3@cm#Xq zZb7+jC$GEamf&gr&OUT(QO!f?-KVRgt6h?Il=LfSEYP#h%y0a*}{6`DRp4R@4B72%H+dnuEQto|t?!{}5HuhbTKPp~vQ=R1) zvM)clQ&DlJqDTXS*)j8J0RzUXk-gx)Vp_UuDf3!S9q%8%Z!ZR zn#S9!D+V>Oyfe?vQ=M_Yvd$R~s79XEyu{j#h{a>seCJNS9 zmxtueljfNC3LU?MZvhGw^Dy1)wVyKR%?8$BjSRJ~E~n+5h_VJ{vC{~X?Q;LY8v4nf zoFDOF;n{PGHjoxPotHfQ@{!$wEswEUmwjMeuikzGGQL~7aMs?b10JvcYT>MZ&&OKJ zn!>v-;~&SDbn0hpn_|dKnb>p?tU%rzYD91UhafPx?v{d(HwH|bJPr2aYZAEc6 z4){F_YZEXeX>E9N+~35mfpCUcF{zfjONU*YPp~ZsL7OiGHLi|(4eXp7umZ+=N>c~z zTV;l_P#<*h`-=!~H%zLVbll-h%3Oyd0q4#Yyum(M#iGC!v172)nyBBqKz#1#_pYN4 zt?P3N#vPkwVL>!)#dsupV} zq!bNL$i5bvzyAM$*q-|abSRsN_Nc_SC zQVl_r@N>r$LAVm!(Ez^pLJNOLJO_gQJ#1QB0jt9B7IjB<%|ppo z03}BzV%vR1QCcu);TiyzRsWdlg9L*rLVYNpLJ=hKceDg9EZRUTA^yfjhsuW+`sEF9 zce)+OhUfl955nDKIMYBExFe~&L$PiZkNs;$%hBeB{qpj(ZH61FS6nl#`zj|;janLZQx`|6HE+ZGSBv;qe8vCzWa^4Q$`$_vH0hh;7_>s$dP>SBN&(WWYCZ6zWN_~ zET?`scJ1nMS$j5Zo!Sun@~UHW`PJ-xxwgFNWJZ%OW3rZkbztAL@*gZ38XB%@K{+jF zexA|ILc5R`SAMoC zML;M7hQiR-{?wJp@0WaZ)ut;YZTNuHOt5dtwtP3PDqsN1 z94+dvBf9F3UBsjSlbkYx{O@m`kHBspgzPso|^jXT^HB$jA$bx*RVq^v7vXp zz`nuy-xM2YAkL=rI5j1!csX2R*;MCT|8BgR+6GPkd0I33qctq%gC6cuGd_vc_VIt5 z^P6K82W$15|KsL_vsP_udIrnSG)bmd*P3p)Tt@L3{EB2P3Sug9+ys7)Q zKXmI2_hB$6kEuK-;)38*xwBt_g~}DQeFOQJX)TH g-~S)R!`xMRbWY{TrH4`k_}{cCvnF5hS-SQA0P}i4=>Px# literal 195350 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

6%MeWta+qURy|m#NPHk0J2Q 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

|A)Z1y&9D@u)T?~GBKSh> z5d5EEruYAzet1-3U)QzETfzptah8vrGbP6BUrHberrLz<;fyOB5+x}xP=NmC!yEC& zdr_8km=2mOB~b-`W7hlcBo$p;$1jM$Z5|op14)Zdax^RCLD&NC#lEb6)gh=5_l-?w zCa@f9asK_kjMY^0#<%}}w%vx?E3Qd-98uSRK1Vx+g~SyQeGFIK1{`w^vYrU}1KV!! zc4Q&Qz+yH&Y|rSt@VoxiPSTTf&)nVgX*L6`u5f=o6PYvSDtb38U!JhL^>Q=M@A#HAWZA%S8pNd_D-99$ht#-fzDKlcc- z#k+%VTTYg<>T`dFAjI{ON?AE922)AkD?kezYlTME#Y_F_9HjPSy$-}Yg zplK{1`tpZ4 zC7#2#;~-3`c@JmR3%V(auPW>0L2A`n`2%|(9fvV7>g^EWPH#?!bzy#^K)0p@E`an8 z34!Gh(6L^=EsqFR`uWIQb3FdS2DH3}uj@<+{W~O&AHD8v{Ty{hRM_SgR z#CnhDYuME1JYmA>P_J0$etTyA!Ce$2qS(bAZ@B-+a*GBr3lSqkW!x$yzp0<@51G5Q zifaLbBU;1v9f`ev%qr7Qa8*C3c3#t=Z{HahzFXa)iaN-KX^i`FDX1e5{|8B9TIgLO zY$Wna$}|E6Qr1eTpuck<8)IypdNnQyF^qktWto=&gdtRNa?ST^OBSw0h9{ znnR99&SZCJ_qcFsEYas`gQ-X-Na7TWf_3ZM*~pN)mJysFQGVDF&h{at;VpKswuC(Q zjfywiCBq()tI#`>3C_K91}Z3GxC=8$vml=Z5gvqFwPjNLwW)E62Z@Q zSL+%GRprSNt=UiBZ?2wCF(h1Toi|}LQv^@T6Su8q4df@^?((S_eC(&OrZ;R%x7$71 zy8;SI?vZgUl0NAd#M$9VHD3XX(QW}p)*z)&FFT!G#{Hyi(YVtfGuaw z*7&SKI9X|i&^Hk6wsFT(edD2_&t+Ybq>x*50uxa9utmefjA?9T;ZsFTDCubdGp2*p}z;*fBT)3vtlb&__9Ne zBR*xp(|sBtW$npiwQ=?cn2)Mj4PR|GcT2HHBs&fjg)PyJRj-fzqIG|1h&nxw28Hak zQp1T7&@Ej*!b(H5aT-}@-EAV_i*NSmdlUAOUmt4s@vW`>>STpMOHw*+kShmlyVJ{H zWzEu+L7|Z+Wo58*FC|29C_A;#5B9v2-SWRXxIjCL(l5{Pc*O9A>FHQmPcEJawg$(O zYu(s}BTm0!v!l)_1a-CRQ0(Z<&~xRNM+qHT3!dD7(LX$c!SpH?Vw!)M)?7`NxaUyk zz-uC+8G(MgHCsp@65h-BbPG_pUvp6CWStjVo6C`wAOy^;LHhYD{gtwC^IUx{7fcxw zfuZl?YUG>&5EW#nW+lApW1SEj$X2G!j(!#l+zcximx^kM6+VDqj|yDvcQZbt;P<|1dhp?qY{Bg~tn#)_%H z7PiO=xo1rkfV~wOFETM_9{r{99NLJOoQ9g(y$bqOj5kQGDy{&8)EB6%<;;Jx^{A@> zs1tNO(VA0s_11;iis8+YNf457BC2u_*b#X-)Y~zrdK``h%b{K$A7R<)9OTNa;bZMg zK=2PxIrQ5_YjV2MVX>>8;<}$JdE!_xNS|m?M&N%M4WJ4$)u|e zIhwcw^>(w|=q1Qk;wa|?WFD3#)E-K>wI(yIScbn3rq4YC^m!Mj7{u19bc2UAzmdK_ zReUHUWl?AUsOm^-dRbxjGTy$|RF*dd6V(ffG>7NeLl=*^eJai^qtvSFB#`*fIN*ob=;mI3;)9t)A}xMd?2; zEaGL?m!n2dt+$wu1x)Ih2xIyha;wMogwCvq*#R-O4Z(|h7jnn4zJT$#d2C0yN@opM z=CO40N!bCm`^lf&4rDh{IO;Nl%?VTEWNX--EEIX}N^V9AEQ*7aezMkz)XwC=ONxOk z%jz&JWcpyci*amj1Kn;0mG9g$UyPvM%XuM066GbuZaoN(v+_ zZ~k(AE=%W&7g>+H5Lo;oodx&sCm2ahR);C{S)jy<`1Dux)AQ1rzcqc08G36~0!&mI zdjNI@7j91Kn+!EW#}OC^z|t-;35UA+{-x>y5*($*!Xl4`Huw;s$vrDw{fNHpYjtSFiE|Ak;V?;jaW01g@PdRA`^fs)?)V+4TLjk7kdR4b#Ug0sf)YqW8@Io!CsTm>qwOINPSSq8rYj?`FpH&ee6pVKpYWt z*B}76{Fvl0>VASF5G`YOjDS)C?Td8KdqJT+p zK|EhQH2VQ}q2XE}vexH{V2U}| zqBv|+?(Odg&4)LctnVv^2iT(>+2CdPr~jaL6ycQFd$Di{11-?c1>ogPGWY~w0)QY; z^HnzEIc^_sv(6fS*5ALAxCmttlo#2zp&v;;^YYu&F~_r}Jc57(0}GMAO!8gQ+iZ|z zk~qSGF!1~hvB@O?nBG8jxvnk>^IA$NV8?t$xi* zhY&!CTJdwP;&!eMf-A35rSx{8gR~x`8sBrK=ySl|N%9ZrKzawHVNjQb<^*_|e#v4F zT#^_aWBhOr+h~&3JIm)NS6F&;P`m}}@VeV&EtEqs0lI*~_#F@jLgzC8@%7W^Iasmd zxNHg9%kmE)^rzer8ZO$ zd6ZPu3yUO6At_12ac25|8$fHEc)13o(Yl>qSwCW*qUfTbtk2MiWa)9F)hTh`j6(#BhB;}YFToQdh|e4?X9vTOp@ z;aQIzqd$E^vP1tf?cM4-Dg4}em#qMfj*<2C0}L%DNT$QtS_GFwf9oo>;1rY=>t%`j54i3KI#`_ZM z;PD2OUIA^_VsEC-48r(q{6gp^@^g1l3wpiGZ9Vy375SP?`Mcv;Jur_&pe@MAl}t$xDU=xMkwkWb%6vvsbtBBz(il(BCC&eVyVr2WCKJI-9 zfm3O=&KIgzY+V_nlq)MBCzU|bak7?~1lNDBhVSZG@*JcWGLC7SY1yIJ1*ud5VZoX3w4in4EExp&)`~x=S&`L{M^Yfm{3-_ctjAl zK$k!>_51NL+275DUJiVezC$`Bj3Due78<-W1}driDO|D1-s8c04}+DAT+sJSV8;vVSC=jq`{ z{mJ_dRL`n-$_}eA`4~aL5%YPZ>cbo_AXPu>1U8G)Z#dS-KMrrTH=*OHz-Vd<1c_eu zGXHBex-61l`XNbMcx+wiwVuooU8!kSKW1PX`GarD``(pLCx-(D`9 zv%Cd7X)Q2rlpjFnNY6(mC~kV(HfH2XUmCw*_8xCZZw%&Tvl3!wl4`psAVL4hF*Fb$ zFwG${#!5fvNMhC(g|fB03T)d~63x~`=b9)8c&#f$lz^Q%fA^?v}$_{y@fzer{_j^-(8ldad?wAL*c(J)C{=CURbW#Cq*^Haf!oXuBq@5>2 zCr!%1j8a{A>M!wfS4ud%Mc6deI(Ur&0E-_IT$rV-1$V$g?j4?Ikg^aOy9q&bDDzw@y6^NyQ{Br@HG%qMQg45#)4)2==nq70}$Ad((#T!7nk0GEC)i0 z4oL8eum$4h15gXT9W!ITdDmEa`rH8y{GjS9N9MS8lMTaw@?vZW0B&N^5y;l8P=`i# zL|HT`*yCVT{J`s3q;PtDRCl`nnXoI{)vSZmyLci%-6TsPPz>E@#Zggp zeYrC?a4J%uREQ|Ya&&AYj8Q$Hj-6tm-_i-&z9E&R#WJk529iqX*F2F^^k`E;1RGr@ zO8r^zA&wDy|9vEzimB3yl%|S%r@#vmH-GCjK`qFprug7CZ@gUG`=3K-!ia%=?Z5#~z0KKz(?`r7pmdAU^Xx%n z=$@>|s}6WWx6!ps0AjAuR%X$WCjnMFrd=@)kXjIgud9S)T2)HVA$BzrVKpP{f`tZ5 zW==cS$eoalZ$Y6n>8eyT!%kg<-^SsEP})1c7X<7bjC5cb2pCj-IUh^Z-BkU!*QotS z)mCnK5M||R0%N)q2PV7IE1ZJpBMZTTHdxi~b9AX|vI7_l(?5LZhtx-nsjtSvXXA#z zI@S2Bq5-`5Fh~B^o>l6XI1zl@ys0^KDk)0O1Q{0gta^{+W-}@HZ^Z0aF>h$Ra}zRF z#7H8J?hPn%4W`3?JZvu|bs<Pi}uau*%Bi@()2Ag~Bg@@v>wP-9nQ_=UJ;Z2qm9Y zq|p`knB4;ITcE;tLQ(5IT333Qi{fVQ;7{8)8OyRA!FX_(dkMW;r>3VNQ;wQF^g17%4l-y?oI!9AfD~K$7Lo*uo^sEg?&Wc{z>nE~1a9 zB_!o=U%}a;MWVHqKqlcE?lC2I89bkn!+^;8r2vz~U8fmTC1gT{dm(A1F6Bcst zSUQvrsMj%3%zm{d#t-Hq{xz1oMThJ@TB;5`5hjssx-U40y`%wA$zx^B>+7jV7&3Ig zdgw8ac9%TSNUof!QU~Z}BpTnq{gkJk4<>Pu7&FCh^fYGl*l|^{g(&*77}j?jRr>(AaMaFb!nmTf_7vn2y66bZ`e`x z>`5GSNsw+$Wk(<_Z^Byxl5s4+o*=bS(Uh4`5vCxVOfVU-GjdAw-O| z)uU)amn^B@BL3hsU$E;q@|81gQ0x_Dl+qW3-BH#-rTD8t$to|?*(@CZg)b{oaw`s2 zNXy}nN_G`lBZAua@FpUZDpy%r-RT#5Dv|0m$b+yr$O;_)lvoL#J8{J=>Ft*X{vg%7 z4a^3J96HMlW|);Ax^kb@oOp?u$j8h|(l6InpS{B7MEq z-~~T4i%2%oTA}+=v42U+)X1xR58UIVz_`}?F$E~Q?VvauJN5)?mK#MBycs+aFRRQ$ zt1JQV%+$Dke_)ybsMo0>c7a%|7*;LS0i}chIjA;=0loMlj=>K_xD1U>B<#~2a^eq@ z4%Ky`{3_3KrA)V0G3rU!Od%97A1_UTKpeGs0kzgF$Z10N!pR5xKZ@-}aq_8) zpoFL1NAG_H!@Wp zlJ1VoiA+;lPA*V3Sei&jyAWXh%t^PqN=CmJOO%GjZ^jAbZCa$gq%4y=LFP?tLA{O1%@-3346u$qmNWCx>eA(CVXCL&?Z;v6P4#b2)I@G z-kqax)j;U75ud=^!=1ezC8F}OG>9WRKwzt@F+Pm742y*uG9NpU$N0xgqMU#OW=1$1 z5Y=*ZLPkI7EK8TT4Ly?=i<`JsnD00iYe!7e@yfGxaolC!TOM-t(uvx)%|Z=FIh6VrYL&p+@S>&8czq@ zuE;s;W`#}Piq2sac!UtSm)CC-ey)%}=~md{0A!lvrD&j9)=;>jozVR(CIp{;e|Sa0 zK(K%FKYp(hF4cJ(+fRlc{_Ssni4NVTw)fAQt*IZL|Bq=e+*(cWC2X~JINVtE$23YL z>Huc8qf^u&SvW%@s)=uav#TS#}V;N_)}{1Dwb zwBtxEuY^+?e&dYZ;+}^C(st#Yrn~*}ulzfbJWm~13(pgV3w9KKHXu0QMPLm<7z2c! z140rHs1p{%)AzYCz4UQ7A>!^t!t^49Do?#UAqhkhad?8PSo~{t{1MR>EK2N0>d*9; zG#I|%DTPEh1wO;_iDWS%NluY~mD2mewIsVjqzGZ#R#bHvL6QL?(Oh)`Kr8e+h$aCz zV7{@_kOa{KVHSTgBhHmx)hgZ&J+fR+{wTY z%DxEcK?;MZVD)hV;YTBy0mGM$dIcB_z!3~n(Xj(m6$?-Z2w5?qu-$fh^SQKOyj-(` zAJh&^{=_sZO2xk-i>LpB&MHwoXXoS0U{`HdhxWx>%3y8l_qRtxaYEal`EqBYvCV-w zt_%boinvPt{BAYv2?x$0%W51-rXp8bazR`>U=LIrfg+p`w=U{6{oSF?QbrVPx3vI# zh|ycgHc6v7I*?Q2K|=&T0DVKk7(Y*#fASX0e1H*$>cgGoWKa6QbIBfc=5i6^+}&Z9 z@@uD;a)nfM7-dw99}4!%q{)h2G$?81P-N;*0viD5&0$QK_vE;0(v(dE0=5I_Tf^9) z5KxIhlK`p`(jRJ701<%GbpLRJNLPwz8F}o`D|9=;$eF`@3)&shBtuMB{k|~JrtE8q zt5m)EbE*MUt|Ucc3}I-PK!I_QU>yR54!#N$QDBlSZM4Z0*pv$CYs41gb7pb8+GB?5 z+W1*SgZ&96BCed0PfQ&0ORP)sytR`{e1v>uYY+gkD6k#5C^+&X+*cO{>R!The}p9$ za4ndac|a^*YR1FMm89)7hsz#{floCVB>_OO?Sq;!buO_W{}c*5=%Z zm0-ky9LHjVIe}{i9WZ!o>HlB~5>mgORy|p7I-(>DBL1~eE{kFx#H@q8l*$Lsce#3^Ga5;FM;PB` zv1>ojy2Fv1=gVBnz1b2^y=4|bTWw@XJ};>VXQXIS@XV{Pj(6xn#;N&p{zw>Zk1Z2= z=6JxPOP4_I81jX*jWmD~=b)&n1C81ZcTMax7%!{aek{8~!88pfxGZdwe0zB6WgL8! zTSFWV5zQ(uDeb_nsVvHpKRJY{|7t&*LS#E5-5biphW4BHFKqtf07xz*35|;&Sqyqi zwMa&B>1>a%I8Ffo&vJ;6ikES%%5uii4PH7Dk77;llZU+~o9Z7lSh7?mMz8B9=n#8Z zoV^EqEWZjZ6C}hpVd2NgEIiaebtuXsKgwR3Phk>|8zGHwU%qk*mF@8tN}cJ>lN$5T zl@?cnz5we=AbX*+O2#haaTjPh+n!li^{Q>pI3h7y&;>?&8+Y;=L`qTuM6f-nJ(=9I z;w|;%Wb}nXVeU?yC(#A;OJ_{1s54#7*tR64W? zcTU;pA6lC<@@P-ufP-r~iVbnPu~G85(0oXR+M9GG5pLj1g#{u!dLMf>cN%fT%9}$0 zc`X$A<thxn(lbZ_c-x;JIh&kG4rkL;k_>rAOiAtfu=#nq*@ z0Tn@+FJ7}em`%nbK~^imIxVZ89@e^htE?C=<~$GUw8jbjzU(IM*?h{*$$n-8@mpmZ zY*&d*=h3E1G~p~b8)%HX#GyeB_Qoej@=91bP;sJSwqW!_%whEim+`%E<&vP3k6QH* zhA%vcL;;A`;dWh&xdgNJ8cgd{C^R-bekcv@>r9DHn(7R9?y0zzT##P!i|yTk0)Y9n zZzdRm?%@6bG~*pJD&u9YSQ!wZL8?B$nsj||(u8NtNC|6f4p6Wh0}X_jk-3mVd9KaY zV78J$L6~;#)&up5l_ZRdHXNyOh~RqzCi;aTvVK~)xFNG~_Fe&t9pU7&@?}J4@RE^< zP)=t_!QiIsgG}L=oq}f0=H2&M;8)B|%DjjIb+-d~6$_ST35t39nb0^oV80+TPX7st zRbQRzddyJbhm7OLkdPkI>c53Zbm_t!=2yF_D%WvP%vCxg7o^BINWN&s8jg>%n|sMC znI{M2hy;RcoE$OyD8#~X%VW*q>Pazt$kqbE(xm@|I8iyK- zCy+tHsYeI~!5law?A?(@d^EaNR?qh*7c$`}gN_|oKyKwikgd#j7&YzXx8vX z!?S9zpok?q4osdhj^@!0<4N{EZtdTBbnhwh;Sz{N9IIXaFU*5Pkj4!ln<3Jt1Nh3~ z!aRBeIuAv24huYF^7Sj?!Exr&b z#&%+!#>`lloe9K1fLiPXl({-V(>CwX|2Q*J*e3swbR6=i40|LE5L!g8mq9t_=hqLX z9)LDNcRG?C3s4k#2DlRRjviqnn5D>uywuNxW246BBvzci^)5zIU?ynmg#ZO6Ll!$Q z0VDJyR)p}7!h}0BL2!9(iMqQid1w(C{7EBd8|10SYvq4xw2iz z!QKQ`+JUwMaE2OOIIEBngYuezGSedxk=L6r>`8L)Rxtg7dcrx(b;$op+Ek3-6E9m7 z#P-R*xNbR>-BfSq#63uEG^JlY?iaTsqK2%cGo+2-!`rcGWm(2nH?mr|ujz2d)uUa+^c+8K(Me`a1uz{Uws|zD2z@!4gKvDWd zAX??)`XfU?@0)zd6J|UgWJLORJi{K64F1$;G-zwL|_{a*46|k`b z>(V|_{vWv22~D(CPWoZG;#^+bABKmABePdXc{bePq_R(t_v>Ev0wC@>QnKO7mkkq~nu=|*qO<<9PD z9@Z__b}9B{T%va$azdzMGEPKZ)E_m-rjm%#=P}J)M!(wg=DQh=a9t(1z$ONHBDjFd zj?dj7;kwEG?|2^|7oqXu40}iz+SYFKhVsSG50VCnt4>i1$HbIgMpD+M(d;_UYZ88z z)S#p!S`6l5Q`POY13&TTSNOkF!uH!z;N@Dg6Y}bi(pS7nDm6EpzMwNrLYnD0P@^Z2Og*%2j+ zKmI%<^+K!qn~*!rIVZMJnDhAp{Q%W{gY|&{+}xKaB=)dHzL8pEPV*~$axL+);sktB zBhugxifr;0vtn|E{QA5N zRkvqIh7LqQA7yAB$>$H|QwQMs3o@te{s~9*mePBnb#oqu*ba~c&*eRm{lZI@bR%rY zp3oN~(Hd@z`)v+NRAvTpJ0SELeikv=5&ga`_Nc&m!yCTZP#KQ17Bh41eJBaVPrel% zJqZnTQyxB)WR^4G&-1gO1&ZAQ{|qIp0x`itk>S2N=gxtf!UD43_tFJ0-oBhcPmR z?~7Q)O$nmM+hPZ6HP_Dw&5ZL{@mOPj%of<12TkMV1CV}*eN;<1AnS=I6lhy_n2hZ3 zdF_^+PKdxPru}>*f-pBQ!A?0#T}MaC7%dUFrj^!c={oHk=FHoZv#z_LvffDTXit4f zFw`e#=vlOo38obz>gc<-FTCr7C`WMguL*3I35tq3QP9&6JEK`4tL@3eT#R)axo%}^ z_(HX6WsGh|;!rwefjD`np`c!JlF&d&Qvu3h$}Uw?PbChpQ5&b{?Y{{R93XiPj0uI9 zHEn;8tsM$fhPzm7S?oQsTif7S{l`xB0923)lyp+wm#Xs~;;n?F+CO8^OYUU}5!KvXefD+bBjFg#Nw-G4A zor5qJ4m=7MMs}11&SMV>??V%RH9j8RqegLjVWo;F^Po+-Vnb=Q%#fy1cA3tZlJQj# z!6vgwZ?;)-69Q8%M5k=DRsUk21PrLUgO0;N0dJpO&=@taMQaV`KR)V+K2d1(z^Ur| z(vi$kHu=Ar-VRd|WTw)6s6^8Yt+H6rW`_4}EXi|SP$+Q_Bmr-@Y>#yUE*7jWNyz@! zc%h#>zNkKMq_o53Q+VGrpND1-88;%`BVIcJkf>sh9D6BA!iifw(of*NxS*YkHD%@{ z;6kdVNqHl`@YK!{lRboy;49AjmMr+~%8v^|Mh`}7jQhgiK6w!nG&*z|5Nnh!dRtX- z%p+w}=SZK*Td&3N+m6_o$QUgy#Kbm<R5W{7eiT)%KW{V|FhCJYdmN$*d*RP&7(p$ba} zPENO`&2~*A`!zTGNv^0)7@i@?B^sv&Nw>i?Dm12jvH4QN&T35)N<=CL)01wT*lA4R zVgpagtnVaVdAGXHY)4$3V+kydx#AWK&3XXU-vC|^1_CW<4;s@TF!g)WhhSX7vb6Ds zjsC{ld82ODlg8#K>w8{s79>Fvc9o5%pm(Or6dE^LkP-q2Swk3!U$x{uhS1oo&fco< z6E>+^8?qTI&BoqF!=B7|ci-t8*#)X+ftS)F?WPBCLjk55Wor5HavP3mwI z(HtfKX5t*c+~8dM;of5q?4}MS+HC|`z%*j?%-Fk&I&CoF?y(E-h4ISco~>eUhQt@E zR5uItLG&?tCbQrYZvun47p`HRFX6;-_9zO|3qrc@rax{JU2T$2B3GbC+5->WK}9N? z_Ih?Bk}x5^=ehJqq4?WIG6f4pPX)shkh`HU7SiDl_x8S9b;qoqk*K#?cB0Bf4krGl zS>m>*h(u&oeG=@2mxLR)LG@#k6@EfwOd zinMpV%nw#G2OhIfhj=4D<8)z<5^|wNVvX8ETuhWcWGoRxOn`^41Q)gq5PjLy=EhVz z%J#10ZX0*HI^b^6C7>9RM(@Y@{wfyDP~;rKCw~*xD_Y5wcsq*zJ9*AO6cCkJ>twmk zv&!3*i+!2hWDh8VBU@z&V}>zh4TN?EU4|%YePS0p05+vF?nGl~PuMuFnomx|Et{v) z>gu|Hj*)ac5R~KBP`{BY5dkK*1+-z@v*_$WpuvrI{4Qp>Qqn-92reD@fnx4J5~pp? zV+x5Zr6a>=Jzr4uP8V}9Uya5nxH2`0d*g78W7lh7HHgbA#1gNoXbb>I0DTa{{Wt|6 zhZfnRZ}9?(y#zL4n8|Le@YXFz9n@GCyQbV@jze`{d-WlIez!9iW?v+le@wLNf@a@z z(eK}SWz$t@{O>bIV;|MB<@oYFDd$GVw;iqoXSf)im}x>=ApK|7Y2qRPo`(oWZ}{C zHk_!IVGC@v-fS*!Lzm3gox->g%0GbEQa2PGZWtMEjEZeEOX^z(S>8kY$ipBHCAFh5 z?WHJD-PDUJ(BJISA&isaO6oXNe{DfP&cr2xju8urvqllP^lI=ippv(Xy~a zL-h$2wdN!Ee5H14Xl~wq2>aO(S>`T$W{p0oS`MX`#bZd}HCRgZGmVn#D~LW-`oIeB zk*-3>Qg7XsQtUr^U+5bFcnUBn$XWzkLFaw=*%RgFpetPeGC}PrMO%R01=3~0B$4Q1lgpmo(-qdCM0z+;LL}e^9wryonSgm=BA+2HNUe=*1Ej2WMye7czyO&j_FZ_~JN&q`=~^oIq@t z>=5+-QTFCxO`ZAM_+e2{R1~b(VhIYCI#%P33lOBXYMsKg)-rWT+FHxBDp9GDu;hUI zj$6eIGBdWNtzX5Z6_7wc5u^wi>w?M>2uoC!5CSA2$vMCKIRSLu_xt|wyDl$8Yf18) z&+}RD&wY>mV#jdcAUCxZfg^BzzLTz(5#0d;PYm2BXAI<3wdS0*>s6BTfpLB(%OZbI#SsJV&;HKHyT+SEUmEY2ynW1JJdz{}fwIK76_o<22J##J*oudn zD3u${UlIee2g_H*D22|~MJv}NwtPJK$I%nE?+qOV_T3*sM+J5M%UyfaJ@M_V+HI4S zY>84u@2+akK15ia>YhE@dsZChnj(3;jBFWv2rBQRAeshi&<=94_M;pf*7q(kF(rTL zTIBY{v?S7qp7R)dC%|TWet9@H3dp;}A2UH={zpl|gTTvIu9VxSb5SyIkdGKJME3!I zBCxA3+uO^KD1t{$gAh)L1$1LJBwz6}^MSxkA#{n3WO`Fh3VBoIOkaRY(eVSLX~plA zogIM^C!g-!;yV?D%Zd1Q4asxn#Tw@^EvPPiFjuLB~mx` zeZ?d1e0NG)k=9^@0hz#Y{f+QcjJCp|OBGIJ2RW>^G)912j@YMfB=q-b{w`r6hGy_`pl*? zsR>JkJvHhy3z2V9LQ%9Ng0=vY{~Uc8hsSwQ?hd|4S{+b7Y+~Botn0Z>J;TXJS$lAA zjf$T2%AWWFWFz^yE23i%xm0&K5EBtofJfwoW)_ecwYbp>Yv)GGi{OLD;S z`daX9UEv#cD~ihUrk8}TF0sj8WXSfzB-I4;j3uA61uo9oiZyl0r@u#4P$Y0O6SY&% zHS|4I22b^Sk^QMQmIe}q-tugT-iNWO=w!9&kgg7L7-T-8Y6Be?piweUp{~0&)jo8P zK`Yv3A=*>7#D>hTEDL=R#uA1&2brIfJ&<1rJj?996)!4#;f1$lX;3%J7Mf>E&IZ!n z;p3Etv*OQ2G;9@V6S15M`eT)8J=3g{fyJYU9%?`+ndE~ zduq;av4L4?b0FxWFzy9#iTyW-Dz)oG%^yn4sqxFh)3bg4Z?U<7$|z)@HOLmca_siN zjH|X@SqaU87KIU#foxr%lqD*v&>Vb#%bpIx{@ZdQ?y4hW?4Sd{FdDM9w*9`d=oU^Z zyJw>4*m_atL}@gslSr$|K>AbF5qsHhGnub5D`JiiH+vS7Do$&eK_cbCOyLUhEP-LB zz>sAZZsUv~mkK|3BRw$AfOnuV=SrU*XZL3WH}Rk3ZE`2f$J5B}I(`w{L1sX~>MMz@ zD}D6G#7V<5J67rnW8!amrjvaLXIXCsea5oXv0x5+Y_R}CuMq4(Of{wlm(7l<*wp*r z8y~}+671avr~e=3uvnnE7u0+-rT(F)>EXQ1nmC`{|D-y6PAD6hE~SR(hUVqPONwVQ z`&lq%1npT{a;X8_?T0Sc&lVZ-q%ylEoV|}@j-3(ocSp1okuf5_XX+vtsD7Kq6GYGO z6#CBwbL1%gDYF+zPSpZPqA@%+gtURDrz8wZkrkbn9*UF>Kg`QL?4s_RL9M>=oqJY| zzLM}U#(cy2v}d=7CD9(L3BtL6x7-0L6>`6CmZYpH*}?0Yp{Op)pA>L-z(ijW#v7>A z1TWj}eq1?X7XVh;s+6{1F5Gg4QE9)GoOv84e&Qzlgw6_WmfP52A%4PD(hC&25`aWP?Y#-~N&d2*pBacvmEnz3vRQ@=T-;Y?-R6fQ0RaILql|F4H8=ypTfAFFSN zB4rqEAth)i$<(eBHpdB@*VT?r0>>eh-F986AryaAxqDzkPw<<~7B8(Ya=UshX3F&^ zwfTp=qa~9z#2Cu?x61>Svs7(p>{%bE*wGZ10pREN)ggi;Y`Xw8 zI{enIu!tWo$ae8>zo8X_52^XRuj@cgy6Fs|{yf~anlrH=(?WiEOfHu_aB!Otl0DdM ze_*sjzqGM;IUD1?*xOXx+`xfwfLZc5l&D=)Ql5=slj()rd`@8Ea-V+~L2LXtPwPWD zuf9RPjzcku+PCCV?%_1Beu}oBHDhJ?))0zo>aw#^WKc9@jzmJ+vnlK>0tRV1?nBJ~$P&zL*Koa^)B+Ob{1diLyopE*RB&Q=2 z$UD&l@0~n#jlv}*y8L+M=XvITkPbqJm}CVcI(VjcIdgR+0Vh0L9D)Tt&2&<0E*5m& zqs9rCx4>f?Z=^0~#qy0+YNZPRnH$8SGTXLom)6ExRtirA1U(;uc_I%DESLak8}$#E ztQki`317pU%}>%|YfCHXvPwgaoXO!*%?Qb#o~VE1NhA3Or?XQvgXW`6q%&9Y5udGQm^|O)@>(YN@#^c>65qV; z@c2po;k64Y^*6b`zN6I+e&oK&gX4Q%AAnSeUt*kdxSnc~T|YI+UNCW8x0mk83tG3( zB%c{o5o97PEFJn5&=Z3q){se>b`G)5Oa}L4!Rd}bU zqWSQG_Bx)A(OqF$D>~;cQMuPO2y6|~g$K=*WNxTr7b{hy(cwhm8s%fVv)FKIanRr- zm<||#@mA)SS5$1JT3c6_T+18H-%r|8Ff)>mIN_xP$;4C?zPyffUICr`pB)Pc6CiLy z;|m2r5Td;z@10&-zp*x%d+DltV->NF0yn=Rx3zbbrzImu;%sCaaR>r);&Pp}+ zmXIyGS%_wXLDHTuY{4qjc4-$|vekzwm802X_Qz^3gSit1;HowbX<=}~e`T*XUL+4V zkQJ&1uEWQDvHvSACvrKq&JbcSq{}cgPtfm?O~=k$IiB!l{Fyv(_wQf^)j>#p;3*rP&DF@1NKb~K0slu~@{xeAx zv*_9^1AT9ml3itZq+=gZ)|;_bM*;h$AZ4TxbCD75Wcmbz7aCIO5V-fE)9e@0K67B+ zY|qj9t*B%{VQ&$fkBuL>b;lJY&9D|K9T6<{vC&) zU?*e}rOjF;6R&hBNQ}}oc;|O}o6bd8#(|0BRw~V;8g7faZQ+ONgn)1_jjS=>1sVvZ!1ao&(bf3va?#22$fOp~aB z_&%}?35}viGF)PE6`V?^!y;GgtyOg9h^#r}qm%Gf$}^NIy3Z2h^?zZ0 z=d!5?^Qj1jx+s}GiW?&-A95Z)HlZZe`afu~i{pCj6%0Xfpt&$)sjmZI(7^3EZ+v5< zW8o7+l=&BtX_AbMK(3i3yOz~FIYc*E(h?ZIp1D9!X58zsUlXhcftn9akv6WKoA_cD z*Z}aWKQOIe$Gl?2$78%ywu;Kc_DcN?F>^!FZBfqd%Rs&+9>_u$TMW-YH3rR)oC5cR zLU)LvCd|M(KwWi>c4Qb@Q0Y93A39KRItzQ&iCTXbwF1KPd!LjwxY;f70FTQWubCsS zmXmso0DU?}=sHFyx>qS@6K|72_hxXV?y59A3{v=N$y1;J!#QsLBh&i9jN>jya=^O7 zC0J4GgZ}d*Cd#bf+kzmKAv#bQ2T;mIbt~`{em><{v^t9noG1`4H46@neTV+X9>D&DMTZ} z_R5*t@@99o)m^HLjTiWIcP!S=5%}O#T6wfvaa)7 zR=`!F?1v-~xS;I4U?ABJQB+74Fb#rcFIl~pNnXd{wk)^t^i3Aj$3D-nEnr0p(f^nP ztN5$9m|n`Wl?K(9M%0le6`2izbxTxY-4jQQxVE=k{YH|(tHMwt=&A`~mZoUc8ZH;o zCRAvxkH~fTJV}fVf4n4X%&}C@3u&;a<(2VmmG%1~q(j}Y*9jkSv$ zUK6E7Cf<&0BCsU%gokoHGFg2F;sKMGe%qSmsTnk#11-H+O#g+8^=`@+ZqjN`Udc~$ z=skU~m>VzD+qYOvoBKNwztZQOLVB+UsEdiLduQF^kW((foeLGcP;@63=U(9`lCQC! zkUx0m8@xM9)uvKK>-xNRysNxdE3^~njt08GnDErtffduCPyl>=El5b4SE##IJgI$B zpD8o*E*~#~x+KvCjOpxcQ0Sr*-h`zFyTuiv&6_Sa^4ZRPkomDXWOlFQ-`ZN4Hjja{ z)_!qbPL9;dB^P_V%A*!Lk1FIE3M9~>we;kF38ZyRbG8gN=F% z3R}P)L?m>2ns*4yP8eJ8Eg$pCrUcg9^v-YhCLwmt81L$BB^#|71fW0$*u-rrLP^_T zxX3u%+?ZnfiWm$MoQ&XoV)G?&ea`}M$(-=xrxmTs6s;mCm)af~JNTSxt`#tf4s7&@OcH6GUZpZhbo7P2TXBs^TB2VAp}G!}ZR=rd{-0`GzYBl*8#TeQckP2Mw|2er#C}U0zI}Q^yY3cg7DBRXA^y%wWDen&+DA1 zcmhl1bvTH->+Bf_m&e)>5F436*TsW;?#?8AZ7US?{7K$18>3>$-L*cqNdMLFB9nQ+ zWrL)O;Oa!>_Zyk>{}oQ9|0FqQ6Xpmil1K9Q`coi|6rJXhosEoJUhR7296{H4!5?m0 zNH4kBi{35hy(Z8+6q+AO$^vD}xMl^{-{kx|$=dq{qJm@qoab>}0Ft(dZC{JaZBth( z3XC?BQ4evYQGsjk+CG@1cw5K?q`u~ytR9y@Wjm~^%ds_~&~-r+GR%|re3Q@>Kzo4T z85<9v;d*Q8@tq_0mhHrtjUB`^W->d8Jt#WM@@J$-?)ah49q&z%q=qXg?G=c5NRT@^ z%Iqd$#}7s3hg>Ix)GjtzPo(Um-29{bU%wA-z8bH~F%FPN{7Sp^_cmc4OMhv4^gb4n zbs=S(U$H1n7DbyyIfd{kmJ&Q8X$f#)nz$F975u9x3^;%Ry=%Zey2?V%kcEHgKW*_w zvqfZy2My~g=~I#5P^l*s2GCwIwp=CQJWDt4rXLtvFx?7ChO%ZrXLWnNB?#>Vfl~pA z8o?%RQKZFQs?g^LdeaaB<&~{RbEyLZ>u)K=Q_w4lyFV4*CawmI(gB15jjIFyeXL0N z5EY~p=&;%Sy@@xV<5%IZNw0YiT6U0^f>}(QS^C%ZfFV`X5{vmCi8K+lFQ0OCd^r4lno0cGNuz1 z4`1Hl?1TI|p~Ir!sTrI4fPbhjl`J{=MIQR1AfEPmX1#5&mWpgc=-xp3k6(^wNbXlk zmkaej3Xi^BSfzMU#f@mvI~oJfvK2r*RHY|Y;=TSUg*oL$lf}s61 zDRCtc2^vq5GExLUVX7q6D@8&USf@t=e13N=0lD0c$tA<{-uvu z74h7{s?OfOG030Ut=tYiuRC);DqFsBr(|J;Xs$}dzEJt?o0(D3@duy%BS`bFl)6#w zkl-aIcR|^C!HLY?Mh4X{jewRYT2!Q0RlO^QtFI1``gT)qBU*AKnmt<_#C5-dvXEVN zM$v{S>mOp<(9=u5?hJd~4oV$wuhqFk7vz2E1zK52Y{$)n_Sgg$fo+`#Oe~P#WHf__ zOF8ZJRo?3HSepcs0>=yQwT<7gLtxlp{X=IP8jvDyd`9-bt}I71*Y2vyhgWuxY9a-k*fB49 zmy@kyVrEVq1g6cEaGR9`B$$&18>C3?q-^ZSe>YvfN=4Q2WR1L2LDQS>obn@UL`(04 zd5k6d>tt^NAW>w$Fuw7%w)?f|k#YBduY5P8aapznn73(&V*~*uuRojr{9c~{a7{b# zC+5ElF;Z!YziW1eqg?wg;MlIW`z@((s83Ymt#9O z_BF`NsjWJl!BiqhzuQP^nA1P)`{vB4pY~anf`$zg&y9SZ5hc=>{1% zu+H>^Quo{!+?pKHSZG~!PAN&pI7YNcISE~oazCFQS0Coco|qS=Nj^PwxKS@MtuGY4 zla=$i_IkArHO=GZWW0~zyGb>Av$eggGd0Ds>|ArDOjmj56*}fSfkKVH6X^ZFg;A>?=M}WqPK{6+p1)o6 z3+QuAJA5kM7010Da5xRyC*X&T6m-9!xVMBx)y;Wmq2+Emtkrgv!j!h2@oK*Lqnq`K z+WPu+^N;G@i8DMi3O~PV+Yoaa%i%MvZTFd;|2-bkH;6H~gB;g%US#syIXC9k>*1o< zGs`RGnxlNn66js*UtXD}Y3vRdvi*3a+_??|dUI-ZPhi$&>y3tLb5`sYiF*9vsFc5_ zt=U|^+3W4U?1T&mDV3*sE(sfB^wiA5ZqEeg0&{#tOzVw}{sl?SyN_4CsZA5KO@UY@ zKAOAv2)~|W+KRVHXtXa1m?JMA@&{9qS0mal1bRM-wwBO;T?Fw+K*Hu@eIf(0qr8gJ z;{ivD0Ck&2jKoI1D8Hg<-qLa7#zC>kNPz|XhP72O+UI=cs3GhZ+(rnU;}BG?xZ=4(px%& z>4BT4=!@LzZ%pE%;d^>FWO>zzm^E}Ql^3nbD?N*uK+tv_bClPt`EiZUKUQZh1O`59 zRO*n;n{^XteYUbLGu;%qXh?Ya+@&XACm}msMC|AOn-f~*mdrVP<=T~7&yQ#1sL4zy zwY6Q>*_E4q`2Onb?~*gBdq$_nwJa}%61{!y@SukVqfUs}SkPC8d=TZ&!0kxM3wUVX#pVKKHZ|K#V7oqA-(p?=xLMtBbC=s{h2&^PaN9Rlgs|6-?RE7BfN~PF$I*QlzwhIroG$q|AD=DX zeYfc1_bY*r`e4!$40owx5}7~bf&gdRV7OVG*fWlO&7QILwNUDfES02808a3vSD5v} zn(DkeKjtl~j?-SWK5St2@Ads)*TePtfsctGbCBu`$L50BX=5t%Hw&(JlkzK9=5&( z4JhcS_=2a;IcX$2L4VFU*OGf;CAdtODQw3<+V|VPeLMc!krU_UZymSP_wi}n=V$L0 zeRJ-o--~ZA^UB%u+;QH-jT;(I{PyV1q|%chdL2=W60$hxKz)9^ZUE4ULTLXhapUA{ z@o>kr)WK1joY(z!P7hN|L*prFE&RxV+ObYJcIoFwcD{pc zWpux=2|Z@KaO`+0e0A2XQ%+*2px=2{)H{YkdMPj1lW-@sQ@pkL?r9f2Klgh&8LQgj z%}74|M~!N2Ya2D{#K&*{__q)Kbs~&B8f=l+{J-$F>z%m!4_Rtmh368)27pQF%UC+~ zV>g!;rw=BbSo!wvIC?y2M4yrD=3&Lw^{eULS;Va#c+rlj*%9=}L+U{99vF{7T)DdL zkc6;c%d9aT%}xzA%qg-D2n2xzE}sglqHUKEM&Ius^)&U z{?NH&b7nt%Oc8F9F>BNJn7x`#3~WI}+E%^NIo-A^s^hQ4K?3rN0_?n5U3N0*f zU^f_a;}O-uJg8%Ytihjxk<%A2`{)eihN1mzFq>>p#`^g~S3U22Y{Y||AQdkL(vu<1 zczK|fiUvEg?{{X_9HX++72gN|$zeo{=0HQcn@3{HxBtFGueLS0kq>s){y5U&G?)Y1eCgaC*c z>ofJ}$Lw28+rDX!`B}@8=3Q6Hm5V%ZsR;cJS)R6^6*CbO8%h4{ z#?!n`S+(x&>6z{tK`Dpyfqkgio^CX!$RSvB_j#e<8nRRJFPM>L*C>tp1@LHq^l8M* zZjq@?4Uvot^Ic=SU@CT#h5(IAzDS~pHD$4PRUMDy9YZ+#qLHjQ;0;6K#8q!~b+F$% z&1Xm{2{w9P8KCKdW`HM+o>{e;ZtGU{1J5t@W=-hFpIl(dKbVsB##(H08^TW0udPkz z!Fx@I>;revaAe>$8c*#srDDrHh{D7tqEX!f%uphhloCfHFHKglR$kqEUwBtpBLGM2 z_d5GrP&VJLfp(s}ZCQTr1=`YXsp$MVllfM0d%a>l|1aa2TcmBa`mG_vet|C?sai-3 zcminTK@j}IQg`M$&-M|8ev$Byk-m_nd2a&vh5%76ssZu38{Of84zqkOTmnVjBQtv^ zhKEaik2q^)klO%7JWQK6-3ENIk;P~`Cp?lf4(XEr;Ar8f%11+grh^bPF+msZ#R#A@!1Midu zm)dV0Mp1?eri~%>o~E*Z;C=2AoW@MG4xOT3!?A5S2Ft#{>hIN#$JFJB zvm>Zpz==TCqrC2*NtX_OnT-|l1?($Blu!Gar_i*CsQ;At{-8M!D>~Y*E+3k11dXCA ztdl%^cs#HRfi;)-S$lzF>&`G`5g7Mq%wa`0L0@_v?)E^!<2{L!X>)3XQ_+D56VeOW zk+>S<_To*UB_abICi(rnZa2Cs3fIm$iJe`<2i(-KQJ_C=jq)I!2nbS+a&*wlfJu0e z6)^r@P@WVici&em@ox`_J*={{LpQD*6}IU)-}bSPkVLD02p2b-JS`{`QYXfEs=nGVL(UDKO)jlxfW z5#ZCqEm4qI#8uPlHscTg(xaEMC@v7ukJ} znM-y=6w^i##jB(CB_GDL%+B})>SOuiRl|%l_OwK|+T6%L1{|&t;ET~KrqThF}o^aqp@oTCl zl5)ZLk*P}&c=2Jd2({;Q@jklrE5Rw3Y|G6-Azdv>pwAlp%w4gvD9&Z1LMsKgCFH1_ zfR6cc(;{XCc)$cm$#BQu|I3hc;Y<*?;Pk(|>jqMEusmEP;H+xfgWP`f6nw->^aC5R zYn8)6=@$n_-NeD1ogP-L8auu{>fk#gRbLKEnhw6RJ>ax(BL;(1+|dCX1kk1+@n#pG z-1kY-`Y+r>s~fFwnYw!o&7BF#C@o^CvmHf43Z^;)8n-XcYD?xEGo?&`TZQRBKGA-i zmT1)P0&~b{J)zAq2o$PiJ0T}97}1T~d)>AgY?APg5vug|oK49h2)*O;GvC#=z9vjI z#@i~j<>7L~^tOlD7(&SycP2^9o|f0|`eiKPv~-2_Xk=lECC&(x;FZDC1#Gl+7QC+M6WGO6i*<%i-LtQ|*h3*%qr*#-Q;|${5b3TxPtF zCIeCyz6UhcwBXb(lLAvJTcUeov#uBw{5si65?_&rskCsuPceBjjlRKaydN%Yxj*P|u z?FC{>&S9WE802vi)OB-^6%XeSgVtqG)Y_LD8*8pmGaF^kb792aPh1420;SN^ z>Rp~;O3I3xOyUy?2#Px^rKw8U#HY29xM&U<(R;|ANU<8~OEMHk*nu->H~?-OhTV81 zw$}?+H#ffotuVo_+`g&ngt8J#GfJx>C$7A*E<>fY>k3zLIZS(>q{Cy7xC{Zc1dfji zTMd;k7o;yxpO6aMZ~-wJe9gFk4l(7acK~DS#PnwB){U*0`JtBsM>z&0nf=jqiX_yQafI%K$mVAdq$e<&f zL&a4`TX09{UhU^ZE#;kJNT1$56*XN|wnTu2}D z4Mpa>(08Z*Hr zPKSck&L2L2hHI)JeAQoiEp3EMv&O17nL-Fnw&35jky;Q$foNWhOK zzm62qd_82g-5{zCo2Ev785OhVW49m2d@%YG{O}pa^L7M-2*l*R?ymBy{gP>LY}gLM zN^rcJ-dco!4Qn+y85@|ccMPEbihi!c>p~UBQ z9$Z!}j#|5C-0?ZHucD6s?U$p=kDWfJ+?4JzV=!nPKMXeydpQhue`SWX>_PU!Q6SFUo6twC(JwC%LgH3)r4;;V0Q=d5O8*-(9S?}u(%HCF_(^pajCnOlBemoVQe zmf!gxD(HK9cFbwuN|wz4pC9s2Y|}0A-K?q~AC*jx9sFIr<4k9YEZ`r(*a*eHc09?q ziQlU_urYf6X3tfIDc7}C8&ub?lphL+ZhVh4)5admxg4MDmg`l3iMU`N0ZEVvCn^nx z%fkz{R*Fh)AMpC$1MbvfJDW^eVEmgqC9P$_CqZ((7Uf8;C0cmuex*pYuO*z?q`Bc) zty@=XT1RDnr7@4{Sd4bba+f za~7C8`~xD+HP*XJ=epA!x1`UexHkb%ZLLvE%ZON`>M5Q>Re4uce^(C4j3PgwV^W4% z|J`BTIPEuC!G|(xdp}9v(z1LmT_41HfU#`lB=_c=rAQPHgyH3m)crXXbwz+a2oZ)v z+jkt1O}UQWmsb9!P_vL~z`uWO9Dj7f_$>hNrS8Em zEqL_v$)hI99rz>1hErbtA=z@qHte zaW{q$!5I-k)$`+(F<5U0dVueSp`@uyzlG0i;pQC6qZ5bHy{Ysc$J2WuIbDTE*7GSd z@iYv=Fi}4a7SZ2TcrBT5L0cQ{YU%5sNMEE?dqTx8}Wm0<%lKkvSYYsC^?&gHj>W_9egP%gk~oa@Qe1LYL-X*JU3H zEY6s`7TNWaDJ{8T4zvjyk~U&YDTH6)BeEZ#&&2t3U*(te{9YAg?e?j-m$(?Lf zj?PXdu*}BmRnZO4Bk1`ko9R;JX%jyHJrgpZx*sT6E;Kg@PveD{XlyOX2t=GO(JaT( zlPjLg@B*_NF&M+RaJeEK77B)5oc=A*$w=(rG&JguD>TcL6EaPIX5QI#z>5ebtxY$b z2gwo*VBLf6|^-j(eUTvr<0Tr6!9lqh` z)Oyn+sAj@2$&!>~M8Y4UPGTGEsERe&-bpc7_sK~Mkp@#KaYbdAttj3hrh1;Izp8k2 zA#Y4UR35ifng)Y>#35+XxvvBCA-~eYUq;~rjU05&z8c5vCC+j0C?eZ%fNGZV7!4nz z|6FtCHhi6j1=j*VNx*dg_BZK6EUXCI%4-i2f8tkLKdQRxY2fBcUG?qzGV3?^h+Kl` zkJg#t9n#gIDr#azBzXqBVX+`)k~*so(gp2RXICgvpu6D)iOyAuw>KCbmxOQ}{`J2L zTYd-TJ0{lPLU*_UNkrc!4#XO{fLKOa?pYW_CV>NtATDEZ@QZcQ2j_*mIqoIk&2CG9 zo!$&Yl5htgiAoLjRV&TPXDfuv3W*^wE+#x}?rj_37Rttb5zI1Kb83E?7Q)LJ^Wmj& z-1zCQGj%C+GGLuz`=iIji;Vv<5aaI_>HW(1<+WYiwI@iVjZt>SU<-xu;s3fc?y~>X z`Wiyarj!Oct1qiy#()W5!Svc5T5Q z-I+!&IOxteAKTv4ria4k<=CGQ_7rlhb31kx4RE#o8izoSwQnM^g#0J#Wq_afa{T4> zf*U7WUcoo3uq%*j-XX&Fc+Z0T9qcy%X9NoHFA7xzOzqcN>8J|DMT46Q^pw#q30Z z;efgVZr$*0ruA#Z!?XET+@?J0Obs zrd6zW0e}VvXm!lURHjFmc8f9Ut~BhIckd5+UXos&9xmnAPv zN}>osDH3I$P%^_DR5xDX%Nd;A)HuvZAtFr;Ub62YS;YXo*H~LsG8gnyly}Y}5Ga~f zhJ)NBQI!V>46y_?j?2*@FU)SV7dmuC~ib1PEBSjvKzOXOX#fHAj5dAph z&#=z;9g*=)wRJ1h6!)kW+G}(eQOxlqhr!JvY!nD)s6Q3fgl?<0uhzp^OV5hm^IuHI*{817p5%WZkO^Q39@A& zt+yn^k=DKdM0s)kEx(-Szej7LLY_sTp$*P-!YPW(%SQG?iSNu(k3g9)=wm8*G;l0K z2xCMjl|+FDQ1J>p-D%){0aF>I)T+FP76TA72e6svkO*(Uo7{zzW1(Tn&-yx{%5 z7qnj!dr-5#tldHeU~#sWmkLt6zvdUCkKh+x%?LY2KC}^%p%TZ8#lzEtI;9$N*AcbVijC8`m zc_eyYV8;#(5|ELZi=7Cc1AZ&X14w|cN&tz)SninF*~FD`SA;x;b8|Ouk4>zMZThgb z@k2}xAj6$;P5On<@KAW%JwfO0Otx~W%ztLurZHjQO#NxGWIO}8i^=qLirZ9zc&?aW%?*)`XODxAt(0KbWS6N zturyIhJ6v{Wz0qUkC%kle>X*J<`P4>)lt+roA*ZqtI2Ze;Ev74eM~IZ#b2o$7{Uz< zAX%-Q>IAS9fia8X()@tDwyI7pZiu!q>G7tk?v`oPVZpZJi}PyFk3@eITT%kD-GbCV zMCG&;l=Q@?;du0p_|W#btsVGl;hx`!4w9rL{27op1;|TLC;epLa4ALUS;Y`>=Ud|K z{!Bm|=J;hUN}Y>SN1B>7LnSTIg$?dMNe{zR|p7s{I@59`M{m zbD3X+>3^~SF=duxF~E^r^+7h0cl4|Z1#vF+Sq-z=agK83%a3#^-%UUm9@l<8nZ?=ULgU=hf5F(L))JeBOcD8KGCiFb^!v=-3bOAH6X4H+QJUVoCuE z&u(3#?p)(wI?OW#p~O)(DtFj_wCX)rzaxZ1u_e~tOimh$`POY@R{KwT(B!t)-sumN zEPsH%kbYtJ5nOKSUAIioddu`gXBxpMxxAFKQWTZdT^@mCG>EAZxJGbztC4pm!@W8> z;_fMa4j~jYx%m7G1aj_>SorI{vyzgdTAcV`F@&q=VEsG1UI!kOMCI00>~}H5jzg_{ zKXQSIJ-GXalHitQn5i_iQGGGhv@E}I{dg4hkV_?P(|2HHFtv>vR=-7Vi3&{1iU<(zP-dg zurWCsiAKasWWD+vPM;ws2~4*|&Y+r5Kye6T9#=rIa^fpCYZf&iNpa*`uDTFYL&`u7 z44;vRBmNWTgV4!#cn$O^`XCVfZHxc)k4zcl3YiJSZNmDv-W)qR)AmMYIcVqqPUUyC zgdD_XiTy0?UXh+_w?A1=YW@x`L*OdT61r=#GSCA$!k}k^tx>`kUEkE&#=F;RF&nx( zJc+bDG4AnAFY)uSx>BgkX_Sd0*#`S<(XX~U2#F7uvjrqPs-ikTO!~~oa1to}i*yY8 zlEpsiRluA>e%Gy#g8^9K?39CcqyLip-`|+Bq~zEE7vE8W7Qa6_zF=rQ>rWvkOFtgq zjRW4JXsb%s9uIl$gUE4s?$!?wLw$WgPs~BIG%_-ZbS1S;sy)(sqHoASEdF0#3Q56B zY9LBsKC7I^CJxhlCTyL~A6yX26le`RyJgw!Kri@%$CUEXabPD_f|*Kg{(?6c6qze4 zH;N6leA}Pa;swf?BIei3KXL_)U4P2kd#zmX{-ja!0kiDfaB98WiDbN7J8(Cfo&nMIXEWn&Guf za-z)UbUCqnP8duUGd?QJSNKnC70Njn?YX(r^>2x{6a~mMXR;EjMz{iTLAg?x+!S3? zw3da8OS0ee1w*h!qI5>%a5)x2mX{7LSg&ke@6@vL2+<7As@5P5^@> zzEdfmcWWKmGH`h@&;e|JJiXR5J*EDFS~EqGnJW8+B0vZ+`$S&Ru%WgU8_j3*)LlSgIxkHd~VL0x;f-%GXvwx+NO|iQc2QJNw=q-cb z$sla#()b0{?<# z8!rb$5m1V{cU|RMrd?7p{{7{3>gqx0v~pe7pcfzU%W!YWX2gRjp#bRyxi82sq<^dg zvtm6YG63LCBR-s-rT;f5G01rlM;Y`2Y2Dep7Z*C)0BFVZZ5(k9b?c&Yc4a1NW1D5P zxhSARsy3%pCxYEQFgp5PAA$qVwV>29fJ`Os&SuAhnx9$hp?Ypl*|{d#kAd-R#1U$c zfz6}`h`iXB>LGFocZ&8xd9dk{icPo_cbznyer>x(t3%Ljhe{7He%v53+v12B_fTXf z0Ab6GQuXaBMR|Z8d&i3|<^0q!Rkvk|t|!|4eKf6+mpku`V7p?S>-I%hC*y}g7h`Z8 z!Shp<^7)0d+dfN0Z3!BZBtz)8Bn>@kz*p$`y>RCvC^E(Nx@`gc%J4g4HEQSfabm+# z07_*~Qnwh*G1a;z9oxI1R}u#O+_C>2HL~^BbmkI=WXL)PIY!v^*~^7 zc^McqT)1?r1K`~&`^6JscX{owBx%iHBy2zsU;=NRkEK8gRxsNAJ7Pczl_ebene><> z^vhigK05tBz)uDe_-b8mO9a({B^$TZ-3qcfgM`5p5s-dscGRW%_a?q_Un#xdT)%VN z#Gp+DET+#O5B}YZyxXff-U25Ym0(dZ!^DPCIgn#~intNJ@zi2J;2c~5@j`Dw+i_wQ zSOd<3g`ddWa37k*B%k;m6BuF8^1RDWTww2UY4IuZ`tfrt?kDN4_kQh zX5~5Q$-wxBkxlv6j1Hvqw=T9{Z@VkBs>qmtBETQm#UP@q(vy!}TE+8ad7~?N3yR5O z?rcL%5hM`z{F=Et%(}|P$eF1WI9kQU7!dV+)WW`x%IBK>l)XpLzj4pH_hZGnSq`A` zdHQpB$e4%M(9{&2M2WN4YZ0{W0W>F|goOmLd`FvD8|&EdzPRge!rmXnbu#SbSk1uH z%nK%W-7t|UQ#@I(c#8rB&>%8fG3!YF-evdWx`gfeL*~r?J&_?3+{oRa18hE ztts}j%>De^Ia7ZDkupF+zk=m+4>l`-1qYlK1tJCZ zco(1{pc3H0jv>pHWxy{DuDj84-GSPy%+=L40q?ejOr*%uT@lH3NRf;UFMwC4e7%YB z70};2mCEz<|jX4HuppOKey(+ZEz9; zw(Zw%+gl&93&;>MD?w>=s?(C)Ne%ea$T%G+1%lv8-bu~fS~E%b2`cz>Zh_)YeqwOt znk=WiUX5_huV32EwfV6oI+OJLF&fH5r<~l)d1xu#_U;rlIic7koBtzILAb&O^}XLc z%6Hi4zQ;rEz+U##zCR_AuB=lXL9d}Q|7T$0>D2n(h7$8Gtg4eVfG#CCxz#bvZwOnj z@OS$|Tn(}X_p_UMK5VM>aRlv6W-ylgmW&v9531jA=;XeO|Azf_pybE>CykT~seR~3 zo8V;%<<89!la?d8t?0-{mz$f<2CxrBdN;(^b4rkcZM*aYLs?X~BxzE$O{vvQp$O0K zyTZ`~7wTLGMA!R-N{-A2yeVQNuSXWH%5Q>f49O|+5`j382j{75=E2hFxrzJPp_QVT z-7WBh-9l|Q1(LO3JZG8xLn*2<45AMPoJNv~Z#)U&bp$ykNVU*$UrWR}s*bENR7x_k z5(Ch>8v#TdiV&OsR7)DTX|dJ3E+pukR?_`pl)$o_In(jhq#Z(Y*ke_Lm~2 zuX+t`_t8G&i0B_cvVF1B?$$`T9a8U|pS(D)wQNg0O7RydCRZ@1k@!F|Dx0vWT)3;P zC886>(KTxoNtwXwGK(|-)5yemin`PG|Enf?`Hz`*6K@72I1!fXEf`ReTt9$2XkwkQ z@?e(&cvOzX=@j<)^iy@6Ph-`wCv#P44Nt*`blb=B`P)rcB>TGE4RILZe;vzTn9Uq`KzeaUgb;G7rBX> zS2#%I5$t!Mmgy@X?2pxM_x<<4tLB%MOsyv6MX+aQ0P9C4>|-~V1dDRdUu zeDW_GJ8IOnLDUjLG3J5YD66MKc6--SW+vD2CChO>3AWi$1a`=+Z~KLq{3w8XqVx4t zA*tll9t!p4AQ+I+Or`zi660n6y*SvqPD=iof~30A8S8yOHxiI^^Lv09TV_(=G*yg9 zNqn$&6v4kNeEM5h63Bpb^=|prcR^?pO@_%4rVb2e@D$v~+iiERS6{#&NJr%X=%$v5~KjjzKsnk11co!(h=G!mpq-zW^Bm=g^h9z+ZmUoBcf3KcqKILAxIx8 z;pQINNo+3GmC%2&pH8~F{deYfyX8u*XT>#uS;(FKjJ&n~o}II=X5r*wbg##}O`NA| z&z1fj7(bKD!-w_#Jl))_w(bOLV1kp*@LWEkKyK^g8_Zbabqx&*s>1Z=Ys=G(WN?7D z8M?aXlDy~AIR)xAxbQ}h<)plFg*4@WT4w{b8$@f8WgtsRMl29<`P|M3Od~)E%C?ZN zDXd9M3YgC*)FOiI0m08RCI2Lw5ZK{cgiZexjq&dVeK!CviVaWX%T^jfPIa^c8rUMsx32}`A$|J!JcRVg~d8v_dj5` z`kTnjnDL|(oH0J6du_<~+PBb;@^?6L|4doYHSD2zPs#g~f zM`sT(MQ(OSqz)@M&ttA)KC2K=BI6;E{$(b?JJC>*GLTM*s^d%Ebgyl{Q7PL6($Z*j z`~JRRqy7hF?_`D_cK|tMNb9ovoupd44M3C@tZn9py56b7h>TL(j{pXYRTZ|;u?xx% zHNQXq%7@3s#sK1`P(7=zIY4?kRr=wW15?tweo$)Ie`iS!7#nWkeIN|PO=s?I33wA_H{oQXoKMMMr{I|TxJ2*k!0ho;f8$1OXZ;C^< z@NGBTOLi{~v98-&-eNAx2zl+jQ0EidC-`o^xVi3VU`^3_1kX-C+;vDw+O2uS$z`0$ zaA@|PJ{k%oldJqXM>v6?IS4dyX={4!j<-iT9CJ-}zVOf?BH@MTUrCDvR%GR!V27P3 zJbvi*7*ZkV)%~qeBDsMSxe;5XpM~iC@<%1f(EzRslo=|SmGjuwUzWchq%P@4Hn99H zd9tG zjqh%3U!w^|qs}Q+91pQrMEqtKY<+*EVr6 z-b>Gq0a56ONr5|?IrH$_UC>X)oTDf%r}^2R!HbfK&;|Bu!h)VdhLOjZ`Bzu^bj;xE&jj_> z^UE&eY0h5Bd8}C)VV=yC^reP5TyBxAUX`!67-YJh*C}f|&o)7Acvn>Z+Zo$$L6$fF zUv~0zRpBNN;8elHWg{b2R**6m#Q^wGD2yPDxy~ zlCCr7Sl4qaC_KY--QAj45uw72B#V4w_v~o~H1C(k!e%h^=#LxvrPz(A;T+)3Mi&E<|V#}6Lw>a4D?}C&ip#-?c9ZM`2ST+GVAl2 zyp=p2!-#Iep*wXn2rOHz)tLza#JE2U4BGzgn+>J0HM=JGI!^eT^P80St1JUNR5b_fJZI-=Z>ahY8%j6M+4OW0OapVmFiQ!xbpXo##QpazI}w~KG)2B zoVVxWP={kjLLEF7xeodCf>U}ISj)kMTT*UvL3=Vd^FPbjFcG`n;D+@+ZkWXUzrf`GrRu(VOD`NQd*up%X5NU88b1$ zgm(%7u9z|)mCFEly$VNU4K`j5np;QjAeCH;^8Nz-7g)w6#oU;rWyadFOxh4=m?`R6 zw>n$vGwgA35CrCijg|ZY;A8l>-1GozvFAUcX9aG%R8yZ8VoZ}f36vqGqlI@;Wl`vw zMGeRZR+tZ}Bs>bFtI8CB+cG+S68Cm)5R3I?O6%NK=QoaocFy1%e1Y1DZq}!;%O?1S zEkRqHnFxXgWkGW@VDBPTnd0txJ*b(!erL?8pyx~J+bm?c#^_2c`MRi%lVUSdonY|G zfg%Jv9(_*7v`1)f?uw@_7Y_E`aJg{z+2}au%#JOYgA25@(cN%0CE@LfRTq&HDLZEG z*|R6t8ZdYM{HKWqc$F0FGR2#EFVVe~35%kno#fPQs&p5^W8q;!V`i)-!ttIG(y$rzVrWVW86zFn_M;8RdK~SL?%J zIPVoY@Qo`oZxgo$uafX#vT8892^}pR&2m#SRI%og#!W=;4`PzW zx|=Ia#7xO@;xW>}0xHMLRHIHD_c{3Deg3GZm@YG?^4w>&Iv;DvRM(?Hd&`uov@G*s zO-ld&kF9@!Yr5{=$MN?Da@06@K*L}lir$(tP0$<;NfYycWp{i^0`kPiBoRs3IA_!)wdHWYsZbRfSR0I`pl_?+yI&`EcV@w=_vHh;+dy0NPkN@K~ZYxvve!pJN z!}Ywb>&eBKmmU#{Vp-kO5@8N?=s&G>xyI7W;3YP}yIpUEq)QxO<7O&>!S|u}e;@Dv zm*AiF?D=|UwCcW{;htxIn`&qUEv%_ww-vDm`2OCE*a_?kvCEYMYe`0x;~n#3cIWfs zK7C;?HX8(N$BHN0KltN{hHPcpm?uS_mfx|B0(f%?A6h=4)N^W=1G z&)3496M99F#0gm)7Z0~j^!MeEZyRH7dEdJRZ*!lrGJDR^!&a$P+Pk(#dmhAefBW%y z!?S6@T}MMK(EI*1TIXcVR&hAgPMDF3PGyTH6wVhP42&-gRD#GnqjCAn;0ss(Y;)AqkvI(e z^RdZt8-|uQr>~Y~TKQJx07-ZUSva;TEY<=NvlmpY0Aly1;hgBBsqZR(4B{%5gc?+G zv$tBKT_r=4gqPleSOAuqE;TFYf5-5@gDZB8c04wLkxTi9oU*!Xc*ZElN8R&DkT_n)0##d=>Km(j3p{Dm&@Q#YeVfe zyb%P-86p!Mt# z2I;(mKq>KItX9xr>&;lq{3^3=uQ+z?-JB^mo2HDOz31!MZa4pHfucsWTryPGqiY|W zBs$ptZHA6#=xLPn#l1Yr-w=Ps2j<0w?gD+HQ1taz4~N?CzcsI1qXKEwFyh1HsqD8n z!o;Ofpw?ie1{8xI?zM~gtUDT~mj=dQVfSY1?}I^MoDALc4#*RLX;4qW;w3aI@X_~1 z#5+lPvt^6#%)7XGw%h2lIV=8mbh*yC(k{YyTO}un^_N&O)LKzudGzqdhsWFz>V4`r z{qH*|m7NVCPj5kF921Q(tR!DPSg3-#-m}HQpI`z5n~}#S)rJW5Ppzr|<3NCJZ-G8| zYuw|4kKUWg`Io!-M?9OwRwGafPvv=xL8&?Q-rs3mqNCX`+Iw`geScPM5gfAF*=BFH zK#el=B|F$SPT9`ND{f&00$Vw-Ivt^Q3vu!u@gtw>@4{dubJU#;H4b;$M!g~#{J&>5 zpf^7zKlu2gizBS8IUFndZA$Rv>w$bl^x;50!U?9q4mJ?Z$MF@YQ8`CN-@TFr&oC3i z<4*!w(!hvnR}%fWLC^vz%}` z(Rbd>{qHjRVg8r$NAM9uct+oJYYFZo_l=3hH!&cE)l6|9-o5c{&iT&#<+0#8@e#IN z%DxQn?TBmF?f@NHvI7*MO3RoAv?hJAPa7+3S#>IHljvI`?CYp3yPe+t#q`CgR+&65 zO@!0xZse6F5cU2c7DzTwyNmMz)Mc2q&q_9k8Rq&3$D1PpRZ>1{kj7paN`Oly3JT^FQT-kn`j~1IRmYUm`@Y*Eq785k#IZ=ZhiS*RI==omsn!U8Hf8BMZr8>Y07G2kAsl7fF1$y}rw z@Ye|(rV9ZM;=Jg_FK}FNBL)x2phjxJzk?`jM5fd!^ssw>6g?fLaDX*n#72jz1uyNda@ zr8qsY4}drSr)ZZ?(ZGKqY^rpcXfvpke89wZqUf&EXt&A0FCgts9CUcAzObx%bkiH_ z>vpiiJWa7o;)*>dk+pA0Y60sOMX41PE7tsVP>i)l+2+49X58KE%GWSRC9B`PyRwg&Y6!37~2Jp`82}IT`uUq+`)Ib#v;$TZuAU@?i)AkjwE4 zqaHul(W-(NVg4#?>sSL#qOSCOw4Fp3ExWWPU+pdEyDh8PY&e&9jiqhNS)(13`e0CY z(OK|64zaZnL*x8;zKYqL)G~h1y~~xlTv2hLXi1x@uU$$r^$x0~S?q|a4jp_|_DZhN zobjnpTTCz(ho+V_-A^+*5}*iU6s2iSzJe^2)GqOTTA8zT{8KwwE|{DfMNMz>uhjWG z-@}UGWQtt1FQPcB(26oB@T4V9oip3am~Zi6@tAR%v7{o{vWh;a^6yb_f#qM;M184s ziGNg539h0FUYtYA^8^wLv+>)X3|n{)7?WQbjSUIcR|&F4Ia*W~Pp~I?j;=YvxHJA! zf}3D>FP^}LWs2u0quF?l(nHX@G1x*H7+36#ZFhfFXwOEgDq3~XlBNFoTXx1-UzpF` z{pO;*R@RKihDp}Vq=UlbbAv{Y2Ee*m@CQ5MKC%nlmMumftS`GwRfX222VI>xN@Zhy zS@(OEsht6Ah0!}nb#2IGoDV{s z_CqRsvCN)Sg%^;vdpGuL@3fTJ5t*vp{9a+1Az^_^zhJi8oXrgkwuq;N?PZmE;``dvYN5=Ne#^9Y=)x+Bh zj6WT3H+T!MAIfdcHH#c&NQ0n`#(nHc#&!!4OTdqpHOBa~Jp<{XzzCzJmV)P>V5#%W z(XDZ6E+(3?8or?~r1uzK+gsk=RqlfG0|S)6xVbM***|vunA^Tj#+5>OiLq6FHcn(& z%f*KH{4CMW)pM+8cHg}WMQ8e#VRb;1YTg{|kxOKpyD)anM zgz=|07o{Ek@EeD390Wq{NPj;s7P-q`>DZL&w4zE^29F-ZGZv(dr#Trh!)&Ssu~nqk z7k*e7ouECb$&7GzAT*YUaQQJax5=Q>k@P<`?H6LTPWjioe*|H$E9CuWe?jgOkbMK70LEby4x>@ z_}mXRD6h%B7nL@N33rELE-Ejz`OqQq z%4@I4J?_&HarNC*S=L)EqH@HmEM_$cJOKfxzR*StNM3~>$(pWHN?{FVMM~OIxL;=2 zVy=J0H@MT5U=EsNUq?4Lo`;{ihu;zZ@l_USgE=q>WUQM3vOA=wU%bPjX-CF<^x^97rcP!uMU@_m z+XVYiI4^$baas&lzOeaG%KF59{;Z7)Q;i=u@$bHGW$0B&lC2z;OvSlzcV9fl!EKDY zpFc3M@Qw$0}z|5v*a z#z^z7Ee zf<~K{cH0Aznxm~Yq1fOUJj+aBW5zwbhzmnT5##J(@Trg53lfoI6GA>?&4J8tL!!AC zA4a-_lI$j%EAW04y3%cn&=4MUHL86+J!w1g@(7x-m^$mu$>8-sfKVb{_|>VB-W7Ny z=?xnljg$O?rVvp*v09U9en8@^Zoi}yPp~&mv8a~)0L!jqQ7}@qa{e+{6}T#%#KAmJ zqh=SS#?9L^t4n4JwWBY-&8^y?I~{ER#|OF>^cM;TCj~$M$x>aDA&v|l7;r8%{Jk0Y zV}NE;(ZE-&DokMEa3qdbq{t3ZMJeW~S76aE;@=`cmIy={m@g*#GLG0>3&L%)6rS>o zCiXyG{hSG~?a*ABFe|(H-uGd{gKgRB;XzN>k=tt<##&TMCTjAkHD~vDF!i>Z^0Vkz z!@h^c#5m{H%`g)Ow-Wg?b^49=C_4uDK!yTcb?)(n=e9rkxOPtdI~^wiPK~@=wOyP# z#-GGDXBL5)&iO#0vkxt_-*-k=uv8(2 z*ARq35E`j3;aM?QzLSXJY-DPfqwy;x?USz_OKd4Dgn>zl8)uuU%|)iKu2oMDh?$M% z^;%zTz_y{Z(dB=i^WJt>IgWoOY9EbJfx+vPQPGK_glgMKj7RV+*t5C8CTFx2_N)3j zHU+sE8tUid)WMxGH2+%A-iMzK6GDx{j@m=QUq0UYuoO$6>tGsbQJr2R6&WBQlwZ@+ zYG_t>O@YkGIvo3Wt{{UbBV5|mqlJ-GZEfSyuSAYZAED9h{(Snry-8yrUgKp#U_ov# zQig#39ykdv#K8JXywa0-x*pkcq~D-p!K2m%+~jt?>zW6>-f~% z+}6`kc~Kt8o$kRK@bqCcu|D! z#7xtMq&fQ_vqVK&KJ}|p^3xZU?N^i`8#ED9(A8u1KweJRcnmH*t{k)>Dg6ak1yWr! zJPxoD2)_-e$x`e@h5*pf2sRSdgozi8f&UXouk=juB=GbSaOpD7N4z;Ndvr#`me}s# ze7<^O^&EK9@l!=EiX3w(j#LipU~D)Lo4^%jcHsDWI4^f@z-DuY*GrJ$BOy6qA+SBbIU#;PtX!8}A+`89@+=fDHgM-J0TLtbgyQnq^yeyu6TuQ1Nm6x2zPWhfvZ37X>zKC2)T z`aCgcKOqLp)k29@Al_0 zNGyonq-x=s^D-Gc11VIm=5AvWJdVY{1qx4_Z%&Pp~s21^n7%wS@ zEe@=gA$H*t(aQUYEl{n4I zOtlUY0lo87r&ZWpp#rr_DLpd^AD5ad54REaY|JM?jz2m~$m~W0AE@6xUD{x~QPb`( z@J5t}4g?lVFu=^`TNet&6RRadItW}2&-+o}81c~vt~$?yhi_W(k#syaO#m$0rj+sUM zMrAYoJon=8(H6cs+8JL}+>*i!Fl-K@zA^!Cke{@t^pZfjhof2H)l@!8dhbxdde{WqXQR%V2`diYV;mU6RV-WyHs%PUVu*R}xkZt`z)% zxjWn)b%DjD^-A4Y@!sa3O&b0_avC8&2l}WRDRkjPXJ^3`E%;r;RvscU-ZE>s#U&D% z6fYRQue;Nno;(8{|0VnkBa_Jh0vj|H^Iyog+^pfD>M*t1)&m;DVyb)GalCPZ)d*q; z1#b9_6gKLJ_4(}Qy4O4Gi1yltm-ruT{R-;#U}d`;HpmQKP!$}b=~VN49jVq2a?7V3 z5%|izN9UWf-g(yVrGEaXl>KaerI-VKA6-4uhDWF0TCZcwn>e^zxNb0t!b}<;;02lnKX{amvoWl5GW|9C(R1 zgHxbq(k?N)jo}!b=>Q}smt8U>XBeZr{G#<8DQ zCt@uDN+U~J7Rs~daZnh5$K?3&VXIHhlS?NRboonK1JG}H;rF%%QJ;%=mP?;Ip+5bF zAa~UG@cf3LP4EBqT0JuCduz0tEZ>9LRyWYjpwZp#B5WZn~|At_&(|bOU&ybRX62*99R;VFs!% zI6oF<(g{wmrvq&i0qw4}-I$2;&rq5o=_>5~z__0snT#j-vlT2D(f09oestdy*-m2wdV_LbW%G@EpP1=z1Yw=?omSv= zBIn{HxcmA!9A>O>s~O-SAv`>J)H!b;tb+};k(-G^fgC8TQGOZ6ATYn==*xy3;*9}f zsy2?ig9Mb#(L~^*D&s9ih62H(g2NwnaP$QQhYh*cqiOj%+)Rmki}+-21wtg^3(rGc zZf=$4bRD%wcC-E@el+Q)TLEQ5O#mZyxH?kJvCJQ7bE_l&KtI3niDi^9O_GMZn{Ve9 z%s^Ryj>8|=oCJ>4l7x%bY~NjZGm(Roj30_0=>@9vya9FZ#$7)HPvM zs10mPa0F@&$|Yn2hfXZc8&-=q%@C!#Jrm6LrP_bY8?jG{nu4@P!Ck_ToKUd|Oo{6}B>th9jr(BFxs8qilc!KC(fOn_B`5hVTgZned$6 z7mFQ$Kq6d`td){glPX15Wh73HsQ5%o zAY_7tMK0EBzN{arFFw$@apoMb>6)((uaPkZyc%y!%kCYi0ZK65J`nSu0~|Gf4lln! zdj1kF1htw-Lu{?W=4|?g<}3>}L+y85g9fv!vbzo%^~movombZ6uY)J9^U1Mt0x-~T z*&uo22?Bj%+!EeqHEoErn$wFE$+LJs-o`njFa>yYiy}YtH8tZLrF%tFINXs^k1C|1 zT&HH5s+@j0-#FRBfR&kOIT3f+>U6dom2zZqzxRTu$Gc2j=)!|Tp;V&STj5)z8^BPq z$B~g%pVN$L>$za5*;gB&S*LlMX|u=#C;?CdZ7>h01d6&j*7h*k;M(syzXFQ|m=<0Y zFG0*1sVv1!wWC%tQM~Z1An_%nX-pe#(1l|O7R%2r_0!jlOm(_sVQqrO03L)})XP>d zj?7tW6npk^JQfDlaOk7ma_c-;0U)_o&k4KtXU4aIaknOyv>ntBwMX=RA6Eae$j9kM z=d}`dW*c2B6ROj>&-!SO@Ou%D>K{N;ezO@zX=c&}kIa5Mm_J0H_+H;hr@|741AQ4v zbj0B*3##LmVZTqZ&dDFqoPm2VUZj&-;rX3W>DpcD?1!Vail82Hl4wf=A#iy70A1Yj`qGhYinFq{P#!=Fp00SU9+X)mPM}9b&E8~Uf^B#u@_gGdA{BP z;YTUFzQZ%aOxh3WXBO){lZ`46X%b42nZ=8w92}+$?8)gX_eJ35L8po9hzx>rWWKxW z_vrp#8%19PKR(!1+75=W8f;V-Ok(r_KW~2Uo}mxXALjlOk;U;`DIodd&Ir=aU$UCT zpRM8MI9&=F_n+a7HAdk_FX6zGhFc?30l$@Rv#1_xu_3V<7Z!a&KJlkAt(*zi@PKe; zg=14W4{U}XLi({16(lq*N$96x_#B)F-a{i{;hIWS%wC~UlV6~l5IOjiL;l!QMKT^= znjwrD-?K=&of z2`FGJ7;D5{Msoxv?!_g&+!g(ctf=WnMTRJuy)3At;&N_z)AF7+{@`~crkg11St_fe zr=<3M=LcRed^4(T5w~y%fwQ>d=uxOrhoiU(-k_Y1&;9V#7D^MN;>4egjgVxHMb5#Iyhw zLzFe}meXUzwyEeM=1MI+y?kL$W=fS)+(-9+SimI^3;ksiE(Z(hixD&@f@{em>fD43T36~Ov| zAUDSC`%yS-1jQTT3g<`pAdiiMd=;-K0qQocJwL9aA@*rY#c1u|^8(|t%Arolcb!Xb zrlN%RR{P-(Bg0Js-l*!Mn!p;t-pmRtXM*Gw|@3uDZgI$6S&{CQIE&O_IgJ2+$pNq8nc z>d~15AAr#@AUMrwUBH(bl{?1@bvV4L_Te%BbOv7UiwJ96h!cfwaW)Wi8~mBRR&YK~ z?R;Oq?`$UyB>7y`p!9_S3iBNKYIl`)SkV)mNOF7UDRy;0rAD~^}$xo zj7Fa`y?(4xjMo6zg$|DgG6?2#D9g?((2sAURTN*6RGXX^YOo3^AadZFo}CfV--B^} zQ<{k*hKz(-a~N;Zrxc5)Xk1wfxEBx%9tJ9c_qk~&4U@4Bz-5 z4uvj`7;0#M>+la689EDDD`=C;)dSPRXU@s&crt9FX_O6H#TmoUp}Qdd658){!)u>t z5gU!99F8&vC%pi$j3;NGFO6ya-I3PQ29ZP1%}@p-o=dudwkp%5Vu*e+3bfnCNbOxG z5XkQ=MRJjf7U9`(`QLxB^;}D$&im{lg>Vm^1;L^9NcS960coA?Rr;<}<0^$L0T%*) zDjIaW1%UkcxHC`}ioH1ChhutOitQ0wAC5S1?;=GnJUnxMOow3GA+`_E7OFT^opGuX z%r~FKU< zR+x!h0fZ;oc^G~vZ-QKB%Oqejxc2_#s*|!Q3`V-O*lC21{M&~=(6L2l4_hZx!>9nz zDg(hV$7DhwJaCbKInKz}>%fp#sOx9bH5*mj-H6~n3^E~0>EYf2 z?3ru)616=6(ZE>=qX&NDt7v~RkmZT`PIlQl?(y;7h;_k$Az?F%j|J2bzXJFZZjKcP zn0j$)r@LW^@-y(*esFp~6V$e@?&2`Ww*m4svZK=3C4$s4c|phfvd8IcTE@32@J65! zEkr3PPa(M13ByX{Yb(muDBys?9&kz!k2BjKwixb~oQAt4;V}%Oa_VivP$7#~;YsB; zAajRD3C(^lEdbO(h#uvC_IV(K<26FWOQ!W8F6K} zVGlV05oC*H4#3NaUH~1p2X+(X7v+iCy~SS`PFAp_JF{42O01Rf1R!;M&?VTg0$?sG z6J;)8Rb%nI0B;$0vBXA!E7rM+XN?Cyi@p+NB>X+f$1nxjiuUU=db3AFfXh1F6JX|R z2C#(uW7t~)?Hi~|RK*l#_B$a)+HMTCic0=@&$XA?S@;S)$T)$CrYxaBvz|VYT}!B@ z)zn2LC3*M}c0h1F@cVm^kT4WbL7=ab#d1My4!Cz`i&OdE%fGNCr*)IN6ua8KUY6Bh zM%_o9elV>QvnjlNoD`I?2pCQu0{_Cd29KI-asT_GoTY;O#(%+0w@4E#xLLRG`5Aqn zgFFSl5|arkfN=>p^aSvY6xtiVA_}){FKhiY3Vj!Y5@v-IRbGZ`Cyal7_3SCyp-EfM z@C?{E!t*d7bZ46@=KD(lG-7fGkmQQM)nXR^UuIt8r@mwSdbrCRc7eNK15i$!(Y3*TWHhtYV1=E+%plY+TWo%;3`M zLkgBidYX-zyphT!>lyst=HW*+XSgw!%s{y9yo{~jKuqQAO$;1AOWL5BR7i*-g&=mo ziT8!e%gZOPEe-mF@rJiqCzZaB8yPN>gli!gmD@>AO6LR+3Sd7D4YoBQa53B@0RET; zxT)clwXmTMJFOYhG*EWc68=?O5^M=TjmWptxZ4{Y)vdUSgcWlEK;UlE#m-Lz&gSl5 z9LGfxx5pw8zUDAYAF~7ExiBb$2QcPlb_5)!IVGC|YXtBH+=k8e9L19L!QY_JMPfd@ zxMG-CVN8GN9cn0unpVQa#~vl+V8Tl<9L|}*j)HM;0ff07mx(b3}LNEMQM_;X<;BhU`7h~f%G)BSC!IjLTR(9@{*lAjUafwi70AIr>PBRIycpn4%M}RR)LW2*> zPy`sC+JW>2&n7xh_C|-`=X*1hPfE);)WS@0TC*ZvBro8P$Wqz;hQCLnAURps^&;$g574$MchFG-qdZ;xO@u~(4mf%L~K z6hWZ)u5l+j6!cdlkUWRB&Ru4z)9aZg7Nl&}Pe&I?r*$G&Jsj)-(x0rTpX6EtlPs5d z$ypP%EHE}L`+VO>hEg+lYsPi_beh_}5H&sM!43cl?GF9KNxNW~}z4uz=r#UhQ;qcv&Z) zz~NC;R)kzcF;|7L!o>QqH@3grVA*GM9?ngY!0XsH2{H+06?sTe&YDYfVt52;nbJ4S zwU8y!*mYSDbb>ZzA&pV_&_sm6Lnw#snhPWA1AFFfIVhKzqr8k;@dHjaOcL5j)>Ioq zHzeu@NYv!DVxsKm0-l>b=*L*TU}r&(2xOYzM5iA)xJP`T@mSFaz9YIwDejXm%$M44 zC`Sx{wU^Rv(O++;=VfAfVeH+gM~+~+q%M8w!`aw(d{xxYiJJmT+$aZ31M=;FaW|WT zNrh8`aR8y6j9)nq8=w#^2!)xkc6ephfN{_8#gd)u`_!chV<@Ws^ThW@j<3QwW6YHE zv5STssk^8YP_?nWQho;eI~+0{OH_>ahuZaTGsti=72V6r;OO;u zB%cs}#D>!6^?m-R-;wo#$8gahplrA2($+Cr9g7MEaR)hEm5(`U8<94Cyz=@u!=qma)y=bztM zNgWLbdT0#~ay2k4Stg@PaO#|}LNVg|Mla(ppyT2}QM06he|A)+$i~kV$ zPd8q}@MG|M*14j)Y-X@I?F$oE)=S>Rr@>qZus6cq3KR*xyd*3p<4Z4k@$1>&;EgI) zT5~o-WR5W_c-=jLa*>5Zx8E}o=c@e4Bo}N+>9*};&I9{F$qtuwVh06H0Xt_(w`cwm z8j>ZL`{AEjVYp^(ZVH)}_VSB@+y)K0ECvl^&PcEERrh8LFG@8?UbPXOg=IQr7)UGm z*}!|LE&$jrQ8p9%V|-POz!PgkShSCA$Wg}4bOa6!z2gPLE_R2rtcFmqo^tcl!7rlk zzO%4z4VEIBo(0Pg4VJPXbYpOgkMSmwFTgcS+5lyuUS8%8JPXH3?KgzJ{<*d%<@g$xK+`dgtGfH!b@r29R?`Y9tjK$iPOF|p{pFzO_w}a8vmfU zNVwy>0Et$64^aT~nJmT^^4PvD=mB#pMj79f!BD++LB(Cmo{1>lK}buXW`xDJgMf8l zIWIB@vLXjQ(WRG^x_9h05^CtHk2=GtqWO8KStx_% zJseB{d#RLs)^UZ+0sIKklRRAh`4Nj&byP_4|3jjnPF&eP0VsqlOxsd)7qgn~=({^= zb$T1#=I3=y2fCwIzh-r!>g+vh*DkS9F{A0bYk2KbG`R zc{mfhBSXG5&SVR2Q|yc`sK}7a)u@Pi$+b=b0E_t)s`QO`uwxPVs*oT|&Z7;sY6$UK z+BIzWj2pVPCiZel9Bg0&7l%Nzg0^NT5F5A`QVzXOg_h`}yTH{>eUmpo&PSdN%m&Z} zV4+;Jw6wak5Y!2@d$lMZxiCakh5X+rved_p73-dveI*qb}i9#J(U( z8Rq$VlwZ=XU9OggvNKNhrc(wXZkaWT(n66oVCWMD9Q^nKrz^CMa?ZjIGa}fQL(T1l z{mRJnD5<+ItS5=pXmG+yXtlxJ0q9P0iY}+$n;fjbpGkxyCQ6taHX92V>F&dg4)GEg zIXX0Rayw#r(k1#@eRMyhYCo$=2P+2|QD?MBVz}v#`5@vBASGJ(%5XW95Wp+*FwCtl z{vt}b%P^UJAEvj;{rnz$N4Yfb{8kuZ!@EG>kF86sn zSyWr1W4b*H0aU>l5#L+4CqPSg1Om(okW-0PfQ4AZ2<;3FW;79-F2k|fWq7jsdI+tk zUS9EcqIilKJ91(dg|^>d-4`?~V7qAV$RY{ok&y3!S`LBShYu?RUvXC9D0%UlBhdE$DO|t zL;)b@)wbJ}&qkTN7e=s8wxI8`g1+~LA9AD2XsM1b8r;S6y?4vTT-H-2yMpE25!k_Z zGqz)?#vLq2>^C;Q|(#njjJHZ7ISkgwD)$2^eX0F~#`NtQCGQ0bE=Fw68?(1glB zc&rMIYF=Jmz1-)(@F-?D$rmcFz-bxG7mY7yln4}nl=*LhdtpzYjU!+TDW-Ccie~si zy`>sBQE(l8njNqtYrzV~5#&Z2TN73;B&w|v8@^7EhS1FJo2Td2#y$+JoL2B`S&?lO zs~gh7vplTw4gL`mMc+w+*-1ipu!k2WRg|=;pu{&X&7@%h?k9NI&)`vdf{E?q4>?Nu z9(ZcnA9fFRcSOl_U6gssJ6hry{`WfVXoAz(kWJ$aJbYg(b5Kdf`5Q&P zuzw6(G)!`q(}Jc?%}|Y}U&Zv7Xw5=w(Vppr>H+-2Rszr5*yaUY4C-|GvZ@7=>&LhC zUg#pwc{AI_!FHlRiPM}#<|6MRnCwLwkDy=9v}@xcZs0cUU>`s{OXfFG`g@9=O%nD_ zDj*|gPE+}6FaG|9^m=7GO`c5~wRu$VILem@gc+jhx}NJr`eXWAYw|DgY3ok=he%(V zwfZX^#)RSHXq>5NUn!8{_~8*CV-fHU`Us;)-gORI+86rcK$6tWiD!jMCeadSYim<^ zUsroag}A*j_G_%2i89P6(E7Ar!Z4F+4tfbTbO+F(_yXoGxXRb7RZ&VPQfoZpsWZYX zKwiMM7MPDrLGl1TmE;RanoR<7Cp+%PNZ)qTX>p~C=4$pskego3mR|GokCH%hWo%LP zLZX{~Nsvout|lnFI}Gbhnn6{9Nrxvj)_A&B7PH7e2sNJC=gqAiD_VpHP1T z7(yK(E@#VsqiZ6+A`p^1fE{HZ0#G|#6)+wM8p2caCH4fNTvuImr?c;Wlp&hHRxQ!}-u-{N z4*e#p4P1M$|Kg#&9uM(-Hs-~;Rh!M~q} zDRbNNx7!N9w#dSpA!Y&!8)DU=V8VQr0u_&Tx^mU3O(Q|5Kn}fs2DW7e1H6`AVehXs zv!$j=ehUOta~eZ3IJhdS02axw0RqAQZCGDO*tBF{=3+3lOr%hTn30YVJ#DInI+@y; z9oN7Kd1r7YDJ-D#^wjKW@4v>-`#F>`@LNQu4VkPiw5u}hjL9(klM(-h5e9M)JhN{M zCSG&IJb;ioyDv2n9-ycoa$zL6kHuxnc|ZfxqGL+nA9by(|3=8rzY!J#9?nj~mgKXL znmp{3s7mHX4eVOjkyQzL5twIaGJL@p0a2XofIx}{thhqa-tl(ZKXDwB!=keNAJch} z04eWG6!s^&>g_Tltq~v=aMQ~8c^#K44R!rLgbZQ(j3MIr?bw=_c(z}LeYh?v_MbqB z0~4Vgr^4Q(=0Qy?h(Dl;;cfsn#g)&@6a@o%;@R_)#D9X?g7JMqV|<@CU6lX-B|34d zy5_>zWf6}0=(7572PovPDREx)hNsy+DbH# zrJ3g!;I@@0>5{O)i)q*R$Sy;|7>!YTGd3O(fy=mxO_ag`SPssIEwm5PbV1rEZ~#w> ze-6*Tq7)v$9u;H{55V07S`nk)4^V!q>V4s}Euwx{WW>x2eozK`&;A0XQ@pA~m)vfA z3(-5@F1}q}rSAl8jCPxi8AN3O$1jnFMEJ{9A&z~L68jdbiAKHKr@AbW7Kh0fc9g^q zmQ<#6PKnfB(ZtpkVRYNyDSBKtjQNCwp2 zw*a$jfq`#yWWr}e3f18j)lsuC2w-QxmKepB=FnDg54;wFIM9+Z$h^{$q3VDKN8A6| z!}P-=dmYSa9 z_os-#6RsTta~gXN7CncVWQ#V|g@KM`mEP7|k$|QJI6LwS?wpqupwjw{j-kQ!93?nH z<+Tgq|CJF7)w&5>F-25K=Cyc~`T*5?-jW$?^_N11tX0N=h??BWC(|{!EMDc!(`6R2 z9#0tv3YRc?r@Gb-8p`IDp4$-v2LGNY*}x&_2iOq`Vb46kaFF&$eYqU}P))=-%+uZK zhg^nwvhU9gdAL%?#?ImWZNnqgll=hu2HQ=W-u{s5SGWwG<)`a1)*Cj0Nf(9O&(Xv- zVKpQgv!o<^P^!PoVW;z6o2E{dmmU9$H}@V6bvpHGTx}Wca0h-k7d3x-14%v!LeQ1T z%2JB-*V`Y!0jIW9+velzPnQXKM_}B`_NH+4lNsU|tX0HXsF*Tsr^MYfEue{!Bk@TS z05bk$H*mN}!M>b@k6SAD$l~wZ1Ws<8xl(YTb33r`*tY0+TQZ*AQh6s=ouC?;P(HO< zwipkJ2xe3T(+Nk9MRPfHE7mmn4L+?E4F){?F{FDX(?0+Os`kEcwXMtdlpf?hWlsIO z3kEoq_m0O)q2}90h=Vb=a;~tiGz8>>NBD#%ZU#+(xK|ffIpidVr1J4r8o{1j-joS;RE46@D zpbNNre7AV-REPamUzvYlerWNY!yl}6Pqp&+66PG6&TjU4J8N3jrl`y5vU#e$QSDXg zuEGu~B9;|AJI6LObO9I0G|s)SEOCE+ zLl9I=OFAQTmFGXZL>jk9G>z z4~OL9t}80T-4ONX{GsjTO}_*m#HKUv4!%Jd{n<=A7M?+ok69c0ozjRE-!a?;9Y{55 z@31Ios@suN$3;o0R_;lFgHI>F1EKc2^Hv^^guC7y(2Fc;0Eo(F81|PKg#CHGg4}H!5#c@npo$A>h<0R8Qkab?uwq1F?E^%p) zWHf*9YHiQweBE|I?=j0W6=yDHsm|~5Y>#wi!^oD32X&DRC$@-koFuFZsQ#G@{iDCV z+ZaEN&Cm9Zi>;PTP4b(X^xbM}_ar}TclTQ|HOV~{smDIB>5@guyo=VWI?UlC@@5`< zG(4Mpxfaf|nxq#kMtTW)f97BIjPGxZViUk*c*;dYJ%7?X%+x(OwH9-^m&+q}BU`my zC@mH1$I=GI!TM3&r%NjuI*h%1l1`#`Li#Zc=UEabThW4Tjs&sH+}_d6!8h%&|0ij0 zF8c8|XwbjGG5#)zG247I{9wa|InDL*y!)es57&quM#p%=EsbAL2rMTevAU+OXpU80zpC^9uUYquiOqw10WDC>7Vnil5tU+>mvhMc!KbMbA zxWGMkc>OT&uOq!ePbVZT6+GM6pJX?*i-|XMN(?6f zu1W@DUV43#ZDQ`jC2I?a20!w;&fX0ZBPc(7pL1iv$3XY_r(;fOk2CaT(ATKm-w2NQJ-Yzv6e z$61HZT)>Lb?VhuB!;ql(&USwz7gq9X6OJ6Hux`EvgnKROYovZ@#N^p68I9vICd)G;h z3DaQnsE#eZl)^=q?JR&zH?!4>y}s|QfQ}+n<&P@E&GrW%{)~^%AIN@qG(t3sT576S z!92V_Q5*B%{g7`n4AP>G0K?<#{w&$RWHQMZB58mJC36gKd2SpmzeUmIoXKeTvyJb4 z>n%ytK5S^e7soP8Se_i~*yWZv3Pxky#B6beW)O30p^m5Oy zp7vL?pJY~K?S+5@_bCD2E<3VGhVeDF7D|4i40u~U@c)zVIz(^vr6EL#I9J@z1(ocK3WM(^@8z7Yz+jzcN^c zm(Dmc{`wMIHNSN5k{Cv>@o)H*Kbl@{^BXpTJ$BY5(lX#4dHmk=GHuThM^H#Wt(Xo> z5flKlBNWek5u$NQp3&Mx&k*4B!z-Sk%b9$ytC&#mkp?7hw(JO;a# zA$Q3@iLCxgMGO|@XyN`(d&oh)1(J-%mb78k|42o9bDX-#FHKuA^a=S@a$f8KKx?*C znDU}Fy6`yRwYv(8hFVivh#23At%8RZcA2(%-mFwR>+aHq>46s6A*X66ip><@$}xD+ z*DTU3XM;n9eiPk1^aNawKjH0`6S!;gR#AG%y?AX~nPn>4{;0eK-aWs1o)X=;Ssfdn zcV%6QuKbT3B==jK#47$UvBs?2|B^DtJQW>DmE;)v&XH}3Bn7Pf$0_#BcVp3mcL!~V zCo@y5-A=^X?b0$`5!Sg;lY)2Y=zqF6>TSEYf3~QqV{B8vPwG;ah+D4vKyrZkKl~wI;7+G>_0v<7icO}b*$@wlo;IpjMaKv zPT=4kFqwIqKh)&?pf6;o;(WVldiMfwxF%Tj$G;)PgIPqR5QoJdtfjKf(CnB3L$rS2 ziww_AZ#BLpyf(^nRpj00*1?MYQHxKN-&U^76U4t2(fgjNZhA$1Ztwmu{aDHKXj%Qu z?tW*m7-+Z(Sd<}941dExfh7JJ!?+Q%qd4H;l?%-j(BTWDa9H@R`O(ch zF;*^BpDec-If?fB*MTnCCV{{_&C(H6mo(#_)x~fk613}_ zWmow_eFbnL8vL+a)m3SIJVXtnS85dw43h_;qm35|r z6k)Z1iHhy~9Co;EhqA>_oVUx^jnYp5zPS!fG@JzeU>w92#X!W70vI=f?)aihVbqU_nhJrY{}Hfq?4hEE(3h~bc4Qrf(z=zE2E0kZ`Q9W zP{tE<4Kr(*GDfD=rvA40+5W%GLYHmLc$UI2udxdtr(%Oc8mZIGi!=c#tp_5ko?br%K|BPul|@yQ|jTw&+R zkmqB8T<@Ah27%hx+5i|c--{FX-ZXr7yltQ{==?W!0Tq2kVywi$lo)JX;sW96<8_+x zG9Ba|^M2nkDkJV{m-8wTTRaL(e76?? z!3L5^s4Yo@MoB-><-ZM*qih^g4P10B?{kXRc)RL1AtRKxrdN#T53b|aJh~ZCbF%Vr zZX_J9X!ABjgx&|9#<>A;k3-a#n#!;K{(IriUAt2R56-39V-T`d(>ilgZ)ewBVYETe zH57OIvJ|zMFBf=Lrszx5cj^7vt;I13s)0ix53`NW`J$W@L7unxT6X8r2=Ub8!QH!p zbr0LdNNrIF{JqwA@c6=xqUO70*~i;qwdaXd%NSQ=fpZO-_9o`y^O^}>12==B6=y(G zxpMx|K_{3XwN+H{4Yvw<56Pa}29=z@`_}z`pqX)^8njC7%WVXB%fC( zDzxr}7*Be_9W|@*ixdxY!Ly?w2RmS@rp7taVQqu0{xAN}G|5mSYG1?S&2WD3PbTky z!DciIEwBq9=-^jh8~mVJkw6^dP4EV0v>RX&T(WfA(7DFmO+`a@@F`vEh#*VLZph$q zo6Hu09scL%;Z5oxdc4N?<}&|v(OMU_fpbs*_MacA`20hM+KiCeGwU0-5B2eDG*R&f zo6hO#Zud`j4x2s7jNo1%LwpvWo{Vn4@yJae#{t#Q-RH2L%DsykYi#BUc*_xwOT)k_>6z1yj!@~4iL zMsCl?b}?qm^B=m+LL+v#TAnO^Qq(3Bqu2-V0zt&^KcEj`+SngFW=qT%7b$e^5qxn9Y!9o+=mN8npHCJ z0EHs%Ui-{QxEXC9n%mg3sYrJ)NTM9cAN*};WG_rq z1!5m<4E}@BhEv@O1P|0@WkFXToH!M^#k{y-V@({L-!CIG~OW%fw z^&uTAD!c6B%}T1@{&}v;)PWz^ux*$Qt{$XAQnYMpKP!8@P}G1Pkj46QNBBc*>Uarx z=*IN!3EBFm_YeK|m&u;TuWyddOB=zDe6lOJ_wSWKW#UoH0_Vma6-&^x*+xi{ksZ;& zd)RP4+EfC*Qs?=+>IsZ9S;Pk3js+~O(=`D)w7bSGAB4-!!@iCQ!_&o6Ql9B`f1{k5X zAl(?sJ~@BxVq$5*C`YU;@~I=zMqt1$M>ue|Zc~nIJT(6@sFK)?ag&D`^BUp-j?o5{ zU)|vu;LfDsnkd?qXRkK@?w(3jno@jnZ0GT`3#H3SDptxW8lE)0v#F(p2Y}b#f49{b zToGRy;F&ubJBc$7j`97r#O3-sH(i(JX!Td;7=E}=dT(I#@e{eWDAoIdiklP%wmLN@KKKNnGvCYkmH2jLx4Tm>Yaxi+6N?k=MqB z<01P7_f2HL&<;FWl=1m1dDb2PvOLBl`1x~iW|JIv-CTjTzF?CnPV^)<$y zg7yU6j8ME&y7NrKIp^B*JG;g=e(jp_ZsXIud);?&#GaTpHCg1w+&Hw+czc1+8Q^lU z+ypI{K!ulR;y}g+FExgR19s6k3}J-gPN1@jdBOBZw!Iwv)>}VnzvWu70Lut_-$gb& zqC8Gm>yL8V?7(0%FEXcL#bmxHTg4fKo4hMg?3Pk<~ERkP!aFmxk zyCJF!M#$ZjqP?6#iBP`~N#E4w@02sxt(7s>S4 zG6_vv>@vLyJZA~FdWdEdutc!WKJ-@hH*0zZ>x#cQ^K0YoJMz@um<_q(Yv*?Krrz(# zRNs^0$D^LqN86UI#ni{cU^zMzfst!YE*oU+M!Xwv>FllO&l9up17UwgLvk4|nK0S9Hx zY$i1LU5je7W*!H0-Ee?wRbIcJ*#kEP3@X`&Hik@`_92Ne_{NOt@R6y;@k(8$h(`lH z`iAfqySN^F4wz*~#?Y2%U&zeC0e~u!4MYA48wgiWci`fjD_juyohf|S&h1QeV<1Yz zy@I3~g$Wl=7L#r%6+El0P>?&~Rp8GU0jbEkS)qxT$j=8|Q&}0K8m8-Ccr4?-q$hsS z7jkJ;@c3NIS)rr^s!_uGVI7Qa2*V47hMnbI!^j5W77j{$kTSJd_b?AJW5wJDjD92F zZPzTYqXE1e9gHc80(*n34KEv#1%D8S-PFQdsK6kV4I(oh0DTB`~6H~dmeHcb!!k1TFjFlh|_Z59I&?^zf{nQhak*9=of0*3;5!@#9s zd3|SJiTDkotKMK4320nGom-$mS>fl%HmwOBFw?^)W61f#-uO!sgs7Sj=wVIg#*__= zH&=eW3tAaSCK$zRwCZr6L77X%K6bWSLz@HY1V(C%FVCw?XnIET_nI z1Fz;gmJ12XA|?&)G`?6MSIf$|4AYnCTd?RBRv!%9!%%L}a{$o}Jbvi#15+iIkrZKi zLZ)G64u!@>*e%iST@<63ToY^4&uuktg#Tf-8RB~6yXH>Ew`<(xb;hOO#tY#UPTcS! z@xlTAM_WqAGN=SG3ePGnXds51%T@FfQrxNV^_m%QDA~t;LUL+>TAs*hjE7-uGeB&^ z<>vCMtkBt$yNTzy$YkWK0u*A!F^ySB3t46+e) ztQJ|}c#tK%|b2yz;N$(G29cSx;S5-jK@HW!Gq3jbst`(0XLNtgbV#CPs z&Qd z80?4uK!~H=24*D8G3&^5EGW8n4BN=Q3W~44I18n2j?v4a-gcd{GlC%ueQ?17QFl^2 zWUEh#P`})N z=B69y#&|%tGqHN3GP&+nm1H`HERIMyg;;?s=4S7|+a67+&L3STu}w< zE6Db{G74U zuFpLn|Nq*1^SCC@ZEZNwK#(FP^)pM!~uxfTBj=7iS0ye9cUehiVDaOa461H ztwu#b+oN{aLakL)hG0QZ0aL|_iV$YB3?T$aLWbwN*8K!R_j%vn_xym%ZaVyrJ?>_FGug9G|(bv&*?oEC4=5(;} zORnT5Ipp<32?ufox8D;$D}{PwrtP7#0FS#4TePm^gU^pt9D3`;g{GkkJ3K#p)@wrg zCuOnbgF)+GUJE>W_E^Xc;bvVO+Qm0VVy;nMQj?-cOy&p9XxjA;1Oh68k zrF57#15$%o-#2@5tM|Jc21Z=?a0>-;@>_<%$xjYDRbGr&?3Epj++X!SV^4L^#!L;_ zdbh0kVMAh79p<21^wkwtB4#8DN@ey=L!WfB2bhE|a%$2Pke`Cl17ry?MXG@)x7XQ6 zXR}(S_+6SBJ;22yIXCD{yPSx=%GceM`JTq4m)8=r3*|_+ltJ(4R(L2SUgpt#1iNp& z`^}ElF}&@6$$GbP<>Twq%Yr+nHRVf)y{5XMLCBRR=VW`Ftg1r7-?I%DZMOw z8CK^H$V3zvmlR_x45)KG)T8uv9@dhWv5wL5qzSa@KS)k~vNCIQe9+Y5?Gt;{=lAq} zXKxmm$H)VMxzc4;sY0#~>>*znSkqD3@Uc*t{j!1KJM}N=lLdiT$dZIrA%(!0!UIu} zoCmu!O@N#CL^tQ{*lG-7H(ide`skc?*+^;S^+iS9(^7;tlqn8!eN2+HEWuwkO%_&= zroLineqD6O#AyNYLxh+jpIJ8 z=TM_pIdwDW+v1X4BdWbuI;AyXnFGe7e_N3lcDDLPwDz&c>y#+CCfk0q?xLfqRKkr$ zXQ zu*WrIh0NU4`U^6V+#O8-(#-4m{@NvOO+O3HdM1^khtwWT&l@(bj-kfS9+XHTF`@Z* zm}FoAg03|B0V#4K-D1^U<4WK)Qp*dX{BORBdvnX}P>Acrvbu1)2*u7nBpNx0@GPE~ z@bv_)Bd@?kYkos}vTySvEHK+(moPbIOG)`W%dfq{LjzqX4Z#}rA^SN40ulk$=BT?6 zWuc}6D*{a&own%=Nd|PSbprY%yDRZB2o1WMmU75U&QRZP?5&UrIDU1?4913D=ufO{3r+e7xY-Cdw{w_MxJ)r(>6*ic9j6 zri8GLezz9_v)Y@4%|V4|m*=pw@PPzZVqxzS?3oV&i2jQT(W`1&OLB{uKHrnNkSijH zoMehp#o_t%Bh|^eJOAMjpSQcjpZH5GL+Qtl=ULExL^lYe2Eqe?AKmVO^=`G$;7X>& z;9zpmA5rVyB+V^q1SSWQDJsi3Jyoi87opd4s-{Zj)nHU8J0Q6FfQ755>Iwks%f9>Q z*WmNj=rzjqHC{JF1O_?a1yQx#E7o@s-~m#1b6=5GN~Y+rw7@}ir|B|DDteG|evrU4 zUl*0F8J%pne>}P2DOR#Qx!fSSvL(M{FrPF69T1N|`+ojmq zay-}_<3tzl8&<`l(MkXVgvfOWE|S1!ggb#D8Dlhc(Lux6-Qm?Noh%KbW%rq^upf-x zf!;tgL?>jV1*bhLxr1L&MIQld0^fa z+bsQaw`=2|wz3Wvgr($a{Zd8=QN$X1gD-(POHvHDGy#92l9xn!XwyL`Efilf1msYS zFGJJ=x@K-Et*_sgp1xp!tM95?9?JFGkA878V@h4#iyl|5e6?v%z#p-{j-1$khy7vf zuoV@LEh=3rHM9AGddZqImmE~b4cpdNw4nd71KJ0IuH}bs;&1s#oB<1LoWdiyarx(N zACZSNW@|1bG+!cf`*y^&Ide=c7);S|8n?X9$GjN-ZQ0yKZ~4EG_|5Y4Dogm+Boe%g?S7-!+=9W#Z439f~%uK??rj+ z;f72fxhPpzHm*>&^2x4B&zzl4e17cxm;La?T}O2~5#juf9lrXs!--w%&&QunZI~$X z+~XZ|Q8d&i3bE5pvb)rToR-KvPQ>8T|GsJkB`8nZ)#(P}R)w@+bq*HSW7xPTx*9c=1@eqC*L-c3%)@WM$RkINOquem ztiIlU&YY^H3BvK+<$bckF1_CO^z$`ut~s)1(X%&_z7W-9Vge~!gSO82;C(fkbIc`OAnlC^U9aM~x5KYc)RJ zA^oNv2|9BRS9f#r%YL}Y%zW9as0IfZd9~Ks(|t7EJymyik!to>XS>1sW`sqpk6d=X z7n}ObQ&ptgv}BCt{aBSuRTTiOHN;^8KVN$Zb4=7xEEWW+eT!YVzr76)CB{zSfBzsZ zdx~y!Cvc6_9c+T(o?X>YV6OR}_%7Y@_TXB5qv8lMRZwi0y z4?E#hf?n`+e$I!Di8V-y`No|9u`WP%(66OA&ai{Gv9IH&Zy%`A&r{uleRU`{(lW0) zm3gJdku~h99%fuA`MR`P-1vU*WB71CzLo>+-ckB2(6i~WL3ioxeG$$doKJoK`iv{d zs+g4C(&hsRnN1_Tw~(8G==QYRY|`Q&px3E?GCT=mV1~=4v+L&QlpMORCea;WshDQ z$eDb4X!AZ?$c``j&jp%;nbaw`(}a6yla90G&~~f}@pE1djHzm4_~bN+SBcQ@tI#|i zTi3(o+#7G6bTHLP%;Su6j4TY5-!`l((hv9DB@TLg{F!)~J?(1lj7_w!-tRkZWlJsV ziWz7*nEWJL@zO`EX@;&-hCJ)y=5*{KJm%Cgx2WcX@8R0JomG~Ds)r+G1tWPqs#_JD zCh;^R={P)rmozrJ_9k~9z61DGz5kdaUEgHNTwYr}F zJjSAh&y!Uau*<;siinG$M1g4xW@{2F>H-1-YOk&itw>T#N2sByWk;pVLitJiT5YgH z0O5LHw4$kWWHi2I2c8{LgbE`(mk zfKZ0uP$Yd_eOof4>K}_dPANjs%y1*le8W`niKQn688b{VU2&qbOmmXx^Nqr=>258P z-5w-zrHKLTl-T(g(Y_iZO~C?%wh8T(P14!6nk+agi5*FnhbPJd#S2RJG+N6}km879 z*)`N?W0agpSw+d))bN*~#SYC3wd=$x6?=xo7J!_;BTv;NX7pagO2b*D;R^4pl9YwH zQDOI^pkvyBCX`(f?UA(80VBG8=z}%P0fqbDG6jaPqVI=*K-2w_l@18fL*Jt`D$!h% zSRuq3Pm{EHph7<|xz;arEIDtd*^bjE0=X;@g%)O>lYd^CTZ&`-&d5skBwKR;X-qXe48HFo+wY)#*B;R< z6(zHb$q%YENDtW&vD1@cA`s^)Sx7oPYai}FkK7IK=GJD4io;*L2PA3K$a57|zv?dbmFi`aC}Dm6CFYPEz1AhDYg*RVtC&~q+! zPO;B+Tq&#F?(wHlkvqNqx9IS9c|rVlVuk91w&RS@OSjN@n$*Tn%rGg=QAqYGz^f`C zyqZ_;JM>|P`p4foiS<8c1$MitkDMzG^EEUH^vp%3w@Ts=UJ{9qB~V+dXsm@!hfilx zt$Gbzz6Kwq(pUPRlG^nBSOhplvUz$Z3nMM9DtJ{$3l`eZ%pkSYACj>G&$gc zjs9a_J(Y)Cl~Z{auvdm-gI7XJi@;PGXBq;68b!H+-Qhl2Z(hdkGvy@tYHc`YZRY{4 zllUn=wmXjdEWm2!oh&cnWWQLHtf(W8VHfn|2X`w=H!`?mLFbXd`Ur|y&vOhngHNG^ z&6wJLLD?u1EABR#vP3Q?k<1lV4W_;eE>hs5+zHk?5$J!j8E0ZA)g3{EjN6kL$`$3Z zj;)fX7cpC1qziKu@E^_RXeNhgw40W{YplrZi#-%hz_`ILR=Uu)rh;M}%MMEc6BX=M zq7&(&d6{aKr=C+9Ey@nXyb)r*w+@)z{(E*CJAse+AWQN2_E|gdb;_m_Jd?&b03F7H zSmgOb-EI|6h@Scl)$OTz+Hs#e_;i#8)J2=E!=2N5M{t<;;d)B!DY@F{755?NxbK0LR$!rX`;@&loFo`8(E8 zSO0}X`-K2JbOb^$pQLpwXM@u0PK;~aj6@?QIa@W@8O2n)U83Oq@(#r=mU0(RZWWrM zsR#j*IcCxA>K$bbj_eMI)8Yx_+#Wp0=2QTG|iY= z(!YWF)fHhhqqRsucEUs_#MV5GbHhiJ<wb^#=iqrMpsI(7C9h+klSqO69 zJfy`w%4Q?Rw=%wN|I4w7TAoy$>akMSV3KVEJl3K9)f_3V7*`N<9>Zf%4G{jt0{+bP zPL0!`t?EvYta?X^3M~q99B?|8V@AI1O)IJ4?S}*TUXzT)*aQ>`0Ch=>DfkRFP7LYsdj0FF6z#9rQF*v8T+a>EBA)5AX0z{(Dt_9w~s9X>9q4I zt}Q>cO>~*e`k<2*ReQjS#P)rb`o;)}>A0kv z`$et4s}>aBm6+~IqB!gs#qb`V@1_}3?k}gND-5!j4zj>BLa&&K%h)B+=SkpCO!9UC zLEB*N&YA7Z^($sl9E-su<8o_0;9eMH0Z}NK>YZfo3Gm}mn)q=QZWS|;)dr$QYi|(Hxf)pc>)xG(Pcb)B(ogc z9?};|3MZ6&ZZ{o!V^_c1#G=@n?Whmu;+yBzGttayFl(5HKW_?V*{FQ+Nu|GR-2CBvLuu8Qk z!^xE9U{7Wb9F1%^FI~2ao#ihUKQuIuKJkf0+-5j(yC5cJrQ&C-L7%78;GcN=$VHka zwQdP!CX&0N#1x^gE{N-#mhE9$t9KgC&Q|ts3K7|JUyTl{+0aIy# z3wF?X?Vg>V(P_f7hbL%9B&##o*2jM99QE3*xQjK#YYplhPF>nEA6&m#!< zzF7cNVD^7DaQD zc`1xpN%zfOyRE4>wrxM)?Y|9H4%DF2^5DJ}MKEvxF_nPdju5tdFDwm5oUSl?nnZl} zD&yPej5=;gcTSc3{Fl_e`EjYSik%N6z?l*FB$@B3xK5dbx${qPjXgy~F%R&Q>W|^> zvUH4}hH*1Jax?iyNR9WUW%LfeImwn5sSm57x$E>d+X6*yiY;u=HZg2Hw zR|^}C7Yp2)mbi5yD?n@Qh&}f>`zbZRbz)F=7L{?wQFv8eR;Vv`s9&jQSc%0TwPFj> zndf6t@G8l%oHsqUQ$*6k!n?9DTd@B}T^XRL4WKZCeG|xG{(4RaFFL~q3mx6LNzY32_!VRTrZh6P!>>Ks4L8+a+|rR z!K~*>^HjP#JAL(K%Ve4PiK0?=KoR;<(m+=&2u+_8-hq>}J$uNwqIB7G&AT$g9z}VT zjH|kZa$0ChQus6=e6Dny7AYz5%^E5?3;6c&w!rKkUSK=*2?Bcs$!v$@*Dd`KL+La>K2~T>#o$)gd}$ZhM@?EAAoL)>~Djo}o`f zVZFH3`?6DOM=A~{sZ(M|rY|cBE^B3l1nTFhYVo3fxEW_XEDCJyYZ9$r@ARPumbc_2 zYHP*DT9T>Ml5|BR{XOb2g<&X_T?Y%OcNL}U|8W7kY!@K>llgY1b~hktVzNW8qbmv# zvNw`rPHND8?rSVg=Z;DAS5Ok{?^V)Yuc*mWRpkX=^9h+GNY&3#^vU3+fM7F5X}+N( zFcKTP8`q%*k}T%rVJ%5v(*&}nMn!2tY%_E^<~`3-RSk|ZJrW_MY&waUR9`QJK4^0F zE-cQ~OG?(dS$@McruG%^=DtmKgk5Z2!@h8P{>o6Gto_Nk5t99oo6XAiqR@1a0Q>)R z^&lEu>mjDPF*!tMZsGbTeqj8G4(%VP3V}aJjrEqrc~^1Yvp;fuYjXwqQ&Lcvw|or= z{FJh6umwpw6q}36%|QxLu$Z^{iXu^Hh6oT$(9*i+DN)fa&C&MfZx=n_#%#kbVyh23M=JnFd z%L*mL3T&Hyh)_jF1QVJQ7~WlGZd6n*&EV!L>WzxDs_?8T`+AGC!2%Tto2Gof&C!^m zo8EBKyg_ArSV7Z$VY%$U+qHK*+~{3dJ~utwFrC$^x&8_|mKNDH(n9ZWjdufioVvmkd9<-E zx=b2t5n*>rmJy^~or+rCD(V*@3b`vP8!4_HN%v>^r7gET>^^BRnG8(gIk`1? zy4{tiTJkYKO%PIr0)$v+K@W%|$?|4unNMnm*3Z+94CX}PGRynCn0xE^Q%#qgOcEC5 zx>){n`8czUNF3RqEpSd*eEsQi27&7W#4h+eG&YQsHQ@PLstu~jmg<_SK?JCr1&T_ePn0{weF-ki~ErM;T?V- zO?GHG(mhTIHR-}UV1!jz^_Eoiho{MVJJ7e_81J3^8B)&F7pGxXm75KGT+K&`?Z?*uDN>sfZmG79j4xBV*5(Lvt=fHlIY<5ZYlr{aXD5WZD zxYQI5-d$M-=7Qd{ek5=4hNebR3}+9yYV1L!hhyP|oGsmOe1B@VX-ZpA?0CaBK@u_` zOYSvg3Py!XT!PAny4`PXc4vm->C?B-1th!6Z6gzcT{-FuvU=o>0_t8)4F?8wT58Ia zu93;y3f7FE2H}m`8Q{+qre9s1blFXch9~E>(9zNE$xrFb|xO)8=Y;1#% zNzVHMhGEfRE=n*j3e8NCbrzs=OQN+?Y3xXF(X{sL%qC4YQR*Km#+T%+RjoSpjoj<+ z=%N_f^b7Kp3(g%!W!%}ECNx(FBa4BwPNX~V)eiSPKIf&rOKfP>@u_$oYhI#wKrz3e z$lK&gAtI)oqPz{M-X)_0y*l;0y;hg6{lYS-ohh%-Yszf@@3SdKgekbJ{>8<`5v)%3 zO@IGlQheg>Tk3zaq;ssPd?f15Y215sU7-GPOUDUarlk{b-=#v!5TX}WQU>_vvZ0gi ze>Cwe5b$82MHiw^cYBzP<`U$`^^THs+40Yor))piyb4jkfB^&R|EC}}l)9h<-N zets#{@ab;Lr^n@>A(up+GLxd$*H!z4h6o{iB4U(KrCYd@q{UIv4L#Fix<}t^?%`4S zWVNM|yn*Zt*ZKHm2e-d|(2c;XT1PNI{n*8R*vyDwmcRST?t(`^xaFo-`D9mPKaYmY zISpronltpp)?Yn}DPoY!rx3z$o1&!qMj1%#MyQ=oiZv$$sS;!of-#1DJ6?Q>+a_*O zq_>53yB4G~4>eJ(Z#W6UUn>jr-IE@ZrjzBoD6&f)Pq|T^LHhWmYmOGHTw;RW)YTNF2b!A$sm*Rd^8E#hu4?TWb$U}m zkf*fe08u`pB1~xbi%W|v=u>F8cT!JUYxfjUH3qq@;;Ukq-ez&dn{>Q}ptP|LV zWFYR|9WZs_FqF^b6_e1^z&GF^@jOI#Ly%cHRU8Zn7$3Iwcf8C_8Ne)?dECm|8Kgsq z3OM7xKOb{4dpO?)&NE-$2tJQ6H;Q}BZew$u3n-mT!{aoOad&{EuMOrBLuCT$HdWL+ zC@@N1BHT(98_@&~MANs?b#Yx(!FuOve(*hMJSRChSx}ChcsW6FNNT9e%Mur zUdd=#Buk|xM(^xfRMT5^h_%5{h{D249*#x_6*GI}3Ak?LFhpT@=_hD@V?M}et}T>h z>$ulCZGNJ8^3>tr4bOrD>Y!DP#4yI5AaGTz7=aED*HmL5TCxmANy%Z!--mN9lD1a5hsp$H=o2fj344%9A? zSr)7a{CgVG+oEVum_fwa(CBuFFv_2APDCFF!>!rvcA?v)bcbNPAnIjhz(lxiU}2Wj zqe-N{KGNJzx8i2h*<&tqJ)($5bvHKxCXvX}2hrvO?7FnS<0-Ez39%H1=>N(xzmtFN z<`L1(tD@4wuG$ZocdPtD*a4V#T_w9=>W3tpP~ue~G(>Mk6Ax3(9I(DJD2WnuLEZDD zsF3Em5;<2Vr;a86vz1H1d$Y7MM`kO1?Y+=;{pO@+)U;a3bdUmk)@07Km4pCm+^T~~ z5b7`*9tcul_Df3;B#uT`m^_H?pP{FO^k$RUq+bEk1M3D55IOhC394s&dG%kv{_EXW zMpv4WV=4?rI*iTX7Fjn2RkBWS^K!82raMb@xYyDu7f`AM-O5THAT+*`S1gp&E~Fmb z72MC%+}3gl4`4x;dZ0*mRuM(0fG5@`7uRV6wI=dcBn{~3PQ^8?R8p=R?4PtrzC3IB zttl(Z^8;n)zL-4z5cml&*@bl;*u+HJk@e!T*n_(Iz2cU=q50BK7oiqp(Q93sC!(C0 z+?A;`MdXwtV%yIjg;*VdjuW&|H%ROV2M!KrkW_2m@%E7kWt2gBBwnk&cGh!RwkpmX z60TQ=pK^ci#h-fB2ZLjU=xoNUGnQAPaXq{4xgshgx~@X1HY`u&go-#cH(d<+slVia zDCk*#x^rZ^p_7;iG8RHM$rX~EQRDMg1&N22+PiMmm2XFrJ_27R8YWZjIazvwDLtV+ zTc*pti7nU|dCZ;BZdi4fjeWrPM=bA5-p5P=*>2VyO9DbcJ_~_tLP7yQemNAAwCEFW zBWE|D=;r_+DI4@d9YH^H`A?mv)&M3eyNFFhl)P^ck%H1dS*fIq)$e%l>5X@qJ{NTF z<19Qzb!1jDJSb~Ch!zQ%1Kp!M_(?YM+|Z@Il}CjbX^*cW#aC|+4~somHaphc<8Z-? zO)u*TmUOv16Z=nT_IXAZ+Agxd6vqtaMbHz48>Hc<)s|ZIhl5eG7p7DEf7rL-Fj-H+ znvm!-`>D8Vc+0dJ+hQ_5SNJVk`1@xaP!d@>?2GR3(sdcz2NVWo$mH|# zcJ}})ySqk+RS^3_oa!p_<4o12%qxmJKHPJkfI=`%{Z#FHKz_4w_|0`?{d{Zm2hqaJ z^jE-~H}|>DwJ1Bm6YK9{rdz&Iq?!{nYhLD{uQK>l_WJf|Y9HG$iQ>oawr>Q-&>T1kyTQ++*R+w z-~@F4a(ooN;O!!swC-19TEKqZpeZ4nPhN}i+u!r7+rxk@x9@%Ox%UNC&FM|Kr#9uh zsvLMdVXl27$W7S~WD5o`!+~{tA^WSmSL{&Md5+2ua<#%AoK?msRW@l=%Uk&YW=-{y z-ooIr1zUFnpOoLU44;xTE&KZN{O_H+Z3&;|{oRbg<64Fs3wluBEB5!DJ)a+QfA3OL z#_wk^amoz=8xKSjoZH7S;ST;lzqjP`zy*vELX7Th!RM)xwIaj00LA+`yQ+7@|IoPC zWqR|MKkm!g=+(L7Vb2$xD&);rV{q0pZ{dV-(V~QlT`lg@Sm4KK5#|FIR zU8(y1ql(Ylpi)^^8$X}~u*!AJI9Se+p3yIU8v#X`ut{_QAWOZ|;W?Xv&+UMDk7H09 zOiz~Hnul+?VTjB8x{DQ{u3JtAU8pNaipE_T zj3Hd?k9VYAX3^-dk~wjWKRj7_F~@QHlAjLFKj-uJzdtt4|EW`N5)Q;k*q#SYS`fz3@VIG$xDDP5XIg`#)UrsXiq|g;NzT<9aNypC@=WV)?Pv zk262)-|yC<7q=fhJ$%Ez{9BK2Cvb1CeW%?N`T|>BRJLSv#pjj|&nstt5#y5SF1TU$ zE6a&{VE%XizSdLR@A5%U!Vv|m48>5l`tQdp5~Wq#MQ` zk@)((#RYfo^Wa}?dxzs&M4gB-_aMxI;#;w%5@-*4 z11z&o-gRJfI?`v-=UM_uvQ-4^poX4%?053alRTwO0+6C)d2kUR=IS_@t(-EY|OuWvnh0qG-@ ztq_;ZYV;+tp;!smN1L!Ne!TE3rue%J?z(p|xb%n7toT7^-iB};HQ)DuI&{H1kkCK~ z=o|3&$;BgRi6H8y* zZbN9z2W^@FCJdrqfZ*_dieV^*U=WXF8$q{a0mGS)GipDgN=gLJh(ZRkhf{jr(E*=bGp%B6>b!#85zJ$MWL5sd!hUe;epY>3No=lb0U z9z;@w)w#o9^Q^i+;)9qGW}3L~-lI&U3hz&Qjk5hr304GSJQ~Z_DPiJaDi_nx3POJ@`AYfwM_&9e{9&SS>;Ev1~d zzZfSQ770{|KP^ym3;}o5>h2K}lyZYh-wuo0Bi9FQL<>8QK3Rrqjo4%v%d3fqjkJ@i zg^7ipz&h>cG&u(!CNIuR9-o=K7|P1iwBSC-uE$2rzz?%{_biPBqYS7>N|)|IT1zj< zTY-;y3VXt)UhB$-7Arx}({=E;x4J~)Tf1rAC5475ChN+Km%TH)8~mmm;yWHkm$vv) zJJkIjY;vP7zI@>LMgMswpQ{ij_5x539ULn(z13B8od?7R9gBR0>0HLa%m{t-7nZ+Z z8HX{S!mf=x8oU4p=j=P45eAT~z&OGAy*m`&NzMcYSdQsxgSt1{kUp50|KB3V!|*_Q zkG+G)$Kg(04&TZ-B|94Iy7pb0r%oAVvrjJbt~4=Et@;B@hPh@MUwsabZH;FjN`TcA z@Y8s7e$|FS`tb_?yCBW*nonR zz3=Ls@wIDoO_|%~_#D9vxR=QiNGl*pw8NNQf)^16)zk$d>agy3Ljip+jrH%vlRzqH4JN=1lX9KK%mfPI9vj<*7i7=Mn63P@Of+F_>y^TZ1b|icV3kb*yl38H#MKKgMb7LLmpU-J@uFRvrL&Pw4r#0jZ+xZPr@IAvUSrc#{Ii~8J&+A9Fm2#HAJm*hvJ}zs&xtFFjcZrg5A4Bh z$x-Cs*7xECalrf!gq=xV1&bq&Gq}vdAOe_m!M16=1V|q5K(P5Id2YNo+><+Z2BDSk zEOu97K{OUd!kRJDL~+nwEvM0@Q#tfG68|W#R_3vx$mv$+QQm9$>S-&62o32b_ARQ5hV4n#=qE@U=J(o z;lS2HD`GFScYp1*SWNF>7Q_+IRO(#2DhS3pt7MXOPOl%5jnjI z?aHHLI+*EkaDs5+`==jFvfan0?e62>-)+TCsT+o9YjD_3(FumZ};|Te2&2!CT^1t3*Zb9eC^`~RQ@*cWV>>FyBDEo&>v9< zi=(X62Q#g(GM*3uMh?WxdYZMWyB`)KuLY9^c zF75+TGwv;j1)?c#WvQWOX)x}Fd1h-^53(LaB+yzubR3Mm^luWn%#8!D{|_ohu(Hv@ zLhN!>g6f$iQMf%m!X$@+_=>_Ex7C)hWOZ97Lw7#vVY9pw3rur<%T+|RCawiQh$!#a z1$YmaF^pn$4{>WWGM;7LtI|vbr#a`$6`)1O&apv!#LE;#Ku!dwYd0tZoPOe1ikO(d z@TQ1K*C0e2c(fV&j9o!@gltxs%}6>8(#@q$_UC^Hn+LXewA4~of(RPQ0(%HOv-&jW zS;?ag*^RH1tRa8W@)=iPd!2V|j%2oboKhAei`*3JhId5J4hkEVi(JhOARxo)Gazz~ z0Q*|=5Y~BZP_MGoVhyIH3^HX^e#+$#S|CAGzHdrcl@s8M1$n&Bk8~z(1eRFQr(%=& zUXU~Feee+&2m%TxJ5}E5I!t3i8vjvG<@?Zl-VXCYBR}t{P;0 zaO`BxVCcX~DDR4W5kOc?fkAAB zF%^A5!Q}Q~$8f>4(ge{b7HX3e(v6Wvpva6m&~bX$I_4g**N{Ic=S5B1!o**E+u4YN z|0d^i7onwWKi-qk5oWs6XEBLnfHT4}s27HrPYY>zc8aRExr&F8I>JNs~}&&E{S3$wvPabxl~}5Dd~{ zIWF`Jus$*x7Ic$PvRIAJz)7dUd)Y_pfyCVR=KeOUV)mRitRe-@NLj4dPkPq&UdWDZ zLBD{q6l@d&^*rmX%#iKgut=g^m7_R4f%~F+pFPVR}^P`azmm%Q9gf2f6 z#SKE?5rwIa5zYd9#Xly=7c>;XDZ2=}QdJEB?y3?tI8c3&HZ=p}^BqsO4*NuludT94 zmXYP*B=*AZ?!bkjp9BH%6GV}1=46S@oN(`4{BF5H_$7aPz+?Cbh>zi{;lte0*^FFQ zkuKXU3Nnj=#=73~a9SOE*HmyyCXS>TYFJ1TQ|JYfFxp<1!ObVZgvn>-n%Q@{VW(jX z^M!;e=a~{&Up&ij0E8hBOodFsH^U{6H$Y^vt z;9*2^%D*Y)rvHR)JQ6WBB(Efw+Qd%+ah(&iFA}sxCeftKQ!d0?)oL|aGKM=PB!no} zXiK8jZBg>vJ#ZA1yYX2xMOj^d5h{luGR9={43B6k_sOD2bM-A7;;SlLjavb^?E-*+ zqkz+aIU=Wkzc`p#GGP8xCYs2N$V4?0Ub0OKC41WpXp2wq52BqvIB3QDHr4sXIQ+(F zX`zFyvI)aNFO2a|bS|)~Oyzs(kw7=UxwPsb8V1|qN2JTQD$h7*C28);XuK(~U5b3E+YGnL z@E?|pz~Tt^4fAaQ89f_U^S8wCFKu~Ijs6PYaoV-9Q4@sU1>XUBIIHIcS^|a|D@kb3 zAVlqQWaMFq4JzvZ+gb_Qwep=yXAhxz5h@ZB@jZhmrr|9XG#lDYHChZ-&#`t7bY^Ki zKcyfvK9g4jGkggbjS!ne33h44{E`DzSS8$U2GlzBYa9N*nf{> zBeUWh@de`@toOmP9VW7rH)a==R}}4GgFBln{Zp{DVE|wa#Grs&D1arH7FSC44Y4WI z6$8q{EwjO^CjG-&i(pfzA@Sk>PigZRY38+kRSU>F!6H)~!xr6A{5WhTR*M`%I}qTG z3CJRX@8meHi7^IGWI>FrhpN4QtziptRd?LE-faqQ?d`DYfQJ~3B3OFMwxEl+h5P`d zqET3QEu}UXyc}_^cMYop6X!OAzyn0nRYgnsVE2&ulTGByinJ898dNxIuEBk?oIkxTI!UU8?ULm<_ikj3J zfPfu;H7rJ9p^804DITE294IyYCe7hr%qs3|Y=)oIlwfiiiz_PE8ls0G@j!G6JLrRA z69HtTGtjz@lp$W*C!?vijI}~-v7F{x-NK`|5Bb4I9Ctq{=C51U_5eDC70HN3frK#V zyrX@qsir3!gEaYLfxmWrtN%t8BHW z%$V>oCGzmdVRrRhhbw>7fCZ80JRU4lJpn=Ah!;{J2}OF855v(^ad$V2kjS3~sB{VGaS9wYf+;S#?|< zUcZ1h*k*o0MRtwv zZTvVne?y83bHr^Q!6v0w`ZPUt3Mz2Ic!K#ilOI752;1;xRx8X49HJU%B%CzFVh)LFR9UT_z8Hz*s zuw!L~Ds!QoJ_mEE`PAqHA_v(%CNRA0$iuG6!Q`be2OmAneavW`5c@z$S&5onv-m|> zenW-2xxzZ;#Y=})oPkg-PQysw-l#wAra!#`0%J)h9g9cpIOy%xNQlx{vSPDL2eAk| z|Cdx3VOaJ8o-WQR$(%F05$Zwbyaa09C3TiDMPt-}p&dws13(|LWXug(|D^L1PSZ-k zGoten@N(NWfM(ucD}8Y9u#aX#<7}3fxCfLn7e4&AfhGUQb2Nk$gks0ndjfuTmKSG} zla|Q}E%o&aO`9GrP;<>{WdLaSEg{$-3*7}sh)1PxHt1xu?0B?wPrT7Oy!i!o)60w@ zJOxJr7)(`-qg5F&as$zeMer(B6+1EnpNQsB)CTCis&uLE-=b-&0b)jlX7_Ln5o#n4A}khBwE#^QtX79xhPNllg9k&NG4q4P z^DjJ|pTE5^Ou5m0wR_AXo#(|~f@K@Jr>E^qSvO!#=9V>QMiimf@(f5Pb#}!dyQ@}J zS-bHg-*j>cbiyz2h)Fb8q&F)&$8M`WPGlU&fq~j?nH|9p7qUKl4hGU~`rnZ6J1*Jv zN>25T4aQyT{~xAHw9VeE(bFtU3FFu;~ z_4BW;Ji3(m-lE^HKFa)X(Yzz`7VVGOGHFrSdyBLmi;{au49$|RX;^{nm->*loadXI z8kybaN2c|YeH$hp>0tWnifk|aJo@>Id-RCJ;KJU;y?>td8SABzj0(HZxc9Nke4l;e zMqOV#es}tpn{qhj4%S&?Ps6iH>_q$8tLcjP1hW-v zS*M#V^%!eQJtVa(KW4YbcU1-vWu@<@gn?5Bg^7$irP_Q>MzCvZlQr1*;&P}_vqL@8 zD=UR0w~A?NVJpSMtyrb$Ph~kW>fMx?MBmEkBghGusGNz&`r8jiwc0BA%A~Nd68-0r zdkcyhk1@u?a5j&wcVn=46GpYK`Bt&VrRnKB2^P4)X8HD+2Ywy|r-1eVnZeP3@f|)5 z@=Qh$EjpMHjm^4Vkl)Z-YV2(_HmzpxnRVNu`KdHa1bP^YvEgf}?rYTZ7@kOwA|aB5 zK|;HkdJG<>`J>P7JEy8vS!N5(*cZG(RlUJZ&$tb3ikNu5-L`vBld0?LH@g&{V5`E9 zg0snc=VRzYT~e_Bu^@j|P=L*6P0BVs@2?d9-BwU}z8-x5gKy^2`uc)=$R)uC8^K=W*ue%63Ya&@?gO zuG-S1#t_bo!M%3bBL?3)gY8v8m($*TJxLMJtM^%tm5XoBf<16t`#ChR`NWIQZpZ)d zbpHNb!vtq9UH@>y;jhnpwfcv{huz(`encuknvlC-g|TO-c6#U}0dM+wH((O-U=$yQ zX&Ihu-dF8*Cngn3UCTq_a#BKcXy?4({0=G~L*}0!^63XpW_u!Lt}H9s=J*P1x23>s(PYZ<<;xj|3>x0hP0PSn@Uf7XlcjDo+SIdju@`mK z{&fAZ&NECkDJB=3&{2ZvXrz?R>HN zwV$W?-+oVXU#*|>!K#n4Gp8IrL=w_Be`wy$(y?xhCqwULhjp>uiW``Pxrrv>)}Wx9 zMjB`nhtXFL67&xe%rqvrQMyq}bOOBqvs#TL%muz;|N9vN+V%U+k2*baxG4NCb+O-x z7e0`U9Vb3^>@jncVD8A%_n(Y-@#NGu`$;xlJb{}Sy=9VrWs_S=OX$=7p>O|(aIol% z-M-2dpe;m?nqZT+XGcjj^Y?95yk?{Bf6x+gnfrfqpKAKQeC#6=ewjpCz zMrB32RkeX;iAEOv*#%W#m2ZA3660qtUX;@8J<7!B2Vw1l*b9Uo-Ri~X+M_ha3KHkP zn|0;HvN2&QxKZ}o%6!z;L$11%u^BZmR(G^ARS;sDnp;v*GLFk8wMEZzb6@hI38n)H zrWe>|DlhwH5;jH`#Ae)igas~y+G5>=4e4NB-0H}8zuNU`*JBqn?^cloQSO8VQR$w1 zJo+8MM^h(U-~UCQK2JMLzm@LbS+hInaDU$pR+b*#Us+tHO`CR`<%0Amsk{ZF*(p)T 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 R72yBo&0h3D{H#^G{vXPFRS*CG diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane0.png index aefbd56c39beb25cea9bb7a8348593dc940f396f..ec677d36ff2061de9324f067138374a2daca4a52 100644 GIT binary patch literal 103233 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 Y^vUD9Pdt>s|Hh5EcJ!)$`O&=p0|t9PsQ>@~ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane1.png index 0ac3ebd0e7f6b388ba61731961333f138cc8aee8..2ff789a192ce525c5d2f192b74881d12649bf094 100644 GIT binary patch literal 72325 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 F{{XIeT>$_9 literal 72324 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

6y$PP}LYF!XS)oPp10P!&By)m?H3^eP rQ63}8VOyG0Z7q diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane2.png index 869493a2a2e910ab7cf9ee4372288cfdb92ea7a1..000b9f270eefe6044e5007ee181f03b8c10d8ab4 100644 GIT binary patch literal 92992 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 Bc@h8s literal 92983 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%0D^DOb0h@8v?7w^v0j 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 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-offsetPlane3.png index 36cbfce9ced6ed1d8c0835418edac84724aecbd8..ea9aa61c1e514553fbf71abb72b946ce87d3ff09 100644 GIT binary patch delta 665 zcmZ3ngmu*t)(I+%9~)J-sxsblsh8e!P55<^EfJ<5|7X?L8}Uim(2cnN(4y z@-f~~=zr9t3I)$U?h}seZ&Qhr@U$`a+@mn*N54v^cq@p%M?>YK14xO@1Qj_CA$}E3 z5NqCS2&eP6r<2h4$w&UG6xw^<@dq+l8dMlS90m_22chrv5WXTO14On(<()dGr^lm4 z6-6MmXzQ_m|LoS9GQ8XUeqZ#?SF2X9+x2SI|GE$m1!C8C)c$ZS$YBGfpQkB2-CnF0O#SsA9}$8?WJ zKPR^2s(fq$F^&{Z2C@G@+4Vq`ozK-Ukh>6niu7%uS?7I)^m{Bov&{KwlM&K Mr>mdKI;Vst08JV>xc~qF delta 605 zcmZ3rgmuLd)(I+%?;BOOsxsblslUDN?d_t+z2=|RC(iz_we9EpBWC(qw`0EAx2w#P z_xuw+;mH1JDsmn|{{>Y(u2<|7cN04AE2Q6{@=w|Gkt>+5&*f<|0i=XqrIUTq5oS*( z5bL=bg!8Cw(u5;_RSNAr@AwOSpA2L&DsVD@I1G~*CLF1U@;#UwAhL>`zkvo!s!;Is z08$xi3twJRjml=YQ+~g8d(qX<@YvF;q5uD`hyhX{_J4u@ANc=&xUK&!N&nj|^SdR& z{3@Kcf$quq>@exadj&Xq!&zp}LuMdJk4N_1U}=z0Jwy!Xoc|Y95@)kdYRLuqWLu?z z=O1?@b~IEk(BOY-!Rn55JAswma1+w+ff(1T5+~t#<5}ILiaNNG|3aQN_LDXMr365X ziaZb-7_bm_Mcrh>C*t*uImyyMjXOObwN5<3t=w79>-i@;MQyDq!@J$@_eJk~wQBXc zU9VRCmqhaR{;$#dzuIoA{3u@k@%p}(%VzI@sQRyd+s1y|&-)Md{eHLm>+AjhUf*vA z>t4O?*L+6X7moaoAf~PUx4dGbc=g8XOw$|P8Fx>=;LeyK&0lc8_Pg!hH#aw*e*jaK t?!aGlp?SyTMotMv|IG(EmU4>y=V<%;>e`1bYZDlNz|+;wWt~$(698YfB4Ypm diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-bezierCurve1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-bezierCurve1.png index 54df9e809300c02e0c05824dc33acfd0a357e944..4e31a285415f30dfe118999ba60539e8d62f3f36 100644 GIT binary patch literal 27517 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 literal 80189 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 z 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 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-loft1.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-loft1.png index 2b05b8387b5d2f8b2761ae88eef28f24063868de..4a2d1008f49508fda1fad7c500e49dbc4b53e044 100644 GIT binary patch literal 135190 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 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-loft2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-loft2.png index 2b05b8387b5d2f8b2761ae88eef28f24063868de..4a2d1008f49508fda1fad7c500e49dbc4b53e044 100644 GIT binary patch literal 135190 zcmeFadwf;Z)ir!V6jZ7yYQ<^=#3i7_N0m-CJ>=GuF&6YTST-~ax83L(ka zd#!mHbIiHsT5HbFuN!*oF{d08i^Yx|K5WPhvDlILveO4gb;e(1Gj`k<>y)-*_>jTB z$W7T_n)+h;ub+9RE;0GQWAAQy^`2`+y*{pDrTg!FK@c_zK;(7qapsir@#3_Z+@9L_uOy((0v~z ze))@Ud=uWDSn}E}-}EMYFLBfLtG{7*9CCZXOZR-k@c5v%?5jRId`_C@p^`_xotP)l zZ#9-={@T z6y{o7b4%(AmrZ=I1%Gs!c|xD-ViT&@AD#8b z7QFl8<)h1XPUYARr6p?9N+v~LZuUGWvEze>dVJl>E8QL{xNq~N{|80 z&M#gVv}n(+>J4*a1NQ%RgniNW#fUCdza25{l*C8ZJ%3qB>6{b#TsE=#h>i1l?pZ(Q zgy%7)M+SZUrvaG~6keaGtECm;fCy^2X?4dCvK5^F^KGzV(F!1%if|b)9P=b z0J7UZ%kEVB_g4o#_G)I^7po?JZop$XCJgKXt(X{1N5vI<2zqw9LIw#D?q^Xk|mzqS0^W*7fe5k@e{pBjQ(# znD*}va}Rx(za{a@KG!{8)l|2O(_T1Z+rrQOls4n+MyS7K{J?1k_bn}HxVfZZp#I#E z^oo?jCViPrT2_$R`gUgPn%uuY^It8DH!qa*`Q}76mA-4^y!v}G8t)nK>FH^oKWf>daU%T)9P7`EInAOddZ7*jYdO81X-=w-7W>Sq)mUW-Dth{}DS=;u? z>SyzI^~-yxvUPLir}3^8t&^{SvfLzd?eP@mJ;{rV zB|G4(bBhn|$vd#8{iMM5-w z5?_yqKkQrg1^)U=Lk`DyN5QeR)Zeh`_$3vsBfh!`(=OTx1w8aX`C1K(D)yIB5+nTu zoC14PqC`tcX4;I;fAZx2(@Or=U#N~hO0UeTY0Q&X0yClg z*4QggHSYG`f0%Z&Yql;Mm3>#sx_R-|T~q41$0r6Tw!8lFHEY)V_l@VZ_xt}dID&D( zq5mrQ$C~1bHOqc={?;8kK09x1^?C39Y;4c$r8ib4`RhnP@6_-5mc4h!gtw19(6V^s zd9RMh-~CzEfzNVxl+U;|cK_tbQwVw4Z69UJmX~C`!5LqiQGapKfxT-lY;4(4*>)@7 zHE-^3pF4TulWlEnH`lD*v-pt-zRR986$r83cbqF$eB8M9z?*y5E~%Mz^*K-7aP}(` zzWQ`{)}H&a9$7f`uM4a5AcWS>vfIxr+&T5U5%EJGu0Dpo_kPi)_iO(K?4asf+S)1; z14|mGm23nG{C4RNuRUScWq->mSiOH`MOL3n;z@vi>0uaEzHR5u_SX?aiYAxe#}WMe z>eGAAK8lLCrubji)SXgLcgihq-aBX1#>Z3MK=}PIzy03!FALfqy*a1&>BP}v>+|=! z7|xFFSDH!e@t%d2G|2&z<#`-`-K2HR+SLW>xOo zv17(*zP*=UnFa~@HlMxc;Zw&?sBHY#$aCDddOtY(%HtV$sJp`L_jJu@ug=(#y8pm| zPJ(TY3X$U;;LBI>bwHCT&n}$u{aBCIsxI|(x-S2&tlU#KFFqg`-^%xXcJYEue_rv^ zyDz@>gb#o8!^h8PX=y3kIjL-5+9$s89@{a7WZet^!-w_molAS(`RTPge_vcY@ZiCNtG@WlqTKONXl#IJ#K$-1dn-Cf>PXE?ybyd>Bas25GchrsSHh4%c3lgy>*0-gnOsL=7FST}P z{Oh3u4osZ43q#qrZ{LJ{TYotI%`eWn|Ni?|;q9?pNi%ErU0DyeQ0Am&@QxHX+Fg?; zcPCxDrvzYlpb&HF%1QM298ZdoBXCwFZfZ0yDrfL<#~l}21?1ZXwE+KiZ|PsNzON$g zvHiA}wx!>G>hNK2^<^CE{otnb-e?%OdkR$qSpO9KnQGwroW5tRMAAfujw9tj5rgg-G+}xu| z5ezoAw-4&lrHlLUs8cJpzSFmH&ED77#8%b4bLx}7AEz-g)*dl4J^lKtZy%JO`A0tt zU78ezdY|`7QDGF6@tFgCjvl`Kp7$?^ZO?1jU(^fcH{^&Bd0#D1&=amocI}PUFtM?zv_Q2Q%Fa6%|qSwY^RDakt>~47dg z&i`V?xI|wM5{u7H9{kPcpH%Qm0EFWev0>GD^H)`F*>YSA@*P&4y|=dZiIL|4e+mnS zRyKY;gPvdC{CxBDEq5%tZBYIt`DM?R?b&qqC5P6&`tjB0%$i-=cO?+(@iX4O2xQ?` zOK$|?KlA>X?|(M`qu*_qT737(ogcpawjT@yW;}ORk9Yefddz?0u}F5mPrv${AN0R} z-*Q-B63k_tc!WQPcVWFd`)kZ~SI&=N?Clqf9kr-C3~lzf_JL#Tw~w8aSux;=ad<`A zor?$&qvP@X{rkt!?DM4{k*Og=zT0inp87665u5v{A7i@@AJRd)J%$}mh&rxxe_`d8 z_=y$U%lc-VJG|(kl~cw;_IzvBFQD?+*qod*=Clm|@$qTt@XFq>bSmTr-3pTI{Fnzl z%gRbW_0&@%b>P#`#uMvPZv|X;e}|JBn|j-#J$IiPt7sj%Y;)V#`kuGP<2`4>lw#?p z>tz8!eCmd++qN~I@1gP3>%Z%h_TJmJZJSa9?8OV(z%FCMhgClS%j{gbb7zmllMrX( zH!G(M9$R0ttgx_4>A{12=RMDCr| zf1iG!u&{7r$*ge)Mlag4v2Vs7(%buN4GkI40Ui~TK4MY`0kwI0d)4gRalY1XKg$2t zpZfOgo3-Sr9}`OD>%zE+C5y(tdGySRoRSxi$PDOL5rfQ}E9Kvwlan?RuA}(`uS)NR z$oR^M7)9n>-+)i{b(8hl3opFT`1ny0a;Gcd2y^z_kN6Y2@YXli$B(RNowjZF1GMPG zQFIt!b}vjGzgTvylz+HycKwOZzq+2-t>%I-Eut)7I=@es>iLSqSuiXBSC>-6ff#ib z>RaLG8>BTjNm>th(i-ptJ`I%*t6sf-|NhhGB!0GXN?tnPr>W-Nz;-8O4wv?gTocXD znT202^Sjr&|K9hJ?!TEft)=)3@C(cBOrZk`LwzLvI<`Jz+2;6DU<@%TJ#tox74KL# zeNg-&A02!7SUE7eTis4j7-#4)prtui;D@&~v<`PM)r|qVB_; z{BEi9WrjXb3IgD2z)s?qW9v)adtvgb7od-)R$u6!}qgU_amP z7jJ}0mfmm-#jf~d5|5EE##VvFKe4`K$nhEHB40ggPWQWs;Cl;7dT;=F)DO5D+|$el z9+YH0dw%MBK>gO8JM#?0HNF@HJU@3lGX4`{3opF28Zs$)IK909z(M)glg)|0DfUe| z!zb&P|7&FBnx`J5?dZXc3)a^oq`{)$2e%vv&03J7)0yEq3%dH8O^6KFOwIA3r&p4Q z-v0RGkEdNla;>KigV)c`?L{|;0cB%MP!h+@Z(4|NBt8OF-d0gDYTC3#z#*7Um-)c% z#fzxsVJ|)P*0NC>cls#QW47;Nd*1lf`B_F52=>CEqlXXpU{ueRU&Y3++21$4?k#E_ zKS+E(y)OUS<1;qFZeus!d^3fagc?JJ{QNLFnEbZUU%Yvs_?mMl2x(G?F>Cd`UmTw} zWqwoQ4ua{a<5xYf=PZZw*Hq*Z$(+;NDy(cLpiF315SZp(Fqm?avb-g#hX3Xd10#T zZ@%OJfF!nXcjgbTzxm_i%gW>>3Z@8G_+c0xFrycrdTYy;En`M}`1QX%FFf)}-+u49 zwY+%pIY)9zU`a83J~5whC~ZJP?vKg==PsKg2xk59 z)SRMjqzb3ShTqcgJZ8X@ixJy-N^wFdD6#s{@CoZq3+0oecP!Re=#vmFBZapfN zN0g2$-0=>~c<$At1BtBpxwmuhFbLvA(QD}w_q;Iq9#F7M*+UfBhYW$k_ZZvaN$pVL zG0!j(tKmxJk7{0u>cD8sY;gs$9zYx%s5|6$=KQ9zvnWpa&zLb?H7^V$27HwRA(vaU zXi<$v7!x^O=uMQ38#}h>eq5{jh4h z6exixM3ll`!q_RdD~Vvv;i1yWKA&t)c=gXi@v+N(Rdl2IuTwuB>mp^~W{@rv1~tX> z)Vc?0hIKh-&WWGLXq7l+^7e^cVl<-pxr2>i89+Tq2m!Va@~}No;-#-`nJZB{*co}a z<2D)Zy8N~E=Hb=Zz30Tc4&S;P@5}%*d8U6&(FrcxB2|OORQRBUG<@^jXQ1{ z#H&}I<48jU?%DV3daPfk2^HfC0j{v8_DhCWS6*W|K-MoH?fo@1sVqj+pCSH3M9?c| zAGN!_`JpqalMHo^Z>WDosBJtKRVZ2zy^kmb2Y6yVCrA@2c@z{Q=kz&y&H{S2B4NKO z$kvd{IH)wcQz8PN1m9d9LFS=E@(WQ%`gg<@;SH9E;mwVI+&G}~%!=`A9z#|NVKVPt zKNr#Y1X`10;p-=@+4Xq;7+A^f?A{K~Wx3>I0BetrwIzl`k)R>*^YZ(A$yzd-@u{gnMxd3LcNF=N`1_Ow&(78EVljrig75zD5!&cfi@(D5efws z52nX}1tLivMP;es13>G|WBgJ>BEz3`+1T;p^KP_REAo=+Jh8s(^5x4@SpdK=7W&nH@)-DJ7b0(5va(bT<-PZ z1o0UD2P7w3rEN78lHx%giQ~ay_JMIKjv?Q96o&=NLZm?uvtmH+Oh0L3<5Uk^qh)+?VoG4PE*_NMnx(&II;%p!(QYH86 z)Oz5~Nrs)~&ws?&apQ__iYmo(;!8IU*!@H2M@WG{DU>B*6fXSXpP7$R>WJ)lZutCa zSxHIRX_L3FL-BxWfF&w&AtVnO(reBQ$AFI}!AkNt&Od2xd1z~#bAY758zh#pd0=Xo zS&VFh*iM0zGyRa}&pnJ0-mxsV_D9zy&3}eJ|FnB=ZA^}ckoBDIA3fG@=TQNrViISS z#YxD;VIMKFY7*i2t02Fz*Gt-`f{$2EOaoA=h>Wi6?&alPEh90=_pdHc^`MZALdA6j z_XUxW9$i3!F9|+K_>MuZ@ka!nOP5{{2*p^Aia=t{a_j2#bCTRT>9s9cYie4$_~7Cy zu4cJCeiO2NE*g;hFm}MD>w1#Q(L>B7Dn~I9M}mo<-682?40-<9B%zP-)#Rg~r z7EA{b9ERd)g4FNHO{taA5d_%3q1@Kk${Z&{3 zLum`7Vkljrmx9^gA)qh~UMAO8=~W^c;=dYFWaw%Ms)h}RpBP%egRpX7n1T(Eo*@i@ zMVUMebQT#f{{9r}MMqQ}+FQ`YL`n1#PC#02l&q?48+-7!;YkX))mO+P`>|eh6NxFQ zGqj0GhmZpMxHlXYQfSg|5UcnFiW-cVh9z z$?-0DP+iaA#{-wLPR0<-Q^CvY^7lX9|3D1OOp9O^k|k_7EQ^r@V4@GLd3{<&RP<@j z@w0`@-yt7duJv9zKVX;nH3Y8Mge9LR$?wef@N60$>Q|T=l!pib0wUs&_$YJ_83%qx z#8{wVY3(Oi@2l~aSrXU!#?fW?)cs+W?h!Tt4hK*vutfMp zs3fX#dVEP3JXw*m+>VwiWq|xMCT6>22cCj*6RHp3!MTIEKn^t73L*h-M)A?5g>V2R zf|jtuU@@luESVo-N#3F;rf0AkJV!+}7!qm{C(du02MrCYu4E*&^qdJbQq8N3I0m`2 zDbm6Z7firvuULkx(wb&b|7y_&!&zN9W|sL(nDXpaJoh zp<&F!wJsC2oW+1aDluMx79*sntput&ED;j32&DwfiV%|FH&7k^o5cvk)mo$rDI61%H6s%EHGD#gbQ6{~_`I!ho?q$#@!Vgg z@;>d}vUxG0mK`hups9!eCs$$}$2ApCV@uPP6j@0$k2v|43Dx5V2T@Igl^LpB9Y zd04>A^DX-Q;ZtkY)?gi;?^nQN3V9Vcqh;{waSDyJyzuTdFEtqRq9aoc-9;{R#h=DGf1qbk?^xl1+!sH#4y2QU|Fas z;03TPD6<=?fml*XwYC{m9xNAf)p5(TJ7##}lcX{ZnP#{)>57{#!HgDHjOtN;atvV8 z{&?bS2fFU(SZP8nhm|7Q8(5Bs^Ce3b*pd{~Ich^@8Z4`*V885F1AK0`!{>J0_lnz* zMmTRj3177_J{VI1xG-WnkyAJagR&sJ3}I7n1tYN~0KtM1QaByF zk;SR}pp?59+3b;yU#N}+`hKC0wF& z%h)uY)@ed-20UOE!aqe#FZ(V)%SBn)9GQVBoUs;U42wH&>@W9f&G9~d;_%8zb2p56 z`UVvnEKLHj>|k9-F>E*!LOK6ok@jm?>85po{(z35n7|4E zQA4QK#kh2!sHXChE6q5b1f*arpjZJNN(VvNE?|C23~qK9wg?`;WQvh1xoq>)4cPI} zG%f1nXedcaJuXIj$c)O&U&+8VD~93K10%vjwkW}^h#rj*#nZ*mteb-=Dwl_eY_N04 zDTFdIZ$=B2i!HR-%Hv@b)RL~g$z9B)UFC}MJQtbuHNprh?Utpza?L_|CWLZc6psT! z1*VHIWst7C0OrLyB*v4cRi}B=KRrWTBZ3dug+vX@vE~b`6Z(mLJgJ_17gk>@!@dIJ z0!|HrSc&0@1DN_hjE3BnqEz()4tE7O> z0fkCFZPC(I(=4l+#i{@uymd6*#a~r&h$xC^(e-auw@tCGFRJ`{QeS3ZS|(t_vA2ZZ zR^#V4B||zCvdkh_3v=!%KE`Dkx<3^jkr?s_p$JV;r3-{qYD&p2f1l9>Vg*ZLNry|< zr3$j|7jJ)`W~qt@J^(|o+(ou%JobU4Skc9g6=%{G&jS(HXiNzzroh@$CL|ZTGJ@3v z#SM5amBzC3!+fho$i@@$_9J3+^szVf=GPg1=&`E9lF5MI` zqjC-0=2paAOa`Gaeylv7RswGH)D0?{`4yQ=zX2!F$>J`bCnF+qureuJ*j}Tm9g9OW zZL>Y6L4{bzi|XMJ@#!#o;V;W{!w?9Rv^*v+{#BoNC$_!CRCOcM;YaZpd_o2pQ)}HT zC&J*eABj3Y6U{ymePqdswUfQYMV2z*4y9q@$(n)Iu~{NF`-4X_?M9SSsfcz7z98>I z-X+Ara@D`d*~g5Ti+VBO27{utaC}-`9z1`i-xskhX-w!LYX5Iqgj&w%p=vXbjA%^t z^;5vEd*qorj|{;fkH8j`)x*H4yH!>Hzm!>yLn5fX=i;=jB@IPAl1QV#T(cF156vw5M!~Hy_TXhcnb``X$?fjyptkA zMCRfLj8Y(pfd@+r%*!w!qiix=i_b_jl2xzZ;Yv4;m6ew+{*+zLj#} z009pLM)*6xM*Nl*=`wKU;(!hYAj+{1h67EpT8cu`YP6+<$tF7Cjxy`CdAr>s+Z)@G zz$qyy_&F^gxqS6-C<)RzUw2evOVB6p7wA5DFH*Nq^`ZTny7h#Lufnw0}Cn zmZRiBm_%T!ga_ARp@rC_a@@~+&8L2ZCf2=gVujEgANZ~O*I*pOO*O8ICAy!`b!dN9 zy0K+30Utu8Tc+hGNpxt4$ghB#_~I?p3R6HUHk&z+D=^S=kS>G4;%REqio}4VF_e^)3v&Vvqfp_m|G)V0KTy;6lf=xVOyZ*XSeF{Cv+~KZfyiE^fHl?}%j;tHMBd~$G8BIk> zhzJ-tC^=JHrfHa|5;b@MN*DsFRh1!khnEJRLfha}xUBxKk=Q?#@2^#z?_0*(XrvC> z2u!0=FWs784%B~=lDUp1t~DM~{Nrf|m=UJZls218zWvQ;JFe({$^4Ud7NM4oLiP zcJJI0lcgter!AKvolQR=6hx!unM$T<(=6iLa7;%A@g3h2Q?aZw`PRlNq_shH^%Q{{ zDt}=MzVMe`NzenJu=GWolks9HrJKALcm@d2+8>%WQJbD6FMA+8rM78fW{;T*r>$PN z3w4WdfiUL62zrXTr23&Qp6O?SDcG*G({1jet4dlH(1jKjSvQU9k*ZE0)RZt%g#kG> zWCcGphYajlqqkKl4cVS%!P*>vm00Bd%E7JMoPkhUQWFKkZLlBC!r||h0@VDvN{OHJ z#4j0MFfhL?`(~-d1v9H`(M;a5r94FIQHWVi!CG>+stI9G#YRF7)WDh~qB4rRDmF+on`2SOLvL6u0!#Cha;s%2&4ei=#EyQf0LHpfb&%%Fw2j0J`>z8wVX+ruym^|2)&VyqPTh9bb`y@^#dW;yPvKs$5v~ z!;^F49ge6%yrA7N!#;X}B;;N}a8Py;WYfo{-tb^ie+4I)sTA zV`jDxF6bbWEo>QlC`CzE&IN{561}BT1_@a49VXbema%Q%Lp%AdA-% z;Z2avCmkBPGzB{G~?+r?2z?iTci7&AP1Ee7f+rg#i0bgD}kK`Nc=Eem;r=&fu zWnh2a6Ms$u7{56;zJR5wb6=sghahS7J)pJ{4R=6-g?&}QT+*%HFslSKmBD=AzK*CO zP_oJa!{7=?kPm1BA&pTxMgrra;jzHHl*cys(K4xMoAdLlr*PTze03EX`jXhd4r#o9 zXQy^$qOB4edn~lm-hkfDy1|m%(vbWbGc^J6x7Y<>Mah_X97m*-fjuiy9jgT|qK~LY z9f+Msu zidJA6#To=`#R9uNf`4IZoE^*0dW6Gf`wT)ITIhiCz{DxzY#QNJI3jFSX?DKo?T=Vgvj-4DNY7BX(Kjo-upuJG`7A|R9|BHB)@>-J@ zeGTa@%LnpHU(x={oB zhEuWjWT?%T+Ez4}j_U)4ZNafPE;IB18vWt6_d9N1@r!k8J4FeTRdUViJ*v3XPf^)fL* z0a`VfFcGq<6N@0p+2(z|F1kV&({1U`96%w;SrD;NTa|dEPFj#-aw*EFDZt+HUoEZC z=*1|o;n^sTTgTTlFlAUjj2zQwL!PcZILzQ61?s|KHO=SeWA5s^XolZsmNewOMF$af z_p5!0Y>M!~YzyQISy|Pxc{9$Ball;ZHs^!=z#rhxR4L;yGik#Y7oh~wIF`dyVL?pt zkXhNh*0}ziTbBbYA?(rLXu0QzWjGC%24@@zcBRzdrw@8e&jX z`VBw;h+@f_p%5ApItO~tR4^~W1rY^n4_4TL-pt@h(Z_+%IMyQW8LC0y$Xbg7So4ia z83H{f%%g}9E|Gd|#Xs-c;g{aB{bjR~cOL3KcSAtitlR^?QpOQ7;w!n0S_d|9ZD$A} z5I|x;Pe$(a14n>3fwZ(8K)gPWhcQMAqFCd&noVGzbhUX#F9cpI0f8OT3d@SI>FG0E8h z4~7^2k;5P&oU3y|u!i+!Ny2}8>2D;e3$w~B$KRQ zTdW9_EMC|NYr=@-hbgsJ!=$t?+opmc1dAOKHqD8f_Mmj7M=&b-rUjetUS5;Dw@?ie zOkF{#df7oOtm1RA)pK>GdO^)Vqr}iO08@vg9d7MSsR9nsg8d$YzqpTBv)_LEpl-~^QZLvq03?z_oV7zTL`8`2wixi->TykaK60W*ZTj1-0igQG$S zs_Y7j9?UVp4kIVBN1uih~Tyk@&;aQ|H6;38o$R7~|DA|}N z#;ijs@9UR&&Jk#(+rKU#u+kDLd3);1y;Bu4dw6Ta@i#{99X*^;)kl4OtwdG9J@6SG zXxvHN9k6Ez69kQxWzhpx6QC!RLycj`*xer{yn)>~RFL7CGbkT}c!-#G=E{iNw@$F5 z{#=e36v&5L$3R8wG-p>r&@P70!wx`}@N8ftW)pu8JCs~!C;PCO zu|rYp%~9MX#K84P%ao=2{V$m(`FaB18T7u6WW)y;+^pG`LY%dlXBIWJlq9CPnifWZ zfwO^who;C=Tr|X3@jf{(U(LV?-YHIG-!@JO>vABi@+VhOg~a^+fcCn1U8=s9^~v{| z8j(R*(kU0yqb+-xaZ&B9UMX#(UrI~+J63YGiA4tk5h$4pdf^AXb}d^scAC(#zYuAO zMFFvKq!~m#htL-GVIAD`gq?ANjb=Lv5Rg3y-OO2og^r;ht5m^{Q_)AK1u0hvqYfR> zS35w`^3G*G*&O`l>n;Dy6$k0kc!w1l@rcBHRybp=JS`R_1L6dPjsFD44&+>*L~<5# z7AZN94v8`regf4+m3qr~RB6H6F(Z%xm@jg8N1|Egf4OJdZ_Kff8o@aA4i1+1u;Ruy zU!V5IpKH7w!$y&32eI%VUBWcmC0uRF)q-5xr_pHByR|vW z1EAx8FBl4d@EvY=I&lQ*VcLv@!QKw6S1f{cn6@q7!G3Wx@?Yp}+VszzYEQ+cpBd5C zDtuIhlAv-_$wSNSEH+48c!HFM z-xti_X|z?bAggSG%H?j~)uT%(tq`ZKh*x2Nv^{ET_KP(w==<|dsBB1DJ*fH7qRngB zH0ib}5T1lMuocUKTE}?W0@(o!FwSG2D*MG15Vho}x(0_U_hGj$HxOtVBB*A3@<9eR z)r~13<=%AImJc)A{!ffehWI5EmCdl7_?R$^c?B&jLCS95xo*VG~u@#@3M74_0eCk(myG)H*a; zNe3Qdnd%YJKp2kUa8h9tV`Uy4#TH>7$DE1NRGgItNP>Amb(p6m=O_=N^&UbL#vW0s zC9JHv?`1y;rUI&t2u!#M@W>Ej#m8MfO4eI{UvF!=WT5vaYJm<$Ci8(S!F@?12kICB z?!dM#M9bJDY?Md*VuemcAMp0XR1=yg{4J6~Tpx7zTjj=Wlhr!lOq&a?|t;H+_1Q>cnB= zg`fxH6hohV)bEy}y0F$yp!)i;xwG{<0UNbIqcR6wA0So!#QG&g|5y^6z{V8nL&*mo zFYLu{(4QDq=qSKtD%;GJAD3DLHTZ;e-xHQNK^UgRNXOW%5zU~)p~-$V&E3euvp<>fj`k28^$Ik0rt`af>0MV@JF zTjf|_A4^}ek2;Q%R{j&)wAt-!39QOkHdL4i{5a5@t&+!DalOy!Fg!V& z5X62BxM#NNsE`d5L&O9W5NzUDlM4h7!?5p#DK+M75`{U!C}Sl;ZMlIlIAnWlq7ThUJ7N&xM z%0?B=z>_bk^%jDQKliQld$v6x1P!_$oJs)~bSI^j*PvLbzoQCaqNIze99t#{y<+tI zrn$5txWEs|jFPPQZEc{h*63keZ`W30`ZCymt!JIrMw zofO@FFmF;rp> zoaaEACcxTkO&?Ko0Z3!VlWQ^{1Q`VsB~6N}$&{O_R(mAUDaV~DVP;6Z9~`;&p=-|Z zw-%K6xA0{5`eMbN`euJM4v(TuDVLy|3L9WkypQeVSYc&ef0fn(XJrM%3>@hXEYi)1 z9%l-+sfs)+bK{m{@ms!uFXKdm=!N%LKmlzuxQ)OF(K1(H^avM1BK4|9cm36WLcWyL z-BvuoCp~kTtjS37&XSqt3TDU(T#n4& z(j@RB=~U&tp-F^5MjTb2RozrI7s}_1-G96y}Ute4K_1CWs-2YpiQ;Ee`jKTtuD=k_SLiLMR z+@z{G0Y?Q}m4G9Sym)ritMNmx_H4zCW~)ouFtf*fm&W~y;k8~cWph?s}t#+|sf_L45KkgW{Vd4d}hEuJbRL{bVE zETSiE0^`R&1Rngp^rwtQ9%73~ED;D*0B?#1cs;o#W*9$)+w9ma0lx?RHz2pS+In2K zZnvzO@IcSD|LHm7gZ{-I_MdUE-;59Y4Q$grf!@0J=$CaLSy&mu&3E0W?Z?e`Wo=8@ zYcq9ke)F^WpX^8=5KqYZt`|I42rn&XCk7PbCpP4vs z+7HYkd>aaFL{Fi3oMQPEvNe;R!mwkGgelN}4u-`bt+@V}{az{zp`eP!BMH82-Z);i zgZnP*-l+BN?{r+S6Z~M=u`_w`%Bi>(qjRY)lyTj}PU*c^Jo!~YIjiu`Uq0z!Bqq3~ z^L^K6-;+1QtX!SXdpx>Kedm(J>uOrJ)ckzRz;<44SkQJwLH!jq#Vc0aSFKAOqgMY! z|D?fu?k=I9&UPaX ziK18NVD;webM)Kcafyq2QvR`(%dWk9{d7Qcw`Mjr?= zwld|7%~pO3oDM@pg3nty>cA_W!I8VQi?9Ov-GW6yLiU zmp^7sU42Ur-j90w+WP(_3nuN^@;@VA=8Q${1sGZd4-SV6UEYh@&Kc0ChubQjr=z7- z@ghhdgzpES0}-b+qYpG|H8ID#K)kv0*$#c9IfQqa***=jnqYLHFH|?n&fyFuaohm3 ziCzE|Y(47|sDSRki(#NB$uhITiCD-CqOLB2SdT*=Jo2~Y%iqS%C$3Q8+5_-5-uBaq z&o(aK+;;H-+#K1nbzRR12ex0%6!!=5{pET43-ewmpYlTEpewF;^Il#id1<&?C($qI zvdp$bo#4BHchXk2?apc6-LrV)(#I2r3KCaT)*f5Q-3<@JV|npihdbN?=m?S3cLhTx znA2U^2k*jFxnr7eC+Hd4DVr3~AVd2HWZAO<*#{SkJf@IZ9<$^&ET zujF-ADQ`SRRQmXoZYjFWiq|1d&_Qsrs8)L1wv+&%#4X2QKy5!t~qf37r@gdStEl^N|RkqCQFw6b*4a(3@ zXhqTBa`Om8RE-xO%r~6dFi=Q!a1yAfKui^t2$k5aYS4xzrzu}7%=>MOae@a;{y|$M z2kY6mObXEgfLHR{=Vl)j!}V!Q8FZcNJ*)5J6|Q57KOR$j5Vr{LEo#K+gmt(gdC;!f z+6fE84f%qpoAYvdeTtEYPe z+}yq<_e8iO%eN(~olTEbo;;IA#pLnIq@XR0utcb01N~n*iD+LyOz}i#@F;HO4`vZv z`to0n3*yG2c1W;^y@9=FV^e$a%>K9fg5~1wu=#InP94r}EAC$<0q3G9xAP!NdJC6W zrN{8;;afX1XBjf&wnez1?v)cqj=}AE<@asvT(y1mq*h$M_#@sA%JUQo4*ss-VAbTQ zuTDO+4{%gIrAB7|g8tlJd1z_nq4ALm%#Cg%NW6+0wl7V~Ba}7b<5OQP+x;xXOu|&h zMTxCYtU{VIL|CMmD#DcN;>uEGC;cj?U*eN#5;^cZa=9>nB7-zIQ&t28xY$mKQuylS zxE)6Wh4mi&KEpprwc7bt;<`h4&25X=-lp3SAZAJwS2PBH9b3wk(Fxc{I1&G&N%ZIn zY;~|Z9Ha0v_Wz8z>jy(GK4Io;EK%&)^1?3O&(zF)v|0N<%6jakX)A7;R!fr|&;$#- zZ|7dSmReU>yX&kw@}FZo8=mUjqHQ*;3?}vY%=ltfO+ICv_VRf901^cA$G?C4dCOvi zITI2M%^JLn_aQa3{d*u)KV%sh6qf(1w(Bz2a5Y@=GK6;_S-rr)lP!EB{(<#hqCO2f z&|J10<~O|dlE%!|FkDSI?0C4jSu-9FEXU8eri&v&8FJX+!xn|FI5F`3+ZQ2=!0m$R zxYH2xz%@u1Pw(EGE9{%A?GNAn;@&G_y*uF=$j()1?Nw>o#e7}-L(+uFDkpYy>&`EGQKDB z6V3S>9mOL2{p`abOP^MiKqjf|g}o1!vsmq!YcjlLx^pSjR~rI|pv204*f0^*Uh$;R zVJva7q=-cVo>;6^aKoxFwIo|YwUW1DVmWXeN-*%j`5}l<>}N=(`s)L(=V_;U^V8YS z(&4LcE<8e|!yO(~;=r(5Hz0hsb(cN<^^AGC7_VYjHIZarS^N1Qmhn>VPnX?u14^2~ zLFZMxW4et{P}vR~Sz6Pqufxjdp~{EDi>ez+-s0WURX~&Syn^m=+&#Nr3D~$ERl`S2 zJ$}U0e=cZ37r{>mF_TDc4~!;ra}31BiO{Kb2V|C*E9A~@fqSt^YAdCz_>t(VQiPfe z6L0`WFi8e3XW3SZO3GJRmSt{>1N{M6@C3dLCK{w@x*q~9k=rL&Dq`g2S4jp*cn#J$l?;faZ=2c;H) z6CIpZ3|<3%q}%4}Z_#^^PS^3ST>w&#SdgiZCofP+Q+^-FL~!y=ToD+RERT0$Twkfx}iu)2nowP?jj^#m6(oTeyJXn_SP zs%YzO9Ahe2Lcbr-28Y*dq(@|Z@pRUlo2EQ{(kaKuUSjw zA$i8?$YCNU$@iS3@=I~fXD=Duqg9u|-zTWjH@SRQ+_&tr*5>-w|LNJ*EtZ+6r>o%F zRA5xh@#|~vzG2LnuA{(;mD=wR^wbz@%avkSS_F1WEkHA^CJ^BjRZ!}2YtH1W@*!8k za$k#%nnxv`RSrmZ3-dWSoujNE6|iGuo__UC{Pw=Ex?U&o+c(!h{Zk~*OhPIE|Khv!!`RL+VZtg_m&WM#~Yx>tpo zD5>pQQrdOYq87XVQ+)Z^;a0W?Vrs`|Z5m;sKfF`bW0g&hrLg&DBgiw!zso%%mI@OU z+o7L$;aN@PL6m?tsw@9NjtBs8i3k@(*v|F8zVP;a^CcG zqS$5keR(2JExdfv?oAIF5z7AR%RH0+a1Jnd1{ z&jvL@Glg6l-M1oz^^la>Py1wke`cS7Uko46{N9Lnz(ja?GSl@a--)qsBdHq3K#oDv znrrm@T1%0t#i|*Rsu5hNVhq+#fKoSJNUdP_9Z}2*BOn4=)W^Lz1g{`3Fc!cB;`dQ1 zz`lwoPzMPD*p$&KgnV&WtqU-`VB3tG1bqY1b>Fj(B9kJgLTvf%bMO8PT&iLi91#I- zB{qEDgK|Xx^(hnJF|i)a?+*RywV?wa{Xef>M;F@i{N?p8;_maBkIR~$FKb?!*8D`; zl%v8#EPiH0Xybpi?81twl>79Co8p(^qT(snTa^)B@fW+OSJ*)Q;}{RV)JlNz1xS=d z;0kpsu;GONi%#)GKjT`6(+&whmO|Yng>w|T_YAbvR*Qb@sfLBw1?7*mNlT8g%(@ec6KXbocoSCqmQnFq!(s9^eIpeR(0 zfLJl2UW^e%x&ZZ5q@103=;cg|@73#Gs79r}xJN4?%%n;R*A(p@NSqt3X2t)iU%6mr zX8W$p-A69lJohc*uQ3&RnZM(eRea#uL9RRCRe&s9f(I|AhT4CYZ>#5kf<>jTjStN58w?^?;f zM5X$bF34}a6ZI-wDh<+rMKnxr~DVkR|?_R|JjZ+)4wo>!=I#KV*acjo+Q%VyU03N2^^2qFW-D|CR^=6;o%_&)$biGhVb_hHxu z%K0qep%%d6B+7XT-1RSk-7B4#sbCY`pOFNG&stt-Pg73|KX?8U6bZC{FEtYXslp)o5d;A@uYkzxw7SP=()0mmRi z*wU;i|6H*6h*G5()#%cRj$dlXejwZxcqpSz>v+f3Zj85X1Qa%xzp=S~)S^9oyz-O1 z(RPwRXo26t=WzPuBa7HLAOh+9RS_gu-PKw?13y@i3l5wGti+V!G-R`qz=00vj%Ao& zsl_cMI~qWNS_T>MF#MXTkZ1(cOHGW8Yk+|%tDJu{7wUn8aI3Xbg<+nWbL2(4CLl|aL}^NSaCu@9MB2?Qu{{e&WIyUs9a+A zZJ@R2%Oz{ijm?|3eHXfZarqiLgLwXS#73P5f|g(s?3fVtMd&JoQduLY({iGCBW?)~ zgSdW9n3YXAld|B#N1BF|y5Mn=bs$@95JtKXQ_lcvk=kXa@fj$%rwQkgKa5+v2po!r znQ=@-thKc)F(6jZ@@7HHporvuFX|gi+$-?3Drsw7&%_TQNc@*}Cy*8h;p(KkVc7Wr zMrh^(&C9YphpOI?-MS&AX+dW52|zM24z)@F!i1s>MLIOKqidOUz-ldU0~M-E9&!!a z5{X`}$bt}I4y_IUv~+w1;xdV;84)$A8aose2FYyhGAPhLnO zq7f#TKr={5K8MI*j|!wgE!jhzr9044;6WIHMQ1GA%mX@MbAkwnFYswYSVoqYgnibj zr?bFB6u}ZJ3$XN@I^q2b3TtcBpT+KQ$E%Y3dB~9346dCs$yn5Vecz0C*@cr*tI!eE zQ1YW29S@CY&<|&@u61(Ndn58LPK+cP0vJ(PwPU5i4j2p@MN^N8VRtPG#}i{*P~iXO zUvhM~tE4T^RG*}b*+q&7-JyE>hif9P%f=o^xxMTXh~bhFJT(k5cqrsTdSeG`$u|Ti zL8^j+CvK`ns=9q0$aTS?|0?(g(p7*lj+)W9d`DwOsKTa8D`q+%gg5WGdy$G3Uko2n z?UntaocpXOW6AtTHNlfgdnW37)^EpoG-KCtOgLp}=4!-6O5>MI=8Hf}QbVCX3(Olb%(>Q=^lz8e{ zqyxzy52W8U6)-bQf@Le>fM~0qrnxa!3`f~qwA&?qxZwJhX0*PQQHy5rFoF;a9PDT+ z#31xDvv}v22T$5iSIel4kMp3`2{_IBE08odR2OtPVYo2Jt<$^ZYqTj7k-=FgF6Y7A zZ-WfQ*`P%c$MYE1@o_2wJ6E+zWViBb3>rq!F6T!=nUz_a$Mgi%1n|m`s zDNMA?CB@%J4-|Lz9Q-f1iyb8tus13g(I|3g^GRl^#$fP7`KJM(!zN`cjtA0PaakaK zi5N=Ll>0j14CL<2$a%bp%A7+*5qz4_4`ytqXPH|+qIBQ8nZ{T~_y9A$i71`m-7&*&^YD-HS80CxNAKr{SW%z{|9c@ z;N^@ifw1Tz#Ihwc(?m$4Ay4sT1z2O!0p8gS?a0dq!$ZT!7M74GRtr{c7l)a>rFDwU zvGC?;+>en<{BA$b7UHM|FI$o_k+!g}KvAVWr-4gQv7!%Aw}}q@Y#SYIMQHz!T_anj zrLxS+;>24r=i4bQJYCbIr34z6RZ>*ig~4)z{D&)RN80(tbS)(u_?QdF07K9X+h|QL z8DO9@>~I>+Ahp4w>&>3IyWhPk{3ZXxSAIu$RyMt0ivzf*m_cgT~ZO| z#?xEim4Iu?O}GD~a^>){jgOzk(`%XRF|X5)L=-eib28cq=H570(Gv=8e0e>t!eXQv$<1sH$XuuAbd$0}k0MmCr8;0Vtj-IqywK!W7B%T)1hHgE9CpTnJ8 z(^DZw6>2;gn(`|UQd=++9=5{Gbwjm!OZT&yxOt)6TO)&f>?3qj(;Hp{Rl2Y|j8zA> zMu1{nv$!EqnD~PE80;b&P@O^fS;_joX>9aig>|A<*Kw-SzA@p^IBi3tT{G=(7w_u7 zcGu{X0i@&TyvB!-r63T(J!mYZm#_k+v_Q3DqKgV(eFl7TGz-J}V zM33*Ns>sR@xZ>zVXa)>sNrC#)WW?Z1vwH(rTCd4ML+@!bvl9*3d(@<@NR5xH`Ue?X zzO2o4F2YERp)iumq{x8)8MrA%4T~@^o(Ltqh6zjH%L-k=d6|L~{RC(teIYZ7Eb${W zN@=xxI^=X9A<%?)dipR3kG9kJEHqRNy-kAvDaZX_?fv176Xo)V(X%4u02tyloK4J zLN|kug5<@@TM@QOlKM5XE&GWRz7Rn35@tc0tvp=O<1=pd0o{SpjX8M%3|fP^!&?P2 z0sXR?SRLEmV?~FSlw5%n4QvKEgWE(%r5fvWgo=qI_d{SyirOTKdU475s8S<|Q4J#9 zW00Hl!$uauZ=2aCv-v%^HC_~-GmdF$FjtC{Tig`UU>_W=YEEx$pI*P2anBM!{y@g) z#N!}SvBWxPT*sKK(cs+-)l4IBT*hREQLgxjJh38z#T(*GAo*x)n7$t3E^!0f@hC34 z_3#;Yen{c=d%E&}u$sha_B6~*E@i0jj(`rJyidC4J)4bUB|;Ye5} zJJYGpSp4AV_&Z4}mJHa2ZNPn_I@`1$JutKZEvKzr$;p;go zTH#Bx6+TsBo47bl5XJcrSSAckM#Stq5(^mutb^jd9JTHx*DV56d{jsUjhzw7XlwQY zj|VmbpsIopST!Q?^@x|30^tqa_xMfm14rRGNBvH?c1Uqk zT8^Vz@kE}Zh-Q-0pt*Qp2ljFQA75+DIbM{fCZJ~y&wWW~y(3)Qudhc{;^>*!FFN3l z;l`=VPEow6Iq0qFbE&KQEJwcso5V>^a`_<8a2WF!=FVA2drYZ1dPHs~&PUL$EKpL@ zKSNmv)?G-jkYYfu7)b=AQ1rPF0ECF`Yn&dTRep{Z>w-Eb9!4M{oXZy7A~}Zyq_prC zE*YR*X91$lf%i3YI|v&$QB0QMnLCAq|Olt%y-7Tz|2>Pujp4b!vNe zBen0aIHX3MiOPYpPDB-5Q=(Zq4FzAiJcctPxI0dPWkxMSH)JR7a~2E)3zzlHMvP2* zCIqoK3M11p=?26nG+1+Z84KTt&D$_r&6bLg!b3#_qUNYoGqSY;mk|Abw%VXF#bW{p zORRP}B}yKckK_R-q!Qsn)}q(k{EaoC;;57sFEpTaJw3NCau*NVwMKw=pr%ocBd5$+ zn0xg2)t{Zj;}ok;$bUD8>8>gh%@1LRVHx1-4O3W3zUOr4ek{Cn@kYUf&nM( za_vjUrn1N6=$R7K{tnfkcv{5RD?f9)6WCYBg61#SjZZ@n-SHmnzI4Migq5pi{es&H zJD29SZOgZBAC?T6Qw4p_m;&Wtam5fowi`M%&BVluL7+6xW~t7y7W|&|_RyqcIR>+m zF9V+`3(7>SaTl3hNknjI#5ZE>DFt<>00^izmH-q+5l8}}=-Y#p?CV}a;`AjNEm#TC zr6GRFXqv}CFLZqtD*6uQe%TG#C9j>*==J^@#A^AhZ^}?k|AgDOtxr}B;KkK>AB36Wr+6P*q{N0!G-PY=&mY@_X z6wiVa$QzE;2w}Bhu`8_7IATzDY60T;xB892L^9|xcunQBOS8T;KLhOO#2 zs18O-cc6sbN3DA46vbSIKQmi%>r}vKeYS49_Cs++f8W+0W?>HsuICP{gAk17C?<`8 z*0~_X?~!=3l!Q>W=YCZ3yw&py!qxNmc^>|9m&%4LYae2r&_x?7LWX7wXAv>fM9glP zqPi^*7#Mybk_sMznVVLkAyRXe$xt2|xo3T5)4q&tEfjzl&+uuQELWm{c?U=xdO-w7 zXgdm4j8qAbF}twL<7;EM{<{5$nM%1-(AAL5>6|Q)k~niC5VgO&4Lg6aIV&Z%0~ITb z&Nphm)~J|u267n~-GDfSku@CT2IjkbDm}%%i80x*W~r!0ipbMFZk@bi!~ez>Xtsub z@IXG;b8Lu55;2}?R_tcNs6~o0a%J;8;y1=&*x*Udo3#Bb(3|~$j_&ju#e*>KLiF|) zHn9o1A4x3&X>k7+lup}cAWsTHlnNf3$U^6p;uZOlT3S2gwehZ={eJ3KtpG7Vih!Xw z<*`Od;sn(i7sOaf-dR#|Xh~}AXjrkP0;$MA9G8_W4N}M*{SGGldSGqIaS1wrq-j~^ z@1cmajaLE);$@@}X)0u9vU8;=k@1>E;$aaAlOotbv>!awV?FyAbS$6G9TYXVK?5&9 zM=Mu1W{*>T;2Pqh4&j{WnDw?r?3dj-CKa7Xt)1L8odPJ>m)0$4X%6TE@dWGH5M9;g zo%=S&a0A5RQkd_NPNo{WBpL>%KvZD_4@K+@j*dbL53E*}qA+E49@r)5LcA{rB`Szt z50P8k!2ykBZ~_+ z>S)PMWQiv|{Eb#aef!PcAMN?CWl0fx;L>J}YkygU$?%cW<4Xu208o4r)Zwn%>)n{t9&-HRVK8gsk96HPAH||`{w_YGvp%UsmrHmLJ|=G zxU*l+z5?igv|TW@*U~_OS>OkOC0i>V@((7U?Cm95yti=raAYU0W>uSEfE;`$&nYudht+?uX~}?h!E#KBs1eC_E3|iBP`(qmls!rofEf3 zEbW3Q%4PdmGWQR1C%Wm3GT`zOm~T*bl$YgRU(8iDTS-{AE=BmL>0$!3UU{71rO+5= z5K&6wDuJyT{gT5wx#Ghjah7HfB@$O_uE~lJ9*1@+H<15ZxgnAUDNuB5Hf%RoZxArw z5s&9vTg9bWyDkj_34y}SRSpcy_?n=LTYYcmequ`24jYwmM(KukiDlwkuQv)C(QyE- zvoa$oj1pmuL`)qPK{Q(9`V(SJ^_huDk#uFcvgydj@WfCO$<|4;(5wQpb<`-bT)o^r zM9bBw=XwY290LhJH+*j70aUB5#K51v=Lt-qMz^R#N`aXna>q((y*<8uu?si|6cI)b zh5fLF*r6I~28p9qrs({M!}_Q$^=f8M`!%!5YXkuiG+Ou%vQ7*J!}Ed#m+87xkxQn? zz3FZgW@rl#i6;k&8ZtGv^#MT!O$fk`&A0;@6TlH_6k;olB{ z)(J%AOOmK?*tM&%Ee+SlHa0f1#2VXKeZkHLkw2>ZYN#S4Hs2%sMk;H+0R8l&2Bm7U zx3k}(vsC6j8m^>GeX`h4Sn&=mEkR|Ymx&DWGjk@V<*beSXun6|6m_eyK#ki-d6*oR z3cpF%!VqE`<(EvUBrU(hBS>%(GtC6%s-zpEfu`A7aiuw#C|sZ)h=5B;4sT4$R0E4^ zu3{CGu_NZ@gsH=x&`2bXwD!|$dgFaUJ?H}i(QjGViU`UPiik@fdUpI+?ZIIQJ~jY% zgv^L?=+)JR zsF1%&5O_{#g#yqHRKxipekY9F{?`GECS6c{0JC<{7j+)?&^qdj{tWXd3!h2!!d2V? z4sH)ROkg(52m~>EiTH?87}LCX>#mgC&E?at4dWu@4C_~F736|0LYUkVH=^#A*`-ux zB&LP^9!a)t=}I=whU=XB)q?y@@e@tP|91v?_|Qi2h0kbov8jz^fHTSWqtE&ONR;amnuU4vivL zMLA;eFt^yGLTBP^S~(4bX3j@L=%#sk^^Iu8-eneU5z?StWF&Nf(8P(%qRnOiX40|= zere(kq^0`{DQZI?Wa(!AK#Qg_Hj6Nvxup#k9S|<;cO=)~qe2>LgR5eS3>dhZ0`b~e zg#a@AcPmdrRr12T5Ua49jLTf`UR6(n2TI)HiIq53@y_u08SPEo8ufY>pB;tE?(Yfb z-JT$88q!FdpabKAI?0{b*CHvJ@qi^|rOxa#sBX^o`^s;PD2R(!(QnEh#7Y>kH2FY| zcu{25ApnFrpe^A897j;uLH{Q(j%`geGQ7me+ZZ+VCsjp1puIS~DH2#Dl642fKcKV_ zyaSQTnTIz&SMVM;wAoF7E|5iGO>sn%Z5`UoQ)V4A2~Ro5Ix*^uDEa*G47?1B`z9NX zmexom(x}wMh513K*?ZX*!D6$~KbzlSyu@iH2w^6&Ft4RZELi9l{8$-?H*9;s1WC8x zabaH;B^@a$bQL;MU=Yr67~-@NU=ZNS2=EN3P!Y$IemmO=XD*!n-oj7UrR7}|W()8T z3!RoZnN+Nl$${g$?PqAs8kT2k)@p!^)~pwLOH(h25V|vB9^g?z8lJ?CF$usqJ&0U? zxttb-ZfC#iQ;XjjQ`9*YZ{HK&0_%Xe1>Wj@L&08lz|ZiBX1{^e$>8-OS!TpJ5d8w2 zF{g0mZjEm+#`u}C03?wzVZuiT)d|NO-tcR^#&fZN?HE#dG%r5)%E+ms{3ur~nvz|mxp zL2nBt9-43j=d@-%oI2F!BRvakgfWbZ!PwRH62{PdH8u6DzsHJj-ttLa3{?S;x)V7x zUSSrAXSrsZ_+vcAC*1hd;jDp-??mkU$FBaTT@$#5&>EA2!VKLPCNI>6Uj2j;-y?Hj zz?r<`zV1wi{!{B4o$3@b*tgHXzU_W;(8uK``wv3 zwmG`(t^31K&iN;!gtqpL^hX1bEjs9S$gDDzfV^Y_3z0H!>o8~qAb_81AXz`$a$>kMW4s%5} zbAYXtm3zwC_m#zR|GIGMIgj_ueB3CJsyVPd>e-Yh5Dpl>Y^yr+t#2q1`YL$fn^a&n zK+*E)oL3-aqt{^FXy<@6Y`sesNPNU{7)>#!8Io2MKlpy2`@l%a|g3_ldD^! zWD^&eyW=sp+eL9o{UcdJ?DQC?L&jF;F|K8v(}B<8FJTFO$oB>CXd>jgKd&MWmu=AT zp#`)^(2Scw6xI`<*~E=2Q@DRTT3P6Ddc=bfgUR?nn+>{`vbnhqXH&QpdZ$MY2wx(8 zA)mm1c>DEOAsd`F^}E*M-MkRN#%n}K#vTmD!HFhMtAkv?c!Qu6VLl{hIwO!MP6d|i zYCjl;-h<5?kS0bX!gsjE^9_o(;S-}#7{f4^khN2M!E0@#!GrZK(~j|%8!{Sh81VVv zG*eMf@6sUf8OC+K)yWOv|Npl4{$YAn)w%GSL`V@ORTSDH3H~bQ*h+fZ8n6Tgj!@*I zHJ6udt)j%%`f*yofYBx)CKIHVMvg{7O)WOj)6Y*rymubr8Oc9(Cl%k)kxNL+Wll0H@g5 zuDbW)i3T}TJkgYYikNv+Xg&ZRf2~Hy=ep+8I?R5k)voylpZBKiDdZHxi543$?X%AZ zuDx~|_a8rg#rnn9uSX`ej8B`sm7*srnDatM$IqHP$#|fgL3`Hxx;_UJ`$%y#n#9*S z0_=KJwTvoi(G-a%8M*bgs-Iwi=u8eZ3Lv81dVG zggyjZ`Rd>rd6F2?!LXu4*O(7hW<2A`I$TJZAi}+i;A6jndb$0(H!opa8OLHmmmnjp z^p}=|e3ZA;L^5{q(|T?doV5~;d#)?)_TC*jZNlB{YoS55scx8~prFbICn9d@U&ZwK z^quSbkF1{}*POy?3!R>p9Wi$yllNtBRLLafBngXOf;ildf}m;1SdPt*dKTJvK8pLB z$}A(Y;E3;Nzun%%Yz$4%li8zPRo7LU1-Uzj@4FY@^UaI*X;GNGgbj6SZ6iDa4(()ua`qQ<2cqwM z=67Zo?Po^e>i3pJ&H*dSnmTgt(2=vT){2TM$pi$Ek z#is#D4O``>gQRh9Lty54jY?}D;(;sKh*KF(jTr7Si=e@-GQ7L6k0-w^_D~`s4$95S z!ut~nh`N%N=tWI84a8UG1E!z#___4HQc*Pw!JpJk`l^@^@t9V@vOo%DuQQ(Bbn4kJ zvg++J=dq_OpgwDrPv>!sCChe2Kx7Q|KLieR<#*94MB1bGC|#q_3fnk82NKE=L?yzM zgQ;c%ffSf|XG{N6?iQ<97sX#Zk3MRg*=oME7P3Ccgo7(Wux7!+9yB{r#zESz?rPX; zlyAObXy?uqePF2FBl~yX^TUfbyi~{WK*#ydkaSSge^g`_=FZ}j6?;5fJ>!h zYB2g9>fBF8YpiU`Nhd-ZKJ{|TDSU}QT;e(i z-8Xs;DY?kffy5K?(-wwcEHtu?MWB?Rji^B7TvUfQ6V`Yp7}@P`0!0zgVqG*XQtZC?t6geE{Tfg8V;%PN(O+p2R%C+G?K;$tx{*h z$s$=j3E?0t#5wNWH+s#G1)dW;OsrutCsTvev_mrpbyZ!+p(TC}9|S*l=E5Q#!6Dp_ zkdq$0_}*7{-)<%;`!_{}zObnlfeSKTj^Azv8?=`6o>ScMZMI%gbF|#;uQm<_YXWzwjKe7K~lL_7X{_5aK*YV<*gtQZib1) z1Qm~g`^{$3esH5}+#7cd+)&L7hFvs)u_(>pZjL3)1JUBdCPj&y`HV(Q&ac{k@xU_| zcQj5W6$1#hLl0RTDRW?$k=hKi(RAzRWzDsM&3Tuv&MN89->eu42Q(xRpn<9LW~{#L zeOl?Jg-b18_tfm}4R;USdy)ka*~$>CF^+XjqBXgTk0?M^8W=ReBSBg5Ink4dEu>Pn z@e=3>s?0E<4WQI24clx|%gswpA$~e6m9Opf6O0OMVBeB4w(Hu&|Y5r(5m7%KHb<9$%=6mQOJG;j=j@7 zruHiAKlZ}TJ^y~uhL>;(gW1K|-KS8p<>N^`m{=HFnbrembKa6x=J>;p_Tnvj&@9Y_ zX>Wn_Z4?1mkczgIov?1g=bQxT=lHr-1?hK*B+~IT%>^KNMmV$|Qr|wrEdr3i;Tg)S zul~YnNZHMW3t=Ll3Su#mu~u<7IkFnoGPAWdd3m9(_t>nB?N03F7d0`PFq1`zad9WI zR}Nk_9J*=X^__tucMn{j>`B=rd6~M)$Zf0ws~{wltj9DJkA<-~2l?2h)^Q1(Bvwg7 z>;M^#-@;GL$Zf_@j>>@v>u?(-N>u%JBj7PT%y8v`u7xdzYPpsw+1(x8Vl_W+`s^93 zn@`pYRgSTcT1J@p#o(?u%E+Rv<^ctrG9bUdE<}MbKtWu(VzSVeh-I;Mbv=&6z8i>4 zyAtR3EZlO|aEHGrYZnZTUDI@`aFfEVyo&uPxbTRubHFNr@*653CFLz7t#KL+MQ`9O zpaYf16Z|-4(+g(>2St9QHeKA^=lWoT>Bxn51>P=I_0i#y*Z-Hh_wJ(Cf9$e*e_h#W zFKK1Piz;ED3#Ku}{JJODxh0nOj*6_8cGA0i;6X22;i)C#x3kM=peQRM3OISIa(4wr zTKsc4LfyHje|XVz7#N0?(D~P5PZGjcr5J(Ye*7L)FMcIwM38xn$k=s@H}-~Q^hXQEPUv7KYP~SWPWRzrbtVGn@%!qQnZ~crx%vSz1{ZR$5HvYa!mwB|TvsWvWW50uiAB3to=X z%aKCv?4)aX{oJ|dmDbaT;8wRdDT%43lwGl}gw2rzl|6j`KQNJ15=&fYVl8gKsbyMDdXsNyRt=Khjhkj~Bf+5BDkMqTj?GerGO6Wf$f>pIS%ntKaO214hMe zeZc+D5{6%_SY)*#x1G~@d8T=$9%)mdi82se$a&ZW?yQWWCBL}8fsj9pjzapF#pvG0 z<)#Kwfq+WcK)q7A)Yz{wEqwqf7 z#2oZiPoNBcVE*v3+~qU1ndjEybRJpKwrV;sL=$CyfFaU-Y_FL3}F z=`DV9j9hvg8qr-4LD@6i?J?WR?d9#XfDbdzAC~8|TGfYPUdqUe8~YD$UpT{v*MLwf zoT>_anbqlncX}T#f=P*b1ang|8P13{H{~i8yj1;_iU(ET zCN~Iihu;tlCDFTEmS-@$;!mftbW93@3tVQtAvV$n4u$;{PT`DRYJyglJYpF`sKQPF zm6w~cXHb$!QXu6}u<^3ULi1wToL=Po=+{u(IAi&~YnQNYWc=11F59SCfg6Gb5(WnA z<=lbOJyd(9n@QubKHGlDHeBOk;ybT=cq+(QZVf$`)+sQAA>czq1EumZEo=4iCstDm z#R#2^1dSO6z82fLaD9A(MrIkSP*JmqV(U>iu;hGF8s|#7C&-pKN96emvqTeam}RI! z*rZ|lyEYKO!9wn@XWI-vvsGt1gNB8>1s-XPS#C5Vh7fZRUx(BRlZQ#jek z|F2BROhv9GWlk}tDHSkaXf#;Rf;diwYw8ITugu~Au5}+~H3sleQG`L#OrF3>5nCJ2X;oG7 zTz}!YcRSD7UL_KWhviOidUF^_H6b>8$-Zl6eTUi3&hnw*Pf+_{gCtCO-S#l)W#a3-=UZm`gz zG8g?>K!ZeF;%;FkesP+kXs|Hp)`v5Vd7g^&U!Cyq#7InHubak~2YxajQycw>x9Z_+ zK$8N|?u-VYr(D-HFt%;rg&Qy4@WYF-;ve})#^QLoF`9%|K?^a}*j$g>*#4*6R}AVc zk)mGmuWx~mfH4*HEe_FX53y|>cLmhQjCNdTF&5h2_bD+X4XZT56{d0Va6^Ts{QIIBR?G&zf5v7?X3Wc-Z&^Oeu{@(lYJR5 z{M*;c#;2yE1UT)+;;e$dM`qM6>>z@QcML_C8CHbrSTx+A8>j1yGp(5kF1$^0%l2Km ztc)0H^>eAnGeJZku<6sMgY-s^Yvg~hTN~wIZao}+1{elWk6iZQ?#h^07@u{umVq3t zgF|_^-6>9QrDUlQ*$tfc;trQr9kWph2Bb(iK6eb0>T*aD;K`HsLZ`SDg}L&MX+7z~ z(st}Czr?Q+6X0x{RbZcH2IDy)U?GN#*!11w2{Sk1@7m+2*+fO1%9Dke4L9MjSId;( z8_^KW05N6LSv zsKrki+Srt}TQC<1P*N+WU(I#395P)6y!Nrq&-A^}oeM+amwMB9Dxo>=7%P?t-AxSr zZ-~;MOr@8`7b%)v+FEKHdc{&34LidId)Za7Z==Hs$wGiO&}xwO#6aESCt40+L*8`F z=p&~tWWIlNUisL-v(B`bsEzPq#(peHTIIT zf53M-rP&sm%#fI!p&D?oBf2&^Y4JJr((O)aT+E2K<14z>8eXb>3r@mr(6(Og1PK*a zQ6NGmEaF7Hs-knX-+nxU0yV{h5?2nl!kPt*0?{ZXo}?$)H#5$n(M9;)(U-48E@}Cm zMa!qJ(7eFN*JeEChp+ilhMGdNVs&AwHX*Wi_}LQT-GQv)@BU7!l38N`8#zTV1H`tP zDeXUJA~&{7Em5X;+(b-EEz;`u%T{DzUWd?NxuM+F2Ay-zlq zh+M)NPfVgiW~O|Z17mdIk4usGa)V!<4ED(~Tuwghj3PIibn|)&;pd@Ym;+*kOa918 zZ-4ggSx4TULB{M7WPGPinez-51BubM+M!W4UZ}vmG?4pwBr{^5PD^WeGa;fz(UANq z05W;X+%iP-+a|L&gU8<#bVpl+=z@-XIvI|w`^PHY0CG0&DbYzWR$>&StoBtup;p9U zF-q#YDOT7d*m4w&;vXGR$INQ42r2`u+Mdy94aO;`p~8-{M!z6$K~ zZAxN}znT?{92N8Uz3y@<>L3!YiU!mtp9HDq|hR zsDw~)hJ|AE0?M=N)sfs36#*iXXc}ih#k8nu#l$~lf^1x3VOTYd&9D+P;a;ulrYj>_ zOziSzAi*{i-NLhCr`Z|rv8C-;_ng>)p*t@& zw7qZb=rI_ip_2+gwJ1;g0vV*d)hb4jnigeQ{91`XHG>7%aVy8Qq0o(hi{6tl3JB{5SWz1q*p0A(1t4sgl{&+=%hp9vteH&t1R?d~Jw zo`S?(`M2LwVHP$~gJ1lOR|dnwp|d(EWEalM0u{uIl$J6>>BVX`#46FFE0~c(J1j!y z)K=bPz2Ifj^r%k=4Px$s{;p7^%88eJ`wc)1M?3q2H9gu`h2zbY$DVi^Px-K;hg*{^ z%Sw!5TNa+Mk;4E&ZfO#Y+?x#(7CN@Ypv2s%rd2zmPY#a178#sb)F$DVgOR4zoByyb zM~q1^_mCOrUn;x!+kw3*Com%h3YxG^R~Ck6`MCo`L-o}m?d zPi1rk(dNf6jNsJ5o<=Nbjl@iyiilq?XAb$%`QxwNylU2-TX+2A)*7}#b%0KSPT8Bc z9KDF=)J?k<7 zvis(r>Xk4q4;bXqX1(2fsyv?a=Z%|a791XEbu3nZOydzc;!vF*ZH+^Y9+NBFJL9ph zfB4uAOQpV+nUZ2_{Z=G(`bI^U%<92aphVQCG1UgF)|BX>9o%?((`6feblH@Boa1(l zism-#qw0wyL0BZ{Ugl*gT%J#e5_wa8w8yN1Z_;>p7sj#OxA|!n5D}D2%77l|jhn3V}p30qd<^p|R!S;Nh7H@t<-NTta)wbL=uRw_?_8Y@zs z14lYi#mwA3EE=3ld`+p^!(j_jfB=y}1Tic#J|a8h=KSB_x!i~XeuG;$nQW~E&fyNB zYn6hL2#46X_-X!~V}oReXoVDOf*UnFG%w2^UV)0<@t>?4fBuT~DC|8NCnQvLws<8r zt4Vf*q~Wvx1`3dEH-9_&IFnv;k|F!{`h>uLowwxqRjdi)#c`2}dKPaP{@^@X`i9{h z_oFOl5S{j)s#V&_M|R53*}EEu?6w{^y*Jxx+5n%W#^cjktPmx-#n?;5Q@Ba4jQivA zl#cHIV1UIFKviNRiZ?~~Hl%z5lLQNo)PL7li9y(k9?%!%PA*2<7@}xX*N87sgnb#1 zC^=<+E-D1jRS?G9^&E$3yD#B!gvZ*=k3(+{4_u$2<&3489GyCHW8b0Uu`DfII7a|R zk|n&zhy(ufs)4d%VQ75sP>jKPK14($ZR5I-eGRCK%Ij;oxSZ*G?n)>_)==BPZR)YG@>qJ?Dmas zyg{{1D_AM`7V^ZMK zX`|ntJw{rAT3|d>`?)30LFrY}ggZF_KIh$6A&63 z!07>Bn6GS57m~Aq>3nJU`bkAAyQi_r5C7a=_*RwAiU$Ej!ex!)OZkS<)Luxcapi%g zBjissy^Wawk@SUh*Ijqr=#HVWnVkh=KU%;M-(4&SV#c8PpoNAIHfp(SeE!vSN4`4r zjX$=G^H_!B1-3h%RtevWIr0-vd&f@1ESmO~B5@${yXYJD%NW~n;H<&pS1cXcu$s&2 zuwO>8&xYKkk;KC#k3Lg<0|&Rqo@NJ43?M^|9bR6<=-gQvS zIE$7WN12p@ub}0D9L%u}M+`r{-y>8rI;w{G!g9tD+&9vgP`iN}sr@KzlX;Z682*|b zG>bPt!u-n@vG1L8b=5GpzH)2TMGel;TIz?)dZ2q`V1}iCkK8_=n}O=cGUvFF;bNpP z6OJf4Jk{-Ix5sLi?oB0I`G2ZS5+EJMnX9bAyNDaX%9}ZR!4wOJldm0o>a|lwJ~}w^ z!jFCIW3DOD*-CfOnT!qC9RlMX!;DJkRtz)=e(eaa@^oc~I;(UCM*>V>HF^P<;w5QX zY#m2@@%sfJVo)2R{!UA*@hJL|_c+P&u3B2fcz~Dv03Jp>!psVnF<27%)Hi(=?1t}4 zNkMrFWUUE^{U5TEWNZ;~j`AvNvyBJ6eD%pbI02RpzYMFqHhs3#XDT|gm znC(5A|1USCR+M(P?X0#TT1>6%hGivcXVOX&_-79L6sCl80yp4!%=Kc<;Fqw~pGw(L z+{PU+Vlx*Puj#(*g7~=XTfahpO^w|9#^8XrJ5i<KKoNQ z&wcd2vYwx%zP}H=CZtV5*IjU0)M9?}5EqcC)_mgGRAYm=i(c1Hz?_0#nm0wZ)>2Ma& zPKYvIbZAp?|MTYOYEM(?!NkQ#0!#)l_|(jgV+4dSFQNY9Xk$#m;%f^xIn>3C{0|?c znBDMdtJJ#$fg4$mM))uHu*38KRkx|7X@)e)D^aq;WyjO@A;$my+(%wM14hyssZWSI zA#-(P@#l1Ei_QMTp-yX`{sz z#Q>7N@NNtTxR2Idy;wB&SnqB&jHjrcsWEgQU==p{Ssx;DAaNsR_ZMOexPJ!b_h|j> zg!kN06!eKPRopJhUHJq74p}vPr`sK22SoW~;+Q9D*|a%RFNn&xO)SP$kb{KpkZbPAD0($6`*Q`}91V`;LyA3-urg@5D@k-Yu4%iKPQq|1ziYr;J?JKQi5X zUQwThrwh$CVNm`Ji8)}sKrPl*+aQ3EwU-DK^LaDaW-DD8z0|kyihUl%wK7CWymETA zf)tHP-x@i)ralGzq7jL&^Cu^Nu4e6bp=1@8+!|U1tJ%f_K6CcD@E~I4k0$|`00ku$gP8iU#k#Q zrseXiH8>&6J~nJFrPZXZq|S_jT9yp>0hIp`^s@$5w=(I3;F)7C{x_W>omgv^!E}gb z%xY5dKw*y17XGN`3?`^#3>MsUb=d&ZERW!V8kM)+Ib*z|qV$JRxT!L-uo21LDT|SZ z^4)9J(y<|#_8IMO&>B>nT%ww9`}%sHI$|A5y;TeAkNmX2{pWBCtYbDV8-8f>gSTBu zPV-+amRLi|zY{mwVeyd@4Z$TrH$D-<`bm#H`L0da0G!4)vg(wT-Q#>bSluh+&AN={ zdNe2jtau?_5xQmp4RkH;;TMjXH`e+YNZ?EK!+%rE$ylGj-LvJ$Ju_sBnX_D}^B4j@ zfk#W+b0XG&`;p^un#=gmDLJx#gN^j3Fx`Xgj7n*=blJjCVTXZ@RwLt%tykZ=br+Md z%;+6l(4E7Uq-&}KAG+8Sm`fmK8FC721H%wgd~UxGwh*5pciq$pKhb`fsIdZ`3W5V?Iz9ZOKUsEma2AZ9klfr4Y~mvDhLypM8k6@J?* zmbOZHJ?Ol^C9Pr zc%Oz8(u~N6T5LD;%q2rdZDcv;m3z0pKD}RxKl?qIINU=djEyJV5^MHto1Z-x!-Qc@2*iAA5mT7@4ymS@ zq48-p9VC-C23qWipT zgoC(BX0*qXz2C=AC4Z#|eewiG_)?zL+ga2BB5Yi20JE@VjM zk7UwU7|OQ2r~Y>iKhV5Nw`FU#*U%exp?Zew_6Ul=NVE4Gylh}jnW`;G7W##lc|uI2 za>4d2##oufu+8bOSTTS6(fL>(XhRN_Du`+A+9e`)x|Z<==6{YQcTNDzXeU7Du2fs^%cj9^qG;6Sb@;^mWO z%F31dON_Dn4$UbT{jB~=0pNb$npsN!*amdW4V`#0lL6{OkJ z8B;YVCd5Y35{x#-s+$UaVM`he;1|_x#wzi8=agu9{j4!;=$VnKG@#_V(6T@``sQArCo5M+^ zL@bPzrv#ue4aGRtW}=jjm_&4g z0WLH*PA1wk0CI{Lj9m08p3i2S3mqqJ9AScV4M=>ZD+f^=TvF}rpR0Z>GKK!2+h#I| z>2a;sZkg8IdcuPQjGX2#*|JX7%TT^`@LCKhh83Hp*;G}l_CC+Vd1m0pO6vGb@z@Xg z9)(5I&F35RQZswoIQyEJqdTV`_z%QGozcBRLm_^b|IP9eTCSL&jg){j${hda~AkrYKx$Vo{hH&K^+_ zn~VN27M2lGWhNjRpHQE{62oU=Vs-|m6{akHV)gRBq)1WL-I)B4%%uRFxIwTq(8$xZ zAiX5>bOYQr>G};Pv_~S~o8a@HD;X$Hn(3@sx_$Q(;FKylF{E|lb!d9ZDa6`< zyUl?0cA{x%jClA;jXT_b{*wkKtiKe+GWe{9qd92;x$;>z&RYGFZlVcc+4X2fZ6^E< zC|Z$t;*okE5pq0{rkE2SX#aPIe(ZrHl?D$JmLcgu<3H%BYf8gXH3K{Jb-y3>rhR@>^!9^r}H7kT#nJJzv><4U6MB_a6p}_b_+l$hdiC z)Lh7xzlQ{u*|Yz+xfM0a5ycm#%LXXEVi1{)-swgq6=^%l#{v_e4e4C(vPb2Zr)* z|Mnttni{n*b*isoST7~0ps=uR+c&R2aS4|#zHaL~4(x2M*6u$w^FH%`qPfXqZA$|` zxY5uR(Lzm3*CC}G*mh9rHL&@8cj3^Q)WPhLF-{7hMN%P~_}G-W0k5N0ORtiuqEUN_ zi7opJG^LVoDJCd(bUu?0#7QF~2ev*k%vly};J>?<+>^v@p1jw1o|61*y=mJ7pb zv zz<{4M6XOR)Nm6E`)sZbYCj9qRp-EHF_Hg(HxO*XiG=M>`>4K(9LM^IaYxlwFqi)-T zz8T17jP>*AwyQmD!)xjmAO6AG?+%VXIVjpac*P)nC^8^S_dxU&MG9jZsayj>?byoE zgE-6J`hhvITgkwToGqFCbaS?(M_dbm*+0xa@3@{RVPx6YjBGmf73Th;xq*1;eTXUr zL9=U{BemJQQ?a5VkO=?H6jSDwbLB5O6U!7~zTjRi@%u0lgk*dU#X#l+J0|7v@={Vv zWy!ZT^v12fG$rYl&!`tN#G0GfptNRuQJE~HV!af=G;r9?ikr`R@-Mfe7+;kj%eJk5 z6lpjo#R^)G30RY;zVps2ui?_1PV;En{<8hu{Kroo+<$W4NjhsOMsdrj`_dBg)0u;U zH{Ec86@%PAFnUp29c{cU7#ob)xL~JyL03kl=8+^AR}NEx9J55S)bl)^Qm2ugqOpK4 zOBrAH38KqadVpxz3w$YU~k=V1}o%%?tn z-98(0qO|U8jyZ*j3p@}?ZEXNy-Hdw*pp)BWWdP2}5?*ai#-tdh$mp0D7k?@`GIc~e z1kT0!Z&Wce)}`jlW=!GHUsnt}e>&+TlkDXaOcd8z7$l<(#D&z57wLT}{jNK$R=5U0 zPJ0)<|NWbILj9C|zdifFZ_mYcdMsy#Nj8Rypb>q@=}+zi-|4YW)WETYc@H@AUfO@~ zQn)80FZrMhiVzp=`RiSqjv@0NyW-Tj4rgt!REE%iO4rRK+F(m; z9+n100yn)#ajcR=Q8F*hW)UnvwL^KimyL)^gP1y3L@lw`#A%GWf)+vr;=5{?D)pQ& zn3n1CZkl2`k=jySoAgm@FvG17aEy2V{oHh8+xle}b496k|CjKMd>PgFcv?F(*nqTo zTEpF?9`?5_-|d#7XG&q-2X`G`j|$To6Fk%4i6(12 zl~yo;@Cd2orZ*L1FwuE9Q)8Ksnpaf&EzE%T=uYK$9iKr}$;<$)JG1rUh!iRW{m+__ z9kphwbd^!BT{+tp3=QKF6fvc+cKrQ&Hw<4w@Q&cjYUY`(xkiwx;6h|4<%Es-JT(jN z7R2h~{<7uX{71^}QbxHj@N?Yv;?0W203`l_#TG8rVp=4o7Lp%wmp#|OL@|jml)PxT zImQXFNo>^WRB_&7@HYjQ%J2Tn`BML}Aqb)dC7@wh9D+h3*sZz$RV+iW#Dawdh&#@S z0ZrAu=ARI1k3RT4(2GERGK{M(HJLYu>^WQ|Nt?A$w%DL(A?h$`t2eD*auWK~#94`I zQ`YHM|Ku%e|CQ^v{smRf)0OMXW4yXci?zN&*827i*th>^onarI$;{sVm!z(_PbMKd zTJheN!KCAwG~c$+h$Lw^9TP-Y{E}Z7_+o2AGL*%v$s%BZrcAvnIncyL{Kzn%NI~1l zBMoSqiZR&oht{6!1Db}U9Zv&QX zya|G_=`>E>4UO#>df`Tz?3LrAODNd%scyEVqiwj|4)rk=z3nzzVytd&k+4sEpp_J< z3|K)D!`sSgOXIq~st}6PY5l+9;k+EI_}HdMn+Dr%OW`B~vDLR!*oMEsOY#f*8~WP@ zy-G_jE-hc+s<9b7y9#M-I*8b>0J z4V{~NkzG`sh`jt?-?HZGOhlc+;XYmzv_Nv;?D~dhE*^MYXU}*4aW`hoo1)01%0w+T zHxqJnpIbjo)d=8=6@dHVq9SV9ss&9APS!}1kOO^q6CCu#_}5Z|1J`+-gH#q~7;$ht z$Z;zS0LRY??oI1#2X)!1y8Y^Y6WydU87;nZv|%B0$DWwChr2as0{qAw3+`9MWFyva zj=`d|J}yP)P9D8B|2sJgQTk)^KOFGew@01`y%wMuJIUofZzI=%a>LfYM}}#?4wbPm zy>^uK-#yj5CA$e!JQ>*4m`7yjc9E8wF_SWi7W?`L0sWvq;YoU!{e2}jG4l(BCgdj1 zCPMK>FX$N!x^GwOBMwhcD;q7IBwOjRRHf8zuVs(}gI;-a-`Eq|7Y#1UY(&IQVX$VW znrxe*{cYRRGiMh6`r??LS@x5+V3PwI-h{rO{Yl7+x#ykc_iW$&Djbp*aSR)r)VLsC z73j4(XG|IXl>&3IOpK_6q?q3_6P`4b=TIU7T8JrpSSrf@P#b{KF$BaTDjkcws*U6- zG;3|Dy4Leg_XQdM74=o8NV$Gyj40aV9PcUHM zjZJL0OsTa`)^TMLb))UXv~lg&gKMwCF09DNp!u?X#pss)pws3|9lKfyRVJHq6%UgoG-;s#|ppWk%1D#M_A3n*r489<%ZOdw+I6 zGC*^mXGEicYxs|dq-MN-|E}}3rNslU+d6kdW1Za7XKkLOK7OLj2uxkfNV?8g`Mh3O zE+oW(7dd&Fb}_{CyUj|$94qMJ?+He${sk#j(ACf4W7?}rXM(U4hww{zT3L1)u%ca2 z7QY74F?RGo)wcpgyv(CYjhm5PEIT@#Q+bN+CweFuB+$^wWR~8YN#rdaE(YKYGW)hK zc`sLaX`yV)n3I?_nv0(JNR*uerOy4Hg-=Q><(5BNF39ld*x1VT!L?(*ssUD7ttcL^ zAs6h!G0H#c#J(j>t*#;`w*l{TvC7IegheF``_mMm@o|INa3K^Lrb=1U?OExKrT zU>jP}argNxB8E*P;jh~4M%8t*J3@HE_vuZ%{i$Uc_>q&`c%i_l*=eqL&_Sj8+Gtk- z7oK#q#1b=|!_&0YOyyxMdbO1Q@F#Dcdz97bKFLK){a0k#qHLNrYp+kUZb9KS2p!ZN z?+ALAa%AunZos3z>@9#x6`d$12|*uM_F3+)pstKHth+W``w^;*^Db;C*pPh8;9cD> z!4oJ)u?Um^R*OUEHw|El=O#bZ$YkaF1^FC8V^+4^8L)cMzA)lRu}0hYopGAb^!Fv& z#S#K($_33I?(Yu2Z05|EwmYF>XY^eP5n~_aj9JUlS=>Cuw0wgqVYmULPvh#dV`$D4pAx;D&3&&k%&akLp~%B?Qm ze#6L+7Qteg0~77Kk4~3+&@g@u7~89-s-{_T#PS-ho5eaq&*J`yhs@ztfm0LG)D3Da z2%3Z1K^%lM)dsc5C!VYT7ix~sA`-s!P-tNE{(%>4{OP@We|qnXn1}5v1;8^7YRs#% zWPfGnmhR{l3~NmQ;$#}IRnKnG4)#F!q!ro~QybTyeaXMsE4CFP%P%OtkV%NL4k#zw zZ(1))NgFUl33D|jz?B9tX}g|`Qu}cW43(zBX<1f!TOBFT2JCj&op0M?tncF-xVFFv zjcv}@vh`uMRj0D&&N`us|KG@(PjfjGYm+*c9DL9GPhW=}G&C6Cau@zX8=%FuLhr-J zp4d5K;bY&q)`}+X`pFkn@YKDljB~$a`(Cc-J91m!?rNsJiSY25SM7S9WvH0O#4J9> zELD&6cV(P{(tt<{!R>8fG^4NpwWxVK>z-IYz_(H>0Hic0!e)vl%oj2czMfsi;IR9C zcg1##r`NY*hrJcr>xcK0I+?FUoy_Q#E>15t=N0lXHGzom zf%Zz>IeO>-mjrMQksUT@^KZkgiDyF+yx-w}w$FpnCNjGVjz7VGitnN^;qSmXMhqD2 zo~xaNvE4dz%CE$>JXQqGfw0)pIu`YLD{+ym$cvpUkLaUh=d*F<0 zy@4*-#uqlh;G1^Tu~U7$5K{@E%hfw;%+Q6Yz82$$(zWR4B3}4$lv=-Iov2w#a zFT6Rl1_P}D(zq(@I-Ej2w$O8MY@3-JLF-**5=00J621O87nK{U1V;(SC8Hm3LI%)* zv9|l=5@ckoMi=4Gi`BTz?H#61tBq3g2E3(E)e|MMH^+1`5^_MJU9~Jy01mF3Z(Ip! zw1-~zw!S03ga4wIamlaJ?xsil6VtDmm{^K=fT@;^Ix!=w=d171mg%u$9L0@|RavSUs7E=5Mc3dZHF(AERpB#pT}(7iX-y4nIWKb? z(>CaMc@Z<$=%AzFg7MmLQ@idui>G03z;5(YMsT#znWtTH56&I+wz@q|?qA`%@}A&SyXUc_>tsu;PkOIbIh2b0ffB z6ZQwngu*#7VL!g7|GRQYrY;J&EXo4ktzfQ<>)<=seCe7qhweEZ;+FDO>{u0H9oHhqVLRJ&B=Y?3#(M_)kZq zC{T084xBC3K ztPRu_IThsHd-kC6iH0moh|z@`tf${8B7@WrF4wXXK3NbC0s_j+KI2hV$SFwSEK=Vm zn9agpk$5$x); zj}yF)zVAK}J~_z&%8q#d9NXf8dwt%%sbSc%(Ubxes9d-YgG~7fA!zn%6qlGmz1^q5 zD`NpDsxz49xCQ%5S856F}v$<7P8ET{R3&lk zh`LlR&p4o5j4DnaqlLq@o*$M^tSKp6+Pxq3cha{R)wc^(VN=G}&MY zs6*KkMN?GkP>;?BF}M|E9H-$#e9172DrH_54K?wGL3#`Z0V7odO50ZZF3&5aJdb@`)j?JUM&@(&F^Y*P=njPEIC{c_7u zuVYd4G#utMdK8!en|=o1oyDxIrfFj$1B(Smj!i2|wlzI3M%zmh*sHYHwzd?!byNO= zE54Zz<>`FaLLA}+iO(Dd1}mTFf7p7WHn9TC$#r`&z_-KxVn zx0ShkLCIWhQZ?3z8=1MpmVFu~QY$ci#3>{@m+jcIOg{O2cRezDeAjGmc>+pxg>7fU zTixsZxhuZx(uqNcrU!G2O#_ic+Qeq89u5s{#_iJYT4pS>L*=BcTR_1bPgce3f^LZ< zr#zjZszA#)+F~vr9QOd%Q+O!}g@cj=Vef6muDl67?(~jVohjOI|D!jkvK8C79e?VZ z_HpZr2r)A)WhD%YP)DcD^RzqhlG$18QT9@twM)wavAz>?#8a390LI4Ff*XI%d|dmf zA_RMZcE!~EfSIB-3V$ctx`}$Xo1a&T-(-DtxDZ!%zSz4lb!Fw1WCE~)GG>J{SqY8B z(0GA%rQs}uQu+HAa2cU1v?j(y%?!AHF0{th)|V258P_y`ZW}vn;&JXGZudQvK#j-OFab3{Ug5Qi;sub7wAv~#plyRHXTtPhQU-{=kxROO`4S?=a*>P0yOIYp0AR>;tpPB!%U*kJ6AT z$RYZl*3C^F5RDB@)8tp3xi*4^b{eELSmvV|P-jn5o!ya1{FQk4r*Iaq)sHw%{2l+E zmZXt~t`${DR#=$;X<@wzs@ga8A9W$l&b85WMldmV91)m>6SARw?gt2{I zAT}#iJMF&S7^{OGN9XtiPq|uGnk-F4E!Q#g7EjgoUZ}f)Z(hJP!P-wu*(z+g#7$pR zG24v4`ulRHn*|4bl99XdKJ?H#VY*l!P>sFu=Qivw*trrDi!-|;n|;6b#7aGm?w8h@ z?~2dcH`Pz~c2?e7N7hZ1ugOm$;3~F@2?*WDi3p6INYX%dp2nHTY-(5qoiJ6lk}oU2 z77tgJTK!qKya%F=P4u?-X76Eovs6C3uvTF6JRm4q@O$rmat=58T6z4bi&^oZ6adz{ zCXZh8*NYY{VR3seQa&+B`ShhK1(~YR5D<-Wfap1dpfd=#KJ;z3{)rBb7Xc+3MZXeI z>qz33pQmk8$-~F$HRYDcu%sN)std55^l~XF=E^r@@;W3( zR#N4|4S`t9&SkXt(~Iq^_}W`72Vp!Uz|9R+;3>*fq(q1ga=}pHwykzaLsy%M`;YV1- zY1_58={A~IkT6ghpEpDyoYM{+_V(kc7`@#VWa%s|`PDI$ z{0lO&qs!tPcI6XfDLyOPi>d{vG=MMA9g3ixplI2t1L!M}rfyPJEjfq;EXm=@69k<) zAX_)X9=`ar)yi31aKQyJ!FYa)UM=Jr`og?ruhGsMzZJD0)qZm)d5wVHg~C4UF;;Q( z?2l}Pm(~f(+V1gBZ~c>CBx_4_uQtpct)D#qk?1xRJMGdjlWjtH&AUK5)d$=&MS=3B z{yD1Y!O2m8fAnHDSvnyt_LVPXSS*qzFz$jAh`=ZTtc=rx5_}~MFkLldz5i^PdY2ij zqS+C8sCU%ksqcc}qWI$O&OJZ7|K8u^M8x%(h^nl&bLZmyuV4gi=a6FvId})!FvD zOmQo~dV^Xas)#8v9co~*5%mTWZ zUql?W_mOQo{?b@VEe%5=6bZRDQyu);gX@i+d{UP3of;&26oJwfv{iM{(^|{?hst4} zAB{5GU9-oh@=5Lznk&Z{p(D$+WBQ8CedGJz@zwV`&<&Iv3+HW61If;U;&hYkyGx+~4nA-N2uD03w239?BvlsQG zWQVy4Y71v1H1s{V*xc;+I;|j$m`bW+yR%LRq5&ueJ?3CVLyWO#wM5K)Xrdm5`*YA_ z|I=Lcl1cg&Xd`CePE!PQ52gO(wtHX8QC8UM$kMXNQ@-`tFDV0ww5W18tdez4|S zR{o>6tXZ1_U}Uar2YUx2<0|J50;VntN2gx9sc`{pdfBR;t{6QzE7h1^woS5yX)Uz$;TYuFi3eO#` z^O0ZWx22aPJk%0!>P_X%Nvv|=&&wNy|xgTID2dHeDsPk#2yMIWQ3abC%_FC8XIZ8_c0`R-?5f8cYi z#N^Ck!M+we#=w9V{r6aV+2HW9C9L%LtJ`<2>mFV=#X4e52-2$CYN%#!rQ4~m`Z%8L zc~8hm3S6ms^ZMB!#_YdtZV@ozkMVUnR7U*+1eiz{O?o74ez=t9H8?q77jGv$7lU=6 zsp>{HQkJ+(n{bw@Bv9xk0d6V-SVD>Dr)GC=Kth@(Op|-crnpgu!vGpZI{nABs(I#@ z)&3{NnsCkutA+`D76h<;=!(IER|LjPloiu;BWvR)`viPwY2j|asCA;*rKV5HcZQ7` z82*Sk*yaabXQ zf4W&-K1XPkh=Rnm6b`=>fO>VG*cg^k7mUUc}+`(~0<9~b6>eIqABvKU@H+od_b<36uXibra{x-BbdYeG| zP$s@)xZ2j1Jy$Z4C0gCrT!;}oKeB)kcC3k{m;`nr1?Aceq8ko_gbP(PE)*+P zX!aoAFleJCtf4PRYFfA|xHI*ONV6SJ#+ zXaQCC_N<@v!)8w3xM1{K3-+DknM|HSBtYSA=XbdC_E+w{`}!(mNCTDWxqVh<*f3SQ zkcPA0O$+rfB;MmN^D;1&bWHk^k4e@+#h}$cj7lub@_CjD1smF>jVr)8%KfJhoJ>bg z0!@R$0u0eEf66miXn7;LB5SL&_E0ry_f9oX4~wpWot&A|I_gd;X8!u|YjDJyZ@2R| zp?^lu*DwU0>gVdk?Eb(B8BLw&=Upu3cnDk9VP7mfsF|YYZREQC9mC58Ph4^Ff(@U- zrr;-L&cb17;Ao)GQ#y=N^yWp2b{)ImDzo&wa@|gQ4FlFlMq+>pJD-VU#l|pUxLy29 zRsUiCZ(Hw8znH^UHdMV|kX)k1v~|=^uF;vWg?p8YbR;9 z(+q*L5?00e0D%+Q7hkyRizog8GZ$|7_}q)7DZ&PZ!L)d>%hr1aC5`VY5ZNcYG$6v@ zQokeM5cjwyXIu~pnV?4w6d8-xW4mnTqOgDK*cq6vk9OLoSgc2HEj(IR(#Pj}C5F-z ztXj_rT{tE?@0c5WFd?-b>$(H1!Z~iIROHIRv`}{yNHwfIs`r!+%M48kBm@%~UoAN_ z%(P{-y0qZQnAgacHa`#t5q|%81)ncX?R5T#;F>aW00Wc{VJ#ssj zmAQT@(ccI=orDVz30(M-6Z1V++5^wc!LdtRKVk8BKE{0LuWk^-JJyu>g6Ex%!8 z%PA{w8Am+uzs#KVjQ^|+dKhaJ6lqIhVRgi=l2RwXl!nTHU3V)@e9n{`;8%Rap{mYG z)kuc<{RnWb8h~%KCA^!@KKSKzS=6|voNzmJXyju4gbuWI2iH zf=cV^Ft{8L?=9oY+{&G{Lb++_&Xlwu2)+w!3K?m{-&Hk?_@&BZ@#px(_5ho#lZ&_}P zjT9D4+c-G((BPNXufL9D+XGU^s!)yhpnK$Bxij;(2y zOGHlJHrlU!nte>@Y6G~#&9+{gQ3t6zhpC24eOZyO>1q#Fk)+Jv*g49r2Psu5tls|S z>Wg&7#EPv;H*DSg0aTT%o&|ZZsXH+o?X?Q1|Fq2e&a=GlQTtW{N-Jf9^Q=-wPyg>z zuVMuZf2+1K<5BCP4dJZKXz~Olm0<7!qfjB&=v;QT4Wt|*e?wN}V+_BdBPkVV7SL9C zgV9TG*wlU19f!6c`5T1=*dqfw*t~ojb zJK^JH6}FHbNJ}?XNLVn-p);Z9z!MY;e)-~WXt_An)&o1utx9eZaTO3}9OaY_E1lpk zQ>6k|Ylh6&IIBS7w&;qTuBax7Vh=70d)fpD#h?4ch4Xf;ocF<3a4Z^&ae1r-I*GX^ zo#SrBO1Viw1?l73t~ZwW;0Pm%1wk=1my@+h81Ya*&fq44SUVfmC_SD8R14z5v($Y{ z9x^zo1Q8cBN!CrZ3>*#V0ZLti~w|^yivRrl^(~y7gIM=kaSt&Qnrn!$aGy!f9*75bd4$IA_i#n}?~k ztT`{{VUYV@NffP69CZ(8AAEP;2`e!BvY-1nn^uu(+#=m27PC!dES?kXwhL)um}q6v z1!Hoy-Gzq)6E2M$&C#Wm$k7FyR?R>aj3h3W1!J~l|JrZP>AvXl1DIRlk#?ajWZ*_z z?Dko|ykVctt@0&Q#PFmw+C>ZXH7^U@hPa{yXn2~18?)IbImh|-eLOXfd(>e3sTydI z5LeT6T1-2)Fs+&8Njp#PKXCdI)We^{mG)QQkn7H!?|A_F9(HJvwr|j-u-*ITIrt}fk3Op>Og{YJj z3>IH_tH=ZLI5RxbVgLDQrjb{eX*>8*}eG>%<2B| zRTdNqU2G(OC|0vCM1@>~9-+gBO zLY%e55|ty^eb0u**Su;97euW&`2XB|mCmGSAzBW8y3pKdXPl)jPy!W*+Ugsm5B_xB z*3obDjZVu@W)jTU-L%;D1yLio!J^TPa-C)x&Z#0m3j5X@?C0v-!?^@hhR%JqiX zuT~d?#(9>Vkv>jxQ<`9Db`X>d#!W2;0_{W%Ee2gSnyo;zKT&&vKe`t`_}Kh!%;} zvNA$PIzab+m?x^E8osY+d_}0w@y|gWVcY%9I}WY?(gOpV=G<{;5T%|kA~&)%I4?6O zRs}1TKFC2yw#4YPbxE%{K@5_KwOXA@qKrVne~%A4A=S91{z}=nxy0dr>SM~Cvsc>2 z%|_0gH({ND7CAQOP5MfK=c#enPc?7Cm8$!An9vHIHU6`qp=r;?o6*REa}D~l4MdVw zOxBcC%OHbND|UUhKT&jy%<}$$Ph4^NyHDEI`SG^^=K8NZfF*C14Z)}q|FGwxvjX!f zndNO;Y%#)g&ZcICNQFRAYXjSQEbYk-rffU}YI@4TQAQxVX%lK{SK(0cj&_v5zCSyT z^D!cm?48ysnN{VCpJQT`%um*he*`0uX&WBccFzmBh#h%682fDl1KQR(=&&b`POh`) zQr(9MV=e1J%48B=6)V_xy&?9UKj0p^uh=#^@7Gs$|G*}}U=%0}3)}Slo&-?f*9>KY ze+!z=0-pr{ZeZE92}IgNj|AoIq1ZZDHi+u2(WAY*4;fjTX=X4w&Gva1!}Qm#b-9#n zbE)ZjmoH^wF7`g;NUq^BsntBLZOYDB;}6gJ@!;SE0-)yA+TMyAa0g+m?>v%P$wpTk z9e+oVf%`~(bsn_s1bai6hknBpM^?RRWp~}>2l}qzTGJ@Kma<1xCzwjg?sFwc0PWCI z5^t%Nb8BU8VVnlh6>BN z%V7Xy4<8=-@=t^p6?~1A09nl+%jpn=qD~RS(f>La-k&KvU8E%ss{O$Rwn9lTPN*I- zE0f+>GASw1jVglEVub21FVVyB{?Wgx{|S_9vfW&oQsl$k?-ro!wY|*n$VUf9Uf7{M z4KK?~>!0TMf7as~e0W-J{@4%aL!Q&GW?-tF8}@Mu6uuBUHyG`^)lI^q$@mrmIkG;k z5_F*gRnMGRT}8wu`6~brz)r9_%QXpK+XqhL5ZD*)M<9wk&Q(9`KTgH8*ar^@I;5!b z7x4=bta>r7pmS9W?3`Vr-$LFPk6oxPo60CO*#|Y+wY30NHzG*d=z5i6-zjhSQV_Rz?4ZEbB3Q0g~nh=rD zrjr+K|Jsdfo_>{`n8X9VwNQVunT|8s_IJ|Gb(jIezGi1JO~VyNQx?2lAbvyOdat#sn5km)~YuCJq+R6szU!mGcJUaXfqetI3{!{MH{o zHvi9W>i(fVQ$oC{@d#9V{Mr zPp=t$8qVw@QJP0B%>5n{ER!YHR+Yrsxsh1IaN+sBUjizYF|~+kMb_PYq#D3K zXY^e6Dwc50oYrX8E%SHJe5d6#)LJlV(p2WnW~efp<^U3`VR7WddYP<#m%VOYZ21qA7-pvN=C++0PbBbfQ=ROQ=b_YWPuC>3QLHX=hPqH)`HRlknxlQLyRW})#>m%6; zAYd1R0?Mx1;mIdId0qj7mvC}0BQPbW1^YgA1!f@bn{&sKH^ar0)#89= z3tWR#MJ1`?e*dhn>2rq?uV}F4WDKdFXvoI-dgDJX+HoJxR@8!7&iX#}$b}tl3YPh@ z=7Q+KvRrnWRXR=?{o(wvmv%TsxcltAyE{MLwr%(RRsD0#n$f&aG}lb)udJl;r7kMt zGp#lc-RLAcohl#m4i=bLVCQ&NsBxSJOG|f$;2%z}`?@<0ZT->%{YP&bz2M6a41DT} z@mF4m9B1<7`0c@VILZRuNb^q{3m!z1$^ftgApS`CAl+aaIKOr}aTq6yPCBpp@;gqu zYxl>_T>R9HYrhkFyS-`6++(z}&(wWy8hZLoYm+38lp;6VOn1SGICXi|kvmsSd)I;m ztGH22%HE{yEZDqA&LblxLLP&-V=EC!MJW;wM=qk)Mm|~#6j^MqPvzK{?jec=H#0ic zaA`!28*sV^%G|o|z2nfTKR;>P=w&~CtbeMu0s?|qRp%j5$&eKvq>36fUJWt^(Y4u0 zb|>%?p|^XB>!K0BFT{F|y76*6txa>2Do2wjB@fukmc4hAKU z#$W}^Y39Z-@>8gv_}ZNAi-FODN<)9?qgRaIu4)PnVomKXoy zaGoHsET{MepYY?zQLw1ZV+v%jgR~%NX7NglKQeY|T$p+mZJf|@>wh!tt9O~W972GC zVZlTjtF22>h+#NB`?in5&wYq<2w#4n|AcLG`%p&lf3Z{z{~~LGtaLGaANczR#m8m* zU!oB*U$K;ykNP>|9g|1-S$6+jx4(Tq7cG6ZuYXN!_`#9b^wvDV@aGw|=wRYo{^juS z2$Nbvk9|ffD%P*xyn9x6G23MlwPumus$it3NyD>M$T~hmy3*DZg1R8V*WF1jsq@V1*X&`=h}(Hq3!vZ{~qC;;Dx~ zrps9P19irMmG}c^jbQN;6Gs0N!_+IFAn&?q`d1zpd)1%agb#hARn&y=AUG6KzRotd zf9Uc9v%aR>#6|Qfj~(^p2M)aZrak}nO?x)a+48^~oUY9P?eYWLFF$b39ZOExHuvLK z%>4G88Gpf7PkZpOYc5~dS3Wz!4{+aIYkAY~ZFWa~P(76|LrZZheu>i~-#TeQok$(R{Qc2)?*G(~j?q_%a`n`Mj=cn8Wef1}O-|XWQS&Qqgo%!_VrpFc; zZet(t_r7&(?Rk&-88`6*ad~*)Bme3fmAy0Xx4)k0e`)#Exc{p^(O=!yyr%sl@p$)- zvlp$0zSzAbMb-Yz?pxm+X@KmhKR&+he}#nFzd1Jl{9kme!1fEonhNp@RV=!JzkXq3 zL5Sk2Uyw(GgnvOEzaWoaIA{xR{(l{Le6w%rYscTaW57fk4F~Ql;8fD%POVN?R_0q7ZJ`sK-i5 zHHx*UD6zKIo_a7M2LeI}S`m&Q%FMg zT62!eGoCT#m~$5W;HIIcp8U0wW3kw&!>%84ODuLgzU=bBi6`K%%Go<^jdjVW9yVm~ zj|$TEukHGL)@^@yyCFI4z$5Q$cy!9`qq`b5421z`_+uU zJlucWN2LQl8=SH0Z!f>{`sYXg(VAQIzds&%$9*3i{m0?>SDrlfhhG0YdFiFc{?L6N zC4c;*W4;M*Prm%upC0Q?_*rt~%`1;FJPtWg`ogb|F+4t~WAt^O9z7?`v$f*4Urx-E z=$9HxG5;@3(X)*&eJsT`UVi0E@JI#zFTo?lK)wWzFTvwW=HU~-FS(*GjW0=Xsx-c2 z_o-RWmuX8%w)rJ^q`J$O8FY%fd|4VuseXJ39$$jTm-*QLAs;(jvGb~`pElmPXwQbH zugs`@`jwTn&!ji@UQxfMZQ`eC?=KoKbMNe?9n&uJK(`}*s9#4+F41SYuHHPaeDk=H zYo^o=j#d41%Ekvv`6zz>hQ6JC1)fvASYNkf{JI*CJ$cfReOqp?Usb>6_O!&unTe05 z#SZYBB)=~6OPujb4?UkgV6K;FCuZI;W#d&D1EhIP&zaXFyUV18UDq9$hCdQl-Sq6$Z*<^~w6#TN_PKiUuH%yP+wjIsOUG93oWT*b zW+V@0R7{D!-01mFa>oY`_BwQ)SFmj@y>H`HRXNSeMz<}i?pE{M&OOf!Tv)ez*IV;q zIs1P(!oKL(Ga|hPKf-_>Pu|eyre|X{f6SPDaV%r{JJ-fIh>Y2vT|2$do4Mvc&HI5b zii$I4U>NKCajldFDvpe+IAT&Me6DKxb4|4?`O24aJND@B0sDWMgR#`*E}W3K;JK?O zKX7KBnxyVqZXS!cJs zmi^wfnXNxKFpc7#K~sqDEi2qRvygwT^5>k}^{6>dwmHk_;>{1oo2NB=zejf7C)vp_ zvZrtTaM9ZzmL%>?RD1_-T3?)5_i5gNPYbpzn0=eQtrc^+y}DytMaQ;kY1=PAbM?OW)?8lNG@~?q zEnRbORlK9BqB6Jr@44-LeK(!?gGV!S-}migs{i;HrPXuI$2|+$cV|}qYT2%Mw_(?R z_l)_E{byFz`6vC~zAXCaS8qwepO+?nySKDr(ZY$Z?`Z}C%qu@qTU*;8m7MFlO4$qN zxj`E72~l-#DWSmEw|g%4&n-=BHsvQd*is@RAT?HLjO&U>HEUr6Q7Ru7mX_Z;|QhknXzlJ?GG_gn|2^_xX0myGBM@iTvp}3^e{NvG2PMcXaZOoFNyt-=Ddn0GPHS)2iHxFDhYVn$f zeXCt|6gX6^`uI0Jw>J$~cI!mdtbTv*>eI3h-;(`S2ZSI{npl4L)K&RGBGxn1v^Hf;f; zQ2R%tJHAr3bH-)KGdI`fZgU2lQF!pd=|oGSRmYJdM+oNWi9~&J(T*K=eCvr#Uwiu9 zZ{PU+57*5ouYL2OZWZOLR<(U6WhnRef`lgf4)gx0{kGSvssFEKx43Z)Ij;NtSqwf5 z;1gGVdN#Sjv*}xR>^Q!LD8o?^4}mYACLaKrG=3|)@msN+<~K5G<#hj3QBk=&Gg%Of zZ~PNa|LmfthmCt=!_S_%=r6y#`<$Uinws*<>lV%I^``GUUqhsvak>XD<)6X6XLlT~ zijS@kU4{)gZvJCKh8(0luYPyo>XT;9oVjoR{>dNS*sozb6q;7h z`eDgwYZsU8{9ky=mK{5O4zVVOQEE<-w5{fb-BdN5Atx91w6DH?%HL1zcW`X{$k=uu z-6c;KP59Om8`kw*d=*8z_^MIkez*G_VC|#*4-`DNX=}a@qw`W$g_D=gdu!LS-Ve+j zWI-bByrQ;YU219<=ATegocOG`VEgV~>oJrqTef_>dC8dV_kMWezJ2>9;q9@5lIH3S z@2x(iX&Yq@It1_NLPtAr;0lGJLV)4+e9WmwEhdrk0iKjbcEni~x~b8;sGJARIp>_% zBp}~Xs0FNY<8#w?7EM5i&wI4z#1;3q4STaM;@AYnu_4DjJ#5GiZn$ga%(kVFVtk?J z%XvTYSKnJlV&v27HNACRhjqa;3kE~qo2#qqz{P5dM$GEn{S83R+!H6R`1pk7Wo7vN zyT*;1w|Mc_p@q}dV#F;aH3tu#J_o^|xT9nCX{Vj$KKypy19n;b#?S7erehF?wL<3FPgAu;e-Qa z6%`q4j~wY6oB!$~S>qcAkto0z?(Dm8z)$`;Zd+o47wl);oI3dBKe;^bWdOu^77${O zt?S5|T=Cp<=f)u4$JSMB`uOAXm)#2d$PLYY-@Y;Du?dL*S$FmHWH;>hw_H7S-{!IV4;)B=x$=uo^yl#S{(bvaPt%xp z-Jg|)vA5s8`R%^hb0_4TzO8-c=Gv88Y73W7KW`ge(d(VQ8H9*LV&JxI+i3Q=Qjo}0 z(cJTTKUGiD1JeEa>I%m$d{EFw27cXB~G9m9r^9$}8-?$yJ z=UZ3*6)I2LymROG&S-k#KeKvW53d|TONT z`s;w}?B8*6n@?EVw{m0O*z%U*yBD@?sm*;8^NPWgVjzfoSwIjke(}|%OB-+V(fEb) ze2#nFYxwt_z+SwdZP<6uh|Pa&UDtE_Pd#N$dHI0E1+c*6KgKscu(`H+On!dGoc;SJ zWKGT;c0GMB65YmoQbl*XFS_Il#}HlClBG+#u6=R%0vLJi==b_2M=hUTIKHvu<5yN4 z=u-2Wo)cq(&dA6rN}tcE6wSSJU`cK#ktHtlMb+V@tx4tjs_!MSypbxy8Qqy$0%QXQUx$`^}>invyQ>X6i-<#8?D0UUjFPI3? zw+~&qv15E==39M}Pebu5OS1HApa5iQo`_jI^>3eB{)6rfJ58u^Leu(5!?x$c=i=SA zZLjQGSv(={tHatyyc!xZpyPs*Fn;PICWR1C8(Z4n=-#l^*ZP~M``>+c!uav4Z@uIp zLaBUR7`Lmi-;R6FjFnXv_D`O@eEP)YX^@$7rQE;o+}SGz*U@}}S6$y5k@1F0FpBuu zz5##3*G>5kAf5ViyGzK&&7mVy?nnHI{q*&Fi;^cVZ)tjMW7jRP=wx>}%$6;KVZ->v zMGK|;WBBH8YJ5+5;R-Y3K7DEwd7L`sg?~1uNI|-c^1< zmjGj9KudG3zzV zzc*e`l)QfV^qa5W6@LJcmSKA5&RX;AKs?k#_rXE%_hG5!{FLvu?%Y{uabNOLY^~h? zmxU9%)YK;v^)1DBE{tb8$H0rz=MymDMKsT|=e_lypD(69diuXcRhuvK_u)naz$utS z;^ob?@hAG%uRe1Q7)#nP;60^g@lpP~W&Dwvxdkavb)s+g1B#)NQ7@ha=12nxB%U@2 zgfVRrSp4}#@uIA}A0c1;{u$XDh~QPD;{!N=4*oW{8{E^(2OgASK9!H8s9_1XzJa*L z7o&i)8nz?jzbJOa9j~v0OyZ{wYahJ?z=5yr$>zkzihXt8^Apr5e_gg_+9k)+cJ$x_ zeTwRap3wx0-VH-P8JdkL$kFM{aGeGH{+6c@8UAo+rw=`YQbhFd;>C-beoJz#r#}X- z&uSP%H;4gcV@yzz=VmozKTd`0udiQPR<<4#2k*x3b zXu#>di&fsWd(E*!IjV*u7r}$(o(OWB@T0|jxes_@YSGVq$pHXKY~k)ZkU#wNzK60F zmB>phnCc(H@Id#zL6NWQhwEht9ly zSM_kPo~*pnhvk%klTaZA6G8lqm*WlhXVo^gjPugVuf%-CF94g_w=~L%;O9Va==%Nl zPm3+M;tn`j^69LG(hG~?mvQvjClAZ{0M3Z)4nVsUP)0ZqVv-<1Tv^?jM(-;Bck{XQ zTa9nrQ3a0Y`~c7)@&{vR*t~w=*>g}+sMy`|IP~6-`&?GyPk;wSzO7sFd`vDTKOi8P z0D&Vlo3@VgGQSjZI)38B!duNj*8k*+g^|CF;>&Mx3rF-OSzLm zEXfsY`R%vgP7$ClKRkWSR8$Ty7PC2m;OcMm+gWgdr~)wI^J|9fx}PZ*BewIDfb`($ z@4x^4%zrcXCHUGMj={{$4QQ1%c-c96y;KgrpA#FN_LWKVBm$tiH9(ywS<7S-=(%*ZK2)&q!x z17%-2tbKS^L&=R4r~GHrrn5CK3?&A9>)WqiwMQ6})n4dLlx*9)xnMss3}+3F zK6C@|{(A?(x$7`miUHmUm$fVLRG6Xe(V_+0e$oL5p%Do~`vcdz3 zj@+}m*Y9ZRc#tulVMHviA$uiJq8UZ4{#gw#JjRy-B@l&(Qus?4+xR9_eH1Ev%Cg#(-j(?mJufE}objp;+zr5Ng&zM=jQ z;jaG2s6ugs^gf~#9N_#SPLL)P{|Y2p{oOMVPGa+$o1oacUABf?X1YP8*_{#*_#~qC z*a$KYCsSX@I#R?I;SH9E;m!5mES`Q!tZc{Bp0E%IQ@p0fLs^MFvL+$~##J|U{khX( zua=i@gxn3!Wx3>I0BetrwI++aNRa&FD|>y(S~8n=mV@bDMjVUyJ|IE%#(gi%+`4`HtWxKtPR4*2*2u&Ta&jftu807b z_`Dk^YGnI(U2ItUO#F1(_Q~losO-580~ur?Zq^OQzW?m>{D_<ZFp?rDraYCWM;<#ZkV1Y=IM^Ra7_#>dTY?EJV zNRIYrU9x5S_V)j_Su66A>YQKHw}Ct~ic$%lO9KK;lek5oN+VlXj_at$wp6J%J&e?W4wRV7vV7n0&VmX){= zEM_wpr{Wm02tbPGlG(oR7GFQ3eocMmIet7Via!!~5=?rf!IFWo zk{4MPGH=3?&uzrk_WSu!GQ(p|$)R3RLc=s_8wkKC8#GJ&0}0^6*Tuih`7X-jpK!eR zJaQgdcHUW(JPpID6rF=kuCLh4s8ULYgb+yzV9y1+ACWyP${G=XF(C*jCxB^JJS<^X z{#qWqY}s4Tuvbw+y7ubIl`Sc;z+28boE&n=r{x!R_oa)n+&C26Vw1prvl@^r1E`X> z87~H>pg=iMq(Y}#$T)5-bD==L7DZS96aAvr19wg_>`Z_DC7ZWyol)vlij$*?r*9Y& zGe1HK1WKVS(c&HlgKy(!S(=AI8rk7+?~cby`X5;FAc_Z611ymQ3cv^IH0X>M&jKG! zftA#8{N(bpOI_(h;2k1q@P;&s1?p}e3ep2o0k#2br$9=Xen|5_f{^^+f5}5{-Q7_0 z%V$#N-{#Lh^Rw3vq((#vFZ*vj^H+BdC>4`9t1Q-Cq?iIn9xNi9yb0tt_S1OBVek>K z2d4|Aipb~|ZM>({t7Rl-`~H;yRnH39D0H@K^xiNsf&+{m#>Y{D#}mF|5M%N*f#>bF z-yR6X+*u4&%$ZpBF;>=7+&bm8P32Ron=*WGaTQmYKNx+)_BG2FC{Vd{?lT+&Jj7h0 zVm*xy5f?$bQ_`m@LUIdS)aNEgI1eb5a&LYewJXXx1=o;MKJ5#I`K4#bc5PK!;#5*SKbAQi>5%RvfeSWXx>Zm*ZgwO06* zh~%qt3k+Q?LDjI~@Vi0_I389G3{$WH(ldl1uqbW8tB`xa;_&x7ST8zh?cu7?8OC{u zUcw1T%Z-v%wWVA3y)i$<3s(6G$=HVVqEZr5dJnV-xnoGd6MB6X4vQ%?=r>-I97R5% zffdegUVxXuEg&w)2gA+YLKZi3X3t?}9{7NqgM)$n`Zb#59ll#Uyz!o;h<&OBF$E)@ zfyUs^AoA!Z-{UBZsd31VdUMtMb=`W?k635sP&9wX@Bm7{pXMsa#*A41h++rJz7tq36zL7+U=e41w~44S<*DZaa6{_B1Xt z!7L<8Q9vhCl7J2OEKQ$wM^j!@wdklG64jFq$NzK6!U6^7V^ABwevvhl#2%7*0 z1DaeRutfMps(}f37s+{@cEhsRUPFx}6DrY1USMBdB!~#LVe_{)&S8+{1I4w>J17TVP zV{x_O#(YXy!y`5!o7%W>W0O~6N~VqiDMM5e6^TyX8U{~R~d5far^$fnjb5vBL z?GIahaaKd-bu3L)JVa|%dd`FzspdQ`pIZS$kSs;YsPRGc9%$V)^K!pN)mo84UZ0}S zf=ZZA5sARyR%UA&fL7djhaw^6Jn^5tV zWhW%ZuxzF`kOgWB`S}%7$L&u6`Uib3{}=$~4!^byHj(|e0Lu_l=rVX8*`2`N{3Cg> zgK?X4vX{Qa%5^0wq6oU=95f(WD>N)4cVB-OT&wp3cx?)@_}nx84(bs5Mf&s^BfXlr z9@YW|*sJT>>W&@N9>d#C$|LBoN(AGCfjb3x{1zk~tVhAg0tu7_44_la4D zB&t(S>fcG+V7Hxc0`&BGfOPS9E=NM^%`|Tn5I@MU9HGGg9Su* zI0T4@jWv3dj~d_ap9X3jRN%JLi7g-z`j26{-ePlW?%m)HsjM`pD}V){9;OvxR;$r` zz?Id9j3M%Cyb;F2sxPTKq9KU{(Gc`JlgrYs&>_e*0|`ItR5TkSP2e%~Fw_)eTX3xlXm@30>DD%*%7e>=j7GSAfKD0SjufeE zL#7$7O)91#^uvsD%GT%9elym-qq^hVsADn$aO`<*zivt)rSNkN^X zCSs<-QeqFtKPK;UyH!57%ibhzM;hV0{pWM^JjI|!Qv4_xjr1j4qI1jGG@j-rt~o2<0Xz}@DQbuo-lrb57*G><1}FtH zfDrinaB=6(ZKYmAZStm+p?&@Ac~zIbcpgKJrAZ)`ovf=n!-jbzNGED%B<%}e+mr_B z59k<*39PUKCRf7$xzb73HHryEIA)0DSby;`-p3CkFCx`Ib=KpjKtEUlVHmw5SP)X7 zr~!Oa01Y}J*_fq)=U~QQ!;q6pw^=-flE~2*Vh>DH-pOuA2IVN_wb;_BLo0P`4{-_c zsL(G$V^KrVP77}$kL|a!ghN84SSQ7;t9X)8(Bgbhmg=U|Z=#H>xM1A{&}l?a#0bpR z5QmkGrqqIF`$*Aa>(;HU|IOw&CO(+A*x$+25UO=)S~{S`vFH>oz!*;gQn&?3E)^*q z1Z5i~B?E&Su`DhOg9k8~V&n=WPu-r^`{EZTwKq33d7T{bOkcG>M|()yn)s_SaLtNg zc*@L(Fp(|N`T^kKqmdFNuNN#)Y)V@p9()|*g`GoAA(U|yi_wDRVhe2sWL)n~si4Mt zq>PJ8yUG>id3du|i&UlEvb5m~uApZ^D7O+CEFR-eBUCTUr>zUpl^2j?q4IP6$P@SdSaCuC{26$~q2{D(%*9~Eu9Fb}b!H~Puq!zpKg4G0z8z_C?_gQv6m2cGu)mVb^p)G~ye8Bd4 zwqK}viwcA=oBfk+@+^XN_LY?J_0K5?lUJ)>Acik08MFRTwV}b1=+dUA5K$;Eg$Y%p zRE2`*V0r>Oas+ULI>a>ukL_=uFvTV+@Ly6K(>DOuwcwRL_jHQ%X8F?VcKO-!Dv!$W z-P{BiE6JgZ(J_u$kptBszDJo`$#r5-5FmeQP)>SI64$f}aTm=wFu>&36zgW&NNclkVg!ioi|OcEDXRI6&o;t)-n99DMY_yF+cfxsI0FYs^6Uiiy0 z-7o|KB@H(_5}%An9H+K7Ro%#R_)!=kJ|TmQskIKBpD?)7qMoZ{qfbOLMvj|Z?=3De z$%Q-22@_A&4785T61mx*=ztm`R4Rg%7|aoqFmfUemaG1U@ea)xs279kU{JIcj?b2t zv&#E+(wJAW=MD_>4=%IjHzx(@$AcE%Jz7kU?||nkXVfWG?X__6a00@SujOybQ9oZ51-LAkpX)pRe#u z^9@!Of?6)71^7id-|X^{emhTGTb=BvZbT&xPAZ5FbcN{~5s>ECZf6FopF5!wGC5*Q zryn{G(CBkq&Ev(hvf%h`0qz*d8kSsBDA-D$f~9Z6D!l?Gn6zT#}SrBuv&^j)0AyqvWbY) z-K^70#_b+iQQwvVP8azW@JCueYWvo8ERLfGL`BiI{bkU;DS>L-|vV0RD!ZH<(h-84qiEa4+>A`VKp0V!r=4H~ETuPjMmBp9(m8*PJ=6<-=U z;Pabd4ve>I0}_(ko&=WswiSBa*@>}!89nnJ)FPMOa7oHKC4wc19Ng86_h5SbV7g2Z z)`+ZI1!d6=27HkcA_7JZN)B5l<>yS5|6X??GYSFKs!WczGXa&tyMuA0dz>KQY!6$3*#Qd%|F=fz|g`d0CB^+^>&(xe%*-~zk-e>a~*lR z7zHW*g)#)KQe@oAT$~*~*r~Y|Oo!Q#?K%*egk`8nsjCDfDJ=Ribgp8R0Hq>%foKvJ zAK+aOS1cm-_5<3k%v@81($ykhg2s2%*ILHJa7SWH+eOTSjbfhAP*^k5>Ie0KR$d}D z=1-%zXX%y)Ti3+1y`_~pzdoJ$v!m+MT(yyX^=f=-eQXlI3^iUn6AyRmpZErYR}_nq zc4w2Qc&e^0l{4!lszk_#sd8!6!#AkRt&qv(oaRLR$+Y}#&ney(m5z*?L#D;q%3X;0 zoH^6nicf5>1X58L0S3>Agvth{1~8=yVk|Cqtw%IrXGmyUc!-O_nl~H&iE=%GfG8m= zuoJ29V8jcS8nA^COKE;?RdT;qZI91omFc%APddA#WK=^E=1;DO>ZXxBvebcb3byHR zN>TAjH{IOd!XAR>36+(^n_FVC^hC6*P2p0cvuW52Fa?d8Xz?9nHcdK?Zr)A|;y-*( zOy{!B>j&OIS{tmTprIe$HfVk`dI(flrt5fY?iy*EyJ!S1b=4F}b1bqx zwLa$rbpk<>#1Acp97c30WLrWQq9*gz4iH6vA>_Hb&TCswU zq263odhwG-?SD92?QcV?_y?&n+I&!%rog0Ht^~-ni)Zf}qx$MUUmPwe``HoR3Z2MI zs2lG7aWJBG*)`l{fW*dE9(z_4lTuQf8GcMU74^B?%WUb$iXTqXq83O% z2IuX0GVdhqjG`5A4Cs9;Ga*x_Fdaz^Q{(Jde%2!}5MjMbZrE)Jln2)12PkG(C@r4x zuRjS_$r}LoqQ()PzjzjsSbsajXumt4;wM8^Pg{Jrb0-Ih8bcoHPt~d#VB2)CKN7EZ z{V(EGme+m-2w(O0 zpC-onm98E^H>$KQF$F8Tf^)YO4W{GzfMF$YEOKz?k#sXl8BJ{V3l=unVdkTpMOv8? zCWOD?36MBj=bm>mAE{_-3L#&_XSBud*m=dJU_Jh>vq53ZjK@}Uo1e&S zIWyMl@Lz`#hq3N}KL-Pdv^>OVSc?FQAgS5rUZ0=$*t&Uhvn~BWHn3NPC}%;$Mr~E% zkvhGC95akxWK;_KL?mj&)ts>58D^xo1iv-lwl=hYZ2yC8v^8fRh=f{UTV&LE-pu_%|94F>{)iJ}g7v>ImxhRjDl_ zRepMx{n}41-$@LLO24d<&=`RzY)^qAghJSJcxs@BU|xJ9K@m9Q3OhDZW77{{u4`^l3nejeD3N!B#C)FuK2^OubT)eViaOU;uoDLVm3BBuP^VuyrHb0RN> z(v=>;sPHSv6EzpN)I!S>XOc&-48|$O|1-DciQKfBe-syf8w*NgokUgqlj&8wUyur? z@J@zEO!1>cpM@LmsqVD5P-_H6f(F|`Ev({mu~qnE-c14@)C>&v9Y-^@5RcTx1FL~| zDROCfKsmPrg()%7QKsOwAVq2l_Lrgh6jL?|sc>ef{RliQfMAX&H(+`Br{g+&BukxQ zRP?75Y0^O;WG6-W8$DO28Cx|b34dg6SmDw|&IekOI_Vhr9v%U%O41a%2z100UTp>@ zAd?lc)8d)icgI%1Tbe78lL)QM#h?HEcg0fu1^c?*UV1R%Urilj|4sLline%1W#x_i zb{wa57N;TD6IazpHqG2^l=vFcFiV21at>NggOe$+V1igqK~aZo)caL|C@wtoCv*x% z%oYCR%-lL7)DF1D-&C37v%VrMTn=Qs4r=Za7?W*95y}Z?VQB4le_8eW2;j=gfhJTl zM2eANoGokvh2CTU@OwA*$Z7Da_=dj}fPz7B0EKdTJk|L>PhH!;A7^G*ZIe|^zF3R2 zfEky4zj&58kJmGko8iOn{8#o4bd=U*HtN$wf6f=S%imbJL91RZ;%@7=l!R5Rq!e3= zF!5Nm0%J0aV^s2%m_c0?lAwAlFB&f=1W@b2YA9s{nV?36Fu(Wp^x>^ncs0+I%3+@^ zXg1&HmYL`po_DzvgW!vfWu7Gx2K<2NYLr@GM*SFbRCPr&!YG-LilfWig!K3+Rb)KD z><;BEx3-4{g-;NBFbz7KgEI{6v)3Ob74bHdq?Bz(d~n|mcuB}qyYaBY$(q;;KEp$Dk5fp5J>$nDXs|4TwyY*VPb!C`14G8{ zemzG<@9ajQ6tBP&REXi*PqDOo>GIl76y*Y}z1_fF|P?qlZzr-*1^)%>? zs@Z?gk&GA_gPUvirFN$9%%X!$sOh+x7DhpLM*|1k7o!yyP&C9?A#FK|JPdIKyc1)g z&iG?`8Bm@3muS;eA5=f0464OAfe+Meb96a(O9JletZIsEzyFMtAtU90nukNU*RwBO!mp;9KAOn~ha(G9gS>_*_+xiduHe42|5sXuDjD|;i_|;;J{?1|5-j3n;DZbsE$BmQc zqM6)KD2(&Uh(I$jM~r8V9n^%Q{4fY-J{AdqN?e)^puwUlOc0-AWrZ5O&XR8SUlS(y zt4vLmW`?CM;X_WDvFfjkZum+|G5e<-=fmF|AItwQo`sb}|G17!f6+5{P}P05g(Iww z5PcX)j9}6 zRb9xm83}{E9axXAXb(=?F5lsrR>K`$jP=i*>PScXdaK1DML@)T7D}9xOs?oLb4ib` zI*Sb*Zd&lL`9y3VAEW;UF%$~pOhQXBl81^U{RSljB7;X?sXy8y;**pn76gWi-v*Uy zSh0S(|WICVw53Uj0FQCr;yS2v;W&p)9uW%Z!?mwgw`X49l=1t2`h^f6*C-~pbh zJZ*vO00!XVKxO1M27>Yv7@7+oavw%ewR4+WL6c^Dn4Q0X0|_ZHq{BA76mNYg#*KXV zC4!<1JG8vH&u_W`EiA7rEA)@T8R#?an|k)_8FkXSdSQS|22xg2L0IAeMCfqi>9lE- zw@Sq}W35HHe1T$c1c7$QDMAbFL)|JNRRDJ+d8V;~!*kaG1Sk}w|Fv)n9oFUpQ^caI z4^41l$GfaeMt$`6jrUK=jQ98OBK|N6`*#2hjZi3vgw+E+xK0NiXJDC%t@6ejFdm>& zpaOh{tS9W!m7mHRFy{DihAz-nfF!0m8m5wSln2pz4|Ea60+_gjwR+cOYkGsJu*in` zpod3>7{6Ma@wZgHP4)FQH6stbKT!)bBpukGn!Dh>;H*tE_wg73?!dM#L_(y?%26Ki zkBNYqFl=d6*hemeivLnMpuqR&AR$*k0cP=YSKB8-`^e>;OuG!`ih5Fh>#fECvZB}@Z|0KJ2$ zDJ6vAf+he^#3^8}&Yn19xguB5fEf17?O97)uQ00irOm%BeaGs=VdI6M2jdh&=Q?%f zPsh#nn?@%1vH4W%cjC5FW*~TVENJvEJ-=w=^e0EA)vz(eZCVn46ZR^-GeQFwFc;HY zNe%IjQj4Gl1G4UWngkIOhH1GlK1Igv8qowL4o$YHY3|@>Lvx=2N;9Q$E*c;%H$9_A z0EeWlE=$p1%GyUY{(aW1A@T5>!pueQ$FSt=I@wa$JZbzv0j1G+%n#kgTzUj!G8WL-9F#(rSRR%2Ks2ShU1I;rbC3vIYjBvVj>p`w1FqM=p_96br689~Eh8@vDe=a{OE$D__KZX?8o?pkPg+J;q01If3RH1{sIM4JFr_3A?rwiaaROM^wlLNC#+1WJ_f1U4Dl!4#vW_5fTMvd=Qr#p!d-4j&mTIMR#B4&aqAEi zsw;p&pVk=aU<6P+D2l~EW*ghIH-t@cI9DAAj#V{$J_w*f8XV({ejjh2nwFNVzVUC}YHJOZ|NZMR3PesWYVZ(2CqJz4A+Bk^qvS!; z4h&X=*z|2-#`pwq)j>|Rj-x?C`#b!fR)ZF2)InU0J6+`sY4Hc+WI~=B3sv8 zmk2aLK?WTnL9MKEzjj(2Ly24!H0{H}Z1L9gr#coxCFG)cl8%NvM;}pi0Z3!VliMul zq!nOYN?c8)+!&;}3RL2_GbPLnX~=QQHl;7P#ot;G_iy2;81&C^m358&Y8)O#n_}b= zFBUe?rk3=W`OVnGijJu&tp(1?3Wzgs{JwZX5a&(7Hq|I|Sl`6%2z3N1_pkF8Ix&iQ!%Gtah?VRJ)6`qElxU!c~I2+=1Odo3A89HFko`UOwIt4 z6gQDrLg!s!Acb(cjv$4db;5l59Yt)MgdT}~J@su>2{!V*G@7&XRybO`tw%Gi&{crd z4d+%jEM2o_;hH^rM$Fv$AsR5?5!8}%Fzp&e;ezCAhHRTx1*S2g$Yh=NF><*e5*62- zh-vdj^4Q1>o!g+whBhB(4N5wcx=3^`3^6KLX^|mlArG_R6*uW>POt+)HFdKmr|~yN zBoB?qZN`meQ{ruy*}48z4|V?G1u?raulmr9)rSs2|5a`K@;f%=e~PPd0QHVj$@p=6 znli&sAtr^-iW4UW2fMM5P4!w>Ofhn*6oQh00xu9f`AZmo03I%g!E#lHuTSGp2acwDM^3KElN2h99~>$A`04Kd@Vh9Y)6J_gloh}MYPD{BwuOoTbE;+;vgexl!*XAc`Gs}N^MKSIej1RzemH420 zZW;F?SC%aRD^qZyfdXV@GC!J}add$LT{Zvkt@&?_@4K6~=UqMRz&Q?|@#{bj=gUD^ zB(zwG5V)cjvE+vLQYXgUP3T;QO|F>-`}F&4v$OB$))^bxT0l4)|KymAD3Wd zT}g$E>ACG^7cGDH`}`ud88`Yskg@Sy?_6l*x4`LO_(<@1E5~l~3LLrnacQ!(boyQD zX6!a*Vft&h;At$CSj(g_XV0(^yD}0r83ow*HKl!7-ri+-riHf8KKtySxW=osDlCU4 zN8ikQyn-dJ!^uj!NwKc*KwVQ_4iqI(+d04z5m>wmVJ*i)?5V` zwhC^@5xKm%vvN-73|ND2o>y@-9qoj*l^xqFfe^kQ&|zG?Td7Xq2(W)B0XlZP3oF3f z`OL}$Q+;mD@Vt}Rqtis-GW3OYjk0q%gGn6L|1`Y-Dp+#kJ$Lt%pYUQBD9U8H+=*E2 z9)M)kq+&UT{+RLev11>`&Zj4^Ld9zjP%OZ0KP|jxYwW_dpI?NVBXgS{%&pnJatc%2 zYZ6;aJGSO`e5bVWJN2{gz4zWdyi9UjxN@D$znHg-1vkI6CU*62{!;F63phrEtez`a@P#?Ow`SjazsBW}2XQgzQ0gUDo69Q&*W=>c(QS)IH{Cb7X*PDoJla8V*M|(LBR)7KJR~O=Y1p@M=e|D;)WxBr zb?fiQmp^J44c*k~M$=tqmdwSp7H<05vRf&F2nozdf?z1bg0vO8oUDV8Q8we{vMx2e zef74|Dy#iPdNEA}!N%fi7$}@#@UKoI(O+gP0;?csFpp8Z2se$>NpS5J14if)4yiU@ zVy#nWU=Ojjz9v)R{?oz&T<@EM_Tb5Q{os+XYy!^Sf;&qHAM-onq|=yX{SvD zMHN)3D*EA8*b{1)G_o7T-I3#{U(n?)-lJ+mK=?t289#!g1y6JeN9}a1D>Iu5gfAa| z0dC~$vKAM2WkI6nowO~6`}uIy9ZvLrlV_3g!aKJlS%b}PyBGtwmo=G(-(i}>8)NK{ z|L)y4U)1~68!vfi)7N%i{m=W(U7p5Zm)r4S?#4YIzQmnHf4_arr?(Gm)^*V?Ca?fl zSf@YRc+>2fXtQRr_od-+1IbHd|MHr0+%~;)&(i6Cp_oZH+rf*^7Y{&;8zOXe7vB)a z+2zCa6Q%le;B6cGRiCn!bRfnE40^}*3#>yD7p50D-y!s^t%qs8!ivdq4~*C%kV=)=`5`ZLT)S}PuiY}oEXuc<2BUsYHt8?M*Yys^5CQUvGkprEJg$ z`z!(hSiuEufg`QIkATAL+#|hWT^Im`31f!QXZ&m-Du=v-PS%XaZ$nk>)s0wMWZ2}k zBHV#e#FcMe9^DniId)IK*%#?<`fD3If?E^kp2!FR9dLK{U0?m|_0#6e#e&1~G(^|t zu9E(TFO6vYRq2smt^O3I{b02WlefpW{SI-ny8RVh2mPG>jP^_?H%50PCoj`=?v(ug zrWv}vd=0PM-f-n}x$#9b(ogE*iMk~MEfTf2`+oTCo5x)k&~hawTvt?4$?D>^_E}9T zm8N}V5rF6`h?2z~E`3?u$_gP?IFJtL6xNjmj)XNy^B+Nn!x(7|9hno-VR$CqhuwB7@ri3BJs&jl3CA zSLCsUkj<=IZ`KMnQN&e-W!b8|Fb2EA8`E~8hn`MScOFU-x%22n_>11Rq{h8lemq8xaXNK(Y@jEXAN&aR7*SZa1n5JVyh*@IScq+GR5|PWOj51Af>NG3`eF&0>Bgo z{0+gz7MUPEB(W4K%*cg5$OjJIKAcc=${Z%k1zcl|i; z(;qi4$!z;3V%4h~QH`CzFAxG4KIjdM21U1=y!=0Yb3bDMOoQsjei4QOWUSX9Un+d` zhcDgKKrqVr;_>27CCeM9ToX^^KsWK@)>bCl=_<&?W4uN+=92z@jl#9N!I?m^cC1+X z(b!_dDO&D_*hOV@0-3&XQ3deLuap`%7YQ(n{tz@|*i9c7$&G@VPRMiuUE&7L`7v-8 zixs3UrXQ0j`m*I&?3Js$to)ysVd3@fgCX$52>G7AMEA5yH#z|Y5&{u(SA<}I7m%nEM{*pL&GS6lLY00N`r(5jsWGuw2c4u%y~RUO z=y)6)-^C*%2t{pMYTH{H1!4@#C$1$o{p5nocY$IT-}Kyf-nt;O<@)!Zy{7SbBSH&i zy}MvmJzOgd>BN??n~#j0y=iRu`#`v9mxc5+eqlsa<11NP=vd4J?wJ$j^ck>cSS+XI z-4Q3$3>z`yj1h%jJh5aW@*ENkSGS_8eCy0PI>J(+K@16UBpXG2+cjBqMLfr1tM)yF zD;d&@qBW3+0Hv-4)eNlb@F*0sG6&_4Ak$pT{y3p#NVv2NfN_MW0PF8jpbioQG-A$OV~NTlSG*r)S+Z_i+AdamTGI%-Nd$1|<8>|%~8PrFcGV0V#)p|DzL4&=CiVhV*QH$fBfUGfs7eg;Dp zQt(p{F}EhpG(yYrwoLLcoaqH37C*^x4jFQ1PX?7sUi@Gb6a{9fFay+!A)?HYE^_0& z6e)M{etR6H@?SrEsi3rJMrnF3AxuoEO*vbXtyP>HZsIsR`g8qCx0>Q)bMf@S7{IH> zUtmlEK5rysWMS8e?k0%z#8 zr5}Mk)u{AMao)B~=u2u2|G*80PKn|SRG-tN@h?08|G~RN;41fzzzKe_f+t5#|4QOd zk|lgbs&t=%nyn(qV(mLDwXOsBx_X1VG`)Q|@~Fzpj(=pP9lWXj&`r@287w$lxo^!r zta{z42S4eP`!p`r#vRqTYaPW4UFodg+7;%@ZpCe3~r270U$z|u30_DF&JwDN~eIkx%aA4CcFXxDq1j}?Q2h3qf z1{8IAyxli@LrY`bbY?j!T$yB|YVf5;i7i_(jMBzc@`DhoMZK+f{+}Ljl{%^#-DkwS#e})CFrs=B1DCaVK zC~&X7c>I(KrW0Li6l|jHdMQv?D=6$~P>4GH{hcT>s{H}#P=A_M5CR}5#2T;wcum1a zBWM3OmS`?cewBzMsw;woFW=B29;QdcH6Jkw9PnJ3*XVaWH zFptJw&ulI2;H9NsT#EZ}U8&w!JA@mU1L6&E3Mr;Ai}hV(2P(qCmZsme=+K}0q)k$a zfyJ5TsQtfVWVFdVF`Qia{h3|c8#0sM1QaH&!u9Yd&=&=#T?G>35i+WTgnkPnW7@0c zWfI6h!xDDT=POTx?T{6@-~f@qO2XWNhU8`?vB1E%6h4TcOE(QXFEC?ekPvR5QT&?g z;x-I6FK@E zv1wYPyYA=Ypi`JiWBCq9Xz@65=dde{@h|F=pi$v$y1fgean{05_oAPK_6_XQ0-;*(=K9@uTiLoJCB(rv8A5HWrP zM2Nw6E$4H1i?L0}y}2HXa6umJ1v4FhXO`;~3xj3F0Fj&8bS?)C5<5GIvbO4|S4(9) zm&0l;#6m5QalI1Xh?~?N&x$~d7qfn#rQB%qRlKh+K5K_qo0)9LY%F=JZ^qA5=?L8z z$_;q6yb#2|`sPvlos+US;-Jt0I>H2Ciq02)JSa9WHTNA$F3WOhk z4em@sHWy6!SVS|O36VgN4F%l_utIEQaAcf4VSj_ObOJ~s28}s*KC)6<)w1A#mB)=0 z>-w_#P68fd!n>p@+%MT$8C}`Z@eRhqv7NNq*C}#L{SwoG8`^Z*iaqz^E-9Q zQbx839b-0@?P>V<#!_Cc z;nuMtpLPffmD!10;!&X!8%b^2Tanls+y3kKzTQ4l+3*8+uH#iwQy|6e-SHwZL#((Q zzhq;#FIYB=S?CBaO7HNFflmCeTycf9%Zw8WzIdW!16q<%iAaA9;OG%N>5wJ`&oI+tV)T>yQm6DCcuQM*kqm zYn{Y=LktHFu2cmD&)|kQkn5M%eEu?f_}S=wvW+X867^*ZxIu_UvD<(UShjLYt%?>i z{`tfT)&gDGFYMPS@iLYX)MZ(Te~$ji5Tu{xs67@~a>U^X6!mw6T$ zfMk#d!tcJBc$tZ03M{M2Rs^E0Ds^Ij7|uaub742+;bREy)PvnB4t8rF=S2_}Q=N5d zTKooQl28D~JiryONsv8WxQ9pO30#4PaRx&b!`KwIHl%uob_zTvzj;2M}pw5?NddDTdN6+p5HkjSK#!T<^c$z6F&;`<1 z6q#78M1Fy`F$5GW;~^*;!?wklmxDAVH@a8-a7nGzdY&2g%JhRw1esr(?E*#t>9#0t zCI~*Ei8$=WT#diMU(LK$mVf^8noDC?l8wLV*qam#sEi!ie3F@}7z&^0_>2W2W@g6um4a~cfYN;e+{V1(IYcL@8f z)<1gg7#`+Wzxqs(8}c1iabU!pX;go3;Ak2mUp6H%m`j38?H~x=pQ`)Q8TsAsI96z4 zRj|^&Jt)o0UZfw+qIj{-4y>KDZ}T^a-_Is*z-TZ5szJF}6wQc<>@QSQX}=vsn~v@= z6m9AcMZ2Do-jUMDZ(|9*v~g#QWnNU@SAT;a&--dB5lrdefIk*+DCZk#d`oi-<~efr9=y*5Mbwq=!c`<@Ki{)>C zXz~nOPYSWiRD@Atg9-@@>=1Ipe{9L(%HjJ<#;gzMzmsa1n8=l>Yq}ri<-nESIq!DB zAX(C=qu5PTgPvfxxJzDww;V*j6^u#(2-SnfW848_z$e90g^_px@4jLy4IE@Q($m`O zbQqyj1mVj;oIysKRP_K}%q0_wwFj$NO6LTBwwe@WEZ%jMxo_zod#oiyf+1%APM?1= zunD~*1$szY=sv|V%%>P;(rZ`(b*?LkX-kJ}G$7KXXBfR_3Jx2M^@wdNYCvHK2`a*d zi?y1)X(@;`t`g22t3<=jCYil~XFo_VMJ|tcqQw@kiB{qdq1(n8+V2_rz0jhYS-|*GzhO@%d z^&ppfl_vy-00A78t{8+V>hr;P6qetmqksuWM8sVED~@L~O9?n;XGa09(EP*4m`w%+ zoq#Y3Ao(EIDRA}FeP1ox{_AeI_X|G8H6@riuw8#!yponym=&t6u3O`u`wTc~4wq?~ z)lv~H4&;6lyAFoN>?Iq!veAdDgtjFHThZG_MGeybi1r92C)v)4*a*<^g1g4! z!^l#&O(ezPf(n>LVxFb^3DHFbu#-jXYGu64o$@%P&O|PlK76F~kArwR}A%&W9oMWF?`4RJBVEt*fkV8?OB z!5VwXhd=Ag3(xR;*w$Cw0-sD#&7cBA3|paRiM0QPv~H?PS5RRCG`Hm)u

1w4y}(=V|}HC)tHzWS!9719BqMVsP81^_IQ%P7}<{K zzKf(7R5)bJCJcU^;jn@LM07%oPB=u{u0OzGn_+sQH zCR!}iki1Pk5TZgTK@ClkM~ zT~w@*z`LARNJkG5;bN{$BKsXKId`#CI_e|K^lA_pWZ&53z(V*}Yu+7E_${kSj=p;# zcC>|am3wi|FC!Y9io;dm_#6GOzmRcH3E%^vF*@I*_!QT*&$?ZSUoYGKCjSSkiKpAs0`G%` z=RPyxKoeqeQJ;YgMHXFDD~y_ei@zJ~ICyxv{;`WzIP-p_#0AX>p|SgR#O#cK71cc9 zQ>(YWT>iCCa89D!2unW9yu!-So);R1!**Q)6nS~@%lI5@Ieua2u%VTN;|hl8I1`2y zydiWN4FTXGmIL&@8~G^7L)V&*&==BDY5l~(gJi}WRLH*Z4a%x&I1EbN-M$dn>C7B2 z_L$>SjyaBQerR-!nz68f+-+CH=(Xvb6AwE?D=X2Nz5)8|vbLmSONoI}%&W!XCk9-y zJ+o-5XgIqGjVP3k8Kpf6i3skM1s|eKx#R~=g0V64W6QNOa7aK$o0!tbz;wB)d_>-! zii|v(U;7s94sfEhvqC;M_qVV@tHi2_Fsj53jc$%gTx(@oRbmUdI86}6QGI|^o(Si% zhJXu8MPy#GL3uC@@Zty+KXoxtBEyLM=n`eT0b~W?IYo?)>(Uo#TW&>^c{fVhBe|>G z#imf|W;8}k6wJh!LtQ}rN?`uIIbM~w`>N(*owM&-BPM7l41c@J0yUTppsjIA%F=I8c0+ z_QT>B9AC!ZUMR8m`?jjILBT zkRC&X@RSzh9s0w{}6at5$EW()ykc;t75rzUpws2F=6YxGg2Nx@BR-HGGjZ=kPOltY@2E zRA8?=TYq7f^jcOWy3}lV`pRe{d~5NbDBi5HwHIUGTvKox8azEO2c%{vl^^Z<|@9Sj;2T`VW6cRCwGo@a1 zBr`evmfC78LsKeTf3dw!b;z5eV{8)Tk!{AyEDotr$8w+^521=4+PR({>CNRaq9OqI zU`viILlo*NOxeOjklIH=2+#;a#T)5EkUGM2;W2AM@$6{zx_ZB`H0bHs zT&pSsjPqe)9v~j5X;?HE#+vuQ?Gsl%gk*M6^SVC2R@Fcyi`04r4GTyZBxr7!#8MeI zyn#A&|16ofSQXGKsDkIy=x9U1n-DV413z!Yjo`B(PlASpwlHa6r{L4-luRhSa!_{5 z{Opr(fP$_iu)I?>Xq@^K2^CR*T>I2*F>`+js;yHs$h#7}bsBd}KG$@DSSJgbPqG`I zh7vS@d0@jY-Ea+I<*GeCdbxb-%V`J4#*d8EkIfdH>4e59SP>m^rwLw; z3mFU|V`?a|3ylJ_WY%EB$zYc9jg&=Y>KM=eH*0-+-0BmwP!8z@i;fTiOsLb`O@$yj ze??2}chG3TN>HqzQ^}}T#6c_GbA1*p`sSU!O}erGOS}p67M50E1DF_;3vMYeT~JW8 zpayG;STkw-&ptUgeFPGgZ3Dk_7?g#Wz>B?bAQ4%v4HK4ocM>fX;LMTGjtX3_=s0O< z%24{49~UhMeAu}LHSllEI9Q7uzUGtRUj)Y%>Ju!oc2 zqr#jo0K4aix2o)Lrm_P6t6E=LlM!or2R z7#qf+T9?QU956zwysvVOmfa2F3jtY0e@|i%J0uB*eX(t8?w(3GD%vl4n zK*0^kItGYj)$|5~K)?+vb5V}tj7-y#`E5R-1`8IkXK|3nVB6poN%U6FZnwC_3ibzK z-4c7K&>Uw-9T=_bS3bhP&UhjKYp#OH7M#RYXA(gCuiIHP6(4t{;wVWE3mlR+1mbYx zXw>yduliAJ5ko~Ib!Y(!f{_{>2(3I|A_Q|4gLN~Lu*ibD7qi8o702xTj^fmHpeLgA=CwfeVFpLsvOeF$|z%^U`6 zMM#Xv%r+=;%U#WGnW8$e!wOvgl}%ih=CqQcE{6%By++nYkzn2-9AKuBC;<@{YDDb7 z%dR3g(Wmv)5RP85sS-IQ$lo8rcRjbp56po>|0H+!yi4&x0To7X^ZTK8T$XNT9l8*n-RDzt`xxIp)AcZi> zdYzdV1Q3KcslpFyCTV$qQxjc)667{s2_O|$C{1Z9U}pMWA7WpgGhQ=-sFrGSba!1H zdOm$J`WQs@eePgUgBvv9o9Jle>c-tYZ8MrxTEde*J8qAzR7+lDpd3RdQpH;FSqD&z zVVUL)4(JVWA)cUI4$&1X?Kktv7_Wes1oI7KsX*sa4JD*Ln%5<0Slt9@4X_R4&zq8 zJ?B^YKX|a5#ZvjgL{%L4p-n5XGzoPD>+9gyLBgZ&b?&DhCi7 z4;lyj0topTDU`#JLkIZcJcHU%gfc~F8Itiacsr#Qbm{UgsEUT36=`c9>~-k8Ua(^4 zHnd?;U<5Obl1x;}4}61Htf0KGon2l;iC4IUXWNsb%A$8;WAaxr=}|FtX`^)mauLrr zb9OLn`HYIq6`K~8Z&{cI8_v0Z)q&T$g#p@O0_N!qIz&e^u*gm=+XFL6-XVt4_{(LjP(;2#1@wpKjc^MC}Dy}eV|_4LJs zqvxYweJ*HGRwg#HW@oa}04f8C zm+{$v;X2HBcB`XDoH;rzTEa+YgkvjQh{WSzcr6NN=gCH_D^Kag^XUVyrpFNHJ|r_s zDHcjc4Osv0cK5=%BVp&nQ(=$e=y_3;8|i1sw0!PFH=R)iTwcS zgh`XuDpigMy@O*{U7$h23?fP?uHwuTZx9#-ZWutb36@4kl&F}mxuz<@$XZ~hj*M7h zZ%*i*i5W;4_@T+gtv8sFY_6`Zv$l#ystQgG0||iw$9L1$oPil%6K->>?^E1QOia}_ z4KvOt-T0c9Zv3y;8wK_p&oD(hlAN+Gd;+>#)G^8H z@}`5dULI0rdjmrJW`0LgbADyP54G9c2PVXhT{Am1s+o=c)T^1bG=cxw_?;P8_=nX6 zW`N;&!Ggj3SMzR;_TbF8IqK!eeod#pU2a?E3zx&ZAu!mT0S9dxoY|-l zULb3b;b@|HIGNzwIXo^(7urQQ?ZT4q&W0UK)-yqV$qE>Z&6)I_!HDw%eM1#^>h=W2*NQL%=Ap$-=q5&ELib~@IaRYZR(*0E4tdwD zOsLlcEDtE8r`uGV-0~0ebhp@Q?7}W2`zTf{E^ls)ioSlEaM#jb) z1tERP0LAG~Va7-dZd%sC1Q}}2K4ho+giYEnL|bw5vJ^-29Gw;o@h#mnig!W9@t4OS zJF!H&r6hTc1{)-WzI9tBLTKRpjre;~)R$qNV!|am_ULW72U9MUx;NCaH@Fl0|KZ&`Z~12lOjbRoHuiws;@Oq9~-<@g7SCOTlhVf0|eZe$f99GSdr zHvvB@c^gPLMFe__DoXeXO_|St)P?S{+q-dBIV+-+w?G7S^#H`JEG`P@s<`lYL2Keq zIy5ZSiTY)q?D3LAQO8&_d+BjfPc1TDlMP49I4KBM-xjoLV=KLn>$pn2+iBc3KPT-7 zJDj{7EelP6`ZSEaSCP8eQEQ zO8FU+as+llK64s;iObUBC$Ci=Q<*l0zyPlGy-9tk4qWi@WZ}@j77G@o~z}|v32HssA5W^Uc9X>u74a3+`#*X0wtu-b-FR)fh&;dyx zT5tkwoT#zI^mX+w=iK%)36p2=qE^0tZR7a2lj?ic#qo82bB~#G{^)hz3FxTPo z%5hBOtrHJYgnFoRYRUYM-$?;lN?@bzYp1TYLwq{L%Iv7AE$^@1T7b$=B$GGG6aaZn zZYFRG8gwhTDl~u=v)jwLFdVDs*j9lvngTNsu=ywsQPcJaRfYpJR9*w({oIUCM#-5- z6GpNON#xG<24J5ybU_M1UL(_XCLF;z9}=LsKJP#YKPTGYX`#^U$@iNZIxjua)YP&x zx9!Rp4~U=V#ZZM&Ei7?eRtAL6)48DlYwlcE@wTJoc7}~LS_Yd#|JEbAEN_Nu^pA17 zBQHZky~x?O-~~^H{q4mjaV0QEz$cLhJ#w<|wg$o5aQ9&s# z3`VjFy#q@!JnE%=`;lV{@3vGvvA_Ru}0Vq zI4f+AdWN|86fzDA85$`pG4o@#f$3O{=yoVy1%r;I0@*-_=Nxe$Wt5K`gyfXjP^g7xaZ5bTNk}9?prH4eU5NnTU$}jU2rs&b09u1nfv~8q+}jD7IZzOV^#s^@ z{IYE^?mLZkV`*_F?3bT0IASn8KGQa~ZaUQwjVmt52qsO`bUdqVD0|=mU0ms4|6lCj zf_RHtbjHhxqan?T06q|?ON*kmO$yDZqv1#-FHTM(hc84;BW8v;i4?BqP&l$}RP7(=8s37G64r5LS7p-L^9__W7ETON&;D+z_L zg9f7_#MUZcAUh%Q+he$4rOYi;zo|6co~vcI*y^?h@WcZ_$8Ip&;W z9{KNc?%_0#ln?6^sz64wL-O)2H!f%$T!$lA)=q0z)tX*8*3Z?OGBL{uBa=U6GXbnI z1|F%#pd*@B**Sfg^2e+${K4_@<%_zP?L~V}74fgJ8u4>%sZ({ry!b1S^gNR$^w1fk z=2ZE0r53Y%>XP@q14BBdF z(YnQit@hP2D`D;J@E7>&-+V{$q7b2WMm&TGi_wF-lygMAj$VcD%}8klno9H8 z*0EVQN&2qhZVwlCd)@+V1AWLcFbEnrazbm>bV$RrgBlT>i1!a|;bA({4s1g-sfZnS zPeMHOwCsqv3wc5Az3$^&YYNivyQn-|80J?|^+;=BQD@Tv^IjurDtrVz1sf&?X@a3z zf<;^#y~D*zzl6bL1Ln~}z-`+shvS`S?g&CT{ z78xSMooUGxW9Kj}d3QNk)Z)R24jIdVzxZCYlhEJ!PYT>QiKp_vt(8Exmn8hwUG9%r za~9k5uZsvry4*0_ApYUsdp@U}wXk{9f{Di$OtLy#>`8)kVo^N8*7i!=?r|V1a+0QC zrU$<;P3C^{Pg>4HQ`juF!*4Ct5!mSp(kt^5#w|9s7WId;Dk_S|$mYu!a&VOUtOOD{ zl-hRicMLw|eb3l7_d87Cw0EzrIi;i!=GxBIDJu}Xe*&|mNKuRA6s4zcLi#|-XHm_X zwGSW=>nL18Y4fuwR0^meF^3+VNk)@nq#elC8iJwb_4zoALXwh!au6BmM7@yPFyW0I zSYxHOHBc1|L6@92xWQqloKV_d`;hts3IZfKp4UfzMQn_?9z%DAk7$9`~%yn^&re=czLJGNuy??o%ucAr|y z9n z>L$eVD&ymT)f2U@CeDCO2s$O_bNE#YPz@@fLK6YLGG8Tpajlj90h7U7`WD;0x(vzo z98fOKYG&g|aH?l9#wG+lQ_L4z>KF$;E_&XkN0toVcizauUkkP`rs5r=Y$#Aljna{y z1*(-a_@|5@?rCw9a58ow5wn#X6ClTmgWff%ffraHSCHUCeMU(nTQOob!)mbsYIIe) zAqsLR^h|w#_sIu6dnJ=v52Iq7IOzlTu77O7#X%Xk(*&l?chO}+#+Gj$`aaj*xr@lt zLuP#_mn>cRsXn>Sr%<`sGuEyR=Bt^r zbiP%;UF#M1Rlzn6KU;CaO49J$AD%yxolfSpM7&uBe&+JhGw}*o?%+ooOPyLfD@H0` zVasq%P;CSZO_B(Lc?@8+tsT0)*CrMfDB<)A?mVRydMnuz?-{j)Bvo;i>_t+Eg)L@A zr29&hU2Y*__BB}mdU9~VMY-}x83+8lEL)YLxVJFxlT_9B6`5Kt8s$7EB~N^y@iS)3 z&{A<8lzGPRp);O(z!%f_P|0*yJ<-ohp?z$DY8@*k_MobYjst#0rm2rr!Rw)_@|lgD zs7W$cw61a;G6fJN!kI-l-}lBV|M|w9=g++I7jg3H*y9VZ;wj$Wz#=UNXrZlwCXx*$ ze;2l6cURm)@wGg;KLyff^rQXWn4=n9&&SK_Rzr{yza}jTt9Yb=<&H-VD$NCBb175p z$l;z*EomO7gm-OOefYm4!GxB(x#WPal9_ed9>Gf1-Rrr?T1Cfm$?zkqle+%xCmKok z_RbYDa;<#JR+0LXMWq78owy1`UUkXf$P%tdDO}|Z^~aj|__u;Yk~Ipic#Myru{bJD zB)lr$R57H##Mpt;#wR(Q$0VN~=D>t?5O=;HaA`Nf{14q%p|BEinUqcQJ5)!_ifgK2 z)rqGg-z75(^%P=M7W;vV78hfeJW~dCYFUYLrmdW}dL+==mCXaB^$ z{pseXJ>$HCLz6samXi=T8t4#Y=~U-FLGGqzA~*=^ssu-zm>szk|7F|+3rZhetkE9g zs>8QdUM3K;DSf^b-L+fr1F4{?s0UAI9|Ue3e}Hi?r?hB1OqXcli=+CuiHqSZ{(zE~ z0BY=#F|2Z(YpW^d=R(>}S-0|T-#x-@PoPM2*-}$N*TQO~1HH(XtMJaNbA-Bbc>IxJ zlrus{)eDN%H7#AC>mF&&d`gJI;4m5W{+(t*soL`kYNqeT4?`a$wF(pPFeM2$7hI-4 zV^o-q%j0o1M8=p2Me|KC!ZvgCgXNN;BbV6Z(99JFu9>2laPNNvh1MDdV5SyUWC_6- zWW(wE?>wV3dhgKK#m}2L(@N3{ z6bi9m!e;jBr)0s92&r$Iw=EG<3bCo>^gxCN^jRDW-q<;C4cjU>%&LVxK<4dkW=UKX zOFA%>BeOphmYD?A8EH9HUi~&^!q=v-J9ezZA*#a=1^xaAC66y+0VC8*4BqsCDC?QQ;i z@HlT6U7P70x0Y~RH8yqBEgK}7J{Khu!tM&a%?3#>htSXDfYkrD$864y&(HtS=QV~y z$(YErmf0${A&EmoIsccV%t`O55l6b2bQ~WTQH*T$}X{LK%%C)!MrXQs&}PXNpf~nq7-oOd&d)=%4q2ohR~$`N`}lOiHZ_ z0fRXe>1r}@8l&*3Hd`2*%b)IkG~(!qwZ667&Q-u3WgBd=H%4+IQ9N1$e|)Hkfepj4 zgX&o;hmUO>W`S2TB9kxf7e~3$JI95zB%rV!;hG>xRR#;TPfy$vPhna^~hH zL@jVaL>^v9IwYELz(k>Jfn?=Y!<)Tvfosg1=oR5M99#z~1Z}DPC(vl*@0_j ze_LtGMch><+Ye4sTkwAKODdC!0CSryPm|F^wZ!pmo*dF$U7dX~!DC;}eCviyer_BG z_QFYfaP-{%mNokM1y7&WG{Tf!ASE@faPovLRGNn$hOJa~6CMFy2`?EK`sYukxJQvm z8oHLY#6d~K)^THrhC}qlMoXZeXPe#0rmO7&u1?AR#fT&4VGr(H^dhA7SsA-?=l3t$ z_yXn!GGrE{7F??`g}5@XlMNhP_x{Q2w>{m>4S*A~&6K9nl%AtpX<19<;X^|sT!J>} z8o6p@$>5UCzT5ZA;{QvEuIr+lqI$KZ6)SNJBIv3urvBSZ&&|!S7iN{&LIM+KYZsI+ z^L9&BXy8^|Y{-A@w1WyqMG zfIDr=u^#oCF!_}5G47Vv?`Ng&(kDh zi#Kyo1ZdiJ(Vz#IE5`qN5~hBwVrz%L{LS}DUD#GOs9K1sUt1sitp%k9lWiVfv1iGO z86~$>Mo)wlVBsmn-&0ZRJ75UiU$w$WjcTV8-51AZi|)-UAjKh7`eu>G5WJlDB;F{U%BVu(`8jt8TSoO>>WOS z#}~H$=nEocjGukGjF2&3ulj^w{0#Q2rk(b{#QZ^bZO-L%|5+=%&RBW#+{gb5gFP*A zadVIZHe#)f>5{u1zvO+`-cFKR^Ynk-JhgJ^E}NopId~DzNm>$0%Td$_IdH*wz%Xph z3;@0L2F5@Hz@P#Lp1~1k5uz(hXab&MmMr-u%w|Xp|CAU7rWUa})iqv#-&q%-!@s{1 zN4@Xnk`pdU`raiQPx6RMQZcZ!4H!CE?8=7UoS5pDz3!e~hEG-uJj&tOfR?F=I)Vtv z>i{ax`CN~c7oD*q3%al3og{cd(AygmP>4VJ-XuP*G;n(gZ{j~_2sHhIgr)aUyR6EE zc04G=OA`|`e2}%w%%|`jtSZ0Ah|)$*>W{~O5-RU(zFvA9GRH{rnro(2%y;+96~Dzf zWU5JwqY#H?jzAB?CFz=H3ftDbI9X-9`}#;YbZ6F;HUR)97&L=GGsR=j1Vr`cM*|tA zYNzILJ6N>z_C0H^GJDq>DUnLkgiRPz4tc~j!XdQZ3@JaVd6E+J$Ed4jSpF7yQGKs^ zjy%K}e`p-yt*HD;1Z8-dwb5Ubp+(Nmxmn3LES=WRl=x_wfkHQ1!(qW*j}iGMZge0} zO)=pmkT~{vzjedqS91<~XYW}pN4hg(b~mdp){7IdMtkf3I^gXG*dI8&LdOv;sGar9hf z&`Vpf+{00EB798GvjePxcI=3pfU6?ASG&cS8F(B#M^tZDk5q|%|={JVfpJ6-E)^R zXIanZDRYy;rKT7_<^k(QHNc{7Sk7D@XWuFUab~ zP7$nSYN)kB!LU_iiz$?Iy+WoPpUJgq2Oo&F{1bz@p1FIeMT0tA`R@Rt((RUwD5xD= z=WKBGd@f#Di9;!ecKZ@eqiFlSmTqclC83Ioq{Nl|NtRrk=YG?%J~Kmi1S@+@`7% z=w6BhTzCE^bFNxbGOJ$se59MF(Txurt`g_K--m5QPo)zOY8~CcpfQFaWH)HPHiqk5 zflJ2lh}l7^I8qRbUHBbEWZYC3v!>Fx2ZDENq)5}$Dy=ocws`{8GFBQ5Q?qann78&R z2JhJLJ0LQqapto0)Y?4 zs_BVc1IIU4O+VeuBi$xuTXnv>cy{Oq9{uWcrkFSbjo>gc{P`{Qq~ZRW%iWcprh6vJ&X=q zTR(Xw=A}wi(my6vyxUP{hl*M8&-x9aOV;$hZdD>SN-;s$;s%YQ*k;5o+T(#8M1#-X zbn(!W7a!(6ZGOWUZoJNJEsjT!q6-tJJyWWEMu|XdIm&cRQLzUI4s8ThPl*IzDFg(L ztIVJM^StFR8`*x<9QC$eWJQ2XQ(eJR`o(Yrg}D#@X}TSBWj_wAbwx3oB1lGxKhPo# zM7Xne=)-zQsy2RXO=Az^w}DcYZ=2++ahqc>Kyv`eD>noP92mHCG5*W0`m$Ph7x9*c96 z(S)sgU$x-ytCn$f9X1FJ9+)v0{WpCr&8V))7!*&aFdr0(-u%L3s0>1VzkLj2izv+$ zTh|orW}MB=Jd=tgb9dlNxSc|eju{B`AraQ28W!eFnuL=LIFTnC=Xw^M#kHZM4}ffh z5V%*>GO=y*im}nf+@!2bVOW^Qa{2|H;8w?l1Mip^UETc^J5z8`Og46Bmf`YFEiba! z#%j{o zU#Yx_rxok-$01_bW09KJP+$;9<$$WHU_9iOGxjVwt2|}JCHUOi+GivnSi8RjA+FkURFlSYkNoqz$G2a#|ANZfq)V(EU1fIx zCFCz-5aMDu+5~l3a%rNhl7=D-O4)Q)0&5D zk9YI1k?uTOm_H54#CeZm!=e^7!%u>IQVW{xA`7j2;L0yNpw*RJ|H%Vla!_R2Tqzyo zV76u|8P;Rwf=9P4FA~U0y+&HqKJ%wZ%hK zal2TQ*&WEr#NBDO!CfZUeQe&uUva@RmZE5pYy|%7eD3Sv0uJnbiXryQ?g1@eA|h^J zuA(L!2)q?~xZR}d3s@+uev+-stYS4YQ3@0)P7h>@!jyejg-r_Bij=UEZj9U{sW9Ed zRM-TK#ycAAvqzcs86`Md*aJ)7i?U{b!l?0bR0`!1$*Bjptak2Wzdmyc_RW&8%>6i1 z>S=~O%f>ORpQILVcO+Licc*zJUTOUFeSS)@6$wygX^s74=9^m$(e!qy{w}{518X3l95KcNDsaagLbOO_CGo%Y@Y@)x zp=UtIVXQu`Jzjon2AM4~66Iy(A0pDHs4~kepT`0Nx!0_QEhScFBIAiRG@bL*wF^e4 zceX$A+3io2rJ#r_n4Pi2s5VfleKI4#*g1i~7unfPiFjT|M*%%VA}U!ca}ek_y0 zqPF>ecf!eMb{dP=Yg=0!1wjs-KKNA)xp5@bg^kq6!TsI}%qnQ8&6Ra3Y9ur9*BOfh z<4G>O2>ys$U2Dy|Bqg~|DKG|Fen&vcm!!mKYMPiIyELkWASr1lGh3{g!9r!&rBR~I z3LTfPrIC1J(Yop*RaLq2-t`~2 zxI+W`6jI$Y`8CB*w@jc?82UNCw!R6*;#mUjLZxm3DOLko))jQ?Pf}DtOJf|!S2_9! z3GLtLe$}K9|Lc`%py^_^FCH3ikjmN9{MCGNiC|KDqCZWFF(Au246)V6kK4qN@R2tU zPT$1U*EpUJ+26ELOC8osfPjTAdhP&^N9eR>1qRDf#n~f1EAY2B&%G9p)ZR*UZFJp> z0UP3#JNI05*Xdj?gxLRadR+9)UnS6r+KbGDemlGo6jIi4p78LBW%iD_EDb~;C!iV zNJCTmBu^X{dvVyHklTXtzcbwHQX1-d){v5;6F2rX_ zZXkVBKf)4V6L)B$BbQ^d8L&!ffT7?JR&=jM7}jcP#h8rUlwKkqZO6V zqAVM!BQUAUDv*z$S0JYG?T61BK5^w$`#0W*)XosjSSwz!Z7xvL0*mQv0jWa3ti;U% zKe6iZ6h#=F{Vaorm@?xkRuU#oE`_5<{W~~5*7Q(uZNfyuF}XrH42wz3ZZfS2PDqPS zGc^;_b0bz^pX^1rogw|2Lw|eo<=8U9MCNwvW%*U&(S)fypjLh5SMUVPA6z8fVlhn-$puq79(42FOedflTN7~n#sNXlF`%T;z$51fM2 zdtP+vsjfEtT$Q^@>vB+41(*b0{2@W@yse0} zNEop4UFPQESIw)ivzn&k<)$RKBXupEoa5UhL75qvT98$C{=dvy_6u}y8?haQ;YmFh z$7P$K@R5NB6I>Ci8v4}3?v9k~rk#a}Gpbm6Teb!t;_DOCs-hcwoefjSn@hj&z?El^ zG#4*j`VF2WYNNseR73?~UPZfGVy(qgJRV+NOSoa^3Rxg)Gf1z@+t}zC>)=uPa^hBo z)!aPDgdzXPbW907tda4;w6rw4#_N+1N-R~BB^kA$(Z;bk#W%t&l$am7oD+PZ`@MxRq=FT40wKk>2?7;_$7~wX7w4U6=v_au_m%DPOtnA ze@fLUrjeI=NT}5$)ZlOCuUi(K9-!*BtTM8hAkV2gunCuCM~>ft?M9zp_Knxgn)*}B z&|(U80Ox~p&})0))+JdaEQ z#|ChGLVy@8O_fX?l-sOy0BUG~ZTU&kA!%39ixhJwAk>n%7``hSge=kfN@fs_KLD(v z-_sW^!3_DDvByroqW3h=r-#aFqt$*Es5TtZ-n>kzZ%8Qb(Q7%whc{;;=B{J=cFmr6 zbT;kHh$4u{Ws_df?5qK*>$QI2_F6)W5Kj6dPzyt9f4)bcWzIBe+RzaqMSY3fBjjLV z0fJGFBehV1t~FGuG&rds?JL6}BVcQj=~*hEA#2JBWpI;hAZoY3o`KK2W#4)uR~vI% z_M*dQEkZdBG?BM6{E}jLlX2Y7IJen!_CNWC{ZIaJZlXG)Wh*}`ou*0JE^NGuGUc3>u^_EOr}+FG0aZxaT&vmr4DjM8g^T4fjmML_N2 zbbJyKD2mF=B3PXFe=o|4{|1MGNYpb5=MTxXiXkQO$`EUIuU;O$HD+b;jO-yE=y43_ zH1TbMMO&`TZ|aT%2R=S9dd)z`D3l?ngxO4ZhKZ;?xPc5iy&4Fu@sj+&EJ1yerN3ai^gBz)L9`w7eR@+{^_b1TtP6p z-Uh8aszIXhSb|@rrgO1T{k?p(@3a7iVCOG4`b*{EA9@XI;;E28@L5_&aA?jRQRs9!69&#yPTr zgqm17px&t!vSqPFXe5*Y4-#tjlk9{vnO~wG{?4V}dgGd}zH!Z=U*?GV*qvLCb?61l z$Q$Dy*MI$t-QZ|~OW1$OR+i1_i(8E6d2WnCPRpHJE>_L6(*}Jt1{Iz2>Ia!l;N;e^ z^@FF-8#lU~QjuDjZiZagNmE-NWmR~F8SD4*F+GoMBijVaFy?v*cutty*gQY3645Gx zn`=cB&})6~;cwcc^&%)$cQtf|t!sX22xfN*p3;X@YrcpQic}~|tv`zBhQ#)Rb>lyP zOVDEc0w6Ax*Un+#d$FRdZ<+O{hpx_5ovWAX@PVnL-yIl#qe7S@WWeWvQ>+->JgzEA zZ@~)gj(9kP-j1ytxI#W?rUP7Qy7yQ#6i`EY4G?u6gS)o?R)cxX(T3+n05I{7s(vq@ zz-Xn!KF~irwMC{);G~MwvZ@)4Kh0R1{oz$wVgiTO2Xa0!OG?_g;=1du8~fI}v0qSO ztFLi!rJu=(wF@jm3yd3;Q z2cvZaSb*>=Qkc=zsPc?c-|U!9wvTBWKqMAX7o;|g*Y{Pr)IV1mhYj9dgZd-xb zD7dr)eD|TY(8E)3x|J0iO&))RVt(Pu)c-O4!WI;dGA|XOk;G*XV zT9Id%TyaolN4>@za-Dby(1`{goQ>kYf5dQx!z3J`0RWY|DQ|ct#B$8Z*IDayyICr9 z5Le+5+uhJt)f_WbJ)FrTiIaE5iXPvDEstn*F`Rr&=@{+$yMzU+`%qcnL-~ zQ**nM2E`D^e_{c7f?apX{)QwyVnw5qa?Mvl)Jg;}M@e>j9~K#E4Lfsg2yJ|ITA9eO zL7%xxe5qo!9a}t@L&p_m=(x%2Z_Mc)nuBeE@{Q;t^bD%vzLFBcz;We_fzi8Fs-?s2 zg#Y$Q3i0e6^Xf27&&N9)#N5P0w0dV>-#-vJ15(y7g6f`6skvMi~2Zr1Yv*(mu#|DD^Oz?fx^4&RDEsB8%R6>dww(8|TQA+}N4`2XwQ+>RYa?t(-&xY=DG0F!H9eL;y%`$1Xxl&3y&6Iy z=!4s2ss?*lP|zMf?_+=v6v@zAThXR~i>LSHn`n9c+XAh%KEFfP-OCuq@re=oV9^s6 zJ8a>3(;PK!-@S1A@lX;oLdVvaP#>D@uGx0aM^0Xb;zQro$kDRiF#;JpJ4cQStdiad zJGlB39@hXaB&Al^t7rmyH*Wv&MrMyL-MZ%SgR2MUMsrICOz$I{2XJMHj~J(SbQ2@ed!Cy>+pMO$Uc6N$8A$w-n;mW;#4D8lrC#f+zIs;XH~=aHPM z8vJrKQ_N|`Z^5E{BMcCQueG!)7ltrX2U4DP-ss&kcYkHUv9C-SePnq2ZJ)Z=S0lTl z&vby;#Vsn4Ni%4eSJRv&PKVgPaT}uCIL_!#yr8L=D2DRAL*X3GE$#lH{?bY*03F8s zT0JB*DIpB=tT8OQlZ;bw2!Co+>fvoaM5(gDwG`|U4|=8^_>Vc`|1lRLJ-&`haBo;C ze5sF-IRVAoTfYrw8!JeC!`aQRIr7hVNEkNwCipz)N(QRE__IbfY+1bT;a3-&Qbj%C zL3uP~lc0r2E0Kj*8*qor@-ZcfEZV>%j^xdCIqpAkUKrMRA*q1|TYOMvx2nVezT$7) zIBWIuM_PivYGwomMdR4E05paxCWYC2dn^FCL>&{sAHd2*?gGB&0Kcv=F0 zXCrI?*=lE@jWLnay;|zrvMzz@`rH@BkXPt@AKXkt{)NlSgy%3S0T);YsBVxp{=%w8 z@GybI(Un*ne(fj7QXEKDd7|P%BiMoZ#$$W)OqDV@MF_&$XQHwG6`nJx&$M`vhVqa9 z_!4)T%RYVMqny7eqk9D_L9}?cvVUmk-1Q$hdCnoMk^A&zSf6vZ4N-D{`Gy=|4*jRE z4}as@r~e0}qH#BWFK3A~j|Q+15&mg|@!khkEbMTn$m+-6_v{=P*Z#8ZU4>(+bS1p_ zvjMM@b}c;`A58{gS2Sw&SrW9+Z(kRNrh{TfhqwZVIB5j)`#{#83UiAP`59p}vrKb! z#gd7#vBg!UA+oFWcss5|c8r5|uDI~R3$@j@Gw1Mc&rvoOgNTN8Hj1Ia6|C6?$2w<9 zYxnQ|Qvd8?4`l5;TJ|kmWiTwR^$N&n>F0Pl+teK#j_kSrvpyg%x@`X4ZM86uOTMyU z*XG*XQYH#^?J70Fo&}k@cjKc12J)n$RB;hJ0TydY`HWWA;#i!&sWMp%)U~+B_L{l| zaZR%ILx~0NQuVf;KBPKk+x(W&Hv_q;+SChlJMuwLQjcv9JbClLXL+8zXm{_nyXZrG zQ(8s8N(4Yj4W(&s+i>|5Tg1AT#n%QG=D>4y8F1ZMy4eBi2$ zC)0U9eESu153ZWWb-7h@O{*cP?7d6Pw3uR}*|p7)K31yVBSlkkejI+d$edIwok74& z>x*Op<8kGLxSs*T79`nuEs!mL#MV?x)F;)ON^{GfiKlv@W)-%z2BkIQi`rx@wsnb7 zNVJ`KSN-6-8&L2?<<*Yew&-5SKS;6IF09;9y#vcsxmsXiexfXb8J|KmHKNA;W3HUa1mR^%<1+A0Axd|ggs-dL4@dX7%O zgm=RFwZ4U=NdQ3>VRFeaPxTEKSq7|1+;X><6wV z^PXIocegJV**fu)t@KOU@Ifd&0dH~9*1eloohat*@IYYh%5zphvpv4+i?q>k5>_fh zXn?71m?Bi54Yp*6PLgI5QxBDVT&n*7qeyXa5iCIM{sBjyNCp~?zJNLXgMpZ=EgE;m z0r{2Nz**ii{-S3v?aJ3nN_Cng8Q6ry$4CRPA@Via@XOT)w=Ft$8@K$&lnNxDQB91e znOd*`sfuIgfOJV&5BqLE+;`&1dELK_k&K8J;tSu*P>ts6Df-KiQdl#(`Sf~J=$DhLMpj6X)gS!g)=plU{;P$Xm*6$ypF^HuhE^(@j5^*3b z2O@PCig>RB=M#AseD{mecf8t?mW+Qkb%ZEoU&;*gA zr-36h5V0!2Q0%8g1$GYC_Vk@+7T@^|jaPIa@Y`21I|Q_1BORom7XwKAW1Mjm3-P|s z#MEx`1J(#O9exTT71fozXm~YL%ezCK1h)B0!QX;2@ON8rzSMur5#kH8P7Jp&1m%nr z4D|Pv{nM5a6BFVNxm7PAW^B=J6V$f<7yQ(j!lC0&n@z=4)ukr$rn7bKHIl{?A%Dsi z#S(YJx6)S6!ny?X$;dH6Bu$iRLto4O;*}<2+3w%Aw zkPKyUYf=O(&@`-O8Xav1nyAgBDK#)DQx8VON|44u9eyNBuc6k)T=1+qRoKSiluc5h z@lA|ddM^!M8se#^o_g@dSkKLoau416eel1i{#JnkMgXKF%pCX|g-Uo;pmy7N2S`m5#RIrXvZ- z5u&!+?6Hu%J?YMYw;+@}3n|KgwUUIuR#saYH}Oim7nujdI#_`c^ah;7$5H2_x4qfi zpq5@9GD=E?ZTK5>D8KN(W1LVxZy2swgc^=nQ!Ew09QWXJHr)%%4}AQ(xqpQqr#ZMp zca>3DJTx%=-GS+LG*VXi7%mkXZ?v_2s*5_tA`whPz1D~INeiNCY>dUhz?XII|LnP2 zFl*j~#UgjX=tvukjSGn>(M#LlJpp{N0z4}(^c!4x0uQQ)KbxHF$rS1+yvf8D6#rU^ z5cS$P-X0*rwm{0`;7Bv}K^O(iDzDC@j`dq2;b zT+9jZqYH;WrHIK!tl=CZzNhuEz7<#N_S?mGZrR26e6MeX>CeIY<%y`&nwW{LEONQe zUder+svm<4)2`JxovsYbQp?4g+3Wnc^f8fiJAk6PMP}rcw={&+qGh*>V!07BDWhoE z#R$RTNpSHxEWpKp2Pa6|g;-mIR;4fq%$WkQGs7 zU}dx&5YHQY`n$L9zw4Oxr7#3yN{*1a{0;u+V&2KiUF1*YYGf-Pe}fKBpQ!?z#PjK}wH%1ynxn3vgIxON>Q@`cSgO zMWiL{;)5-Gbd>E_Gog5FaK@CF0%dBZB-44sk1QzuYYYuzCh6G&o z(g=SB9d5^(%h0-9g$Y8#Cri6KgaVJ@Jt!lSbs8&sq4S#8MW#UYjShPn>Kg zIvhWG>%g&BD#}i)RZPamaNXz^aB}Yyrkc0|xL6bWRz*&g`_vZ=gEqkkizG3ptx$xJ z9Y1bR8!w1L!&E72^iflB{7kJLrS(q@yL4nCaY)@<~i4ct{Llvgp-P{`*-&!B+78pm{uX z_dS`m7k3S)<$Hq4>PqUqKz# zS(`EbrgchE`Vp^4!Dd6jhT>xz3zYOKZG!GZGNIKjQkg?Uh}bq7EEkmSYegHgvP~6k zIp;9qNwG%T_#Ikpok-y%+Qkys)G!k8E{o2*dhXoExLShKb`?9L?@|b~Tm4nem}^-& z2Oh-kn6G5ngoldH-LT{XTb7KyN2#e+X3FG)&Z9eb9=&YnEFFeEx@~Cuk}x|;!SU*4 zsa_^-0a`z$6-I^ix|HHl1}s1WT^r`go9Itf2Ag=U0CkawFOouh7Md8Dt={Bfk=_UoZ79+=? zr5*~cKw0h=u56y9J$P2m2F&LA!+YkdxczT!THAeUEf(aP0K~~;cUwKXRx?aQxWi%f zw=uTOk($gnd&RaoO||X2l3I~S&;5a?$tSKTp9EAUjw{%v1qvn%*hwd3nio3;2TRuXaSlGLRIWK=OHB^5t&}=@?%Ymg4>Uc}DyZies1BNIvgWT@ zevfODI(Po$-n(8g6BRTx7_f3XvNaO+YBG3Mm2K^(xuVo@etYbvIeO{f*Q=TKCc^uc z?A-k9?aELojfq+OUie%gsl^mVgjn`>Qw>_TR6^>3o&tAx?FG)-08-2m981vzZvh7o zF}TjM%bfms!d{C`J(U@%DW{CpD0AHX6l_G{P>s5W={z z3RLncqUX)uT|4m?6BGNpYpUs=7u6{TQ8SAYoPXy0JHNr&3R7F_WVT+A8~Lw^buv$_ z?Y=skSIEaG*|Hg`PP_?~8M!5ZbBHBm%D){S8CG9O5Kj|CDtA7o`rN>+O(5Fww4;r0YCjPwX58#?ny&6>Xhyj} z7a${|7-08alAam8RCq%_!%tCYH4~!-&cSu3X=9vbx@>~Mm&awA3bJo3$2tKV9OhfAWRl1Kq;|Gs?~l^Sl-n$a()O*Q|{E`<#@RM~-b>`ldg z>II*~$KoBe;HpbTKV;2N>A)Cv%#a!9x&1P#JN(9~!8s&svv=}0%K<_GNV^SqXBW*> z9Or%UPCAMWns%$Mn%N6)Sg&=vx{{foJ@mSlVh<_*``buWaeJKB(*RDW9R5|2)xHtT z159rfcNi?i8fV8TyKhFp>ej{$j(07v8h+iZL%+ycW|$U2?Z8KoDG^|aK;8wmwpw9U8rPHm}%Ms_#1nzL+JN7H~D!(Ohn zi)u9FTZ4>T*8mcY(^^wQYggrZsTo(Q?1PAzdvunS)v8qS*yeG?Ran0BZI)D?c3=sL zPrvofrN5L~o?P6EZtp#nGW7lPnKhxZ5c6qhBoIzIG!fwvc-RODM}1i@x;I>;j0ffr zG$f$+mg9Xb!H8)B{D`D!D8z@J*d}JZbVE`}Kf)gdH4AlIrBnoUBW~8+_};n&{lpqk zfeVl=c3%F&*I{F$*)F^h%c4W&O)zY42&w+FS2_`i^w*IT4Ij%3-X@N%glLQ#YAtBt zczySaWC}pJj|F=NR8mm;)OA8~CJv<43e=pj6KAEmtXI|GCGD>^;d2<^8HJ4CF`maPxle4t(MW00fw)DKO$%bzD9jP2CJayIWqKK@5 zn7=HSLD@>fNoZUlryzy1NP{oF$PQ7*SDJkZ&d*`6vvlF)pl>uE+TZ9_3p^+0+H*Ol zpqC9ncqCu>@r=Hx${AAcc;VKi$8*OqvstL=I=f|gp07ChF&6k}?)e!gr*zLm@O1ch z_doXlce|2(JFGorrZNBTMwYD|d6fHm?tT1v5x(Ux1g@hJ`dH}5l|C%F#}@HLcFwiF zQWJk{OC$`l3~e`Oixr@RywM~XGiE734V7Nck_0>-2ZJWeBN;P+pUJ@npCzSZsbeoU zhu&Eu)nYZ$I#y7urDCnByO|)iiQ7P3{1<;ATV!zwZhpRF{Z;46)TE5&bqc{YXYvt` z-G5b-BL$7su{~PmX!gerkavTpBwNs&D6n5)vkbV zpoq^alWly33y4)}-Gmsn=aQ{5%A#Fd>%2SckzUn(o=U&CPnM48iP8%bm&n!hK@7=5T?|q~yoE58Ngf(*3J_<#O#B90Yysfd zB8-$)6&q%F2Anm_^_=vt>CHjPZMLrL*U4Fy?X+U5Z5B(gUAgT?qAYbp8ls+f6b&`0 zdd9h&ht`h2urue_zs|XrORQ{4Kk~(u_w1~}QjDpV-x%MC>7;cf%W-}>;A^ZH$&@iB zvtk~p5CJkmn)C%vPf;bOljqETJxnSTSwqv*WP>Q6&U>04dxt2>X6H@Q4aHD(KFiWO zdWnHZmEyydwKMUCL3#`Z0V7odF2>wF>x*{ZV%6@S6=uS(?8pscY62b6a=Kr$XIL)W z60|}0w~$`SO(02+;*%LW&XiAFdv6h5t+{*GtdVnA`S8c6|8Wp2 z>5kKqoC+kH&JD6|9sM#;R!q)3FPK&aWGmGsGF6*hl~WU>Ag$ZWJ@$oZk;f-}jXdoj6ae~Iji#!2dcERl%sSvm zPzKW|P&RNqH~3*?7H+HN!ef34Ei}9B@15Pot)*gts`ts?>CIde#zVYltFNxTKM+Lv zga|J+Xu9g?D`;!u$R69E3E)J;wDkPHT(V?})?wKQI9Fr6uw*Vjq$(wIRx)$B2U=5- zA3TL*6HBGaCqMqaZ!Q?SXMyLOlaP~;`WZL%w%_M&1!>Q?r*cuIC$7*&4%Yn;h!dMd zr^W@iK{2)TyOtT3*{wtLW&0KuoyIb?m|f5<&|sOdJe^G;D$p{H_L$2D$9=#>GXPsk zqH@$w0m`M!XkU`sr`@%np{mKx`cASHb|vxcjk=&b+zB z(YZ(EIc2fOW-r>tIbs~V*G`1sF*rAL=;&pKQJeNxRt}C{HyBDMd@6md%{W{ynqHar zGuUxR+e6Q!XwHGZp+&VK&u+!r@?mQ8;?x+~AQ8Cl*;C{3WOp{$cSoqj2X2%ZY_$ zXf;99ftQnR24=X=;A&tO+OAGgt!s@9)wj>H=@m_7ThRFQgbGAVTNrmULiXe}DxV%g zkJEf0ZeG7Q(Ou!RZF?IEeS9O2k`q7aX zO-BSnP9{qe#wzMI*XyWR1TLWK#wWJXdMcZK0z>DG-m}W->Q0ZuQjPf>$2Jvr;rd6u z&bX_CVvh6w`Z^rx-GUeX2gs-*&h#D4C71gz%;D5D8%|9d!z%Y*W&c0|-QO&M^^d=J z#|9iIg%Tnu`LQvD{#E{L~{o`IV8@6c}r3zI26~KIm@QVIJdTz*2>KebI{9R{T{;sSf`{3UG=>#CP0r2Q(G? z1De#o9@TlL?BEjYiG!=XLYwPnGIxU5*Hpbnc~kxCpr*Fj<2R|( zb+}pr2k~ybd844 zx!C1yMlAhUx^`sQZ0--e^(|i*y?2OP|0^yHo%6;^FWu0LZ((!+wEv0jxt-VkR(JO` z!hkoQSAaDNbSa_vZWH`~TN-4-Nc`Ds1bo*J_Mu@S8Krblza1(cX;7-0?7R%16jWF7 zwYOT7WZG#+st-oK=qJCiMyc2Qk)d3SF<8irwuaaqwjgF_Y1xG`nV}MX8+Ztlt{f1*L#sf#f6l)k7(2R5 z3os*}AWQL~Nk6Klzc+i=5ZW}Lpq^+}NYftt(!k{tsC!cQN%~%t*bIB$`nR6>6mu3I z``E`~bJ|B*^lE%P%(6GCyz%y^xlz@dJKNU?DF15PlPR=}I>dLR2c@6yG}E+f|L`w?iTwg=QqfgvMF(0z~A^x)(uz(2a4 zO_okbiy2zUk=9X`^{Vo(p5T#s_JNbu7}yqCGGx>AdFjx$G_Zj-Rr?SxoQjV23@Oq$(LMjW#;Jl|e?B8!S0)TE`HZ??_8XxD z5<6q_kO;vkJ(@|bMeXTMTh>K5paBZ8Akwtv@@aq2!#^dzxxP2?w;)19RvUmw$UDy8 z`L%oUm7aXEETsm?9uQ+`3)!uZT?k7q*G#c$ON^4z6dN2}D@28{qtsaHk@}H`l8&x^ zDbIl!TjYB(ne=ERs9RpRSgPV^Bj-Lgte8aIt3V`d)umfF^qS3f3-LZSyPsXOTlt&~ zdvDvebZpn`nPrPVyriit77vS(Ep%q?aqKIZz?_w7t>HL2i~gJ*2r2g}&e|}{0~lidxI1A9ZE}2@QP@E;ctiw%~N_ z`1Y7est~7~WEah;0?_1YfmW=xL{f=*B8~5!0ZsNl%~gV#q;G*Xp2bR21avEQ~LqHC*;(&nLaMTk8Q{4C?X4c+cnBJFcr;i&;g~?DfGf1f*!HQsVxB z6^&3}ldbb25tXN@;kBNy@77;wn?ECL*PfW2NYUE8Qo+T?_O3rXx@BMuM@iTTG4Yvm z7Jo3tyy}Mb zpor(%dzCif8U2*0n-i@7rZPC9v~BvYY&)OG zw;@j6Fn)B~t8pAw%qzL}rNi{;hR$bReZ_7&MmzJ-gXa|sj=kWV5wzc;{~l`}yKDck zLp%cSdw+hvd*YYP9`}<#eTS6Z)x^$| z!*B=VUG0iB^F;hHw%{}tm4y20#1>4X>n9OO%MWwdOVrE{6DT2=urtO^dKM0O1)$NU z^u*PrJ;N-vC4su-wZ2kxY5Yt?KfYk%H2jw)ER(Y-ZV#X*uwM2>t<^k3vvRlp*|8^_ z<10;tgU^BhHVkjOYwxzen2EBMwf5o{xVoCA4m;px(YPsfwofk|`qF0u!+#QCWe>>p z@YiB3TJa?;ZFZ0gd0wf#hkZgSLTTB)9M=*p*&+wId7(~C0%Rey#Kz3qyV29BG=6tK zX33gL!nWZnFr{?wT|c?^&|fYZ`OC0c>Mhc-qlX8&S9Dt0$SX6LT432o-%R@5HAjC( z3ZFSUF0p+cYd=3%xz97-_HS;BlVBDgH?VA6n5ZVVSbKiDSzS7X{}gDIh!WE1JKD!2 zGGt7ln;O^ApsDwWdP~{WoFM zS{^<9GLjjr(b}1R^xX?Sg`&z2>`G`Z;u2B@%w^cC#dbODU01dp>WiOzrGtohVrnU{ zgW3NTDp|*MwjCYjcjK9FtEkmXu;SuIkJ`lSjx)_SK@=#i+p^)LCEXIe&0&JuUHJu| zbm*+CEqZRrNG#Fnz6nM1we>LO$!#JjCV>fOQZdK3R9y~(_(kJFX35S{VbyhXH%!>b zx92K#yKSOW+vgG8ZQC6nsMoe|3B74tGD0v|bXTQr`?LUR7I?Qhx z9A(n?8!9S?PxTLDB^K5xd6o(bHc;f2e2j(f80B90iCTf|mzs;<4-{Y|N@70&*o>~i zHUmFnVCORRutGg8T9QbWr`@{n(5tlKw2r!ymosMmtJCLBDdlz|+%ZHM>7} zMn+R}p7gcv91o#%9qMA?hngw!6ZU}coX+~~SH2uY!RLhI>5HR*!lpZn){n+Ti*{>) zqhC#v?y=YSKqDE60V?c#CX&TxGGPvNwGqkq_FuaHvt%NBx9fQf1ppW~x#z8+PM{p# z%67fcY00`(56R9)jNq7tde>bKDrDW=LxA&YZVjfFMFwf+qd2G4!&`15HyiI5Xl_1o& z7^z82>Kw6>87X?!0ut)y9PIN5W{AKQ|2S(87mH$b#$y=vU?9}sY*ic;MH2yMR%lGG z$x<Jn=sj}XZhL07)QKlHkt(y0N7prLY;+@9<-bGuG&d{uug;5)Z znU3llXwD2hPzpzGTUbJe1)AiNs?XqQU++GU-4nlp43V zO1lyZou-p<3s)zL4)8M2tUQpx?RJ_WFhpT1VYN6PAaFu^{q>vQH0SS_x$yVN&KX@w zgbfU7rEDl3EPZvXlU?~;1!B20Aj05UZdD3uhHG|Ev2W6tB%%&6V{rw_WiuCr>KMls zW4b<;?pjeS&AvA`9xW&Z^*<6TG04$cwH_0?a7-N?X2b#?G}T4jql@BD7j{Mx2~+c? zRVXT|2-NK&)v$$oXokAwdg9$S94KFtcE(GAbHEw};&V@+$d}98u@D15cVEU}uv+f^ z2T)KGVXP!-T9&n>R?kX-9@9+h&c2g4*Q&E9fzH)n50mJHfi(lu$Skv|it z$wd-D(@X`Z_sDwg>{J74mTD2PEDf&}@5Z17ETerW@FOH!ZO(a9_Xvk?cmY;Ax~>HD zKvln&b@s79`J=?E510lKd(STuTJx~^r5Uc64Y$^OTT`&%58c?zlE32*4Bm(Ta$X*T zopJ2_HRq_s$x0PkA@=!w!SsU8JPy^;5nAUu<-luzC*AZrzVeoX|LgSgXew%!l&o># zoiQDoGs+M7luBOG8CsIA+ zJ`o=gl=!=0rXB)?)t1X*x5grcyLvTL28masQn^Z#>2$Zd0%Rg|{51YcOWM9~@Ai*b zu8i|E+!xZZB+?3;GIa2P-Emmo;WDtXYN2yh4q@sY0~^m{EaiFSvkrayy3PTBxoYFa z^W+D6Aa%RyK`|Mn`h_b*kDm6}riDboTIzbQtrn-qv1$H8zt^7s{5Ovy9=O2F+2y6z z+MuVL^IYr>DkDs3Sp_K(W&ca3SbXVSSiysMZ0gLU0IgU8kn z-n)JKtkQ1laCU;NWMjO44ItHK^Xai7jHl8Z2_!$ul@JrGmAXI09vl5w#bo-cQ`N+Zrt&BOcp!@y~vJLZB zv%cJPl{B)gx5MkYPp_NS+7-0tC0SeWUA7`wWpSqX5m3puT5il^u2&8nyJP5`ix$o7 zF+juDu_8R_DSFVQ90J4A3;GWOwPqaN8&WdC7>c-gGE8m6g5kK)EVqcf_qM0Hf56do z+J@9dSz>duu*Lep5%W6nPHLouZKKP*Iw*ZNQZePNJ!M6>t_0rO|9R$(W8Ygaeo|*0 zPAuK>W2`Els$|IYPaL-i!_mIGfZm#U-?f(aJz>Y3?x8u$v^*JLDi>&}qbDw!x05Si zActtV1@>uJm0c37j8N?&Ew;8lQwnz-jGrIMq ztGXAx=kQu2e`8rKYGj~NzT_t3*6ras-I^+5Rq(-nx1uE1S#y@o!J?Q-5(bX$bj|JI zqEKRzLV8ia{P5x}r!r%A+>UoIIQs5oT<%njSs2=CtDOx^7Jtt+?sad^ja>r|`F0-- zRb3Z0%QA7`&B-gbz4wlf-g@a)D;VEk+X8TD>}0?j2}K{;;5ItsdQD4D7E~bQVT*|{ znAU06CQLatS)qX^C>HVDo8GLVfjqB73lxhA`F@e0+a4?JvCLGd2$CGhRL45*XpSX7P^&E@FW?UX?fp`GHjm~km{gzoIp@Q_^RjxO- z_}~a5&gs~WJuQo1!ia|g-i{gEDLp)@9-_^m$7#UXzy|WQP^HIB{gg)No)#Ax1*2gR zw3Ik~OPrBF>IbWVmj51+07c zz)!ZUctr=ZFFRR$&b6u-ThUIaTL`5U7m>+I$P*@7nY2`)sh`vt!NjgMbLyrw=IA7T z25wP4Jd(KB7L3`JodX|PIPsDPcXy{=Wb4}9YssO?_GNY9kaf|Z1*xu3=!>p3#k!4l z8p~u~O^NN-+1tu*x?GBzHAM-&eT=8(u|^HXpRaYN!2`%UEv8*onAXhl>`jX%b}!;y zuB*AzejD;aoy(v2kJDH!be8-{kb^n}K+Nv4jg#3UJ4!EVOr(ybJth|wIn;9Lk!p;j z6%HAgHpUD$8e>M5{p;?1&*6bjaP*C^R^VYPt)gbj^|nIezRFX=vFNY0)EjOlMdkEf zR{p;VaGhc$1^u#DAR!>^nO*Ym;u(9kuHDl>66C_jmh14Jy~$jo)sTAIk+mh&cY~+; z=8iuxZx43dm^kpmg(wWR^c%06_0`W`eBM-dhc}(oeZg%{4gWVSY~WBO77!xnQDr!2i2F&SgydPf zj9?~W?Q(54Uasx_6ag=PRz%&h9nb4IO2L@(RlekC-soS=>m;6Bz}s2cJQnDRtPnML zy$Tg9($S5G2r%cb+5|in?8ue(S(NJyYw(HLoe>6b$ktDCQ(wibx#jVfu z=g_t6N%xQ6b9m7^ZW>&*@I8lzKFXbNcnh@%=Vi)S;u1bK3W6~;TTv}hwXTKv`{gqR zt;sN9SQ3jK<)HyJ)&<}<`?sbcK$^uRp1g37DR<6ZEoB)u8#!}u$#n+We_rL&d>w6g%_hWN`2+5ud%$RT8-^={0+f8QmE0GgByE4u0N~B=#-2UT@v%noZ147Pm*0Be--1UMO zam@ZmR-e9R+I8tPjX03a`J4`9z!|=YU@N~bnJZS9?wjG94ebQ30 zlhIjV+{n@YbR!HxF&fHPy)WCOg~rXLDMdc4em9I|ukCGyBc}`q=HGlJSj43A!mj zLf5)X-_mDT#{vM5E0`}}QVOK!cdi$g{g zyjXC97vNNH3AQjNC2M4zHt9_=tQ#Yd3>|AEE4yn(D#fns_BL!uy(Y+2=kD8Z&FSYo zfdy4OF^QG^wNZbvnU2M6`#WpXg7NPyKyC9YnWo_mqp1g2Kk14+_xIQs+6Hw=6`RZ* zCY1=2W(V?_sk@L^j>aMug?I~-TBaVBrYY9EG7J&0eB=+vp0|AQOZN?JKC63^#<<#3 z)O@oo>GAOd`rr(zcbhEJ%u3tTy!vbo`Jp4B}S!@$q#NDXA(W}gp5bDN7;lOLpL zBOq;9owY?!m>I?+j8n*{)e{t^sVgTh9lnzB7O!4Arp`(yP z6}C_+CRlEzG@{JRT2;-$tqr7NMrUE{)J~ zHvXxSY?E-cPQzr`zHQNV})#l$HM@5G08cYm83MFiaD!Q<_va&fKUUXOwO zOdnXZ*6K_2EzMj;7_tf2*pwZd%Hz4XDn!Fo<*%Fl^#8SQ#OCoIL=bsdPWt}W;@xb( ze)cAwJf}E@HTN;oyP$)i0r%RkZbnv=saU$N?IlJ03=x)5hj9*p7eHxS#EJ&4$WdTv z_X5|AD4Yx@2Q+{o!^y#yZQ~3CQY-%e7x$@!6SvY~VijYxIiPK95};O5NzmcsN^JQv zAr~+-$i)q=4@36K#_4(Gx%=*{yeyma=SxLkCbkSrIGtEB6SF&V^6?hp`$xy+# zvOM{Bu}$*?SJJd&f=P=iK(x>OZ+@@a5aaF1#K&PR;_0FUKy+JzPVt zFK*B58?S8mJ?Bj-s~Ze8%mkkw)X<>66;m3J;RMamO%|PWe*aHyf9w0UoVw(|W2X;% zI%>OpX6~}*tFq5=J3hPpiO;?!S1XQ`MQ*mv7zMuk)aBVDi)YW+gw=^G6f*^H7x7uk z`d(1bY9v9C2>7F_f8{D~)wdGQB%=YdLnlf(Hl};%@d|EcbY_cy4mSW2jMTc1yyx)j zd(OJ;sRzDvU-vkb0s?~ARVQ7mGi1eNV#}5Y!0j`_mcICjecHWc|N1(F5QlzH?uZt_ zxBmH8c7E*KeLJd2K$;yBCNp+?`_r$SnahU9lQoB*@Un{QCVsT8GrD2*v2!ZARCF$V z>Wi9xV-{&f7@F25kX9@S?5y4BYBMcqW9|w%L&ZZ&crck8!^oGja^k{?(}2;xDh>UP zQ?`v=2H$4MFl~#(p7g#%8B>3brW7c(Ej?6;BKwIuL(`1jCV5ru`5Hg!-15B-b9>X{ zf!JVo zE*aA43~D1(mmsz(1i_zm1Y#8E!AP1EJeygYp@j1~%-A%i19n5n4z7~;hmUXWz6-wX zT{m@~>w^Qeug0mbRG}vIJ^ita(Vu5j^n>CA-Nbr6a4;K#IG4?)-}ygz{@vca3*WG2 z?l&1qcD~4JIs^L_uRiu!R0iJvM^VUd_^&hFe5%F$OaC{kp8aI+-h-&*GfVz6V~J<* zXEkRw=^CVP1lQu9V1)1v7WmI>g8u7Iv*?O*!GBJ{~IeByk<(}aZJlRj_7Y@wCbPYtD;Ggh`5H`C!YcfEB0sx zR-%bS!AKC^3gz`Jrs$r8fa316y5D_p_kusU>15#YJ)M*jabXqOPi$;X<#@WR*jTOo z>7yFd*VMV^@h}oR#QKrg#jfga4@0eD`Ypd+v8{zhcjZ zgI_--_o2lmZE%Y63>GF^TCW-c8RcM80n`}>R^ktwHG<7gOc?zNhN;`oyiI4#eAi9K zF8V664^e0pYeEpJ&3V~HW0zqeC5mI;@zCyp4=OitBfZLfC;Z7xd$ydl^}e&Vu3ot2 zriE)}bI99yaQE#G?Y{awhhKZ!vR~Ua_u~s^eS?pl@vrwyduaEH^4Z9({NU>MTrt3# z_Fd|C#0T}S@?mH5R=kPRBOg6`d!0xhpV>Vyb0}T;k1G)(3AFv`ONNeIGCXdj3ohUF z(X-$8z3#%>oB+I958Zm{qQ_$c*usB`&3!}vzI^17B|qi? z=*zeA&zHLsdjIzZKg>faMq6BW{CPh-e`b`(2pjX~e(~vnRp0V6Zr=8OUo;<1ZSbT| z-qODR-+rWDc3<|gd~56H-8cP@Nq+P%-CMF3tslLq`{oo?`<)Z({^5PimSsc77hDh$ zYQOX8p%4GOV+PjG5p%5#rN`yZRk6~If4Sx7Hdg7zEnoaOc{EA*=XBp-ke`#s&&lKe jpOMGlabN#m%g6rwi+}c#4*u_=3*PYhFaF-!KluLwA|(KJ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-sweep2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-sweep2.png index f8eb02eab058c5d4d96b86434818ec5f2a2508be..8c8970b6a030c81a2523fb99e59bb9e19c65f5dc 100644 GIT binary patch literal 90464 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�ATf5iBXfQ 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 literal 90488 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 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-sweep3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-sweep3.png index 689126ca38de37a70e6afb48965e82aaf7664810..9b23c9461f7a1bc4ee68cd3aa3c4db84937d47ba 100644 GIT binary patch literal 59841 zcmeIbdwk7Tx<9^ETP^L$&`a8C6D9QC%&93_A+(g#s4_FmP|2tc)4If^L|n3!DypP{ z8cj*d>F69sQ#Hgbc2yK5G99g3unD5-l0=Z}-uwH0KWlyVUTah5{PBCee*bh{9U{s8 zeAar_^Sqz;b6IQ6eEFp=x7WX~zRTshJ)vu-UM|;7`0|E--EuSjDwuSnx65^AMnb2K zzaLlU{8x29j``CE-;@PXF3jGsd-DxK{u7`g==0crkm)Q!Sfbs2ZE|#`wQa zZ#(3N?Dju)j41l=6`ybT>FPhK<7a;Rhd%ws{BZRjm)&gqYkJgYtL{xUH`qQ9(| zrT)LDqM;kV*qEgoD?a}PJZ#|q1w1ST`2{?F0gqpphe-f`;fkg-ej&lOG=5?CcGUC# zW7tw1fBM5ApQn~CYB@Nn_SM)cuV&vgBLC_Aah3e;uOmiyCsiC7FMnJ)cX06G6z`-Q z|JL~0t;wT}5G?St8RAvPAK#XEZd+oFJh<)V6K&J>J-z>x@;@&*b9nvekJ?SRJK>|Y zDRXN2yM32m!T;l`ze_Jpt2mP4T^T5i2$U9jF8A|XZl}IB;={|H2gd(vYE+&PnFiYS zAD#bnMB4fNY3D1(FW#TJxMFkhheM(!UO4>r#v<9<_b2^qXaeGSb z|KP>@Q%hD4F1R?sQ!&AKXT`j{x(P)|qwuQ4^FJic-al^k{$rQU?5!0U26m*^?l`T! zw&d9Y5&HOF8AjtPQLC~hsb-D$?Bb(m7PqfCcW`y>$sYa~ywOu{a*QixWPHNm9*qKh zm-omj?wLOR&h&A4&Bj4A!_v;?q@CU9zSPBiY4nASC7b)1p|!j2rH|{in_&<<|LF_(>-%o)Q(o1*$+v+AMmc!#{T2c{^L0w|5=ZJ z($%wi^r~46-ayr;eI~2?8Bg;wTfCRLd-G022gb!bcq`^4FT|{(xs%1PTdc+$SJqWxy-A<$|5iS6mu%EiHiVy_%ZD!VJGtWUwXZ(7cAUwp{@6g2R8 zOo;P|sncX;O#(#tex7FsZBy9JVxAT^-Y~8wbdVmU2GQu>n-(2;w z$JNUqhG>6(_m#o!v9-HAwY%oN9fLW!5*#7s`C`frbCzA7Yn1UmepuFl>*xAlSMzjt z?TLd24z%(2&A!|>qW!baZg}(T${hdGrt0;0?wPdOHs*H<$^$7UsdoDNdls4Gz zIXz)>J?8~3dA;b#xF!i*i#p@o(9DW?nEsN|w;%dq)vA%T-H)E^o>;xFU$QR~hI7c1GT~9T1?1|0t!cI4GLh5}~OV|6fH}7+JS6+E}<@Wd` z`T6-Lk^@(g1BWP}D=nu_pT5zwFuYJYn_==pNo-0tU!4J-y(Lt?_ zsN-|c7OoN3>ixV~SUCI(%Hm3h``5wMgHz89jGj=tDt*$qsewy90+$A_GZ?t1u{EXh z1mkmSlH^bK$u4O(y0{v6EJRf`7t^B7-^~{+iNq_U8RL;q=BzEK$6D^W2%Wo`Llr10)RSq=bG+Y_u(v*-qoeUwpALEJ&RBj*budS*_ zfT>IwY1oqcp(!Tb^~>GcHh1sfz`r7Vzlw;#z%f=RZd|+;dP40G8mw9Y;vf82ZC;Ps z8jf!kd>A9vpa~xb*}0Lh#_B7K!{4Q}!Sd4u z@s(o|Pmej8X^Oq=uPn7HlHWMH-|gF9M~oT|Io(2#gRTH51_#$Qq)C`Z*%TT*QPo9v zzfcAlYfYnrC81d|(epBms=1U;v3U0L#u6hFlxj)x{KI!usEg?v`+7jm)NH0vKM zC5^3s$vj))8{)Y#M2LD50J`3G(%mMY_i1L~ z$6@7-y}l#fAQ+7sfRR$#e12YorkImj=Xx1=qvrvG#oUT_FREwyL-*5`q3sg7wz*_; zjo6a1G~$qh6!28UJI^~xtz^|7oOyaI_}u5~i$A>Hv%8T&92nxAP?FoVXxdyE6rfws z8<+!GCz0=>l41I5Yyo8eyhJg8pcJ$#s> z^Xn7%a^FzE;DO@x317D|<(&S!rH$(`)=0t((SS&CjYDuIq#urVx@qo>U#%Z~y3K?u z=UQ4LY-AR~{N2{eJYE?0h0vOOZ;Q*u&@mga*LEMFr z=_kzP>t!$Bx4Y|gqj5tuxL92Myz*wE2{c2_Jn4Du@`&-!JaMNcJbh{w*e)miw7KTO z2{O;ophwL}dqr7e%4)k7-LxvdF4WbP@kPE51BHJmXqEBB?3kuS9albWLTaq7#EX+1sKIv##c5}r~Wj@ptOe4zjQ-81(0g({G`-09I!4S#unN$lPFqC21DkwpnKSK)+ zywGSZ-0?72_}aM~ahsMF)w$6&1x3?=Pi>XUdCSpV4Yis^QyFHx*vN%ID`sfRLjt8aWq#*OJ%oc4d6FX0wIEeLgY6IQJq?pvF^= z5hq3oQBQ#g*3&Fr+(>zAfL&)ijBDqt4n{4E zNg;%w9Ke%C;rJ!GgR;Z_%kwLaPKd>$L=}|V4D+LvIifI{|0zZp)39N-mD#w(V_Z)mGC}mz(&)N${>8o)C3?#e@|(&bBfPs?EEK2+se;*siDDe6-OR{N zR71njivkm+P zTRL>lTy_-`*>lij2zElW$2;HRve0#XI^SkOH(9{BS23Z*%(RInL*^v2&|@dwPz-~< zg(07~7Lqu}@nHhj)W9(LARAaQwK-&f;ca?YX|KX%C*wev6H5&S$z=3o#h=dKZ*iBQ zmh)S_Yj?f6_$`i*>fvY&89Q7Z!%K-YBq&osGDknt3@^Ghv=ry~7EWH97|hq1tTSMP z1i&})Emim>yu4uLzG_Pcvus-ad!;5wU`Er?Q6&_RIz&!@^=;L zY5y48CJ$OcMUOF(kY&`xxJYnSNk;qFS;k1iIi{r%uQ zAEm;NP!GYWU|3Q<3eslqVg>m2CN?$2Cc`zA(P)7D1J*E7+t0C+_DZ3Q=Sh`x0zE9n>jsN z7$L4*QzM8*Pd8+S7`Z}6Lvxg$9{t#-aaPi{rKRp!#VQ9+!l(5Zu|JklB3cOv30h2* zQNZ#8E{mdQ32*kVIAmH+)=Ud_f1_X*X~#MmJ;>~kq~(L4EKq6^2|MX1F^5Dr3^l~V zCWQfT_-m+_Om|77E@>I+4F)cTgB2lY1qCGbEk*~dyoo-*>~ahI-bNUNlS86*w`Ab2 ztjYy(;8PBh)X7Bf%iaop1t^sL;q@60e;U`OsZFx}WZUiN(~DC!uT^H%TDY+yF2E~+ zaXaG;ZOKt>qiQcalB1r$V^ zZcX^UZ_+FiF;`m&nXF<$4lpnnnZlZa*#@xy1w-0}$bf@MKcNo7cq~17$I_!aRd$gn zJQEniAizcOAJ!0H4{H5_{ywd zv&vfMkh8HC8-~Kw0yx?J*rp{T6gc@y0#Pt&enw;@5)k=tS zuiExFb}Dh5N+qheS7n#z;#3?dQHjn%)L?JstV+jTnf~j~Rq8a{>hOPe!`f|nyH3^6~ETM(H zuT5dZ&9V|q_=&XvyyV>>SxH7h?8T`jKrxnN^*w6^xAFH`p};4S;LIXvCqITw2%}}B z%Q4F+l?952Vw9uI#91@RXK+m5aQtx0cNIQ6zw#T)c|5Pe1XddBI?4s}qRHXY0+W~; zRtghiE)s*Hoolw@Oj%qP23POVPvib(I+JAP!Ga`EqXO2#eyJCQ8Y3m`e*2$c0ZD7!Ry2Q%3O;=MEs>@ zOWZvD8LV&OoqU9uVC382wHl~p(<&h85lZr^2shehxSznY9Cfmc66cG=9Bt5L5QSs- zapIlK*SLn(ZE|ZN;{J>;Zbu4@|8f;#n&9Xb-wG3$s-P&stHlQK&|6^&MoyZs9TJFI zTmp3XC5avetv+Zgbd06YTZIj!9X=5?T|Q1I?J0`$H2b@u9dc^wd^@$ zl9fg5Vr8h~k!&6u_2!jxf1;3sS}iUbPYXtNnx+6$gp`Rh!up9`!dXME4omAOU}EZb z))Y&>f4w&PHk$VP+As$QR)xHyATc$;;4fl5bR0VM^nKsxSHi*6E+GEx^$!!8iR6Z6P{1OLwFyT)aHX}85 z&ao(|n_?H#7%^pd2&m;%nqa36XDAi`AKFxTI7&*ujIVR}J}t<>83-)$n^x3BNuDvq zKD61bQW#;>Soh%H_u0H7-Cm;^L*OX3NLrD+S(NBGp_iDPz@OtKD7Cl25BR6>L4gN+ zKp-BxqSMODR{ks6&S3sZ!Y>p+9GxY6%Ny`MWc5Q(1n~;nEb<~(g>PeZT#$k|3|htH z&(GTQxu*?tBau9bzXwkbIvhSl#D`(Z%4>BbyepL!E0TePT!sFL@|7Q--C&d5TWsBE zGpYI#a|Un<;tI6BE6c)E1r#7d(T>i|q43Zfsv#&oz=K0ITMBNmuxMG_9~Bc(w1%%x z_)59p;fkfmS||-iC0q24Kj(X#A#qBbycOA2Yed5^@d1eh54b@1q&Ns_99BRJ2jauO z0UzWNbbBHGBN`+_5^DxAuA1n#qW|c(tnQrQD&dtr;qVC!6?`^^-B}2sBtV7H6VxN#TCIC~$(Ar$SGR2A+fnJnt$LA|WCJr+6>M1}<*e(s)yy z$k@b__&T=gyw^Xh=@c|7I)kRe(Sa&HnACJ;%|Rx?p&3J)&Gh*u`Hw~TCrh^#HCkGC zsS`AXi>(2EP_kFq3!zfzs@ROg>bf;!A2W;i{jANv-c#F>YPTiT?Cg>D6bYn)Pdr5i zn_T%$@{Vn@BCBS5D{p7#a|1`n(qSo)v4o$>aj?&X(F-`3LIPLD0k8M8^tcfw$|Bt( z6E8MT%2+sY=fac8{^I1y#onq1B;k(^3Dqv~;LL+Vuk_ve>sqVI96oB~;wOB;(W?9! zG!)Uz#ghp~s}_3~O>cK@Ky7t);9072LZ@Ffqz-rL1S6&IliyY93=052F~)ZqH4c2k zMvY+?a&mIEN7rtNE=@s;*rvR0n{Gr?Z}zrsx!-py%k|deLfAL_ITJ63mw*SxK+Jf( z|HIqUqfZNiogHFL%>^f=#Dg{H}uW6CCZD<;)q zeeY`65o3o|cjVBWzm+{Uy#e0HBWE zca~Ru)Gs-AL1bPlG|?2^9~G4raUDfr%PTe_5ExXuhfYIfj9ZwJ8kvYD?YZbCPdY_a zoT=tE;}*yz)QStZ3mPUkG-?4MzP@(V>|syMgO+bb`#_fH$C|{mYh0Bylb?mQdKR?x zM+0mZ2ihL$vE*cT^rfd(ZjIj4deYw3BhifA>%|9~irgU>4(=+2P;l(|0N&thz{T3s zk7s<Qar;TtYXn9$ z0sF`AmRFuD@DGjhmrgIAmQ*?I@c6SU=l62-q7(J@xkjP`qPC_28$-Xwm!YYtub?Rh z3JXuvpf#h;xRQ#rWH?kHrMBD~!pXh+v2Vdl%+3^V@yVU@q9@gy&xv0*|2gX1{9e$# z(j8seXY{C=-{bfrJyPo@RV_$Lcw}0y`VBiiGL5+As4YR+Pyno2~WbkfV_WdWEUlZ|xWU;{A zFV0Orxh%eVSrv9i+_4!CoXat5aodCaKM(twGgL-O(U5qJ>@qvHY8htJ4 zf+hVQzpe0+B)Lp>;apA%Je^$LDtYVkQ5S!uax>Zc?9e*LO6zz}D!5>#Qo_PKs{4U- z-yi*z>4CpRSAP<{6q+RC7Knl=hQpXKR(YjZfl!g_tB_g?Sy9S_LQ<0igaXg{N_(t)SQ{%g;L5IvV+0m(!WwhH;$j4T4$WBouvtYlh0D>IxticO}A+ot@7Fw2sf z%_R-K!hWv(3i!~l6qMo5Yqk@^hYMM}y)s9~uY?wjk88N)=+P(vNl=DVP``K(?5olh zy=~Jx3=LPM`?B82mwSKo?3j16t3J&BM3m!tDk0hdybdvNl{^eeUViX%qSunh!-(U{ zTgKP@>TK@OvqB0kO$t~6dvZt1B6ptIyF95M{AwQez8%H>nGZ{R5vlKr&gQErU7&L|+ANLRwPJa0pNm(Gf!UY)yNsWblNQ0BHRT zBk^_KdK15@SK1OYj=TJi9?czJ=rB;eGK3M19t7QXP_h|p0SlXw)LB#<=D1ZjEI|+y ztui+qDa?HUq#UN#(TuIaq&xG!m_g^}pKp;XtAtm)>1uJBYbsv{-~Dq2i0{iRbfD-A zFf><*$EM6UMoxO*$dOZE9p{lie09}0D^AI2Vs_^xomUuFmhO(r7>8X%y9P#;-;;)| zQ6KcG|LL8YqJ^Z!l|@z;Ql=?6v#`Xh=o&<;LB#nbb6uR@QT*== z=q|po$rWR3v6t*O;)H_CJ!sOp&H;U3^2>1;dInI4kYcKs4C7Vsfgh;p1SK1sHmz;O zpOcf*N%Bu#PAs|ney6aOplq95975$Kv4%T^T$LzXJ}=Q|XpKU~f&huS%U9`yt5#rZ z@i7mMHcVxuQ_@iP3?_@V&_Pr!bf<>9vmur{%f7;1lTBOOZmJu9`FHW1#q%m!dG-1U zA~^^al!_XU7=KWdhHdE#vd&RzwQ!^_3PAf}TvLX4vKpzZCT8AZzr}fy&iD6T?jMbf z9`{PDKI3D>l|y3(UxKbN_UxS$biGD6Es)$J?1|t&9TRX$nSdO5N z-h6fC(2yz^;2?guDV<8l5S;f&^B`X-h9o&e`7LT9)gkl=XUUm#5rJ#H(1KK^2h*QI zKDp3cwQ$qH%-n-k&qmTLvqa}!AmK8aPj2rqvFHv7C#|<$!?(*j)d)B=QB4NN=Ng3#h~ z1S8d21+nY}$$dfuYN40wEYVcmDjy5hF^ENk;MsOEYaxrL#P@_84~qoV~(e z85HqH)>rjoJ7pOG87cE?(@;ruyje{QV^WI2{0T(nC^E#ZMkgCIBi+dOSPpc5_^>3W zz+p-Bat%`I=vHvFkQB$D);MGuAw&-S_hX*A2Jq&GNsgc9NLPD12lgo)nJW4!r1b>5`S(MLAQB)!T` z?iU&reCSibUHdTL@9f)EO_9075_A|b_f_+?P@wZ8Kwri3fzAp>@4dHmw5 z(06>#mn}OT>#t4411BR!Rtkkmm0n2IFsYW4W6=hQ`lo*l(*7&~xI_@>*FZfD>lDhF za#e{A27iuy%Jff(G19&n`^q{fMv&OsieQ=!n;i5Eoq+`9B9v9~NW@^%Mkoc=YRVAK{ z60$0J6ureVB8md2W#GH2vcc|4V^de>7tC^Ez( zD4f7z^U4Qm^KDXy4n(es>S$A+nsE$5HlzKfR>RM%yem_ioA#}`X@V*j+~pbWt}w#H zdt|*sdLX+jxz&~sOv`{`yR0t9pMN=>4+$8gOEbgPE__}$cZe@>hQ!s!FIJ|%mWi_t zxPeFNwgWQRS&CXCQq*O=P0h1`An8qNUYn+>W1dgKn*obol)sNmY2n z`Br?9kDYTBtHspn0;X6QrBI+^ZnL@=<{x6!F+n)D!rwbVS`xV2&~)hs5dkJG!R0<|Mm*!^s(l?IVeN$Eoq8>U(-sZ5 zYBa{c%r8}=3egYZf%T{@l3|IL#5=8I#w-aI8bm%x^QC^OzELapVpc-PF)Bwc> z)4pcyO0!N;AbD~qL%>xvy+b3@JNP?`cPPk;SKBGD?vfedmQU&TmEK`TTV!yOV{j@v zp{%3|&9o_TOyUxlnpVCK#6aQ4nvuU zeyBVTVH*r~QG!-laEO00AQZx0(fuyNsQEyOQ6&QRQ-RMxTko&5;PCqk0w)IQvIqdEP=drar# zn>954k7|{Ltq_u6C(cd{C;zOLg#)q@7~&zNc>=95t{JyHbqD-3v66%mJ{gk1&;Yui z<(WVh%R47odm(4xr=pG0a0oXDa}OD;hAII}8#x-Pvb|BAW8f1EZ-J~5Tod@|Yw<{0 zkHS3kY*^{r=C+z18C}qh(-9+scA~FNPJ17g8J@lo~a(eZ@` zTC|*b%Tx1axSF&?=1Y$E2)5v<17J{RM|U0!8;WT9SexA?y@`#~l!cNkofJ9=u|&Gd zR_sfS2cnWe1T!M|LhKaHD>9s+bs->ORE$G}aBv938az;ZFZ2oe3`Gdrx#PBsJMlB@ ztchb&t_pBLn3a;M1|do+L@@Q*ftn%ca|-wruy1Hx*wJe(7R^Kkr|{YXQ~ja(BnW7S zfp`ASwjy=DQFxWmId&UKKNvh2R9xWI35~?=rM{;!M@WleC2@k_TAXt7mlh4T_@Fw$ zO;gZgX;I}6fQmE`3l#OUxR>N2~Hc%-c zk@8&%T&#w4V_<>s zh4dF`1cC<`n7RApTSM@xW&O7^A~i4$wvd{vSFY2IKp#;z5f$C3I)_QdLxV?_#58p~>h#UxXQ4RQD~}0j z!xn9%$dr~SSIKH5#=;tks1mVxfGknP>e=X=+#S<&$8Yg8R|57xGVnW4EKTd|0yg#% zTxC(xUhnW~EDLmAP93AhaCK-(n47jCjOArCjXjJ;oB6#Q`b}Bz&4u%OebF7Gd#y#o zj$9`3-_RcdpE}Hi6jU+-9U2*}b-7)wC3;Sn=h4DK9&3srU^r?+r*cL?U6G;bs-)_# zqF_*Ho+ABA(5l0+;yh{SN_@M)U#QR!inC6%E^TQ5kH6&)vbN^ge#_taM4OA)wSmS? zVZz`VP$I6BGZy7TwNW(@IR%FVClC43x*z%U{Y5H4sHH0j2avA?F+G0R?mc`J}0Lo)U>h zM)9dQ7m9wfE`yoY5@e&d)Px)xk%50gwnR^8RgzE;SmqS9thxT;4xBGOz4OIK=J$H| z)0bbwkWfpPGUd#gzqEjncOTS9;kJ-f2O+cvW2bp&hZXSEH1t4Io53^t^vyRnXH*tw zvJ32Sh9rhWZJ}*h|Dd5sBo1Hw)V$p>Eni<596OCwN#%=t&$fx}t*GB;!(Mh%tuy+N z5e3DRfOt-Y^C8ty)*@XS0y)xQKs|>a*Q-cSz~_mVNYt424Qr?8F;jfjZVdNa>I?Rp z2E)nV?iwk*8o>gWhVP>utFJ}nfqSpDSoyS!SIt4ENu=AlJXRR9g?jZ(LrQc=I?M;~ zAGpmRc&hj-^iH`S;t5qkDF*(eY#5ygC4TXdf9}Hw9HoUkA=$6F1y5-#c48XfYiH>p z2TD(zb8LO;tMC~}Q$^GC*P^Kg=qfPLUVuugaF|k3YV2?wd{%ij#IJ%_l9ef1kKM=S zKBd^(Y{B5v$c6fxRjLR=`1R^+2FGZ$cJePlSwmwXmW7})EgTKjD$ifhD>(GOp~ z)H0Q;d}0}Xjvb!>I`T4E9r4R*bAZ+l#}9=>B4`Jc1+=?FOT}mzTq!3Teq`ptW#&u?$k z|B6$q#Vbo~N^u}(03bt_AoM>J2(S#M37Xad$7>LQ*QO3&lH~=9{=94kqT}bvQ9)QN z6bc1hRsNk%SG>Z3LJbSlHeG~g;Hhz0s78^u8$751#PN4p{aK%gjUkk?HogYgOK_Sp zLA|-caqB=80+fG^B*)Bm+-^b&NK0jfB$Y)6Bx4%XScM{b36<4|*A|V#RHPL}SPou; zeSUJ@w3T}?rxQD0bQVt#tAPdM;5e~-+OZB$r5RtrIfoHkB3WzvvTztC{g^xyrpGgh zng1;`^)=S&bh=4G!PNFKWwCR4_9R0!JV-BvqaF${6^e+8DF3NAw?wA&0Xh=N!=?*l zIDh_~p82F)mblb3jTeMV)-#LS9!<}jG}{cYW536l4M;lpR}+QwHhI%03q>;28@mTu zGtcZ_Zed!it!9roItlrTi3TO&1bg@e90CXQVydawOX5$G-SY=~SFP=>s9FM%dZ9W7 zqe{n6O|-;|C5^*_B@YyL9*`M$oCTz2X7VHPVG|F1>DZX9a=O%X!I!WnLTgZhVnTr% zc3eZtqZ7gn&N7DWIBksa>$Mz9Cl@YnKz*Cx9C2Jf^uplAg|&U=nXnz^GSXSu(@9rI zR-ypvHD`=0hg4$q!w?D89K>L&vUymgsa$q7(ESV_D5OLWRh~!3BAc{O=|7AtBqXV3 z&hbhT!-Yp%S+>O2OmM4?RtJ`vQV0&YtQKW7%28(DqNPZ*E)w?#i-}`ApwQ(0t?lCJ zZyN;`II)mq6bu>D(2y)tb6?ecP{tx;4HE{vs)d}7`Uv)tTLvC>Mn;+LR92ehtRI8| z14N1|xLQc&KqOp3WGjpi*Oy}*gYLdb7EFanLHAB4N1ApJb60~z)+to!4s7%%Fm28isO$NHc>oN4y3zFk{%jJ$BVErYw4At3V>{n{y?|y?vve#7A z>X_5zK0HWFt;B0Bl$|5-jLdR@y~0*6-%T5EJjn1}@5*Zx zIHK$qi^$!Maq-A^I*=oQCZ5cN<>(+bY>G71W1*$ZNv~zPpD3*D25yIaf++k^HLy2- zxQy2^4z1Baf#M6mQN1s%BZJRdwdzlvnisi%)0slVCd5FN`J5!RMLn3d=EB#K)^%3N z(r>)SQpj5@MCviPF;0czplP>!E*4iL0abP^TMGl2VMB+>t=#up&SUzQvw40RdqOhN zsYJtYo+dMIO#Kn{QewUemDChvTBx3y5rcj5diEeVh!i{%ttK3~04HCipU*E11C^;j zj#wXVP97%A%CxcmRx+;X>U>N9$1?)}DgAVrg^Bz4E^?q?s<%>I1hACaDElMQIBIUM z!^74(^jQUT!&|;ab`_;0YBmrtk`KYIM0t;bk(=i98Ut}PHpR_lPfKQ`88(Dx$xV zp<5gBf}+vD4?#Jtnw*(w@99&QjExhw0&2h6!YO6sUDDK5CRLn$KYU!b`vxV0tL;bVaFk}YozBGFrgMz{?xAx0Xn9O z|4de%Y&9}P&g9RzC+?(9>kMAS|HK=ovBTrtubW94rf=< zRzAp!MVi8D`Ui_~^~fwV!j4OmI7p-lukgyJsZWTP)+K=-(}J`eX>1fV60pyQ zx&;1ext7irHb(xm;q2!p)*l3)z<D>J4oah=EkwUy9-cl@^R5UzrhK?chE@nb`w z6=>06BXmt$Ta`X2v!?srH?2;?Ux$OH8iQ(pQf`&bTa%m6!~reRFAK${F7+Lv->ZnJ zgX_c&&_I(X6k64A#dmKKz=z+ah6h{!nfIit6^En;02csX9yBf~wWx(Bh?&|ghA$r_ z$s>5(bv+CbjUx>OfYgVclh>(FbAod_L7$&*wDM{CY<4SR9Ds{|?)&S?xz`FlY7Q31 z&$1NUu5x>JDEj<9^_;hw$T>68NT5)WuNHoQh3A~7padzH$>KV>Yshsd{Z?E_`$e=I z;tZyIMW#)%nPgucHCDTc!?Ip2SoM@QNruUpY0%|EzCj8juz|%jZ8+LGkv)>mZySe@ z=4g-bWYSI2_n_}rfZ}jXx&|uKUzHuxp!f}kiE2(lsqk}nRN%L3Q#&5LaQ^6pTr)#8 z%?|m-@J7}8aR*3m=+D$b!&9)Hi@px2%j0PfGdT{EEl>dz>`^&XxaFX_3W0^m3OCOT z3|(7iot)fmknOOPQ+Lu11U9l4gRfK;&Znq15YCWnlhR5m>3|AgG)H*HwdkK9LE#Un<%CYy+~j+}RY#}i3_l3*+t4rsAtHNcMq zwt|jbyIB+C6zZDR5p;Ed#Waq7!`Dy4slX*xH~j!JSgwxD{btCfn^mGH#PsNF)cU}o z1A>jEF=7DIyN5`W3g?uk)Y>J58=Y%JZD!RUA0O_!>O$UdvEYb^)VyXC z0uMo}QK6nfNJT$Xvc-hOVDzUrioy#;q3@%npb5-9o4bxqG{n8cQ%l0HA-2^x=@Rda zte99(aU)nMt{A>Yc~yXbER`UF#xe{La3S0yG>BjvXmBsR-ugUIIm5H(rk_@9ew1gc zRa$f~_8Laz!x>ubTt_eW_b#Y`ztW4Q(&1P&iLgXq_y>Sb5nD#tf-B-#tYr%gUw#=1 zB()PJ7+G7Pz-A7+P{BRi=gyrgt~nNkGrxe{ZyBxLlJrmkhHlo2yx z{#yuZa9>NLTz-vnY73KrtSM60>C|vY4krq@HXRy>oHO z(Vf}8L)mq{=(}>b*|cN#GbMgTOxd@0d5_UJD00N{uW#~S>JgZay;4WZ9`MeUQw1mB zHe{Syw;f72TecY)J@uHv&FJLBx_3aIjOw;x$cAhozo~L*fOMP=%QNM;M-8Ow>sGNl z_U*en+y7Jcp3D1_3i_uU*~TL~%uWf9)v)33ymq~p=kCFl8oadl*=;1TFzt2M zl1u;f5DvpCYiwFZww)JP1S8_FbS)Z_R52zsfB(ep_Y{t+B z2@m>Z=cY5XOrWew*)Rm*cO@esI?AtDCqP@ET%RaO4fHs6En+%i0S*{Dc<9g#$0A{y z>&o}E1uZezgG~|Lb6JsCTgCgW(jJ z+#P_=7xd7?hQtH^79z;+>znc-brWKOYv}OdV#eHUNH?m+Ny zPteq1OR}JWX{S@trt^S=4{`p{CZK4W*4~LNQx1=;=dRuE-o0f@9Y|9Rky1h$ihDcI zm;(o+=uuIXMkkbkSrI~C2a??=5V(d89Xg^szjgV6?d|WLymjmIOD@h|UdqdX|G5u= zqM2Wt^|lqelWt^<1P?3ynsdRyhhDj|IF-l1%3bvXx6c`gN7J68^;wjOg~nfnOvNPBR|{)JjCSvMYY}boxQx$ z)W=wh9U~fnt7yO@QRT#q?d>j%6wzf@|9AGc1EXvH7*%s%`Dk+X>}rB_T;h+5QR^cnb)4FS#mbpv!wCxb#HBZb&D^mV%_#K?)Swhg$4*# z+eInpoyy~8*4uz>)b2}N+<7OW1LL?!{=Mz(udJf~5xlSdE`5;OorNufGvlgu_MqE? z-Xs2+q5>-tLmn6yI{v9@;+{486L;xjgDd(yx$yAV!eMd#vh?Lh(Og8)05P!DE?}m- z{GAuwI(eA?=_^;RRGx_U59ICfBldQ0J@Ult)))V_J?@?J=Z6hncl_o=|EZ*?gt#*a zJ&Kl0xNsc*-$H#ycCNO|DzJAboSa?9g6phpQ_g+P;h=XPy= z+*Pk$y~F5}fpLu}$*ma0|Hn(`T^6cX3`}BX&YpdHt5&Vrq+X19=%tU2RhFHI%lYAr zZS5)!Z{;|){c2gF2#%;J9gdicN+8m2aX;s zu0ET6`gnx9O~jicMtp_#fmt!UQs_S-B6!3WHg-r&oLk5~YCq{i=nZ-xaTeuktNvJe zxc7>?c(dKv%OAoGrGxh&-;P$1512wTyXGt#3^XOnmoTg+d>;;@l%?T;tr;B8JB^1Q z!C(06#~*K*d}`E8lrPwZ z@vm1`x&AzGVBN`(o9m^l_P2k9Q~JgYz&LS`QR|F#zAJ@@tl2HBR~)7SN-=r&$)DG< z-(e*J_hGH5)Wtj)lEZwV(f9F#<4eD1Co=+}nZQVq}Mt*S|9A z%{TLKQ}Q2I_WqyVk6~lG>MN2i21`Ef##Rkr7S8a$k5MM7TGCArllZr(Q|rc*eZRc@ zg5~Wm{{wz5u|BaNa>CfY9~-L-yAn?2bMr8 z-wK-bt`^moTDf1Y0Y@wQgxM#?nQ1OxH!J2zS)C8QCq+l^E|PhtB7s7#+)V&(32#u2 z&H`(N%osB8NFiX>NRJW%JFKlLfU`g^+`Hx+$IrFuvQ1azyIV;3ojO43 zpGXhjX-UW`gSAN;V+Z-mWH;_d!#18m7kFs(Fx-LyFJ6WH#iN1aIKEi&U5&7m&i({6 zb-J@(|1gZyne&PL9vPC9$2ttUfn*n(qsz0lN$S1t+NzuktB<6aRppQVx>exd(DD*& z2$b|Cnl9M#%U)M$iHv=k6ZV5}}Q|0UrZ<@;@yK zmrWr;ca(DkT|~p2(T?Z2%~X!SQd}o;bi(pKGa|X9`QARk-RB zXBK#Hy$%6^`{dy2@r2k%?LH+ddhYycCIeaNPY5K6wk(B`@weBoW8n4>4R>VrVXSZ6Hc*?7~fM-}PScgGIfTTKyif&+^E(v%s;b`s8&I9)rL@ z33;ggseA@ zLE;`sX_Ax`t54Lr&d_*X5)7e3u82i@Ga}6(7A7UgQm$arXEY6j z3dB#ej@9mQiwp>G7WhK54U?g;Tv4W&IyLA$Z=zJ<1}L8B?2hEyJ@%ZW}FCt=}wgZeqXM)pCV zY5lXO<{88^F~)2p%k8SX{;n~m9pAFRRB98{S$TOgpQ6aeTLKSk}c zq1%D^nNfP@aBqVSO4u1Y68}P|2iGOMEf6!K(?Ti$>o0m)hF|$v0r{pg`Yn$}up&4O zC4dvAkJ%1D&^Jcoaqb)K3c0ODu^CLRK@UaRo>|(F5>y@)FM6$k_WaAVE2;nNr4Xci`7 z#gRbbDyj%`K{km4@l)Op8{e@0LSjI7YP-lzA|ePq5u|pHR28lhojeKlhUG))0x2D^ z(XK^kx)$rl;vu>*?f;A^CLGL?a%2n%0$>Q-lX@tNrIW$1JlGDkBPgoY;K$dOQsfZ? zE;%mAtp!CI(cpoT*fa@J z4CW*{gk1)PiTajXPP%i`Grf`UD2~rmu7-97xvCy^J|uKyvf4u^t)yZ6FpLN7rhU1% zYRIxH<)MYuhw_k>!8<}oY7ay1^)`duC2>bTU@)t~avdUNFNr`E*f^OYm_N3ZP{G3h zz_z>ba{)Y4mEoe@otTe}GQ;)2|>et2Vy8R_MIW?Dye9|}cj z5lOl)XzkHl)KGpP3}H@AHgYq#AH|SptIO34)7gssPV&-z=Ff*r}iq zZ#*=gW7|gOvDKGe_b(T$#(3DsM$bd$N(QU9z2%{@iYc4wZJkNye_oUr5C;E)^@jJ5 z%sKjy)mkb3QUrp%;)kEC@?Y2yiM)?+_!|1ZNEUNRL7NDz29LrBu%Cq6Q#8z4Y%lEk z@)giQ$4BF7STnfkz#CFI5)q5_8Z!#~#at@UyAN4xrxOL11JAye7BcQYljBeL06h>> zzIM-j@Ql2sM34Z(X1N<@Z@QWiwsZ$f13 zQ{+>!Wb`)^#M+WN(p9LvwcG${0h-OI#^P{gMA)QL?ieBnd;}I73`SxxGGle)tvn6j zkEGBy7B}Bvu3dF3I^-W02I5&L{#dKAau=IEduPBpD{*OEe4pDD#$NLt6L|!FVZ>A) ziHJ10?y3SR3WvGAg=T0L78rUNGZVK|Qb+tC(jx8~RXRdrpr-fS4lfx8BlHc!GeK&x z1W`_;DGNCTFz#01#H6em#`*Xh;Inm;Z z7MhKpdzgOt5TP{-gdFJ-fkSQEuzvd_Q9m?C z;$JeN4gzuUIJlDGy~Z~20Z0xR(+k+=-(^a~s^TDMrP3v|MyQQG3xZEWRS4-Pi*nkB zy&fF1zyJ0iP;(~+>Jl`R--t$wmuA{<<-S99EN$(5N!rFpN{Y;ZA4v0B(RptdAKBRgqE;;x17NCux~|$DB=N#?RHHT;t;)SO}s#D5M-@ z37+IoWW@OVmQf1v*!Q|WsM=rx zq7IUJ4Z%MN8>Wd&mg&ustZRMU3vjMiDf}Ryj2o6<96-h?ib6^TL`5Ddje((6BI{>Z zi2E)J0A5o70CxmxcB7E~D20^hdkAKcMFX&59w*;^H9j}ZL|vbKczN_56u<%7pk!RS z6;2@SZ+4wg(9}y5eO{x;2iHrWBc2x4wVPq5ugDYiFbw(#%lYt`Oah6 zO8EvTFmh*bL@G-kpFu5W4r8H1g+#zO=g;u0@iw#~&ZB#mG%|%NrXe0l(1`gj;0Tzp zDV?yZyB}s+9Gy(^qyd@k+X>D|p%Mf}qdh(z1uHa@C`q$ThUZ>@h89}6%DqaD0zm{V zmK2d#DNbB^bxmLUlC=9Q9NQr{HVh#Gv+eZE2!b#w5G;rt^jz7zoDXM-<|fPQ3|d>2 zwFf>7ZW!Av72<#(2#%^Laf6rNqBR=;gn_|QPnOIEP z&T@%ag0hsT>+KY{X79dx2JxoR$ z@9mr$Q{`MKkRLppfRigCLiVLH=f3S__nI@xwu>w0aG&SK1*hTlplVM5fc^r|p*^6K z(1ZFfkAXZ^BEMNS2?v=j&)#ASuZ^InOc_qLhPhMk-(tf!xHhMG(V1)saO(IB= zd$A?ThBPHwN5bvHzn?MV54k4rn_++hqmm#*P?y4sv)I|en&=WsGVSHupAv*i_YSaau9}s z3)>2ltnTMX-p!cuSl}fw9FUN}8MSBJwp=R~M^J!iyKfNEF@XFWL<~9#4ABR9iSI#e z0%&fK@xY@dRQobv^Rt{v2_s)+EI7kPvUohC0$6}lp$SRdZ97>n91pxuYN?O{Mj}Z( zn9I$=>H%>)j>Wz6H{GrDg6C$-VjhJQyeoxgfP;et;aSjOPp0Mk>?;=CZ77FnPz%T# z2!?EwSLgT@zd*Xx)GOO{dXQ|P?18zc+L5#kDJoM`5YqhY)X3K|= zc40CMMO$*xUt=n=KLBIUDN^&pNfs2l7f6%(lAR*E2~4fgP2CFwL*){$Cg6NCYW*fN ziQu=dWQv6fBT~p!%FI>3;@!l=724;(B~8BA(&USNge~4}giPdiq`gxx6W)qdWe5_E z61HkO>oDT52E@Thc)ttyz-_d zSJ5#${yN3YkB7MS5I$4~|KTY~NDtht-7E0PG=hKF8mtfiPDj=pQc&qlq7<+JDKr>( zYEKYMo}77Ir@=(6K%ImDg4j6ML~5x#UKwIBF*4J}$bDlTK>bUE$H*O#e+!f;{%8ML ztC=ADekb9OE*YGl12< zoYWKXt_ebWtw1w-EH7l;L3`~8*YHJt;5R~&rVEbEjQnAI?&j+lP9JpKom)w_5(HA^ z?^PX1>RB+qPIf-gDv&_i#4QQQkpwP-0R}rXW1O$@HLusWt{|C#f}N;QAfANeK!!-g zb!LR64I`8YH^ESjtpo+oCnUY5PmKWtAhwD9?~(UsS&-Y;@&+p;w{}s19)c|RWPi3j z<`&im;6A`fAa3|_5E7>GV?_tLF^PkeDcU4Wg}2W}0V$yKl$y5UuPT$%#NmLo6XZZI zQ~APTaOM|u%#G%+EGZZeK%5h=P#-tnZ)YcP`~x@*^L>&%6j7&%0+9-Ti1dkq-3Cw1 zIbrhv>$)t@x8lB8uoBC`K++}69(a=IgEl2ZAV0ru0k!?i;WO&*U`2!309LC8SRUA} z5~nB*4uplRAks#zhOVr)h1VV{c^-I!O_a1)cu(Z zyatGYx*aqWr+%Bp+08c2QQ(h*OJ5QFK*3oj1L)f!Zip)z>}48Vr1^}k)-#fknt?Xr zqghf%gM`V}Kq_vxa$wn(M+Q3}mH`ryrGmx?g&nY1UtV=X{%QKO_}eYxc!Nw4n=d3D zK?tBcn&NnXOByD`y!XJM5C48WgkB?#y$~c-$T*e;28Q%4N~tC@iMH}VftQ)PnN1#1 z+lBr~m4irDOb!um-x}J2E6OgDWMKk~<)p_8V1ho#qG>ZNzt`F-hFJy|dx*E75y&TBEBzzA6(Xe|}V z>2Scrp_-j>bPZ21Hc-!FH+{)5JFvXkJ~*b4qOD5DnL0Chx}F(cdF(;AnB+wiB6(K8 zg{0Y7kHAEkUP9OjB#wgLGNI>58~TPOCo{W6vLl&V{63NBGiteTfL*69T0vF#mA?#B z?~-gN{0juHYZ(%#BKEbN?jY;s8<8SrsY&z$9|hgUpKw_WdZh;h|0EoshK@6>uO|qq zB0bdaz`u~%wXG@Mjw)M-LfkAdhtqh5u3ruS6}UcsTG`vC_jcg*hR}Q5O>+Dur{o6X za>VWi7TR?eM*@_>c&VE5cBL-3p-&jH`AREOQ{9>u+Hp%YV?<~O-V65) zgCaD;Ryy!&&;D>;Vqdo1r!9C%OFRIBfMrPQDl)F@`T|er2%74$;J|CghhdaO3&B`wm-Um8(=L!UzQ3i3Kgmk#)*h#n-Bo4GOJNf^QGFXNd*ZcUw!oG1$@ukAo3-<{=$q zXR_=#wly=A#8;>@gF(?Pppa@KgGG}Vt9+&+iKY}5T3pb3Quh7xDc{mGga#I)86G$V zP=oIfq67S~o?-P5A>|=$m#jwJEu5+!exDJ(eQZZR%S~pFWvZqQ^X{_CSFu>d;aP=| z7JWX4YZ+FN_S?D#R)Ke`s@4%n5b~Lr3hXY7Raq*KjQHpAU=$5uq9z7Z6{+f8F*%&d z*4$(}b-I&n6)q+sg_7IA%`mlqOLEs zObG*CECOG_%XDdMm-rTdkIX`NAAs1@Uz=Pf3%P!uVUTrDIzN5_&ZoPEqU&>U}4begSYW5s;Hs@WJNpE3FvA~sZ1sr zi?A8~!7EpY3D5)lNB?u5&eC|5r{=3Dv^!Fo4i)(+Z_ozhC3v-gLz?* z;aPzbqL7q{!D}CrZ z(-65NsE6}73=T7s^pd$UHY409#ajrLnAbZ<-&F!2BdkZyXXAFV?nXkg7V4!H1I`(W z+EdBYSz!DN;eIW$*=xpez*%eUo)E7dp&zP6;(uMIlCC z?YK(#I84D5gRP*g(QZhR^#p4#bedv&P%%)h?!C{(PO!-9K1#OxN0zgVk!WZ z^ez*H@$;mi!AfWbMp^DZld_{;(+~t=)Nz>5b?_k-YdC(Gph~YG;E1{T!uPA#DQC}4 zZe`}VdN8)yK1kEu4ULs}Quu?&cYtj`58DO=!~^FQeZpw6woqTdlz4oCYW9|t1b)e8 z2sXkdfk=MmRPHbr<>eh_p`S<8G=Z(PO)^BxXmyon3&c?J_S)eQ66mlI9o=;AJIAe} zTew6d0}{(iv7|hMAQZ|A!lQx_z2f27AbUD+7+fi`z5?kY=Sm3hOI3ojl}qG^7&cEUp0w$dUgpapDzkeQ+D z00lAWp@zBy&lh5NLXqJo=2XKh{DhRG>C`?@o?3zm>61{v=>$q}w5G}1;pjpKwft@M z)RcsTsGA=PLyC^e!{lVAZ5|Xmu1%4^ zU9$Xu4!R9F;#JXXJjL`73vIjFCM*oJUWzm@Ys|@|mP!=@_1u6dilx|W$jY|47qa_` zd2E$qM6`=c3iT2S7m^b8Q0)HhyYH-AaEaA^;5o=swboEynHE=(8#oU9t?Csbz$++Y zN+B%$VD+c^k&%G`kV#;YplTcr7m8Lwq8P4-_RRrTDWVEI;Uti7=aLgEu==o6%n^kx zQ`8%+h^}N5+V!#2%J`r~$jYIa09I8O>Li>(A|hp{GDAiQrs0P%C45Zv7V%tegf&hrg`i=eGvjB5kJeKKs7B` zj7KG6FnKH;INEiVTYMkVXBdl+IST9vY98}{IY4)yu^_XctF1ZKPS5HTX4S?a@kLR; zr7&c$_RZ7|=9jhB#FiziivareBBGo-6EB&pEjF z0$vcU>y<1)!?F>esR+rLn&$74HC&&2U{>ydA=a?!g$;|Hn<|Wlk08zt7C8wbf!cR1 z!WJX@zP$*GWA>-J10jH1DCKOhD=|{>W#ZKx1R%i!+fFUTUe0psj?5gJlb_<*Nib|Q zloHIq&M`|Mrowzj`qI1=zkSXFC*+blGrjm&*a#6qN=}V)<*@?@C>f7(H*L@}sbD28 zhnw%MOiyo%?{EBwJ0+J$FN?}Ra#~Ee{Yrr*U%(z{oQsd+?j~4nH+-HvvM_pggJ3QY z{0K{`8ZwYmLG(cOC0MNdCjbb5j~AM=jkL}d$&}XRLo^yG&!JHVr{VHYD;#Z(?`Bl) zHw?j{aha#b)>e*`7}xaiVR_z#IIiVCfXE;$sK_CY&hip_VmM`@d-|{oIf>cH5Yaiy zd4=&NabCH|AXOEhl8f}3Drf>!5qgokiq$KS#*?8>(^4z9M*A(L3AYcHIWEf|tI{Vu zuDQ@kYA4>ncmXewq6sYeCKd1FXQxlkO`jO!l1SDB(6ABjqPv}RX<0PGW)>lOVA~5} zSx;U-3b?*HH#a}Mc1QX|i&0FlVeeu;9D?U9@0)$OFFndKq#=+2(|h+J-fj-@cOEW$ zF5ee*`Lix%5rNVO&sGxzqihAm31PKcle2J?4-X^4l&LRx0rf$er)WyT{;^^TW`U3x z$dW=F`Bqq1C>n0E#V|>q5+Roa{3Y(19}>_1KpesdVGU|q+(XW>auN_T(+%#Fx@ckQ zz5e6T{^L1U9scOG-Aj(wk0axjaP(MtNyt*SBrsA$TS-l%qI9peTU6PME~O$@OE!tN zY<&BYefv@^V5Cx%61EYfX`8Yqn`{xKt`UONJrp?9QU?KE_X*iGT(r6rY zls~~!F@fqV8~R~u&}fy0!vrKX=s<;vJ*V{v(J*^Nm;_~IBz~z$BI3wifiFQY) z-to{&rC>;il{sQXi7_4Fl&Vpj)K5?akiXtLvHj`hNf(>T)=b~r=&HE|#|>}|bhQ*{ zx}2};+g(t*d;c>yvJ1Z+jT6eSrf{CzOA(FcHgSYHP0A!xdg|_hJl_k$ObWDz`36cY zt`QeoNvN=aLPs;WmwOfZjl(u)Z zn-Go2?CHTS9Jb=(_;j39-&1Y}R(CVgi~}txEm7&2SKCMQp!Bvl{+?O~enf8E;%$re zb)Okubbn-8mv%q(#Hm0E`r^x5#+Q$=45q;;ocU&Yo~#q4r6VfH_S(e79i9X$p0+=& zEYdx)xcr$O?&`fb?;!YUZc~s3D71O2eLFw9{(7{*3j<$##JG>N&KG}toae9A|B44p z)?OK$Ry=s~f0*JMyfl32%PB|f9KUk!^y$+##s)6N1`b6`IIz_BR1U`P~WPc|Lim3x1>yY>Y72()!Lo919Sp-pR!>Bs>k&Od@mss*Vo z1m-2Loo+0z`Y1Db^CFHy{6&B7<^Iv-%i^n-Wm!(?u7|g$N1rxP<~~7%wjN)h$JdT$ z*H-RZ-Xp8MAE#e_fCKq>5@1kJ(o3%miNklS#S*Dw^=j4im3T^^t&fgt7Lisu6=y{< zs@*5XlNImV8}EDFG@SEBQ;cuVY+S7Wanf+vsm_jg6cCY}Vu=TySY z3=xpwIOIGJb+2h?Bv+dbz^I|zk^15z-}n8;nqEUbJ^Sp2&&lWGF3wGVtyN~7(q{1& zn`QZ~mf;Woni_Sfi8ApK#E-AZBEu1W{Y7-Cc z3X}D9K$Bv|kmVXZrF?xK`}EEYpAQ7sEF3p;;jz4#cetc(ndZZBq&13dSz1>QVrw_U zM9CVQ8&upeyZqVg@}ufcIY_?F*p!qiP@Q4^;$;8L+_b6nPuqov?pih?H>&e?S!&;L zMiHqHM;^{?R793%EMGnXy^F7Y#)KB{t?hp77-4OAO_Pz}P~xPT+{9WuYE2T3{XDlu z#>O>WQuf~9()R|()m6h&r!8F#iE>&1%oZo*;vUamHRPG0rPJd-qS@6uM#gy8G3v?Y z8nBrz@zYK5Jk%j#{J*A}sOX*((zL!xVoK}c_F_%l<*nUYxu(N6o^Pc#{{(%FD4Amu z@(*4vylVC8t<9pVx<>g+r>|bKW}8n)k6XwI&pW*|+IoAVt5$HZoN`}#2q!j|Tz;wK z(o0$SbA^L*gcl8~eh#Vy2{q$3N5<d9IW<(XM9pe=EGC37%Y zl5tDUu-tWM&ICn2UdJ$7@hf{KLq+%H?kNmV1+;1y8q7z@cQ_Ytb3;n)A_vG^RAh! puqS36VEfC&{=Z+bqUbtP7H@01H227zF8nW{^GlsRf9}sy{vSuJ(&zvH literal 59847 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 K#r;pc_J06nMW(3$ diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-chamfer0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-chamfer0.png index 3ee90b269c1dbfd8cba160597454271b698e459e..bf628eed0d780f1a53e5651ba968cf3e2ea73558 100644 GIT binary patch literal 44013 zcmeHweRx#W_3i)y)=1N$7zIhH#G+D&EtMz)28swNmDE~H709U6(iSm5#3TfA_$a0k zArgww29he*Ql*e0g%C&>J_3jsqEZY9VZsCwA(F`?nPf7VnSI~2_c?R+nGDkVyU%@| z`$zgz<|8xb?7j9{?|RqA-jn^yX_NciGVm6Y$j~lZ54UdLd$sF79&`35(-UVcI^Fdjmoi{O=r8TP${u_$^p_T$ zX48Ki@=mxr+xm~0q3(qDSmKi7=gbVJPZob4IbU#(ak($0@%$JWodMiV52m;*}XC9=?+^A z(PlSz7|o?Sf;N~-cWS_p{pbddZt&=i$GYRO?u4m~1Kp@7OJi0yrRt_s-C3&cELC@w zO2&b1RFtLBoux8LL(WpMUfWCR{@OQ1jl9^w#(j?cGqegds}9t$+0UwGrc|u7bndcr zmL++QSiHL`H$K`@GZ)`Ks1>`Fe<|)P#XWDC&9lwsDd@z-z7+3hm2xGb^>2O0{#mWM zcx*L)ox44~X|AZ;Tb?U8ab$HwU=;Tcowl*2q&n5MwAg>x>^+>! zzD)Lg+3w}f14D0lx9`}mCul=qk4fX@bF|{>Co@`15iv=Z{*aI{kRGojD5FgY8DE{+ zBOtW*&Wh1urk7>w;Q#tD$8C-} zwJz_U^Rw{9pRH6c^dWmd+!PaQ%P4cNwz}t9&#W#xGgk~C#&3^F^PDO?d8(l8r`tU& zzJKCaWjAKbZrxpS3*9*TwxMZXPmKD61`z4_EUS5ZJ0!5p>Y8D7RkNmW)-;CydoD2J zThaco_t5XF>>9(1*v6(Bk`cvZ3GvOb0 zrtU*_?xhxHxN(=6`^Ef?Gw;Nb>XKL9=Q>g3`>M#7MDz5271Q=YOxss+2e7CekVII4 zzjaH?zqgEC!yM5IsJ-FbS=_zjr50;7rv1nQ`%N+J3uBIHBJgpgtSlJY`G%EsTG=+P zQ=5#MW&JLsA6c%lL*JZ?9T6EjsxtY%i?^gM-cngtGP5*oofT_Q6T_NgO46M7vKcga zltC*-CHmTTRJ%6I??(kP^OWUhG(DZPtkN?{O-JfBr(AM~z zLGM;ym9PX_w%Xdpm48(De5ZYqzd45G(wyUbR}$)>@SCUDKUBt$^;om!ZD0KP**crO zJo~o0&6yjs#(wjBT1ioX(B(Lf>B~T3Yw% zJAKPejVU`dr)6eA+rPIsN$@uJ8e7eWtc*0D4Sp%*G#d-yui9B*y@dPo`(B3KapUi` zX>3N@T?%Vg*bHIw!u~az4|`44z3^8m98i3G8ES*P^zB!VV-**pmUFpbE zj+5P!^`)Fv#>LZB*sHj?GV0t+SLsVBRu%cU*=y_3$$_^30})uhiQC{cqxGFN2!Y>K z+`D1Zg)5uJ<<~FN*1+mLVZCHOvU;X#g=~8}Dy9?Wa-{nxrt>2%hvnSx*+m#!F;~6} zSRtOPo`H>#oQa>~Y(hYGQ$TZZ^KZFx3qZzB1yRR|(wt z&8)aTaqVAzG8k>TI5Q9H1Ju(R&REp9TAly0rI`S4i`jR@n><9d`xqL)-RHcPg_wF$ z+l!XBNcn@Oo(j;(Y}hBnpiRA(JoV(gT3R9eB>0un3dqt~Rpydwl%~1ypy-9gXUAxa(2fEgL2& zoX6I{O`p7+usoN+*A@C-;l54@kDuvM@}ps^)|G%A>yc53WzX&ID6G*8??p@7iyV7< z>1@Lxcn0SjsVduGzmt5e&(X>i%{RKJWwgV^|E(A~i+l~~I&qBz#d9is0xX_Ia^Uk{ zBfI|vOfUUxo%IXN(M^N|G}6)7E`V={xp_!oiwrqzkh})gO1=ikp1&tA9$ncw$m$&A zJ#Fy~AbRs5%M`bBK-SEKd+t12XFfr<`*>pHp$4nJAqB$cR%UM4Ij&(5f2!)3GDz03 z_Kx$FzVo)l!mSc@N${2@5VUUhw67O#MClD2fpRe$(6oWO(aw)zPLLy8z_I+EsOEdZ zFAB!Q=G}iRCkjwZ(8*?9a1ORPcP7;@N~$l5fupKYd{sN2-L~iI+30(|6F=o={d3>^ zQ*_{|dcOf({(#RcIBorf;nQyUwSCe8jJXk9F0%8?v4x)2E47>{vepFFI!E#@`l@wbN65PP?FdlqST%R(ozF1SXuoZ$!`V-TRr7k&E zDQs*%e74Ph&300Wmaj#Yu;;2Z=f(r&Fn6Pml}~4jf=2IEqIH9FnyZtcUfj+pQsizw zRb{)Z&tGbfeqFZqGsRRGuj^SYCnM? z!G8p;i=BnZ_wc4ZyY1;XzcZ))bkeocgmlecfIu%jx~=$vr%F&Km-(*CZfC9bqKac^ zk^A)`_poK0pcOGskvvSuDKms=iPZp|OqQ%!Ry2HXbkO(wMeFtXyDN7Cu7LDvS>$$eFG~ z@tVBxWjp(cF1~DbGbf4`FqVa!PNtaKQxrAU@DJTg1X)$rIUdO+aCL3!XFI?WgXT-a z;xqAC?&~_%^68a7G`#Dz$m;jrUJx%13m-hSWi1b6{HM&mQ-zur$<|;Y>WV}=2h|K! znum5+rD>{9AsADL0R}r5eTC%J{GY!I*Pjr4+XVyUyV}{nz%n?;llwkr^_}aHwy7$8 zQ+p==SMvnfvL|>(_5@1+Abp8#bQJzPcfT~WcJ;qy4AuJH7XbTF$Im^?6UBGdt^2bRdSVV zqa(@Q>R);t84~jNY(FsAbYLX-p3&W8vj*up{xL+G9qzRbQw@mVq6?k;Uk!b>{7pii z&RLYz@B^}6xAt_Oban%xvD>-~1(aI0P)Ygz zA3dGvV(WF`3Vrq}vOCLWQv*u_#{6(&NquBw%iG81hi2{8+cZD9t*ZvJYtp6oQxLa~ z;P?KEsV4e51L_=F$-BM_WEvSP+;TQKu%5WBTk=(L#T2+-1N$>kPW)ts$X%;MOBpH! zCsq-HtJKBeJ?Y>{ZFVYnj2MFJhO>n-n)8F#B*c{-4!V+8xmTaGQ&AcI3uQ?ufIEt_ znri^>@3U_z{ol;_Zg_aA8d_O5rt75;x7*$`1YrLc;L+t$y4i$u{=764{3R!oR06mdBe^+u zPBYizx@7+kL+EjTc@b)Z^%yy%AhRGbB9`ten~EgbZ+Qw$(fMr1xrH+4&_Ee0OF#xn z?_A;w4Mo<1{FnD$2|;R##!E!3Uabl7YEU2d!6@$p(pcLRgH;gJ+!!f2jSR^l48*Jp zjSP*HkaAk)(_07dJmKlYrPGlC$}0Wo0pvN%-tVeBa*iB(rG#WZ{wN>#fdnMJtQ@89a?ACKg zP*T3F$n#;*CpX~Y?ds4 zGr-hny>r@v90w0yv@&fk$#Fz=2`RYakg`bJt0nrXG<*m#JmL6oc~oU?Fh9(sC5Sz{ znRH3JGA3{dXYwvAnyboE`9y5>D_%}B3jJ3K{kN(pI{7^*hO8~+JsDPBqwVGWEZp}! z*t<8`n7x?kikkW@Y6+t>rhARkLA+obJgbskdy{pZlk_&iOUiB}xu#n-P)ROkc)Z-? z;fj(`AZG#3&kfseALhTMX5apXeS2JA&gdvK0@I$W*U6^xltSnPAtsPm_Ip`VknoVp z9sXiH-D%o-`t|DSSv)SI0a5(nu@s_S{Im*JIpZ~Q^|nf`W+azwp#Qp({9q;G7EZ7~ z%eBHNSM@I~vV+TJtEExInmQGo?w2sjYOBv|toMH@ z8fE~-w$>+X<;L7QisaJewWp%yQ)uMYstJyl^+sZ)*{mO^M@i$}hCNsQo*yEwsl-S@ zo~>S_HhC?5P)%0m*ICp=GD!|0kT?%=-(bbt7iVgt4F2N{h-c`pL26yH;7+zd_TT;@ z{Z8zue?C2oKr!j^^rTf>q5IJSgj)}**}X`41*(PY`8wQjAa!X~>HAot_9%IvG0y&Cwt-TKuZcfEk*3+3O?NB3~}ewZq& z`{wLUjUZVAN&XSMYvvhK@rA|1K%+*IJe_QvEM$s!{0$O}gfI>GAFz?t5>8(4DJn9$ zIrA|)*(&{ZHn%i6Y zt-82-%z#A%?%rhrC_T#}r>d&ta@;nZ0D3d7H8w7+UR1T<)Dy9Tt-N0Xsk<#^O%v~s zHSvPzMa)NaQTgcs6owOa!mBW2;E6b4@pXnqkl+u3eeI(&UGD{tS(3h6ibhKBM@T?g zP}KZj(V-BeOBpW7+oFQR`f*p*XTl#q*d-zTfu)NDags6XI#uF5SJP!hv$K13XKM{; zW#zmZ(Iv}DH8ZO0LN{Kj=SRypA?FdmUu6~8zBoyfm88~!S*IFBN47b$xBO|DwxZES zfPovG4s)rCMl`2U|DJyqzu+ua(Ih=WEc<#~JCwFqWDk=8T$v!bZ?oUaci3}PlrD6b zqaKS0$zZx@u{4bkPvPBS{wxcCX6023;LgG%81fer`gW>aej?3gMfOJ%OO%&#m zel6+p>N=4~udsP5%mZsk=g;EX7DFkB70OFYW(MUB=3LT*|C^`&;{WDT(zJq}&UBfB z(!)mfD(B4E`WrZ!m|J8^p?1_4ihS{ft?}mGP1QDEHD!9@r05`<<#ZX2<=aT0`f1RV z@v^dn76Cvn&$!^(EL^&uKM+{kttWyUN9NIy11%Ag^_{nA`3?tXEjGfiF7w6%;eitiv zc-j3@#2wKX>?$T_UYcxZ+u^Rla=qw~uBi+TIj8KcNk28rLaw9ytUro+npeqY_k;Y; zRD7=UX|-#P6;ZnbL*#I!Ql+n9QdO_)IW&6}wOmN{Bh&V|$=ov1e3-f&W&|z==s}06 zAyXGn5_q*3!=O~iuzy%@H2b*$*_P|x$2)i1x6`Vao26*YOC8{6<|pZ zSn6k1&)h4BQWHZ-f9v8FR_jI*A_~S^zR9|}$?}9jC^7N?33lB~rvrG+A_7>P&7RQY zZ2C4|vEr9&qs%7-b*+?xU`}ti&Q?lEYy?e3+I2M`KpJ3h@Oy@Jkf))2>AD|qw}+np z4Zj%T1EKqvq&i`?R6;9fcfd!yKQ(U;g)q*egL1mIX4F5fd)BdA(Abpf{U>@Es?w8} z6?VK+_&n&aGE842Bf67}X1cCx@RF1geN2}5_2@qu6OHIWeZYas*cH8D%W3``$u8n0 z8!R0g(s}<-ZYvL4)TZz7$E2B^6H&|LCFPTs#2#pefz3zM(tIeOUF6Iq^WYP^Q9?l$ zOz@1l6d+liWS`z-4MED4VzpeI*}9qMJgFDhSA>le8N&n$SBFb2%yT;bjxN$IVj)p{ zoQJYZW?u{*+Z6mM05jSsaU7k)$Np8phVJgLmXBi7ldvHupBjMc_{M~Z<1V4GR9Hy6 zl&{|I7Og^Dm;^smfmw~xg+$lEIYQU)IGc8a(DW{FIaM+(f3e0D?Hrn`W~B}eom}lL z6$uWG*VrrBu>zkvjz1eK=G)8zPRpcDOBSjage)_GFVBJ>TCcMeI(k9)m zCV6~cPe$~LO$IOzUp{t*To8wkvShs>n%R~jVSehAaG+?+_^!2OjP^(G!MVzfuMxKi+=88o77fSeMt2e_t-pu08*Tn_}T$)d56Ad-!*1z;V zXX)sedyCzoNfR?;Hp%?(6gdLTEdDEY4vnuhUO~Eeh^HW{lC#1soJ?wSEoV;$zGGK< z3C#O;^kjPe$HT6oHF~hQffM;bH5u0SjAynz?VT)vxB<+_U4XwE8*PG7gcO2J2@ETw ziveaDIj>B~B%oohKt1Mwah5g@v;HI;keM{FhN7&@ERkp{)X5&(Z0M$TbQCx)UdV75 zl37k=lkWL>73;c-M+t&C*O>)UpFxmsm2#tYMepZwnvVeTzj%LYoagf#wo4UJ0c`l!Yz0_j6xGSk)R~oiT%o7dw zmjIUch_IIF%#zubG$I3*JoeH(;ptaMs9tnU{D@D{X(Z;@wG=`}d9t*ty!Kq}ZNOTl zhs|~+;N|^0XYG9@yJ7pjwS$sNom~p5e&yXj_M9ciE&Dz8J39C0z~4yMh1rc&x~z@5 z_r=)WK}KmT;v16s)t6t||10R|VrY_?N>5RZ`k_vK#FyMm@-qfXVhx}Py92g1HE)FT>&a#) zDt6zJH2mEC3QEnQBvrM#gH^RXRmo!y0Efed0_9R^2VmJhXgkUhY)5(YY#qa%oaEo; zE63-SeL2@jdx|#FCbTFo>gCUgctFwn@L0G=nedfpMQD0!CI@4Ad5x`~+!w({zE!FS zLWBD+gAfV;wBs>b99H(lFei6` zJ@~G;RN>*RYgCWii?@IDp!oDP)Mxy|qtR~+l7A;_+A|y2$nxy0Z%(s{A(+qwPy=?NlpGSzit?-g6bS zo%2ifIrM7vQS1l8UbB(sys3|%D>k{~t>okAbAPU}{nh05S4Ay`jS^8H>nnEnrT-lp z3tA!_&dAa)=awPXAeU+krn^!cI6Y3n`UKk*dM6D{>F$6Z$Y#SeC307`{wl`xt0k8v zXGVu-Hm$_olbeJS6YZz0Q*4I!ndkGpOq4_NB0cax#E6+S*wnfvy`pN#6SN=GN!bi4 z$Xhq@B0N!^H^6nVxty7&*eAW1&k~}YhamNyTxYV~%a5-cD z)G0QgPqCXY4CZ=owlWMG>%8%H%M1AkAe<{8l3@_Z?heO%bcG}}-)G6K zTD+~QXAKHUe7z=5o*Y+PQSpRH-_Yl==BUVU8{baOS>2*b#Y4S$TYBu` z&9U}?HuEb(n{1bpSzB^RVYJ^&16#}?WP5J8b=5qWp?4~F?r(}tx)Y9LNOnE;|2@Oa zpaA6Vyo0v2+iIQ-TImC!%-)nDrmm_r6JjUJpoNh zP0vfccrjcN0D|p#9c8x8vHqA`4Cp8729v~ft{hcXXaUV{9p3E!U_gT1;`pio|A5`}JqK>~79iLkE zpQ+r;Da~4=gdw!S@}TImE!t_$Mo{zf{xJ_?XYoDRO7=X|q07Uta!>H_tV)M_E+;#u zjviAaG|5TIR6n_Y`WKeaSf#--CQn1frgb7xu=qVUd?se4$&D0>&sVvG723CT%RA$O`CwFTNPap zb&e}wk?Yx_-UlvTyhriZD<@%N=|6z*=A7Kv!+?ZQ8WJv`c9`@LyVsSs%+3#s7|}$U zQ+jAvY0u==$CJzF?ysBM%t6)GzBGzlFH-tYn3*mRbGUfNec5~yEJ}b$w7{mmY9kz4FjvfbaHbAOKV=(hCg@01)JPE=7;p%-j%0IuL`7c|V z-rEyWX6$QtUr5Ff`WUqBjCzrOyQ!tiK_uku;=`=w2uo} zMJC^#?NDBamr|y<@w|CTsQ&oLkX zkg8lf!6^8)ck*H~-3u27Usz7t4I%C*-{(>2vx-9~ZJ&fon9k2X+z%6Zjqhl=!Z#@n z*0?I~KyMKk3A(uv5AN9CqHIcv}S<$N~;dA798v5SW!)jpiGGH=Q8yi0^fC9hoR z&rb*e@emi=3f4u%SVN z2AMdnXe*%F^*YL-+%muUQhd^{VMZzYNKZXmt)Gxawa|WPvh7r*J++=7SYX~zm~`b- zm1CWoBE~d@kLhVNlD^a;#uWD%H^9F_RZVwCMmEz9eT?BP)GCwS9y#ZvN%Uffq$Z2f zyyxij=4kSPl-me9xLQJ7z;VrM=0Anh>%S9OP4sSy#ULkF#g@TE+oRh?z<8MGS2h zptCHzyLdv$eEETdi}0dxZ$>A54}#78&4|1>*9QrgKS)^mV0gxv!*qO1&f@=Ue!H^% z{Hy2Y;fxbKY?GNaDR0+8oT{?=SHL`x_MD*Wcu*Xoei9gTwqW!~hKGLRW|9uFQKo9>6$Nna{ zs)*A&W*>w1O$*};XFmJ@XWsDWF}HvnjT$vd#Ab^6Q%!6nF|YwOmyWLoi34YOZCZbR&i63RMS=mX0hZt-k_9J*7dIK@2F^=r z57CuWFFY~a#4#W)7OtvSmLG!f7mE#(QKVyJ&h@|J%u_6HkEX4Fb@LF5`vP6xU1d2dZatK_v_B@#M=Tm+!b>AAVs4AfrbUkBH2EXJ9D)`?e$$ z_Aw-a6>V6eo_5%JU=%u!UlqsxGFAR4JcCTPh!}sV7|1RJ!@L8oDyJ>%=gt{HKhu} zkZf!Ys;*iB;&F|3DP4jwImpw*B2b2l#m%4*D8tjr7a;9PML@1T{bQW{DO{h4JSsEn zV<0Or_!XXc;AOQ?o59GjO1|bg`OwO1cPi`e9z57NS!tcjT|UZy1Sl{Y+@d|>Kbs?uP_}HxjvWUn zYG{b@9*S8~f$%0-^`=q!NjI#Bcl*OI#quap`T&LQq|-& zVf8GYgo{BeN-NfU0^82dCm>g&QXnkE0y?{^>4QSg2b^HiQFMvE(Zk$)&u+gM6R3Arnd)kL!pN_JD5Pn;j6udB;;` z*He#zeGv(-n3Y<6#QIvaf5;TO4dC|uXlK-fz{8VxHK{*ar$0O)Ug1IgB=VBQlwgSV z?}87)diI0U259q$MxBdzK|XdaNHFdand^4^`!_#I+g7!BxQTCE7e1IK?v1=ol@;When(ym+xuSjGWyjvR#yN!ZM?j*y75z%c&ah*IHz9)o`2NTeT6 zD~LOOTS3!JZSCzHRk`KLP4TGD1wY)5H`kRb^ni~<>ksSsn;G$T+eAKzVkBoFJIwsO zT#Dc@MVbQ57x^hHWIz(YGD>c{i+P6BcI~UVMVIM6Y{2S6TSddMmBCB)K;-hx@|1ID z&eUL6&VZ83Z_O~d*F|-#tE4V1PrJI0r}IfNUhd1MSGMt{hZZ`A!q!3wkYsE+y;2K= zi#hnhjv8XzLI(*GCq(z)=cs`l?66uZ`TB2&_LmtJo)#AiudY8m#EXU3AMhsf0zBG< zJTTp7K`HpE#~?{9qyS{&%u2}TXY_(7Af`HlK*gP7+`yp$&5oTr4@033Q{M{0jUJF0 zynzalKOnNj&tF3P&Z!XSiluoJ@l>A(oYCADD8w&1oiZAy6Zrz?6fIqaTxS(eUh%X8 zBIl20jv(G8V6ykRn+}lIC;CJJqKzJYWE>>3AnB+^q6$eD%Q_*s&&5Yz9pKGY$d{}G z;tF9M6j^c6i1kO%_iM}**+oJ}ebbH8;i4m1H*FeB!Tv|Z#aXgY5Vw}X1KdlImB}rR zWBX^N=bu%NQjS#^kL$c%Hu5qLY9p1+K*vw-ve{3xO681c^nL$CG$v6bnSA$^&SDNWq8}nh2b-JYY(HB4Wqw zjN~C2kx&C5SsZ!c;8TU3U$0%e7Hfy}0=dufuoO@0A9%Y97&K3-TEQ|e&C9$Pk$G`0 zC-{4>_SWm8Ta(0TxSQw@Cw~EN>hRHtl?N%a_{@*);8E*x?m_`3VfTJ#89B7^{joz) zS;>JDd&)^7(gRMdG`|i?CLV^w+s(Q72p;ezJ>Uy4xMV2AFn}Vm6~L2$gb~EC1LVhU zK}s1^?sf_{)xVI~H2VQ?y-!K$S7sd}Ogp;ZQVBo?xPu(Sy7J9YzTYR+y_nQz8PBs^ zi}8ICvos&ud0a)R|63(XVGl7W{>e@Bj0ys2*LcdC^opX!%7rC2jVE`CWGs*byR}Pk zLdrcm&%QxjLbaLD^)84?7>Z%4P-;X}@d`%`YO)9uvY3jTYydj>d|(-*7CM~J7D~?d zIjB|m0uLGBHUb>vLhqwl9Ps-2F=iwwli3tbynVZkTy;|5f>4cCNNjUx& z=?^^2A0u#vALQ^Qc=I?vG07j@5k^+o^9Q=0jr->L@LB|D=NDDY`o@8?2!tfMIvmy0 z;6e2?24Qs-&qPT)vP8fjRn-yN0(-chCe8DIuskj#yt)^e5AiTXe~8xJMAN93yfBpG4tO2#kJkt_Rr|p*Qz8W>BkV_iK^Zjy6S!)E zlntV|jZ<1ESVcd{BdLvdx1Uc5&rN$Ck|S4aIzx__@{VT?NA?jLz1xl{-ecBJbzb_R z(ob$%uWxFa-_F}=`qqf!U8x*G8uRg{)CpvrMJ$i5+`Rm z5!A)VG<`aITH+$sYED{F5AuCV&xR2UwQ=4`6$U!8cTUO7X5o2JQKf3bx^ip@u{9mi z#iA+%oQNt9Ni3>*;6Z&;6$`KxB@y_U>tHK^2M<0-FK{mlnsw@iTHj zQzKpfnEd&o!N_HC#xF?%HH`URX%v2;qL60RLHP|aO5B0{A#1x=}F zwc?zP)Ni7>bz(ZD`%wm9@4PfSUx~qCxV96cc6a2USLv?RY?W<#znt z{Q5kkLQnyE@}-ujBkE`G-`&yvuL?9$P;St?26byB;!xlLj%d>r-hn$7@GneS>o{OZ ztB>@gJf`MB&QIGk`UpRi6-l5}s3(LU^&@Kuz_VU>D>! zRrjeoQ}Uv~c(CMckOhEYI1fLOfEHdr_YX;T5_43+QAmXPKsZ7OSRlLMIx!?*0@*0c z%twpu{B!e)7gUaIZ}O7pK1NJJ#n~g+*&cpCByVV!k2RcE8nF>VYPR;*`fzN>VTZR3 zC8Ku2Rr`!WI`oaA*_{ZFKY6NP1(B^dGnvEl;Td;kWMmMZAcXr?wNUlJs20#1RV_#q zoOBvOH40cC;(inCF(8M4bU1$s;Xb+H?=CJT2f7EPIC7vA&XztznU$3#{bgE}p2R?iwl?^g3}l7rBDUYa|VFoo8&e zdOGlehyYOuVht*z&^d&WN~o`H=AYyNEOH+l`LzI6gz+llL_sB>AOJ>LHqa5M7}9sh zR8l-!r6vx&GbjoDQgSl?^#r(#9%wEveTZl$k!d1W8twGFZ}E(xGK0ubZ}sn#1(MDM zLPwyaiqeSK@(9|wluB(!wD6=P-rkW8!ruGKhKCc<4&6pkr<~h>SrGA5tphBbtV1^$ zos^=3hAI{m%ZrSLA(rP>A#j2cE7#ExfgU1Ifmql&%0J(+x;H5X6qt(;naXs^{!q<@ z_mJntbmSIyP?pf49aZv@v4~0Z1Mn6YT7A-y<(C&8_eDF$qy02? z$>G@Fj>>nE)cA7i>#V7Qj-FD~A+!Yqo8)FdPvQ@7)N(h-M^KVNebCcg>+q)j3Rw*Y`d@$+D!mqYPMux{ zf(%IvsMJ2r6VE^nltfmiwqGLOTBP{*K?7#7`}Vv+z-*)b>gFQuU66t^N#>0{NlV2s>QvaM=8uq+rz-uwvc|rFm~;W80s>|AQcH6A{?sokWFL)w;dHt`5$x|#&bbLJLQA3ml5-zp98=tn^cSLwQ2OC*Qu@W z1(*--Vg!`Nq~}}Qt1Rw;qR!}XNL%52?V~9vC<1oA3&evihR;@#qwUp1KY!78F-cm4 zW9M~)fj(gACEFlg1W607yUrKvj|e6om6X zpoe&a2PI@b0ZE8%CV;CQ8|&vFC>ztbXC=(KvHj!8<8rBJqxQgc)|&mb7WwE7C02^k ztu~6kc)|K4J(DU3l<4G<*sf=LH1Vz+#9!Wi6r96RXuOL8Ey1ddZGFlt@T8$CqU6oll%DNHcpOeANdGi!DEP)ir8LF z{6{H#ymX|UpYc@SoaUpv#+Kv%Iw$ia)p6r4agGMkjTcL9=9T)@he8BfH&K+eVjjY) zgZ!@)gYn=i@PLTyrgPLDf?$o^fnqpS$>EfM16XFX@&+adr9gR(^DB{KAa~1~d(^#H zKQ657@yO`WcDRH(SCYf^$fB#a^9WIth0LDKX3wK)e%t&VDdsYt2pMW4vkxkQ`Y3hc zxsRC(p1+gUK=T5+Gf=g8ovz}lrsE@O8XFvg(%4vEHLVZI1imA3D^O{&b{X>mtJ)#y zx=6Y~3aZ)jQ!CUg1c$@rbuEu_#)xcV9sO8`=n1p6%emK477pk55#>YuZZ9~DDP*(Of#)_(Yjx?M~{W4OThQ%zwE zzbbewo*8P*Z-9M?@4IbU#@u1ieBMX8W zi^%nLgNG1=09BSKwtA394xp&&zl*vZv?LObRc(R}@s{j=3ZL+iFN6>Pd~%peG% zCBAM4Et^X>c*xS|cF;y?$iI2t?VxE3*d)>V-i5AUvs<@=mT4U8Cc!eP?M@BI(%9|Fqi*-n1^>r@}Zdr Wt~8JR(uDuTPn!1F_Mbhs;(r5_qEC7N literal 44510 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 IKV9>G0W>GztpET3 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-hollow2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-hollow2.png index 3e549e7d84866b3da49c212b6c1a1ffe902ee091..e9f2fc5bdf6269ef1767e32bd016d45cb8e99e7a 100644 GIT binary patch literal 73820 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

D~y@{oW`=dXoPk-#<*jk7LQq$x2CVoHnT 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 Z+n)H{&CQq9@xQCC_|D}|e{0hG{{RG5&D#I~ literal 73821 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�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 CmP9cC diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-patternLinear3d2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-patternLinear3d2.png index f4a04291077b8ed8fad523fcfe61a66d04932497..cab26258acda2137cee2332c7429db969d96b11b 100644 GIT binary patch literal 65086 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%0D=dN7Y+a4m|n^9K;d;6&Lp*C)2f@MV#t&Tke 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 WUH|OapJwo1?%Er#*?!e+5Bv^@dA9Zd literal 65058 zcmeFaeOQ!b+CP3HDwY|mWmKlLN?Ex@n=4wPQ(LWCTRd%BZkbS7x}}IO86e7-Zfj(P z;<`LWLQih%wyvSMiY7X!sF~u_mLY)-qJr-*A~L`*_xJNTulu?g%=Wjx=X)IAzdVkF zftY))>%7j_&-rp?{MX|nx?OqWm4;z-8#VHw-xx+GyzKB*m(KX+o_+9X!)QG*>Y)dI zn-X%SDD=aqXa2m?YbKw4_lvzNrae0D)5P-i)_jkgQ{OkOo z6Zhv2KmI^?)!$cs`uWKpera}OeEHPqu`~An@JoZU=aNgm>GPB39d}&%O*8hJPyP0i zpM+00SN`p}OMMc4XO4bi<0Y2IB?t09ns$lh@jj>j&?W0wKbU_EeID+W_z>}8kgvP*Rt zrMiq#T}G*b^}uDV7)*`JC{=rE{HG{YYhH56pwig?o^apv>b>*wH&(wNR{!e>`#wnh zN%$1`AI{}1XE)V8oqOVR*;;qyQoP2vkZ&lxyj zU+ndj?@#L^O+Y;mreNK-s#m3OmOGU?(BYz zzr1n^emf>ao@}Sh1JTRvJb7#WYh23pm3x;C3{PJZk+!C^!-nejC-#}u_UkSDd9QO$ z*ND67?(ZL$d(?Ak3l`q963Z?)l4mY;jR*tBSd^onqF1+V)TU<^Jnus$4)O96y7;yS!wFB#_CQR>~(B= zvn!Sn!W9@(4sYvpHW^vmoaWPKlDSr3ghwI*ei-Yd2)p@B=uYrPO4+&(cOy+ zZ*G4kJ->4Jw>$h7WPw;)(q<5LvRxk0oY#3+a2-fjT|(#JBM5WbMKq>X$h+ zN4Uzultox1*J$K6f4ic?6mQkTT&MZ8tORre*?P>GKkW1i_KVm89^iLtC%6yIY@^Wh zwwENj(B|GES@%GBZfj5oVRq~?Qn#ZSd%|_ZHa3?XcS@* z@z z?{nd9{k_j|#r2Va!;$GN^0kJ)X^@vWD?gnXBE0LmFwu1(Eu_%5z~!6h!e<|tSWmv? zrelxY9v4#iN!;u^G!-TusCM31?oT7zT08IKeQSh4&g~PZn_quFRmL9^O|ZrGB>7tV zqarrxA}ajjVk%%s3tSh3A~Eh`Tu{R&amOG}@}27%-CF*E5+2f^&xO_Vr*b9y?y~uz zxzTAhx>`kK>Mg-BlN2kQDNR4qIMW;9^p+~NsHOxLJ(+v%TKNtV=bro1in@dyG3Md} z)t)0fcD4C)Z;gm0_0QGKcYF}`InN$y>+~v-5m&<)SHmy}saaQU7a*Bmw^u68JlS!6 z>-YJs@kZ_W$7|1*#R}u4c>Bi9KKW!w%E>45zLaxrcF(X*IpdoCDQ}KW>GYrMa>9@8 za;fHZ`2g&eg7#vL`N^buM@C}cPGO_Sz!aXYKHTXpNZ0V~>&?U9p#u4uELuwaqRlD{ zyJ(xsg0>kQsEQ7JZ*evE>Z^B{(~ZDsci^1`5z*83n^*OJ{DaCD!qct~Pdl((c6t^z zLF+v07(v}Jo|31`Qxum27UORIX6WW`Ce;60voE>j_PEq5Ny?^z)g|Ub>znen#h5qJ z^c)U%4#`X@?nikJclx$(^iaEcg;yGcOWG?BRj}5O|3;tlABIiU_~_;-Vhs{n)+MxT zHV&OwcId>~)W1^2*3~!zH9?G8I|b)w#2@Y%{{|IT?CBT6Lo3@P(h|{v^iu^}a#jXP zQ+6fK+U4$$vLbor3U{>}S6*vbp7&2HV&7abyx|l7=rtwgFV;8Jj?anM0ljpuwT;x` zetouX$H@f~O>w;<-E7j*u2XB+_F)*5w9TUKQ(|JF6DGP!+sWT+P{#qk+x&o^F8gxL ziwZ=qDRCBD)Bo|h)$@nFGa9EQCufKZDDH132@Q^YqS_#JrRn+DT5|KG+!NHVWqGYP zxXul5Z8Lw1Ln@9j4^FC|t0j#RHX^pFd#wL(cuo3`JzPWh?r!bO&gWIi;Kf#<`+?!8p7VrQ#h4P&XxjaOPc&*<4G3` z88o!o1`KU!YOV0NXihhn*|$HT^{IGn<;xiJ$ph7{oWwrIp*v&;-7`}=^fJFbE<*4zu1-1O511gIP*7(Uk2>6^_FRiEF3) zhE|atTNS>n48f71TaHZFyzf-uzO+#KD~^`6jw7R;4WpafPz)JR3~wX`hL&{}PoQeR zmcEpp6yNs9tHsAWCBDEuFe$372eJm-Z8 z&Ye_-kS@1-kITQOo?MmfY|0K(k}|@1euSe&%g8r{BKu-ola<#)i|uM&>H1P+g$wQv zG3f{~5hVt@;C&?j{3ARC>ygSn$|GyEX%wWl+3Xa|MgfO7vwo=R?`s>NsUOcP83>PV zk&uau;4??|FrQuDWS)hCQt02~icRwUF{z6pPG;bEX8JyhEUoiX#XkeiICQ;Bc~hEzmmHY-y*0 z&Cj4rlKuaHnTv3qfomR-mN*C6_S^)}+~1UE-pdd5Jkn!yYwb%pW*2JUV+ny{soMw7 zdQb_0D{#scn5{p>b6V6y&8&SjesNZwpOetKKjE0LOCvNbIUkyK*`)fsWAq&L!c)O7 z`{*wYC~8L%OS?MTb4o(6!$_CHwO~Rs_-2qOA~6?FnTzN$3%7Jms_Sg{zXO$%&Et4{ zjkq4u_AgMYg*!IiS*qNLqWr+g{BuHcDpDGTq8M}Rr25DcT&}m5>*x8txAVIciBZUL zHRX63%3ZDH9x)19eYSe$23rGjGydpne5^b+@rLbVq`g(${vM4Lbot34+#Nm?a|7lhf|B9Adz5}l##Br!?CN}u|? z8SynU4)tQVLMFda77d?yblUL;Bfq4knF<3Y`pdwV7<8a->rXtBWtJ;t4-vk#VTZfw6;SFiSq zy|6K_WuvP>BAsq^G*LF|!W4blT#JvIY_smX!6~7^>iayD$Mg*+pTREUYc|U#Z8C(9 zBAXUP9`-;__kwrZp`5P1GpxMuZmQ^aJ-&BScZ{C(@TH_c)q$JK+R2(TM=Sw#Nnot< za|~M3oq1+c-gIc{_@9h|a(7-^UU*x4;8;Q~MYCh&i1ec)hPQ}j%<`2WGpwWa=)4!NM>x&0{&ePK!jnkc{lwk$O%=%{V>}#k) zoL6FTFXJ4rI9QFVc^o|xyggHo3{D?sz`3C%m7}oO$D(2H_B5QQ^p$cD=ByZY<`q8# z`Zj(7Du)LTnOfDc*7siR7Y{}@|JTJV+2lMb$|*?PFOULc&9Ki(%-107Ux<%=-Tcc9hJQ)X{&!1|($CfezEj5BUY&D*qTVZ$>OH$-%-+zR zhauv#4$Pl@J-JcbMYtgat{UMNgmKDN=z_f6FSrt>3V!MyXM^3Ff0!V1NLjp?>})4Eeko9hNgkZ7b9Z{q-RVyY{^Tmxg0|HZJHzZ{c@rM6){tRN(rfmo-I@Jp zAW&=O9-FrN(aqmJ+S{pA55W-s3TN{Q$9C;*xF5PV-9JQYK!@_&lA8aTG_zTpIC9sl zJq5G6W~Nmf`8PDlK+OEWzadyv`pW%p^I>#Lt}m#Vwnrg#=83$(33r|IK=6@MnV-xL zyc!tLo(S`7BKT@=w$CQ8c9eBq-n_>&HJtBa?_?cu{dT;#mDbF49{$^@!p7?AYOgp( zy=|tr?o02HUABWT>W~*|f9>!Si-(_B5t80o>RcAtvLbk0_ znQ1rCR_=SS&$)%!!|8TR-rVq=tJ?ff{D?D_jOI7JpZ@~iY+eyWqrghNa4?#G^kR$S zsvJ3bpJti$=VlhR<1t%3p>@BBZureEGLU~=i1KbWSa}um-u8N8?hkY=C6Vs!Mi?Q} zGqTDIE%!Scr$skTE8IS`FjQiPyoP7;8t#*q{>b`k9Nud>`~IBNbY1R+f3EQ6Lwhj_ zwhY$1#K6k3>W$0bfrYoM4rlyN%xin?ERd`<%|p0SW1wd1Z44o-_MpHf6`MN$)qnQC z;)WglX?W@h0veTE-ZQJ7_9y=vX0wl86Vqq@ClaflSmm4xFe+#M@bmvu@!B_!?HW9I zaHi(NFW~17P5({>cMN~z@SR<4iQ`cvFKSZ`zWgYAIf0cnzh;=fw#9KmmiqI5JUt+A zwl?q{j&kLelPib&sQW$5$B!TX*Q$a;&80f3aYnae#>eyP@5`@0q!d<8PR=eT`H=>* z=HXlH&(@^Sn*>2NoHW}s#U*rEv10}*k)s^l z>Xtj2mlJn1f2Q|@eVSwKk1TfHqUjSDpn2MxH%bem`D+S4B4eZQTj(P%KTPmEaWt;h z+Q&0LSWmn5C}9;#6;V_$yS%{5XvZe8+B%ru9A&S>J{No-18<;ERYQuPV)6o4nPG+Q zmO}UFAZ8<;(Nx=ZfKiapSM5Dkx!%@-nB~jwYmvIxd8@tIe#111l5}Bw(uGP1Arck1 zY3mkO*jBA=2QwI6)~Ni!4!-qCEin|Usr#L=`kBF7!SCr}d5lW&C34Ju%1VR~Ch8FU z4u7)N9ys?)v!plS;kNTod(3cV@>FKQ10QZ7Y|0?ooESb=8_}dXFyVc*t&FEUo$3-j z7ZPL7yb^cBd0+54E;^hbX8h5YfnmX0z66`vXKEizdtvu^s)>4XG2+_LZap8!PE!t| zBw1k9MSXn~yozFHe|zcP1kJ3}#QLv-7{Gi+uQKI{v55cOrr#Y_sbT~9x17}>TF z3Tbb>Z0xC>dTR3)MqApn&BO?SJl2OOge_ehVcoJCnAqLskN;6-&fQw!ZoP9( zQp@_JBd^4z-54G$Qb8(;#?!3@>7sMZh&Xy8&Uv39uH&=*NH2EyZjdy#+f1>ur#`zN z^B?34S(+-Ng@+Z{{6CQ$DkX$#QIcdI)`Rw8y{Yg?BOT88ycLet6LLDhWm*&ZYte62 z^4FAb)`|zYVoR3H$AkFO+;7vp*x5-hH7ZyqUa8+FOO;qFp=n9N;Wqa?LMz6E`IXvi zE||r{NwPAY4)Xk9EZFDzl_lFj#QuNv(#$?{_G|~qfPyegR-XH1FlS%nyxOKBD%g4b zwI-f_g4SeJj_+yY>Y3OPPliE_?-`r-y4kuZS|#{eMMHI~W31QaPPJDSTD1Aw;-}0e z`A}w0wsq%S`_!FiBqX-Pt2AZCX z?R1LSxU^4g?bvp%z4=ptcBg|6ub;zIfH_$&*b!-4y8dY@c(ySQfJCm0_Ny0HdgKoo zH)CaB+>b2M?5PjT=e|`-rSm$y@wUx*=i1o?dKzDeTX&rnsJsO>NY!5uM!#T|-RkJ> z7T!h>3gJKqBWe1qZjnoA&Ts z2lOAGK6_T;$>{s=95Z56)tkr%M2srDdwuEy_=u1qyp?TJ_fJ?Fa*~Bu4w%_aq|1vsS{_N{APtpPry>Hx zGo`L@n}O!FF_40*Rf4p$4_ND?@r^SQvKd~)BCa|7#$97SFaG$^Y~LnV%TT^Pbf{1E zU1K{`{_EpMjpsgpEu*I9z?yLtwfJ(=(ATe;lasXNhB+kLv6mAryevE1v}u!YUbJ~G zn)Ld+({*H5CdCV`PL|=N~CDaI2Dmz8N*Zjc%m4FcC#!xOtRk3m|!C z&)&t{P^Tiiz(UCUa}FLH8@~{Q3MGXMi-pNY6l&&~B$w4n>A@CKneCO-2oozRZ{=xT zX%!a1w zoO@qCO$ekb826>*+FHpnp4Nk&H3bE`K+g?l)|dO- zubn>db7S(BrtyX!HplCq%e(RcA9!`9OT7`}1y*;8BY%5R*Rze@^HfKbkl z{e!t<%ZZ#VCr(Iu)=7tlVMZm>DYwYq5<2YD{MGypt3ld;y1QtVf<0};fFko(B4?Xpq*6nrbTNBOQQjWp%N zziyETygbRZtbFpOcg-u_>pgTQgZ+BoO(zZNU5~%SBd6i>Jl@0Xvp)5O`0AJA|0n_} zY7DYlMHb)CdZBzH4zm1fk02318Yr$Z#1@OK2lLDwX-WHI?QO+}^j|=tvIFFS%DKDuBJ9RD+B^*Nd zt>Ni+llR1=;k!Y9bG|2ls+|^3KwdY=*J|yOwzfl^JV%tDEngJ|-iw;ff6&v~8{xLo zO;wl~m0{inZFGcCXe#n9N23is}*1I(~q42=*lJWv_#%f$Y! zB>l%8IyQC))R9PGQlL8NGjIlX|7tDp@Lj+)e_|Xud*;yN{^$#W1qy3(clD9jc^^{l z4E`X6c`%+V5dV8cNhAR(ymI|UkJb|eqP?i6c#9+?P~vaSH}5l_QY5@F^85pl#nk2i zP@moc-I?R;2IGUmvYl|MQkQ0@-XL;FyT{^0o^*9`t7J0m7;a{}a)5j<;)VC}R6e?! zun|FVhi{&v(z$7L+Pcw4_Q#*u?*lYEApKl_XO`*ad6y$lhgFUJ1BEWkSr_JS^_at` zOdlrSu`2EZ^4bKbZiXb!OKGZ4GRRiain6dZ(jOx7YW4&T zoJA#rJ$r?nXk$cH&E-_fg|#hPq7C_zNW7`eu_P+~w`plH6e*SCTgk!=blwO9f`)MQGPh8chaSaZpw<@ zJ#kC*#B(8$bs-{t2=iQ9>E6LDPDeKAfgbKN^d!W`1ETt++rQUc7x_Ss@RxF&(e#94 z3#b~Q>fe?PybO+#Qc$bBEnT5=|8O_|qqMzm{Bj$$+T&otA0!o!7H{4O#zPxn<;8M~ zg8e9~*z6Qte^2!G^1_nxDJ^FT>iM3E^p-OtQ3Ehq$V7`Lny|cJ_84Ksm4W(^RU45L z{+_(#{c8U3KOw>HI+kQ!NJ^c|FrW!K6fuD_A6rU?Ldcf?4~{yR3QIa$;TZ74=`%eO z<@LiS{$9#n^N`3yZVEaXr4;E_l2~z2 z#CtX-(Mbj7DrTT{oS%MtK7`B{8vk1z*6WBkC^GftB_<_>&&h^t>m-(r=*&*x>2>o` zPh_XRLdSztoes)Pcj!P*M}a|6u&?$432TVYO(knyLwPVK(wNrwvjci!yuVkrp|Y}8-65}2SvXn@Ar?e z{-%rkaR_ZK%MH9s5QM!pw(&zr3Z0fD?$31S{ANF$#fhj=k|?!UE%YBHV{_!ap+TGF zORuYh?jY=eLH;qt%xr-)3I%9u+G6B(=tiI){ZslsRuFM9H32}*3OYFRM(Ps7N9p8o zxUy|JEwbJk{WiF83+!{Gid+yNv}G{8c{cJKu>)$)KuB;b;Xy@9Z>^QX@HO%vroy6a zsUPZEOfS~LN2KaX<0H}6Ym8yDf(pM^=@H>Ocq&b16}&N+KpHYLLfi;?Vv-M~-)HW= zc)P#s;dY-X@LXL4L(^2M*&zrws_I02CFN`8+tX|Ig|J#NFffRxW4{thIeF8W7(U%U z!UD0N$Q0>g$w}}m{oSbS8scjkd~OSF@wqLuG-a|l#5_!TVP+pW11}U9Uj#Oj_SE-l zu`?=mXK8y>!*AoVUF)P8q*L9auJdr0egtu~MFK`JzS|s$8-f9$i})=_bk$2cM4{yO z%`higglz+z8M|9#Lv?HihGBuBBpW!O6TRlxg+E{=Q}dMJYD{y55hM|A4@xI#a95?2 zXzT#yIXjAS@MS8pDiJPCo*iK*29a1tBOEmkYoEcrOU3sRTZm6Z6-{&DRlJ< zZ_@}a~iICOH=p||O?`$fWS&JqO$#wfg5Aq|X9w%CwRp^e)%rAXvC9BwuI zAY|D;1EjMw++P&lvGTp4XDcZ#vi$^ZA2RX!>#zIreh7qmw*e1&Cpo<)xidk**uj@# zwyFEqE*qMB^&GA@m}|WsQOov6++(D`d{5`Lo!6=-6vMGnTU&4vfwm#Ij}$eK*)nvR zH^cevZ?23>*>=s4*w~}QC2G>P^hc-}y~Fj8Qc3;V5om)4VZ27je)$s()Yp4yzg^v? zz{iA0;#o+XcIYVm;7w7ph@`P08V%QZ%1YACo=I5MmXpO<}CDc(D z8sb9*VlVOP%#oVaWnoHm;04@7hGEN0AR4uyKNEWigiuRi%7+vyvbhjEtswabwu?uY zUtcU??lZR}oV!IpIr9enKXq;}dgQ7lkZuY3rP`Q8`)=aq>+&0(&EMhrqxwKCTLGb- zv7zx$THZb@Lp&^6CpBgc7x@pBdKvQxz0_c(VrvHT>7hf1GE(f9-~9LdD~lv;@{ObQ zn~GYl;O0vZC5S%%`O6G|#-7fV^i=8OUUDs2zP#hrIZ4%WGJ;hxBBbduqq2N1HnUa4 zS;YekR9P!m@p^fpP=0o4@-ZM+`$P1jZJ$iN$Pl%+V@zQu3FRemX|pRtc!Kplr@d5;yZ-iN`syk<2NpB#CQubvB?Q$+5#>#4s0?#luQK;`FH)*)Q0u+@P_&sB zI;Fm3@O1nOZA+B|pN!W*9mjOd-mqCkVe;2grW7$*T+aZ<82KVyUH~xK_PdUMHzr9c zgUiaw4og8Ll*i96ofI#2{&U%~-h$!KhwM;EWHBtgGHio~u1oFfa7(0T&FopTZ&_%i zVq*LBt6bX{p}(2n>jVrSAlNTqufnpN%{Ne*nsg>udoBL7gVXlhS%_$Ss6j=LlCD{P zseW-ol=uFyurL7}U3FbuMIbvpn9YYyZBAKPFmr&|7|Y2syDPFkJQZ5+5U|zv;TD_| z^`I-#hDGa1#tpNimMBT8m6N5!I?c5^r|=3Xp9Q#WjyX81zC;9sN#mWZ0U!$R6HWcg zI>=hc%~wz>(pxekoQUs#`A{AHpt}5 z)P%5qHg=cg%RW&3_lScVr`H&CXpmp$>_tk0Ei{VD@eZp zjkLwcWH6D_Q9$hM!krTfJLh|E%nvC-JRa#C=eRIV4gimpOwY|Ks(W?-e45s)!^4|C zPH4V`okn$R^bmyL<_`|EVO(Zp%u!xxAuwQ2dcWDZ8_0je_~;T*N*EVK(X-1qcw3 z0MLLB&duAt{XvGtf21v71JV&{`V*hOSAhD*qXcCHo}e)zzBL6Xg%v(O*rPFRRq4z- zgW49(@Q zctjgKY<2se$mXBs`j7SxT@6{p=fe03YVkhbksHa)8dwXJ4YA}n<|diVgBQ4+{{$R* zAElNwD|CQm`y`iz|13m#y#TsIBH5}UoySs0$6DOgv(X7IZBh+>d-!?8>F*Hmc?Y2T zN@D!lx~pr880*pfUqTqOh9SCk>wL9Xd}t9Xm#2R7*x;!!74`S;IhHl_?1p)G&eRL1 zpLup7Ko@wUMwW2^#G{U`GOsB&xN6{JnG5$CdGAs>~qRexy1L)ldAzx$}t4o}N zkd@Bja-^DsV%(?o_=x)BBOLED!Jv{O7HB}=0D4WtE$J4DTf`26ycyXkS4hLho;wSs zxQO!7)jDNAtg7ewU#^qUQNQ4EKSQ5ChvkH6&thS0z7f$zVs zVhEf$`}8;}0~!<|3E0UBNbF3AeYm;h1d2b&o_V_*G9usUE|ywAjkm_0otn8lru)=O zo$&qtTD4v>=V&bPY~8cDVvm;qSgdbrcr~kqMEe~&{_df-a0ZiIt*@WmaO7%AT<_$H zt5giuqL`(-LnQ<$ZqfGCiCB-r7zto@Dyt+ma$L25VC|^E&?wDhNgb4%jFigkt|)2 za^&6ElTTz;HJ{37ZW=2p>_}ZJ30)#iR0woF02I@C^N$%-weig9(^Gi#aPu`A)K!Qt zta;(3TaEQ=y3I*s_W$M}YiIsG>$Z>K5y4YUnLJ{|h}eKPlUdVo)2A=SM20EN=U;g| zZ+Hor47sLa$%qo)WkOO)37Bi1lNi`6;5!oyA$80&FyxN?iiQc$ThD+m)BNvO-e3K0 zV&AH#HSX4A&uEB7L3i_+vPl=dU%#dVEg}i^%yO`cosTIz`skJ@=4{*Pmu*3|WmFZ7VJ2hhPhQHyFSojr87o#t`UksEQFi;!?kSl71>Y3;hi$+~B!>>I%#Z zI5N6S8rQ2Fn%RvcIR23iX5u}ITSje*f#2aD18{g7q({WS9Q}a~C;?t~ z9hc(_A659bv!9>3>nwUSqSkEQT*6LS zx)SP3{gCh{xYg+6uMDfdABsgnMRF?(jiu3R)gVx*Z2bFw9iyS6h<9}9$L60b%}6{u zp%*jn)39&x_}EN}XHo^-Sx~VJ!fDB-L3ys7k&^Po*I#!>{x33XNb=d6YTS7vdUSu_ zp`Ua&Ms~QLvIx$A=Q@f;qRL#pH>&T3yu{pcI_~h3!um9B*wwwee|Mh$3UrcO18&4) zX)xa%eCP{&7=GbT>)of%G=v?S8xM8mmp#K8E9NB{_gsUvEk0j8t&ypiMD|;u4rXPp zLpikzi@Wlzi}U<1NozmTzLS!YrXQS98ZxD|p>*xKbvxFT#_!>YGjC|dTbhYhf&V5z zF~4-{(oy4I%&8gQ%P2P}L1M55h{R_iBY~_1kOlW+a9)%;6u?Nl8!8o=?Db^_4iv@U zOkuJHPMS2ySiN!MZgMD1){4iMy*P2=0_RGap;N002=x-`OX+)ed>o`3Ca%e^^}SuedYs#R)`FDXJkR8KhUGRyd1m- z$Ac~i^wUj!`t;2}YryG=2_lRjtt_V85OKAhSBhCDGUr;gQ3KbM)Pt~)OpL(!BaaojTar<7 ztP#Y8ibF?LrDus*_f|x`kb^?D)yCVkrb>~hw;pd^?_r5fJ`ZeVT#!sBs zwHzw+gN%nGgD-lJfLegk*^deUOpFI3G<8ke&dJ#M1BEZRV4Zj$C^!2I${SQ%RBT3k zd@cD0+ZK{^CKgYjnlv_Ig`LlCcx=z;9-!apQ}3j!<1pbGPT-#P;( zpr{VvXRVuh)6$ah{s}nSj+J$F3tP%|f*hK*kB!e-dZ7A^N%i-yU-K?Rv%DgD;6|uV z5Hk_!2IlG<;td<)*WN(C4!M6&H$BUMRC6g;pluQ%B{VEFpozrJVj-oLE-6&`8{ zKrLjQbjb)vS$p38IFAc1TZ27r1iJfk?Q&CodJANl}LaqFp*QYMpKkSydr06;SN z+4cn50JKb_nj-ay1J&v4H|9aOb86bkKRatw6E7%^c$Ov%UZVUc^m(j(XADl8pNXbh z$)6(kBLfl>x;SN#Bp9T6g_NNrPiH!KM= zABxp&orW$=f)6 zyj83VN*SRA$|e!gw*hD%HtIYwS|0AG=t$Xa8HKgEGbwMNXyaNa3#uTTG=CYHw&pRL6=aEqnjT4)~NgBxTV2m*4AA@tPouJ?o^Md;iF8X19wKtdkBI_>{tiRtT+Ay~B#IqLEb3g%myK(| zSorm?dKetsv6T*uq)eC@_a*BgMDAbNncnkCsaahjLtXVlEAmg>2e()_0}tbwQU_vv zZ8Z*-CQ~|!(Unw{#F65Ke*^9c2L~lIkMszS!bvM4WA)C9dL5{`?x4djxhGxxfQS0W z{PR0Vj@6BRmpmtm(=5OxIxVK?_Lu9&3^%Ii@eHRwf=J^^wqnIP~Q1-Am24KCV9PJE|e+*MZ_5Fm+l$nC*_LWk%;6On=s6KZl z1&a^5b>QtED@=>UpDGzHK7me#f2y6PJA(VndR20UOzMZ9o`OGZDL*J7aiJHA*+7va zJSS^)*bEIbC^iRvE8GVwW5_)gn}b9&p^7LzaAg4AjOqbUM}!2Px6D~^eZ$BM$$^J4 zuBP1LN60_^zc6T3r$vC-DUV_gAwTe_LKr{8!LZF|8<`%Z@LTJmd%FrE0tMVkABeh# z&KNX3Y)#1O$4Y06tV)+kX4ZhK@@pxn)3w5Lbj_G*9J*@`E3l4joH2Gj_+Bg@7PA`u zA*|M0wh4h}g2pEW5^C2Hybn?IJ5l}D1ttb4Mc8Lhtnt?hExk!#Man6fP;_=&1zhG5 zZpaS|*0UW3 zAw1E-dI+Eo*{YSdUAJflE8QFLw8&JG4s4s)DuwoNE2v^_)0#7yY98hfn#DG9SOMKf z$j6ILXCC1U=;MIvwvTBg$szYE7eF{i`96-f@pg5lVxro)5}!6_w#jf{`OCK=_cgK# z7345|TJLgi+%3=P6Y+7{_NCr*^ zk9S&RIZ~o8^y{jPy^#qrqq!zgnveyK!h?kC$&uyEQC zG8j4pOe)qIS=Fg2BhQCXd8~k)q1sU`WXc@aMkUcr9i+Zk*Q9Y92tlzoNIo?XwYzvD zF#5r5^(YNRRn{6ryj_EL1vyaL;!l`%w&Gre zXSBKZ-nn!@BtUWwqKl(W*C9TR=fpQF*be2fj6j>vMq&^MObGd$U3Z`#9Yxu#L9(hy zr|XNo%FoYscV!QoB+NMe_c*{-jM7pdL%^ZyGR;-0BSw3>MIJ$-O1L0SaYef|Z2`*VqjqRH`&kj&twiss#Y_0dveW7D%dGcO#)WHK# zHbY4bbbi|uk-%V_kw$K*Kow)c5rQ69rq#BGlriYMM{dUobma($M3)psmGRO~xDl8R znhP8_J=2{rA74v)Lgs~`*yNyQjYtFC4uv(CkyhnRgSk&lfl~Zd#J;O@AARv_am&ct zLU9O?AUog`c#mNcyjyk*Cx(?9EiEmv=nbhdRrFU1<0yWzW3C)1`zApmn-7()OL+o? z0#`}SAent^(W|=^Nf8JTzUVvbzoxSR3s1b>F&Ck>U@`ZLH?T8iwx>Q?%et;k@{f4C zi$+Gw9()d*9S{qG0c4`hLJ}>aDJVlWG@)-s9#H>|Y7$7hDFy-8Pqm#~CZ**+o5OO5 zW8^A02)4pTs7Lw}1;g}EYA9th0Rlp0VZqeQYUc`11PN8alECvpPx`-oiBKLw~&juC6xPC_I*j+HVN{?9~r9bWb z>`Vz#EM@>L7-2{Z3XXx@OMSr#oPd_b|5gj^B^c6U1xpR)muf7HVoRoFkhC8L4ddKB zDJE3K^MHiFia>`LOhA!p0#9x;2i!2lkN~xc#MhQx1s_Di&EZ+F^aB|8=YzBcn-x>aIN(gcc{fhT)aP^_QHafSj0y51*--7R^_E%Qb|$ZsQR?mA}^6q&437U7>&IW!Ono8DZ{t7W;!(+f zlvj)r?utCbtQZ{Nqvx}R zvsk6A9X|Z-OMI$EVxZUmMzaU#jk{7zMz|@RI~536@e|p$sfnHN1c;^TWV7@!TA+*> z(NRIlt*-WyJ6H^g*zA`*lrSW0CwQr(NrXYE2@1KyfyM!kCyZ?berNaY;&O>!2YO*W z2uW$Z;P^mLdVp;{QW-+dPF| zsKxNzOzA7*3WpZ_1SuAJN$ezml@&cNUaC$pYO0I1&PFh3V9hNII5ebSz8S36ksH%N zuxLAA204GdLU}P@T^JFB3c_LX(Qt6E5GYHm64DiH5O`QX+vYX5$UbfB@&EU? zjOR%KL_kPQ&<5I3vq+uS6V&v@mL2I(T^V>;e~{{KP-J2Yc?A_db_aK!e!GOALuQ=3 zmbe93M$T9}w}H*5_`R9GQdtAfHsz>+Vk;0z(> zir@&47L^nB%>c>S0YT(+di_!4E;w}l36kj%_nZn3Fp=HdfW)=6Zvcmgy)6ehl#Z@s_=kex9&^+rRhpO;sm~f zM>oh@}>E~1}+ zte`{oM`g^~%~dFJe}VLOb|tDLiBIkCwPn6CRa&)iK^G8_F%J}mz$Nez=+q#xrPB=? zAba3;B>&Z`eDC;yvVf|DBODj(xVxA=Y?T@uOl?iG02aL>BCr`jxC$CF{JX|-v#m;f07V?}isG&&87xi!P=3glyZs6e{oP?u^k42&)@Z30WI zRlAwT2+{ISgr_4?ivvZ?5GUaj{>@ryTWe4EM{Wn7N57+j2gNC1{%Cp+2wq{tL=8ec zf=Q;Y1KeR4)}bII@;eXfeq&uSUgPC>S#WWwp%k zCcQ2HHL+L6c) zePFN{jkPRIev%A9*Na+OMIUx7;*@2x|GKAXX3}dovYb+Qwm0DY=)_kR%V%j%pyq%24fVtI z7W<_D_(4B^w#x6ISY1SHKvsS%o@tuOM z2Pwsl{Nzt_DMG0K2n><{pN>7~gnFk39tsNVk;uiyRXq-aRLK_J92Bp|> zw62x`QhUR8kZr@UbCedsad)M24Gy(#E|{6_@cOAYAuM%9kblh^wQ<`S(@vj7c`eW= zcg(6KG+S1>OEV?JF0zEW_XVD}4l34vvJTtukFcle1YOCYBZ@Y>*IA%rLuj-`cfrhO-;e z^cJ+q1BJsA%9}rQ zG%gTjwN^_V$M@O+vO$0qs((Mkf2g*V6VC|b+ss6V^RKmOl6}{3Fg<7RtQ8}{k6lv& z44Io$<$AJR=pVLq1*ax5%#tWrLmg#FdR1x~;J*b1;X}piHWZKo2b*QuVMWvdT5{#Q z#FrE>X1vVjVf85hLTxaf<@=qtD##e-7Gf)5Jv1L{r^e?r&Dy6k;hN9E&&QyCp$&lO zGirqZNeHHlm6Q)--3pb1dj)p@#K6fZCPjc^X}ajY+dik#ma1B>+4To2rD_gTGs{&< zC>pk$(^!<)o87DH@3kzfa=?{Jm8uq;FATa~xOG4{W`il9@FM9LGPh2Of%6JL3CiAz zv0)mKFNR_R*9b1*Pv%@R1M!$xBbhB|E<_Ea(l@GC7}DbPzjNdZt2hmyz93}g(}I_F zrYi;OPv+M?srhtt>%XGkwV@KNm8>&GpBD}O&9u|XvzC)#_$kF*s#q=~qWa%BrMeQL z!MTks<&_d{Pnwf}R>?}olec%0Pr$?#R#PdQT|!Z@1d2WS_I<01W^PIOFnz}QZ*zh& z)(Ajp)!(xGH(3}M1dhePyAoKgtT+dAOh_R6g2`C#NZ^Cvc@FIAZl|6R#ArrR)(X5TV{ZfDfLf1qk|#KXRw_I6{x`J#R)-CvD)fRYGo_5 zqJ$_4{eG1dIH7;u%PBfWa0RAzsb1GEReqyPf$dbsrUxQ0dIi=wq&)FZN1i_TcCIQe zpyvQNpqXI`;H{fkoh3UHJx}`E^}zlFJO<8@vK0yehCb~F0@ZQp>6Hil7WrCOqJW z9=cgr71AucTJ^_XlVy~EIS)bg8Z;9@`k1y->K*nTp&pz_=nw_nRODal&@zFJ;_F_+`OekJuJx?&8F$CaYI-qCTkl*J4CNRfujpo&*IV=jlI z$c%>{R%bZ}XgF!Ky5dZaLgoaxixD|a+%*(s?Xn!&)Wx^Lv8 z)zv1kUvV;Bh?Rwtm|0`_y);tm`j>^}vqhN`M+3KL?MQN@Jb}jFIt(bhmfXa!k)T zEX19T9(y&SQ|l6W2u_Xmm)D~&G3Wgdll3(U;7K=S<>v2KA_Ky(7TUXMBQiOma zcwL1PYf6^)X}C>^J()sjMW&?UTEC48X`hm6JCl8CYMF#9Y`f&t2|LL|-ZZ~PXpN78 zJ%pMR6ik~h#+$4xv%2BXz6f$7lNEnrNqmM3GSO29o6Mt(Ht$92GAE9T&r2|v<^?KI zCz7C~mB@e{jFio#X~X)||MxBo4Xq0kEAa>uSq$yMI0=9BuxKr<@z*jU;Kgex>qe&y zl0gSRG5l%7q=-jKH;H65J6FPwk!cvJQc4}PHToZ!Z-T4Hx4iet`_hOkQ(D=}sP(HD zR?KoiaX2^$px48w6#A@$mjkn$hoc+mvu|klZp=phljN4V$<(SzD%bfy*O$RjqN2RH zpDO7P?rxJ7FDNq06+y)Vde`8FJ!~l{P`i8g4~EZvpQT~dRI=j4kk0ky*XRwdZT__O zN)(tWjVK-vC=M$Oh#CN$#J~Jre&|s3D$FWNIlnxzMAQ=r?jK!VRu)3!mnf~=47Mi=2(Tke&ZC;yb@yI&gxo)`GfyOghW3;GD^yXYe|#V;rfQ`UJ|(-cOVaIY<7y zKVsO)CuESdH8jjtS7Qhx;tqmM@Cp1^qvKaPlQ{$Tz<~pXZl8jmf@5ZI%Sc}GlqkM= zRFvYP%vn)l4B1h9o$?IwXRsNGW5m%BT>XIZsVpeaWkZ1zgBwsnWwx-LfKkSTqb+1A z)!^CR3_eC}Lq7_&h`9EVLAN-MK+EaAAo=&=@H|oeSHhv-$UmMgP1!NZQB#2&+5f^R zKy5d8dKPZt9KZ|KeSe7ab!31l31IUHDL+z&tL)6Ey2FnOr#`zoQaNL8`9j6j8-cLmxe1D+Nhcd?`ZC=8v$d{2ELs^eJ z5q;~6m=j`2@fGFp&a+mRpch^yO{+=CoRY>)grjJ?hD(E^X^kfG_U(`Wt# zS4^X&9x^v#F~c3+J);JFar`a~j9hljNiSfJX~^mUYGi{2vH+r;MN)ysi4RXMN+pkS zY!%gU7@#$22Zeo2r=I>Kule>v)rp7xNWn2b#RaT@5G?>O>3(Zwg4t7n%aVBUaNrA+ z(J&xC=BqH^9iGR~o58cT4?fxx_o@3ZQS31pq=gVt9Nb>$qJQ`WsC0>kLXLm_9`O6M zzx&zmes-M{{RoB02^&tPVw#B@ri`MJkyY~|{m;ul`83RfWjFcry_n`eG2HlGoP=OL z3-2v4X7FH{HYS%=$dqlml;V9nuBz$?Ov8mkn!e?#KsY;|!e684aas#>C>%Z)uh$SY zE0a7}=U5|W`t9;QI~M1jkK*K%>F!~Tbr`tL{!Ne)C^&Y-nZ7biTut8QM0ZSb@*H_s zO(Po_be>H-Pi`fZASK2;#lJ1rHY6XM@sHApbRw|At^oQXRh0%zzXd!{Cj&Z|xqR@< zesXX9;{I{xIPY5uOi-`_FB|SL7^vkSqBTZroMDt+Cz4kx_hwkrN?YSb=#%xTWSZPW z6)MBX(GV+_A)pxQr{oE_h06PSQse7|nCaI?#?EsPB&8T>7h+n_hM}l?2f}TMDRTrN z$6Inw<-2lm`6{594IZBGIo`O)VvYS>3(yE*|EiF4{baPLecb#@PD#fRL)#&K1{a}V z4-(jMP9kQ$$S5FIk4$wDFs&i~vWnka%o-gujheT}<=N8Cj#fe}&U}{cW<>ho2svfB z_)>M{LvXxa!=rvxoT))jGiSAhK}XIlcz>Kd(!r?UwO2tZS0AYb_cmJ|h-S zxmpfo0@t4N(znZO8$iqLhIOtgbB@0gK z8+LGMdy>IBZO{Yl+0Mo=^lgZCfFUFhDwD;B*VYdYwy-8GQIZBYU$TbJHAmL+_pYv$ zjN~}gqbUz_Mljvv2ro?Dz)?kJ78KYO-h%7TKFu4FEzdN3J%ALdFWS4<6KIovoAcvwmf zs@Z_qDwx&AVLWQq78NMY{y~FRoGvtPM;|3FmMKHAvTspjQ+MiGUiKpMvr&@tfdmH} z1-Yo0pTmi2sQpepl-l3YCG-GlCSXj=nKOydR5w!3b4psM%@90S+IwWQ0B9k6F4n~y z$EBD9Iipbrs?jolgUZdLv%qLactm8M2@*Z-|ZJqhVw$p1_}jL4YD+rn&ci>K>Mv%D7@Wl^jG%NKbA> zVK9JyA#;{5@5fRy%xzkbi0a&pHMwbURG8(#gTi_5(;afEYz--u321d~Ia6Cpi0s9*v|ghypDJ|9nRTVO2M>=Y z3v#vkqw1s-6jy%`lH(;XY8YYyrz5d!mbdH4Eg3SYjHblh$_uq*ia2-4+rVmGpEAYZ zXj`n*I4~XwLdK`q^?~v5eblTsH71iCN`zwNYGKq?!G(kKsChtc?GR-qL;uJQ>heI` z`XdGnSb8dF+zD?SudFm!OUEMZ)x7Ls^<(2Ztlqr2TM=jeQ8l>}VMshp%RC{KoD(iB zkB|ZR*aS(-;OgUQ6cep#fZnBjeB?Zw!JFA@UYehljYtYdH zNthzQbud>E`ow^&!+*`0T$N7tMp7mAD-NM!Ck>4Ue%V0=dBZ5c>=S7_>7qIj$3i%P z!^^DaU~Y70>m#Nfd3W%+x$+k3Oa3$Xg|?IRZI8hi$$UMIN5beO12U5~z}&Np*H`E6 zX{xUYq2dK(0!Iq-O)%xPTM+{QfnnvcJ=y_7zR+G^TT?OQ%)1Rf;}vs=_t7_1uVlpG z2z@1uC}A=5xNBFKrp?~-TE2P?)SpAAPAbVruiyQQ!waInfE{ma;lN%f_7Fl%sciQ~ z5{dlL9XbM`0sS`Hcl+v6zS~3EcU#oXcjGNISw7EXhzEGaphca!-y93`%gBhwAC7{J zVzynumBLXy*Wg!oOyYh$+!6^3tM05L3-clY`ZXBR$#?a2ce@MUd19){GIW7pQGKixnGtaej=^t$rxncBnx8Onz7! zLXHiI&)Ww2S+}+{=e?ziZ>FkJy#!2TJiRU?9hbQ+#nqKdHdW)@aAmns@<0Vm%lAG2e*3+$3m;Z*IVqetT%MqJ+T1$X7e9V z%)%s5;A)+$D%4calbUwnwQx|5NTTPu*X_Tm-4LDzM>k#3zg*qM#+thDEp(s7Dsq0D z2DAeOdalh6i8Xb+NdorIL>SZv4`lsiT=X$>A?Kj7@16EM5-i z)ylP;RPL0Hsrwh`nu|Pj7WPb=Hn3dvVzzCEJn)Y7~tY|N*z{#E0XpR-GV}r=q0vKWmqRjbBPlVkk(~1!JS|kN+ zRpT~Z=o+<)63*8B8@5cz=4_6$hX20_ccrN}h@>XO%nY6oV_u=F8zK*jOVYKHqgb2r zFVdV&tKz!-#%u}tUuqufZB^#b_SBJLIp7JZ`ev{e@ha;Ik&En$uKlzHPn#7>`8*+F zAPGzOFo^I-4nqNKRwK95o(oexo6cR%_~66l``@gHtG^#ZYNgFmKia;y-5$}@W}g6u-`J2qVL{Ns;Sl8LGL!cI+swhf?IsEQ zKSP~v1eK688TpV4QQq0cNvot7?ZJU0MQI8zg^1Z{yY@kU$@ z6SM=8Z>7%R&+crFV72EB80&HP4Q(QGJNzMps&TMNzsuW^%@Zs9lev>~xaccmT&VP6If=zodXJueEI`*gX zZWsoc=wxv2$9S652Z(h9Rsw;@N(|&w<7GsHLJX~a~Lnp26U#p3nZ~x zze~14G-sIo;VQkdg?Z_#+UCL&sW&4Td!=($@nJJ7sFY0*J*GgI88saeE#xsvM_{zG z1@e#96VROtq(1LXUQkBB2JAMv)x4S0SSzM%@5cPd2FgbA05h%v^A^~4|CEV@%-@|u z%l*ki5pFSFr)@puZ?}m-_9m#z=6gbz^5NA~@LV}Pk&qMywD@X~P&fgz>2i|7a9OlfCmMLKx$`C$<2e#Vd@3`*9!ij&Y+i=BWz9?A?eOs_!CkAQ)0d(8FuvHJ|Zvb6Sk^{ z55&XGuaV%uw()2b6Oml_aQy$KOmu$nt{;QIvJGqpNhWF@4x`{x9UPk4+<1eG?qpu< z5frYD@+YIMVsSC#ju~_3K-I!F8h0W5vA)J#?^p&70?&Yhz}7f-UOkMyII@Fq5Z=wg zigu*i)J8g@kj`ENFHkdNk&KMUT`d*L@K~%Di#4sx2q9?@?MQFOyHUW@n_S1G{Le&* zm{b|BZ>r_Q7CdkXe*-O|52q;;Gug0G`B~A6KcfgCHxGE-4RQ;Rb>%^G?JqTa5JM2A zZm7XQ@@Ux#Vm3v+#hTerHdBjI%ZGZH*=5z}vS#h0Wi4L=iUyVJ#&9lw98#Be0hVV^ zliYj_?S`f0n782@#$oN34kkN7g05`pYj9RxNenZdS2GRl%VX6y=8$9qhzw=rCT~_? z(qO~MrnMzz=k-l_0AbsI{@3>B=kp?ILyB@N2j10H2bqcTYm=c!L5NtHek_~4L7h39 zL?I(rD&fH%)eFZ`%~BAar`#xEl&3T~j-xD>(@gj_#XQ&GY5WvA7gFb`gwhm2VRv}&cD;wbwPSbsA`ug34%6I50J^{bIg^r&*%g7$BoZ{ zu!uVNHI4;Z!BPh!MIBs9q4&2P1?lVY4}ie}V<80&#+oPUXsLW|J{s=eGi0DbkS>^u zc?Tw!K7>*jKF=J-EdM*bk_x*U;tH78QF&5qn%vMwmUiMgL_4KU{-IUWH$b`e)8#oO zUjzXJ*bgm(GMu2LEf9@0Ni^1IjMjmjc?nf*bY;}EWPid8D9W?RT1TOK#>6Sr;^XhI z*F+MvttnlUiClKzyh=y+<>GG4!5TP;l}3P-W>j(_(gTEbNv~q#Wbqm(WdldZ1Co^e1Kr5o5S5UFjD62 zm~oGC0;+cy6wAC=>itGhl*+W)RMDF941?Rl$-L`B1gl?=a|e}0&H0otcr7YEN5H+5 z(bDFVU~)80G{Neaz46&w=~VD!;4yLIv}s8y_6XKM2W=aBR%|Tu94ID1Kf%}S?HXO( zTiD{^kHc(Cd~O09S%5tuNH&$2Pq7i!iQH-&woZwLBv}%Dl@cLx?Gz$;+M4y!v@Yj` zfnwe1*8;6abpyS$5^=Au6C+!uM0z|X_u-OIB{!%7HdLjYbFai4;k*S(?7JI6vm5pu zl!p?ceSb#LVi9P8pSnw8K;C49ILUS+(jS<{@+DG$P+SZO+p}lFja7 z!$VjN%Go4%N@rPenQ*Wiah%;y)`a|0m*$WZ@54G4c>j0{k&Cg+Sd0QdVU*&Wy;S0d+j)7i-696ZCf*r=SvSG$h;$x#^ z+FWD`Wa|o@!hQhDi&Q%K*W%V9{6>Qv{Se4^0Y<$%(!-3j*y~&2l)C2w5%Alhz}+xg z)X89S%TD}WnB208yL7m0b`j50#*d9aRkV~kP>|3ej+hZKAYw)jhlodEawM;q3=CdW zjH-#zt!|7se+3*2`GvHTgF!GY&AVfwzmViAv!i}HNpF|pSzH0@pbcX?>w_tKus$78 z-S>amyV}?+uQL2rtORtTG`I~vYNVu-jWij`BGSBQP};G932AEVuq5h0$bP)y zT$V0##OmCZZfRsDWUZ_-RXR8I?dIwXTj>^35O9_Z2a`n$k_w&ed%UjuzR!8i(|14i zSAF(_LHm9@&pG#f-Pd)U`=rsCx9IME1Tw6){%^=~+}vZy1pq)Sg$O6O zoQ^UwQ{|;j{ttRx12^CB%J->p8B4>8;)=)MPIpSyVAEU_kZWRikC5K}$~8(r1dQbi zh2szk+h2p4^$|VM#rP-6x3bcugO!|BE}Op)_-C1_)5nHK%%(6qgv-|`^buQ}G!^<9 zq&?Uf0CD&+uCqLOF8@5bL17A^coS836M*m>x+?~_ehtJ0S1dgZpoGBggUxswe`fXlwEwFWMP{P4VZHn$1OWXis*}FKJVW# z@@}i1{DfK~s_(UdQrrQ#rxCy`-W0}%U_#92+==vhUDqAo-t2R>HY%;{=wA0<} zX9`#H`0i&!zWxJ?v1#e?K|`m2IpQR!J{Bfp6n-ym3)T&8>VRN*tQ*&T!7q8-%gQ{P z+6%3@6tD1GkaCz%%Cto)`f;BBf_8`d#WAC<7M-9Bh|BqNtcQQWV-DpME0PcTI*403 zb)3n_KY8{ovhg!sLsz|JAw~Yza&K?D`#VM&)dGiaxk1>0@=ZtZO|XZ`zv%=Q{&c}l zA9CeB?lna9X%eAv{;?A#1G{k07?1I^(Q6iH?{u3r%Q{`7pOJ~;i<&!0GRm)5;L*X( z0XZ;PEfIdmeN*3#;a_VMOS}e*31^;&s8xu@mgXEOG)kiFy{K;YOy^NrwnxPso}8)r zc~EM8D%03&-f`I-Ug}0bs&gm`@7jP~Ayil983s(OLe9&6)P-7=iYyPf47hyi(foM~ zJzN#1*o6K&e|Tc8KNGj`W483Tt>5LY3FZKzYKdsTp};}SR#_LMA>7<=gv~QnJnN!d z+wU{8*^>RRnjeKo&Es`+x9ZZfT;Az)e3 z2E_(#!GQ#{K_5n^7oG{|c9JCGz)shRIu5SbhRR)uiNds*9SbvUbyCFrupH1bgNB&YB~Tu82tThBT$6jG<^2#D~+XSqpSho>}VkQr~zd ze}AU1tkKwvY%A&6TI%;yFL4A^(rF&wWO)qyc$s<4Ff9)9(X+Yp+&D2>-lua|NW=iZ z@I@T9#y3gO1IEYz#w>@9*md&vdp!hMwuE1WYF7F!5a_a#z2ku_kcIIblvt9keauVc z7*fk(sb@IZ=ao)gFB5?x6+z@xFP?@09y(J64xEEkd^QS>vU`KOa?m}vfDdzom-sF9 z63++Rfoh7-^E_Kau+YI37;&%RU#Pr;W~7~pGuGi> zfP-O&UAOyCOH0cw<6|2;-4CES_MkR^R$xtow89n=SQ|X=y)LAT#!tiru`8SnmA?3q z3mWAHZ7@$zwv~&Py#t}M1XvF~YEI1-WxmjL01oaG)W)%-Z!47Fhb8%BE1_|yr9ylS zB|vxuvg-HsQ2k`1kS)kkd7f?*sS<2|1=K@zFxK_S8pN#27%a3NW4hG>19#$j)%mE84%e6h=? zB!3^(7KIS(b$zg9+pjBA>kUbh+z-wCU=h&6DG=cNoL&~QGexs(*Ybb|em#tA^S7r_ z7riz=+j@m`00m4=f!Yldkol}GPh;?5?h}5xg&~)&)ms26%1Vk_y9C3+0TIoofy>x8&l}2c5IyAY z7)Z;#(Bt{C6bC%h5ox`}i&>UoU5z}#{cz7UxnI<1-$IkS6<*pQy2ydfb}F3(kkkvE z79clkWbI0S##4ioeU0uMv5hBnpwP-VA-WdIq;Oe7vjs&s%)k(~d0<27WPwf9IP^N1 zuTY34+e|auD4%MWu3kO#iQ0^p_-N=f1AfdSySq=uV783GwIbBu(TkwRvA7uY`u!1# z-+vZV1nwE4Un=rKP)C3csR-`nXXU`Q&bMIXk7{?kR61M1OXn2u(nqM9r$H4e8kRR+ zKtzuo)=@%UC@OhZXgW1B*@Gh#a;e3Gb>4q2{9G)n5A!kJS7Vtulo2jW0Y^bhfT(2A zMa=q_&;ZOnd@ypqyi`~YfQP5C26=}6v54V+ur>(rXjh&=<8Gsmf}|yUi~?5tcf3AX zdxrhUwPzk<+&Ec4Rcrte8^vk_PAb`W0_*yP>rYN@M}6E@_IM1%hAtOA}8(^}BG$mOy5jn|gl9uju!ers(aK@t*GQ`7$<)dC2aB7B@=!iu{H4 z32!$^4Df#Z`#r>e86|f%aE`l>w-?4_l^FDhkeHNK(5WGwhYPl$T-c#;y%(O|N?m8U z5%GvhmNgwEu;erX2#c|MD#?S{62!yB_msAaim!Z< z`w<`TH-9m&i;M6$MaD(L3!# zS0sR*{s0!|HUkNIO86DmqsNf-n=uAv-Xm2uNgCK1MgHo*WZ*6Rds`(JN#N*m3x@H# zkc{e)dF75ri;tOoP$i!@S%-06tVH(HC_`Y;B(iW-9+eaPggBaE&~>kG7P}zqpr3Yk zBrk*&N&G&onc!}Z62M&*{^0{mkhpp3l9x$mfJdAFU1{>srqZQPegParGUZRG`jMIU zk#{7Z@NcA)vq9>#975E^N3ees8_V|K3FkP2p3?Ab{^0X-o7a!;!{Ta%P?b|oHs8?^ zJllQc;iWn3t((#KEadJif*(1?+xbD0yI4NB_jxzwv~-nSvh(j~_)T@4Uy%Rjf-c*Z z;i|Appg2{ZlUBat3<_7PU0m+GoRSn_-e(LmX2MylRv5X$p7MxW~Ekm zZdfq~`_fExs?t_gEXiA1>#4Egw8n%yDtxNd?6e}c!W)fF#2QS UH7py+;lIYuty%f_XE%KBKfKA&w*UYD diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-patternLinear3d3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-patternLinear3d3.png index 82a4c3098a0134cd26ba75acd12bde8b3092b09c..e73af4e63389c46973269acd3b546950068d2626 100644 GIT binary patch literal 53403 zcmeIbdt6mzzCXV4Mrq1qDU}JOl$9AxPGXAg8Z$Mgn5HpKsgPMQjTbaCzzYjCGcqG} z%u^)H)VEk;`yJhFHe1gLYF23Z%&-PWmf5S?f-9lkn!=;*%^-v9dNn%?c6^u`0I+1 zGmdAE{^^OJijAAL?5b)1SBpLMyGhYg=O1tXSA)`LUB@5VRii%eK*t}Ne_WmP`ws7f zyQ`c2Hl?FG;b&^}b2~d&9+&LR{`}1jmd6XV#g0AK{+Yycwm9Cu{$Q3Jy?$ao;(uKf zEwXW4$9!aC)0XST!`JX%Hy%C$a@}}bHy+oKhZO)`$BNe7xDJAScjG#`_lh?b>ne89=jfoT_;SfcHp{IwC={#>yYX?q`J;hU1zDT zvs6|)@V~c;ZD|QbkCsIKXWWQ+RY#U3{dLBcomG1yk9{&UE~L;={^^V@Ne>slbo9u8ZVxVtDACpckQ0ZNq^0WD?Z(Qj`$agK~~rLWH%j09xa(t|8mOExTBG7UaU@B zc<9u5MUMvUsrqzA$W3#qj(idr%kQg{)K*;lg%tDB@&*fdV_R8*b8&7b&wjgSfBZa4 zprG`*`sct=?^$?!ZyO%s)4?TyWX&ym^S@sfa`i4t-neDG*oO!;`Lr*#<>rbSW=Pz2&pWq%~^?MRl5U{qLzkF z?Ag!C&wjgBTiBZwg*S3tVvofliZeznynr<(T)-*YJx9$ihgrmX)Grob7Yj|XQ=`SP z#PS)5Di5;6;(FGfJ_Dqm6e9*I>*~bpaGY3~e_}@c zB1&7<=!Ue@b5BYRcVl^+9oJ(}EV>W(!i>`ya!y_}`@27Rf4=@+E#EzAQDX z4BDJ4e2=R^fnraoFNatKFT6wz{0UNZAhs0;cOWLcnqtGf(D&r|%$DDCv(%@y@2ok= zbJ-u#_^|cAJf}ZP6~%Ta?n~nD4gARu;>%g4Tzli62*N4tFg#O>^Rh4i*pwNL;DV9) z$3`w5R(y_fj6KN0UPLzhJ?h-wqZU69-ByxQq^yVN>JqX))H^5UOrMw~)o)XTTcBk@ zjyCbPkZJjYB8x=KMk&aGUzkFpmckG`8kBsgB>7U)0#~r&DoGX^SGAL8VQ{Iq%AFJucdGDzD587DqZ}&5% z-jTvUX@{JZupq0rN*I7lwK=n%4=Hr7L0Lb`8!-X~DO|l0UQFQ%Y5Z!%T!$&imz*t| zoh=#dq`DQZ=BFntS{J>WUd)62{js*;+1jhmW)^i80;Sg5tED_`RBzbcoXxG}U0mI> z>$-~rO}6Noc z_jPbXxYR3gN@E-k^^WMN4UcbcR)3-ipcd*o*{wi$2&hE-;wI^=#NQS_rT)@iJo9OJ zFK%;+CzD?%{Z$+o6=ElRJ8lkbqoD`oJ)Lzuck;OsE~I&XN=rT}?igV) zY%F^7v2-ugx<9OSznEP=BD?;yc)kGI`OLPHnJ!viNUz$J5()P!jOu!&d3`lRMM5mE z)bpQkyXrZH^KXa;Zn2_)hU^C1<-^Pd++{@VVv6N$S%uj&Y$CVIN{%jd%y{mBxl1uCA7>G_YeZE$(v*OEN?FLNm!@BdHV+Qq-@gK zD_6%USLgXD?E8N7r@c+t^1FV{=nFY9 z)qaRLZj7&m+vSvoM*2r_(5pk6Z_a4^N0uveEEK;s4(_7Qt@+Nw#9q)R^_KC!?!D%tcf!K%zHx&8mxb!sO~>EQ8g=OnA#n8A zN6#P2N^|^caQ?qaXU?2?XRAP>XLR`4qJHqE$354;U8>`>tH0BgBaLT7L`0hX(i>5g zGxk)?VCVn|R@PnP&adLm^mi|Bd&$*1+|~OK7wp*<00)d9!2ohzhp$ias&MP@fc!0I z1Mtl&**)uo%CuywBcey8hj|CnR+rAKk3HA(ba~IjWf6&;Wz1o}0GXKYE6iSpFL3lK z^7>X|u(YNat-H6?CEP+{Bf3j)`L%=|#E^r5ony$fnDh7MIm%kCU@D7UFVPL%Y4o+W_i3;@*AsGL$ z`32&v&WF#fS)Z7?ez^DjZ1?-|ZFEicd5MWTa2Z+7+@J>dN@0^Gg_o<7FUJQ&QUYjf zDc#u}iQPM4-rN^Azd#^TLO8a(r7l!*RojHYk1)pDUzXtj*CW z@yBBs2MN}$sH-{@vyR37XMb9;Q61fpzEn64|8ZLd&dQc|cH*A1E*a+#$hUs7fB*ie z=BXU^Jr&2LwWH6kO|B6~ek`N$S9<`y)~OG6bdzhVs&QBY+G+96K8|+9xyO6l>#zUn z>K8Wk0m6B8>wna}H!iZmJtpMJN9(;p;~$HREHmZT@xHIt?;hPW&)$?P&2c7eCD7|; zf9vA6u2dlD%>Ut(-0D;Q#>#sS48`utyH@s_y<^F^Q8mv6C4Ym3J|ZCODbo~2Klfp% z{iq?M$}tOqY@!3-mEAfb4D^CpI^mkz>~@T|-d{70c`&lK<(9p9cv(B^6#n_0_TtWrB?OURzqaC%Hj#uE9-~viO+p$b7EO#$e~S+mQ4s5fwnu+f}VTL zC;OLhR(%Vy)t2n~e`JkXrG|H`W&a=ibnbBlofGZ$%R7kZ(c!(|IBL4LhfEb%>8Aqc z;3WFnwFrXtPHj@`>dAk1fm6Eb`__I*9baq9f|zz6NmYMCT>oyr+2wytpFN@%Nwgq` zfe9Ow8!elCR6_=7syl6-y@Rc=-WSpp{@%}vxa#yz7jGm#_6xabaQ9V6MXL3RUOYq=hiTJ#YBkreiNo+)$FV zp-IrP9*S|6z3se5xy#>7wL8E6*S`Rv4(Z?|y;(eosD(cs+aVx^h%}7&u|er-5sQQ3 zsDcZQWqRN84!-8LceM73jls`$WD2f%k?2u_{8#JFzRIA$#_;&)LW7=ei+#d0+V(TT z*HX;pvl%Znl2K*IVMP~>nezW+@SG#u~rbs(8TK6r81&AMzs`e7p=-oj{H)yxzT~|b&z1tJF8)szOy?eKy@gOnA ze;bswVcz_iL`?JqV?tYgYYS=leg$0@;gqtStEwr{+cBc3f{(e_3aGr)vWr=OV}yyF_#>9 z^)Er^_$bB2UrtCb{VSKe{r20o z;cs8O%{Fr6$U8^A{lWA@9|p{+FN&xyV^mFf)Bnp`%{#8fl9hNZrs}msYBOBpFETQ5 zxw+^6bx&hsBX4J0|IpM5-fGIOw^CcD;;+CFxI@rCa&nf1eb|3ww}PWbd*SAt%TH{b z4mUR>($1|oAEk`oe~BZbl$K-7*>xYShpbfCI4tB3xHm{1+|M&nY{`(^vQ7oSrbo6;Ka_ZK z{o)t-i3|CsF9ghi42j#(XgNHG9cS(Pc`hPo#J#TWmB!L9I#<*G;zQ=CyBCwyPRJKJ ztQJOjxvK zS*5?8j3>yL^|LZExoLoSyYem`-t(Z4c%rWW_cFV?vp4+2$&+V3o;>>uQxamcoU}Bw z2Hq>->KZPob}kIXXxAbsIc8X7*4iW!VUs&T_fAQi)q0{iB6=jR+i)cnyJ3U3tv)SI7>>V}A z9$JpPOQm~;2unz@Y;&rk=dCIW%eP{7h2v{}8#T?lK&2fIQ|s6I4IUDJe{ zR{tev@qLmp@<+{+{bX|CViCm2fKJL}L$q?hanMzHD2ZACI}`IR_S!ZFiX`NR)XZ5L z?HLfpM4nMh!=%_gf@fN5Z(bYOc0Q_lqnbq3FU>zy>Vn#LNwMQ#%DH*mAa&Brdi!4O zsKqhQ-g&OCIO=$BRs0povS&ssN+%O)oj}HfX&gI?)a9xr^~T=mN$F>KcqkQ z97^Rx$JL26rRw>aF!fNEJS5$QXE**ayPIH;4m&&(lj|dtwZX?h3%K2BYNBm){ZM=T ze1CTm;Tt|ES&|Lp;fJ^JsUy9vwCb@g%G4s9{qUfqZ^j6bqNN}wzy;;RWbdqbzhOZU zjhRzzbJo|buz$vQDLQFg^ch#05{XDgeZ~q^ugwP#>=!EU!eG|Vu5Fx68hT7`d)qO4 z5s&NZnCxcf<39Ms-Si*XCBh_8L@zXaI&Sop)xvh2i@AL6KZ~n{1jK&*(q>Y#C9%pV zGZQh=G#UMT131UA*1Y1@MGaL|RW4FPuO=j{53V9sDczmlFKzL~>7Nu=lLormj;-C# zN1qgaVnKctv%qT-3kQbmogUiyA0evyP|i!6chtnTi+?TPj4rg&?yV%jibVRkg^s3$ zCreAm_&%reNuTc%r~Po@QMz)W*SPcQv_)Y-i+>s;U^NXf;_L7uU=3&qB(2oLQP(5Z z3^g1#`!Xr563{t>OX%$R@2Iw0ja61qi*X>e2OCOai*Y+HGU>bLGxn)r#xJ#t)PCm7 zU%9Ot00Pb~vf}2n@~vr$A52p`l_X{wVyi(jE-E{;_)eR6I7(Vw_C4*8w>#4Z%Hr(l zO&qPe9b~x9>pGB%GJ1$&xw zUKmJ3$LG2dTl9}L{mSX$PCyWvbkeQ9)f=e-(N34pB5Avg*0vPV~o67TXwxhnKS*M zN!01uw$ni=hAcT&{yc+mttaV-3s|$G^23p~#JXjnM<%H|Db9dF+$8m%KF=eROI>R{ zsEVC!bSHR1N0$O_(iIQ=NMO0-xW(UQ-blGcFcL!8lyxE-^ zKs6HyXe5Y9d_-7CkZ9__hNf2h14SLNYld$rMo#uQtXH)cjAOa*sb5)+a8kp9iFGqXN~7c*`cY)FhqapRm{$`9MAEXkQS1UfD-% z{kYG*w%bmR((qLL)u(I>Z>Kb5#zQb_n=@(y%2%EKX_Y(E7j=D9sQya7oQ-$z@Gr(Y zvi3-nA(#Tt&ms(iCAta_c$8SAD+v!8161c79htX(s`u)!OqTAbxZ^{cuM+VezxwjDu_Ides(y#_l3gB00IahbH|ziwv2@qe=+C z4b4NwJT&|P|MPbH20GyzdBpBj&f8J|^40~v4ml;;WQ%MBcphTHx$_oi=dwb(KuxhC zD{n6@=c$pF;7PjEetyB0T_{w$fEmm~#nC9B=v!J_TRm5!)L$i>P8t;5RxNIj`kqZB zl>wq2qp9Za^9lL;?HzB0;`89PJXb%*FKzr>`1=H{5LATD&K0Jhj<5*oKdgSCIPu_6 zS|is|55nmIQHV}#iHK6{VAS5V+Cg0)-D(Yx+PWlX)8bg1{t2hEIxx9BaL0u$yKT78 zmX_>aK66V`DZpY@a!nRMBUK<`!50w~{8)2sn6HReC~J5`C`njN_6pu*4?>aj-~*7% z?--CBMUC^HrD~bS^{sD$CG$cN0u6f&;P5vSS!VNSRN}r{5}#wu2TK&XqF5n(FJmy) zp0O4MG4alt*v9X&J>MDU5*QdL7#o%*y*q2>^nRr?XU%dkE(axIf5PgLquWaRhlKoV ze*Z6T9k6uTZHZUbW**U^NisaN9tUR*1CY90uE@RMlZQ# zPhdG1BWg-wGFecP!Zt6&M)hc>ScJwt-`zAx** zYd1z-o|{(5Bp7O|7oLkwel4W+#G$Wqayl36-5Y=-b{v|TaOyxkm5*W1a}z3*p{1UL z)rIqTdI?HXLi27%>&Vj;LryORoN+ynedPg>S4~@3R_R9UJv}2GwAM$3j>2JTU;JbC zzD;@GZL-Y)9q0lOYIo0lQS*yUD#>Yp_Zd6CCNt_nu z3KxgSpqH?XeFL9S(Tp8TD4QF|110Qtm*6npo#oA1T{zfrWv~c500wMdK}1+;R{ud< zv2vRQDh`aZ14D0Op#8|Vin`TZN9V75|{sM*b*W}gw+ zkiV~Aa6fCwT+~aN=yTK{l3`q>x?TXH#L87-KZ4$R>n%wN5=s1UNB9R}Hl$RQRmcCh zd{)e@T5{r$-RlxUOTDBu729}mdgx&spU<N1liW$*BIf=`in87uPsdmrV?FwW{mCf$&D$qLVhAgy5rLJQW0mN zHf17GIJx4sbZ%fcU6jC)wRvktUf!`xy+oe&$n=o?aG8bt)Ar$qAKG>>dht|-M!mk~ z6PxB_QQ~+{s|05yWCv-c^R~XxXS};5}!L!70aBB zaIvhRfFml4SCmX%(DQAk=f>?x)4~EE?cV|%Q3`^R>y{;nvuz>M;I!!VyB59vmzFIg zAyk+B=rgz6yku6$H^T($Pq5tF>QEQb@DYa8li6iLgHqZ}Umte^Ast28JE-*J$!S<; zzxce>>9cpG@=x{lDG%+$LvdSB3{yBPy!(Xl6+16ox)i`v1p_O`zG3Pu!2Ie8~}MS|i@`-HrQw+FaUYBS_?_2Sbjq~~Qs+jghv&E7CaL8_G! z@QUnYH(?n{YFabq-kJ2o%z-zi7<>+^zL;mNN{_GNA0DrMv;kOdXA$8Y9a;M-4i}q- z2SKn?;hYf{7ns6L!xPNTb3HYC*ZF%hGEvgiKcOr@G{4xOmlIBOd%QPx&o;i(dDM*YHWK%BS2f+%0&rVwOe zU>pD9pTya`;`s?t6&2U^TEr*1ouxcuq@P59w@tHM2msh;?)-Q zYcq!)S}k~n9_6gHY0mv=*N4+?`)U>4xvdm7cKhl=tPb}qORC-=B!DSgZXf>e39vag zr%?Qb+ED+Q?%nEe1Qpq)tgz!dB>SB9lfOYmLHN6VIV z&ba!21_jhHNpa#Jw)w8oy!#kPIDW9|vT#c6bom{NE|cm;jekL{_j2ukRHa9$XYz@s znCui5hbpkfyfLM0dv5N@)2Bhn1llGrphbPch!LI2FP_Y~vw#1&Fyn9TJnLz$hY7oR zN!aB3yAkQzvgFlCI&6#l7tfx5CKcOzWfw6BMaNjU` z_{Ja2VD#8;%~F_g8uLT7BrWdzymp~&X8k@qJjAMP=D^gz9|4EU%Tv%gmp*8;D-}-! zB^mz;Rteb%o7>hnrKJWv^bnh7TWJj-Np)Y}kr^rI8V(o`qw(sC|Lg z$`)MMOcE`*P6UOGOi-zo(C}7stgZT-jFxNyuqZ*LHtetsDvT92zfT0wGC1tQWpjWXd7H81@ zq2SgVfijoAQ0LfJ`c1Ii84@xe6;Fji+tIc#m*+%P*R4fuGw0c{mMX_msAvK}ZI4&d zgU`|?B$3(_-bg%`HRQe367t?BCBdd3E4bfre9`Db!?y3toW;#bS5je5(joZRGzygX zIqnzv5q%n>(#Vg(GD0Ur+Sj-pzKJ(I4DjRr3e|g1%tDRy%s5e{e2T`lEBiE$jtz)I z^eK6Its~7~=rfm^Y<*~@#?}*DxSJmM()MzC_3QjU+KaZXn&sUzp`v+pmlVoWnCo!_ z8eswAD3F?fv~|2RIORAs4n{QR&UnUqWbCSsQPfi zllMoAdJv0HLufcV%UV3M@kO<+;Rbn}ve{+!?n}e8cvijR%Uf|~Ks7V#cm{fCZq4m3k)5tj~U}UuoW5+nY0g0!}BbRl5~Y3;mU- zvh)vJZ?y0XH(NDFz2OrGRsGTvRXa~sjm1TI@yE9Zd{wk^-!Lc=3tqsBgpO6qIo$*YM1SBOWY363_QS_AZk1LbDZ`7 zvyjfd&tm?sg#P7+_i;U`Y{^149>#UC=%82OaRGmtbJs{Kj?L4T4piz%@LOVsB&g0h zAeq&5f+y;gban8|c@AW77#q&B5WVLmt`?kT}+i$b_@6wpF(xwQHAcMrJB7R z?hw0v5O}fl1oz&iNx5eRR1hZ*+XOKz6S6SALLKQ(I$0jXohB3xd+gmdv%ZYZp-Pb- zU=08Pvk*ZUIGCMc#d|Lns<4PNUd*7Gk{= zQ~U>#0!_z$BOjuX+z01&0h;S0glsu2WW58+`~ra7)6*s+ICBxFEQ0#BW(sppz1`2> zOt_Z*=GZ$FsMx*3!r$X6=tyQv0M4>Rl?f{h6-q!5aq z;wbPBph;j&xG^>gmTf%jVPXA1>`?-24;Ip#{c^hc0A)g$^nn1pxH#RR>OWu4xgAF6tD+uo*)Z?vLRI4ET43A(NTZ-LT=7O_lzBJ*6FBxOm-AanIG#4} z>msrwBM}!ZMHM%zs=(HCOA$SL;bvU-kj3_-YuN#U*2=MdWf_1w@UBpz$D!YyVTsh< zkX50m_O-$X*)(CDq&Cq+QMBQqoTB(~Tq{LR4mFr>s>p6j8fAz)baAeBGTH5XNBG9( zMbEz82|y5_3Dv+@2z)+I9C`y^A*?wJ49=A<5vS6$mQX^V9LC2R)!p=l>FO#`x%&^2 zVNhkE$+9-ha#(kn%bctq)+MKRi29x422O-Imarh;E-7Vm z=?(lag)TD2A$lEa3zd7hr+6AXpz|GiUl-b(HC=s7%bso<^% zs|Z8(Qzo!d%>qv*O2;zS?8p>0Mx2{q9{>F$pqhE2%Dz-skGM63jamkm&9pl7K2fYqXQiHFxtTa9)Ig&2dSd*BdG?zurste&OSDmF>InXD zTWoVHwc%!I%!`YL;s5F-=Vi!lX4gc(Gv*DP=j{9U-zE&+zK zn1)hc40Ew2t6f!o^gwf!6Q%e{N=BG>NWEc}3>nLqe1BH}p1Zh{xECBhoGkEF8yz)V z61IqvhXOUo2COC8PJks>ebSfKociety5=2}f@ekj2&r z+~1>|JemgO##h+ipT$t6^&|{8L{tYOK$p;Nz#gd8=P=BOwq-DeMM1MET{cAWB;Pi9 zK`nrPSJB;QKgLYODQDYM&3~BNGuU#7UrPTGkX+l8oTkqF@>Z!RfXf1{01N_Z;W$_i zOFpR;M!yLtF6I}sZ%Yi>x|WytAAW%uPd8k6Fzr>k+QazuLggJ~NgQ2eC5l-u;j@iZ zVjIP@gu0;_uA3;z%Jw%t<#AHqX@dYd z-zLI{r-kj5YvsOU*@QkZZ*{an{PQ0+yCB05Ba+?%qd~CMw+Oa~Gv%jJ16xSw+hjMf zDHNM5&gV5vD1>Im`?&G@@B}KM#6#=aCYS@&Sbt@*#TLJToAV%Lwu6 z?I)47aTl}FuVQ=Y?9Sy!J{cNhGSJz-Hu2ed*}K$DC@_u|&dU%FP2AW8BQVtExPFWQ z8Fon@DB&Xj59OB_b3)!-(hc1We9KD-TvylzI&No;5-hy;=K!}-{sH1W6T@7N15hI5 zTQl~G*ie={nGUDB#o?rC^-!qIL^B_fhU6dQIqsu6GZF{Ro=AV@83*!7cxBo^9bBe` z*{+qswTK(PWN#H0Ok$%a%=q;5_u#=1yJoPHw$KZe8uwBWO^LHH9sHm`Pcw(7l4Pog&l=BZU#==%gefp>CR}xbdhw` zZri=PM}epb6oqqUJ6Pr_lPrm966w>fbsp5Qd-SW zqxdQF2(mb@X=_P0cfPZAls8A{@{{*>EfvgLbK0xaA=T3km%B{v$&UJKXH0}LN-;*hQk2IQW&Y^^NSXG6DCFu;hxW_T_ z<16ww0MhW3*k%boRv1th=0$9<9xd6zm_R^1VwkHIuqB+Q1O>%I;$-YA(L_cnNa-_S zJR6dT(k$_sX%C7m@miK_aqHx!*jmnjUqYka!8&37VhEkI~r|8XEu)#4PtP zcd${-7tWPTkU&*PT6l-{hXW;B8GDH=xh+wQ8nPVclV-*uN)AZrDe~sdyN9OUfJgvg zR+#q-Fv~Vj%ky$ph1ozaV~$DQ!?4@XA3@{^M#$|f9EN#VTk-q5$L||fTnv*4Kt857 zvC@lXIBml3I7=XXOv3NZ9{BeDls?CplKDcAh?Pi2b%hE5yO3(&1H%2)lXK!d$t7rhY{X2w($tD|wJg{7)bGj5gVsP>?{wUUFbT1HkPh7dj0q956;y|VYP zNMV)u#~$VI0hNx4Pz9`33#O>J0)-L%$uF`6r3{7yW>c6X0(2PhEepJUf}lU&-Kk6} z)3=g$d@cC^F6xls+$O@H7-DY~>e1a}7IUxE^7Nu+?(qvQ>bDg=EUP z@2Cibsdr}{p>#??9n)K#Y%Z5AgEz`~hW;6i+bs~{Rx5-6o;RLIJ6G4|HM@EN)M7Ug z+97&I^b6x69U}lN4X>c}1eqd~f{YKcAc3sY!!nCS3@4~<9JCQDd555WAvH{>wX^M% zGr*s5%v@rz)h?|9n%zIfGeS+{{wyN+SI(5U{=!tWgAyluU~mHvPl3q*L>LC=)*Z#{=rGwl~+_o2uRi=iC!`F@5C4qY>?3W9C6~ibQiEhw9%-!pjW2~ zac@)Aw4Yt2dIu0XH@S#?%3^$<_a1!%aJFg;hmQ3q5D6NS$5no1zGP9^q4BtETv4B0 zgH{z`ut3=%xysz(*lGO$xU_GU!!pu%s()Amn<`dI9w80USJUc3`1Ca(ZTn3C02-JI zkPisI9Z3?T8xbDO@(v~(M@a>J_8OuwsZ=IW`cI2G{Z=*@N<_|pDb2#a>BopfA@XfP zsptWPaV2A!#r@N`6>VqX{t}aE7ujc5V_zTUwQKMW#V*)uWz~D-B#5+2?{MOttSTAK z8KM3>-$2U=|3&_zjoE3$UKX9=m*@_AurFd&Fa+2TX^23c!PSx_hi<`Xi|I7d4a!C9 z5`Z=1K`<$hJFX?Q1XIXQL4HD?U}XUlWbhMN3|Cz!{b;r2RpQ9w%od1o7ALh|+D=Ib zcNRr@y2yB<2P4lVSS!R2@vo7Wft>?gl$^4V(L%MMxgjZ7y3(Vcd1L08A^a ztF*C_7uPd%GCzu3a41qB|I6MQ^&}YgA<(c_aY^oV%xx1qlXX-g&Pa$&g^cX!kJ?4{ zUsz1sG%bh&nDKt7PGFi9+t8f*HGL}M;g`54F~7$~TO%tG!PyujyVYx!2`4^5Sx!aK zmbf5b2a0UGqmai(L7H(e>dm}&uN423+I^O=={-wnE5Qsq5FE>N1)=Q~Fg#gH`N(vE z7DX*2Z%5OM^s{C*Vc8(4NY)GRIa-%F#AE3q(fa{djG6V$vAx6Da_&wuJI-Q$&twVz zbeQfLXxZ7jb!&?P_7wF7<0iU*rUw5Xq}b>)KnjDcgD-_g0SseCdmV*B5Bu0&Xta%1CDv~DML z>aH!*KfRYBBTXh?Y7-zT!e*OkccG5R+yW@I>V&9%LrRFqOkKcEE`_Dd+&c`YMx>2m z$MgoT{cP``x6mcqS+K_@a2;ofJx@s!79gAy3SqR1s~cXLAwzehAVFedlhpAPO#xy3 zJuY^RCl00o42~H?{+nNV;5>cihSGT2Hk;0FXFv2Z`*<&P%nm^N!14*3fxlF%>F43!Xz^UIE}yKOqo%h_V9e1VC(K*mg=?(WQMs>J(T*I|k1Ta`tSm?OZNqvYHW$bD0To6J!ZxH#f^5z4_MV$wy^wng$oq zy7X`&=T0&T`%Gsis%Z4P5|8buaU5d#4*c*k`)pQx-tX088WRK-CxfuIy^$O#v7+O9iE#h~>$8304&{Ja9pS0!q}JPBXHv&ifsDZx85)?5`sJ=8ApNmFT$2m|HtYFbj0+;zTh?r(&oOgg#0 zjBU9`-(7bm*gYr~N*-w;X(eQw)00XpEG{2YB)a$+VJ!sTivU~%JNlJ=Ugva6-p;_d zGnv#ug}?~j5K(`)NSZ^8cwunK!kO9zbkcX*JBY=t0sd@4t_3R?GIZcArVQ{d9 zoHB9<&>r<>;}eC-IzT)}pdUSJUG_76=G>dbaq!{b$;SzZp>$yaP?sA`Cq>a1YvK+Y zw=zwKZTRArUx^Fk@Tn25182CxQ6hN;*-wupSXRf=Ba%B1#!TkQj6|Bl(%%<D9G);@} zC@C*uVWz!f@B$5uqi)%O`&@_{H}%@;ZpPL01(}*)KAL7V)n}376O%);uRfh!2!N>GCqf#L=4oyc z^h4gm_$6ceQ`H;8T+&g9_FNN`&9KCk5BNI@Z|>i=iD+M-F~V=Ky(~f-EUCmE7Dk#2 z*UYM`4AtNxLYluBC*~-4V*Rp4J{DDdiS6lWm>(hrnA1`$WPK4+BPc|2EDa0!i8b=E zCOr2J<`HuMN{2jgi3Mj)(%?Dg8+@V;32EAK$n|l2^T$vYNZf3ZH~(0}dI*KcjY@JF zE=w|`HZ3MX1)1w{(e)2e;S8pNN#S?+9~;{Z{(S86?04%YEVrczjqY zAreq2n`oVV<5Ty!Snq3y_t{6rCZXqNh|!VFO?2QzDAOhH*BvT@jNWcm{bMdvvuNlZ zs!Nxv))j;ev3bCF1i&$n3Q38HY$HLq&Z(#?!0PA*r(%gEfQUB& zo!~yEMI4~zvgAjN<)dRu;{gWhaPA#WghsS(+1rc#W|XDX%;$=7jbTL$=(`8nzp2 zwtzDf@c0N~HMRm};-Kf)AA>zJZwG(90gj6^+h0Z5Ke0q;>(4Rm)-y^ zciky@JYS5=%TFvSS@aAuxUBgTxRG&34-)A+0SU%1Y(r1O>Bd>kkGW%QXc`ja9e5q-aGW$a9k`=Qv1jSBc`pADd`o61TMOtnw&9N!Ed$5oHAn_f#+JREM!4hdtv=p;ABLbeI4cJ6lA*tIx2c za9Nnuq?Ko(>oL0ybdq70wPm`>Ft!SZ#29Tj$5jQe1w}9Q@qHGJ=+vVu5kXk;<9fZ% z%}+e}i<_V9a`O}SFaKTlFK>PN{y+WhzAyO`Y~rk$Yd?AQUUZV=l^xE%6GJcMd=t@~ zG)c`5`{hlYsaUoMv{Z67ew1szy!G@ecDyCE}yu6d+lkg~(UKMlEI(eZxcios;h@>aA9e(n+ zPygjlzrKI@OM|)F@7*tf z{dG}#F)1?=Inl)FDl5Nc;Dl=rSc=_z?}hZ7}D#nU*_d4cWVEo8oRk<2B!yfnu9r>+@Ohhg%kO;R8Q?m#1bXPLHUNpkrl<| zEM{6eEw%Rql9i=D{#d~=mq~o_0ZyFun6s%MnVK zw|$33e$%ylCE0MiXd-&i1rZBU%&iaacD|AyBSxWM6ydg#n8RO$G~5?c^JUEY7_kPP zvYRiW;Ff6Qjl>sbddqr7@ORp|y!U4czHVS}Qk^ECJ8f>&k=tqA7mbcXwFVH0qXMrX zs1_aQPG4)L36Q^x6sk|s0`ZktkSvblXbhLSX}=gd3vV#TgZmcK zI;)==(>J>Qh48`rb|GeGIJ0+&iPapz_SwjU57ilvA^n*!CXvq+iRqXXU*b5B;Uuz{ zcAK^x(jw`KVv3p&S-&Uy$lnb8uKTtZ1}r@}^C0?4iIFe>?>)9y`<%m$ny$L#^*azm z8`uTiJmEzbhru}PNBSety+8CQ+rWOASsZ||Ab}dWLCIhlG}Z;kz;uEC=97d%7BVsy zosn#-uA|4FqO>&-(BsWUuIa#V;@xkcob*%kMAdOLM^RBxrI?U9%7`1nZ}54YOT$ua zkS!*KzOS;4bQ^{@i1`L+^Y6=^>bcqg+j>SJkQzx&3Weov%9Iw}l;2($7U=2w|NEuC zZ~NVhFE5N}*^_l)#IT5n$L81E3M`fN!*^`i72`4(J0daD3ke)DBy1cf9Y7mZ#@T@E zv1eOy+5D2JzG^1AB2R)o)mLUNh3OSp;)(9LihE*~78N}s-&IEZijga^({O3^SrAIw z@!Wxn3Ic6)nEd-mws=~H8H;$#R@az6YxRes?LP`hqnWfxn05Go;yI)oVRL*8E-j}G z--G)mZi`;{C^<*|5kYbp^67xAV6a{rojI@N>Kns`4HI48PB?NKM@|TnjBoJDo&m_C zdcC7L%~H&`(0ZPCa!@k6#5tJ5#^Or$_tzgCnN)F0<~QuPr98oes<$(-f8zBSGgfjS z+sxUsuW*EPE84I{Xer1JJ_4SFbnC7p>TW_6&P=pe>q7`c=eXVgPkqKsd8SgTsIr3dmKy9EdEE^31<>_m z7mid&y@4?mAZ*Y-fTM{7xT&%VPSHnH=rg1y2*M!6phdijU#jZsKPujH^03d33P1}MMz;U3?Y-4$!Ei_pTDO?zrK z5htsUa#8@KT$B2_Vq^j~#>Sl?gN43s^lIZLciwrYO{9foT`g1}Q7>2`8#gfw&2@Jv5VI#3PbYKDPAGi#xv)ce)jIotp@5iQrYFci<& z`1sql9q2()2O3IbPhsXC_Dn2AWA$2u{-tHLWR%FR$rlcC7LH=3V0QY>sxH1TD7j+L zO?Bu)++?4MSD6zJBDLg% zu7c|8C}M(Mii?MTgMC%kAO_yj;+WVQxt3=6Z&X^FFoho6xh|X|S6GAgbrHtlC9<64 z4Tu!2G<2-_2}zy$P5TZq>qHlXX#9{kgtcfyUCMjzs=>5Kb|Yjn;8wbE;z)DmlOT;j zPYBG-(-G_$-|3jU$2^@SW>reHUSh{ES)HjnSg?UAZ;IrIssy?!f@&erzO%2A)kjKQ! z+E)5C4;89US$;!(Uf%*&=qwlyn*EOYglr~r{+ezzaNz1{%gPa@K^ZJMtY5n0)Ba!m z6jK`h!?Ii!q?j`(D-<)2Jxa1;zA1|bY-YvLYZ@^qa3Wq%vr*}fs%P{{pb#9# zri?%v4vJk7Rq(wD*o@A)*-`LPgG=zk4%Gm3YJ`ywd0$rEqzJ&xo*4~@RbV*OHFg0{ z)wtFR7~KC3C45_MjhEp~ifR0K~@Oc}P~;#U@0coa3gOW->&*lzB)=< zq9;mE=VA7^_Pia;Z!}M$MY*gYA`W>ocT2k-Lpl^@8xO=xDV<85}?^V73#kaA^^CvG)5T!*3;uODz@<~Ts*QV+6SEcCqvg8{Y{Deq7| z#H=|fjCzEr#v71M-KvQaHIXVk1XV1K473vb69!?~tSt+MO<*1mB7xE{m}~TM6ghqX zq@rcS(6M97I+`J;W|~JM?+~8CNp>KfEz;mteSD7fpCBk|{WW#l=Z$98l2Y`vYbMqe z&N$4kD6l~d)-yM4c0HB-&Y;KusWpY_B%d`%F~zP~8-h*Q^?7rjWu&RGh>)Mec?t>9 z-bt^KC@pHLUNYd#lw%aTC1Mg@F_4*MgT$A3iD657R>>P~`8{{0J~}s5eTWy(B2DdO zSb7ZTRSfu|W@+upd|5@k-Qt6UjB=U&ugddSS|7cGbRDj6{7CO(lTbnr#@ke*Q%Ma1 zrGk0b+C(_SzRlUz8LE6oV~ySSEsZV*S}P0-pchNAVL~7KXQ|rL3KbgEApKoXEy_=_ z`jE5`*~7EQwh{xX4%l8L68Sed3Cnj%m{&389;!j&ouAzZu-C<$UuRexUIpi2e_sdJ zkfXvuqgO+9Q0y_K;WMZY?92tc4>k_TdlsTf z4^bHkH&GOI3~fCyJkf0^%vPU4@i4MW>rnWG`Doq5E4qwBP*<3H^j71=lW`2=>hOAL zuxR9vP*R=w9m;xnGMvvBfw-az!T@CHR&g*L-$8qm+;67259$nu0>r}O)~jBOHqTxgU* zq1M_$zT8=iYnnW>Uct+F24U|5Au$|HClZ^BfmjgyN#vXs^U(O+YaLLa@OQ z1{IN37K9af>F6JS{IQeYF z>lUA1#dI2WV_=MD7tYSh)u)WAcB2GGeO_(_Vtn+fvtYEA6L4^;V_NDIr6f?mTK09w zT&j0a4(f7nca&W6i*&WSER^?fe6r;x#^_o#OT3Ud06W;6_Odv*V38BeJc_bH$|JIQ zYAJLNE){j0D>47BUy9F*kkvt^JeE-sQAmjL7>rnp0+D_c(JWl@R8(ey zx9wbTGAAz6a6+mP9(yyTF$y?w`gD~8_40Bu4zB6=gl!3ULD%R~4_`8uD$d_5&+2Dr zoH82|3QLjTcB~PfzXfIXkVC8hBo^OVzOy?#`8rH~LDT8KRz;k?p@8)f9=%PeLA}Mi zRt-<+$`n)~P4GnL2+csLT{2=m4qbvd8356V$8JOIU<8cyC=ZxB^WTQ1BAVwD^_Oyu zQB@osfw>GD)eRWq1nt<3rip)HBjvm14Koy_2LcW133)M+6|#q=xt4W`lo9k1>LQ3w zqLYq|5<(tfJ%yN1^(aM?X69_$*0n%f%5WSOQ1CVk)np+UB|?nTK|G6#rK>%~6@|pZ z{6(8mj{6^#_pitK^Vhwbc+&uQj{sjmR}2~4#B;_N7aGH7g)wAjX734DKT6HiXha8h z2;u9Ilb_%7+6!)EO`D_VS0MgSbpOBc6kGwNhnnl-mWt zfdVPtVw3d)?PEBXjjEXA=!rtp1mYMh5fz1-ybDiOsZhQsn5Ku&|MDXp0jr#n_3`a3 zs!<>54Q&NUyTTbj!VIQfKR;Q=Ox?X;T``Z43tcs9ODFv+pMOtR59{Ak%j9FjQ^6`3 zdGy++bOX6%*O6f;xrO1PSL7%@%#SF5=%W4|C8cy_w{zU5e096wGaRO&o-Ta`_;Rpd zD58dcVa+^Ddk^S4_%n35K>2AmqDjhaHUv4=*hY1$up}w)aUiL=lHDlwf9XqzoyI8GRl=0P3xPbP$P6}G5@$S zT^yvi54Q;%+2X@D5%5-~Uff`~zK7#7+L=%*eR)Oqcm*4Z6=UM&_7 zrW0v!aQ}!nVfLvl0A!Sp7o>b_Lf3)v36uo@W{`=lip|L>qUu*#NKGlwRHzviE=7|B zdCrs6kp|AtjFUrC76|?X%O@F1zEPcno)yr_Xy~M^#QX); z`5*d9VmJw$1@kW6cBh&vH!ksjJP4R#a-Hfw1;DU>g4!|UU0|{P0DyQDlM`@F=v#B` z>pCt4d@;rIfZ>Aq#!KKoX8}RwmX;EVRuiORFr)%ADOT#11~2&4Y^NaP0HFwX zzppM=CAh*!TmfBTH&Cvwu^$f@hzo-o4V+Yp8B;Qtz~;^XHUYF4Iy2s!j6JG{4oG&r zFKrzIs&9nXL?0nS2Ff(_=Jzo!R5SKejcZb9OIPv zu(x*Dx8GwUDQ<@Mc+lrOT5sZHYL>N|@I3o#4pu=9cv?D~iMp2EpR+CldN!TX1E8s6 z4W@YN+x&;_b69a1&xsrGZ_Sy~$H^y=UiL0SojF3z)fB2J4KtzAc&X}*43aTOCw^MGdO!M2nfVmw`hp&f zJzz7a$eOQ>bMX$K!~Pe3k0bf3D*?;8g)vR#q^FYaC?v6k~tq zpOj)waClrE4xqdUEs0IgR?UDXew#m(n%~D}T(0IZNFG4|5&UF5%;iTfK{8?WzJMvR z&7r9_PBXwPIe17zHUNElt?~)1D?$p#O30@OmUK_P$$QxRcm}hZDAgn$yivqvRLqIO zc4JGst9aid5pr+?>yqb8orI{~p z-*u6j+lOP|(RXbEBp|GM3>?|yZN+JV(@?uXUJHh`^C8iey~sExlI?<|!DAtr$-!g9 zI0HnSr2;0!priU5m@n7>;oYXC2mVOB>~q95$)?=K2|y(hF$tIq54IE?=L{;KaR_rJ zg?~n>90Om3pF?l)t9)00Pl@GxyNNdH$?c#In)nUTuf%UEXalSi&^zyM?VQt=U7>p5 zHnrhF4Qh}ek#Q&GObbY;s@P;TSg0eFmH#+R*LI1|y^rD!2C$NSc2jIqVO|5O(rN9b(nCWEB78xxndkh8-r+?e5fp701`HO+O&Z7W;wLF%0k1V*$6jay&Aq|jd0l-K~Wy9w`2>^tW z0NWfNPt)+YWmRnEXmxgD)snkb50;(ZnZ5+5AIMq?sPIJkKXTuEh2U;e2#VK>;Di!T zq;YNn*3E}yfSr1-{e~~N%XAoz35XzyuQhpFEp7!Fx7}iu@S!;%@^#NCiczaztHf@Xb3@qmhnTJsY ziz09sIwXVOIRQK-sUvVHPz)PTSli7975iLDxz9(sUKY|71oHqs^^N~w=Y*)9CaZN> zqGI%l$z#(os#M!>b0bNvaMKXAi=8w=m>vd0A3Z9KR>3KzCLNEiHkE1kgP*z%mTa21Dce93(-YSoHfQA8aAQc zp&Jh^&fn=I_ytX~xSJu0_2%1%N5u+$*%Kj*FVrGds)dkey6m+={B@U&IhsPhG=LuS z5h|T-_ho`NRA*`b4bc`Z7VAY=VBXH^=XDZn9(UwyXN1_RwT zSSnjHvQ5`F2yIQU!2oE&3)@drJpjLOFBk|B06}k>-qImEmT6vZ(FR1VFEEtxah{O1 z<&ZU$rfrHD4vU0vF!%R3a-9)`H ze`B9M2iqa0>?UJM2iU${HE0f_b8((W^_Rvcn(=M3k?4rl4|JsD&~DKDPA4jVX5^F0xF3y&+9Y=z}hU*#5)Z3`9V8L@?e^WaF3_W(_d=tzjrKf zJh>vu(IzQJ(W8(EQo!auqo*u<4SNrhTFHN0L&3aCloriGj0XvIvbb(g&l-gB0n@Aj`(fMg+(J}pF|xV`u4ZRq6wX|en+AJ#6Df|p!fJQIRF#YYjKy5o zH0CbY?BL5vA_-|({7=lKczOSLIRnhejt^XceA?mowjbgbH(6=4EeoFbep$%XyUYi< zC}JsDVI$YpmR8R$v&?zE@NcPaMYAFQ@`=G8|_ZHeGRU=8{dna5&wUB5AqLUw2H<^~l|G}cKKbU1puAi7y zey@w7&u(1TF^i_qYN^+ahgCqX8xQMlTsIy*yK&ukTsIzQD!7gnE%5m|2=)c)*U`Nh wAmOX)VT+zJ5ju0-c=!av|9=<{&%mKd%!=Jn8&Y|YpAG$sE|h(5jhR>yx;Hj9B06G_xu_|y%XZ&g*Ad@JW*vLZ;rMQR%&^CPmlAZL zF!;0Z=Reu$QIjuz@a?{3)1Dl^DzR*x{{O4*=X~-+Ue5gw+;Oq-_544jeKmLR#DjT5 ze|RjUV)=?y8_%}>(&WtCGb(QEjDxMe)G0j{wf&)uXVrV|Y5PMn4yvPm*XEsYcXh?z z#XIjJ25}@zs8C--nb@X ze!Q__)iveeulTPi4?hOEraZ1Gk88-o4gjxVMLRXFfna}XTtoN%Ue7hR#n0Qkrab(` z<(dcWCob1Q1AftuYs%xA^0?-YUGvAT1x)RF;F?ynQ)BEkNOcWTU5ip(i&9;SQrY#u zf36iQ`$flpOCoMgC$_$m&AB?51nqL#1PCU&wf1!v5$6UaUqg{J_}h z#SevSsr<{tJ~vFM+_$7t0)MVlGMjPn=Q6BIYd1*ajU7jm-LvxBdAB>g+moi-90jGv z<9rDLWS&o24&;o80#vNiMPa{1BQf9(1xK^a{_?{iE! zv8}_!WPIuKL&c7H(azBO#+1)_IQ3F^Nl9k+i1qH>3nNlLTNn}BZpx)oF^;EmqIbJ? zf-cGZ3lFcEkhHmaOY`Io4Re)-x$dC#{9(wp{ zC0$>LRR#^hq8$-We_DQO_rg!3Q@dqg)zh%(_&;0pP2Bd@%e*Fjrpi~LaBWhz&h)AX-p)8xgakC!=W{RZODKH{pr=b_scHQidDeN7>6`;)IuJxC5KFHOHtnjV=Es(3<`3!yVt zht5ol=c$rzTu{53kC#QynHL(#m91(jnJQ=a>7cDV)rRe1`*FmM6uzjHJCo%`SCiA# z6Jfp+$-?yVGT+MHH>uYT@vk^gXA4*5wH(Q7iFe=-BYj6er^qWuqQiJ%e~+DY55NB` zHnnqTWc(?d;Fvn+ULIP?q3wM-7H$voO?ev2;`f{~jlIC|PVW`@x}U!}CoczD@~+nZ zwG$R%u~`e{sWiG_NBsF6@y+{|JP?uwx_C;{L6_B~l^e#apYkSXf%7qGLLyxP6Rk>H zhjY1vlX{;AWjm)nKWxE4^(Y59!qS`NYZZS}Coi)t`BO)KH@nZ}zE*97FMkt7-3y`| zsqRqoboJ$@bBm{wjY$L2B6il*e`!=slXx<#}-I3s3 ztF0lGa#1q@+m5dLd+celWZc-g+!F@Phnyc5?L84v#TC>;0;twjx|>#3`$V}l%GXM( z7)7B(+V!vcGf}^;D-&H;W^Uepu3-O6O}{Up0?Sn!bAxMExSCdssSDdXFs@}URq6IV zSAO2-%GYx}o%3osM}KFr`4#LlX;w)qmVW^E^keztjkZJ9SS*-)?o?}?RooGg@dh%qq^LX0Cna(Aj&oQja|v!|0zvfTAG?<-Hmdyljex!PSjcEo#ujt zG;?j2msTvB%M-NMYdMctx;#&p5_5CL?HcnJ6pd2T*KIiK`kul$CoZMK@tPamAN~9N zg>?zM;hr{b2;=WPoZE6M>AZ7P+>nnFea=UwRU0h^JyS{N99K7Y^;Pmfp9Fjp@Pl2Zf?g?R6-c0oMr-F?G`N~fx_)Zh& zI79}7`;XyX&ZdWL++P+bZxc74#EmA{v zC!5-CX-n5l0o$2(Rx@H$xvp~>QUcR8QgPDef1pIhz=Y0AT-8)P)!Q)DQX;S$!R2By zMktp@IIAFK`CDveD)h#HTe(h&fKk6GrGmx=5^l-i$gNN=ll4;eikt&`UEaO5?<6(6 z0~)r=5cra(HsvX~{Afd>W%=R<1@J(qb`MR62X8(wcvkCsxVH^d%a+poL5>Pe^xASe z*uhaQ>u=Wf!fn|~7OMgUw=s1Wgti2RCT&?s_)Hhe$gQ5jIslHfj37 zF3A-|*Nc&eN|_zy&^T$$&~t0z1@&0eR|oI$oZMwn%%>22t}gYxm)G!~ON`PRo{HgH z>SwwZyBg-X%5ek{AH5wOe*5(?BY)X#LEy_wb>4F;dc@8=a-e})ftLHz1IuE=lrQ7b zzRW*-=+K}mqG?Q_sZ(z~-QYQC%Brg9l6e69H6dy8hmZUvcM$TyVq0U~#&trx;F4i{fvaT2u{g`tbx2c|%=-I%8GZz!-1b zH^rmW{KJ*5J-rIH_NwWaRMSzj5b588C(ij>q80`C(dHzzsMCb!db>Tno#$r6SIs!y zOfCIGmhWyMRMuUYD}3tLxP@m@ZPE-J+|Y*E&OdjLcv{mn&*#=XpC`E9tdy-&ulE!G zI(3)Wf~2OelF}X#xnB_3*bUTDg3HF#MXo6hrbveP%0nu_ZJ)xsyEV6QNp9m2(V7HJrX=U+)X9E^Cjt(H8oQfo2Xk2_UFQCoePhav>bJ}OCbkPfxz0U2{CQn z*qgNG4=bs{_nuymowTK~Vd9p`iCgMc<{xj0noyFn*~amY_}?o@gZEsU(xK*mmks%V zpzXBUt4%g*o9%z}w=np#+LD(dW%0p3?SRq=O4+^mjol|TS*8iP^1$4=b2nM1viKRl zQ&GwyX8kjw-Q?<`Y97|`R#N<<+tIIBu{`wGf%5O`xAM9E zL;^3aF7KL^QskK%ed_i|4Pi`ANm;+wWGtnJztktsx>%KdF^NHhLld3Um4piO|IO;5 zg`NNAlsxJOfy&DJBosyRu^FLJN2dg5rTy!RKHiV8(3inr>E||Csxa^K+nnj2T0Hud z4M|oLl*~w|pD_{@`@Z~zS6!$_nQy1n^g%YXiExuzGdy~|A?`=HzPr< zOQ?D^c4kjCp)KY9pRh%n!fC%)#d5W08w}@-od)%u-cqV8wV5|d1VRHuV6Pn~66g4; z)pXyQwv~hZ{{9PG-`SvBpe4K7X2;YOwEl>?gj|1P)X~DHqK>_Gn-*o5YZ17cjo6>+ z$RJGhgjJ=tK??h7!Cmn``EeHaxdOz*lQ%;rW$z4ed#Z(^7A+V1D|uy?1{y0XD?JfI zJ(;^`L~&Dcc4WY{Ewk^7T;R|2Q(csa@8%BuID7KOGY!0&v*m!Zms?yF|1_c3&h9$8*x@JLxD84Pk~3S`vO~8TMSyBYCxtRL>G~OE!*G znhrFoj|Qr#*5~(cPQjmN+Tav0b#xoo@W%2aa<2UEvZ=BrG5!{aS3BF-;(a-)$c$yq zmNVYCHtuotMHG#S{Io4qaMg>fN_#qRwVs4Ck?N($pcJ^tOY6-5Nt5d>3v?*k#Nuea zUxvHk19$nG;U4E!Mjr=3X%UtK%SC@j&vqOn;=00%7w>Z*OxC{qOsw)qTuaHFnd%Me z8cSXW$Z^o7$w%Ry)(^&)$bB@1G~)7^7m||~lchfYsL1tBqHiVX7*r#{+B*5F85Yx> ztaJ6YS^2j`Ti=@jXU8?Ho7x+WTu|ZTeJ=e(zwID8#i`#u-ca&7&dBk4a`Fb;m>gq% zKdasq4b9?$FDBbwpqOYY0sj{ZDlgBY?ni=PzDtC&+=zy}Zo1ROug6aQCFz zqtprsz`!-rBI~DVtlL7IX{7*KlIHrO#p?Q}+?StrJ91smVVePim>Ql8+F#i_UUY5H#NC0NI| ztE&F_<&$GJzLvRp^ANc-ZnXZjGu<4E?;Bg;f3uMlxU}Q^`SVlGANqxZcN~y^bX)Co zih}R*GWm|9^pH?$XE}q6kOs|-bDny9=&9Q+RaIssWPGJFg*UatOO1T`27~2J-5zq{ zuOYMU7V>-ss!VOZkUt%SxpL(SmznQQAFTG_S~rZ{_}cXuWl653p{KA;eVLQDG`_-> z?%i^J?=&j1Z#He(dmz{M8dqE^_c}MJRy}B^%QQIb3=gz`9z_@O-TO(B3+u{Aeh|w$ zF{a%MNl96qzA45Z8WzhDjGnwk`1p;DwYPNs;T-`K_s5@DUZKy@D-u6o4Vr94TF+7Tz`y*@b7aqPnB=x%bO(4z8 znKO^RUY2+?z4-$Fd1I4tY_Grm`ufJoY#@};^4)FHVlgfTexG(wxwp(4Ct_QBf8=%{ z9HjbUGKlVjG0rKQyy*jyS$%a`e ztV?Nm^=Spi&u#9b?NXeSM=XA5wbvHx@9m&1pw_44;iKW6&mV!9L^gjDxp!~DzP(fY z*M#-RnlA9Li=*88_zzyDa1QwU@jly3Andx;-;pzdqnb%Z zj3eRFLTBSb@953@_7>bA>`kU|kZZV>;2OTun{;QUvU~sjo1)xrJix@we(dW8@dJz9 z-lvcq@V&RfS2gon+`4Sbg|cbXzs4nMu}BEF z+{q(KO`lX7nX1++il_#-$aU2LVZAz6kH9?v+gJI%*L+EmqK4SiJCT%GJnQh{(=W$Y zzD$KI+N4_bRX0LQKJL47L4)g+2@~crF;+Dyp>C8I2av_+<3tpmLr`Ws>hM5enD$WZX-yC)K~M+bY)@7QoTR(;L)P<;K2gvI2J4&{`1EIL>LZAy+G?-REb$00|tV$0bT z?P{`JjoAz$-=g+9T&aGpv6Q}TYA4s_CtXEU6uJ8cs)xy*WXsw=NFhwrGLtZT+q3?zpPmG`@B+73N3DR2opLRPQ24AWl>yek3MR{E_mDx?qUBqy7Eq- z1*^U?xq2rvCgC2S!vkI%*X_8MdZQmK%T%)J(u%27$>nR}^HNXs3)}s8SkrIfFP@J7 zuh=qszUPJ6PHXxw>)PYZNdsMx-TsSvWE zzLU-zF7V3v=Ou^+^J#z2?V0LR{y&GlvN?V_j8|thHc~;>kFZF-l7vZYPUe z7Jd3>-q<_Z!s335ZR-v1jHA)R+4bw=xvo$1p*%ha8g5QF zP5nb45(P=l*zdABK5ql8YQrX1^I)XrdiL>_cdGsKuIP7k9*FM8w;3w$R(*tKP{M!<&@oVtjIQxPu z;6qO+lg)~aQ*h1^>cMzb}e5|H~GvaRa zDrYh;<+0;e65XGO)`7~D;3M)1ik}O&D$R$bH&FF*jXW(Hi~l!1@I^A?)*B?AOMuGA z{M+j80E&5&3C@Jn3=2;Obxf6ddIOw!mED_EZ6Y^n;XeJ##e0)5)%hT$jOyc zq(N~sAdvnHce1Lfz6_v@>MbaRHc)*jkn%rzsPidnw`3$VE=qVzQ+FQMB0rDIlY8Py zSyB~)RzWGpN@tCgZB$Kw3q$kyDT;X>gKwHwd)yM!vY%M5MK<@(3=**4NdC)f-k8^= zki0XEQ1+nmDO87XEP`wf*0$*_lf(t*_inj&S5}yqhV?C1%2Lw!io zgNCSm;khjr&s`F*=%mTGzED;eYQ?1nwzpnCqNgDggm3h4TSd$9>K2E|OTJC^sK(V@ zSwDVkW69#uW)8l%J~*S3vtjF)y4-VM=kpgX5bxK9J=Mw>d7Mk^2bEJsb5i>xHt7%| zm6XtqIJ97dR$^d90Hba<6Xw1+Eh*Km0m=XVI+x+rVjaO}T_fMM->2=R`yw~tERg%% zIXlez0rx-vWI zSAL&taF6u=xnvr&k|9rY>n7(PPwP*JtJT|RMPU|B@37T+y;G3vErkg!2NOJApxE0o zsKd(D2Lg_=4K2ecz)$0bME=-2i%gz;Kh$5(Xq#7i*`=w%{UR)`7>24U##tPqY2q#I zGTNqTCbITo|IA=7iYNve>+{A11oM83$i|08RyfNL?kwWJQR+i*C)yY4E{M7$@N6m+ zzqDPn6TWymi559E9WNxc%EHuJZ2G0MraB$eFU1HcMef6WLc-gEALf0F)VQR}ze;Lf zn3#WT=P0!ijM11=-Pp%*{D%*YzpKWWZ`4$dH@2UCx%LcNm6YI%#S9Wxv;~@iY|OAt z(~N~YGr=MZdAtKs|Mw43-UP!E52x!{2WH0<^!y_ z75i3SCWAWQiR;qlu#20ewxar4uj80@SY6t&;hf7iQI<;F12vR#etg*8QR?dBCwd=$ z6VY1+d0=>a*JYgCl~tSY-^rk`hbQ4Q>w3NmY556bWK>ouC!^BG+cwFU-Xwo;;T^%m z-!B}dH4lq9ns#ob9`)7oxmN5qc7)}pWz~OJ-SA;H&xf%bo8|YPdU6zdFmsGl8otKa()}1xjqI(x7ex%0Z7p1&F*H; z=YfKi>F?-xK0m@EMldyqATMooTPf)k1yCp1#j%vYu0QpbG4LB2Z~r zdpXa$CvTr|E>ovWDHQy|3YG%D8xYp&661Xml@*?Q@b`i}D+)S0@{hgVi-e4Q zW!lLPq8RI)zOZO|v*<_zPBp-r1M75r^dFblP}pzv~$ zl%&yxOg$Z!{<65gOvTDlT-o8iO(ZRySJ`bk()@6>V^6SjXZNo!MqKZR@hah&>b>h4 z^NGcsh-iKLBGY(PqE{Kbe&<;F5^>|L2kX5z(q9;|EPB~cWuY%(%qbkgQUN@h3~SSGr($(#!q$)xj5D92~&Sj@>DmqwDoqG+vnNu{`IP+yndOXzv`wg zkVAyiTMpP(iLlHL3Ytm5X}fwS*N}>U{j-%DW4sd&RVqDW3NH0`-A~73C%}LMEaJTs zsor0bvh#tI&tSHwqb_~k#3QB9X?5FmD0x}pvJAQZX7$7tVgs(nxeX5V^4UL@$W27`}^VwmXwKHLPh_c62xHGbgoi4Ofd98)bVeH9*>R~F+zfZL=vyA z^lTg1?$K^>Ev3I-`P`w(;Zp%X;cusSPllC{X(jSXZ7O6OdSx};8vEYWKQ2gl=1`@x z3>(gxb$&doTWSx<`iLA+_3t|chEF*8{ph3)nupLVeu7qUZe<>op4MDIb)+3#xt<&L z(Gtg@$~SSizIPbIr=L}D>d7tP`A4U9k=xR^A;L)xTwl9?@P?Bg4o1}hH0`eF%3siA z%D?I#ez;EZEW4aO&r5eLxjsX4kf49#7c}IjAW*Z5fk=irNk}A(@0wiT`IQI_NdOQ+ z;_@G}IJ`^V9hsqXP?c$57Lsi>3{lIK`ubE}FxR^~_l0aQ6}Vl}6y$>PPR>8e*{&o? zw^cZ*uiE6gpH_GlL_K|@`iBD#cI^r>K(-m}2Uz~Zr8c{$_zF-~Hb^47Os`SS9s2r6 zjl*#1$jZt$FvD2qde6>Y8_s-{y&nHkCZjruTui5K`}W5t)qV~*m{SH~(i3CCQ|&*g z)`^l4Pu^N&^SGUwWlGaBrm4spKa6nxrB_nH{9RxV2A4W8*v2c`h~?W9Q!$4o>laz6 zH!vZ9l7#Ld{|lSmJ*TF9PR-j9U+3qKc;!+g6P@)7i@J>Om4OO*cg3vZRkJjY%;#T% z*p&N@l?8Uve=y3oHO;VcOZBb0=7$yyT;MR{Ijnh~0u#v0n*77@8b^Ce29_%x-o=92 zr$IdU!Q-(JD)`NynS(^*4tDlRI`vid>5ERL@84Gs5v5 zH8#En!1s?MrjhlvvC)R22!a$!BP%n$=u>yM!8gGdG|_TQfqa1)yKn;3AaMX=1dPDI z*Jlt2^Iz3ETybH}b>%RD+pJRW{kiGx-M^~uvdlx^sKi8QR9^SR< z$cpp@4mqjps=E+t>$?D-8Kq7?3{%zsm$ zA30KSWMUprsho(f|82M3HU*$=Nd3{^LUcG3w z?@Qb#&@Inq!)~-0?2q-x4-GaTl5arMmQIBOBi~O9AJ;49Xvx3@DW3rj-*nSW>rsQ9 zTG2fhQ7b6W+2L3vc;#2!N)wbJ^<_tn{IZ)PJ3D)1MdQQK(e2Br%Av15{P07^AaG1g z%}1xF?QQ|yB%a<7Q}Jf_xa>{<{5jd-;ZqMPu6N6w*@@wvqqtGZo@aC33YXfAzL_gm z4hUbpcI^(JR$hKmVq(zO8#e5285k9nn$A_ZfmzqdEz8R@X3q}B?**1tYCXeN1$Mm|SU4kbOrn@M7&fi;^94o0F%^yTi)#C2s$GnI{%B~zoA6?G)hm=p7UL{q z%SGh-CW(N$a)KmIUml2^e`br;|H6pY6I>{HzwPW;mpYmMH)g%itL#vv>o4IsVKEN! z)Gxb*glATb=;n~4Kx*P@tIR~MNx7wr5P#dD$_}fGYc;)rK7?m=tuc+gsDKKnEj4>r zTVm~`^w^>Y(ar$3`Tp)@Kt#B*(jIG^BX@wYQ|F5SfPt`5pkp*<#yxRD=~))-T(==N z(Ki6SfUL4XjOJ3cC{Bl_macM~T4|G1ul=-qUD;$7~LaaKv1Zt1;Q5Yc@(d3t^`;Fidd-&%lrdGr^}1kY9?_y!dhw{crCP7l0wqE zD$TS}ZiX$+aKbJ*SsyI{Q$@a;n3J6t|2te17Y})Hgx6#_7z6znY7H;(|m747La+#*HS8?^PBZ1>fccy%@X5wG$g)pteza%8f=xkE zatb6peF1W#pJCk_XifECW+gdcjJ_@ z#QavF>&R~(e2NU9_Lx-rmaKw?gBe#eWUspnSZgdi4i1>zW!yqZIT# znNa(!c3*@^7}$2uQxweyeF%lL{;bkTTZr0uU1Of8Vo~V?yt+BGiZcgTk&CCTFuJnB zD2YTo=Ct#-?)vDDXo$R{4^ver58_n}Zj1XncrvK%^b)rL#QSm3e?gK`4z<`xfB z{~_uQeX1;|qX%b@XT2K*JdCkO)jjKXTsGziwJ}Gro-`nH)PyAt%pRAmbSW$Nxu|!z z@X+u|N6NH=;1b&X(FIuXs;1JbOZG3G>aH#o4##f$LLI}LE)4he!_HXuNbuuGLC@iZ zdMl`0ZL6NnPt~&n1g-JEvmFaxI%r)XL{Ru;U>g*HtuCIohl1*R0JfUT1Y!cSj;T`s zZ+=JChU!uiVFQYk|78de5eY^*t+IGm7u&g3$e}k2<#?>EY=`Ibzm!zHbQgdiLDNID z4Y2ug;`PKhnl^`m!MSQo1+54+)=&<74~z@nOKaHZ{sCURcSIQuilR(O{!Y9$+hKLG z9o7!xuzVNXmvX<PbKRJTso{>S?iP!bNG}>rzgp5%5P}nKVYf=vGacA4Spkq}tpV z@e1fSfU=s#L7)W=6LNy~Ua(2EP=jzputFG3+PiKdUEpoF5brS!l{>r};^3}MS^-9s zS#+U1WaH3(X+a06lgXg0oo;NSaie0xqTf15Pf!x~g5ige)$R*42hX5UL<z( zx0o#Hvm}#T?L=@Hww>C03Dr?U{SnBIb1zVe!!{$rO7!>dY9*k*)NsFpakN_uUF-V- z7juw)P%dxbwFX9jb0FPx(252|B54eSpgCh$6cr7)D~KT*1m9p4!^#kUuT_>n4WY0* z)7^5+-9fV-wnOY@J4CG`yH|OAdUbt6$#YNe;NXHhgZmRF0}KLcg+YC4@gztvIc;P` zhxyQNP%ZyPj@!%(+L#R)&rF!`)N#~TjV`PB!aJe?X`az~B}&_5d|4x-h>`Q;ttC=) zIwAY3>v^2q26d2d6TKm@7Q7OsYY?S?IwB^AF`>(M!6u+>zw|AGqqkVlc*Ld5;h+{XdFM!P%t{Uc4J@!f&brW^4$ zO?S##Nq0!FK%e1PsdLKwz9+%!7sQ$xMx%;|%?BPL&eU~K%4ZDd2bIf=3ma2(wlReU zDtc*>{anBiSJpnP>r!AhwWpw2SU=^#7{Gf(0yO?;)cFJ9ee|n*0)9MH$zJ${y^*z1 z@8vZoZ@Mthu^&TJY_)9n*zj4VQMN+?hL&P`x1 zDDgj)NY7xs49j37!&J9A6nR4hVi(~a@CEcJ*wMXbAg8A!VU_pNoY@=w)Ofgt4yg%b z{_4sROHm%S1xsF&yiB|U2|Q(&@@3;2A5t74;(AC2`Vo;Nh!Ry7v?!oFMF`%N7P~@h zPG2fb<%~I|M6})r)dftL?%UriehG5=>OWW-4VT2^!iofzO)>Kts`VB|TCT<<8!KQM7mzwEa1A>T@Q|J~HjWGFQp zl=F_TY+HSEn@V$y&G!7=rZnAXbRmbgSycu1S;840C)^d}R1wDkkcMgnnRWO9it11o zI}!rx-V&e`5(ubAe6pL`XI*3cH)Q@6DtThCH6wxH!0X;PEFE!iL1~u1X3gACe{Cb; zav|b?45ml*V34lUJ}QDlVVzWeYX#Xk!PP^|=nGDmz+)ti3%LU{>x-w)ND#sYINoOv zYB@jy%4p?5AEM+pWoSLX)^YyYma+Jqo+4!4Tx*71W{@$YVqZHSQQmq4dW4UGu`RTqd#s$f53ml`MDq=avZHWfNh|SAruA z+s>S+Z}4kl=aP}c6JapwC$K7jcMLUPgETHq+VVRx8I#t+FV`*JKkD;Dd>_^hHYisG4JJUt{&oL=z#c}+eVSM*a*F&m9BI` zrx`20nM3Ur2KZ!9SM;-s_5P1PK{9?3ir4yB_zJGqfH2r z`=$jUVzr)L9YQ>5UyZh~$mOff0n~z;bnOt;g7=%Q8^&4ySSVh`L^Tkp2?auY%z{X3 zqKs^V52uB;anLXdny-Z7Xmv3N%e>$*cT4Y95yx9?y832KkvrJ^gCvnbvm)iI?|W(< z0$4q19K#bDf{=hIV=Q^(;{}7d(DbS{!^CGrZBRMoI2b@(NzNSNdoYYgx_@}Caa>0Pv?=b zJG&ZgW4&$f!kavL<#XQH@!9HRM6Rfuz%DwIf>;bdB7~=POG~uCwjG-*7IsmhKwZkE zS1gx4vko@sLv)tl2h0UD5p*;dlU7|sh^uN)e-y=g^1!x2WbXuE4Vh<`U@KGfRM%nD zP`;x;5;T@KJK_s-7+K3)J&sFo)KDFsDRhQQ(~MA+P=NADRX+Qi_SDsmSU0;S3 za<%ZdybyOKECx0m3;HA8kJtb(JYFEI72`Pct8Q?Q5aij$Krtfzk0B_-P8m(8_L+gw zFk7HBq)rg|je^K&3EQj@gvoOdXh`gq0Z=Gcz#2uo03%?hQI<&>del_uD}2*qD%4;d z-fa_Fm%e+Q1c)>a$!w;R#;Ov|RQ(|!&gZoGX<=ve5Hs5o@zmAf%Ji`T%E|&N4cdvG)SxW= z2q~126Sr7KD%_?!_i4IQz7CWkJ)@quNLkA~7hP-m56{t;Fw%2~_kbZK!l%Ot@o$0Q z{-Zi!OLWwSP+0;%$QXAd6f=an`EVuFcl^yr1tE${A**ohMRcZZof~Fz+d>StO}ezu z2c}00eEkkXyXrbt;^KGc89F^bD#5n@w715SJK&CnQjGH&hD%Boc@9M4ppHu9j5I~4 zdG-WB!GWH=)8@p58BSa^@JvJQFs4~S2BklZtN6n&lP1IO6v%1mSbA{4C{=f5swE~t zP1vCGTPWHbkshdo0_FuVRS!ir?(wK!KtUQAoeJ9%c7peIXrVZ(7BtHiWu0qld3Xb0 zh8+mL!NwI}U}-Gh1>DqAK3cj!^P*gfb=AxCv%XaLdBF^e2>7fvc#i&fKHr_m}4$`RdheP-KudlncR22mVZ77Xr1fAYd9u{T&v%J*LO>go7i_Hur&@V9pQe z5r&%KSu^S(C$EPgBrJ?p^;Z1jziMB<;qAc$EZRXV%YyexIBlUP&-Qsw?geS8(9Yfp zRM^)!R-5N4+5ccK8=2Mab+bx>u~aB~EusK|fO`SaKF3Yx>QV;M!q(B3*0V2ZC$6F& zJPH8R7x0FT&=iZ^k#|-&w^8A0`XF6~7+YGQ-qx8hR`(8MaDsZ1{hWbqQE)-0ZJdE> zt0knT5!LSNW3`knpKmC~Ei6|D;b)YjGy)%K!@q@h$Q_TbQWDwMg7 zR*RpjlcfTxjam~i2{T(qM&fT?`<$d?Mi^lqiR=}J8vH8Jd-q9VJOJ2^ zRH;xH-h?}}4p&=iY(-;ZvrC=nkSV}3EdCo}!Ea@aM9#E1M-GZ*i4BBPmm>;;_2GoU z@8ZHx-{8CvgJ7i$AR}}TOteIJwR#^~Oh8AC1vJM2kU;SX&Zv+uR|J^Xh0Ku>EhM*gc2lh^{YG5F~FOBK2_6Eax zW2c}GGdM6+pETSmamdyaJ<>QCyYBb*A}E9~51bHIlZb;PIS`~KkiIcdk)|Rf;u5(} z=WsQ!bJAFbY`X}8%pfcTyP9^DQMuuF60m?d;KfL0RQm+*J{`A^Le8(ZfV1DSjgk^7 z5W0l1$sEJ{JJH>+V(N7WO=6LTT^5v#(tJiBRy8edEimChQ<^TnDi;6-g)Hr5|tjCgp9N(u^FgQy4Xz4DI02LK+^xKj%~k}rq4Q>&cWKC%0UUbErzNQaY?8WG zCKl-4GH1LL0@Va86U*VLL38w#G97>zIQ4?_5lPd*yg_IHAOx&~Sl=reGq3lOwPAeTCZlqQm%~k^!GWt4&q*$rF{ul!d#hXCib&Dmac~|sGF)G4> zpZjy1vJS&-Ze?JOksWvwa7&RPkQp19169c8KrMKve_Y62QgY?WK(wi|&iO~> z*5_mw@x!y49>j>nehnorWy3q9xAp`)N60;sb6ITXg6uZr8jwbM`p^f`CopcS46yho z;esH&UgcA>X5MD*twMQ^jyan10ZX-PCGa$~5o-*bDDDi?0HGFkmXrvoT5%eqI`qnJ z^#=25#)5uC`KU_~BW0<6r}#6A;xk$J_KactptNEC0Ay3f;Y~In={~Z8(SV>p^j&Jh zETe3(;9$`}NzY8&LA?XON>wYaF7P4TG_B0fzl&JUU%*=#ivg0+m*!`kVuyZ%%N8PU zwLjllLZm*PcSp!1b7~5NhXFa@OO-AtQaZ#$f5$OIU}J+w-nfly6z9LTa%_3F(!~|p zSg|1Keo;qDqv-(mr2%jP!Er|!KL^5wdBxd*5us@)N(@RP9``73DB&EipcL{-mkVOE z(tExl{y}3!21l|X&aUn3`TnICiDP=L@AL$2#kEA33PDO@#W{O zTt`nU)a}}%7fW&AOB-c(?Wvi;?0w+#V;}0%^!Wv5B1(t2JtHQDBx@`IvsCbpUYolf zc+kUn*9go{K!XA2DSh?*9y;=us>S<2s})lxH$!CZ%B*@FJr+~h9v1@DYhg+6=^S5@uFUZ3rd6BY+6SOPlXT1@gcln9D_9(F?yvjp$ zg8{SinCmgvi24tOST9VUzEEb8peX({yJk2SDlph{RYg&uW=q>WY0Bwbjq9_T2eHUi zeFfS<02varPUw6#B(X^WU1T@Kc+K%QMZqmw!@NOSWY?O^5qXcL5r=EQ>_+XQ=JGSu zSEY55v!wC zJKx1(8Kmf*5xHTmc@A_L>!9-l0mGaoHLpuztD1~=XQ)k=Xm2uQ(Pl18*D>uGD`^wC zK+j?dmnq%Jz3A`o9?EL@DNxiYOdFe>y18`b5Z$Xlk+#Hd=npVa3y7s-_U)vEzXLyS z$6GQ5ZxN=-1W7X-NrARqt?d7@4fHSuTTdIRZIN&T zI!#7w0f!{R-epK8i_85tU=Uukn&DrG3ebY{26IT{`}WLt``+>Hb$7h=?q?tW@@I2? z+xg3zpZM9wzr}Cbv4>^d?qA=(5S=742n(1kzN6V03Nko@a|Zd04(VN7 zbNGF*Pj47GGZC*dCP9n1F*qKzo49;_i)Apz16#qq_bPVw2AN}ptO%7SY#j75@7Qbd z`V$S55AS|HSj+4}NgH=JWz{INPdj1n2d5y>u-1gdm@F#vD^fnjlcg@P`BmoRam1yJ zHbkEgy#%ncfrI@P9YA5@Z?@f!yhEdK-#hO9@;6WX_2XZzTtsRQ`$<=*WfTwoeXTai z7hA&7et+&Ewo8{ho7?oeRZY2~stFN6R+G#{PZqSt+^sP1s&)3F@ge^Ij>-}O2YygK zz=1+h9siIsZxFZk7<1UX$yP2`?MakD1TW>HoYy|fs{iQnxZecrF7+|Fmt&ka*03cP zE$~RP8FpP$2)<2hjIUq6%TqJg`RRDn+;JWrri-x*HBc`x%W3R}7EA&JrjFJWow!WD z?AG-$P;*%Ou8)z0*FI;mFsS4B@@A@kHub%-=2lQlU>m0-q7~3)B>#(-n0kOy;>?gB zw!)J@d{e@mTM6tT`0?_fFz`VZy7T4|dr zi4dO2O1n9-?zfRU-WXbi1{t(cnMWz-qDcdIPL9QvLa`g51s@I5&t;e}zM)`nQg4Q@ zTel9Csy9Hpzce&=4RD-{_?hmkpH8>Tiz=c2;7BTz&k50%4Xyh-IE&4%JZw>qG$`XS z;1A;fc^)=(C^|@@&VVjD2N}EL+XUqn)viIi9Nkk7dPkc$FT&yF^eJca8s}b6$(AWo zyX&OHKskyEtihmkK8ujrS+NTC-tr%g_txg><}KB6@{B_tXI<@II(V1*5O~Pg)4rY^|)ki;tpO z@200`+CBGf%sjhO>D-~kJ9l=jOKa{gSep(QAx(el8>iG#J*9{9d0EHocd)Vvx6WRqO@h` zclB@>L2>a@GO&^z(c)+mV6u~+dqM8Rxd)h4f@31;5*n_fOKKZk;q`x{Rf#)l)`6%Y zEn*M_NfJ-wKGscLh#4H59Uy~xI9H+55q(4f#6-piR2Kl+QeHLKAet!fAm0uL9D8Bn z#Ch+Qqsjf}UAJ=31s?P9Cac+Glmm!Li8!m~p|iRV27huMr`+^WfaasARZBU{1)?{- zbZoMw6Do#V5<_*U-&9;A8Cu6laP*fx<5UsGYs5|>hK7iAWBz(h2|*R=2zdfj!07N2 z|3{0}6=>e8K(kE_jO5+&o-!cDo3I9fGVX>y=Mh9Ejp-Q1JcpwgTyfa#o`9mOviZYE>In{mR0pTa2Lu93ui%sKyzJA>FoahcC&qD7jmD##<-vo%gIOGWGE2&2nQBmt z#5Q`Z!J=%Y#`Z^#9$oNrtdH$!2wl)n%Lo+ISt7luM8NA`w?R}418dsz$_QXptHWpd z<9-iB%qitu>YtW#z5z#g;PF4+(O8vZ3I+s`lY)L_$Imk)c7j1w1{JcMz=Ov>N@DsgSoS=Df%kTufoAHSP9F-FWY}U?B zN)2>|*^;us8i}8?OOHBn^W*{due+&>@IoE|Ky6i0f~BYnpl8tigwoXK&^-9RTsS}B z5YX#oU?h@zMs^1&ZuLPaB}#ZzUmUonQJ-C^JzdX?;Drpc*r$(PtSs39qy^Nsc+ZVz z-A`aB0&XfXv5qn9aMMaNd}~COiA==5yW{6*}KWW#r%$=-2an5$F)}pO%UHkG+R^VVrY8IE zev9UyfPrRewt1&a*am$W4W)V{u~Xm_P&?6T^hz(tVgFTw+rs4DWFyL0(V-EKO6(Un3$)L>W}Ro+C-w|3O{j5IuVN>@wLJV5 zt%g>cN5B$2s@^=O`*`MzvkHvi(ziukWi+g<_N9x~Y{4OWB_DK)#tdye5eLyDNlY1Q zHV(~WOv4o@qz*IxUV+X`N_=3d%#U zyr$&M5Vq}pW3Slwg}7veO@go?X2a$^ZD%8xCG}V4mXM}=*4%d(@fiIDTeiGNinL7X-O?=>02g0NB-GgEHiC$kueLxpn!LR z4!Irv1&mGV2gY2j7H7RKe-X;12nOy)sSltty%!$em^-2yYnqeLdWXy;@|;K$DQ}ZM z%o%uA50RQ=_HC%EbylJzQltl9IFBnQd{x>%PzyR6PfH&tk1294!7PL_sB8GY#jfuG z&!`!JUk=RHCSv zo=6UR>r^O@pf$L)P7O8E^es*!Yl9)1dOWR29p$$M%}K@~+IkXf%-rCz6^Yx17n_Ud z^8?%`hkeMNQ9RkCW*T0Q%v}xF4N1&IG3>28Snr^+;ZdD!=?;sbg)8SB{obeVSqA3U(MzKO{yw^48BQ~qkyimD+J-0H}gV~bE= zU>2%qDxk^vo+Xr5iXw*2hv=Xsa7^8&5FhB7bB8OJPe4y2ALP`h?r$SBbZSxOaRU|m z!e(yko>PcYfgPyLP?w^fYKasBq5BA8y$u!h@X^qUsoYuSh;I5vRwVB%)Ra7h@kJW}m?_xU|i%sct+W=UFs9%tqlDr>p4?wO4o9cF1SG_ILqg zQlCH>QH(bk4S5TTRLsOe0nl=FH2l!{iM|NXz7seGvj&5-hc;S5Y}+A*2BA))htPWy zvW@eL)K^&U#U>{_6%56n5#L}et$App)DyO)n8aq27m`e%DE5`R4Q++tzDU#*W9p%E zP4TD_RFR=w%8kbs^}x1*@AQir`p}`t&Mpy!3&w@_T}dfui>+Lh4WOW*^8+@tC0fUEoRQ(@{QFflfr$} z19B;8TYy5Weno!E8~Y+;d>KZ4B(r%GeM6n~(ht9fE~`${DOQ(BG$;rZ#85FgxKN~t zLGb-(mn1*BQ4n9oZWdm&c;1UMXZDh(pg(8wV}t?q>eQp;#9L9!fH5|^MM$!x4044} z0ZTswZx$wbEGiw=u2~aYh?HNhX@peMJ@(~l$|wlq7b{)wC1Q*Kp3=>0x|U#83a9%F zMeQpJTQcSRt;(}rro<^2u-XYhkP6oV`FwYjDuEBN0@M(V0%LFJjENzO5`BXaZu}>P zUS20@dan`js8hRJ*E-7+x-m-5N5IZOVb3KYV z-nmZwmno^pcXLOm2_#>$R+U-~T9WfLuH z&uKqrtJljLQSC?plE=gu2in6lF3Z(!q9;y3)OTVBCbbh z2;^~N#uT3>b)E@!!kWe8261{TRK0P2tTxqT_ndvjnik=oR<+a4k#903pR&H!_?c2B z7paA%k~4xg3jI=7ZACCQ?&Ht{C@xyXWvJfkm${-4tczAyl*G`K-OBO8+H)pNo8ht) z^?1!@AhwAp7*ZOrFDw&=YDXtA)RGI`TM&Ngjkt%YEKNpEFv+N{rj33s12zr?%v{MP z6dpsM?$_+|a`o>J2}mg|&sqS8z~xxbdV_T(4BG>3xCiY8WXhn7@aqISzjCga{q4RL zkVGST_`Z2qxr4a{hpCG>9Y;O~x_@9^T{vqLi_eXdDOP`Fyv^V%nOKUc#9ienDAs&s zHOkPVGY%?)gc=d3dxNrhU0TqWt1X)KTn6hI1p;9)4u8GwvW&-cmT0SG4wm|=&&zr$ z6-`-SyD+2y>?58Nszpc(WAXO)@gVK$!;p!C^WHYF&Dgqx{i5?1YRWbOm0hTDoCs-i zVHiUcD&sMtC?C=u2#;)jU9!NVqbVmpAP50pLAeT6YlO{L6);p62p9yDd6NKOWD*dD zNHk;#<}CuuXe#?9bWIVGs%T78`pHGqKejGfT zB0P0Y5GWr3Xtd;&tfOkO*Rc2$TZijB6T|>FLMqU^2gNx8pT+z}Hk=&fEM0#HV|`vN z5eU-`ppjv5c$_l$2*QT$5%33^BpFs&f!b1z_K5(1iLlUBiPcZ%u{5ME6y8`3QxLmI zkGgsIp!Q%BXXwhwr3(v~{#A{oFdl?2cwUZAhs?Zkt0Cp1Od(&cPSJFwbV#dlnD&AA zSPL2@1jA{-Ir3X30W_X%eTjRtgTPxD>tv}qz<_g!)NU!zSbr3}BG-hxHCDf3;8MUB zi#_@Dh-5iV*ghIxcOgL~#>A1e>cJKL!4+s(oM&j7WoBWY$rLLFnTi0e2&s>r0FAFo zafQLS0$RDQBVS#G9`~4t3o~gAFoG$9_#>{}eb%Gtx ztWiyNGhL#4%_HS`G|Ll`F=59B&-2is`vlGw1z<2H>OugS?8J+J-}T2#C1I7wj(wef z=**PSrKFb)`$ua`9h9vmnY?J}qzz}?D9QF$Qhx7k1ft^KeSHu zthi4{HUNEF1=Z>N39Kvp>B86z^u9uGnji7)wLYH1#37mui3hJ2-;9F!r08x8t#Ivw zKMT&;s|x2hat@~oEF-sWo!o{$cf+J{c8A4Mc4o<1@tcXTPx$VYGat;xQ(s5SBDx5 zkZ67<`Am06D5@Z`8Y<$b2{OdVkai89%Ofhxz*0^pixC0j#pI&pZf z5C*&kkqjqk#=$i#E8Sl0pv-Ez0ON*r)zZa~D`R#Q4x~LN<{}XBsuqa2ADu#sx;zZR zp)Xwt#^vxt+{2?yX}LJU2z0DU`@~W@0Pb`t_eiM3$%%B~a27Pz6lT^rM<(|Bp$r_P zMeK(KO-iKXIG*f)h@lc9TyQ)E^4Tl)8=6s z4W2SiEYcz*gDdjL^po$)c9*Ox%MuYh7(vOu`SJMsk$WhR@vppltEb3@-k2Wk3Nc*tZgzv>!> z^H}#YTZ_19k>8ggnw+tZ5e^1}JS~@#5Y&nNQ+b0UmC2jGm znzF`cuZTxMn;T18giDzhiMMHrT1^YFu3J~GXN2LGR{_M_i)+%}mV)-r0p-5N!AgMz zl(rQ)KNZsm2bQMMcapI>Cjt}jwU+U@J4U=9%`R;=nqnXy;W-Ah3JhD`AAZ`K_$-3# zC}V4$Y$@}}md2``p`l|GQ+d#+rs)U7LJYB&vre#C*;<#OJaj*QgPY)&MNu71R;+#8 z1Z+bR#58%MMEOE25;U=pJJDn>6!tevwl>WcoT_nr{70yCy461tyu50z5inVmwng*V z*i~yps2g3nwCI|P#w5gGWZ74x9?ukTNZVYSCuA_uZJpPK6Z0(77x9hgU;s3+!p=jL z_rNaPg$M)~GMF*L`qzwrHI`{z?~SGKTA$+sfBcLmcx?_m!)o%{AZR4GBlm)tf*Hds zu{N1*6QWWRck9?y=QsdGv^RPc_(WtK*f0xDjJI|Z|2Oth02b4y?5O#aE=2n_p5+)b z7#H^$RDbF5M9aTzG!q?h#(@sjVrbp<7#iAA0h$@xlOQ01!jD);vg#Z+#K#Mrz;HqW zK$vzN07AY9weBxtwkpuJdTotgdKQWvhZbpq>Myg$4rp7W1bP{U*92G^d$o0kx9oQi zsKo9JOce8-hfTf@tnj zM#{opv3IdTE1MtHQ82F(t9!Fx;|LKao#8dKsrTdBephRl6jEDuQS92m(N21_qp8H+Q@nFrR>wiTC!?UF!x37 zbbt8wmVeE+$^Y7p)Ceo4V_sY{Y`(nDjeK0dhvHfihMU?NS#;A7;#HH&%!C_~X3|cv z#a#S8gmkW%B+|vx_z(ou7DTh(iRt?lmgWgqqZ)T@V>XgpJ28u)@T%?_EBZ<2H5v0$ zJJ*zl5fBtExu!g>DUWLg+7IYlLmqyx?;2M0!?V{wus=}0raZ1Gk8A#z9Yp+phE(2u b&wu~>8$La-^sf&57c>0nVXJ=m!dw3rW}lJX diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-patternTransform2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-patternTransform2.png index 62255ce30554eda854838b8d1c50df8ed6b5963b..c814e87c707b9a0918a849a9a5ec5b50f2d33959 100644 GIT binary patch delta 38413 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 SAc_7L_}nYc?tW&@%KrzkrXT76 delta 38579 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 O%x7MDdf$_8uKPbW1?)%w diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-patternTransform3.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-patternTransform3.png index e849f3b03b678c3abdb20e35e7afa8ef844cfd5b..c4e8f7f6b389e73c8523396c8247ad8965583386 100644 GIT binary patch literal 29687 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 TWAH!pCVx17&J&uLVD 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 literal 238363 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 X`_-c-{yxEfeXjjUuUCI~*JJ+|d&c$R literal 89178 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�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 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell5.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell5.png index c24319221be0bde0db7a4e745e9c11c4f513a45b..b7c4a63ef8ae36e4af8358747b3266a1f5b1b3b4 100644 GIT binary patch literal 55329 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 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell6.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-solid-shell6.png index 9c39b71bfc318043ad5faccd3651c9e52ba76bf3..ba5cf966ac64a9bfe663db8436b41db17ababd10 100644 GIT binary patch literal 57490 zcmeIbdt6mz+CIMVL}|uk8I>tzl$8~glT@NRC(X<$$C->N6*4Q{#seCeAjf@e-4r_El!>$;zH+K4mn_w#%IbUvdXvDbRm z^W2B)zV5?H{>=-+x^}*;v%}%&I{euozjZh|;@fsVT+<0(3T7XB$>At@dH9gQFUAL4 z$Zh}U(3d~?wpyEUaq-^$Yu+9)VZ-F2E&Bi8`Y7#_=Q7eB?brKam+|@AZ7h!$YKb0t>hfoj=WKF+c=f?-J9_oR{KWsNDB5J> zs*d@|#<~qxjfcPCziK@E1mvpmxN1DEA`d$Nyowd=yKxl+`|rk8bnhSaTn$_NqRp$u z!(UylM$mrha+MnJV?VAMkE_PxYCLu|9=l4I+U>wqt7zYiaaSSLRY-M}rMk*eU1h24 zcHn<+6yezFQ!+XyX4b}8xkHac*irl{@C|j zrd~RKB&KTY#qE_l#w7f8Q%u3}&Qs;T*bK6^+%LQ7-v3zP*xFa;^ouzV(ZGvU$%Xrk zi_3p3Xh->{6MJ1ZwS51oz-a!v+?Cvni@!9-y0p5%Oy1a0Ji{|Pvz>RB)4MA+&K4-R zy8ry=z=0pwczjFqmq>(sf; znA0Wrp{Z{CRrOSGSk%eJtf?p3h3)@td7p&AFMRg+H!UxuMSN%dg`YPTZmrzWJf-8~ ziI>i=uRk`!v)-Xq1!+|S9P*Etg0!5v9e5&pZrPXf!~9-9-(kxeH?5S-=oG&(IB{d) zAfAFF%DX$-yP2!jSJ~yEv0ELv3%Uevjj!$<{LolO$<75`u=0R8i-N=6KC!c-FZ}C# zEGgjegql!CpOI-DO7fC#{4642+44Rk+fA)GIh?ES6364}%yS%5$y3x$g!oR(aL9?u z_nG$8^w7Dzu(Q)_TfIq^Dr<~BzdP#uW__jV9|?D2m41u7Z)8Ge$H>`df0uQ(ae%Ds zh0jV(ez#m-*xRLf*K%F5$Fhimw1J7|u*MnZaLP{a0qfiTHt`<#i<#KPJWK4fNIBN% z=FQQ~IsR)3(AN}y_IK%>bAOjsbJIgn*?YN@XPtXw$EKBbz=oYX5#)Nj&kLV9O88Ad zf!z7XrkL0qo^i`USHnV2mi2A9m5kT=w30t9NW{;5X`=g5VnBAoB6q_?_u)l3hbPv~ zqO`3URQGrJ8gc5rvDxuUDR+mo2jtYo2PNL(2y!*-dIHPh*MuoH$tqIvB|njGi>xYx z7SBTeD+eP zeba+l-}iI5Z$`_}jFzY{Uul@{s9Hk=^|WD=v$ z4n?<&-q4itM(R4>8&p9Ge^BD#UGWPd<2&{`P1{)q0~M0gjOWbUQ6b-_T83V`wUsgT z4G;sRAM%ms+)i+QoXM=R@IsQmeb^!)ZBP+G0CLdnxw?V2r(8QfalrMh!Q zRcATSB%2<)>&Ce2241Gqg}-X0L>W`*ts7wHHha!tQ>Pzq)_pXcfVV*VEV|`TG)jeh zYrf83bQZQ&Zq*&i6MuMDuWwsKU|k|OuI5ZvbE5pfCPM|S%}Dwg(c1w#$_6C;bT0eA zx$N+QcUs>qYyj*P9xNkQL+ex@fTMo?H7bo6sCTv-Si)?8=QodGu1qQoBo^4n7tfwzROko@3E-gjwmLiYX23v8I>w(rc zytj=T!ll;4xGu%;P;ZMISNGJGM(s3B0JYHA$xgZAA)pemv+I?!lD}h9#8^FK5&~nNfROo-crQKE35gdNr*tq*v=miG=$Vqq@@7xUvGGq9B$} z>G^5gu41a`{Oe+YTkL3{E~5^2S(09dyF6Jrn__uON$KuIa!j=G-@+Q#P1@2}_&8me zsn(WgsDt{#+4M#FF3WPeuWw~Z7M&G`)l9?VJ}1(iyL(Y^Bdv!>yen+@*gEH;$s3v~ z$EV7(v^u1=H!ke9R>I)=PW&akinc+#=48UF8t$35FY~2lQLkRW;9Kbdx(JR^5$MJ*_TOu66@4AduLysltWp2 z*U!UTKgYFF+L^vql9rY}W7eJ--hZe&q@CgYXfz&!gVydU@{W|V_nnGP3!k+syhDkY zT3CZjcg3)zlfwqtjBLe%R_Fedh?EHXb|u3B;zJ(v)I3PTsP*5{nDQ=VtJU>44LY|e zs-hJlj(OVO!fo>?L!^ch2em1HKMTz5?~(mY4~H^kFQ?bNoZ)X$>a?Dx8mh}of1tT@ z1n9YTN6y+Et)d)gwWm49vya#d`lQ|X?60~l`}n=k&^xak-ul}-ZRol~AFdgA;Vlt3 zdh7#d4z5XY|Eq7#zltVJnsj@!Akh;B{A|)bdfVGD&BR@r`*?LvPxU5cJj27oQ=Avx z8d)}RNBKmC4v=8iiYwgtb=;Z$?$yn&RCf!j?zV>u_HGV<14fWw0y&@C-zWJrxOI3y z{+6c>_~x~Yu2rHkO&QvgkpojheSK-Gizd}ZpXz$Nq-*^A@c8yB=5U^aOicF|W}n+1 zIQm@b`gUVeT{<)gdhkctsA0?VMr*FaxJCSy#>^+7HzD3{LiQ)$*hj*%mVXp9{i9Hz zyIDcoq;>EEN=;gs__*-d2g3*Uq!pX>-O5?lVz=CLVOCZiDWA&_Fwj*M7ze>VkT$US zqXO^#f>{@c7+$h=KkVK;DIpcs;ha#WtM87|zP`>SZ;ed6jiR;>7%#Ss)7NF9RC`ne zzXO{P|=-S6TO+Sr^ZAoP~ZaUFAS1XCn6e*Xr zx!c7bJ(%__!CH;BxJ@x@TkQYsPfOQogWA%UQun?;Y%axFIkHcV*m1I2#W@7>&8v3p z+BMEPm3{uF;=Zta(3#~)XXVHbrd|5w4uG!}+5>If0UJ-uk?w=KM@g8Y{{?tLw~K`KBzv5wtWV7AXxMq%=&KQ>pnXDoIwvmMFJB*`N4M{s`+()%9;pP7NYNTn;+$=4h5f#euCNdOy@+d`R!eUv+@^2k^|=!6)N@B) zwf1sEtGz4}WI8b}uD0RE^oG1LI#Jw|lD)FkwJo==1-BCVtsdw^!s(|&zJEUa*gLa$ zwRGQ^bl-I*)YrOqu)e=f#qom0G{p7uDDn%Iw^DJjFj_EI(NG-y!FkyAQ(6U~N@fv5#8L#V()@JIm^ZWn(3lQpFZJeZU4NqcZ;?aX!1!72~VaAVj zu8uab_*RZ8IQL+>?;T&?D{gyRYcE|J{6br%;EETC9N4GzY8x_sW>DZ@czhtyq^Db= z2U|wlc|tr6h`>cT{c~fz-^NxwwX7kXOs#`P3yjZHV7Xq5HM1XvMs#>}#*AQw2kokU zUgKQ7&R4N4&(*2O8$)#JAkyGR87elf#$UnZbcS%^H^^tc+P-}sMQYTurO~_kYcFvh z9g1b1Da@C0EGCoLx)3xG>E)6V?s?n{?0@pg`t4~;A3t;TM9C%JhX{tA2&cL@6DrcLuhm-HOaDfhsE z>v8k;C5JaofSY?T!pW^TGt%`WzY<4|bTu7p%&7W!VZ?hu4ReB21o!lylTY{BX*wo% zPb>A{%7JbdCR7R^=#WnrFbI^B!4i2eHN0BjHhn*^#@AwFQ@HZx3z@Y$`RvUX&YyRD zwQ19?+D)06fw>nlJ=gQE16|%efA|q>6!!_}u^%_?jp$2nWYMS{Id<$6m(H8Y@oLk- zsGOyg@86ewUC`{)Pd}05CHY>G#ErRB6kCDKDSo$Ta&c1gh3tE6J5shFi~E;(?A;z= zdpAzlnWJ00S1F*7rB57xW2W zWNsc6@@uH}Xl)}RD$2F&qC7fd9uKb9(CpR{r)1-KdWtu^Vw_4`vp(%f(+i zm2j1LOlikb_}h+$#%;^PaW0wM>ogXv3;Q(6Is?MuO4=8gEpI178nsbTm32`mg^4+Z zWwMRU{hYP^q8FO@>+;Ry20on2k-G4tW!5n+0po>@9ts4h80&e3t0H_xFRsCQ}g4#bq+0P}2&bKzIq zk6RUd^7QEsntS%@)jK)x>-?7f;o(OPA1)b6wKpC|-`@jqML1r5lnI$ENbpt${P@lOtmCiO zeN=>#J1jzmr*Rb=Ki*5e#tqO_mTGILZq|b-Y5N(c|!&*!A`6ADpuFM5irVwm@>nCnly=yo=}NV&PdN;n#{NtW}8=rr3nL3|Gm+#M0 z2exVR=G{O2baVLe_`3itZ{(k#cZ}m9k$1B32n3SCm~bd^_Gq!3B0f6opm~n1e>Zjy zoteW|66BjhkXr)DkH~~|sV411KSk||_yOl4pbhC#E8CAQ>^^u8A`sO6w@wQF(V>|=$erbpLL7yaNB zay?p$2R?33dw9Gm;OkO}IqBDu5QHXP%vxACGhdEF^ned^qa4OYoQ0$HV-Clmync_N zJvg$B`Ij#B2jGya63Tzu!iVNzRMFf3gH#v8p~fRqIW4MgbaeMQ9&f(qB)OFa&))u8 zaL&bZJ03D5hYqCi%jl-Nc@a@*x#qf@qwA)*=g)7SR`bU-Q!8`o-@bJIWyVKCIxKS_ z7IB0I+>so-Kwqz)@W{iA88fDM>aMQFAMs$28;6)wD1n=PI^qY~W?AQjLs4CY&K7T5 z9_za&Y%TMc2tBGDv&v(V%FngR9Ja*1=SMHMRQ{}pM8Wzka-EYSeW76=u7r0uapCyI z3!)`*MoLTUyR@PimJ8DK(8ZkksGrU~cEdLnqnq{gU)IY&VvA zdtFnbFq(kELe_iYw=ad zm@G8)!iCAbT22qEJ-lboC#zTYG@SPVf29$n-W-|um;)%g5vI3`Slr;J zy(!+kF`9qAr;T%Y-t+VGBi#~+kvtH)xPS=|*z4GRFkg?uO31!g=R#}3VwTUEkKy@? z6Dn4pzj*Pt&;8|(zZ!zDl4pQtT8<+yjhSN$6=>3gR2nb&k9qx9QGL`e>xxB9!d|?7 z4={N)oX3-4jmyHW6(}0k@~^OsP+ak`rb*+&gF(I?U$f4FBQM+2xHYBuaR)s!5*|tK zRm8-^ER39eDDo6P6R;ItqG7eCu_xT%$3uqPk^I3^-IjfDjm|ANa7cNJzNh7d2#LrT zOSS9(+|L9aQdHxL=v8E)%950A2a=cyEfS0+Pz2UJqmx9gN%Ri%{yW8Gx4;UiqLYu| z{}-CsxR%%vOTA0`?Qw2!c9>bjmIlnqG%ARifLF@ z5Z4ln1eEaH8gS3qAhid9io9X)kY9*Me%wL#FW>erNSPe<3#bplK)_dc#@eU0B#fUF z=PdfiOMTNC^7_<-yK2KD&W=hcJvuSt)D0=|9nRH#3JSS5Sc2DX>4XUA_Zfu|r8lIM zY)qN`K#I#-M&`LLx&q#CR`H(Mw>xB)NUv9U1+C>5Wp^bqX>M-zexKp(Ea>L(CA!kw zDMzD-6~}PLv!z4Fr#2t?wtxL5!w>@v4BZ%&k?{TR(sqhje`P(R2677Vd3W{tX4asJ zB?B(ve6cVF9o}P}mYyJ1x&|dx%}>}rq1P__1_PL|y%#S&#Be3+%wJQNI4@31X_n#_ zTLNIRKR4v5$cNc>o<+2|cZ5cRn0b6=->|(TE2_YMZevU;9vHSUh8yz(z&TUA`9w+m z(hC}q$R5Mg-=f-zf*Wrb(&2`|_bpJu7HQeAOuxT{N`p9+dXB1Bh)c-Tth25`xvp)0qha$(tm5>gJ+exA9ZIuJp z`v0+PPl`plRMrkp|9QBxYt?dR<8q2+dgkn+%u}PI>qf6CsPMwl-An&5M_n4L$gW7- z(P!B$dzKQ)m4fcQyY~mz^q%*@9mW@mR{-1wj1cxY-<^jqS?S7e(v{S2;?G3nCT$w~ zPy*5*&%9alr#%txBi?==(*HG~#QMUC)GSno-L@g;(kqN~ZcMA{U?(iEoE7q?d>h;+ zS^W`zWaaFa>GSK8D(h>Mx*Qykb7O7eXOhz_@SQJEs-XxgSTc*OgYS2R*;LuLc~bkY zKz@JQFYOzT?}Ddh@32A3xPF!(?SHc$ZRN$xsEjN~2LB{TnGPVkL+Gi%W$%T;yb6L0 zJ;Q{y`%^0p>>&iDWX4>i84D9)=MVOKI>grKzcU9aaO<1_7q`yeJ^2k}e-Bn%OxwUsCR}AYWo~k9Z+I@&6P;n^R0bC+o zl8{6$3a3a%A~14v!4;E1f)i+}1oe}jX-u$yX-Mvab{ zq?m70lAVVXdvib)b7cx@p%kmKLoW3T4<3fCI~6zvEU|R$moE{2|kGkq*DoVNLlHiEhq%kp)NEFumFe+1HY!% z7dsKQR*VU~A*m_)`1eE8is*o92?!k$`V|zAK-6h@RYq%(^WipfJ~Cks4!EFQ1DT4n zbaC3SiDFlO3~9Ncpn#z@oCmF_1V)RV>lPGx?eOA}-T26%)v@DKEB0`muJ=(=B`jW- zx54bi9da!WbT)hgbpI8sl>4Nd?^2v59uCzI33u@MwA`)>++ak*t+-Nfffn+ZLkvrp*TY@i zqkYvHSJN8rnBk?moH>&x^8iMHc)4y4LJXT(Gd|c>D#SQqZ}etRXl_zP-VveI-e*e} zEG3`|`v^9jf*bQySE)T=&5T1}Qt(OAfB{5P$|pTrngIasP)QRTi~e4Tng5S2vz6%O z!kc{`HvsAeFz~cvYuSe+Trb*o>F zEiKJro~@zqYoMfZ&pyh3+@}2Y9Lxg4 z*&;XmCNwhmO`J4+b?8R7yP)Tc;%~5ot<~T5AdW208eZB6F#)IxT-E^qse0$(a@V|- zvyZGi^_QU8_v&X_^Gxi|&p3#c$JV9C((N^-RR)wSK7M*}{NSWhkx3or>=|@vV>YUm z#P|ryyR2d5;qojXbL~e2MqnK#wVw)SfM;UFEAF%%U1&uN{$lD;6>JkM)Z5f+j!nHz zh_QtG_?T|0I=LNw?7u;pz?@_!(pm87d{~S4ni%` z{nUi(9qyXG?wwdzLBW9RT?3{<#u;_X*Ss4g*lt8)?5x}0>+O2yA5;9l5io1|Js~C6u)HsO}dOb_$ zlJOcaO1^80V$*=~13+Xo1TusWHcOoCRBTJlPI!?Tv9DC+jNN8d(b=j1Y}0IBVn*zg zDZMmOkQ6Z;NixTYz(G0*sunsw6W+U#0jPro!COzf-@~!B{&-@tU$FJTHP79LI2WNM zLM{iv2V$%g1NWmJ&dU>2#W3XTn4#^i^VHDrE8Yl^fKC=#&2sQ`(^1*Cl^ z=KM6V`kvUDdsKYEONza{cDN(^(3qU=WS9|vo=Qu+c!GZxFndZ|y!F!2i6J$$POUcD zCZ)If7yiZNNd18X42kVQp?I&OibZ|gXW*IPjJYRGnNq{(hBbi`Zt0|g7)att>J}PP zPW+gX^ve{`BBz_vkatS4LSPAqVHX@EgA9V(u_a-YPCk$dg0skC5=CO1{Nv~I83oY_ z<_3AC4=f=`*s#p_MVYVmPo)D2!heIOT!>svPEI~sG4ykZyHHtqaC*-#Z+d@x$*l$P zol?NW80qCrM?PXK7WfJX8-Vo)FflCPJn{3HgVLw7?c9bkBnH3u;x2i>Uv;}7fW9o` z8$CoPH{qQq=R+nazMy{ANHQdJ%0fJ`RYVxU%$e&lO9A`oIb(h0vE{t9c`n}sB|VI+ zN?A4IqK4J}g_6$htg(q)$vk$(vFT(%-ne}jGP0DUQ}P{QeeEZJO~cN zC{o93nNng(jJiUd@gAu3UJs_O;u1X8_u1&57|1+PU|^uoHZ16WU%b<#$&;(8%b-@A zgYDofvZV;g&wugAde0kwOMK1p^!+n)%9p0h3T1R9$~37zQ18VODpN{gahcTFp}J~U z*YIMqapcGPfynHBRQ5q=?{>p=9M|PFD85pl7TpTK#3TC8@{lL11t_~DE*8Xx5Lqme zrP>nOo*-S#B4TFP8GnuR)U)zJ;IYd0qJXhoZtHTZ7h9!R$2yUX9Y2RISAf*+ociM< z3a9f>X6;=#>zXfbatLPFo=C5K!s~i9 zReK11t8WZShw5#9>ACy<_}dSzAx||Xd-oWkHTo(zeI8yznbS8REp;;UFXtzO>|2-p z{ko~{UAvxU&~RY&fIV4p6$15>1;UC<8g@gaG$f5IG(Mln_;1K=@RCgSM{e9$^yrn5@b2Y8R+~>kJY{UCF zjFf;^v&J%yPonSo>#s-Tja&`@pL+!qQqQMNijA!$Hwg3~6(D83>K{k4-uGTJ;#~CO*2nc{q@n7BajP-7dcMblO2k#?~xD_9Oe~x}4kSJovc; zo`+nOKCXHAYc5wh_4Pz`iYtO@O`#--tx77G>W5E8roXH>D-LY2@2A9vHwUWrQQ!^4i7{ z8>imdlN=|RMw*9OF6|=6_ZbOS&$g)4>zxmF%VfQWgZRam=1GylG_ zlnrVQ-~e&fOd!w+bQG(^5Y1RMogETXFF&*rGWf~9yVpMk$=v(v>w|)<^x&f1?dB|A z+_iuI{$J&nm*10`nhJ-s5s;1%Ul~!1gU3$W-_bmGM5J%@I*sxi;V&62u76BVJL+F( ze}DhL&9h1ZlkR{eL_?aEfD9PcyuTuD+lDWGdXCSe5@JZ!4jCd*0}q#`mx*zP`;4Zk zc067Y6yqq#OHkdWz_WqPe*2wwI^+UaZp?>%JGP*^25tOVcZM;-xKwZ3D!`6~Jek7#! zkt<~5M?P(ptA?DB=vqaNjfEdx^XQF^qKF@;cvFieXI7U4I{&m1eKIGJJCtCOMuq#% zLzr=W19vQ}?NQjgPlee>E|t%`>dcAQDwapsKFdApIOS~w;)XN7Aq3s61)g#J;v z=^-5ey4sz|XWe2vFYF)>htE57GdVeIJ0F$K=qY?7K@%1oVC)KiYZrdW zUN%%P8QzUDNZvR;{sUI=FnMqPVnB;WmfS_}Sis&x7A$Jrw=|}|o)Z-Z`9(?AxWZAa z13)s9SvJ-_s3Hi^le&;ppC0D?v`1|AQZd0;IL#JuKmP>p#?n}l%U^bjC)J5YC2~9? z{03!EyA8i4K9vvK(m?P)3en;i4dzJ?0^6O?-J0OeUY#LB!xd;2Ao;2WqbF z1&>d*H98c17HG!>CiC5OzOu6Ry*?3h`wXg1<_g?#w@ z5N}DK8jc~81+2*~EhB$rvqcrcVs#M~t1j068LBR0 zX{Wj|MGqp0f<3UwfsWy{muO3P^2v5A6(v-8=bgN_vrc*&Ye9^F$|2z|CzUV-lwz0O z5J>cFubdoOok130dD_pRY2K54?n-8eG69jzxeRx&Iru9Lm8DFU>nC!;z4M!I0uYrJ z#}y286r(Sm-^hc5eVP|d7#HwWy=-Q(mPX(eUOw388zTk;qP@a7atAuQXvaBY~jb(-ge3g}z z40;|hkORoY!Km-_>1*adVt`=)YnY28*$qA%bR5nK;=}wzWJ~>`YkZrIJkzb<0&c`% zD9@I%%HOf<@X@2c>IM)1l*7w^hdNFNKu>WjAZi6y#fszCQh7^+8z{y4+iXzQEfYH&U_5;9yMm-#PPm?D zx&d*vgo>(!PMbP4cVK<-{7_aCAp>V4${j}JjtmU?M}+Zim)n0ChzSre#mFxpIgLdT zy|cs`eYU=Ebhq3LA&Gvi$8hHSdneN{}1h>s`t z+S@F(2*=e%6$uSXSw>nggL)vj{ zdO6R^afGN8VviECPYw0=f9ZHNwc<_wA5%rhimqeE24pj2N)p`6N%JU5*H%EY4fC4nY?S zo|gJ$#CUT?uAE$ z(V9oO-N>AS)?tfID|;vEptD_-l$h9v`~X{uW2cmuDDz(v@|T}J#PyW2C5dc2jO$|2 zL9fH(WmTHQgB0%{`=OWbqy@6#bDfdpq{^I139flYdi!3}_ zstx!zS@wn$Q8?@|N~CIwh39su4@lDvoUDjo>-vrDH&`y`f?Y0L4;puS?mlT%z>z^; zK&A;shsWGkRMMsAE+2qP;90 z&cQqEOmi=sp41Y-4Er9$#sEx12<4|Z3W#X--)Q%^F%IepEMMc&JY-qd`DVcOU?Ghe zpf&HOOo&OpD_Oe+7pFV4SzjxAS~;hzU;E2fP!Bh-`3a`Lz zaet;osLWD&hN7WiSF*iVPzB3QH+Y`yrX3UZO|q_14_%u+m?Z%Te@1a|J6o|!_2*5j zQg$fmvQW(co9Ine)lxEkt39-&pv1XM1Wi@(CL~R&{am-w;Zzb~YEgL*yn+v;o(x-? z40dv^dQ?OZ;k2Xw-v2SqfRt)SVE6NB?z9)TuwFc@vmyPwC@V3J9UG@c=Ed+pt*`8G82^6nB^ltyl1MWyU5ez;{D^T~) z4YDeV>Rc{9NXnHVtfRGhnkb4kJd~%LRY}8|DROF-;dDzyw%bZl9#n@e=j!CK;&cAK zBW!KstQX#F2OtR0gn}O|1U`QYP8@mzUm?~U1_tL!mxvG7FDH}`ltUh1t+rj&=q#3o z-GAbssLGez@E@Ppn4_vH~aJG?@_s z8a96)?D0o25$&y^sSle7%=MU6a^)`8T{dfV-=@6wg%knpbY;3PVH6z;kcNAuzGkQd zeBNk%xXcyIP@a28H|^k&@ z92A-=f0;rQ3nI2t!F*9%>hD$8APntC^!fH zE=*~cfZ;XF5Nj`oRwuga6EADVkG#uT-T>QL44&MjK*n`f!>fR|fRQw+Sevof_jO zq=r?ut1uh=|S}HICbP4SS?15T+4#SLSTLoh* z{De-i5Ezj>yHwZtKrJB8rD3R%^B{YL(d{r!_aD~w^tB!0m&$(xpu{{WMVs{HO-fN% z!Nt@vz#ytIa2)PWP@^G!f_4N|2fv^*p8FrY#DDmOJnbITt$;$My-L-(n7^LqdJjYX z+#Oq&zxi!rxmAH#)i163I*PJu%UhrFIH~WnK>#jXejY`uQAT#4Oqi}jO8d}JijdFq zA4f!#y6y*96Ev=UhjXxLSo|m=Qz-R(X}@nxM~t??vPbo#7t%+rJ+1{iDp^6|+aw#T zSCqh+;P@R9Mm#6BQ?0dGRk9HJM7?8L6MwUbYye~!Vg!$=Fd76~dxv0)I8%KpIj{+p z3OyVu3uFn!I-B!(Ll+9s?ATVW@3lechAo{7{~?9P@P1y5>WX7grjidRoXCfav|%}h zb3P$nt@8*f5*wsps1!-__9gpQ^+PSTUOwEE@hc0TtyI;wN`Y~-up6d$==g-gFQljJ zVoVRlfDF5o4^;3GfQRx+j5$2}4&{c->POTxT8@T2_VM5z4fV%)Z>?U>;;XO%#uFSf{%k@XVdcC2Fd)f@R~K?PtBOGk7{hxQRnQX_a1@j`_1 zdYQa%S7sq91r+n8joY{JOnEdHH<+>gc!D?WN7NX}M25fFpYm=Fwcv^Zl(br*M!_@I z5v<{u=8c7&8qmiu(6>o+dB}Yo3DW=yQ(k98Nc%ShyDsjrI)g}LY+a=dC;j+J8Ir>M zeGp@yGeE$MWbVavlev}C+-(|7XAjHwq$}SelVz*e9Zv}#B`fj={Rp3{NoTP3>nWrb zzEV99^px0U1wT;GEr{IOU?W;`gfgQrTFVNpt^{le<0(Nw@sPk^&P8Y_ zt(GIsH3OuLpsL^nXlr3@8`;X}3uMV1@iJl9cAP`3jKxSb7qzRTNOTGr-G{US< z-xpw(9iW!uHZ2ZyfL_M;8_D1~v_GfouDg{g;0QuA1h?QQp z!f6YB$JhetgGRABI~gf`?xzc_24(Y7Yt%-yLI_w3z z=nJ07 z+#{e0Bq&udMa2~qM)aq?$q-5z3<>t0cx?EXum-8jObT& z2EnEQz|!yvttVuP-mf89kU-8O!ZHgah7)QV2W`emXfCOCC8MzbYRxY6fYyv-`dpi> zma+uQ3gx&1^BGx$^N01SgO{RyGlNwfLC|x*FO&q&Rj>J$lT_rf@}x3Ul37@5`t3QvV%Xtnol zwpgGqY$*PO0&Hq_gZ6h~3howSXO0t%6B^?qUt=(o;mSa4b zOzrpGZ4)~!inGSM09d4v>1U-jtZdX8U7*8h@1gaij99WjuDAMDNd(Bl`cSXreG}B(3s%S?bL#MpoeXy-yB2>?LV`%Yvy2ikHUJ?wZeUOq)H=(5QE3!8}>uLp4eGrlF- zaHd(Y4UL&!)29;PqQE+xjh5m`&ApTe4jolfmNjUSNu>!pV;(UwxX*A_N?AeKQ*t|ORXf2w=FakNsP$`l*AjiucGIyHoLonjtY|&{_>lxZDY(L}B6srL<>P03?_@~Wu z&t0~iz0ZMv{&dofRfZ885@p@ABj6;_HcP9fvb#`6%&Y`Zl2T-8EH*R@K3OtT=MdS>gQZRXra#c6 zq>ZAV?gn1_g>FIbpl+68hCp&v9$Qg;_!~zCTge5yWiF1!oMDm>0LqP- zjI%4uVr)GZbWV>F?D~91B|$iHeoT)rAVI2%tcS8}ihd&VnWw#Unf&-aR;ly1LmbkH zuJTjweJpi=2rcaHMZO2g2LItJ4ZCkbvpt|Y)3>@L=D_+95D+AQ6XWe^Pz5_pe9pfyrSAh8SY%AABn|H{ot(BpL*-WUNvoza zCUsEo^CWMGs6R}S<`5%Z7+kXAZ`jG?1 z5+ZTQsf5Xf^8)Z@ctngOH;{iM2fv9P5J-5niz9okxc*WoiFT{7IrT#8FgRGobUH8= zv`4$a{BWLY1t6X~uoXRPU-t8@%(-t3-vSo~o_v@<3|9vx0Hv-$tb?pr+V)u!x6izl zWjY*>&u;pqTtMb+AY2E|s19S77qh0eU|D;X9+BLE7&DbCGZSfU+wADr8pRs2sJS*8 zsYw5WmuV%a-NKwN_7x-KV~vsxjq(?wj7FH4RqgFNS_A{)qV}%BV-DB?wu?X=187sYi@q_9oS=i{DA&iIdjNI z^dd`9BNO#93K~LSR$cJrd_jX_Ai_sX3lbpXz6eQFk_`wHIj!*q6=H2M^+t(xMU1M# zWXW_J;$oeomVOL_Ej}AG`%}DF;RbIE&h3{>-3`5)8RsPOUfy9W@?{m%NJBwbR?Kl^ zL8=Tb*pi={Eut!e)unvv3Hvn7XRCHHF~D~p0WToorW`y&44_NIONdov!SI|E1y)*c zwbgHj)xWJ5Te~`$S2Gr5X@d1=N|KVb7m(tU;e;7KKbMgQfT-OoA&r#cG-ALABsKeC z{F1r-$=bD{YPzk8#Vk-Z(H2+U-`Y|5GXJ(&`p5;1kyruSiJaaNVp{ z7o!^d$zF|nht=R6M#H?(t+GabW>kBH6A##lEblF&rARcV3L(=lFSOTbmh(qj@Z8sz zN6d*hZSus0Hk>(Hhv!Kcl)FlMP`a-^iEaD@W)%`QMe^pK=vWV-5V=uBPQzt!_7qK) ziiv~*m-$H$6`4voI!qr)WSte;M*gcPw5Rh{sEC;Se|W1%gjl8j$C3^S04czfJ=*KdhA0=a%P=dR-?5D9s9anCDZ9_EAjV zsOFfp$eCY8qF_ixcT&})Qqz&F$1(SW2P9SI-ywZ>?(GYk3)zfQ#W$50yKX$cC48+6 zMYWbM9Vm2moCF{<7de63)sJ}y05TvIk`g1>yoPXHP32KcmT2=_TL2Mj20FprEsNM& z&t<8Pn#<4AekuJpoUfaj{avcO-%_DSQjx=ugI}p${HOu&-&?4Ks)+zhnZmDj*D zIOn&n%U;9K>RFA=$aAehFv%eu3y3Y*1ZT94vd&WR%#yTVK)p%QnO)vSPfX3b7<){t zkB{}#@f3};Q|2DxnmU85%!x_7M%jv#7oC*XgLF~TH9cqfGCJKBaLOSbA3?01^F^6B z=sBdC^u&N+5tEx&!*TIdZLg#3pIAa>u4#8&**|DE(;J{iwKFA;=bLl#;6}zBU6_Z*b-ud)y0^CfJ0)8_Bf}C2CxOiDD^RpULkeClSXK*yB=G9+^F|4WwCuzJKqR z91?*|BOK@d3EL)tc=0HJ&+d8qODyP<_pK5-G&2|Q8=6}M_0-btun&3Qk9NV`h1Tu zp$@byZ)Gp>@D;bcECc?&-#f*EFUnieZYyEuI2%SrnA@Rzi+2WR;c)Z{=hZQ3&UdO{ z00%Smmi<;HN{NS(89e~DU5@6?q&m#Gs}$istT#m%58!z2K0-Ton_;XFc1*h43tEZ` zFg~`mei_F9ik?vYf){ z7?@RnI-?@Y5|CD0zV8qxPJ7JJvye>P7*tzRn&nkA@|qh*(uv@t6BEsN8TDb~tOMXFJNY9D z?!9_2DltdG>!Pmm)0T@#HiiNHnQgmdLFizM>>>mF-!){g**?NvWg8-Ek!#ek#4&l5q}8WN4?^!3rNaNVw4stUZpR4?vZK)o(ZFe`AiX*DpUF;jsqD^B8&02 z==W0=$xswa)a<$;-*Yoto1x!!-uzPUc}FIFi@s7~q(!^ueZU@FzjN4nwxeNrTOA0Z z4eWwpp74IlePA4RA^j2Guq)&M+ixC8F9_FC%WGSvVMu{Q4va!Xan(lKjgTacTkXYrp}GZn?!NzdVA^V9aA+TXOOA z!g2m;CS8$7K%eTYj46UhoFToUN<7g$S9*8UJWPa8uP7&e#e|pW@i<)V1rSPnt4iRk z+(1VahIOyXsO8hTtysiswYo<+ z&ld-fbL1Zhl8cc~2V@0-ILaE?QeS+X_LXB)5JI=?4L=89?8p$cabI-U9M2mav% zyoew0P}F7q!A*IlN~)-`!g(tV_V+h80DS>;4e7u(?Br`0Qvt$qM!_B;0dA_Qf^+dj zBOJtT+*I0*IhqZu2?zM#m74_WFnIO`8cS%TJsAD;uR1tjhrPlgqudV}D8QK{=vf+x zbo3$)U#2jelovm@dTp53{~h-Q=Tr%`9>#E zPLwcGpyY=r+CVGNNf{bORzuz&+{khUt95?n6suXf;+#I4fRP<(MAv5ha4%+B>+Xmu-h}PNzG}-518-<@kLZS6 zOQZU4R9ZFW&5Ju%g>j||YtX*V*M5my1jt8s&@I?4;w9)ez@0cUY%0*Q!dXFiPwg zCTo*ys>g2${4Z;c(|Xv-7i~Pa>pe0cs!Zd8SXQf8BhaF|(st>SQn^h&BYm%KjE2lI zf;S!R{2zXcD^KvhoR(_-n;f?u3N#clGJov5~a58?(Fq}nOd3oiLE%sK`k<_>UCW)02*88 zGRJHizi#YTwdR)}v|gQ1it-)(u_&uF9&J^@TpVU*n+NVAaLlKu$`GIVdMURqZN&B zMey0~H|~;6UZA@+npk`@Q$~wgH4o)!&zQ?W2gL7;EvOEe4C6t5udO~IhsB(~VOR|u zxVF@`azIC8q^&;=xuP%__rCHkU`oU9ZOdgrig0>z+ftX6$CinJ0dxFQ7WX@>ilaAl zVo-1*-b=gI)e}|E=#|z+Pl|&=a6-82Nwndh*cDL)Al))-Mtj5T;4NIP3-H5k%``q* zxS0=;dER)D0MV@^Wc3Xw)owImJHL(M>7vZP_0J4xO!j|?ceT^hYVDZunfO2Bz(pQ8 zgKdXdW@S;~yA697qQ&EEw28(??E;8SlNK~5TrR1a?cMUp81`VCQJ&6xO90~Fkjnbm zCShROe=V!EZLk%S>$s7(j=ikV>o;fu*^{+zRoDKY0^wT-r`g}KV47VlV)5JnvCHWHPD}MgtpYu_mO`HmV{ndEpCH`ax8& zxYN)|@FNVu{K*?;_QzN)G^(vagj)o2jb4s?_fL9!05o=Rz8VFg@m+T207Wg`IvRC{ zusM9442Wl&G&E>_KF9u_KE|`v+WfP>>iWIN++I?Oo_1ZRtHT(FwJHj%(}Io6O^ee= zWn(s2fYO>gZM5GSl$c`I>^8XdL^fp=Es=)mnTzOkTFz4>#J^^sNlP~TnlF8( zn#vUKEek0CGP7-ve4D&(L(}D~k}u5mdkyK&=wKsRdx#g%BTfAs*hUQKbD8i(Tcfut zbGBfu)8>OjM#=RY@e^A}sIB$U*T>M|Quk4MABTbxMljx@nVm{n5Iv*OIKtSsF~j0% zX~c0ar~mtSs@-Ugorz-g%^)t+q3u%y$<#BAR|oDIb+G^Cl+WtBOo@c3SHE7kPs&%@rq$p)3&fzrMcm zvI|#dHa%@U+Zoq&qc$V_E9S|)kzX6j8drDw-^^=1jTxt&^$u|De1i&xVML>F6Gc%6 z(bfaQ6WM~oZ0&gz4T$d>11CY?0q04Mn%fUS7%>=dID&!<`PI})ciJ2Q$xyaTTu;5#1UkqE^_Gtgd%%^Hqk0)$|FAq*NK ztu+u<bf#Q3Q1Wx;4AC*a^x2ldn`N=cxAmF(+Kxl~`D zP3&>S#Hkr9<3n8CSry8Ai@68ZO-7kgum)ME9b*EpgN-S#%E1LoPBi@hYT_x6$mVH9 z&^@?R)NwAt{JS1=s9EOg54Ap)JQhB<-d9LAf0-KdvWlW}lO_bRp}Y(485ROF3Dsamp}zg3>q!_+v} z6ig^ALW0}9Og?`j%IqPBSOG|^(Gcvc&hX?bF!=>dr~kqn@oREfAK^9Hlv7$0?acp}nu=(iPt;S%HAYo& zcm(D$tkqUyj1#nDJDMi`g^hH``I}~Fq!9?zX@}LtNLHvGmc~lfDN;tzM`(y3K8a2` zq}WxrC#%MioX#l)OfWM%-Oc`9qbH*4K8p9XF7_u|7+icSfFrb+t-mu2tIw!GQv~zQZOP z2io0qE^9TJo z<{;Eo%dwy}>EOzj4#j8%Wm{R-5re0 zyT~#zYDL!_z2_Qu&v0xI7US@@>u$?=#Ib-?D{^p-v-YyAr`)BC1+_BFwg)2j5;^f* zHM+S_vS$4r4^jkBHy?&h99m=>CmVf0Z2od(Z2O?a0qLfR&^GrH0a-AcjhWE)*6_#{ z*Ub=kR2*Nnm>>jl1>-7Mtr0$7b3vdmqZV^5Tp1Jxe_&*8V4cPpu`~J>U~VD6j567; zqxh1LR3qJRms~{quQvA3v`bnAE}tmq3WbzhN;^~x0sLbs&5&-92NVz{1S?75L=~nZ$rjoDKrlLR{?T%>Zq^-pK1=jiR`AT6p1)PO> zmv=yG7A`a|albkUm|}9Bc#|9fhI18a$B=h{#riJ*!~>X|fNMhE8Y|y4a4F!6C7!!Y z7YyG={O8FfsNB$0NYSc?RP=>ZU?#;P!_urVOQTJpSci9J=!O8H2zUQxL#_&Og#ow% zy2P%bTwP&5?iU+I#D&3)CQd5Cj42gNU~?w|n*dt$!<2S&1p~VnfMgqA9t2y*fNHOJ zP4p2Wgz)UwA)E74C^%#b-QyV$nD+kAW_ow?LT87*NyrCN#?Rw)kz*V?9ro4<`}QI> zlHz7oVLjk?9?jQr0W52`;CaT^9IS$j&iGU~6Ky%WKPO)V^sGN-1VH14noRMycljSW za|(G)EGKTj<}{`&!$bcUYg$puCS{%VV0f=xPLe(vEx&<`!M!}nNK-a6aC)rFsaD1Uz_LR z>!+)ZiO3HF-^E|HaMP)`@u=`sTD9?W1J?nsa)a_0l`@BG9%Sb^=KfAUqQsow@Q^wj zKzRu*iA~T}&44F%b89Fyy}QG_+}S7iegHU7BKR>zn9Gk|fMmkzeF0PCm`YP^o@Rhm za`2FjYykScvCAj0u7nhByvGI;JYY8sV6o1(&-!>8vzsW@Bp$q0Vlyh{2(jIm*Wuoe zcovfNJ@UdGT8p;r8NQYmb1hODf=7nQaA7zO;|HyOk=F$^J%i)b#k(bCuwl73Y&*}* z?T+c|3(zLaK7@oTI- z)c}*C)*at9sf3@V^;oGcmk8L4v2hZ8@C z-s0CeNZ#*7Wz(G&+NdSBgFa~DH$=Y*ziFTi#^4IKVV=}w&S}H85F>CKSNDJpHAs-C zxRY|G2P9NgY_b-tqgM(v)XC6xh0lGD;SMITlon_SB7nTOTzQ=*TrPnr?JSre8x3K= z>uqO~j38fwH zW=|(pEj3gc!LsLj%a;K416f<1rqTG1+&6zAxYH7Xf|U}SPy+IG&P`z5bXW%1sZp12 z_{=*jhw+3!1S!7OWvvmihBvj~K(rN?v1uFZXJ9*D$UJe_3WdYaAsGbE3E(kWdlHud z#jqNc$DRC8vEQX!_xefKt0G-NFc08U-}(6k zA0uj)oijt2E+#`CIWUD*vNLgytCKo{e6U3p;DG#s^)dGzPpO~WT=`+d58{=?1)JB8 zvy{Fi1&jeyeLcVgbbOsJ9DZ=9!~kJy(GM0tI@?~!S8Rs3Yb#hlc}%TMb#-A`2tX{E zmGIV&j&U0V$YqvnyiGF7On*nYprhmj4>-!TOrd#TZ()O!z4iA=Sr#r%+e12!uezSE z7&pcIz5&(5JZ8kMrhvW7qotMTXPJDHx!ZO&L5`NeP8HgaY0x+tE7a#kYsd8EbAm#yFbFU0q%V&vCb`eqY3Cc=H9~_&AWS z7Hhp><`m0f)lOIFm<4v}yLBl87h;H>oHfQAns%brZ5R(d&X;$8IzZFR?qrH$?b9Y; z8yGG8qBmTOFVrGhsfEZhUG{Q6myJ1^qF*{dkNOyuPPh6q!D}lP8idJ)nLAX>#$hT3 zL*3{$z`eQ_ok@_newwp#ozE0-NTsXIkZrJRx~;M`EyHqsebCkf8w`LZUf6lK{C@a_ zd%!?Q00h0Mf5%9mV42qSX01llDzTKG^MtG|fUKc3ZC%vkut*3;9^eoza+n3yLnhgj zsL;gSI(F414nWb>0dXo~B8m=tm<1;$Sg1GZZ|u|OU^~Q=om5Qe2HUsoESkgUTs&t` z{iXAXR(#uNCORUG10A3^v>SB}ZCw=NK-d9O2DB$FBw2Be55#)A6EYqa^ZpD1PlJ9D zYCT%SY*lOD>a}J{gy~r*MjVQ1g6S`^a|iUT;g$`RoRn@hmGNrp4)g4H5U3<$o>%A! zfVJ7AiFfGh_k+tM$t!QL^aH_l^Q`^%4F!%TS425lr{pMdAQC|?u({70DGPtY-o>I; za-PyrFt0LFk7gmpeQdr%*DQlax2dk-Qn=gl6#4GmGAK+pExw`Fkp*LPUmr>FF>5sd zNl7>o*FfMrNGr(5+H{mo2Fk#IhMuO(2U|QyT|2&8mB^Tl37BRL*bm!==N3_^#K`I{ zxSErRQ8;s5Zt9$!Eu=V9UI|K=s*y2(v6u#%#@q$3>CZ|c329sWY35RVynn2k0p?-H z2d+RqZ6DukKD*vdqivWu*#F&l!RIBGQWZ98Z7nIa>@rJ_^CKGS=J{7NoAR%oNb6(y zE_0U@Zt`V(Zc=xs<1%)D-?c;!HKDiUzpcNT+-4@c)rZE_xon(^;Vtw}YG#ti|4z7u zHrm=a6Va)UYwIk_)B3?8uRfSaeODhT!m>Q~Xd6(Hfet6>Xkrp+z6YCP<_fts=Z`v}^5S9bqf XMs0cM`g0EaZ}`v`hHUuNtMmRppj;Sl literal 57493 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 W>dou+os*E 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 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-transform-rotate5.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-transform-rotate5.png index 5761006e7baa5c0262b22306eaecb4705d45bfd0..885fe9ff2bf2daa7b579a602a6e8bc92a1a63c36 100644 GIT binary patch literal 71023 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 literal 70972 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


<;$2b`~)$RzxxPwb{fJ7AFGat!JgHlN; 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 T5|#wue-YiE3g7tnklFtq;IHIH literal 54437 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 diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-transform-scale2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-transform-scale2.png index 1f6e96d217fe82620693fd76664b66d0e7fe2930..4726a4bbec48b7c6460b94e88c99680aa0c31051 100644 GIT binary patch literal 81574 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%0A#E29l-bied*jTY8R+ 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 R0sc4SqG5xd{pVlZ@qh1xgZBUc diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-transform-translate2.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-transform-translate2.png index 00822821189dd18bac243a3480ffcb1688b346ec..e8a7e8e4576ddbba2daffb199132942905699265 100644 GIT binary patch literal 90319 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 oOj&+~hp-#^XM=;7iy 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⪙LB~eB*bKKFFDF@oH!P3%ioQd*M=0!B8D2C8=xG+*Mrkqld}NjlpeWj8o$W)r_wS+}8_Ub$nL}qzFX#1&0_us8-+xI|glSQZH@% zq#McXIXbC3gY_fPLX>WO{uBpL(&re*M^>+(9p4T3zSm;92Zh)zynW5a`9Zev7}S6y zHfVgy&NmgJOp%wuX>CEbo^*{))*l0TG;Q}6SMb1Co^~`GI{n?BA1){;=#N?jP6Mqe zm<8~9M_N8+I*#QRY9Hv8#s}Kanx$CE8;rdiKYn})J?(+b!?XjOIldxG5W+B3jG=Wi zaO7x}Yz*>wt>ch_8~V4$p|zSG1JfvUM`QUL4%Stb+GUU)C9WgjQ4XHWKum$lxkh*2 zB3=eRVSD(_Hl)Y}=bTHh19t&>yi=?%@aB03dy$OrDA(yc13(vvPPX=-nNFgLPijot zHC-Gbm6C`jdmW4$bUG1BAfxvovmrCx%DEOzN%@v$hsbM5+K+;6+ZAx_v51$^AS0M2 zqsS;f@HYq#9rAQnq=SG`AO*rY@|utboUcS%#l7w~%xfo^mvtsPy{GyBt{#ZMOZXg| z4_?rvEHr*}>zRDx^p7iZtQX**wSqE<&432Pfof*9Xxweg4u zF0McjjC0b|3|}WN9_2O?v4u`b)>t}w-T;9GfrKn(lAW`SnZ%G6MsvrgUQH%6(Mhd{ z=c@YPePR%&AcrCWKCSi?g00j6PQj!}yF1v6_QK4hv$PF(wspVLqS*$8 zob*O8Ix8J%n3?}h1{^gR93COi9~){3K?UCoi8*d&*#JKTSU`1yWIfU`Lr+pV(1fI} zA{`fIKwb)y=k7rxYVo|7jemalu8(}kK?%#7LH~5IR9P}bb_^%TQM?6
@!gvFl5QkVg1|EM%UBB;g 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 I&%-DGU;L_HLjV8( diff --git a/rust/kcl-lib/tests/subtract_regression12/rendered_model.png b/rust/kcl-lib/tests/subtract_regression12/rendered_model.png index 5aae217e389d3d0ffdf432404087fb0357d91ca7..c541dac7c7aa7f094e673795d0a99d9ce484697a 100644 GIT binary patch delta 14583 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 delta 14577 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 Date: Tue, 24 Jun 2025 12:43:43 -0500 Subject: [PATCH 02/34] Fix quote escaping in docs (#7594) --- docs/kcl-lang/settings/user.md | 2 +- rust/kcl-lib/src/settings/types/mod.rs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/kcl-lang/settings/user.md b/docs/kcl-lang/settings/user.md index 6de362a10..3d689b2d3 100644 --- a/docs/kcl-lang/settings/user.md +++ b/docs/kcl-lang/settings/user.md @@ -87,7 +87,7 @@ Whether to show the debug panel, which lets you see various states of the app to ##### fixed_size_grid -If true, the grid cells will be fixed-size, where the width is the user's default length unit. If false, the grid's size will scale as the user zooms in and out. +If true, the grid cells will be fixed-size, where the width is your default length unit. If false, the grid will get larger as you zoom out, and smaller as you zoom in. **Default:** true diff --git a/rust/kcl-lib/src/settings/types/mod.rs b/rust/kcl-lib/src/settings/types/mod.rs index b98a7808e..e2b9a137c 100644 --- a/rust/kcl-lib/src/settings/types/mod.rs +++ b/rust/kcl-lib/src/settings/types/mod.rs @@ -94,8 +94,8 @@ pub struct AppSettings { /// of the app to aid in development. #[serde(default, skip_serializing_if = "is_default")] pub show_debug_panel: bool, - /// If true, the grid cells will be fixed-size, where the width is the user's default length unit. - /// If false, the grid's size will scale as the user zooms in and out. + /// If true, the grid cells will be fixed-size, where the width is your default length unit. + /// If false, the grid will get larger as you zoom out, and smaller as you zoom in. #[serde(default = "make_it_so")] pub fixed_size_grid: bool, } From c7f0a6c2a0edb0d8ef4b4a2be6af58f4faee3984 Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Tue, 24 Jun 2025 14:38:43 -0400 Subject: [PATCH 03/34] Upgrade to ts-rs 11.0 for TS type fixes (#7581) * Bump ts-rs from 10.1.0 to 11.0.1 * Fix breaking changes * Fix tsc errors * Update output * Upgrade to kittycad-modeling-cmds 0.2.124 for ts-rs update * Update parser snaps * Update output of gridfinity_bins_stacking_lip sample * Fix missing field in TS unit tests * Fix tsc type error with fixed_size_grid project setting --- docs/kcl-lang/settings/user.md | 2 +- rust/Cargo.lock | 13 +- rust/Cargo.toml | 2 +- rust/kcl-lib/Cargo.toml | 2 +- rust/kcl-lib/src/execution/typed_path.rs | 3 +- rust/kcl-lib/src/parsing/ast/types/mod.rs | 2 - ...rsing__parser__snapshot_math_tests__a.snap | 3 + ...rsing__parser__snapshot_math_tests__b.snap | 3 + ...rsing__parser__snapshot_math_tests__c.snap | 3 + ...rsing__parser__snapshot_math_tests__d.snap | 5 + ...rsing__parser__snapshot_math_tests__e.snap | 5 + ...rsing__parser__snapshot_math_tests__f.snap | 7 + ...rsing__parser__snapshot_math_tests__g.snap | 7 + ...rsing__parser__snapshot_math_tests__h.snap | 9 + ...rsing__parser__snapshot_math_tests__i.snap | 5 + ...rsing__parser__snapshot_math_tests__j.snap | 16 + ...rsing__parser__snapshot_math_tests__k.snap | 3 + ...b__parsing__parser__snapshot_tests__a.snap | 46 + ...__parsing__parser__snapshot_tests__aa.snap | 7 + ...__parsing__parser__snapshot_tests__ab.snap | 10 + ...__parsing__parser__snapshot_tests__ad.snap | 13 + ...__parsing__parser__snapshot_tests__ae.snap | 15 + ...__parsing__parser__snapshot_tests__af.snap | 47 + ...__parsing__parser__snapshot_tests__ag.snap | 29 + ...__parsing__parser__snapshot_tests__ah.snap | 17 + ...__parsing__parser__snapshot_tests__ai.snap | 15 + ...__parsing__parser__snapshot_tests__aj.snap | 25 + ...__parsing__parser__snapshot_tests__ak.snap | 9 + ...__parsing__parser__snapshot_tests__ap.snap | 18 + ...__parsing__parser__snapshot_tests__aq.snap | 12 + ...__parsing__parser__snapshot_tests__ar.snap | 5 + ..._parser__snapshot_tests__array_ranges.snap | 13 + ...__parsing__parser__snapshot_tests__at.snap | 10 + ...__parsing__parser__snapshot_tests__au.snap | 25 + ...__parsing__parser__snapshot_tests__av.snap | 16 + ...__parsing__parser__snapshot_tests__aw.snap | 9 + ...__parsing__parser__snapshot_tests__ax.snap | 9 + ...__parsing__parser__snapshot_tests__ay.snap | 12 + ...__parsing__parser__snapshot_tests__az.snap | 12 + ...b__parsing__parser__snapshot_tests__b.snap | 17 + ...__parsing__parser__snapshot_tests__bb.snap | 13 + ...__parsing__parser__snapshot_tests__bc.snap | 12 + ...__parsing__parser__snapshot_tests__bd.snap | 22 + ...__parsing__parser__snapshot_tests__be.snap | 7 + ...__parsing__parser__snapshot_tests__bf.snap | 7 + ...__parsing__parser__snapshot_tests__bg.snap | 5 + ...__parsing__parser__snapshot_tests__bh.snap | 13 + ...__parsing__parser__snapshot_tests__bi.snap | 16 + ...__parsing__parser__snapshot_tests__bj.snap | 3 + ...__parsing__parser__snapshot_tests__bk.snap | 4 + ...__parsing__parser__snapshot_tests__bl.snap | 6 + ...__parsing__parser__snapshot_tests__bm.snap | 7 + ...__parsing__parser__snapshot_tests__bn.snap | 7 + ...b__parsing__parser__snapshot_tests__c.snap | 18 + ...b__parsing__parser__snapshot_tests__d.snap | 13 + ...__parsing__parser__snapshot_tests__d2.snap | 10 + ...b__parsing__parser__snapshot_tests__e.snap | 9 + ...b__parsing__parser__snapshot_tests__f.snap | 6 + ...b__parsing__parser__snapshot_tests__g.snap | 12 + ...b__parsing__parser__snapshot_tests__h.snap | 20 + ...b__parsing__parser__snapshot_tests__i.snap | 20 + ...b__parsing__parser__snapshot_tests__j.snap | 20 + ...b__parsing__parser__snapshot_tests__k.snap | 22 + ...snapshot_tests__kw_function_all_named.snap | 13 + ...pshot_tests__kw_function_call_in_pipe.snap | 12 + ...hot_tests__kw_function_call_multiline.snap | 16 + ...function_call_multiline_with_comments.snap | 14 + ...t_tests__kw_function_decl_all_labeled.snap | 10 + ...sts__kw_function_decl_first_unlabeled.snap | 10 + ...w_function_decl_with_default_and_type.snap | 10 + ...kw_function_decl_with_default_no_type.snap | 10 + ...pshot_tests__kw_function_in_binary_op.snap | 11 + ...shot_tests__kw_function_unnamed_first.snap | 12 + ...b__parsing__parser__snapshot_tests__l.snap | 22 + ...b__parsing__parser__snapshot_tests__m.snap | 22 + ...b__parsing__parser__snapshot_tests__n.snap | 10 + ...b__parsing__parser__snapshot_tests__o.snap | 9 + ...b__parsing__parser__snapshot_tests__p.snap | 9 + ...b__parsing__parser__snapshot_tests__q.snap | 10 + ...b__parsing__parser__snapshot_tests__r.snap | 18 + ...b__parsing__parser__snapshot_tests__s.snap | 10 + ...b__parsing__parser__snapshot_tests__t.snap | 8 + ...b__parsing__parser__snapshot_tests__u.snap | 14 + ...b__parsing__parser__snapshot_tests__v.snap | 8 + ...b__parsing__parser__snapshot_tests__w.snap | 8 + ...b__parsing__parser__snapshot_tests__x.snap | 8 + ...b__parsing__parser__snapshot_tests__y.snap | 17 + ...b__parsing__parser__snapshot_tests__z.snap | 26 + rust/kcl-lib/src/settings/types/mod.rs | 7 +- rust/kcl-lib/tests/add_lots/ast.snap | 362 + rust/kcl-lib/tests/angled_line/ast.snap | 73 + .../tests/angled_line/program_memory.snap | 2 + rust/kcl-lib/tests/any_type/ast.snap | 114 + rust/kcl-lib/tests/argument_error/ast.snap | 20 + rust/kcl-lib/tests/array_elem_pop/ast.snap | 71 + .../tests/array_elem_pop_empty_fail/ast.snap | 14 + .../tests/array_elem_pop_fail/ast.snap | 24 + rust/kcl-lib/tests/array_elem_push/ast.snap | 136 + .../tests/array_elem_push_fail/ast.snap | 25 + rust/kcl-lib/tests/array_index_oob/ast.snap | 12 + .../tests/array_push_item_wrong_type/ast.snap | 31 + rust/kcl-lib/tests/array_range_expr/ast.snap | 137 + .../tests/array_range_mismatch_units/ast.snap | 14 + .../tests/array_range_negative_expr/ast.snap | 21 + .../tests/array_range_with_units/ast.snap | 37 + .../artifact_graph_example_code1/ast.snap | 151 + .../program_memory.snap | 14 + .../ast.snap | 122 + .../program_memory.snap | 3 + .../ast.snap | 57 + .../ast.snap | 256 + .../program_memory.snap | 22 + .../tests/ascription_unknown_type/ast.snap | 8 + .../tests/assembly_mixed_units_cubes/ast.snap | 19 + .../tests/assembly_non_default_units/ast.snap | 17 + .../tests/bad_units_in_annotation/ast.snap | 141 + .../basic_fillet_cube_close_opposite/ast.snap | 69 + .../program_memory.snap | 6 + .../tests/basic_fillet_cube_end/ast.snap | 69 + .../basic_fillet_cube_end/program_memory.snap | 4 + .../basic_fillet_cube_next_adjacent/ast.snap | 69 + .../program_memory.snap | 8 + .../ast.snap | 69 + .../program_memory.snap | 8 + .../tests/basic_fillet_cube_start/ast.snap | 65 + .../program_memory.snap | 4 + .../tests/basic_revolve_circle/ast.snap | 28 + .../tests/boolean_logical_and/ast.snap | 116 + .../tests/boolean_logical_multiple/ast.snap | 67 + .../kcl-lib/tests/boolean_logical_or/ast.snap | 116 + .../kcl-lib/tests/circle_three_point/ast.snap | 31 + .../circular_pattern3d_a_pattern/ast.snap | 96 + rust/kcl-lib/tests/clone_w_fillets/ast.snap | 156 + rust/kcl-lib/tests/clone_w_shell/ast.snap | 83 + .../tests/coerce_from_trig_to_point/ast.snap | 28 +- rust/kcl-lib/tests/comparisons/ast.snap | 93 + .../tests/comparisons_multiple/ast.snap | 12 + rust/kcl-lib/tests/computed_var/ast.snap | 101 + .../tests/crazy_multi_profile/ast.snap | 562 ++ .../crazy_multi_profile/program_memory.snap | 42 + rust/kcl-lib/tests/cube/ast.snap | 151 + rust/kcl-lib/tests/cube_with_error/ast.snap | 154 + rust/kcl-lib/tests/double_map_fn/ast.snap | 37 + .../ast.snap | 35 + .../error_revolve_on_edge_get_edge/ast.snap | 105 + .../execute_engine_error_return/ast.snap | 56 + .../export_var_only_at_top_level/ast.snap | 20 +- rust/kcl-lib/tests/fillet-and-shell/ast.snap | 472 + .../fillet-and-shell/program_memory.snap | 8 + .../tests/fillet_duplicate_tags/ast.snap | 73 + .../kcl-lib/tests/flush_batch_on_end/ast.snap | 97 + .../flush_batch_on_end/program_memory.snap | 5 + rust/kcl-lib/tests/function_sketch/ast.snap | 79 + .../function_sketch_with_position/ast.snap | 83 + rust/kcl-lib/tests/helix_ccw/ast.snap | 36 + rust/kcl-lib/tests/helix_simple/ast.snap | 47 + .../tests/helix_simple/program_memory.snap | 1 + rust/kcl-lib/tests/i_shape/ast.snap | 450 + rust/kcl-lib/tests/if_else/ast.snap | 83 + rust/kcl-lib/tests/import_async/ast.snap | 452 + rust/kcl-lib/tests/import_constant/ast.snap | 4 + rust/kcl-lib/tests/import_cycle1/ast.snap | 24 + rust/kcl-lib/tests/import_export/ast.snap | 4 + .../import_file_not_exist_error/ast.snap | 4 + .../tests/import_file_parse_error/ast.snap | 4 + rust/kcl-lib/tests/import_foreign/ast.snap | 9 + .../tests/import_function_not_sketch/ast.snap | 24 + rust/kcl-lib/tests/import_glob/ast.snap | 3 + rust/kcl-lib/tests/import_mesh_clone/ast.snap | 106 + .../tests/import_only_at_top_level/ast.snap | 15 + .../kcl-lib/tests/import_side_effect/ast.snap | 4 + rust/kcl-lib/tests/import_transform/ast.snap | 43 + .../tests/import_whole_simple/ast.snap | 24 +- .../import_whole_transitive_import/ast.snap | 21 + rust/kcl-lib/tests/index_of_array/ast.snap | 76 + rust/kcl-lib/tests/intersect_cubes/ast.snap | 148 + .../tests/invalid_index_fractional/ast.snap | 15 + .../tests/invalid_index_negative/ast.snap | 20 + rust/kcl-lib/tests/invalid_index_str/ast.snap | 15 + .../tests/invalid_member_object/ast.snap | 12 + .../tests/invalid_member_object_prop/ast.snap | 12 + .../ast.snap | 24 + .../tests/involute_circular_units/ast.snap | 242 +- .../program_memory.snap | 4 + .../tests/kcl_samples/axial-fan/ast.snap | 26 + .../tests/kcl_samples/ball-bearing/ast.snap | 438 + .../kcl_samples/ball-joint-rod-end/ast.snap | 796 ++ .../ball-joint-rod-end/program_memory.snap | 37 + rust/kcl-lib/tests/kcl_samples/bench/ast.snap | 164 + .../tests/kcl_samples/bone-plate/ast.snap | 283 + .../bone-plate/program_memory.snap | 12 + .../kcl-lib/tests/kcl_samples/bottle/ast.snap | 162 + .../tests/kcl_samples/bracket/ast.snap | 456 + .../kcl_samples/bracket/program_memory.snap | 84 + .../tests/kcl_samples/brake-rotor/ast.snap | 858 ++ .../brake-rotor/program_memory.snap | 324 + .../kcl_samples/car-wheel-assembly/ast.snap | 82 + rust/kcl-lib/tests/kcl_samples/clock/ast.snap | 2856 ++++++ .../kcl_samples/clock/program_memory.snap | 30 + .../tests/kcl_samples/cold-plate/ast.snap | 497 + .../cold-plate/program_memory.snap | 9 + .../tests/kcl_samples/color-cube/ast.snap | 267 + .../counterdrilled-weldment/ast.snap | 648 ++ .../program_memory.snap | 12 + .../kcl_samples/countersunk-plate/ast.snap | 307 + .../tests/kcl_samples/cpu-cooler/ast.snap | 145 + .../curtain-wall-anchor-plate/ast.snap | 786 ++ .../program_memory.snap | 24 + .../tests/kcl_samples/cycloidal-gear/ast.snap | 240 + .../tests/kcl_samples/dodecahedron/ast.snap | 356 + .../tests/kcl_samples/enclosure/ast.snap | 923 ++ .../kcl_samples/enclosure/program_memory.snap | 52 + .../tests/kcl_samples/engine-valve/ast.snap | 504 ++ .../engine-valve/program_memory.snap | 6 + .../kcl_samples/exhaust-manifold/ast.snap | 656 ++ .../exhaust-manifold/program_memory.snap | 14 + .../kcl-lib/tests/kcl_samples/flange/ast.snap | 247 + .../ast.snap | 923 ++ .../program_memory.snap | 56 + .../kcl_samples/food-service-spatula/ast.snap | 822 ++ .../food-service-spatula/program_memory.snap | 17 + .../tests/kcl_samples/french-press/ast.snap | 1085 +++ .../french-press/program_memory.snap | 64 + .../tests/kcl_samples/gear-rack/ast.snap | 322 + .../gridfinity-baseplate-magnets/ast.snap | 968 ++ .../program_memory.snap | 40 + .../kcl_samples/gridfinity-baseplate/ast.snap | 306 + .../gridfinity-bins-stacking-lip/ast.snap | 1305 +++ .../program_memory.snap | 168 + .../kcl_samples/gridfinity-bins/ast.snap | 757 ++ .../gridfinity-bins/program_memory.snap | 96 + .../kcl-lib/tests/kcl_samples/hammer/ast.snap | 750 ++ .../kcl_samples/hammer/program_memory.snap | 27 + .../tests/kcl_samples/helical-gear/ast.snap | 421 + .../helical-planetary-gearset/ast.snap | 810 ++ .../tests/kcl_samples/helium-tank/ast.snap | 846 ++ .../helium-tank/program_memory.snap | 26 + .../kcl_samples/herringbone-gear/ast.snap | 325 + .../herringbone-planetary-gearset/ast.snap | 711 ++ .../tests/kcl_samples/hex-nut/ast.snap | 149 + .../kcl-lib/tests/kcl_samples/i-beam/ast.snap | 113 + .../tests/kcl_samples/keyboard/ast.snap | 1501 ++++ .../kcl_samples/keyboard/program_memory.snap | 48 + rust/kcl-lib/tests/kcl_samples/kitt/ast.snap | 2092 +++++ .../kcl_samples/kitt/program_memory.snap | 132 + rust/kcl-lib/tests/kcl_samples/lego/ast.snap | 439 + .../tests/kcl_samples/makeup-mirror/ast.snap | 517 ++ .../tests/kcl_samples/mounting-plate/ast.snap | 316 + .../mounting-plate/program_memory.snap | 12 + rust/kcl-lib/tests/kcl_samples/mug/ast.snap | 532 ++ .../tests/kcl_samples/mug/program_memory.snap | 1 + .../kcl_samples/multi-axis-robot/ast.snap | 32 + .../tests/kcl_samples/pdu-faceplate/ast.snap | 1100 +++ .../pdu-faceplate/program_memory.snap | 33 + .../kcl_samples/pillow-block-bearing/ast.snap | 20 + .../kcl_samples/pipe-flange-assembly/ast.snap | 340 + .../tests/kcl_samples/pipe-with-bend/ast.snap | 99 + rust/kcl-lib/tests/kcl_samples/pipe/ast.snap | 91 + .../tests/kcl_samples/poopy-shoe/ast.snap | 912 ++ .../poopy-shoe/program_memory.snap | 17 + .../tests/kcl_samples/prosthetic-hip/ast.snap | 1037 +++ .../prosthetic-hip/program_memory.snap | 11 + .../router-template-cross-bar/ast.snap | 636 ++ .../program_memory.snap | 189 + .../router-template-slate/ast.snap | 449 + .../router-template-slate/program_memory.snap | 62 + .../tests/kcl_samples/sash-window/ast.snap | 888 ++ .../kcl_samples/sheet-metal-bracket/ast.snap | 590 ++ .../sheet-metal-bracket/program_memory.snap | 140 + .../kcl_samples/shepherds-hook-bolt/ast.snap | 449 + .../shepherds-hook-bolt/program_memory.snap | 6 + .../socket-head-cap-screw/ast.snap | 226 + .../socket-head-cap-screw/program_memory.snap | 8 + .../spinning-highrise-tower/ast.snap | 571 ++ rust/kcl-lib/tests/kcl_samples/spool/ast.snap | 391 + .../kcl_samples/spool/program_memory.snap | 50 + .../tests/kcl_samples/spur-gear/ast.snap | 346 + .../spur-reduction-gearset/ast.snap | 264 + .../kcl_samples/surgical-drill-guide/ast.snap | 762 ++ .../surgical-drill-guide/program_memory.snap | 52 + .../tests/kcl_samples/t-slot-rail/ast.snap | 269 + .../kcl-lib/tests/kcl_samples/teapot/ast.snap | 582 ++ .../kcl_samples/teapot/program_memory.snap | 2 + .../kcl_samples/telemetry-antenna/ast.snap | 347 + .../telemetry-antenna/program_memory.snap | 9 + .../kcl_samples/thermal-block-insert/ast.snap | 281 + .../kcl_samples/tooling-nest-block/ast.snap | 501 ++ .../tooling-nest-block/program_memory.snap | 12 + .../kcl_samples/truss-structure/ast.snap | 913 ++ .../truss-structure/program_memory.snap | 36 + .../tests/kcl_samples/utility-sink/ast.snap | 1630 ++++ .../tests/kcl_samples/walkie-talkie/ast.snap | 254 + .../kcl-lib/tests/kcl_samples/washer/ast.snap | 81 + .../tests/kcl_samples/wing-spar/ast.snap | 923 ++ .../kcl_samples/wing-spar/program_memory.snap | 124 + rust/kcl-lib/tests/kittycad_svg/ast.snap | 2558 ++++++ rust/kcl-lib/tests/kw_fn/ast.snap | 44 + .../kcl-lib/tests/kw_fn_too_few_args/ast.snap | 23 + .../kw_fn_unlabeled_but_has_label/ast.snap | 21 + .../tests/kw_fn_with_defaults/ast.snap | 33 + .../tests/linear_pattern3d_a_pattern/ast.snap | 86 + rust/kcl-lib/tests/loop_tag/ast.snap | 151 + .../tests/loop_tag/program_memory.snap | 196 + rust/kcl-lib/tests/mike_stress_test/ast.snap | 7988 +++++++++++++++++ .../tests/module_return_using_var/ast.snap | 11 + rust/kcl-lib/tests/multi_target_csg/ast.snap | 403 + rust/kcl-lib/tests/multi_transform/ast.snap | 70 + .../ast.snap | 53 + rust/kcl-lib/tests/neg_xz_plane/ast.snap | 45 + rust/kcl-lib/tests/nested_assembly/ast.snap | 9 +- rust/kcl-lib/tests/nested_main_kcl/ast.snap | 7 + .../tests/nested_windows_main_kcl/ast.snap | 6 + .../tests/non_english_identifiers/ast.snap | 33 + .../tests/non_string_key_of_object/ast.snap | 15 + .../tests/object_prop_not_found/ast.snap | 12 + .../tests/out_of_band_sketches/ast.snap | 139 + rust/kcl-lib/tests/panic_repro_cube/ast.snap | 201 + rust/kcl-lib/tests/parametric/ast.snap | 137 + .../tests/parametric_with_tan_arc/ast.snap | 155 + .../tests/pattern_circular_in_module/ast.snap | 10 + .../kcl-lib/tests/pattern_into_union/ast.snap | 366 + .../tests/pattern_linear_in_module/ast.snap | 10 + .../tests/pentagon_fillet_sugar/ast.snap | 213 + .../pentagon_fillet_sugar/program_memory.snap | 36 + rust/kcl-lib/tests/pipe_as_arg/ast.snap | 49 + .../ast.snap | 20 + rust/kcl-lib/tests/poop_chute/ast.snap | 335 + .../tests/poop_chute/program_memory.snap | 5 + rust/kcl-lib/tests/revolve-colinear/ast.snap | 44 + .../kcl-lib/tests/revolve_about_edge/ast.snap | 55 + .../revolve_about_edge/program_memory.snap | 1 + rust/kcl-lib/tests/riddle_small/ast.snap | 109 + .../tests/rotate_after_fillet/ast.snap | 246 + .../kcl-lib/tests/scale_after_fillet/ast.snap | 246 + .../ast.snap | 307 + .../program_memory.snap | 55 + .../sketch-on-chamfer-two-times/ast.snap | 310 + .../program_memory.snap | 55 + rust/kcl-lib/tests/sketch_in_object/ast.snap | 141 + rust/kcl-lib/tests/sketch_on_face/ast.snap | 107 + .../tests/sketch_on_face/program_memory.snap | 4 + .../ast.snap | 257 + .../program_memory.snap | 12 + .../sketch_on_face_circle_tagged/ast.snap | 104 + .../program_memory.snap | 2 + .../kcl-lib/tests/sketch_on_face_end/ast.snap | 127 + .../ast.snap | 128 + .../tests/sketch_on_face_start/ast.snap | 129 + .../tests/sketch_on_face_union/ast.snap | 439 + .../sketch_on_face_union/program_memory.snap | 24 + rust/kcl-lib/tests/spheres/ast.snap | 105 + rust/kcl-lib/tests/ssi_pattern/ast.snap | 131 + .../tests/ssi_pattern/program_memory.snap | 63 + .../subtract_cylinder_from_cube/ast.snap | 146 + .../subtract_doesnt_need_brackets/ast.snap | 144 + .../tests/subtract_regression00/ast.snap | 126 + .../tests/subtract_regression01/ast.snap | 149 + .../tests/subtract_regression02/ast.snap | 201 + .../tests/subtract_regression03/ast.snap | 381 + .../tests/subtract_regression04/ast.snap | 137 + .../tests/subtract_regression05/ast.snap | 178 + .../tests/subtract_regression06/ast.snap | 250 + .../tests/subtract_regression07/ast.snap | 204 + .../tests/subtract_regression08/ast.snap | 183 + .../tests/subtract_regression09/ast.snap | 197 + .../tests/subtract_regression10/ast.snap | 1410 +++ .../subtract_regression10/program_memory.snap | 2 + .../tests/subtract_regression11/ast.snap | 164 + .../tests/subtract_regression12/ast.snap | 162 + .../tests/subtract_with_pattern/ast.snap | 147 + .../subtract_with_pattern_cut_thru/ast.snap | 155 + rust/kcl-lib/tests/tan_arc_x_line/ast.snap | 90 + .../tests/tangent_to_3_point_arc/ast.snap | 56 + .../program_memory.snap | 1 + rust/kcl-lib/tests/tangential_arc/ast.snap | 45 + .../tests/translate_after_fillet/ast.snap | 246 + rust/kcl-lib/tests/union_cubes/ast.snap | 148 + .../tests/user_reported_union_2_bug/ast.snap | 275 + .../kcl-lib/tests/var_ref_in_own_def/ast.snap | 20 + .../tests/var_ref_in_own_def_decl/ast.snap | 24 + rust/kcl-lib/tests/xz_plane/ast.snap | 44 + src/lang/artifact.test.ts | 4 + src/lang/executor.test.ts | 3 + src/lang/modifyAst/boolean.ts | 4 +- .../queryAst/getIdentifiersInProgram.test.ts | 2 + .../getTagDeclaratorsInProgram.test.ts | 1 + src/lib/desktop.ts | 2 +- 387 files changed, 74834 insertions(+), 24 deletions(-) diff --git a/docs/kcl-lang/settings/user.md b/docs/kcl-lang/settings/user.md index 3d689b2d3..9ab72a296 100644 --- a/docs/kcl-lang/settings/user.md +++ b/docs/kcl-lang/settings/user.md @@ -90,7 +90,7 @@ Whether to show the debug panel, which lets you see various states of the app to If true, the grid cells will be fixed-size, where the width is your default length unit. If false, the grid will get larger as you zoom out, and smaller as you zoom in. -**Default:** true +**Default:** None #### modeling diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 05b78a6b6..894fdcbae 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -2071,9 +2071,9 @@ dependencies = [ [[package]] name = "kittycad-modeling-cmds" -version = "0.2.123" +version = "0.2.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8f3c1b4b4ddb9aa336a09933f2550f9882552e321187b7bcff47f006379c3aa" +checksum = "221aa4670a7ad7dc8f1e4e0f9990bf3cff0a64417eb76493bafe5bbbc1f8350a" dependencies = [ "anyhow", "chrono", @@ -4428,13 +4428,12 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "ts-rs" -version = "10.1.0" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e640d9b0964e9d39df633548591090ab92f7a4567bc31d3891af23471a3365c6" +checksum = "6ef1b7a6d914a34127ed8e1fa927eb7088903787bcded4fa3eef8f85ee1568be" dependencies = [ "chrono", "indexmap 2.9.0", - "lazy_static", "serde_json", "thiserror 2.0.12", "ts-rs-macros", @@ -4444,9 +4443,9 @@ dependencies = [ [[package]] name = "ts-rs-macros" -version = "10.1.0" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e9d8656589772eeec2cf7a8264d9cda40fb28b9bc53118ceb9e8c07f8f38730" +checksum = "e9d4ed7b4c18cc150a6a0a1e9ea1ecfa688791220781af6e119f9599a8502a0a" dependencies = [ "proc-macro2", "quote", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 797d86f83..f9ffbb0cf 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -36,7 +36,7 @@ dashmap = { version = "6.1.0" } http = "1" indexmap = "2.9.0" kittycad = { version = "0.3.37", default-features = false, features = ["js", "requests"] } -kittycad-modeling-cmds = { version = "0.2.123", features = ["ts-rs", "websocket"] } +kittycad-modeling-cmds = { version = "0.2.124", features = ["ts-rs", "websocket"] } lazy_static = "1.5.0" miette = "7.6.0" pyo3 = { version = "0.24.2" } diff --git a/rust/kcl-lib/Cargo.toml b/rust/kcl-lib/Cargo.toml index 2e21a496a..33d617d06 100644 --- a/rust/kcl-lib/Cargo.toml +++ b/rust/kcl-lib/Cargo.toml @@ -75,7 +75,7 @@ tabled = { version = "0.20.0", optional = true } tempfile = "3.20" thiserror = "2.0.0" toml = "0.8.22" -ts-rs = { version = "10.1.0", features = [ +ts-rs = { version = "11.0.1", features = [ "uuid-impl", "url-impl", "chrono-impl", diff --git a/rust/kcl-lib/src/execution/typed_path.rs b/rust/kcl-lib/src/execution/typed_path.rs index 22ff3b204..2dabe9709 100644 --- a/rust/kcl-lib/src/execution/typed_path.rs +++ b/rust/kcl-lib/src/execution/typed_path.rs @@ -188,6 +188,7 @@ impl<'de> serde::de::Deserialize<'de> for TypedPath { impl ts_rs::TS for TypedPath { type WithoutGenerics = Self; + type OptionInnerType = Self; fn name() -> String { "string".to_string() @@ -209,7 +210,7 @@ impl ts_rs::TS for TypedPath { std::path::PathBuf::inline_flattened() } - fn output_path() -> Option<&'static std::path::Path> { + fn output_path() -> Option { std::path::PathBuf::output_path() } } diff --git a/rust/kcl-lib/src/parsing/ast/types/mod.rs b/rust/kcl-lib/src/parsing/ast/types/mod.rs index c5f2b7c08..53cd2f62a 100644 --- a/rust/kcl-lib/src/parsing/ast/types/mod.rs +++ b/rust/kcl-lib/src/parsing/ast/types/mod.rs @@ -56,7 +56,6 @@ pub struct Node { pub inner: T, pub start: usize, pub end: usize, - #[serde(default, skip_serializing_if = "ModuleId::is_top_level")] pub module_id: ModuleId, #[serde(default, skip_serializing_if = "Vec::is_empty")] pub outer_attrs: NodeList, @@ -1885,7 +1884,6 @@ pub struct ExpressionStatement { pub struct CallExpressionKw { pub callee: Node, pub unlabeled: Option, - #[serde(default, skip_serializing_if = "Vec::is_empty")] pub arguments: Vec, #[serde(default, skip_serializing_if = "Option::is_none")] diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__a.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__a.snap index 4a484a1ad..2e73d3765 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__a.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__a.snap @@ -15,6 +15,7 @@ expression: actual "raw": "1", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -27,9 +28,11 @@ expression: actual "raw": "2", "start": 4, "end": 5, + "moduleId": 0, "commentStart": 4 }, "start": 0, "end": 5, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__b.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__b.snap index 62e0910dd..2ee76561b 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__b.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__b.snap @@ -15,6 +15,7 @@ expression: actual "raw": "1", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -27,9 +28,11 @@ expression: actual "raw": "2", "start": 2, "end": 3, + "moduleId": 0, "commentStart": 2 }, "start": 0, "end": 3, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__c.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__c.snap index e069a6ca8..6ee483874 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__c.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__c.snap @@ -15,6 +15,7 @@ expression: actual "raw": "1", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -27,9 +28,11 @@ expression: actual "raw": "2", "start": 3, "end": 4, + "moduleId": 0, "commentStart": 3 }, "start": 0, "end": 4, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__d.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__d.snap index 0e459c97b..d0e4a7911 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__d.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__d.snap @@ -15,6 +15,7 @@ expression: actual "raw": "1", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -31,6 +32,7 @@ expression: actual "raw": "2", "start": 4, "end": 5, + "moduleId": 0, "commentStart": 4 }, "right": { @@ -43,13 +45,16 @@ expression: actual "raw": "3", "start": 8, "end": 9, + "moduleId": 0, "commentStart": 8 }, "start": 4, "end": 9, + "moduleId": 0, "commentStart": 4 }, "start": 0, "end": 9, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__e.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__e.snap index 1df258a5a..905b00d89 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__e.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__e.snap @@ -15,6 +15,7 @@ expression: actual "raw": "1", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -31,6 +32,7 @@ expression: actual "raw": "2", "start": 6, "end": 7, + "moduleId": 0, "commentStart": 6 }, "right": { @@ -43,13 +45,16 @@ expression: actual "raw": "3", "start": 10, "end": 11, + "moduleId": 0, "commentStart": 10 }, "start": 6, "end": 11, + "moduleId": 0, "commentStart": 6 }, "start": 0, "end": 11, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__f.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__f.snap index a3aa98e75..a0d2b028c 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__f.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__f.snap @@ -19,6 +19,7 @@ expression: actual "raw": "1", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -35,6 +36,7 @@ expression: actual "raw": "2", "start": 6, "end": 7, + "moduleId": 0, "commentStart": 6 }, "right": { @@ -47,14 +49,17 @@ expression: actual "raw": "3", "start": 10, "end": 11, + "moduleId": 0, "commentStart": 10 }, "start": 6, "end": 11, + "moduleId": 0, "commentStart": 6 }, "start": 0, "end": 11, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -67,9 +72,11 @@ expression: actual "raw": "4", "start": 16, "end": 17, + "moduleId": 0, "commentStart": 16 }, "start": 0, "end": 17, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__g.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__g.snap index 74952a337..d9d26b9a3 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__g.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__g.snap @@ -15,6 +15,7 @@ expression: actual "raw": "1", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -35,6 +36,7 @@ expression: actual "raw": "2", "start": 6, "end": 7, + "moduleId": 0, "commentStart": 6 }, "right": { @@ -47,10 +49,12 @@ expression: actual "raw": "3", "start": 10, "end": 11, + "moduleId": 0, "commentStart": 10 }, "start": 6, "end": 11, + "moduleId": 0, "commentStart": 6 }, "right": { @@ -63,13 +67,16 @@ expression: actual "raw": "4", "start": 16, "end": 17, + "moduleId": 0, "commentStart": 16 }, "start": 6, "end": 17, + "moduleId": 0, "commentStart": 6 }, "start": 0, "end": 17, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__h.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__h.snap index fafe93815..6b4d79a0a 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__h.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__h.snap @@ -15,6 +15,7 @@ expression: actual "raw": "1", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -39,6 +40,7 @@ expression: actual "raw": "2", "start": 7, "end": 8, + "moduleId": 0, "commentStart": 7 }, "right": { @@ -51,10 +53,12 @@ expression: actual "raw": "3", "start": 11, "end": 12, + "moduleId": 0, "commentStart": 11 }, "start": 7, "end": 12, + "moduleId": 0, "commentStart": 7 }, "right": { @@ -67,10 +71,12 @@ expression: actual "raw": "4", "start": 17, "end": 18, + "moduleId": 0, "commentStart": 17 }, "start": 7, "end": 18, + "moduleId": 0, "commentStart": 7 }, "right": { @@ -83,13 +89,16 @@ expression: actual "raw": "5", "start": 21, "end": 22, + "moduleId": 0, "commentStart": 21 }, "start": 7, "end": 22, + "moduleId": 0, "commentStart": 7 }, "start": 0, "end": 22, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__i.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__i.snap index f7256a88c..0462dedf5 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__i.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__i.snap @@ -15,6 +15,7 @@ expression: actual "raw": "1", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -31,6 +32,7 @@ expression: actual "raw": "2", "start": 8, "end": 9, + "moduleId": 0, "commentStart": 8 }, "right": { @@ -43,13 +45,16 @@ expression: actual "raw": "3", "start": 12, "end": 13, + "moduleId": 0, "commentStart": 12 }, "start": 8, "end": 13, + "moduleId": 0, "commentStart": 8 }, "start": 0, "end": 13, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__j.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__j.snap index 765ac32fa..065030062 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__j.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__j.snap @@ -25,12 +25,14 @@ expression: actual "name": "distance", "start": 0, "end": 8, + "moduleId": 0, "commentStart": 0 }, "path": [], "abs_path": false, "start": 0, "end": 8, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -41,16 +43,19 @@ expression: actual "name": "p", "start": 11, "end": 12, + "moduleId": 0, "commentStart": 11 }, "path": [], "abs_path": false, "start": 11, "end": 12, + "moduleId": 0, "commentStart": 11 }, "start": 0, "end": 12, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -61,16 +66,19 @@ expression: actual "name": "FOS", "start": 15, "end": 18, + "moduleId": 0, "commentStart": 15 }, "path": [], "abs_path": false, "start": 15, "end": 18, + "moduleId": 0, "commentStart": 15 }, "start": 0, "end": 18, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -83,10 +91,12 @@ expression: actual "raw": "6", "start": 21, "end": 22, + "moduleId": 0, "commentStart": 21 }, "start": 0, "end": 22, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -101,12 +111,14 @@ expression: actual "name": "sigmaAllow", "start": 26, "end": 36, + "moduleId": 0, "commentStart": 26 }, "path": [], "abs_path": false, "start": 26, "end": 36, + "moduleId": 0, "commentStart": 26 }, "right": { @@ -117,19 +129,23 @@ expression: actual "name": "width", "start": 39, "end": 44, + "moduleId": 0, "commentStart": 39 }, "path": [], "abs_path": false, "start": 39, "end": 44, + "moduleId": 0, "commentStart": 39 }, "start": 26, "end": 44, + "moduleId": 0, "commentStart": 26 }, "start": 0, "end": 44, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__k.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__k.snap index 975062334..2ae59bada 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__k.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_math_tests__k.snap @@ -15,6 +15,7 @@ expression: actual "raw": "2", "start": 0, "end": 1, + "moduleId": 0, "commentStart": 0 }, "right": { @@ -27,9 +28,11 @@ expression: actual "raw": "3", "start": 7, "end": 8, + "moduleId": 0, "commentStart": 7 }, "start": 0, "end": 8, + "moduleId": 0, "commentStart": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__a.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__a.snap index adae7a13a..c7418b56e 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__a.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__a.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 9, + "moduleId": 0, "name": "boxSketch", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 12, "end": 25, + "moduleId": 0, "name": { "commentStart": 12, "end": 25, + "moduleId": 0, "name": "startSketchOn", "start": 12, "type": "Identifier" @@ -36,6 +40,7 @@ expression: actual }, "commentStart": 12, "end": 29, + "moduleId": 0, "start": 12, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 26, "end": 28, + "moduleId": 0, "name": { "commentStart": 26, "end": 28, + "moduleId": 0, "name": "XY", "start": 26, "type": "Identifier" @@ -63,6 +70,7 @@ expression: actual "label": { "commentStart": 52, "end": 54, + "moduleId": 0, "name": "at", "start": 52, "type": "Identifier" @@ -73,6 +81,7 @@ expression: actual { "commentStart": 58, "end": 59, + "moduleId": 0, "raw": "0", "start": 58, "type": "Literal", @@ -85,6 +94,7 @@ expression: actual { "commentStart": 61, "end": 62, + "moduleId": 0, "raw": "0", "start": 61, "type": "Literal", @@ -96,6 +106,7 @@ expression: actual } ], "end": 63, + "moduleId": 0, "start": 57, "type": "ArrayExpression", "type": "ArrayExpression" @@ -106,9 +117,11 @@ expression: actual "abs_path": false, "commentStart": 37, "end": 51, + "moduleId": 0, "name": { "commentStart": 37, "end": 51, + "moduleId": 0, "name": "startProfileAt", "start": 37, "type": "Identifier" @@ -119,6 +132,7 @@ expression: actual }, "commentStart": 37, "end": 64, + "moduleId": 0, "start": 37, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -131,6 +145,7 @@ expression: actual "label": { "commentStart": 77, "end": 79, + "moduleId": 0, "name": "at", "start": 77, "type": "Identifier" @@ -141,6 +156,7 @@ expression: actual { "commentStart": 83, "end": 84, + "moduleId": 0, "raw": "0", "start": 83, "type": "Literal", @@ -153,6 +169,7 @@ expression: actual { "commentStart": 86, "end": 88, + "moduleId": 0, "raw": "10", "start": 86, "type": "Literal", @@ -164,6 +181,7 @@ expression: actual } ], "end": 89, + "moduleId": 0, "start": 82, "type": "ArrayExpression", "type": "ArrayExpression" @@ -174,9 +192,11 @@ expression: actual "abs_path": false, "commentStart": 72, "end": 76, + "moduleId": 0, "name": { "commentStart": 72, "end": 76, + "moduleId": 0, "name": "line", "start": 72, "type": "Identifier" @@ -187,6 +207,7 @@ expression: actual }, "commentStart": 72, "end": 90, + "moduleId": 0, "start": 72, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -199,6 +220,7 @@ expression: actual "label": { "commentStart": 112, "end": 115, + "moduleId": 0, "name": "end", "start": 112, "type": "Identifier" @@ -210,6 +232,7 @@ expression: actual "argument": { "commentStart": 120, "end": 121, + "moduleId": 0, "raw": "5", "start": 120, "type": "Literal", @@ -221,6 +244,7 @@ expression: actual }, "commentStart": 119, "end": 121, + "moduleId": 0, "operator": "-", "start": 119, "type": "UnaryExpression", @@ -229,6 +253,7 @@ expression: actual { "commentStart": 123, "end": 124, + "moduleId": 0, "raw": "5", "start": 123, "type": "Literal", @@ -240,6 +265,7 @@ expression: actual } ], "end": 125, + "moduleId": 0, "start": 118, "type": "ArrayExpression", "type": "ArrayExpression" @@ -250,9 +276,11 @@ expression: actual "abs_path": false, "commentStart": 98, "end": 111, + "moduleId": 0, "name": { "commentStart": 98, "end": 111, + "moduleId": 0, "name": "tangentialArc", "start": 98, "type": "Identifier" @@ -263,6 +291,7 @@ expression: actual }, "commentStart": 98, "end": 126, + "moduleId": 0, "start": 98, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -275,6 +304,7 @@ expression: actual "label": { "commentStart": 139, "end": 141, + "moduleId": 0, "name": "at", "start": 139, "type": "Identifier" @@ -285,6 +315,7 @@ expression: actual { "commentStart": 145, "end": 146, + "moduleId": 0, "raw": "5", "start": 145, "type": "Literal", @@ -298,6 +329,7 @@ expression: actual "argument": { "commentStart": 149, "end": 151, + "moduleId": 0, "raw": "15", "start": 149, "type": "Literal", @@ -309,6 +341,7 @@ expression: actual }, "commentStart": 148, "end": 151, + "moduleId": 0, "operator": "-", "start": 148, "type": "UnaryExpression", @@ -316,6 +349,7 @@ expression: actual } ], "end": 152, + "moduleId": 0, "start": 144, "type": "ArrayExpression", "type": "ArrayExpression" @@ -326,9 +360,11 @@ expression: actual "abs_path": false, "commentStart": 134, "end": 138, + "moduleId": 0, "name": { "commentStart": 134, "end": 138, + "moduleId": 0, "name": "line", "start": 134, "type": "Identifier" @@ -339,6 +375,7 @@ expression: actual }, "commentStart": 134, "end": 153, + "moduleId": 0, "start": 134, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -351,6 +388,7 @@ expression: actual "label": { "commentStart": 169, "end": 175, + "moduleId": 0, "name": "length", "start": 169, "type": "Identifier" @@ -358,6 +396,7 @@ expression: actual "arg": { "commentStart": 176, "end": 178, + "moduleId": 0, "raw": "10", "start": 176, "type": "Literal", @@ -373,9 +412,11 @@ expression: actual "abs_path": false, "commentStart": 161, "end": 168, + "moduleId": 0, "name": { "commentStart": 161, "end": 168, + "moduleId": 0, "name": "extrude", "start": 161, "type": "Identifier" @@ -386,6 +427,7 @@ expression: actual }, "commentStart": 161, "end": 179, + "moduleId": 0, "start": 161, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -394,15 +436,18 @@ expression: actual ], "commentStart": 12, "end": 179, + "moduleId": 0, "start": 12, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 179, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -410,5 +455,6 @@ expression: actual ], "commentStart": 0, "end": 180, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aa.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aa.snap index e9d18d019..87a8e9eb6 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aa.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aa.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 2, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -21,9 +22,11 @@ expression: actual "abs_path": false, "commentStart": 6, "end": 11, + "moduleId": 0, "name": { "commentStart": 6, "end": 11, + "moduleId": 0, "name": "scale", "start": 6, "type": "Identifier" @@ -35,16 +38,19 @@ expression: actual }, "commentStart": 5, "end": 11, + "moduleId": 0, "operator": "-", "start": 5, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 11, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -52,5 +58,6 @@ expression: actual ], "commentStart": 0, "end": 11, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ab.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ab.snap index 6547fc9dd..355df02fd 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ab.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ab.snap @@ -14,6 +14,7 @@ expression: actual "label": { "commentStart": 5, "end": 16, + "moduleId": 0, "name": "endAbsolute", "start": 5, "type": "Identifier" @@ -24,6 +25,7 @@ expression: actual { "commentStart": 20, "end": 21, + "moduleId": 0, "raw": "0", "start": 20, "type": "Literal", @@ -37,6 +39,7 @@ expression: actual "argument": { "commentStart": 24, "end": 25, + "moduleId": 0, "raw": "1", "start": 24, "type": "Literal", @@ -48,6 +51,7 @@ expression: actual }, "commentStart": 23, "end": 25, + "moduleId": 0, "operator": "-", "start": 23, "type": "UnaryExpression", @@ -55,6 +59,7 @@ expression: actual } ], "end": 26, + "moduleId": 0, "start": 19, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65,9 +70,11 @@ expression: actual "abs_path": false, "commentStart": 0, "end": 4, + "moduleId": 0, "name": { "commentStart": 0, "end": 4, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -78,11 +85,13 @@ expression: actual }, "commentStart": 0, "end": 27, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -90,5 +99,6 @@ expression: actual ], "commentStart": 0, "end": 27, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ad.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ad.snap index fb4260fb3..08afb454f 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ad.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ad.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 8, "end": 24, + "moduleId": 0, "name": "firstPrimeNumber", "start": 8, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "argument": { "commentStart": 44, "end": 45, + "moduleId": 0, "raw": "2", "start": 44, "type": "Literal", @@ -34,6 +36,7 @@ expression: actual }, "commentStart": 37, "end": 45, + "moduleId": 0, "start": 37, "type": "ReturnStatement", "type": "ReturnStatement" @@ -41,20 +44,24 @@ expression: actual ], "commentStart": 27, "end": 51, + "moduleId": 0, "start": 27 }, "commentStart": 24, "end": 51, + "moduleId": 0, "params": [], "start": 24, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 8, "type": "VariableDeclarator" }, "end": 51, "kind": "fn", + "moduleId": 0, "start": 5, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -63,13 +70,16 @@ expression: actual "commentStart": 56, "end": 74, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 56, "end": 72, + "moduleId": 0, "name": { "commentStart": 56, "end": 72, + "moduleId": 0, "name": "firstPrimeNumber", "start": 56, "type": "Identifier" @@ -80,11 +90,13 @@ expression: actual }, "commentStart": 56, "end": 74, + "moduleId": 0, "start": 56, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 56, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -92,5 +104,6 @@ expression: actual ], "commentStart": 0, "end": 74, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ae.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ae.snap index 2e585988f..fd9275284 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ae.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ae.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 3, "end": 8, + "moduleId": 0, "name": "thing", "start": 3, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "argument": { "commentStart": 33, "end": 37, + "moduleId": 0, "raw": "true", "start": 33, "type": "Literal", @@ -31,6 +33,7 @@ expression: actual }, "commentStart": 26, "end": 37, + "moduleId": 0, "start": 26, "type": "ReturnStatement", "type": "ReturnStatement" @@ -38,16 +41,19 @@ expression: actual ], "commentStart": 16, "end": 43, + "moduleId": 0, "start": 16 }, "commentStart": 8, "end": 43, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 9, "end": 14, + "moduleId": 0, "name": "param", "start": 9, "type": "Identifier" @@ -58,11 +64,13 @@ expression: actual "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 3, "type": "VariableDeclarator" }, "end": 43, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -71,13 +79,16 @@ expression: actual "commentStart": 48, "end": 60, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 48, "end": 53, + "moduleId": 0, "name": { "commentStart": 48, "end": 53, + "moduleId": 0, "name": "thing", "start": 48, "type": "Identifier" @@ -88,12 +99,14 @@ expression: actual }, "commentStart": 48, "end": 60, + "moduleId": 0, "start": 48, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 54, "end": 59, + "moduleId": 0, "raw": "false", "start": 54, "type": "Literal", @@ -101,6 +114,7 @@ expression: actual "value": false } }, + "moduleId": 0, "start": 48, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -108,5 +122,6 @@ expression: actual ], "commentStart": 0, "end": 60, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__af.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__af.snap index 5d10eba57..94e99a4c1 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__af.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__af.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 8, + "moduleId": 0, "name": "mySketch", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 11, "end": 24, + "moduleId": 0, "name": { "commentStart": 11, "end": 24, + "moduleId": 0, "name": "startSketchOn", "start": 11, "type": "Identifier" @@ -36,6 +40,7 @@ expression: actual }, "commentStart": 11, "end": 28, + "moduleId": 0, "start": 11, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 25, "end": 27, + "moduleId": 0, "name": { "commentStart": 25, "end": 27, + "moduleId": 0, "name": "XY", "start": 25, "type": "Identifier" @@ -63,6 +70,7 @@ expression: actual "label": { "commentStart": 53, "end": 55, + "moduleId": 0, "name": "at", "start": 53, "type": "Identifier" @@ -73,6 +81,7 @@ expression: actual { "commentStart": 59, "end": 60, + "moduleId": 0, "raw": "0", "start": 59, "type": "Literal", @@ -85,6 +94,7 @@ expression: actual { "commentStart": 61, "end": 62, + "moduleId": 0, "raw": "0", "start": 61, "type": "Literal", @@ -96,6 +106,7 @@ expression: actual } ], "end": 63, + "moduleId": 0, "start": 58, "type": "ArrayExpression", "type": "ArrayExpression" @@ -106,9 +117,11 @@ expression: actual "abs_path": false, "commentStart": 40, "end": 52, + "moduleId": 0, "name": { "commentStart": 40, "end": 52, + "moduleId": 0, "name": "startProfile", "start": 40, "type": "Identifier" @@ -119,6 +132,7 @@ expression: actual }, "commentStart": 40, "end": 64, + "moduleId": 0, "start": 40, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -131,6 +145,7 @@ expression: actual "label": { "commentStart": 81, "end": 92, + "moduleId": 0, "name": "endAbsolute", "start": 81, "type": "Identifier" @@ -141,6 +156,7 @@ expression: actual { "commentStart": 96, "end": 97, + "moduleId": 0, "raw": "0", "start": 96, "type": "Literal", @@ -153,6 +169,7 @@ expression: actual { "commentStart": 99, "end": 100, + "moduleId": 0, "raw": "1", "start": 99, "type": "Literal", @@ -164,6 +181,7 @@ expression: actual } ], "end": 101, + "moduleId": 0, "start": 95, "type": "ArrayExpression", "type": "ArrayExpression" @@ -174,6 +192,7 @@ expression: actual "label": { "commentStart": 103, "end": 106, + "moduleId": 0, "name": "tag", "start": 103, "type": "Identifier" @@ -181,6 +200,7 @@ expression: actual "arg": { "commentStart": 109, "end": 116, + "moduleId": 0, "start": 109, "type": "TagDeclarator", "type": "TagDeclarator", @@ -192,9 +212,11 @@ expression: actual "abs_path": false, "commentStart": 76, "end": 80, + "moduleId": 0, "name": { "commentStart": 76, "end": 80, + "moduleId": 0, "name": "line", "start": 76, "type": "Identifier" @@ -205,6 +227,7 @@ expression: actual }, "commentStart": 76, "end": 117, + "moduleId": 0, "start": 76, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -217,6 +240,7 @@ expression: actual "label": { "commentStart": 134, "end": 145, + "moduleId": 0, "name": "endAbsolute", "start": 134, "type": "Identifier" @@ -227,6 +251,7 @@ expression: actual { "commentStart": 149, "end": 150, + "moduleId": 0, "raw": "1", "start": 149, "type": "Literal", @@ -239,6 +264,7 @@ expression: actual { "commentStart": 152, "end": 153, + "moduleId": 0, "raw": "1", "start": 152, "type": "Literal", @@ -250,6 +276,7 @@ expression: actual } ], "end": 154, + "moduleId": 0, "start": 148, "type": "ArrayExpression", "type": "ArrayExpression" @@ -260,9 +287,11 @@ expression: actual "abs_path": false, "commentStart": 129, "end": 133, + "moduleId": 0, "name": { "commentStart": 129, "end": 133, + "moduleId": 0, "name": "line", "start": 129, "type": "Identifier" @@ -273,6 +302,7 @@ expression: actual }, "commentStart": 129, "end": 155, + "moduleId": 0, "start": 129, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -285,6 +315,7 @@ expression: actual "label": { "commentStart": 172, "end": 183, + "moduleId": 0, "name": "endAbsolute", "start": 172, "type": "Identifier" @@ -295,6 +326,7 @@ expression: actual { "commentStart": 187, "end": 188, + "moduleId": 0, "raw": "1", "start": 187, "type": "Literal", @@ -307,6 +339,7 @@ expression: actual { "commentStart": 190, "end": 191, + "moduleId": 0, "raw": "0", "start": 190, "type": "Literal", @@ -318,6 +351,7 @@ expression: actual } ], "end": 192, + "moduleId": 0, "start": 186, "type": "ArrayExpression", "type": "ArrayExpression" @@ -328,6 +362,7 @@ expression: actual "label": { "commentStart": 194, "end": 197, + "moduleId": 0, "name": "tag", "start": 194, "type": "Identifier" @@ -335,6 +370,7 @@ expression: actual "arg": { "commentStart": 200, "end": 210, + "moduleId": 0, "start": 200, "type": "TagDeclarator", "type": "TagDeclarator", @@ -346,9 +382,11 @@ expression: actual "abs_path": false, "commentStart": 167, "end": 171, + "moduleId": 0, "name": { "commentStart": 167, "end": 171, + "moduleId": 0, "name": "line", "start": 167, "type": "Identifier" @@ -359,19 +397,23 @@ expression: actual }, "commentStart": 167, "end": 211, + "moduleId": 0, "start": 167, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 223, "end": 228, + "moduleId": 0, "name": { "commentStart": 223, "end": 228, + "moduleId": 0, "name": "close", "start": 223, "type": "Identifier" @@ -382,6 +424,7 @@ expression: actual }, "commentStart": 223, "end": 230, + "moduleId": 0, "start": 223, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -390,15 +433,18 @@ expression: actual ], "commentStart": 11, "end": 230, + "moduleId": 0, "start": 11, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 230, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -406,5 +452,6 @@ expression: actual ], "commentStart": 0, "end": 230, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ag.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ag.snap index 51bca9ec9..d48352201 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ag.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ag.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 8, + "moduleId": 0, "name": "mySketch", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 11, "end": 24, + "moduleId": 0, "name": { "commentStart": 11, "end": 24, + "moduleId": 0, "name": "startSketchOn", "start": 11, "type": "Identifier" @@ -36,6 +40,7 @@ expression: actual }, "commentStart": 11, "end": 28, + "moduleId": 0, "start": 11, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 25, "end": 27, + "moduleId": 0, "name": { "commentStart": 25, "end": 27, + "moduleId": 0, "name": "XY", "start": 25, "type": "Identifier" @@ -63,6 +70,7 @@ expression: actual "label": { "commentStart": 45, "end": 47, + "moduleId": 0, "name": "at", "start": 45, "type": "Identifier" @@ -73,6 +81,7 @@ expression: actual { "commentStart": 51, "end": 52, + "moduleId": 0, "raw": "0", "start": 51, "type": "Literal", @@ -85,6 +94,7 @@ expression: actual { "commentStart": 53, "end": 54, + "moduleId": 0, "raw": "0", "start": 53, "type": "Literal", @@ -96,6 +106,7 @@ expression: actual } ], "end": 55, + "moduleId": 0, "start": 50, "type": "ArrayExpression", "type": "ArrayExpression" @@ -106,9 +117,11 @@ expression: actual "abs_path": false, "commentStart": 32, "end": 44, + "moduleId": 0, "name": { "commentStart": 32, "end": 44, + "moduleId": 0, "name": "startProfile", "start": 32, "type": "Identifier" @@ -119,6 +132,7 @@ expression: actual }, "commentStart": 32, "end": 56, + "moduleId": 0, "start": 32, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -131,6 +145,7 @@ expression: actual "label": { "commentStart": 65, "end": 76, + "moduleId": 0, "name": "endAbsolute", "start": 65, "type": "Identifier" @@ -141,6 +156,7 @@ expression: actual { "commentStart": 80, "end": 81, + "moduleId": 0, "raw": "1", "start": 80, "type": "Literal", @@ -153,6 +169,7 @@ expression: actual { "commentStart": 83, "end": 84, + "moduleId": 0, "raw": "1", "start": 83, "type": "Literal", @@ -164,6 +181,7 @@ expression: actual } ], "end": 85, + "moduleId": 0, "start": 79, "type": "ArrayExpression", "type": "ArrayExpression" @@ -174,9 +192,11 @@ expression: actual "abs_path": false, "commentStart": 60, "end": 64, + "moduleId": 0, "name": { "commentStart": 60, "end": 64, + "moduleId": 0, "name": "line", "start": 60, "type": "Identifier" @@ -187,19 +207,23 @@ expression: actual }, "commentStart": 60, "end": 86, + "moduleId": 0, "start": 60, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 90, "end": 95, + "moduleId": 0, "name": { "commentStart": 90, "end": 95, + "moduleId": 0, "name": "close", "start": 90, "type": "Identifier" @@ -210,6 +234,7 @@ expression: actual }, "commentStart": 90, "end": 97, + "moduleId": 0, "start": 90, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -218,15 +243,18 @@ expression: actual ], "commentStart": 11, "end": 97, + "moduleId": 0, "start": 11, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 97, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -234,5 +262,6 @@ expression: actual ], "commentStart": 0, "end": 97, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ah.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ah.snap index af6c4ca15..750fe14d7 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ah.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ah.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 5, + "moduleId": 0, "name": "myBox", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 8, "end": 21, + "moduleId": 0, "name": { "commentStart": 8, "end": 21, + "moduleId": 0, "name": "startSketchOn", "start": 8, "type": "Identifier" @@ -36,6 +40,7 @@ expression: actual }, "commentStart": 8, "end": 25, + "moduleId": 0, "start": 8, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 22, "end": 24, + "moduleId": 0, "name": { "commentStart": 22, "end": 24, + "moduleId": 0, "name": "XY", "start": 22, "type": "Identifier" @@ -63,6 +70,7 @@ expression: actual "label": { "commentStart": 42, "end": 44, + "moduleId": 0, "name": "at", "start": 42, "type": "Identifier" @@ -71,9 +79,11 @@ expression: actual "abs_path": false, "commentStart": 47, "end": 48, + "moduleId": 0, "name": { "commentStart": 47, "end": 48, + "moduleId": 0, "name": "p", "start": 47, "type": "Identifier" @@ -89,9 +99,11 @@ expression: actual "abs_path": false, "commentStart": 29, "end": 41, + "moduleId": 0, "name": { "commentStart": 29, "end": 41, + "moduleId": 0, "name": "startProfile", "start": 29, "type": "Identifier" @@ -102,6 +114,7 @@ expression: actual }, "commentStart": 29, "end": 49, + "moduleId": 0, "start": 29, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -110,15 +123,18 @@ expression: actual ], "commentStart": 8, "end": 49, + "moduleId": 0, "start": 8, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 49, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -126,5 +142,6 @@ expression: actual ], "commentStart": 0, "end": 49, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ai.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ai.snap index 71c2f5ebb..3730adfce 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ai.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ai.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 5, + "moduleId": 0, "name": "myBox", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 8, "end": 9, + "moduleId": 0, "name": { "commentStart": 8, "end": 9, + "moduleId": 0, "name": "f", "start": 8, "type": "Identifier" @@ -36,12 +40,14 @@ expression: actual }, "commentStart": 8, "end": 12, + "moduleId": 0, "start": 8, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 10, "end": 11, + "moduleId": 0, "raw": "1", "start": 10, "type": "Literal", @@ -53,13 +59,16 @@ expression: actual } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 16, "end": 17, + "moduleId": 0, "name": { "commentStart": 16, "end": 17, + "moduleId": 0, "name": "g", "start": 16, "type": "Identifier" @@ -70,12 +79,14 @@ expression: actual }, "commentStart": 16, "end": 20, + "moduleId": 0, "start": 16, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 18, "end": 19, + "moduleId": 0, "raw": "2", "start": 18, "type": "Literal", @@ -89,15 +100,18 @@ expression: actual ], "commentStart": 8, "end": 20, + "moduleId": 0, "start": 8, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 20, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -105,5 +119,6 @@ expression: actual ], "commentStart": 0, "end": 20, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aj.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aj.snap index 5eb974579..58cfee675 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aj.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aj.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 5, + "moduleId": 0, "name": "myBox", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 8, "end": 21, + "moduleId": 0, "name": { "commentStart": 8, "end": 21, + "moduleId": 0, "name": "startSketchOn", "start": 8, "type": "Identifier" @@ -36,6 +40,7 @@ expression: actual }, "commentStart": 8, "end": 25, + "moduleId": 0, "start": 8, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 22, "end": 24, + "moduleId": 0, "name": { "commentStart": 22, "end": 24, + "moduleId": 0, "name": "XY", "start": 22, "type": "Identifier" @@ -63,6 +70,7 @@ expression: actual "label": { "commentStart": 42, "end": 44, + "moduleId": 0, "name": "at", "start": 42, "type": "Identifier" @@ -71,9 +79,11 @@ expression: actual "abs_path": false, "commentStart": 47, "end": 48, + "moduleId": 0, "name": { "commentStart": 47, "end": 48, + "moduleId": 0, "name": "p", "start": 47, "type": "Identifier" @@ -89,9 +99,11 @@ expression: actual "abs_path": false, "commentStart": 29, "end": 41, + "moduleId": 0, "name": { "commentStart": 29, "end": 41, + "moduleId": 0, "name": "startProfile", "start": 29, "type": "Identifier" @@ -102,6 +114,7 @@ expression: actual }, "commentStart": 29, "end": 49, + "moduleId": 0, "start": 29, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -114,6 +127,7 @@ expression: actual "label": { "commentStart": 58, "end": 61, + "moduleId": 0, "name": "end", "start": 58, "type": "Identifier" @@ -124,6 +138,7 @@ expression: actual { "commentStart": 65, "end": 66, + "moduleId": 0, "raw": "0", "start": 65, "type": "Literal", @@ -137,9 +152,11 @@ expression: actual "abs_path": false, "commentStart": 68, "end": 69, + "moduleId": 0, "name": { "commentStart": 68, "end": 69, + "moduleId": 0, "name": "l", "start": 68, "type": "Identifier" @@ -151,6 +168,7 @@ expression: actual } ], "end": 70, + "moduleId": 0, "start": 64, "type": "ArrayExpression", "type": "ArrayExpression" @@ -161,9 +179,11 @@ expression: actual "abs_path": false, "commentStart": 53, "end": 57, + "moduleId": 0, "name": { "commentStart": 53, "end": 57, + "moduleId": 0, "name": "line", "start": 53, "type": "Identifier" @@ -174,6 +194,7 @@ expression: actual }, "commentStart": 53, "end": 71, + "moduleId": 0, "start": 53, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -182,15 +203,18 @@ expression: actual ], "commentStart": 8, "end": 71, + "moduleId": 0, "start": 8, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 71, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -198,5 +222,6 @@ expression: actual ], "commentStart": 0, "end": 71, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ak.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ak.snap index 509b56777..f44b4d4d6 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ak.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ak.snap @@ -14,6 +14,7 @@ expression: actual "label": { "commentStart": 5, "end": 16, + "moduleId": 0, "name": "endAbsolute", "start": 5, "type": "Identifier" @@ -24,6 +25,7 @@ expression: actual { "commentStart": 20, "end": 21, + "moduleId": 0, "raw": "0", "start": 20, "type": "Literal", @@ -36,6 +38,7 @@ expression: actual { "commentStart": 23, "end": 24, + "moduleId": 0, "raw": "1", "start": 23, "type": "Literal", @@ -47,6 +50,7 @@ expression: actual } ], "end": 25, + "moduleId": 0, "start": 19, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57,9 +61,11 @@ expression: actual "abs_path": false, "commentStart": 0, "end": 4, + "moduleId": 0, "name": { "commentStart": 0, "end": 4, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70,11 +76,13 @@ expression: actual }, "commentStart": 0, "end": 26, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -82,5 +90,6 @@ expression: actual ], "commentStart": 0, "end": 26, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ap.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ap.snap index d07790a28..993c5f5f2 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ap.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ap.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 8, + "moduleId": 0, "name": "mySketch", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 11, "end": 24, + "moduleId": 0, "name": { "commentStart": 11, "end": 24, + "moduleId": 0, "name": "startSketchOn", "start": 11, "type": "Identifier" @@ -36,6 +40,7 @@ expression: actual }, "commentStart": 11, "end": 28, + "moduleId": 0, "start": 11, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 25, "end": 27, + "moduleId": 0, "name": { "commentStart": 25, "end": 27, + "moduleId": 0, "name": "XY", "start": 25, "type": "Identifier" @@ -63,6 +70,7 @@ expression: actual "label": { "commentStart": 45, "end": 47, + "moduleId": 0, "name": "at", "start": 45, "type": "Identifier" @@ -73,6 +81,7 @@ expression: actual { "commentStart": 51, "end": 52, + "moduleId": 0, "raw": "0", "start": 51, "type": "Literal", @@ -85,6 +94,7 @@ expression: actual { "commentStart": 53, "end": 54, + "moduleId": 0, "raw": "0", "start": 53, "type": "Literal", @@ -96,6 +106,7 @@ expression: actual } ], "end": 55, + "moduleId": 0, "start": 50, "type": "ArrayExpression", "type": "ArrayExpression" @@ -106,9 +117,11 @@ expression: actual "abs_path": false, "commentStart": 32, "end": 44, + "moduleId": 0, "name": { "commentStart": 32, "end": 44, + "moduleId": 0, "name": "startProfile", "start": 32, "type": "Identifier" @@ -119,6 +132,7 @@ expression: actual }, "commentStart": 32, "end": 56, + "moduleId": 0, "start": 32, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -127,15 +141,18 @@ expression: actual ], "commentStart": 11, "end": 56, + "moduleId": 0, "start": 11, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 56, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -143,5 +160,6 @@ expression: actual ], "commentStart": 0, "end": 56, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aq.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aq.snap index e6c992d7a..be5029a8d 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aq.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aq.snap @@ -14,6 +14,7 @@ expression: actual "label": { "commentStart": 4, "end": 10, + "moduleId": 0, "name": "number", "start": 4, "type": "Identifier" @@ -21,6 +22,7 @@ expression: actual "arg": { "commentStart": 13, "end": 14, + "moduleId": 0, "raw": "5", "start": 13, "type": "Literal", @@ -36,6 +38,7 @@ expression: actual "label": { "commentStart": 16, "end": 19, + "moduleId": 0, "name": "msg", "start": 16, "type": "Identifier" @@ -43,6 +46,7 @@ expression: actual "arg": { "commentStart": 22, "end": 29, + "moduleId": 0, "raw": "\"hello\"", "start": 22, "type": "Literal", @@ -55,6 +59,7 @@ expression: actual "label": { "commentStart": 31, "end": 33, + "moduleId": 0, "name": "id", "start": 31, "type": "Identifier" @@ -63,9 +68,11 @@ expression: actual "abs_path": false, "commentStart": 34, "end": 45, + "moduleId": 0, "name": { "commentStart": 34, "end": 45, + "moduleId": 0, "name": "aIdentifier", "start": 34, "type": "Identifier" @@ -81,9 +88,11 @@ expression: actual "abs_path": false, "commentStart": 0, "end": 3, + "moduleId": 0, "name": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "log", "start": 0, "type": "Identifier" @@ -94,11 +103,13 @@ expression: actual }, "commentStart": 0, "end": 46, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -106,5 +117,6 @@ expression: actual ], "commentStart": 0, "end": 46, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ar.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ar.snap index bd9b2059b..0e0ea6271 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ar.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ar.snap @@ -13,6 +13,7 @@ expression: actual "left": { "commentStart": 0, "end": 1, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -22,10 +23,12 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 4, "end": 7, + "moduleId": 0, "raw": "\"a\"", "start": 4, "type": "Literal", @@ -36,6 +39,7 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -43,5 +47,6 @@ expression: actual ], "commentStart": 0, "end": 7, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__array_ranges.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__array_ranges.snap index 4af2ba212..50d431e78 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__array_ranges.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__array_ranges.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 4, + "moduleId": 0, "name": "incl", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ expression: actual "endElement": { "commentStart": 11, "end": 13, + "moduleId": 0, "raw": "10", "start": 11, "type": "Literal", @@ -32,10 +34,12 @@ expression: actual } }, "endInclusive": true, + "moduleId": 0, "start": 7, "startElement": { "commentStart": 8, "end": 9, + "moduleId": 0, "raw": "1", "start": 8, "type": "Literal", @@ -48,11 +52,13 @@ expression: actual "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 14, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -65,6 +71,7 @@ expression: actual "id": { "commentStart": 23, "end": 27, + "moduleId": 0, "name": "excl", "start": 23, "type": "Identifier" @@ -75,6 +82,7 @@ expression: actual "endElement": { "commentStart": 35, "end": 37, + "moduleId": 0, "raw": "10", "start": 35, "type": "Literal", @@ -85,10 +93,12 @@ expression: actual } }, "endInclusive": false, + "moduleId": 0, "start": 30, "startElement": { "commentStart": 31, "end": 32, + "moduleId": 0, "raw": "0", "start": 31, "type": "Literal", @@ -101,11 +111,13 @@ expression: actual "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 23, "type": "VariableDeclarator" }, "end": 38, "kind": "const", + "moduleId": 0, "start": 23, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -113,5 +125,6 @@ expression: actual ], "commentStart": 0, "end": 38, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__at.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__at.snap index 95df117ed..0d2437a48 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__at.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__at.snap @@ -8,13 +8,16 @@ expression: actual "commentStart": 0, "end": 12, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 4, + "moduleId": 0, "name": { "commentStart": 0, "end": 4, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25,6 +28,7 @@ expression: actual }, "commentStart": 0, "end": 12, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34,6 +38,7 @@ expression: actual { "commentStart": 6, "end": 7, + "moduleId": 0, "raw": "0", "start": 6, "type": "Literal", @@ -47,9 +52,11 @@ expression: actual "abs_path": false, "commentStart": 9, "end": 10, + "moduleId": 0, "name": { "commentStart": 9, "end": 10, + "moduleId": 0, "name": "l", "start": 9, "type": "Identifier" @@ -61,11 +68,13 @@ expression: actual } ], "end": 11, + "moduleId": 0, "start": 5, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -73,5 +82,6 @@ expression: actual ], "commentStart": 0, "end": 12, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__au.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__au.snap index 29eb410e4..88ac82027 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__au.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__au.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 8, + "moduleId": 0, "name": "cylinder", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 11, "end": 24, + "moduleId": 0, "name": { "commentStart": 11, "end": 24, + "moduleId": 0, "name": "startSketchOn", "start": 11, "type": "Identifier" @@ -36,6 +40,7 @@ expression: actual }, "commentStart": 11, "end": 28, + "moduleId": 0, "start": 11, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 25, "end": 27, + "moduleId": 0, "name": { "commentStart": 25, "end": 27, + "moduleId": 0, "name": "XY", "start": 25, "type": "Identifier" @@ -63,6 +70,7 @@ expression: actual "label": { "commentStart": 43, "end": 49, + "moduleId": 0, "name": "center", "start": 43, "type": "Identifier" @@ -73,6 +81,7 @@ expression: actual { "commentStart": 52, "end": 53, + "moduleId": 0, "raw": "0", "start": 52, "type": "Literal", @@ -85,6 +94,7 @@ expression: actual { "commentStart": 55, "end": 56, + "moduleId": 0, "raw": "0", "start": 55, "type": "Literal", @@ -96,6 +106,7 @@ expression: actual } ], "end": 57, + "moduleId": 0, "start": 51, "type": "ArrayExpression", "type": "ArrayExpression" @@ -106,6 +117,7 @@ expression: actual "label": { "commentStart": 59, "end": 65, + "moduleId": 0, "name": "radius", "start": 59, "type": "Identifier" @@ -113,6 +125,7 @@ expression: actual "arg": { "commentStart": 67, "end": 69, + "moduleId": 0, "raw": "22", "start": 67, "type": "Literal", @@ -128,9 +141,11 @@ expression: actual "abs_path": false, "commentStart": 36, "end": 42, + "moduleId": 0, "name": { "commentStart": 36, "end": 42, + "moduleId": 0, "name": "circle", "start": 36, "type": "Identifier" @@ -141,6 +156,7 @@ expression: actual }, "commentStart": 36, "end": 70, + "moduleId": 0, "start": 36, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -153,6 +169,7 @@ expression: actual "label": { "commentStart": 86, "end": 92, + "moduleId": 0, "name": "length", "start": 86, "type": "Identifier" @@ -160,6 +177,7 @@ expression: actual "arg": { "commentStart": 95, "end": 97, + "moduleId": 0, "raw": "14", "start": 95, "type": "Literal", @@ -175,9 +193,11 @@ expression: actual "abs_path": false, "commentStart": 78, "end": 85, + "moduleId": 0, "name": { "commentStart": 78, "end": 85, + "moduleId": 0, "name": "extrude", "start": 78, "type": "Identifier" @@ -188,6 +208,7 @@ expression: actual }, "commentStart": 78, "end": 98, + "moduleId": 0, "start": 78, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -196,15 +217,18 @@ expression: actual ], "commentStart": 11, "end": 98, + "moduleId": 0, "start": 11, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 98, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -212,5 +236,6 @@ expression: actual ], "commentStart": 0, "end": 99, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__av.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__av.snap index 36f5156e3..a860c8018 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__av.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__av.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 3, "end": 4, + "moduleId": 0, "name": "f", "start": 3, "type": "Identifier" @@ -27,6 +28,7 @@ expression: actual "label": { "commentStart": 30, "end": 35, + "moduleId": 0, "name": "maybe", "start": 30, "type": "Identifier" @@ -35,9 +37,11 @@ expression: actual "abs_path": false, "commentStart": 36, "end": 41, + "moduleId": 0, "name": { "commentStart": 36, "end": 41, + "moduleId": 0, "name": "angle", "start": 36, "type": "Identifier" @@ -53,6 +57,7 @@ expression: actual "label": { "commentStart": 43, "end": 52, + "moduleId": 0, "name": "otherwise", "start": 43, "type": "Identifier" @@ -60,6 +65,7 @@ expression: actual "arg": { "commentStart": 53, "end": 56, + "moduleId": 0, "raw": "360", "start": 53, "type": "Literal", @@ -75,9 +81,11 @@ expression: actual "abs_path": false, "commentStart": 22, "end": 29, + "moduleId": 0, "name": { "commentStart": 22, "end": 29, + "moduleId": 0, "name": "default", "start": 22, "type": "Identifier" @@ -88,6 +96,7 @@ expression: actual }, "commentStart": 22, "end": 57, + "moduleId": 0, "start": 22, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -95,6 +104,7 @@ expression: actual }, "commentStart": 15, "end": 57, + "moduleId": 0, "start": 15, "type": "ReturnStatement", "type": "ReturnStatement" @@ -102,16 +112,19 @@ expression: actual ], "commentStart": 13, "end": 59, + "moduleId": 0, "start": 13 }, "commentStart": 4, "end": 59, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 5, "end": 10, + "moduleId": 0, "name": "angle", "start": 5, "type": "Identifier" @@ -127,11 +140,13 @@ expression: actual "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 3, "type": "VariableDeclarator" }, "end": 59, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -139,5 +154,6 @@ expression: actual ], "commentStart": 0, "end": 59, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aw.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aw.snap index 4e93db57d..ce901dc4b 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aw.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__aw.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 7, + "moduleId": 0, "name": "numbers", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ expression: actual { "commentStart": 24, "end": 25, + "moduleId": 0, "raw": "1", "start": 24, "type": "Literal", @@ -34,6 +36,7 @@ expression: actual { "commentStart": 75, "end": 76, + "moduleId": 0, "raw": "3", "start": 75, "type": "Literal", @@ -45,12 +48,14 @@ expression: actual } ], "end": 87, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 39, "end": 44, + "moduleId": 0, "start": 39, "type": "NonCodeNode", "value": { @@ -64,6 +69,7 @@ expression: actual { "commentStart": 57, "end": 62, + "moduleId": 0, "start": 57, "type": "NonCodeNode", "value": { @@ -80,11 +86,13 @@ expression: actual "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 87, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,5 +100,6 @@ expression: actual ], "commentStart": 0, "end": 87, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ax.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ax.snap index db5ca0b0b..eb7382a2a 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ax.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ax.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 7, + "moduleId": 0, "name": "numbers", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ expression: actual { "commentStart": 24, "end": 25, + "moduleId": 0, "raw": "1", "start": 24, "type": "Literal", @@ -34,6 +36,7 @@ expression: actual { "commentStart": 39, "end": 40, + "moduleId": 0, "raw": "2", "start": 39, "type": "Literal", @@ -45,12 +48,14 @@ expression: actual } ], "end": 87, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 54, "end": 59, + "moduleId": 0, "start": 54, "type": "NonCodeNode", "value": { @@ -64,6 +69,7 @@ expression: actual { "commentStart": 72, "end": 77, + "moduleId": 0, "start": 72, "type": "NonCodeNode", "value": { @@ -80,11 +86,13 @@ expression: actual "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 87, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,5 +100,6 @@ expression: actual ], "commentStart": 0, "end": 87, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ay.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ay.snap index 7d1ff6809..72d2631e0 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ay.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__ay.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 4, "end": 9, + "moduleId": 0, "name": "props", "start": 4, "type": "Identifier" @@ -19,12 +20,14 @@ expression: actual "init": { "commentStart": 12, "end": 80, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 44, "end": 52, + "moduleId": 0, "start": 44, "type": "NonCodeNode", "value": { @@ -44,15 +47,18 @@ expression: actual "key": { "commentStart": 26, "end": 27, + "moduleId": 0, "name": "a", "start": 26, "type": "Identifier" }, + "moduleId": 0, "start": 26, "type": "ObjectProperty", "value": { "commentStart": 29, "end": 30, + "moduleId": 0, "raw": "1", "start": 29, "type": "Literal", @@ -69,15 +75,18 @@ expression: actual "key": { "commentStart": 65, "end": 66, + "moduleId": 0, "name": "c", "start": 65, "type": "Identifier" }, + "moduleId": 0, "start": 65, "type": "ObjectProperty", "value": { "commentStart": 68, "end": 69, + "moduleId": 0, "raw": "3", "start": 68, "type": "Literal", @@ -93,11 +102,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 4, "type": "VariableDeclarator" }, "end": 80, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -105,5 +116,6 @@ expression: actual ], "commentStart": 0, "end": 80, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__az.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__az.snap index 47f160589..2bfe270a1 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__az.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__az.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 5, + "moduleId": 0, "name": "props", "start": 0, "type": "Identifier" @@ -19,12 +20,14 @@ expression: actual "init": { "commentStart": 8, "end": 75, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 40, "end": 48, + "moduleId": 0, "start": 40, "type": "NonCodeNode", "value": { @@ -44,15 +47,18 @@ expression: actual "key": { "commentStart": 22, "end": 23, + "moduleId": 0, "name": "a", "start": 22, "type": "Identifier" }, + "moduleId": 0, "start": 22, "type": "ObjectProperty", "value": { "commentStart": 25, "end": 26, + "moduleId": 0, "raw": "1", "start": 25, "type": "Literal", @@ -69,15 +75,18 @@ expression: actual "key": { "commentStart": 61, "end": 62, + "moduleId": 0, "name": "c", "start": 61, "type": "Identifier" }, + "moduleId": 0, "start": 61, "type": "ObjectProperty", "value": { "commentStart": 64, "end": 65, + "moduleId": 0, "raw": "3", "start": 64, "type": "Literal", @@ -93,11 +102,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 75, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -105,5 +116,6 @@ expression: actual ], "commentStart": 0, "end": 75, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__b.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__b.snap index 9a99bf254..20489ae9a 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__b.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__b.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 5, + "moduleId": 0, "name": "myVar", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "label": { "commentStart": 12, "end": 13, + "moduleId": 0, "name": "x", "start": 12, "type": "Identifier" @@ -30,6 +32,7 @@ expression: actual "arg": { "commentStart": 14, "end": 15, + "moduleId": 0, "raw": "5", "start": 14, "type": "Literal", @@ -45,6 +48,7 @@ expression: actual "label": { "commentStart": 18, "end": 19, + "moduleId": 0, "name": "y", "start": 18, "type": "Identifier" @@ -57,6 +61,7 @@ expression: actual "label": { "commentStart": 31, "end": 32, + "moduleId": 0, "name": "z", "start": 31, "type": "Identifier" @@ -64,6 +69,7 @@ expression: actual "arg": { "commentStart": 33, "end": 34, + "moduleId": 0, "raw": "4", "start": 33, "type": "Literal", @@ -79,9 +85,11 @@ expression: actual "abs_path": false, "commentStart": 21, "end": 27, + "moduleId": 0, "name": { "commentStart": 21, "end": 27, + "moduleId": 0, "name": "legLen", "start": 21, "type": "Identifier" @@ -92,12 +100,14 @@ expression: actual }, "commentStart": 21, "end": 35, + "moduleId": 0, "start": 21, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 28, "end": 29, + "moduleId": 0, "raw": "5", "start": 28, "type": "Literal", @@ -110,6 +120,7 @@ expression: actual }, "commentStart": 20, "end": 35, + "moduleId": 0, "operator": "-", "start": 20, "type": "UnaryExpression", @@ -121,9 +132,11 @@ expression: actual "abs_path": false, "commentStart": 8, "end": 11, + "moduleId": 0, "name": { "commentStart": 8, "end": 11, + "moduleId": 0, "name": "min", "start": 8, "type": "Identifier" @@ -134,16 +147,19 @@ expression: actual }, "commentStart": 8, "end": 36, + "moduleId": 0, "start": 8, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 36, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -151,5 +167,6 @@ expression: actual ], "commentStart": 0, "end": 36, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bb.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bb.snap index 0dc6c93e2..646ebfe4f 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bb.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bb.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 1, "end": 5, + "moduleId": 0, "name": "my14", "start": 1, "type": "Identifier" @@ -25,6 +26,7 @@ expression: actual "left": { "commentStart": 8, "end": 9, + "moduleId": 0, "raw": "4", "start": 8, "type": "Literal", @@ -34,10 +36,12 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "2", "start": 12, "type": "Literal", @@ -51,6 +55,7 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 16, @@ -61,6 +66,7 @@ expression: actual "left": { "commentStart": 16, "end": 17, + "moduleId": 0, "raw": "3", "start": 16, "type": "Literal", @@ -70,10 +76,12 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 20, "end": 21, + "moduleId": 0, "raw": "2", "start": 20, "type": "Literal", @@ -87,10 +95,12 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 24, "end": 25, + "moduleId": 0, "raw": "2", "start": 24, "type": "Literal", @@ -108,11 +118,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 1, "type": "VariableDeclarator" }, "end": 25, "kind": "const", + "moduleId": 0, "start": 1, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -120,5 +132,6 @@ expression: actual ], "commentStart": 0, "end": 26, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bc.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bc.snap index cc4753075..f5a283fa7 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bc.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bc.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -21,6 +22,7 @@ expression: actual "cond": { "commentStart": 7, "end": 11, + "moduleId": 0, "raw": "true", "start": 7, "type": "Literal", @@ -38,6 +40,7 @@ expression: actual "expression": { "commentStart": 57, "end": 58, + "moduleId": 0, "raw": "4", "start": 57, "type": "Literal", @@ -47,6 +50,7 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "start": 57, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -54,8 +58,10 @@ expression: actual ], "commentStart": 57, "end": 67, + "moduleId": 0, "start": 57 }, + "moduleId": 0, "start": 4, "then_val": { "body": [ @@ -65,6 +71,7 @@ expression: actual "expression": { "commentStart": 26, "end": 27, + "moduleId": 0, "raw": "3", "start": 26, "type": "Literal", @@ -74,6 +81,7 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "start": 26, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -81,16 +89,19 @@ expression: actual ], "commentStart": 26, "end": 36, + "moduleId": 0, "start": 26 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 68, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -98,5 +109,6 @@ expression: actual ], "commentStart": 0, "end": 68, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bd.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bd.snap index 8d7a439e7..3671c9f6e 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bd.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bd.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -21,6 +22,7 @@ expression: actual "cond": { "commentStart": 7, "end": 11, + "moduleId": 0, "raw": "true", "start": 7, "type": "Literal", @@ -32,13 +34,16 @@ expression: actual { "commentStart": 38, "cond": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 46, "end": 50, + "moduleId": 0, "name": { "commentStart": 46, "end": 50, + "moduleId": 0, "name": "func", "start": 46, "type": "Identifier" @@ -49,6 +54,7 @@ expression: actual }, "commentStart": 46, "end": 58, + "moduleId": 0, "start": 46, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56,9 +62,11 @@ expression: actual "abs_path": false, "commentStart": 51, "end": 57, + "moduleId": 0, "name": { "commentStart": 51, "end": 57, + "moduleId": 0, "name": "radius", "start": 51, "type": "Identifier" @@ -71,6 +79,7 @@ expression: actual }, "digest": null, "end": 84, + "moduleId": 0, "start": 38, "then_val": { "body": [ @@ -80,6 +89,7 @@ expression: actual "expression": { "commentStart": 73, "end": 74, + "moduleId": 0, "raw": "4", "start": 73, "type": "Literal", @@ -89,6 +99,7 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "start": 73, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -96,6 +107,7 @@ expression: actual ], "commentStart": 59, "end": 83, + "moduleId": 0, "start": 59 }, "type": "ElseIf" @@ -110,6 +122,7 @@ expression: actual "expression": { "commentStart": 104, "end": 105, + "moduleId": 0, "raw": "5", "start": 104, "type": "Literal", @@ -119,6 +132,7 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "start": 104, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -126,8 +140,10 @@ expression: actual ], "commentStart": 104, "end": 114, + "moduleId": 0, "start": 104 }, + "moduleId": 0, "start": 4, "then_val": { "body": [ @@ -137,6 +153,7 @@ expression: actual "expression": { "commentStart": 26, "end": 27, + "moduleId": 0, "raw": "3", "start": 26, "type": "Literal", @@ -146,6 +163,7 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "start": 26, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -153,16 +171,19 @@ expression: actual ], "commentStart": 26, "end": 36, + "moduleId": 0, "start": 26 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 115, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -170,5 +191,6 @@ expression: actual ], "commentStart": 0, "end": 115, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__be.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__be.snap index 539e3a634..e36663910 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__be.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__be.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ expression: actual "left": { "commentStart": 4, "end": 5, + "moduleId": 0, "raw": "3", "start": 4, "type": "Literal", @@ -31,10 +33,12 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "==", "right": { "commentStart": 9, "end": 10, + "moduleId": 0, "raw": "3", "start": 9, "type": "Literal", @@ -48,11 +52,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 10, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -60,5 +66,6 @@ expression: actual ], "commentStart": 0, "end": 10, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bf.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bf.snap index 2a88d9e6a..b7fe5257f 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bf.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bf.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ expression: actual "left": { "commentStart": 4, "end": 5, + "moduleId": 0, "raw": "3", "start": 4, "type": "Literal", @@ -31,10 +33,12 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "!=", "right": { "commentStart": 9, "end": 10, + "moduleId": 0, "raw": "3", "start": 9, "type": "Literal", @@ -48,11 +52,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 10, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -60,5 +66,6 @@ expression: actual ], "commentStart": 0, "end": 10, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bg.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bg.snap index dcea79254..2c7deecb8 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bg.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bg.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 4, "end": 5, + "moduleId": 0, "raw": "4", "start": 4, "type": "Literal", @@ -28,11 +30,13 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 5, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -40,5 +44,6 @@ expression: actual ], "commentStart": 0, "end": 5, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bh.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bh.snap index b9687d88c..3cb1646d8 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bh.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bh.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 6, "end": 36, + "moduleId": 0, "properties": [ { "commentStart": 7, @@ -26,10 +28,12 @@ expression: actual "key": { "commentStart": 7, "end": 13, + "moduleId": 0, "name": "center", "start": 7, "type": "Identifier" }, + "moduleId": 0, "start": 7, "type": "ObjectProperty", "value": { @@ -38,6 +42,7 @@ expression: actual { "commentStart": 17, "end": 19, + "moduleId": 0, "raw": "10", "start": 17, "type": "Literal", @@ -50,6 +55,7 @@ expression: actual { "commentStart": 21, "end": 23, + "moduleId": 0, "raw": "10", "start": 21, "type": "Literal", @@ -61,6 +67,7 @@ expression: actual } ], "end": 24, + "moduleId": 0, "start": 16, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72,15 +79,18 @@ expression: actual "key": { "commentStart": 26, "end": 32, + "moduleId": 0, "name": "radius", "start": 26, "type": "Identifier" }, + "moduleId": 0, "start": 26, "type": "ObjectProperty", "value": { "commentStart": 34, "end": 35, + "moduleId": 0, "raw": "5", "start": 34, "type": "Literal", @@ -96,11 +106,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 36, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -108,5 +120,6 @@ expression: actual ], "commentStart": 0, "end": 36, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bi.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bi.snap index 48fa69fe3..1edd514cc 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bi.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bi.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 4, "end": 5, + "moduleId": 0, "raw": "3", "start": 4, "type": "Literal", @@ -28,11 +30,13 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 5, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -45,6 +49,7 @@ expression: actual "id": { "commentStart": 14, "end": 17, + "moduleId": 0, "name": "obj", "start": 14, "type": "Identifier" @@ -52,6 +57,7 @@ expression: actual "init": { "commentStart": 20, "end": 31, + "moduleId": 0, "properties": [ { "commentStart": 22, @@ -59,19 +65,23 @@ expression: actual "key": { "commentStart": 22, "end": 23, + "moduleId": 0, "name": "x", "start": 22, "type": "Identifier" }, + "moduleId": 0, "start": 22, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 22, "end": 23, + "moduleId": 0, "name": { "commentStart": 22, "end": 23, + "moduleId": 0, "name": "x", "start": 22, "type": "Identifier" @@ -88,15 +98,18 @@ expression: actual "key": { "commentStart": 25, "end": 26, + "moduleId": 0, "name": "y", "start": 25, "type": "Identifier" }, + "moduleId": 0, "start": 25, "type": "ObjectProperty", "value": { "commentStart": 29, "end": 30, + "moduleId": 0, "raw": "4", "start": 29, "type": "Literal", @@ -112,11 +125,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 14, "type": "VariableDeclarator" }, "end": 31, "kind": "const", + "moduleId": 0, "start": 14, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -124,5 +139,6 @@ expression: actual ], "commentStart": 0, "end": 31, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bj.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bj.snap index b9da9294c..274b42417 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bj.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bj.snap @@ -10,12 +10,14 @@ expression: actual "expression": { "commentStart": 0, "end": 4, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -23,5 +25,6 @@ expression: actual ], "commentStart": 0, "end": 4, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bk.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bk.snap index dd4f52dd5..4838ea734 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bk.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bk.snap @@ -11,9 +11,11 @@ expression: actual "abs_path": false, "commentStart": 0, "end": 5, + "moduleId": 0, "name": { "commentStart": 0, "end": 5, + "moduleId": 0, "name": "truee", "start": 0, "type": "Identifier" @@ -23,6 +25,7 @@ expression: actual "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -30,5 +33,6 @@ expression: actual ], "commentStart": 0, "end": 5, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bl.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bl.snap index a6dfa0c8e..0ffbc661c 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bl.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bl.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ expression: actual "argument": { "commentStart": 5, "end": 9, + "moduleId": 0, "raw": "true", "start": 5, "type": "Literal", @@ -28,16 +30,19 @@ expression: actual }, "commentStart": 4, "end": 9, + "moduleId": 0, "operator": "!", "start": 4, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 9, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -45,5 +50,6 @@ expression: actual ], "commentStart": 0, "end": 9, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bm.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bm.snap index 80aaea822..f8971dc4d 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bm.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bm.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -22,16 +23,19 @@ expression: actual "left": { "commentStart": 4, "end": 8, + "moduleId": 0, "raw": "true", "start": 4, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "operator": "&", "right": { "commentStart": 11, "end": 16, + "moduleId": 0, "raw": "false", "start": 11, "type": "Literal", @@ -42,11 +46,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 16, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -54,5 +60,6 @@ expression: actual ], "commentStart": 0, "end": 16, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bn.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bn.snap index 6f065b2a8..6429ca4ca 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bn.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__bn.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -22,16 +23,19 @@ expression: actual "left": { "commentStart": 4, "end": 8, + "moduleId": 0, "raw": "true", "start": 4, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "operator": "|", "right": { "commentStart": 11, "end": 16, + "moduleId": 0, "raw": "false", "start": 11, "type": "Literal", @@ -42,11 +46,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 16, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -54,5 +60,6 @@ expression: actual ], "commentStart": 0, "end": 16, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__c.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__c.snap index da9677ce2..49d5f49aa 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__c.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__c.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 5, + "moduleId": 0, "name": "myVar", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "label": { "commentStart": 12, "end": 13, + "moduleId": 0, "name": "x", "start": 12, "type": "Identifier" @@ -35,6 +37,7 @@ expression: actual "label": { "commentStart": 22, "end": 23, + "moduleId": 0, "name": "a", "start": 22, "type": "Identifier" @@ -42,6 +45,7 @@ expression: actual "arg": { "commentStart": 24, "end": 25, + "moduleId": 0, "raw": "5", "start": 24, "type": "Literal", @@ -57,6 +61,7 @@ expression: actual "label": { "commentStart": 27, "end": 28, + "moduleId": 0, "name": "b", "start": 27, "type": "Identifier" @@ -64,6 +69,7 @@ expression: actual "arg": { "commentStart": 29, "end": 30, + "moduleId": 0, "raw": "4", "start": 29, "type": "Literal", @@ -79,9 +85,11 @@ expression: actual "abs_path": false, "commentStart": 15, "end": 21, + "moduleId": 0, "name": { "commentStart": 15, "end": 21, + "moduleId": 0, "name": "legLen", "start": 15, "type": "Identifier" @@ -92,6 +100,7 @@ expression: actual }, "commentStart": 15, "end": 31, + "moduleId": 0, "start": 15, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -99,6 +108,7 @@ expression: actual }, "commentStart": 14, "end": 31, + "moduleId": 0, "operator": "-", "start": 14, "type": "UnaryExpression", @@ -110,6 +120,7 @@ expression: actual "label": { "commentStart": 33, "end": 34, + "moduleId": 0, "name": "y", "start": 33, "type": "Identifier" @@ -117,6 +128,7 @@ expression: actual "arg": { "commentStart": 35, "end": 36, + "moduleId": 0, "raw": "5", "start": 35, "type": "Literal", @@ -132,9 +144,11 @@ expression: actual "abs_path": false, "commentStart": 8, "end": 11, + "moduleId": 0, "name": { "commentStart": 8, "end": 11, + "moduleId": 0, "name": "min", "start": 8, "type": "Identifier" @@ -145,16 +159,19 @@ expression: actual }, "commentStart": 8, "end": 37, + "moduleId": 0, "start": 8, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 37, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -162,5 +179,6 @@ expression: actual ], "commentStart": 0, "end": 37, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d.snap index 8c6a2b270..054854eb3 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 5, + "moduleId": 0, "name": "myVar", "start": 0, "type": "Identifier" @@ -24,6 +25,7 @@ expression: actual "left": { "commentStart": 8, "end": 9, + "moduleId": 0, "raw": "5", "start": 8, "type": "Literal", @@ -33,10 +35,12 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "6", "start": 12, "type": "Literal", @@ -51,13 +55,16 @@ expression: actual "type": "BinaryExpression" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 17, "end": 23, + "moduleId": 0, "name": { "commentStart": 17, "end": 23, + "moduleId": 0, "name": "myFunc", "start": 17, "type": "Identifier" @@ -68,12 +75,14 @@ expression: actual }, "commentStart": 17, "end": 27, + "moduleId": 0, "start": 17, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 24, "end": 26, + "moduleId": 0, "raw": "45", "start": 24, "type": "Literal", @@ -87,15 +96,18 @@ expression: actual ], "commentStart": 8, "end": 27, + "moduleId": 0, "start": 8, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 27, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -103,5 +115,6 @@ expression: actual ], "commentStart": 0, "end": 27, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d2.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d2.snap index 7b765d217..e0c701404 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d2.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__d2.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -24,9 +25,11 @@ expression: actual "abs_path": false, "commentStart": 5, "end": 9, + "moduleId": 0, "name": { "commentStart": 5, "end": 9, + "moduleId": 0, "name": "leg2", "start": 5, "type": "Identifier" @@ -38,19 +41,23 @@ expression: actual }, "commentStart": 4, "end": 9, + "moduleId": 0, "operator": "-", "start": 4, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 12, "end": 21, + "moduleId": 0, "name": { "commentStart": 12, "end": 21, + "moduleId": 0, "name": "thickness", "start": 12, "type": "Identifier" @@ -64,11 +71,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 21, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -76,5 +85,6 @@ expression: actual ], "commentStart": 0, "end": 21, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__e.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__e.snap index 5e33689b0..0f00115ba 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__e.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__e.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ expression: actual "left": { "commentStart": 4, "end": 5, + "moduleId": 0, "raw": "1", "start": 4, "type": "Literal", @@ -31,6 +33,7 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 9, @@ -38,6 +41,7 @@ expression: actual "left": { "commentStart": 9, "end": 10, + "moduleId": 0, "raw": "3", "start": 9, "type": "Literal", @@ -47,10 +51,12 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 13, "end": 14, + "moduleId": 0, "raw": "4", "start": 13, "type": "Literal", @@ -68,11 +74,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 14, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -80,5 +88,6 @@ expression: actual ], "commentStart": 0, "end": 14, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__f.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__f.snap index 4c42c201a..125aa0952 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__f.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__f.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 1, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 4, "end": 5, + "moduleId": 0, "raw": "1", "start": 4, "type": "Literal", @@ -28,11 +30,13 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 5, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -40,12 +44,14 @@ expression: actual ], "commentStart": 0, "end": 34, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 5, "end": 34, + "moduleId": 0, "start": 5, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__g.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__g.snap index 7fe375422..e7d23fa57 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__g.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__g.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 3, "end": 4, + "moduleId": 0, "name": "x", "start": 3, "type": "Identifier" @@ -24,9 +25,11 @@ expression: actual "abs_path": false, "commentStart": 24, "end": 26, + "moduleId": 0, "name": { "commentStart": 24, "end": 26, + "moduleId": 0, "name": "sg", "start": 24, "type": "Identifier" @@ -38,6 +41,7 @@ expression: actual }, "commentStart": 17, "end": 26, + "moduleId": 0, "start": 17, "type": "ReturnStatement", "type": "ReturnStatement" @@ -47,9 +51,11 @@ expression: actual "abs_path": false, "commentStart": 42, "end": 44, + "moduleId": 0, "name": { "commentStart": 42, "end": 44, + "moduleId": 0, "name": "sg", "start": 42, "type": "Identifier" @@ -61,6 +67,7 @@ expression: actual }, "commentStart": 35, "end": 44, + "moduleId": 0, "start": 35, "type": "ReturnStatement", "type": "ReturnStatement" @@ -68,20 +75,24 @@ expression: actual ], "commentStart": 7, "end": 52, + "moduleId": 0, "start": 7 }, "commentStart": 4, "end": 52, + "moduleId": 0, "params": [], "start": 4, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 3, "type": "VariableDeclarator" }, "end": 52, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -89,5 +100,6 @@ expression: actual ], "commentStart": 0, "end": 52, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__h.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__h.snap index af544ac95..11821065b 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__h.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__h.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 6, "end": 22, + "moduleId": 0, "properties": [ { "commentStart": 8, @@ -26,15 +28,18 @@ expression: actual "key": { "commentStart": 8, "end": 9, + "moduleId": 0, "name": "a", "start": 8, "type": "Identifier" }, + "moduleId": 0, "start": 8, "type": "ObjectProperty", "value": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "1", "start": 12, "type": "Literal", @@ -51,15 +56,18 @@ expression: actual "key": { "commentStart": 15, "end": 16, + "moduleId": 0, "name": "b", "start": 15, "type": "Identifier" }, + "moduleId": 0, "start": 15, "type": "ObjectProperty", "value": { "commentStart": 19, "end": 20, + "moduleId": 0, "raw": "2", "start": 19, "type": "Literal", @@ -75,11 +83,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 22, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,6 +102,7 @@ expression: actual "id": { "commentStart": 27, "end": 33, + "moduleId": 0, "name": "height", "start": 27, "type": "Identifier" @@ -102,6 +113,7 @@ expression: actual "left": { "commentStart": 36, "end": 37, + "moduleId": 0, "raw": "1", "start": 36, "type": "Literal", @@ -111,18 +123,22 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 40, "computed": false, "end": 45, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 40, "end": 43, + "moduleId": 0, "name": { "commentStart": 40, "end": 43, + "moduleId": 0, "name": "obj", "start": 40, "type": "Identifier" @@ -135,6 +151,7 @@ expression: actual "property": { "commentStart": 44, "end": 45, + "moduleId": 0, "name": "a", "start": 44, "type": "Identifier", @@ -148,11 +165,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 27, "type": "VariableDeclarator" }, "end": 45, "kind": "const", + "moduleId": 0, "start": 27, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -160,5 +179,6 @@ expression: actual ], "commentStart": 0, "end": 45, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__i.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__i.snap index 6cdc30369..5ada39773 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__i.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__i.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 6, "end": 22, + "moduleId": 0, "properties": [ { "commentStart": 8, @@ -26,15 +28,18 @@ expression: actual "key": { "commentStart": 8, "end": 9, + "moduleId": 0, "name": "a", "start": 8, "type": "Identifier" }, + "moduleId": 0, "start": 8, "type": "ObjectProperty", "value": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "1", "start": 12, "type": "Literal", @@ -51,15 +56,18 @@ expression: actual "key": { "commentStart": 15, "end": 16, + "moduleId": 0, "name": "b", "start": 15, "type": "Identifier" }, + "moduleId": 0, "start": 15, "type": "ObjectProperty", "value": { "commentStart": 19, "end": 20, + "moduleId": 0, "raw": "2", "start": 19, "type": "Literal", @@ -75,11 +83,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 22, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,6 +102,7 @@ expression: actual "id": { "commentStart": 28, "end": 34, + "moduleId": 0, "name": "height", "start": 28, "type": "Identifier" @@ -102,6 +113,7 @@ expression: actual "left": { "commentStart": 37, "end": 38, + "moduleId": 0, "raw": "1", "start": 37, "type": "Literal", @@ -111,18 +123,22 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 41, "computed": false, "end": 49, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 41, "end": 44, + "moduleId": 0, "name": { "commentStart": 41, "end": 44, + "moduleId": 0, "name": "obj", "start": 41, "type": "Identifier" @@ -135,6 +151,7 @@ expression: actual "property": { "commentStart": 45, "end": 48, + "moduleId": 0, "raw": "\"a\"", "start": 45, "type": "Literal", @@ -149,11 +166,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 28, "type": "VariableDeclarator" }, "end": 49, "kind": "const", + "moduleId": 0, "start": 28, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -161,5 +180,6 @@ expression: actual ], "commentStart": 0, "end": 49, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__j.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__j.snap index 8b117b243..660b082cc 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__j.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__j.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 6, "end": 22, + "moduleId": 0, "properties": [ { "commentStart": 8, @@ -26,15 +28,18 @@ expression: actual "key": { "commentStart": 8, "end": 9, + "moduleId": 0, "name": "a", "start": 8, "type": "Identifier" }, + "moduleId": 0, "start": 8, "type": "ObjectProperty", "value": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "1", "start": 12, "type": "Literal", @@ -51,15 +56,18 @@ expression: actual "key": { "commentStart": 15, "end": 16, + "moduleId": 0, "name": "b", "start": 15, "type": "Identifier" }, + "moduleId": 0, "start": 15, "type": "ObjectProperty", "value": { "commentStart": 19, "end": 20, + "moduleId": 0, "raw": "2", "start": 19, "type": "Literal", @@ -75,11 +83,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 22, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,6 +102,7 @@ expression: actual "id": { "commentStart": 27, "end": 33, + "moduleId": 0, "name": "height", "start": 27, "type": "Identifier" @@ -103,13 +114,16 @@ expression: actual "commentStart": 36, "computed": false, "end": 44, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 36, "end": 39, + "moduleId": 0, "name": { "commentStart": 36, "end": 39, + "moduleId": 0, "name": "obj", "start": 36, "type": "Identifier" @@ -122,6 +136,7 @@ expression: actual "property": { "commentStart": 40, "end": 43, + "moduleId": 0, "raw": "\"a\"", "start": 40, "type": "Literal", @@ -132,10 +147,12 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 47, "end": 48, + "moduleId": 0, "raw": "1", "start": 47, "type": "Literal", @@ -149,11 +166,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 27, "type": "VariableDeclarator" }, "end": 48, "kind": "const", + "moduleId": 0, "start": 27, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -161,5 +180,6 @@ expression: actual ], "commentStart": 0, "end": 48, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__k.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__k.snap index ac1532870..fb2514308 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__k.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__k.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 6, "end": 22, + "moduleId": 0, "properties": [ { "commentStart": 8, @@ -26,15 +28,18 @@ expression: actual "key": { "commentStart": 8, "end": 9, + "moduleId": 0, "name": "a", "start": 8, "type": "Identifier" }, + "moduleId": 0, "start": 8, "type": "ObjectProperty", "value": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "1", "start": 12, "type": "Literal", @@ -51,15 +56,18 @@ expression: actual "key": { "commentStart": 15, "end": 16, + "moduleId": 0, "name": "b", "start": 15, "type": "Identifier" }, + "moduleId": 0, "start": 15, "type": "ObjectProperty", "value": { "commentStart": 19, "end": 20, + "moduleId": 0, "raw": "2", "start": 19, "type": "Literal", @@ -75,11 +83,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 22, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,6 +102,7 @@ expression: actual "id": { "commentStart": 27, "end": 33, + "moduleId": 0, "name": "height", "start": 27, "type": "Identifier" @@ -105,6 +116,7 @@ expression: actual "left": { "commentStart": 37, "end": 38, + "moduleId": 0, "raw": "1", "start": 37, "type": "Literal", @@ -114,18 +126,22 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 41, "computed": false, "end": 49, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 41, "end": 44, + "moduleId": 0, "name": { "commentStart": 41, "end": 44, + "moduleId": 0, "name": "obj", "start": 41, "type": "Identifier" @@ -138,6 +154,7 @@ expression: actual "property": { "commentStart": 45, "end": 48, + "moduleId": 0, "raw": "\"a\"", "start": 45, "type": "Literal", @@ -155,6 +172,7 @@ expression: actual { "commentStart": 51, "end": 52, + "moduleId": 0, "raw": "0", "start": 51, "type": "Literal", @@ -166,15 +184,18 @@ expression: actual } ], "end": 53, + "moduleId": 0, "start": 36, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 27, "type": "VariableDeclarator" }, "end": 53, "kind": "const", + "moduleId": 0, "start": 27, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -182,5 +203,6 @@ expression: actual ], "commentStart": 0, "end": 53, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_all_named.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_all_named.snap index 8908fabc4..3e064dc57 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_all_named.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_all_named.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "val", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "label": { "commentStart": 10, "end": 11, + "moduleId": 0, "name": "x", "start": 10, "type": "Identifier" @@ -31,9 +33,11 @@ expression: actual "abs_path": false, "commentStart": 14, "end": 15, + "moduleId": 0, "name": { "commentStart": 14, "end": 15, + "moduleId": 0, "name": "a", "start": 14, "type": "Identifier" @@ -49,6 +53,7 @@ expression: actual "label": { "commentStart": 17, "end": 18, + "moduleId": 0, "name": "y", "start": 17, "type": "Identifier" @@ -57,9 +62,11 @@ expression: actual "abs_path": false, "commentStart": 21, "end": 22, + "moduleId": 0, "name": { "commentStart": 21, "end": 22, + "moduleId": 0, "name": "b", "start": 21, "type": "Identifier" @@ -75,9 +82,11 @@ expression: actual "abs_path": false, "commentStart": 6, "end": 9, + "moduleId": 0, "name": { "commentStart": 6, "end": 9, + "moduleId": 0, "name": "foo", "start": 6, "type": "Identifier" @@ -88,16 +97,19 @@ expression: actual }, "commentStart": 6, "end": 23, + "moduleId": 0, "start": 6, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 23, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -105,5 +117,6 @@ expression: actual ], "commentStart": 0, "end": 23, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_in_pipe.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_in_pipe.snap index 4c3a9e8be..07934242b 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_in_pipe.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_in_pipe.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "val", "start": 0, "type": "Identifier" @@ -21,6 +22,7 @@ expression: actual { "commentStart": 6, "end": 7, + "moduleId": 0, "raw": "1", "start": 6, "type": "Literal", @@ -37,6 +39,7 @@ expression: actual "label": { "commentStart": 13, "end": 16, + "moduleId": 0, "name": "arg", "start": 13, "type": "Identifier" @@ -45,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 19, "end": 20, + "moduleId": 0, "name": { "commentStart": 19, "end": 20, + "moduleId": 0, "name": "x", "start": 19, "type": "Identifier" @@ -63,9 +68,11 @@ expression: actual "abs_path": false, "commentStart": 11, "end": 12, + "moduleId": 0, "name": { "commentStart": 11, "end": 12, + "moduleId": 0, "name": "f", "start": 11, "type": "Identifier" @@ -76,6 +83,7 @@ expression: actual }, "commentStart": 11, "end": 21, + "moduleId": 0, "start": 11, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -84,15 +92,18 @@ expression: actual ], "commentStart": 6, "end": 21, + "moduleId": 0, "start": 6, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 21, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -100,5 +111,6 @@ expression: actual ], "commentStart": 0, "end": 21, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline.snap index 99086a2a6..19bbb0e8c 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "val", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "label": { "commentStart": 22, "end": 25, + "moduleId": 0, "name": "arg", "start": 22, "type": "Identifier" @@ -31,9 +33,11 @@ expression: actual "abs_path": false, "commentStart": 28, "end": 29, + "moduleId": 0, "name": { "commentStart": 28, "end": 29, + "moduleId": 0, "name": "x", "start": 28, "type": "Identifier" @@ -49,6 +53,7 @@ expression: actual "label": { "commentStart": 44, "end": 47, + "moduleId": 0, "name": "foo", "start": 44, "type": "Identifier" @@ -57,9 +62,11 @@ expression: actual "abs_path": false, "commentStart": 50, "end": 51, + "moduleId": 0, "name": { "commentStart": 50, "end": 51, + "moduleId": 0, "name": "x", "start": 50, "type": "Identifier" @@ -75,6 +82,7 @@ expression: actual "label": { "commentStart": 66, "end": 69, + "moduleId": 0, "name": "bar", "start": 66, "type": "Identifier" @@ -83,9 +91,11 @@ expression: actual "abs_path": false, "commentStart": 72, "end": 73, + "moduleId": 0, "name": { "commentStart": 72, "end": 73, + "moduleId": 0, "name": "x", "start": 72, "type": "Identifier" @@ -101,9 +111,11 @@ expression: actual "abs_path": false, "commentStart": 6, "end": 7, + "moduleId": 0, "name": { "commentStart": 6, "end": 7, + "moduleId": 0, "name": "f", "start": 6, "type": "Identifier" @@ -114,16 +126,19 @@ expression: actual }, "commentStart": 6, "end": 87, + "moduleId": 0, "start": 6, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 87, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -131,5 +146,6 @@ expression: actual ], "commentStart": 0, "end": 87, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline_with_comments.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline_with_comments.snap index e374804eb..e62c33f52 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline_with_comments.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_call_multiline_with_comments.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "val", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "label": { "commentStart": 22, "end": 25, + "moduleId": 0, "name": "arg", "start": 22, "type": "Identifier" @@ -31,9 +33,11 @@ expression: actual "abs_path": false, "commentStart": 28, "end": 29, + "moduleId": 0, "name": { "commentStart": 28, "end": 29, + "moduleId": 0, "name": "x", "start": 28, "type": "Identifier" @@ -49,6 +53,7 @@ expression: actual "label": { "commentStart": 69, "end": 72, + "moduleId": 0, "name": "bar", "start": 69, "type": "Identifier" @@ -57,9 +62,11 @@ expression: actual "abs_path": false, "commentStart": 75, "end": 76, + "moduleId": 0, "name": { "commentStart": 75, "end": 76, + "moduleId": 0, "name": "x", "start": 75, "type": "Identifier" @@ -75,9 +82,11 @@ expression: actual "abs_path": false, "commentStart": 6, "end": 7, + "moduleId": 0, "name": { "commentStart": 6, "end": 7, + "moduleId": 0, "name": "f", "start": 6, "type": "Identifier" @@ -88,12 +97,14 @@ expression: actual }, "commentStart": 6, "end": 90, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 44, "end": 55, + "moduleId": 0, "start": 44, "type": "NonCodeNode", "value": { @@ -111,11 +122,13 @@ expression: actual "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 90, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -123,5 +136,6 @@ expression: actual ], "commentStart": 0, "end": 90, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_all_labeled.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_all_labeled.snap index 5916368dc..6522217d6 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_all_labeled.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_all_labeled.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 3, "end": 6, + "moduleId": 0, "name": "foo", "start": 3, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "argument": { "commentStart": 22, "end": 23, + "moduleId": 0, "raw": "1", "start": 22, "type": "Literal", @@ -34,6 +36,7 @@ expression: actual }, "commentStart": 15, "end": 23, + "moduleId": 0, "start": 15, "type": "ReturnStatement", "type": "ReturnStatement" @@ -41,16 +44,19 @@ expression: actual ], "commentStart": 13, "end": 25, + "moduleId": 0, "start": 13 }, "commentStart": 6, "end": 25, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 7, "end": 8, + "moduleId": 0, "name": "x", "start": 7, "type": "Identifier" @@ -61,6 +67,7 @@ expression: actual "identifier": { "commentStart": 10, "end": 11, + "moduleId": 0, "name": "y", "start": 10, "type": "Identifier" @@ -71,11 +78,13 @@ expression: actual "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 3, "type": "VariableDeclarator" }, "end": 25, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -83,5 +92,6 @@ expression: actual ], "commentStart": 0, "end": 25, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_first_unlabeled.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_first_unlabeled.snap index ea655045b..5c95bd3d7 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_first_unlabeled.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_first_unlabeled.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 3, "end": 6, + "moduleId": 0, "name": "foo", "start": 3, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "argument": { "commentStart": 23, "end": 24, + "moduleId": 0, "raw": "1", "start": 23, "type": "Literal", @@ -34,6 +36,7 @@ expression: actual }, "commentStart": 16, "end": 24, + "moduleId": 0, "start": 16, "type": "ReturnStatement", "type": "ReturnStatement" @@ -41,16 +44,19 @@ expression: actual ], "commentStart": 14, "end": 26, + "moduleId": 0, "start": 14 }, "commentStart": 6, "end": 26, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 8, "end": 9, + "moduleId": 0, "name": "x", "start": 8, "type": "Identifier" @@ -62,6 +68,7 @@ expression: actual "identifier": { "commentStart": 11, "end": 12, + "moduleId": 0, "name": "y", "start": 11, "type": "Identifier" @@ -72,11 +79,13 @@ expression: actual "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 3, "type": "VariableDeclarator" }, "end": 26, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -84,5 +93,6 @@ expression: actual ], "commentStart": 0, "end": 26, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_and_type.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_and_type.snap index b344ebcd5..71eaf1c1a 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_and_type.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_and_type.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 3, "end": 6, + "moduleId": 0, "name": "foo", "start": 3, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "argument": { "commentStart": 32, "end": 33, + "moduleId": 0, "raw": "1", "start": 32, "type": "Literal", @@ -34,6 +36,7 @@ expression: actual }, "commentStart": 25, "end": 33, + "moduleId": 0, "start": 25, "type": "ReturnStatement", "type": "ReturnStatement" @@ -41,16 +44,19 @@ expression: actual ], "commentStart": 23, "end": 35, + "moduleId": 0, "start": 23 }, "commentStart": 6, "end": 35, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 7, "end": 8, + "moduleId": 0, "name": "x", "start": 7, "type": "Identifier" @@ -58,6 +64,7 @@ expression: actual "default_value": { "commentStart": 20, "end": 21, + "moduleId": 0, "raw": "2", "start": 20, "type": "Literal", @@ -73,11 +80,13 @@ expression: actual "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 3, "type": "VariableDeclarator" }, "end": 35, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -85,5 +94,6 @@ expression: actual ], "commentStart": 0, "end": 35, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_no_type.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_no_type.snap index 20916b4f1..c8319f229 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_no_type.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_decl_with_default_no_type.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 3, "end": 6, + "moduleId": 0, "name": "foo", "start": 3, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "argument": { "commentStart": 24, "end": 25, + "moduleId": 0, "raw": "1", "start": 24, "type": "Literal", @@ -34,6 +36,7 @@ expression: actual }, "commentStart": 17, "end": 25, + "moduleId": 0, "start": 17, "type": "ReturnStatement", "type": "ReturnStatement" @@ -41,16 +44,19 @@ expression: actual ], "commentStart": 15, "end": 27, + "moduleId": 0, "start": 15 }, "commentStart": 6, "end": 27, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 7, "end": 8, + "moduleId": 0, "name": "x", "start": 7, "type": "Identifier" @@ -58,6 +64,7 @@ expression: actual "default_value": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "2", "start": 12, "type": "Literal", @@ -73,11 +80,13 @@ expression: actual "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 3, "type": "VariableDeclarator" }, "end": 27, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -85,5 +94,6 @@ expression: actual ], "commentStart": 0, "end": 27, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_in_binary_op.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_in_binary_op.snap index 5829b81bf..1e6fc5ee6 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_in_binary_op.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_in_binary_op.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "val", "start": 0, "type": "Identifier" @@ -26,6 +27,7 @@ expression: actual "label": { "commentStart": 8, "end": 9, + "moduleId": 0, "name": "x", "start": 8, "type": "Identifier" @@ -33,6 +35,7 @@ expression: actual "arg": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "1", "start": 12, "type": "Literal", @@ -48,9 +51,11 @@ expression: actual "abs_path": false, "commentStart": 6, "end": 7, + "moduleId": 0, "name": { "commentStart": 6, "end": 7, + "moduleId": 0, "name": "f", "start": 6, "type": "Identifier" @@ -61,15 +66,18 @@ expression: actual }, "commentStart": 6, "end": 14, + "moduleId": 0, "start": 6, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 17, "end": 18, + "moduleId": 0, "raw": "1", "start": 17, "type": "Literal", @@ -83,11 +91,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 18, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -95,5 +105,6 @@ expression: actual ], "commentStart": 0, "end": 18, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_unnamed_first.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_unnamed_first.snap index f12a29a51..3a69246f0 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_unnamed_first.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__kw_function_unnamed_first.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "val", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ expression: actual "label": { "commentStart": 13, "end": 14, + "moduleId": 0, "name": "y", "start": 13, "type": "Identifier" @@ -31,9 +33,11 @@ expression: actual "abs_path": false, "commentStart": 17, "end": 18, + "moduleId": 0, "name": { "commentStart": 17, "end": 18, + "moduleId": 0, "name": "z", "start": 17, "type": "Identifier" @@ -49,9 +53,11 @@ expression: actual "abs_path": false, "commentStart": 6, "end": 9, + "moduleId": 0, "name": { "commentStart": 6, "end": 9, + "moduleId": 0, "name": "foo", "start": 6, "type": "Identifier" @@ -62,6 +68,7 @@ expression: actual }, "commentStart": 6, "end": 19, + "moduleId": 0, "start": 6, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69,9 +76,11 @@ expression: actual "abs_path": false, "commentStart": 10, "end": 11, + "moduleId": 0, "name": { "commentStart": 10, "end": 11, + "moduleId": 0, "name": "x", "start": 10, "type": "Identifier" @@ -82,11 +91,13 @@ expression: actual "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 19, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -94,5 +105,6 @@ expression: actual ], "commentStart": 0, "end": 19, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__l.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__l.snap index 0b8393efd..0b3de0d2f 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__l.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__l.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 6, "end": 22, + "moduleId": 0, "properties": [ { "commentStart": 8, @@ -26,15 +28,18 @@ expression: actual "key": { "commentStart": 8, "end": 9, + "moduleId": 0, "name": "a", "start": 8, "type": "Identifier" }, + "moduleId": 0, "start": 8, "type": "ObjectProperty", "value": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "1", "start": 12, "type": "Literal", @@ -51,15 +56,18 @@ expression: actual "key": { "commentStart": 15, "end": 16, + "moduleId": 0, "name": "b", "start": 15, "type": "Identifier" }, + "moduleId": 0, "start": 15, "type": "ObjectProperty", "value": { "commentStart": 19, "end": 20, + "moduleId": 0, "raw": "2", "start": 19, "type": "Literal", @@ -75,11 +83,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 22, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,6 +102,7 @@ expression: actual "id": { "commentStart": 27, "end": 33, + "moduleId": 0, "name": "height", "start": 27, "type": "Identifier" @@ -106,13 +117,16 @@ expression: actual "commentStart": 37, "computed": false, "end": 45, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 37, "end": 40, + "moduleId": 0, "name": { "commentStart": 37, "end": 40, + "moduleId": 0, "name": "obj", "start": 37, "type": "Identifier" @@ -125,6 +139,7 @@ expression: actual "property": { "commentStart": 41, "end": 44, + "moduleId": 0, "raw": "\"a\"", "start": 41, "type": "Literal", @@ -135,10 +150,12 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 48, "end": 49, + "moduleId": 0, "raw": "1", "start": 48, "type": "Literal", @@ -155,6 +172,7 @@ expression: actual { "commentStart": 51, "end": 52, + "moduleId": 0, "raw": "0", "start": 51, "type": "Literal", @@ -166,15 +184,18 @@ expression: actual } ], "end": 53, + "moduleId": 0, "start": 36, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 27, "type": "VariableDeclarator" }, "end": 53, "kind": "const", + "moduleId": 0, "start": 27, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -182,5 +203,6 @@ expression: actual ], "commentStart": 0, "end": 53, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__m.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__m.snap index 26e99904e..654137f93 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__m.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__m.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 6, "end": 21, + "moduleId": 0, "properties": [ { "commentStart": 7, @@ -26,15 +28,18 @@ expression: actual "key": { "commentStart": 7, "end": 8, + "moduleId": 0, "name": "a", "start": 7, "type": "Identifier" }, + "moduleId": 0, "start": 7, "type": "ObjectProperty", "value": { "commentStart": 11, "end": 12, + "moduleId": 0, "raw": "1", "start": 11, "type": "Literal", @@ -51,15 +56,18 @@ expression: actual "key": { "commentStart": 14, "end": 15, + "moduleId": 0, "name": "b", "start": 14, "type": "Identifier" }, + "moduleId": 0, "start": 14, "type": "ObjectProperty", "value": { "commentStart": 18, "end": 19, + "moduleId": 0, "raw": "2", "start": 18, "type": "Literal", @@ -75,11 +83,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 21, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,6 +102,7 @@ expression: actual "id": { "commentStart": 26, "end": 32, + "moduleId": 0, "name": "height", "start": 26, "type": "Identifier" @@ -106,13 +117,16 @@ expression: actual "commentStart": 36, "computed": false, "end": 44, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 36, "end": 39, + "moduleId": 0, "name": { "commentStart": 36, "end": 39, + "moduleId": 0, "name": "obj", "start": 36, "type": "Identifier" @@ -125,6 +139,7 @@ expression: actual "property": { "commentStart": 40, "end": 43, + "moduleId": 0, "raw": "\"a\"", "start": 40, "type": "Literal", @@ -135,10 +150,12 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 46, "end": 47, + "moduleId": 0, "raw": "1", "start": 46, "type": "Literal", @@ -155,6 +172,7 @@ expression: actual { "commentStart": 49, "end": 50, + "moduleId": 0, "raw": "0", "start": 49, "type": "Literal", @@ -166,15 +184,18 @@ expression: actual } ], "end": 51, + "moduleId": 0, "start": 35, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 26, "type": "VariableDeclarator" }, "end": 51, "kind": "const", + "moduleId": 0, "start": 26, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -182,5 +203,6 @@ expression: actual ], "commentStart": 0, "end": 51, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__n.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__n.snap index b69558e4c..c22f3a1dd 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__n.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__n.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 6, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ expression: actual "left": { "commentStart": 9, "end": 10, + "moduleId": 0, "raw": "1", "start": 9, "type": "Literal", @@ -31,18 +33,22 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 13, "computed": false, "end": 18, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 13, "end": 16, + "moduleId": 0, "name": { "commentStart": 13, "end": 16, + "moduleId": 0, "name": "obj", "start": 13, "type": "Identifier" @@ -55,6 +61,7 @@ expression: actual "property": { "commentStart": 17, "end": 18, + "moduleId": 0, "name": "a", "start": 17, "type": "Identifier", @@ -68,11 +75,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 18, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -80,5 +89,6 @@ expression: actual ], "commentStart": 0, "end": 18, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__o.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__o.snap index 07145fbf6..c810e12ec 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__o.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__o.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "six", "start": 0, "type": "Identifier" @@ -25,6 +26,7 @@ expression: actual "left": { "commentStart": 6, "end": 7, + "moduleId": 0, "raw": "1", "start": 6, "type": "Literal", @@ -34,10 +36,12 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 10, "end": 11, + "moduleId": 0, "raw": "2", "start": 10, "type": "Literal", @@ -51,10 +55,12 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 14, "end": 15, + "moduleId": 0, "raw": "3", "start": 14, "type": "Literal", @@ -68,11 +74,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 15, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -80,5 +88,6 @@ expression: actual ], "commentStart": 0, "end": 15, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__p.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__p.snap index 6cd7b3a02..b63d18bd1 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__p.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__p.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 4, + "moduleId": 0, "name": "five", "start": 0, "type": "Identifier" @@ -25,6 +26,7 @@ expression: actual "left": { "commentStart": 7, "end": 8, + "moduleId": 0, "raw": "3", "start": 7, "type": "Literal", @@ -34,10 +36,12 @@ expression: actual "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 11, "end": 12, + "moduleId": 0, "raw": "1", "start": 11, "type": "Literal", @@ -51,10 +55,12 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 15, "end": 16, + "moduleId": 0, "raw": "2", "start": 15, "type": "Literal", @@ -68,11 +74,13 @@ expression: actual "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 16, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -80,5 +88,6 @@ expression: actual ], "commentStart": 0, "end": 16, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__q.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__q.snap index 96df90417..2d33f44b1 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__q.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__q.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 6, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -23,13 +24,16 @@ expression: actual "commentStart": 11, "computed": false, "end": 19, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 11, "end": 14, + "moduleId": 0, "name": { "commentStart": 11, "end": 14, + "moduleId": 0, "name": "obj", "start": 11, "type": "Identifier" @@ -42,6 +46,7 @@ expression: actual "property": { "commentStart": 15, "end": 18, + "moduleId": 0, "raw": "\"a\"", "start": 15, "type": "Literal", @@ -55,6 +60,7 @@ expression: actual { "commentStart": 21, "end": 22, + "moduleId": 0, "raw": "0", "start": 21, "type": "Literal", @@ -66,15 +72,18 @@ expression: actual } ], "end": 24, + "moduleId": 0, "start": 9, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 24, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,5 +91,6 @@ expression: actual ], "commentStart": 0, "end": 24, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__r.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__r.snap index 4f78c1af4..4b5ae0468 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__r.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__r.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -19,6 +20,7 @@ expression: actual "init": { "commentStart": 6, "end": 22, + "moduleId": 0, "properties": [ { "commentStart": 8, @@ -26,15 +28,18 @@ expression: actual "key": { "commentStart": 8, "end": 9, + "moduleId": 0, "name": "a", "start": 8, "type": "Identifier" }, + "moduleId": 0, "start": 8, "type": "ObjectProperty", "value": { "commentStart": 12, "end": 13, + "moduleId": 0, "raw": "1", "start": 12, "type": "Literal", @@ -51,15 +56,18 @@ expression: actual "key": { "commentStart": 15, "end": 16, + "moduleId": 0, "name": "b", "start": 15, "type": "Identifier" }, + "moduleId": 0, "start": 15, "type": "ObjectProperty", "value": { "commentStart": 19, "end": 20, + "moduleId": 0, "raw": "2", "start": 19, "type": "Literal", @@ -75,11 +83,13 @@ expression: actual "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 22, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,6 +102,7 @@ expression: actual "id": { "commentStart": 27, "end": 33, + "moduleId": 0, "name": "height", "start": 27, "type": "Identifier" @@ -100,13 +111,16 @@ expression: actual "commentStart": 36, "computed": false, "end": 44, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 36, "end": 39, + "moduleId": 0, "name": { "commentStart": 36, "end": 39, + "moduleId": 0, "name": "obj", "start": 36, "type": "Identifier" @@ -119,6 +133,7 @@ expression: actual "property": { "commentStart": 40, "end": 43, + "moduleId": 0, "raw": "\"a\"", "start": 40, "type": "Literal", @@ -129,11 +144,13 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 27, "type": "VariableDeclarator" }, "end": 44, "kind": "const", + "moduleId": 0, "start": 27, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -141,5 +158,6 @@ expression: actual ], "commentStart": 0, "end": 44, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__s.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__s.snap index e5a228f43..3f6258dd5 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__s.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__s.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 4, + "moduleId": 0, "name": "prop", "start": 0, "type": "Identifier" @@ -20,17 +21,21 @@ expression: actual "commentStart": 7, "computed": true, "end": 21, + "moduleId": 0, "object": { "commentStart": 7, "computed": false, "end": 16, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 7, "end": 9, + "moduleId": 0, "name": { "commentStart": 7, "end": 9, + "moduleId": 0, "name": "yo", "start": 7, "type": "Identifier" @@ -43,6 +48,7 @@ expression: actual "property": { "commentStart": 10, "end": 15, + "moduleId": 0, "raw": "\"one\"", "start": 10, "type": "Literal", @@ -56,6 +62,7 @@ expression: actual "property": { "commentStart": 17, "end": 20, + "moduleId": 0, "name": "two", "start": 17, "type": "Identifier", @@ -65,11 +72,13 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 21, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -77,5 +86,6 @@ expression: actual ], "commentStart": 0, "end": 21, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__t.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__t.snap index 07eba2d4d..3fe99d2d2 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__t.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__t.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "pt1", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ expression: actual "commentStart": 6, "computed": true, "end": 11, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 6, "end": 8, + "moduleId": 0, "name": { "commentStart": 6, "end": 8, + "moduleId": 0, "name": "b1", "start": 6, "type": "Identifier" @@ -39,6 +43,7 @@ expression: actual "property": { "commentStart": 9, "end": 10, + "moduleId": 0, "name": "x", "start": 9, "type": "Identifier", @@ -48,11 +53,13 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 11, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -60,5 +67,6 @@ expression: actual ], "commentStart": 0, "end": 11, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__u.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__u.snap index 407877ccb..ec696cbbb 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__u.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__u.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 4, + "moduleId": 0, "name": "prop", "start": 0, "type": "Identifier" @@ -20,25 +21,31 @@ expression: actual "commentStart": 7, "computed": false, "end": 28, + "moduleId": 0, "object": { "commentStart": 7, "computed": false, "end": 23, + "moduleId": 0, "object": { "commentStart": 7, "computed": false, "end": 17, + "moduleId": 0, "object": { "commentStart": 7, "computed": false, "end": 13, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 7, "end": 9, + "moduleId": 0, "name": { "commentStart": 7, "end": 9, + "moduleId": 0, "name": "yo", "start": 7, "type": "Identifier" @@ -51,6 +58,7 @@ expression: actual "property": { "commentStart": 10, "end": 13, + "moduleId": 0, "name": "one", "start": 10, "type": "Identifier", @@ -63,6 +71,7 @@ expression: actual "property": { "commentStart": 14, "end": 17, + "moduleId": 0, "name": "two", "start": 14, "type": "Identifier", @@ -75,6 +84,7 @@ expression: actual "property": { "commentStart": 18, "end": 23, + "moduleId": 0, "name": "three", "start": 18, "type": "Identifier", @@ -87,6 +97,7 @@ expression: actual "property": { "commentStart": 24, "end": 28, + "moduleId": 0, "name": "four", "start": 24, "type": "Identifier", @@ -96,11 +107,13 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 28, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -108,5 +121,6 @@ expression: actual ], "commentStart": 0, "end": 28, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__v.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__v.snap index 2193cacb9..5286e00d2 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__v.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__v.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "pt1", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ expression: actual "commentStart": 6, "computed": false, "end": 11, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 6, "end": 8, + "moduleId": 0, "name": { "commentStart": 6, "end": 8, + "moduleId": 0, "name": "b1", "start": 6, "type": "Identifier" @@ -39,6 +43,7 @@ expression: actual "property": { "commentStart": 9, "end": 10, + "moduleId": 0, "raw": "0", "start": 9, "type": "Literal", @@ -52,11 +57,13 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 11, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -64,5 +71,6 @@ expression: actual ], "commentStart": 0, "end": 11, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__w.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__w.snap index 9b143f570..f11701303 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__w.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__w.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "pt1", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ expression: actual "commentStart": 6, "computed": false, "end": 16, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 6, "end": 8, + "moduleId": 0, "name": { "commentStart": 6, "end": 8, + "moduleId": 0, "name": "b1", "start": 6, "type": "Identifier" @@ -39,6 +43,7 @@ expression: actual "property": { "commentStart": 9, "end": 15, + "moduleId": 0, "raw": "'zero'", "start": 9, "type": "Literal", @@ -49,11 +54,13 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 16, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -61,5 +68,6 @@ expression: actual ], "commentStart": 0, "end": 16, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__x.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__x.snap index 0c43a1010..e65885c4a 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__x.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__x.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 3, + "moduleId": 0, "name": "pt1", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ expression: actual "commentStart": 6, "computed": false, "end": 13, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 6, "end": 8, + "moduleId": 0, "name": { "commentStart": 6, "end": 8, + "moduleId": 0, "name": "b1", "start": 6, "type": "Identifier" @@ -39,6 +43,7 @@ expression: actual "property": { "commentStart": 9, "end": 13, + "moduleId": 0, "name": "zero", "start": 9, "type": "Identifier", @@ -48,11 +53,13 @@ expression: actual "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 13, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -60,5 +67,6 @@ expression: actual ], "commentStart": 0, "end": 13, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__y.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__y.snap index 8e542b8be..3a14185bf 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__y.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__y.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 2, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 5, "end": 18, + "moduleId": 0, "name": { "commentStart": 5, "end": 18, + "moduleId": 0, "name": "startSketchOn", "start": 5, "type": "Identifier" @@ -36,6 +40,7 @@ expression: actual }, "commentStart": 5, "end": 22, + "moduleId": 0, "start": 5, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 19, "end": 21, + "moduleId": 0, "name": { "commentStart": 19, "end": 21, + "moduleId": 0, "name": "XY", "start": 19, "type": "Identifier" @@ -57,13 +64,16 @@ expression: actual } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 26, "end": 38, + "moduleId": 0, "name": { "commentStart": 26, "end": 38, + "moduleId": 0, "name": "startProfile", "start": 26, "type": "Identifier" @@ -74,6 +84,7 @@ expression: actual }, "commentStart": 26, "end": 43, + "moduleId": 0, "start": 26, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -81,9 +92,11 @@ expression: actual "abs_path": false, "commentStart": 39, "end": 42, + "moduleId": 0, "name": { "commentStart": 39, "end": 42, + "moduleId": 0, "name": "pos", "start": 39, "type": "Identifier" @@ -97,15 +110,18 @@ expression: actual ], "commentStart": 5, "end": 43, + "moduleId": 0, "start": 5, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 43, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -113,5 +129,6 @@ expression: actual ], "commentStart": 0, "end": 43, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__z.snap b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__z.snap index e7d918c0b..842f9f1b8 100644 --- a/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__z.snap +++ b/rust/kcl-lib/src/parsing/snapshots/kcl_lib__parsing__parser__snapshot_tests__z.snap @@ -12,6 +12,7 @@ expression: actual "id": { "commentStart": 0, "end": 2, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -19,13 +20,16 @@ expression: actual "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 5, "end": 18, + "moduleId": 0, "name": { "commentStart": 5, "end": 18, + "moduleId": 0, "name": "startSketchOn", "start": 5, "type": "Identifier" @@ -36,6 +40,7 @@ expression: actual }, "commentStart": 5, "end": 22, + "moduleId": 0, "start": 5, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ expression: actual "abs_path": false, "commentStart": 19, "end": 21, + "moduleId": 0, "name": { "commentStart": 19, "end": 21, + "moduleId": 0, "name": "XY", "start": 19, "type": "Identifier" @@ -57,13 +64,16 @@ expression: actual } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 30, "end": 42, + "moduleId": 0, "name": { "commentStart": 30, "end": 42, + "moduleId": 0, "name": "startProfile", "start": 30, "type": "Identifier" @@ -74,6 +84,7 @@ expression: actual }, "commentStart": 30, "end": 47, + "moduleId": 0, "start": 30, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -81,9 +92,11 @@ expression: actual "abs_path": false, "commentStart": 43, "end": 46, + "moduleId": 0, "name": { "commentStart": 43, "end": 46, + "moduleId": 0, "name": "pos", "start": 43, "type": "Identifier" @@ -95,13 +108,16 @@ expression: actual } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 51, "end": 55, + "moduleId": 0, "name": { "commentStart": 51, "end": 55, + "moduleId": 0, "name": "line", "start": 51, "type": "Identifier" @@ -112,6 +128,7 @@ expression: actual }, "commentStart": 51, "end": 68, + "moduleId": 0, "start": 51, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -121,6 +138,7 @@ expression: actual { "commentStart": 57, "end": 58, + "moduleId": 0, "raw": "0", "start": 57, "type": "Literal", @@ -135,9 +153,11 @@ expression: actual "abs_path": false, "commentStart": 61, "end": 66, + "moduleId": 0, "name": { "commentStart": 61, "end": 66, + "moduleId": 0, "name": "scale", "start": 61, "type": "Identifier" @@ -149,6 +169,7 @@ expression: actual }, "commentStart": 60, "end": 66, + "moduleId": 0, "operator": "-", "start": 60, "type": "UnaryExpression", @@ -156,6 +177,7 @@ expression: actual } ], "end": 67, + "moduleId": 0, "start": 56, "type": "ArrayExpression", "type": "ArrayExpression" @@ -164,15 +186,18 @@ expression: actual ], "commentStart": 5, "end": 68, + "moduleId": 0, "start": 5, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 68, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -180,5 +205,6 @@ expression: actual ], "commentStart": 0, "end": 68, + "moduleId": 0, "start": 0 } diff --git a/rust/kcl-lib/src/settings/types/mod.rs b/rust/kcl-lib/src/settings/types/mod.rs index e2b9a137c..f2e79619d 100644 --- a/rust/kcl-lib/src/settings/types/mod.rs +++ b/rust/kcl-lib/src/settings/types/mod.rs @@ -96,7 +96,7 @@ pub struct AppSettings { pub show_debug_panel: bool, /// If true, the grid cells will be fixed-size, where the width is your default length unit. /// If false, the grid will get larger as you zoom out, and smaller as you zoom in. - #[serde(default = "make_it_so")] + #[serde(default = "make_it_so", skip_serializing_if = "is_true")] pub fixed_size_grid: bool, } @@ -105,6 +105,10 @@ fn make_it_so() -> bool { true } +fn is_true(b: &bool) -> bool { + *b +} + impl Default for AppSettings { fn default() -> Self { Self { @@ -691,7 +695,6 @@ text_wrapping = true"#; serialized, r#"[settings.app] onboarding_status = "dismissed" -fixed_size_grid = true [settings.app.appearance] theme = "dark" diff --git a/rust/kcl-lib/tests/add_lots/ast.snap b/rust/kcl-lib/tests/add_lots/ast.snap index 08a54e2d8..e809c7d99 100644 --- a/rust/kcl-lib/tests/add_lots/ast.snap +++ b/rust/kcl-lib/tests/add_lots/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing add_lots.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -28,9 +29,11 @@ description: Result of parsing add_lots.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -40,10 +43,12 @@ description: Result of parsing add_lots.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -59,6 +64,7 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -66,16 +72,19 @@ description: Result of parsing add_lots.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -87,11 +96,13 @@ description: Result of parsing add_lots.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -104,6 +115,7 @@ description: Result of parsing add_lots.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -274,13 +286,16 @@ description: Result of parsing add_lots.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -291,12 +306,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -307,15 +324,19 @@ description: Result of parsing add_lots.kcl } } }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -326,12 +347,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -346,15 +369,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -365,12 +392,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -385,15 +414,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -404,12 +437,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -424,15 +459,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -443,12 +482,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -463,15 +504,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -482,12 +527,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -502,15 +549,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -521,12 +572,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -541,15 +594,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -560,12 +617,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -580,15 +639,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -599,12 +662,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -619,15 +684,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -638,12 +707,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -658,15 +729,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -677,12 +752,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -697,15 +774,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -716,12 +797,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -736,15 +819,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -755,12 +842,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -775,15 +864,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -794,12 +887,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13", "start": 0, "type": "Literal", @@ -814,15 +909,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -833,12 +932,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -853,15 +954,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -872,12 +977,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -892,15 +999,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -911,12 +1022,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -931,15 +1044,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -950,12 +1067,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17", "start": 0, "type": "Literal", @@ -970,15 +1089,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -989,12 +1112,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -1009,15 +1134,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1028,12 +1157,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19", "start": 0, "type": "Literal", @@ -1048,15 +1179,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1067,12 +1202,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -1087,15 +1224,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1106,12 +1247,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21", "start": 0, "type": "Literal", @@ -1126,15 +1269,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1145,12 +1292,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22", "start": 0, "type": "Literal", @@ -1165,15 +1314,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1184,12 +1337,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23", "start": 0, "type": "Literal", @@ -1204,15 +1359,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1223,12 +1382,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24", "start": 0, "type": "Literal", @@ -1243,15 +1404,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1262,12 +1427,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -1282,15 +1449,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1301,12 +1472,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26", "start": 0, "type": "Literal", @@ -1321,15 +1494,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1340,12 +1517,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "27", "start": 0, "type": "Literal", @@ -1360,15 +1539,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1379,12 +1562,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "28", "start": 0, "type": "Literal", @@ -1399,15 +1584,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1418,12 +1607,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "29", "start": 0, "type": "Literal", @@ -1438,15 +1629,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1457,12 +1652,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -1477,15 +1674,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1496,12 +1697,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "31", "start": 0, "type": "Literal", @@ -1516,15 +1719,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1535,12 +1742,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "32", "start": 0, "type": "Literal", @@ -1555,15 +1764,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1574,12 +1787,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "33", "start": 0, "type": "Literal", @@ -1594,15 +1809,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1613,12 +1832,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "34", "start": 0, "type": "Literal", @@ -1633,15 +1854,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1652,12 +1877,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -1672,15 +1899,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1691,12 +1922,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36", "start": 0, "type": "Literal", @@ -1711,15 +1944,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1730,12 +1967,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "37", "start": 0, "type": "Literal", @@ -1750,15 +1989,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1769,12 +2012,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "38", "start": 0, "type": "Literal", @@ -1789,15 +2034,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1808,12 +2057,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "39", "start": 0, "type": "Literal", @@ -1828,15 +2079,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1847,12 +2102,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -1867,15 +2124,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1886,12 +2147,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41", "start": 0, "type": "Literal", @@ -1906,15 +2169,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1925,12 +2192,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "42", "start": 0, "type": "Literal", @@ -1945,15 +2214,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -1964,12 +2237,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "43", "start": 0, "type": "Literal", @@ -1984,15 +2259,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2003,12 +2282,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "44", "start": 0, "type": "Literal", @@ -2023,15 +2304,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2042,12 +2327,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -2062,15 +2349,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2081,12 +2372,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "46", "start": 0, "type": "Literal", @@ -2101,15 +2394,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2120,12 +2417,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47", "start": 0, "type": "Literal", @@ -2140,15 +2439,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2159,12 +2462,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "48", "start": 0, "type": "Literal", @@ -2179,15 +2484,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2198,12 +2507,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "49", "start": 0, "type": "Literal", @@ -2218,15 +2529,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2237,12 +2552,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -2257,15 +2574,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2276,12 +2597,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "51", "start": 0, "type": "Literal", @@ -2296,15 +2619,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2315,12 +2642,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "52", "start": 0, "type": "Literal", @@ -2335,15 +2664,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2354,12 +2687,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "53", "start": 0, "type": "Literal", @@ -2374,15 +2709,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2393,12 +2732,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "54", "start": 0, "type": "Literal", @@ -2413,15 +2754,19 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2432,12 +2777,14 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -2452,11 +2799,13 @@ description: Result of parsing add_lots.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2471,6 +2820,7 @@ description: Result of parsing add_lots.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -2478,6 +2828,7 @@ description: Result of parsing add_lots.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3080", "start": 0, "type": "Literal", @@ -2493,6 +2844,7 @@ description: Result of parsing add_lots.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -2500,6 +2852,7 @@ description: Result of parsing add_lots.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"Big sum\"", "start": 0, "type": "Literal", @@ -2512,9 +2865,11 @@ description: Result of parsing add_lots.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -2525,6 +2880,7 @@ description: Result of parsing add_lots.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2532,9 +2888,11 @@ description: Result of parsing add_lots.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -2545,6 +2903,7 @@ description: Result of parsing add_lots.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2552,12 +2911,14 @@ description: Result of parsing add_lots.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2569,6 +2930,7 @@ description: Result of parsing add_lots.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/angled_line/ast.snap b/rust/kcl-lib/tests/angled_line/ast.snap index e3de01be8..7616f00c3 100644 --- a/rust/kcl-lib/tests/angled_line/ast.snap +++ b/rust/kcl-lib/tests/angled_line/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing angled_line.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing angled_line.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing angled_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing angled_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing angled_line.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.83", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing angled_line.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.56", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing angled_line.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing angled_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing angled_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing angled_line.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.1", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing angled_line.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.48", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing angled_line.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,9 +193,11 @@ description: Result of parsing angled_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -188,6 +208,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -200,6 +221,7 @@ description: Result of parsing angled_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -210,6 +232,7 @@ description: Result of parsing angled_line.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.15", "start": 0, "type": "Literal", @@ -223,6 +246,7 @@ description: Result of parsing angled_line.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.85", "start": 0, "type": "Literal", @@ -234,6 +258,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -241,6 +266,7 @@ description: Result of parsing angled_line.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -251,6 +277,7 @@ description: Result of parsing angled_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -258,6 +285,7 @@ description: Result of parsing angled_line.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -269,9 +297,11 @@ description: Result of parsing angled_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -282,6 +312,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -294,6 +325,7 @@ description: Result of parsing angled_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -305,6 +337,7 @@ description: Result of parsing angled_line.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.17", "start": 0, "type": "Literal", @@ -316,6 +349,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -325,6 +359,7 @@ description: Result of parsing angled_line.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.1", "start": 0, "type": "Literal", @@ -336,6 +371,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -343,6 +379,7 @@ description: Result of parsing angled_line.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -353,9 +390,11 @@ description: Result of parsing angled_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -366,6 +405,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -378,18 +418,22 @@ description: Result of parsing angled_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -400,6 +444,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -407,9 +452,11 @@ description: Result of parsing angled_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -426,6 +473,7 @@ description: Result of parsing angled_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -433,6 +481,7 @@ description: Result of parsing angled_line.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.35", "start": 0, "type": "Literal", @@ -448,9 +497,11 @@ description: Result of parsing angled_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -461,6 +512,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -473,6 +525,7 @@ description: Result of parsing angled_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -484,6 +537,7 @@ description: Result of parsing angled_line.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.02", "start": 0, "type": "Literal", @@ -495,6 +549,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -503,6 +558,7 @@ description: Result of parsing angled_line.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.03", "start": 0, "type": "Literal", @@ -514,6 +570,7 @@ description: Result of parsing angled_line.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -524,9 +581,11 @@ description: Result of parsing angled_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -537,19 +596,23 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -560,6 +623,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -572,6 +636,7 @@ description: Result of parsing angled_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -579,6 +644,7 @@ description: Result of parsing angled_line.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -594,9 +660,11 @@ description: Result of parsing angled_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -607,6 +675,7 @@ description: Result of parsing angled_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -615,15 +684,18 @@ description: Result of parsing angled_line.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -631,6 +703,7 @@ description: Result of parsing angled_line.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/angled_line/program_memory.snap b/rust/kcl-lib/tests/angled_line/program_memory.snap index 6f6ed729a..2b3f25942 100644 --- a/rust/kcl-lib/tests/angled_line/program_memory.snap +++ b/rust/kcl-lib/tests/angled_line/program_memory.snap @@ -24,6 +24,7 @@ description: Variables in memory after executing angled_line.kcl "tag": { "commentStart": 133, "end": 139, + "moduleId": 0, "start": 133, "type": "TagDeclarator", "value": "seg01" @@ -94,6 +95,7 @@ description: Variables in memory after executing angled_line.kcl "tag": { "commentStart": 133, "end": 139, + "moduleId": 0, "start": 133, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/any_type/ast.snap b/rust/kcl-lib/tests/any_type/ast.snap index 6055ffefa..7dce2097b 100644 --- a/rust/kcl-lib/tests/any_type/ast.snap +++ b/rust/kcl-lib/tests/any_type/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing any_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "id", "start": 0, "type": "Identifier" @@ -25,9 +26,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -39,6 +42,7 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -46,16 +50,19 @@ description: Result of parsing any_type.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -67,11 +74,13 @@ description: Result of parsing any_type.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -84,6 +93,7 @@ description: Result of parsing any_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleton", "start": 0, "type": "Identifier" @@ -99,9 +109,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -113,12 +125,14 @@ description: Result of parsing any_type.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -126,16 +140,19 @@ description: Result of parsing any_type.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -147,11 +164,13 @@ description: Result of parsing any_type.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -164,6 +183,7 @@ description: Result of parsing any_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "len", "start": 0, "type": "Identifier" @@ -179,6 +199,7 @@ description: Result of parsing any_type.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "initial", "start": 0, "type": "Identifier" @@ -186,6 +207,7 @@ description: Result of parsing any_type.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -201,6 +223,7 @@ description: Result of parsing any_type.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -216,9 +239,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "accum", "start": 0, "type": "Identifier" @@ -228,10 +253,12 @@ description: Result of parsing any_type.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -247,6 +274,7 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -254,16 +282,19 @@ description: Result of parsing any_type.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "_", "start": 0, "type": "Identifier" @@ -275,6 +306,7 @@ description: Result of parsing any_type.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "accum", "start": 0, "type": "Identifier" @@ -291,9 +323,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reduce", "start": 0, "type": "Identifier" @@ -304,6 +338,7 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -311,9 +346,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -326,6 +363,7 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -333,16 +371,19 @@ description: Result of parsing any_type.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -354,11 +395,13 @@ description: Result of parsing any_type.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -371,18 +414,22 @@ description: Result of parsing any_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "id", "start": 0, "type": "Identifier" @@ -393,12 +440,14 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -409,11 +458,13 @@ description: Result of parsing any_type.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -426,18 +477,22 @@ description: Result of parsing any_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "id", "start": 0, "type": "Identifier" @@ -448,12 +503,14 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"a\"", "start": 0, "type": "Literal", @@ -461,11 +518,13 @@ description: Result of parsing any_type.kcl "value": "a" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -478,18 +537,22 @@ description: Result of parsing any_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr1", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleton", "start": 0, "type": "Identifier" @@ -500,12 +563,14 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -516,11 +581,13 @@ description: Result of parsing any_type.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -533,18 +600,22 @@ description: Result of parsing any_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "len0", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "len", "start": 0, "type": "Identifier" @@ -555,6 +626,7 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -562,16 +634,19 @@ description: Result of parsing any_type.kcl "commentStart": 0, "elements": [], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -584,18 +659,22 @@ description: Result of parsing any_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "len1", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "len", "start": 0, "type": "Identifier" @@ -606,6 +685,7 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -615,6 +695,7 @@ description: Result of parsing any_type.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -626,16 +707,19 @@ description: Result of parsing any_type.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -650,6 +734,7 @@ description: Result of parsing any_type.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -657,6 +742,7 @@ description: Result of parsing any_type.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -672,9 +758,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -685,6 +773,7 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -692,9 +781,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier" @@ -705,6 +796,7 @@ description: Result of parsing any_type.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -719,6 +811,7 @@ description: Result of parsing any_type.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -726,6 +819,7 @@ description: Result of parsing any_type.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -741,9 +835,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -754,6 +850,7 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -761,9 +858,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "len0", "start": 0, "type": "Identifier" @@ -774,6 +873,7 @@ description: Result of parsing any_type.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "// TODO: we cannot currently assert on strings.", "// assert(a, isEqualTo = \"a\")", @@ -794,6 +894,7 @@ description: Result of parsing any_type.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -801,6 +902,7 @@ description: Result of parsing any_type.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -816,9 +918,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -829,6 +933,7 @@ description: Result of parsing any_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -836,9 +941,11 @@ description: Result of parsing any_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "len1", "start": 0, "type": "Identifier" @@ -849,6 +956,7 @@ description: Result of parsing any_type.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -856,12 +964,14 @@ description: Result of parsing any_type.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -873,6 +983,7 @@ description: Result of parsing any_type.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -884,6 +995,7 @@ description: Result of parsing any_type.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -895,6 +1007,7 @@ description: Result of parsing any_type.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -906,6 +1019,7 @@ description: Result of parsing any_type.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/argument_error/ast.snap b/rust/kcl-lib/tests/argument_error/ast.snap index db4f99689..52f0b3426 100644 --- a/rust/kcl-lib/tests/argument_error/ast.snap +++ b/rust/kcl-lib/tests/argument_error/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing argument_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -24,6 +25,7 @@ description: Result of parsing argument_error.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing argument_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -42,16 +45,19 @@ description: Result of parsing argument_error.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -63,11 +69,13 @@ description: Result of parsing argument_error.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing argument_error.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -92,6 +101,7 @@ description: Result of parsing argument_error.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -104,6 +114,7 @@ description: Result of parsing argument_error.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -115,6 +126,7 @@ description: Result of parsing argument_error.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -125,9 +137,11 @@ description: Result of parsing argument_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "map", "start": 0, "type": "Identifier" @@ -138,6 +152,7 @@ description: Result of parsing argument_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -145,9 +160,11 @@ description: Result of parsing argument_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -158,6 +175,7 @@ description: Result of parsing argument_error.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -165,12 +183,14 @@ description: Result of parsing argument_error.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/array_elem_pop/ast.snap b/rust/kcl-lib/tests/array_elem_pop/ast.snap index 322bdb4fa..642475932 100644 --- a/rust/kcl-lib/tests/array_elem_pop/ast.snap +++ b/rust/kcl-lib/tests/array_elem_pop/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_elem_pop.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing array_elem_pop.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing array_elem_pop.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing array_elem_pop.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -58,15 +62,18 @@ description: Result of parsing array_elem_pop.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,18 +86,22 @@ description: Result of parsing array_elem_pop.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pop", "start": 0, "type": "Identifier" @@ -101,6 +112,7 @@ description: Result of parsing array_elem_pop.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -108,9 +120,11 @@ description: Result of parsing array_elem_pop.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -121,11 +135,13 @@ description: Result of parsing array_elem_pop.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -138,18 +154,22 @@ description: Result of parsing array_elem_pop.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr2", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pop", "start": 0, "type": "Identifier" @@ -160,6 +180,7 @@ description: Result of parsing array_elem_pop.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -167,9 +188,11 @@ description: Result of parsing array_elem_pop.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" @@ -180,11 +203,13 @@ description: Result of parsing array_elem_pop.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -197,18 +222,22 @@ description: Result of parsing array_elem_pop.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr3", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pop", "start": 0, "type": "Identifier" @@ -219,6 +248,7 @@ description: Result of parsing array_elem_pop.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -226,9 +256,11 @@ description: Result of parsing array_elem_pop.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr2", "start": 0, "type": "Identifier" @@ -239,11 +271,13 @@ description: Result of parsing array_elem_pop.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -258,6 +292,7 @@ description: Result of parsing array_elem_pop.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -265,6 +300,7 @@ description: Result of parsing array_elem_pop.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -280,6 +316,7 @@ description: Result of parsing array_elem_pop.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -287,6 +324,7 @@ description: Result of parsing array_elem_pop.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"element 0 should not have changed\"", "start": 0, "type": "Literal", @@ -299,9 +337,11 @@ description: Result of parsing array_elem_pop.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -312,6 +352,7 @@ description: Result of parsing array_elem_pop.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -319,13 +360,16 @@ description: Result of parsing array_elem_pop.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" @@ -338,6 +382,7 @@ description: Result of parsing array_elem_pop.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -352,6 +397,7 @@ description: Result of parsing array_elem_pop.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -366,6 +412,7 @@ description: Result of parsing array_elem_pop.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -373,6 +420,7 @@ description: Result of parsing array_elem_pop.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -388,6 +436,7 @@ description: Result of parsing array_elem_pop.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -395,6 +444,7 @@ description: Result of parsing array_elem_pop.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"element 1 should not have changed\"", "start": 0, "type": "Literal", @@ -407,9 +457,11 @@ description: Result of parsing array_elem_pop.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -420,6 +472,7 @@ description: Result of parsing array_elem_pop.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -427,13 +480,16 @@ description: Result of parsing array_elem_pop.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" @@ -446,6 +502,7 @@ description: Result of parsing array_elem_pop.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -460,6 +517,7 @@ description: Result of parsing array_elem_pop.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -474,6 +532,7 @@ description: Result of parsing array_elem_pop.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -481,6 +540,7 @@ description: Result of parsing array_elem_pop.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -496,6 +556,7 @@ description: Result of parsing array_elem_pop.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -503,6 +564,7 @@ description: Result of parsing array_elem_pop.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"element 0 should not have changed\"", "start": 0, "type": "Literal", @@ -515,9 +577,11 @@ description: Result of parsing array_elem_pop.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -528,6 +592,7 @@ description: Result of parsing array_elem_pop.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -535,13 +600,16 @@ description: Result of parsing array_elem_pop.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr2", "start": 0, "type": "Identifier" @@ -554,6 +622,7 @@ description: Result of parsing array_elem_pop.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -568,6 +637,7 @@ description: Result of parsing array_elem_pop.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -575,6 +645,7 @@ description: Result of parsing array_elem_pop.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/array_elem_pop_empty_fail/ast.snap b/rust/kcl-lib/tests/array_elem_pop_empty_fail/ast.snap index b05461526..d7e818b43 100644 --- a/rust/kcl-lib/tests/array_elem_pop_empty_fail/ast.snap +++ b/rust/kcl-lib/tests/array_elem_pop_empty_fail/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_elem_pop_empty_fail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -21,15 +22,18 @@ description: Result of parsing array_elem_pop_empty_fail.kcl "commentStart": 0, "elements": [], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -42,18 +46,22 @@ description: Result of parsing array_elem_pop_empty_fail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fail", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pop", "start": 0, "type": "Identifier" @@ -64,6 +72,7 @@ description: Result of parsing array_elem_pop_empty_fail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71,9 +80,11 @@ description: Result of parsing array_elem_pop_empty_fail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -84,11 +95,13 @@ description: Result of parsing array_elem_pop_empty_fail.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -96,6 +109,7 @@ description: Result of parsing array_elem_pop_empty_fail.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/array_elem_pop_fail/ast.snap b/rust/kcl-lib/tests/array_elem_pop_fail/ast.snap index 74fd38e86..ad4363255 100644 --- a/rust/kcl-lib/tests/array_elem_pop_fail/ast.snap +++ b/rust/kcl-lib/tests/array_elem_pop_fail/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_elem_pop_fail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing array_elem_pop_fail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing array_elem_pop_fail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing array_elem_pop_fail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -58,15 +62,18 @@ description: Result of parsing array_elem_pop_fail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,18 +86,22 @@ description: Result of parsing array_elem_pop_fail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pushedArr", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pop", "start": 0, "type": "Identifier" @@ -101,6 +112,7 @@ description: Result of parsing array_elem_pop_fail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -108,9 +120,11 @@ description: Result of parsing array_elem_pop_fail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -121,11 +135,13 @@ description: Result of parsing array_elem_pop_fail.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -138,6 +154,7 @@ description: Result of parsing array_elem_pop_fail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fail", "start": 0, "type": "Identifier" @@ -146,13 +163,16 @@ description: Result of parsing array_elem_pop_fail.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pushedArr", "start": 0, "type": "Identifier" @@ -165,6 +185,7 @@ description: Result of parsing array_elem_pop_fail.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -178,11 +199,13 @@ description: Result of parsing array_elem_pop_fail.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -190,6 +213,7 @@ description: Result of parsing array_elem_pop_fail.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/array_elem_push/ast.snap b/rust/kcl-lib/tests/array_elem_push/ast.snap index 9852671d0..98d475228 100644 --- a/rust/kcl-lib/tests/array_elem_push/ast.snap +++ b/rust/kcl-lib/tests/array_elem_push/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_elem_push.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing array_elem_push.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing array_elem_push.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing array_elem_push.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -58,15 +62,18 @@ description: Result of parsing array_elem_push.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +86,7 @@ description: Result of parsing array_elem_push.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" @@ -90,6 +98,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "item", "start": 0, "type": "Identifier" @@ -97,6 +106,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -112,9 +122,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "push", "start": 0, "type": "Identifier" @@ -125,6 +137,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,9 +145,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -145,11 +160,13 @@ description: Result of parsing array_elem_push.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -162,6 +179,7 @@ description: Result of parsing array_elem_push.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr2", "start": 0, "type": "Identifier" @@ -173,6 +191,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "item", "start": 0, "type": "Identifier" @@ -180,6 +199,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -195,9 +215,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "push", "start": 0, "type": "Identifier" @@ -208,6 +230,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -215,9 +238,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" @@ -228,11 +253,13 @@ description: Result of parsing array_elem_push.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +274,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -254,6 +282,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -269,6 +298,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -276,6 +306,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"element 0 should not have changed\"", "start": 0, "type": "Literal", @@ -288,9 +319,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -301,6 +334,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -308,13 +342,16 @@ description: Result of parsing array_elem_push.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" @@ -327,6 +364,7 @@ description: Result of parsing array_elem_push.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -341,6 +379,7 @@ description: Result of parsing array_elem_push.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -355,6 +394,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -362,6 +402,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -377,6 +418,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -384,6 +426,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"element 1 should not have changed\"", "start": 0, "type": "Literal", @@ -396,9 +439,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -409,6 +454,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -416,13 +462,16 @@ description: Result of parsing array_elem_push.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" @@ -435,6 +484,7 @@ description: Result of parsing array_elem_push.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -449,6 +499,7 @@ description: Result of parsing array_elem_push.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -463,6 +514,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -470,6 +522,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -485,6 +538,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -492,6 +546,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"element 2 should not have changed\"", "start": 0, "type": "Literal", @@ -504,9 +559,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -517,6 +574,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -524,13 +582,16 @@ description: Result of parsing array_elem_push.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" @@ -543,6 +604,7 @@ description: Result of parsing array_elem_push.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -557,6 +619,7 @@ description: Result of parsing array_elem_push.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -571,6 +634,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -578,6 +642,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -593,6 +658,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -600,6 +666,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"4 was added to the end of the array\"", "start": 0, "type": "Literal", @@ -612,9 +679,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -625,6 +694,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -632,13 +702,16 @@ description: Result of parsing array_elem_push.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr1", "start": 0, "type": "Identifier" @@ -651,6 +724,7 @@ description: Result of parsing array_elem_push.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -665,6 +739,7 @@ description: Result of parsing array_elem_push.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -679,6 +754,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -686,6 +762,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -701,6 +778,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -708,6 +786,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"element 0 should not have changed\"", "start": 0, "type": "Literal", @@ -720,9 +799,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -733,6 +814,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -740,13 +822,16 @@ description: Result of parsing array_elem_push.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr2", "start": 0, "type": "Identifier" @@ -759,6 +844,7 @@ description: Result of parsing array_elem_push.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -773,6 +859,7 @@ description: Result of parsing array_elem_push.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -787,6 +874,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -794,6 +882,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -809,6 +898,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -816,6 +906,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"element 1 should not have changed\"", "start": 0, "type": "Literal", @@ -828,9 +919,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -841,6 +934,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -848,13 +942,16 @@ description: Result of parsing array_elem_push.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr2", "start": 0, "type": "Identifier" @@ -867,6 +964,7 @@ description: Result of parsing array_elem_push.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -881,6 +979,7 @@ description: Result of parsing array_elem_push.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -895,6 +994,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -902,6 +1002,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -917,6 +1018,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -924,6 +1026,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"element 2 should not have changed\"", "start": 0, "type": "Literal", @@ -936,9 +1039,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -949,6 +1054,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -956,13 +1062,16 @@ description: Result of parsing array_elem_push.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr2", "start": 0, "type": "Identifier" @@ -975,6 +1084,7 @@ description: Result of parsing array_elem_push.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -989,6 +1099,7 @@ description: Result of parsing array_elem_push.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1003,6 +1114,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -1010,6 +1122,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1025,6 +1138,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -1032,6 +1146,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"4 was added to the end of the array\"", "start": 0, "type": "Literal", @@ -1044,9 +1159,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -1057,6 +1174,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1064,13 +1182,16 @@ description: Result of parsing array_elem_push.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr2", "start": 0, "type": "Identifier" @@ -1083,6 +1204,7 @@ description: Result of parsing array_elem_push.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1097,6 +1219,7 @@ description: Result of parsing array_elem_push.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1111,6 +1234,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -1118,6 +1242,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1133,6 +1258,7 @@ description: Result of parsing array_elem_push.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -1140,6 +1266,7 @@ description: Result of parsing array_elem_push.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"5 was added to the end of the array\"", "start": 0, "type": "Literal", @@ -1152,9 +1279,11 @@ description: Result of parsing array_elem_push.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -1165,6 +1294,7 @@ description: Result of parsing array_elem_push.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1172,13 +1302,16 @@ description: Result of parsing array_elem_push.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "new_arr2", "start": 0, "type": "Identifier" @@ -1191,6 +1324,7 @@ description: Result of parsing array_elem_push.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1205,6 +1339,7 @@ description: Result of parsing array_elem_push.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1212,6 +1347,7 @@ description: Result of parsing array_elem_push.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/array_elem_push_fail/ast.snap b/rust/kcl-lib/tests/array_elem_push_fail/ast.snap index 8836cbb21..93051e775 100644 --- a/rust/kcl-lib/tests/array_elem_push_fail/ast.snap +++ b/rust/kcl-lib/tests/array_elem_push_fail/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_elem_push_fail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing array_elem_push_fail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing array_elem_push_fail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing array_elem_push_fail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -58,15 +62,18 @@ description: Result of parsing array_elem_push_fail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +86,7 @@ description: Result of parsing array_elem_push_fail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pushedArr", "start": 0, "type": "Identifier" @@ -90,6 +98,7 @@ description: Result of parsing array_elem_push_fail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "item", "start": 0, "type": "Identifier" @@ -97,6 +106,7 @@ description: Result of parsing array_elem_push_fail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -112,9 +122,11 @@ description: Result of parsing array_elem_push_fail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "push", "start": 0, "type": "Identifier" @@ -125,6 +137,7 @@ description: Result of parsing array_elem_push_fail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,9 +145,11 @@ description: Result of parsing array_elem_push_fail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -145,11 +160,13 @@ description: Result of parsing array_elem_push_fail.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -162,6 +179,7 @@ description: Result of parsing array_elem_push_fail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fail", "start": 0, "type": "Identifier" @@ -170,13 +188,16 @@ description: Result of parsing array_elem_push_fail.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -189,6 +210,7 @@ description: Result of parsing array_elem_push_fail.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -202,11 +224,13 @@ description: Result of parsing array_elem_push_fail.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing array_elem_push_fail.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/array_index_oob/ast.snap b/rust/kcl-lib/tests/array_index_oob/ast.snap index d2e7e21d9..3d3c06409 100644 --- a/rust/kcl-lib/tests/array_index_oob/ast.snap +++ b/rust/kcl-lib/tests/array_index_oob/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_index_oob.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -21,15 +22,18 @@ description: Result of parsing array_index_oob.kcl "commentStart": 0, "elements": [], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -42,6 +46,7 @@ description: Result of parsing array_index_oob.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -50,13 +55,16 @@ description: Result of parsing array_index_oob.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -69,6 +77,7 @@ description: Result of parsing array_index_oob.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -82,11 +91,13 @@ description: Result of parsing array_index_oob.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -94,6 +105,7 @@ description: Result of parsing array_index_oob.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/array_push_item_wrong_type/ast.snap b/rust/kcl-lib/tests/array_push_item_wrong_type/ast.snap index 852c3efee..893328409 100644 --- a/rust/kcl-lib/tests/array_push_item_wrong_type/ast.snap +++ b/rust/kcl-lib/tests/array_push_item_wrong_type/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -26,6 +27,7 @@ description: Result of parsing array_push_item_wrong_type.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -38,6 +40,7 @@ description: Result of parsing array_push_item_wrong_type.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -49,15 +52,18 @@ description: Result of parsing array_push_item_wrong_type.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "ty": { "commentStart": 0, "end": 0, "len": "None", + "moduleId": 0, "start": 0, "ty": { "Count": null, @@ -69,11 +75,13 @@ description: Result of parsing array_push_item_wrong_type.kcl "type": "AscribedExpression", "type": "AscribedExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -86,6 +94,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arrPrime", "start": 0, "type": "Identifier" @@ -97,6 +106,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "item", "start": 0, "type": "Identifier" @@ -104,6 +114,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4mm", "start": 0, "type": "Literal", @@ -119,9 +130,11 @@ description: Result of parsing array_push_item_wrong_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "push", "start": 0, "type": "Identifier" @@ -132,6 +145,7 @@ description: Result of parsing array_push_item_wrong_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -139,9 +153,11 @@ description: Result of parsing array_push_item_wrong_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -152,11 +168,13 @@ description: Result of parsing array_push_item_wrong_type.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -171,6 +189,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -178,6 +197,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4mm", "start": 0, "type": "Literal", @@ -193,6 +213,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -200,6 +221,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"should have been added to the end of the array\"", "start": 0, "type": "Literal", @@ -212,9 +234,11 @@ description: Result of parsing array_push_item_wrong_type.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -225,6 +249,7 @@ description: Result of parsing array_push_item_wrong_type.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -232,13 +257,16 @@ description: Result of parsing array_push_item_wrong_type.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arrPrime", "start": 0, "type": "Identifier" @@ -251,6 +279,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -265,6 +294,7 @@ description: Result of parsing array_push_item_wrong_type.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -272,6 +302,7 @@ description: Result of parsing array_push_item_wrong_type.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/array_range_expr/ast.snap b/rust/kcl-lib/tests/array_range_expr/ast.snap index a8c6668f6..cb87fc783 100644 --- a/rust/kcl-lib/tests/array_range_expr/ast.snap +++ b/rust/kcl-lib/tests/array_range_expr/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_range_expr.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing array_range_expr.kcl "endElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -33,10 +35,12 @@ description: Result of parsing array_range_expr.kcl } }, "endInclusive": true, + "moduleId": 0, "start": 0, "startElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -49,11 +53,13 @@ description: Result of parsing array_range_expr.kcl "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -68,6 +74,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -75,6 +82,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -90,6 +98,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -97,6 +106,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"last element is included\"", "start": 0, "type": "Literal", @@ -109,9 +119,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -122,6 +134,7 @@ description: Result of parsing array_range_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -129,13 +142,16 @@ description: Result of parsing array_range_expr.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -148,6 +164,7 @@ description: Result of parsing array_range_expr.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -162,6 +179,7 @@ description: Result of parsing array_range_expr.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -174,6 +192,7 @@ description: Result of parsing array_range_expr.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "four", "start": 0, "type": "Identifier" @@ -181,6 +200,7 @@ description: Result of parsing array_range_expr.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -190,11 +210,13 @@ description: Result of parsing array_range_expr.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -207,6 +229,7 @@ description: Result of parsing array_range_expr.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zero", "start": 0, "type": "Identifier" @@ -214,6 +237,7 @@ description: Result of parsing array_range_expr.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -223,11 +247,13 @@ description: Result of parsing array_range_expr.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -240,6 +266,7 @@ description: Result of parsing array_range_expr.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -251,9 +278,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "four", "start": 0, "type": "Identifier" @@ -264,14 +293,17 @@ description: Result of parsing array_range_expr.kcl "type": "Name" }, "endInclusive": true, + "moduleId": 0, "start": 0, "startElement": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zero", "start": 0, "type": "Identifier" @@ -284,11 +316,13 @@ description: Result of parsing array_range_expr.kcl "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -303,6 +337,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -310,6 +345,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -325,6 +361,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -332,6 +369,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"last element is included\"", "start": 0, "type": "Literal", @@ -344,9 +382,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -357,6 +397,7 @@ description: Result of parsing array_range_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -364,13 +405,16 @@ description: Result of parsing array_range_expr.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -383,6 +427,7 @@ description: Result of parsing array_range_expr.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -397,6 +442,7 @@ description: Result of parsing array_range_expr.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -409,6 +455,7 @@ description: Result of parsing array_range_expr.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "five", "start": 0, "type": "Identifier" @@ -420,9 +467,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "four", "start": 0, "type": "Identifier" @@ -432,10 +481,12 @@ description: Result of parsing array_range_expr.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -449,11 +500,13 @@ description: Result of parsing array_range_expr.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -466,6 +519,7 @@ description: Result of parsing array_range_expr.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r3", "start": 0, "type": "Identifier" @@ -477,9 +531,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "five", "start": 0, "type": "Identifier" @@ -490,14 +546,17 @@ description: Result of parsing array_range_expr.kcl "type": "Name" }, "endInclusive": true, + "moduleId": 0, "start": 0, "startElement": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zero", "start": 0, "type": "Identifier" @@ -510,11 +569,13 @@ description: Result of parsing array_range_expr.kcl "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -529,6 +590,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -536,6 +598,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -551,6 +614,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -558,6 +622,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"second-to-last element is included\"", "start": 0, "type": "Literal", @@ -570,9 +635,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -583,6 +650,7 @@ description: Result of parsing array_range_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -590,13 +658,16 @@ description: Result of parsing array_range_expr.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r3", "start": 0, "type": "Identifier" @@ -609,6 +680,7 @@ description: Result of parsing array_range_expr.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -623,6 +695,7 @@ description: Result of parsing array_range_expr.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -637,6 +710,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -644,6 +718,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -659,6 +734,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -666,6 +742,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"last element is included\"", "start": 0, "type": "Literal", @@ -678,9 +755,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -691,6 +770,7 @@ description: Result of parsing array_range_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -698,13 +778,16 @@ description: Result of parsing array_range_expr.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r3", "start": 0, "type": "Identifier" @@ -717,6 +800,7 @@ description: Result of parsing array_range_expr.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -731,6 +815,7 @@ description: Result of parsing array_range_expr.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -743,6 +828,7 @@ description: Result of parsing array_range_expr.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r4", "start": 0, "type": "Identifier" @@ -757,9 +843,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "five", "start": 0, "type": "Identifier" @@ -769,10 +857,12 @@ description: Result of parsing array_range_expr.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -787,6 +877,7 @@ description: Result of parsing array_range_expr.kcl "type": "BinaryExpression" }, "endInclusive": true, + "moduleId": 0, "start": 0, "startElement": { "commentStart": 0, @@ -795,9 +886,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zero", "start": 0, "type": "Identifier" @@ -807,10 +900,12 @@ description: Result of parsing array_range_expr.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -827,11 +922,13 @@ description: Result of parsing array_range_expr.kcl "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -846,6 +943,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -853,6 +951,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -868,6 +967,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -875,6 +975,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"first element is 1\"", "start": 0, "type": "Literal", @@ -887,9 +988,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -900,6 +1003,7 @@ description: Result of parsing array_range_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -907,13 +1011,16 @@ description: Result of parsing array_range_expr.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r4", "start": 0, "type": "Identifier" @@ -926,6 +1033,7 @@ description: Result of parsing array_range_expr.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -940,6 +1048,7 @@ description: Result of parsing array_range_expr.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -954,6 +1063,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -961,6 +1071,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -976,6 +1087,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -983,6 +1095,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"second-to-last element is 3\"", "start": 0, "type": "Literal", @@ -995,9 +1108,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -1008,6 +1123,7 @@ description: Result of parsing array_range_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1015,13 +1131,16 @@ description: Result of parsing array_range_expr.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r4", "start": 0, "type": "Identifier" @@ -1034,6 +1153,7 @@ description: Result of parsing array_range_expr.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1048,6 +1168,7 @@ description: Result of parsing array_range_expr.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1062,6 +1183,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -1069,6 +1191,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1084,6 +1207,7 @@ description: Result of parsing array_range_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -1091,6 +1215,7 @@ description: Result of parsing array_range_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"last element is 4\"", "start": 0, "type": "Literal", @@ -1103,9 +1228,11 @@ description: Result of parsing array_range_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -1116,6 +1243,7 @@ description: Result of parsing array_range_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1123,13 +1251,16 @@ description: Result of parsing array_range_expr.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r4", "start": 0, "type": "Identifier" @@ -1142,6 +1273,7 @@ description: Result of parsing array_range_expr.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1156,6 +1288,7 @@ description: Result of parsing array_range_expr.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1163,12 +1296,14 @@ description: Result of parsing array_range_expr.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1180,6 +1315,7 @@ description: Result of parsing array_range_expr.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1191,6 +1327,7 @@ description: Result of parsing array_range_expr.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/array_range_mismatch_units/ast.snap b/rust/kcl-lib/tests/array_range_mismatch_units/ast.snap index d4202ad5a..b5e2df0ab 100644 --- a/rust/kcl-lib/tests/array_range_mismatch_units/ast.snap +++ b/rust/kcl-lib/tests/array_range_mismatch_units/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_range_mismatch_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing array_range_mismatch_units.kcl "endElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3cm", "start": 0, "type": "Literal", @@ -33,10 +35,12 @@ description: Result of parsing array_range_mismatch_units.kcl } }, "endInclusive": true, + "moduleId": 0, "start": 0, "startElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1mm", "start": 0, "type": "Literal", @@ -49,11 +53,13 @@ description: Result of parsing array_range_mismatch_units.kcl "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -68,6 +74,7 @@ description: Result of parsing array_range_mismatch_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -75,6 +82,7 @@ description: Result of parsing array_range_mismatch_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"shouldn't make it here\"", "start": 0, "type": "Literal", @@ -87,9 +95,11 @@ description: Result of parsing array_range_mismatch_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assertIs", "start": 0, "type": "Identifier" @@ -100,12 +110,14 @@ description: Result of parsing array_range_mismatch_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -113,6 +125,7 @@ description: Result of parsing array_range_mismatch_units.kcl "value": false } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -120,6 +133,7 @@ description: Result of parsing array_range_mismatch_units.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/array_range_negative_expr/ast.snap b/rust/kcl-lib/tests/array_range_negative_expr/ast.snap index 3152bf5b2..6c6b696c6 100644 --- a/rust/kcl-lib/tests/array_range_negative_expr/ast.snap +++ b/rust/kcl-lib/tests/array_range_negative_expr/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_range_negative_expr.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xs", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing array_range_negative_expr.kcl "endElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -33,11 +35,13 @@ description: Result of parsing array_range_negative_expr.kcl } }, "endInclusive": true, + "moduleId": 0, "start": 0, "startElement": { "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -49,6 +53,7 @@ description: Result of parsing array_range_negative_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57,11 +62,13 @@ description: Result of parsing array_range_negative_expr.kcl "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -76,6 +83,7 @@ description: Result of parsing array_range_negative_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -84,6 +92,7 @@ description: Result of parsing array_range_negative_expr.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -95,6 +104,7 @@ description: Result of parsing array_range_negative_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -106,6 +116,7 @@ description: Result of parsing array_range_negative_expr.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -113,6 +124,7 @@ description: Result of parsing array_range_negative_expr.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"first element is -5\"", "start": 0, "type": "Literal", @@ -125,9 +137,11 @@ description: Result of parsing array_range_negative_expr.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -138,6 +152,7 @@ description: Result of parsing array_range_negative_expr.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -145,13 +160,16 @@ description: Result of parsing array_range_negative_expr.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xs", "start": 0, "type": "Identifier" @@ -164,6 +182,7 @@ description: Result of parsing array_range_negative_expr.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -178,6 +197,7 @@ description: Result of parsing array_range_negative_expr.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -185,6 +205,7 @@ description: Result of parsing array_range_negative_expr.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/array_range_with_units/ast.snap b/rust/kcl-lib/tests/array_range_with_units/ast.snap index 6282a56fe..bb382869f 100644 --- a/rust/kcl-lib/tests/array_range_with_units/ast.snap +++ b/rust/kcl-lib/tests/array_range_with_units/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing array_range_with_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing array_range_with_units.kcl "endElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3cm", "start": 0, "type": "Literal", @@ -33,10 +35,12 @@ description: Result of parsing array_range_with_units.kcl } }, "endInclusive": true, + "moduleId": 0, "start": 0, "startElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1cm", "start": 0, "type": "Literal", @@ -49,11 +53,13 @@ description: Result of parsing array_range_with_units.kcl "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -68,6 +74,7 @@ description: Result of parsing array_range_with_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -75,6 +82,7 @@ description: Result of parsing array_range_with_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1cm", "start": 0, "type": "Literal", @@ -90,9 +98,11 @@ description: Result of parsing array_range_with_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -103,6 +113,7 @@ description: Result of parsing array_range_with_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -110,13 +121,16 @@ description: Result of parsing array_range_with_units.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -129,6 +143,7 @@ description: Result of parsing array_range_with_units.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -143,6 +158,7 @@ description: Result of parsing array_range_with_units.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -157,6 +173,7 @@ description: Result of parsing array_range_with_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -164,6 +181,7 @@ description: Result of parsing array_range_with_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2cm", "start": 0, "type": "Literal", @@ -179,9 +197,11 @@ description: Result of parsing array_range_with_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -192,6 +212,7 @@ description: Result of parsing array_range_with_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -199,13 +220,16 @@ description: Result of parsing array_range_with_units.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -218,6 +242,7 @@ description: Result of parsing array_range_with_units.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -232,6 +257,7 @@ description: Result of parsing array_range_with_units.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -246,6 +272,7 @@ description: Result of parsing array_range_with_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -253,6 +280,7 @@ description: Result of parsing array_range_with_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3cm", "start": 0, "type": "Literal", @@ -268,9 +296,11 @@ description: Result of parsing array_range_with_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -281,6 +311,7 @@ description: Result of parsing array_range_with_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -288,13 +319,16 @@ description: Result of parsing array_range_with_units.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -307,6 +341,7 @@ description: Result of parsing array_range_with_units.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -321,6 +356,7 @@ description: Result of parsing array_range_with_units.kcl "type": "MemberExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -328,6 +364,7 @@ description: Result of parsing array_range_with_units.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/artifact_graph_example_code1/ast.snap b/rust/kcl-lib/tests/artifact_graph_example_code1/ast.snap index 7a130f288..04c0b5c50 100644 --- a/rust/kcl-lib/tests/artifact_graph_example_code1/ast.snap +++ b/rust/kcl-lib/tests/artifact_graph_example_code1/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing artifact_graph_example_code1.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -75,6 +83,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -95,6 +105,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -106,6 +117,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -113,6 +125,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -123,9 +136,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -136,6 +151,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,6 +164,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -158,6 +175,7 @@ description: Result of parsing artifact_graph_example_code1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -170,6 +188,7 @@ description: Result of parsing artifact_graph_example_code1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -181,6 +200,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -191,9 +211,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -204,6 +226,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -216,6 +239,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -226,6 +250,7 @@ description: Result of parsing artifact_graph_example_code1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.55", "start": 0, "type": "Literal", @@ -238,6 +263,7 @@ description: Result of parsing artifact_graph_example_code1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -249,6 +275,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -259,6 +286,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -266,6 +294,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -277,9 +306,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -290,6 +321,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -302,6 +334,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -312,6 +345,7 @@ description: Result of parsing artifact_graph_example_code1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -325,6 +359,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -336,6 +371,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -343,6 +379,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -353,6 +390,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -360,6 +398,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -371,9 +410,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -384,6 +425,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -396,6 +438,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -404,13 +447,16 @@ description: Result of parsing artifact_graph_example_code1.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -421,25 +467,30 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -450,12 +501,14 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -463,6 +516,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -473,9 +527,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -486,19 +542,23 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -509,6 +569,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -517,15 +578,18 @@ description: Result of parsing artifact_graph_example_code1.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -538,6 +602,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -551,6 +616,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -559,6 +625,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -570,6 +637,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -581,9 +649,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -594,6 +664,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -601,9 +672,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -621,6 +694,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -628,6 +702,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -643,6 +718,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -654,9 +730,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -668,6 +746,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -678,9 +757,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -691,6 +772,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -699,15 +781,18 @@ description: Result of parsing artifact_graph_example_code1.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -720,6 +805,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -733,6 +819,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -741,9 +828,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -759,9 +848,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -772,6 +863,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -779,9 +871,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -799,6 +893,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -810,6 +905,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -821,6 +917,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -830,6 +927,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -841,6 +939,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -848,6 +947,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -858,9 +958,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -871,6 +973,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -883,6 +986,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -893,6 +997,7 @@ description: Result of parsing artifact_graph_example_code1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -905,6 +1010,7 @@ description: Result of parsing artifact_graph_example_code1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -916,6 +1022,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -926,9 +1033,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -939,6 +1048,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -951,6 +1061,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -961,6 +1072,7 @@ description: Result of parsing artifact_graph_example_code1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -974,6 +1086,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -985,6 +1098,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -992,6 +1106,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1002,9 +1117,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1015,6 +1132,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1027,6 +1145,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1035,13 +1154,16 @@ description: Result of parsing artifact_graph_example_code1.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1052,25 +1174,30 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1081,12 +1208,14 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1094,6 +1223,7 @@ description: Result of parsing artifact_graph_example_code1.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1104,9 +1234,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1117,19 +1249,23 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1140,6 +1276,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1148,15 +1285,18 @@ description: Result of parsing artifact_graph_example_code1.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1169,6 +1309,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -1180,6 +1321,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1187,6 +1329,7 @@ description: Result of parsing artifact_graph_example_code1.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1202,9 +1345,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1215,6 +1360,7 @@ description: Result of parsing artifact_graph_example_code1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1222,9 +1368,11 @@ description: Result of parsing artifact_graph_example_code1.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1235,11 +1383,13 @@ description: Result of parsing artifact_graph_example_code1.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1247,6 +1397,7 @@ description: Result of parsing artifact_graph_example_code1.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/artifact_graph_example_code1/program_memory.snap b/rust/kcl-lib/tests/artifact_graph_example_code1/program_memory.snap index 313ab7408..6cae135d9 100644 --- a/rust/kcl-lib/tests/artifact_graph_example_code1/program_memory.snap +++ b/rust/kcl-lib/tests/artifact_graph_example_code1/program_memory.snap @@ -24,6 +24,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 122, "end": 128, + "moduleId": 0, "start": 122, "type": "TagDeclarator", "value": "seg01" @@ -37,6 +38,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 162, "end": 168, + "moduleId": 0, "start": 162, "type": "TagDeclarator", "value": "seg02" @@ -86,6 +88,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 122, "end": 128, + "moduleId": 0, "start": 122, "type": "TagDeclarator", "value": "seg01" @@ -111,6 +114,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 162, "end": 168, + "moduleId": 0, "start": 162, "type": "TagDeclarator", "value": "seg02" @@ -406,6 +410,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 122, "end": 128, + "moduleId": 0, "start": 122, "type": "TagDeclarator", "value": "seg01" @@ -419,6 +424,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 162, "end": 168, + "moduleId": 0, "start": 162, "type": "TagDeclarator", "value": "seg02" @@ -468,6 +474,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 122, "end": 128, + "moduleId": 0, "start": 122, "type": "TagDeclarator", "value": "seg01" @@ -493,6 +500,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 162, "end": 168, + "moduleId": 0, "start": 162, "type": "TagDeclarator", "value": "seg02" @@ -721,6 +729,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 122, "end": 128, + "moduleId": 0, "start": 122, "type": "TagDeclarator", "value": "seg01" @@ -746,6 +755,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 162, "end": 168, + "moduleId": 0, "start": 162, "type": "TagDeclarator", "value": "seg02" @@ -986,6 +996,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 122, "end": 128, + "moduleId": 0, "start": 122, "type": "TagDeclarator", "value": "seg01" @@ -999,6 +1010,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 162, "end": 168, + "moduleId": 0, "start": 162, "type": "TagDeclarator", "value": "seg02" @@ -1048,6 +1060,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 122, "end": 128, + "moduleId": 0, "start": 122, "type": "TagDeclarator", "value": "seg01" @@ -1073,6 +1086,7 @@ description: Variables in memory after executing artifact_graph_example_code1.kc "tag": { "commentStart": 162, "end": 168, + "moduleId": 0, "start": 162, "type": "TagDeclarator", "value": "seg02" diff --git a/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/ast.snap b/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/ast.snap index 8cd46a1ec..7d88ef629 100644 --- a/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/ast.snap +++ b/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.82", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -161,6 +178,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.54", "start": 0, "type": "Literal", @@ -176,6 +194,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -183,6 +202,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -194,9 +214,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -207,6 +229,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -219,6 +242,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -227,13 +251,16 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -244,6 +271,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -251,9 +279,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -264,10 +294,12 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -287,6 +319,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -294,6 +327,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.21", "start": 0, "type": "Literal", @@ -309,6 +343,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -316,6 +351,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -327,9 +363,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -340,6 +378,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -352,18 +391,22 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -374,6 +417,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -381,9 +425,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -400,19 +446,23 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -423,6 +473,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -430,9 +481,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -445,6 +498,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -456,6 +510,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -463,6 +518,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -474,9 +530,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -487,6 +545,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -499,6 +558,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -507,13 +567,16 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -524,25 +587,30 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -553,12 +621,14 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -566,6 +636,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -576,9 +647,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -589,19 +662,23 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -612,6 +689,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -620,15 +698,18 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -641,6 +722,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -648,13 +730,16 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -665,6 +750,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -673,9 +759,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -687,6 +775,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -700,6 +789,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -710,6 +800,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -722,6 +813,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.36", "start": 0, "type": "Literal", @@ -733,6 +825,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -743,9 +836,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -756,6 +851,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -768,6 +864,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -778,6 +875,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.49", "start": 0, "type": "Literal", @@ -790,6 +888,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05", "start": 0, "type": "Literal", @@ -801,6 +900,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -811,9 +911,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -824,6 +926,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -836,6 +939,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -846,6 +950,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -858,6 +963,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -869,6 +975,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -879,9 +986,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -892,6 +1001,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -904,6 +1014,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -915,6 +1026,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.8", "start": 0, "type": "Literal", @@ -926,6 +1038,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -934,6 +1047,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.17", "start": 0, "type": "Literal", @@ -945,6 +1059,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -955,9 +1070,11 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -968,6 +1085,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -976,15 +1094,18 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -992,6 +1113,7 @@ description: Result of parsing artifact_graph_example_code_no_3d.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/program_memory.snap b/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/program_memory.snap index a2a655c37..6477f4314 100644 --- a/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/program_memory.snap +++ b/rust/kcl-lib/tests/artifact_graph_example_code_no_3d/program_memory.snap @@ -36,6 +36,7 @@ description: Variables in memory after executing artifact_graph_example_code_no_ "tag": { "commentStart": 115, "end": 136, + "moduleId": 0, "start": 115, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -61,6 +62,7 @@ description: Variables in memory after executing artifact_graph_example_code_no_ "tag": { "commentStart": 218, "end": 239, + "moduleId": 0, "start": 218, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -86,6 +88,7 @@ description: Variables in memory after executing artifact_graph_example_code_no_ "tag": { "commentStart": 341, "end": 362, + "moduleId": 0, "start": 341, "type": "TagDeclarator", "value": "rectangleSegmentC001" diff --git a/rust/kcl-lib/tests/artifact_graph_example_code_offset_planes/ast.snap b/rust/kcl-lib/tests/artifact_graph_example_code_offset_planes/ast.snap index fa4c61336..998e7e412 100644 --- a/rust/kcl-lib/tests/artifact_graph_example_code_offset_planes/ast.snap +++ b/rust/kcl-lib/tests/artifact_graph_example_code_offset_planes/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane001", "start": 0, "type": "Identifier" @@ -24,6 +25,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -31,6 +33,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -46,9 +49,11 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -59,6 +64,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66,9 +72,11 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -79,11 +87,13 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -96,6 +106,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane002", "start": 0, "type": "Identifier" @@ -107,6 +118,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -115,6 +127,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -126,6 +139,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -137,9 +151,11 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -150,6 +166,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -157,9 +174,11 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -170,11 +189,13 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -187,6 +208,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane003", "start": 0, "type": "Identifier" @@ -198,6 +220,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -205,6 +228,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -220,9 +244,11 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -233,6 +259,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -240,9 +267,11 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -253,11 +282,13 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -270,6 +301,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -277,13 +309,16 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -294,6 +329,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -301,9 +337,11 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane001", "start": 0, "type": "Identifier" @@ -321,6 +359,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -331,6 +370,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -343,6 +383,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -354,6 +395,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -364,9 +406,11 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -377,6 +421,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -389,6 +434,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -399,6 +445,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.78", "start": 0, "type": "Literal", @@ -411,6 +458,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.01", "start": 0, "type": "Literal", @@ -422,6 +470,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -432,9 +481,11 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -445,6 +496,7 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -453,15 +505,18 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -469,12 +524,14 @@ description: Result of parsing artifact_graph_example_code_offset_planes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/ast.snap b/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/ast.snap index 00737c92e..63510ba12 100644 --- a/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/ast.snap +++ b/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,9 +193,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -188,6 +208,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -200,6 +221,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -210,6 +232,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -223,6 +246,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -234,6 +258,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -241,6 +266,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -251,6 +277,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -258,6 +285,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -269,9 +297,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -282,6 +312,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -294,6 +325,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -302,13 +334,16 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -319,25 +354,30 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -348,12 +388,14 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -361,6 +403,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -371,9 +414,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -384,19 +429,23 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -407,6 +456,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -415,15 +465,18 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -436,6 +489,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -447,6 +501,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -454,6 +509,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -469,9 +525,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -482,6 +540,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -489,9 +548,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -502,11 +563,13 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -519,6 +582,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -532,6 +596,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -540,9 +605,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -558,9 +625,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -571,6 +640,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -578,9 +648,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -598,6 +670,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -609,6 +682,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -620,6 +694,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -628,6 +703,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -639,6 +715,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -649,9 +726,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -662,6 +741,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -674,6 +754,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -684,6 +765,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -696,6 +778,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -707,6 +790,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -717,9 +801,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -730,6 +816,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -742,6 +829,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -752,6 +840,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -765,6 +854,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -776,6 +866,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -783,6 +874,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -793,9 +885,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -806,6 +900,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -818,6 +913,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -826,13 +922,16 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -843,25 +942,30 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -872,12 +976,14 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -885,6 +991,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -895,9 +1002,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -908,19 +1017,23 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -931,6 +1044,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -939,15 +1053,18 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -960,6 +1077,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -971,6 +1089,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -978,6 +1097,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -993,9 +1113,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1006,6 +1128,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1013,9 +1136,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1026,11 +1151,13 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1043,6 +1170,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1056,6 +1184,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1063,6 +1192,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'END'", "start": 0, "type": "Literal", @@ -1075,9 +1205,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1088,6 +1220,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1095,9 +1228,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -1115,6 +1250,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1125,6 +1261,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1137,6 +1274,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -1148,6 +1286,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1158,9 +1297,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1171,6 +1312,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1183,6 +1325,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1193,6 +1336,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1205,6 +1349,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1216,6 +1361,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1226,6 +1372,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1233,6 +1380,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1244,9 +1392,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1257,6 +1407,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1269,6 +1420,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1279,6 +1431,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1292,6 +1445,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1303,6 +1457,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1310,6 +1465,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1320,9 +1476,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1333,6 +1491,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1345,6 +1504,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1353,13 +1513,16 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1370,25 +1533,30 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1399,12 +1567,14 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1412,6 +1582,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1422,9 +1593,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1435,19 +1608,23 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1458,6 +1635,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1466,15 +1644,18 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1487,6 +1668,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -1498,6 +1680,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1505,6 +1688,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1520,9 +1704,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1533,6 +1719,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1540,9 +1727,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1553,11 +1742,13 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1570,6 +1761,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -1583,6 +1775,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1591,9 +1784,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1609,9 +1804,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1622,6 +1819,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1629,9 +1827,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -1649,6 +1849,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1660,6 +1861,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1671,6 +1873,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1679,6 +1882,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -1690,6 +1894,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1700,9 +1905,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1713,6 +1920,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1725,6 +1933,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1735,6 +1944,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1747,6 +1957,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1758,6 +1969,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1768,9 +1980,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1781,6 +1995,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1793,6 +2008,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1803,6 +2019,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1816,6 +2033,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1827,6 +2045,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1834,6 +2053,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1844,9 +2064,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1857,6 +2079,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1869,6 +2092,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1877,13 +2101,16 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1894,25 +2121,30 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1923,12 +2155,14 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1936,6 +2170,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1946,9 +2181,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1959,19 +2196,23 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1982,6 +2223,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1990,15 +2232,18 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2011,6 +2256,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude004", "start": 0, "type": "Identifier" @@ -2022,6 +2268,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2029,6 +2276,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2044,9 +2292,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2057,6 +2307,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2064,9 +2315,11 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -2077,11 +2330,13 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2089,6 +2344,7 @@ description: Result of parsing artifact_graph_sketch_on_face_etc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/program_memory.snap b/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/program_memory.snap index 168d81c7f..3dab8bd3d 100644 --- a/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/program_memory.snap +++ b/rust/kcl-lib/tests/artifact_graph_sketch_on_face_etc/program_memory.snap @@ -24,6 +24,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -73,6 +74,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -344,6 +346,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -393,6 +396,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -564,6 +568,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 616, "end": 622, + "moduleId": 0, "start": 616, "type": "TagDeclarator", "value": "seg02" @@ -601,6 +606,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 616, "end": 622, + "moduleId": 0, "start": 616, "type": "TagDeclarator", "value": "seg02" @@ -841,6 +847,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -890,6 +897,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -1232,6 +1240,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 616, "end": 622, + "moduleId": 0, "start": 616, "type": "TagDeclarator", "value": "seg02" @@ -1269,6 +1278,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 616, "end": 622, + "moduleId": 0, "start": 616, "type": "TagDeclarator", "value": "seg02" @@ -1509,6 +1519,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -1558,6 +1569,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -1840,6 +1852,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -2076,6 +2089,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -2125,6 +2139,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -2292,6 +2307,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 616, "end": 622, + "moduleId": 0, "start": 616, "type": "TagDeclarator", "value": "seg02" @@ -2532,6 +2548,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -2581,6 +2598,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -2888,6 +2906,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 616, "end": 622, + "moduleId": 0, "start": 616, "type": "TagDeclarator", "value": "seg02" @@ -2925,6 +2944,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 616, "end": 622, + "moduleId": 0, "start": 616, "type": "TagDeclarator", "value": "seg02" @@ -3165,6 +3185,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" @@ -3214,6 +3235,7 @@ description: Variables in memory after executing artifact_graph_sketch_on_face_e "tag": { "commentStart": 116, "end": 122, + "moduleId": 0, "start": 116, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/ascription_unknown_type/ast.snap b/rust/kcl-lib/tests/ascription_unknown_type/ast.snap index b4f269361..e03cd6ad7 100644 --- a/rust/kcl-lib/tests/ascription_unknown_type/ast.snap +++ b/rust/kcl-lib/tests/ascription_unknown_type/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing ascription_unknown_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing ascription_unknown_type.kcl "expr": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -32,6 +34,7 @@ description: Result of parsing ascription_unknown_type.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "ty": { "commentStart": 0, @@ -39,10 +42,12 @@ description: Result of parsing ascription_unknown_type.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "NotARealType", "start": 0, "type": "Identifier" }, + "moduleId": 0, "p_type": "Named", "start": 0, "type": "Primitive" @@ -50,11 +55,13 @@ description: Result of parsing ascription_unknown_type.kcl "type": "AscribedExpression", "type": "AscribedExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -62,6 +69,7 @@ description: Result of parsing ascription_unknown_type.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/assembly_mixed_units_cubes/ast.snap b/rust/kcl-lib/tests/assembly_mixed_units_cubes/ast.snap index 085576956..1e3a1b269 100644 --- a/rust/kcl-lib/tests/assembly_mixed_units_cubes/ast.snap +++ b/rust/kcl-lib/tests/assembly_mixed_units_cubes/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing assembly_mixed_units_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "cube-inches.kcl" @@ -17,6 +18,7 @@ description: Result of parsing assembly_mixed_units_cubes.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeIn", "start": 0, "type": "Identifier" @@ -29,6 +31,7 @@ description: Result of parsing assembly_mixed_units_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "cube-mm.kcl" @@ -38,6 +41,7 @@ description: Result of parsing assembly_mixed_units_cubes.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeMm", "start": 0, "type": "Identifier" @@ -54,9 +58,11 @@ description: Result of parsing assembly_mixed_units_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeIn", "start": 0, "type": "Identifier" @@ -66,6 +72,7 @@ description: Result of parsing assembly_mixed_units_cubes.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -77,9 +84,11 @@ description: Result of parsing assembly_mixed_units_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeMm", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing assembly_mixed_units_cubes.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -100,9 +110,11 @@ description: Result of parsing assembly_mixed_units_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -114,19 +126,23 @@ description: Result of parsing assembly_mixed_units_cubes.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -142,12 +158,14 @@ description: Result of parsing assembly_mixed_units_cubes.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -160,6 +178,7 @@ description: Result of parsing assembly_mixed_units_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/assembly_non_default_units/ast.snap b/rust/kcl-lib/tests/assembly_non_default_units/ast.snap index 2eef31e95..e1f58fd38 100644 --- a/rust/kcl-lib/tests/assembly_non_default_units/ast.snap +++ b/rust/kcl-lib/tests/assembly_non_default_units/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing assembly_non_default_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "other1.kcl" @@ -27,6 +28,7 @@ description: Result of parsing assembly_non_default_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "other2.kcl" @@ -46,9 +48,11 @@ description: Result of parsing assembly_non_default_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "other1", "start": 0, "type": "Identifier" @@ -58,6 +62,7 @@ description: Result of parsing assembly_non_default_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -69,9 +74,11 @@ description: Result of parsing assembly_non_default_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "other2", "start": 0, "type": "Identifier" @@ -81,6 +88,7 @@ description: Result of parsing assembly_non_default_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -92,9 +100,11 @@ description: Result of parsing assembly_non_default_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -106,19 +116,23 @@ description: Result of parsing assembly_non_default_units.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -134,12 +148,14 @@ description: Result of parsing assembly_non_default_units.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -152,6 +168,7 @@ description: Result of parsing assembly_non_default_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/bad_units_in_annotation/ast.snap b/rust/kcl-lib/tests/bad_units_in_annotation/ast.snap index c8cf04d13..d082db0c1 100644 --- a/rust/kcl-lib/tests/bad_units_in_annotation/ast.snap +++ b/rust/kcl-lib/tests/bad_units_in_annotation/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "oxygenRadius", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing bad_units_in_annotation.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.066", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing bad_units_in_annotation.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Generated by Text-to-CAD: draw a water molecule", "", @@ -52,6 +56,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenRadius", "start": 0, "type": "Identifier" @@ -59,6 +64,7 @@ description: Result of parsing bad_units_in_annotation.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.053", "start": 0, "type": "Literal", @@ -68,11 +74,13 @@ description: Result of parsing bad_units_in_annotation.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -85,6 +93,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "oxygenHydrogenDistance", "start": 0, "type": "Identifier" @@ -92,6 +101,7 @@ description: Result of parsing bad_units_in_annotation.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.096", "start": 0, "type": "Literal", @@ -101,11 +111,13 @@ description: Result of parsing bad_units_in_annotation.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -118,6 +130,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bondAngle", "start": 0, "type": "Identifier" @@ -125,6 +138,7 @@ description: Result of parsing bad_units_in_annotation.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "104.5", "start": 0, "type": "Literal", @@ -134,11 +148,13 @@ description: Result of parsing bad_units_in_annotation.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -151,6 +167,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createAtom", "start": 0, "type": "Identifier" @@ -162,13 +179,16 @@ description: Result of parsing bad_units_in_annotation.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -179,6 +199,7 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -186,9 +207,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -206,6 +229,7 @@ description: Result of parsing bad_units_in_annotation.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -214,9 +238,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -232,6 +258,7 @@ description: Result of parsing bad_units_in_annotation.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -240,9 +267,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -258,9 +287,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -271,6 +302,7 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -283,6 +315,7 @@ description: Result of parsing bad_units_in_annotation.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -294,9 +327,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -306,10 +341,12 @@ description: Result of parsing bad_units_in_annotation.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -329,9 +366,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -342,6 +381,7 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -350,12 +390,14 @@ description: Result of parsing bad_units_in_annotation.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -363,16 +405,19 @@ description: Result of parsing bad_units_in_annotation.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -383,6 +428,7 @@ description: Result of parsing bad_units_in_annotation.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -393,11 +439,13 @@ description: Result of parsing bad_units_in_annotation.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Function to create a sphere representing an atom" ], @@ -413,6 +461,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "oxygenAtom", "start": 0, "type": "Identifier" @@ -424,6 +473,7 @@ description: Result of parsing bad_units_in_annotation.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -434,6 +484,7 @@ description: Result of parsing bad_units_in_annotation.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -446,6 +497,7 @@ description: Result of parsing bad_units_in_annotation.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -457,6 +509,7 @@ description: Result of parsing bad_units_in_annotation.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -467,6 +520,7 @@ description: Result of parsing bad_units_in_annotation.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -475,9 +529,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "oxygenRadius", "start": 0, "type": "Identifier" @@ -493,9 +549,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createAtom", "start": 0, "type": "Identifier" @@ -506,16 +564,19 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -533,6 +594,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenOffsetX", "start": 0, "type": "Identifier" @@ -544,9 +606,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "oxygenHydrogenDistance", "start": 0, "type": "Identifier" @@ -556,15 +620,19 @@ description: Result of parsing bad_units_in_annotation.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -575,17 +643,21 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "toRadians", "start": 0, "type": "Identifier" @@ -596,6 +668,7 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -606,9 +679,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bondAngle", "start": 0, "type": "Identifier" @@ -618,10 +693,12 @@ description: Result of parsing bad_units_in_annotation.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -641,11 +718,13 @@ description: Result of parsing bad_units_in_annotation.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -663,6 +742,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenOffsetY", "start": 0, "type": "Identifier" @@ -674,9 +754,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "oxygenHydrogenDistance", "start": 0, "type": "Identifier" @@ -686,15 +768,19 @@ description: Result of parsing bad_units_in_annotation.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -705,17 +791,21 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "toRadians", "start": 0, "type": "Identifier" @@ -726,6 +816,7 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -736,9 +827,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bondAngle", "start": 0, "type": "Identifier" @@ -748,10 +841,12 @@ description: Result of parsing bad_units_in_annotation.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -771,11 +866,13 @@ description: Result of parsing bad_units_in_annotation.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -788,6 +885,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenAtom1", "start": 0, "type": "Identifier" @@ -799,6 +897,7 @@ description: Result of parsing bad_units_in_annotation.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -810,9 +909,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenOffsetX", "start": 0, "type": "Identifier" @@ -826,9 +927,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenOffsetY", "start": 0, "type": "Identifier" @@ -840,6 +943,7 @@ description: Result of parsing bad_units_in_annotation.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -850,6 +954,7 @@ description: Result of parsing bad_units_in_annotation.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -858,9 +963,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenRadius", "start": 0, "type": "Identifier" @@ -876,9 +983,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createAtom", "start": 0, "type": "Identifier" @@ -889,16 +998,19 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -916,6 +1028,7 @@ description: Result of parsing bad_units_in_annotation.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenAtom2", "start": 0, "type": "Identifier" @@ -927,6 +1040,7 @@ description: Result of parsing bad_units_in_annotation.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -939,9 +1053,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenOffsetX", "start": 0, "type": "Identifier" @@ -953,6 +1069,7 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -962,9 +1079,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenOffsetY", "start": 0, "type": "Identifier" @@ -976,6 +1095,7 @@ description: Result of parsing bad_units_in_annotation.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -986,6 +1106,7 @@ description: Result of parsing bad_units_in_annotation.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -994,9 +1115,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hydrogenRadius", "start": 0, "type": "Identifier" @@ -1012,9 +1135,11 @@ description: Result of parsing bad_units_in_annotation.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createAtom", "start": 0, "type": "Identifier" @@ -1025,16 +1150,19 @@ description: Result of parsing bad_units_in_annotation.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1046,9 +1174,11 @@ description: Result of parsing bad_units_in_annotation.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1060,19 +1190,23 @@ description: Result of parsing bad_units_in_annotation.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nm", "start": 0, "type": "Identifier" @@ -1088,12 +1222,14 @@ description: Result of parsing bad_units_in_annotation.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1107,6 +1243,7 @@ description: Result of parsing bad_units_in_annotation.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1120,6 +1257,7 @@ description: Result of parsing bad_units_in_annotation.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1133,6 +1271,7 @@ description: Result of parsing bad_units_in_annotation.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1144,6 +1283,7 @@ description: Result of parsing bad_units_in_annotation.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1156,6 +1296,7 @@ description: Result of parsing bad_units_in_annotation.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/ast.snap b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/ast.snap index c8d4cc20e..e6d7429c8 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/ast.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,6 +193,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -182,6 +201,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -193,9 +213,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -206,6 +228,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -218,6 +241,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -228,6 +252,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -240,6 +265,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -251,6 +277,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -261,9 +288,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -274,6 +303,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -286,6 +316,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -296,6 +327,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -309,6 +341,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -320,6 +353,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -327,6 +361,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -337,6 +372,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -344,6 +380,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -355,9 +392,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -368,6 +407,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -380,6 +420,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -387,6 +428,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -398,9 +440,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -411,6 +455,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -423,6 +468,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -430,6 +476,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -445,9 +492,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -458,6 +507,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -470,6 +520,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -477,6 +528,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -492,6 +544,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -503,9 +556,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing3", "start": 0, "type": "Identifier" @@ -516,13 +571,16 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -533,6 +591,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -540,9 +599,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing3", "start": 0, "type": "Identifier" @@ -555,6 +616,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -565,9 +627,11 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -578,6 +642,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -586,15 +651,18 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -602,6 +670,7 @@ description: Result of parsing basic_fillet_cube_close_opposite.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/program_memory.snap b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/program_memory.snap index 1839a2fd3..131ab0784 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/program_memory.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_close_opposite/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing basic_fillet_cube_close_opposit "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -37,6 +38,7 @@ description: Variables in memory after executing basic_fillet_cube_close_opposit "tag": { "commentStart": 155, "end": 162, + "moduleId": 0, "start": 155, "type": "TagDeclarator", "value": "thing2" @@ -50,6 +52,7 @@ description: Variables in memory after executing basic_fillet_cube_close_opposit "tag": { "commentStart": 181, "end": 188, + "moduleId": 0, "start": 181, "type": "TagDeclarator", "value": "thing3" @@ -73,6 +76,7 @@ description: Variables in memory after executing basic_fillet_cube_close_opposit "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -117,6 +121,7 @@ description: Variables in memory after executing basic_fillet_cube_close_opposit "tag": { "commentStart": 155, "end": 162, + "moduleId": 0, "start": 155, "type": "TagDeclarator", "value": "thing2" @@ -142,6 +147,7 @@ description: Variables in memory after executing basic_fillet_cube_close_opposit "tag": { "commentStart": 181, "end": 188, + "moduleId": 0, "start": 181, "type": "TagDeclarator", "value": "thing3" diff --git a/rust/kcl-lib/tests/basic_fillet_cube_end/ast.snap b/rust/kcl-lib/tests/basic_fillet_cube_end/ast.snap index e6809944c..ac3debade 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_end/ast.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_end/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing basic_fillet_cube_end.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing basic_fillet_cube_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing basic_fillet_cube_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing basic_fillet_cube_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing basic_fillet_cube_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing basic_fillet_cube_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing basic_fillet_cube_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing basic_fillet_cube_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing basic_fillet_cube_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,6 +193,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -182,6 +201,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -193,9 +213,11 @@ description: Result of parsing basic_fillet_cube_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -206,6 +228,7 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -218,6 +241,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -228,6 +252,7 @@ description: Result of parsing basic_fillet_cube_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -240,6 +265,7 @@ description: Result of parsing basic_fillet_cube_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -251,6 +277,7 @@ description: Result of parsing basic_fillet_cube_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -261,9 +288,11 @@ description: Result of parsing basic_fillet_cube_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -274,6 +303,7 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -286,6 +316,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -296,6 +327,7 @@ description: Result of parsing basic_fillet_cube_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -309,6 +341,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -320,6 +353,7 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -327,6 +361,7 @@ description: Result of parsing basic_fillet_cube_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -337,6 +372,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -344,6 +380,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -355,9 +392,11 @@ description: Result of parsing basic_fillet_cube_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -368,19 +407,23 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -391,12 +434,14 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -409,6 +454,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -416,6 +462,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -431,9 +478,11 @@ description: Result of parsing basic_fillet_cube_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -444,6 +493,7 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -456,6 +506,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -463,6 +514,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -478,6 +530,7 @@ description: Result of parsing basic_fillet_cube_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -489,9 +542,11 @@ description: Result of parsing basic_fillet_cube_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing", "start": 0, "type": "Identifier" @@ -502,13 +557,16 @@ description: Result of parsing basic_fillet_cube_end.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -519,6 +577,7 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -526,9 +585,11 @@ description: Result of parsing basic_fillet_cube_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing", "start": 0, "type": "Identifier" @@ -541,6 +602,7 @@ description: Result of parsing basic_fillet_cube_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -551,9 +613,11 @@ description: Result of parsing basic_fillet_cube_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -564,6 +628,7 @@ description: Result of parsing basic_fillet_cube_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -572,15 +637,18 @@ description: Result of parsing basic_fillet_cube_end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -588,6 +656,7 @@ description: Result of parsing basic_fillet_cube_end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/basic_fillet_cube_end/program_memory.snap b/rust/kcl-lib/tests/basic_fillet_cube_end/program_memory.snap index 6a0b1edf6..38d139060 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_end/program_memory.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_end/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing basic_fillet_cube_end.kcl "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -37,6 +38,7 @@ description: Variables in memory after executing basic_fillet_cube_end.kcl "tag": { "commentStart": 155, "end": 162, + "moduleId": 0, "start": 155, "type": "TagDeclarator", "value": "thing2" @@ -67,6 +69,7 @@ description: Variables in memory after executing basic_fillet_cube_end.kcl "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -111,6 +114,7 @@ description: Variables in memory after executing basic_fillet_cube_end.kcl "tag": { "commentStart": 155, "end": 162, + "moduleId": 0, "start": 155, "type": "TagDeclarator", "value": "thing2" diff --git a/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/ast.snap b/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/ast.snap index 0d2c8b1ff..1f6abb10f 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/ast.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,6 +193,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -182,6 +201,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -193,9 +213,11 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -206,6 +228,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -218,6 +241,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -228,6 +252,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -240,6 +265,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -251,6 +277,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -261,6 +288,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -268,6 +296,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -279,9 +308,11 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -292,6 +323,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -304,6 +336,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -314,6 +347,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -327,6 +361,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -338,6 +373,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -345,6 +381,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -355,6 +392,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -362,6 +400,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -373,9 +412,11 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -386,6 +427,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -398,6 +440,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -405,6 +448,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -416,9 +460,11 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -429,6 +475,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -441,6 +488,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -448,6 +496,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -463,9 +512,11 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -476,6 +527,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -488,6 +540,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -495,6 +548,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -510,6 +564,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -518,13 +573,16 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -535,6 +593,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -542,9 +601,11 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing3", "start": 0, "type": "Identifier" @@ -557,6 +618,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -567,9 +629,11 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -580,6 +644,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -588,15 +653,18 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -604,6 +672,7 @@ description: Result of parsing basic_fillet_cube_next_adjacent.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/program_memory.snap b/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/program_memory.snap index 2ef0011ea..28c505c75 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/program_memory.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_next_adjacent/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing basic_fillet_cube_next_adjacent "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -30,6 +31,7 @@ description: Variables in memory after executing basic_fillet_cube_next_adjacent "tag": { "commentStart": 129, "end": 136, + "moduleId": 0, "start": 129, "type": "TagDeclarator", "value": "thing1" @@ -43,6 +45,7 @@ description: Variables in memory after executing basic_fillet_cube_next_adjacent "tag": { "commentStart": 170, "end": 177, + "moduleId": 0, "start": 170, "type": "TagDeclarator", "value": "thing2" @@ -56,6 +59,7 @@ description: Variables in memory after executing basic_fillet_cube_next_adjacent "tag": { "commentStart": 196, "end": 203, + "moduleId": 0, "start": 196, "type": "TagDeclarator", "value": "thing3" @@ -79,6 +83,7 @@ description: Variables in memory after executing basic_fillet_cube_next_adjacent "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -104,6 +109,7 @@ description: Variables in memory after executing basic_fillet_cube_next_adjacent "tag": { "commentStart": 129, "end": 136, + "moduleId": 0, "start": 129, "type": "TagDeclarator", "value": "thing1" @@ -129,6 +135,7 @@ description: Variables in memory after executing basic_fillet_cube_next_adjacent "tag": { "commentStart": 170, "end": 177, + "moduleId": 0, "start": 170, "type": "TagDeclarator", "value": "thing2" @@ -154,6 +161,7 @@ description: Variables in memory after executing basic_fillet_cube_next_adjacent "tag": { "commentStart": 196, "end": 203, + "moduleId": 0, "start": 196, "type": "TagDeclarator", "value": "thing3" diff --git a/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/ast.snap b/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/ast.snap index 49564d7ab..7fb0144e3 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/ast.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,6 +193,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -182,6 +201,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -193,9 +213,11 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -206,6 +228,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -218,6 +241,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -228,6 +252,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -240,6 +265,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -251,6 +277,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -261,6 +288,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -268,6 +296,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -279,9 +308,11 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -292,6 +323,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -304,6 +336,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -314,6 +347,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -327,6 +361,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -338,6 +373,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -345,6 +381,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -355,6 +392,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -362,6 +400,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -373,9 +412,11 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -386,6 +427,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -398,6 +440,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -405,6 +448,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -416,9 +460,11 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -429,6 +475,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -441,6 +488,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -448,6 +496,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -463,9 +512,11 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -476,6 +527,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -488,6 +540,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -495,6 +548,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -510,6 +564,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -518,13 +573,16 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -535,6 +593,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -542,9 +601,11 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing3", "start": 0, "type": "Identifier" @@ -557,6 +618,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -567,9 +629,11 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -580,6 +644,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -588,15 +653,18 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -604,6 +672,7 @@ description: Result of parsing basic_fillet_cube_previous_adjacent.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/program_memory.snap b/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/program_memory.snap index 7be7cb0ce..e5be164ef 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/program_memory.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_previous_adjacent/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing basic_fillet_cube_previous_adja "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -30,6 +31,7 @@ description: Variables in memory after executing basic_fillet_cube_previous_adja "tag": { "commentStart": 129, "end": 136, + "moduleId": 0, "start": 129, "type": "TagDeclarator", "value": "thing1" @@ -43,6 +45,7 @@ description: Variables in memory after executing basic_fillet_cube_previous_adja "tag": { "commentStart": 170, "end": 177, + "moduleId": 0, "start": 170, "type": "TagDeclarator", "value": "thing2" @@ -56,6 +59,7 @@ description: Variables in memory after executing basic_fillet_cube_previous_adja "tag": { "commentStart": 196, "end": 203, + "moduleId": 0, "start": 196, "type": "TagDeclarator", "value": "thing3" @@ -79,6 +83,7 @@ description: Variables in memory after executing basic_fillet_cube_previous_adja "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -104,6 +109,7 @@ description: Variables in memory after executing basic_fillet_cube_previous_adja "tag": { "commentStart": 129, "end": 136, + "moduleId": 0, "start": 129, "type": "TagDeclarator", "value": "thing1" @@ -129,6 +135,7 @@ description: Variables in memory after executing basic_fillet_cube_previous_adja "tag": { "commentStart": 170, "end": 177, + "moduleId": 0, "start": 170, "type": "TagDeclarator", "value": "thing2" @@ -154,6 +161,7 @@ description: Variables in memory after executing basic_fillet_cube_previous_adja "tag": { "commentStart": 196, "end": 203, + "moduleId": 0, "start": 196, "type": "TagDeclarator", "value": "thing3" diff --git a/rust/kcl-lib/tests/basic_fillet_cube_start/ast.snap b/rust/kcl-lib/tests/basic_fillet_cube_start/ast.snap index bfd60e77f..ce0c6f363 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_start/ast.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_start/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing basic_fillet_cube_start.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing basic_fillet_cube_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing basic_fillet_cube_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing basic_fillet_cube_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing basic_fillet_cube_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing basic_fillet_cube_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing basic_fillet_cube_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing basic_fillet_cube_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing basic_fillet_cube_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing basic_fillet_cube_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing basic_fillet_cube_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,6 +193,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -182,6 +201,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -193,9 +213,11 @@ description: Result of parsing basic_fillet_cube_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -206,6 +228,7 @@ description: Result of parsing basic_fillet_cube_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -218,6 +241,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -228,6 +252,7 @@ description: Result of parsing basic_fillet_cube_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -240,6 +265,7 @@ description: Result of parsing basic_fillet_cube_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -251,6 +277,7 @@ description: Result of parsing basic_fillet_cube_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -261,9 +288,11 @@ description: Result of parsing basic_fillet_cube_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -274,6 +303,7 @@ description: Result of parsing basic_fillet_cube_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -286,6 +316,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -296,6 +327,7 @@ description: Result of parsing basic_fillet_cube_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -309,6 +341,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -320,6 +353,7 @@ description: Result of parsing basic_fillet_cube_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -327,6 +361,7 @@ description: Result of parsing basic_fillet_cube_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -337,6 +372,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -344,6 +380,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -355,9 +392,11 @@ description: Result of parsing basic_fillet_cube_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -368,19 +407,23 @@ description: Result of parsing basic_fillet_cube_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -391,12 +434,14 @@ description: Result of parsing basic_fillet_cube_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -409,6 +454,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -416,6 +462,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -431,9 +478,11 @@ description: Result of parsing basic_fillet_cube_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -444,6 +493,7 @@ description: Result of parsing basic_fillet_cube_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -456,6 +506,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -463,6 +514,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -478,6 +530,7 @@ description: Result of parsing basic_fillet_cube_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -489,9 +542,11 @@ description: Result of parsing basic_fillet_cube_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing", "start": 0, "type": "Identifier" @@ -505,9 +560,11 @@ description: Result of parsing basic_fillet_cube_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing2", "start": 0, "type": "Identifier" @@ -519,6 +576,7 @@ description: Result of parsing basic_fillet_cube_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -529,9 +587,11 @@ description: Result of parsing basic_fillet_cube_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -542,6 +602,7 @@ description: Result of parsing basic_fillet_cube_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -550,15 +611,18 @@ description: Result of parsing basic_fillet_cube_start.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -566,6 +630,7 @@ description: Result of parsing basic_fillet_cube_start.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/basic_fillet_cube_start/program_memory.snap b/rust/kcl-lib/tests/basic_fillet_cube_start/program_memory.snap index 8c02273f0..121326c01 100644 --- a/rust/kcl-lib/tests/basic_fillet_cube_start/program_memory.snap +++ b/rust/kcl-lib/tests/basic_fillet_cube_start/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing basic_fillet_cube_start.kcl "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -37,6 +38,7 @@ description: Variables in memory after executing basic_fillet_cube_start.kcl "tag": { "commentStart": 155, "end": 162, + "moduleId": 0, "start": 155, "type": "TagDeclarator", "value": "thing2" @@ -67,6 +69,7 @@ description: Variables in memory after executing basic_fillet_cube_start.kcl "tag": { "commentStart": 90, "end": 96, + "moduleId": 0, "start": 90, "type": "TagDeclarator", "value": "thing" @@ -111,6 +114,7 @@ description: Variables in memory after executing basic_fillet_cube_start.kcl "tag": { "commentStart": 155, "end": 162, + "moduleId": 0, "start": 155, "type": "TagDeclarator", "value": "thing2" diff --git a/rust/kcl-lib/tests/basic_revolve_circle/ast.snap b/rust/kcl-lib/tests/basic_revolve_circle/ast.snap index 2ce767c8b..da7d8fa6d 100644 --- a/rust/kcl-lib/tests/basic_revolve_circle/ast.snap +++ b/rust/kcl-lib/tests/basic_revolve_circle/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing basic_revolve_circle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing basic_revolve_circle.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing basic_revolve_circle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing basic_revolve_circle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing basic_revolve_circle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing basic_revolve_circle.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing basic_revolve_circle.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing basic_revolve_circle.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,6 +118,7 @@ description: Result of parsing basic_revolve_circle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -114,6 +126,7 @@ description: Result of parsing basic_revolve_circle.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -129,9 +142,11 @@ description: Result of parsing basic_revolve_circle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing basic_revolve_circle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -154,6 +170,7 @@ description: Result of parsing basic_revolve_circle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -161,6 +178,7 @@ description: Result of parsing basic_revolve_circle.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -176,6 +194,7 @@ description: Result of parsing basic_revolve_circle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -184,9 +203,11 @@ description: Result of parsing basic_revolve_circle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -202,9 +223,11 @@ description: Result of parsing basic_revolve_circle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -215,6 +238,7 @@ description: Result of parsing basic_revolve_circle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -223,15 +247,18 @@ description: Result of parsing basic_revolve_circle.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -239,6 +266,7 @@ description: Result of parsing basic_revolve_circle.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/boolean_logical_and/ast.snap b/rust/kcl-lib/tests/boolean_logical_and/ast.snap index e7490b805..c256ee175 100644 --- a/rust/kcl-lib/tests/boolean_logical_and/ast.snap +++ b/rust/kcl-lib/tests/boolean_logical_and/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing boolean_logical_and.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aa", "start": 0, "type": "Identifier" @@ -23,16 +24,19 @@ description: Result of parsing boolean_logical_and.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "operator": "&", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -43,11 +47,13 @@ description: Result of parsing boolean_logical_and.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -60,6 +66,7 @@ description: Result of parsing boolean_logical_and.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -70,9 +77,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aa", "start": 0, "type": "Identifier" @@ -93,6 +102,7 @@ description: Result of parsing boolean_logical_and.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -102,6 +112,7 @@ description: Result of parsing boolean_logical_and.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -109,8 +120,10 @@ description: Result of parsing boolean_logical_and.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -120,6 +133,7 @@ description: Result of parsing boolean_logical_and.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -129,6 +143,7 @@ description: Result of parsing boolean_logical_and.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -136,16 +151,19 @@ description: Result of parsing boolean_logical_and.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -160,6 +178,7 @@ description: Result of parsing boolean_logical_and.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -167,6 +186,7 @@ description: Result of parsing boolean_logical_and.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -182,6 +202,7 @@ description: Result of parsing boolean_logical_and.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -189,6 +210,7 @@ description: Result of parsing boolean_logical_and.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"right branch of and is false makes the whole expression false\"", "start": 0, "type": "Literal", @@ -201,9 +223,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -214,6 +238,7 @@ description: Result of parsing boolean_logical_and.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -221,9 +246,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -234,6 +261,7 @@ description: Result of parsing boolean_logical_and.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -246,6 +274,7 @@ description: Result of parsing boolean_logical_and.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bb", "start": 0, "type": "Identifier" @@ -256,16 +285,19 @@ description: Result of parsing boolean_logical_and.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", "type": "Literal", "value": false }, + "moduleId": 0, "operator": "&", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -276,11 +308,13 @@ description: Result of parsing boolean_logical_and.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -293,6 +327,7 @@ description: Result of parsing boolean_logical_and.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "b", "start": 0, "type": "Identifier" @@ -303,9 +338,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bb", "start": 0, "type": "Identifier" @@ -326,6 +363,7 @@ description: Result of parsing boolean_logical_and.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -335,6 +373,7 @@ description: Result of parsing boolean_logical_and.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -342,8 +381,10 @@ description: Result of parsing boolean_logical_and.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -353,6 +394,7 @@ description: Result of parsing boolean_logical_and.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -362,6 +404,7 @@ description: Result of parsing boolean_logical_and.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -369,16 +412,19 @@ description: Result of parsing boolean_logical_and.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -393,6 +439,7 @@ description: Result of parsing boolean_logical_and.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -400,6 +447,7 @@ description: Result of parsing boolean_logical_and.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -415,6 +463,7 @@ description: Result of parsing boolean_logical_and.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -422,6 +471,7 @@ description: Result of parsing boolean_logical_and.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"left branch of and is false makes the whole expression false\"", "start": 0, "type": "Literal", @@ -434,9 +484,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -447,6 +499,7 @@ description: Result of parsing boolean_logical_and.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -454,9 +507,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "b", "start": 0, "type": "Identifier" @@ -467,6 +522,7 @@ description: Result of parsing boolean_logical_and.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -479,6 +535,7 @@ description: Result of parsing boolean_logical_and.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cc", "start": 0, "type": "Identifier" @@ -489,16 +546,19 @@ description: Result of parsing boolean_logical_and.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "operator": "&", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -509,11 +569,13 @@ description: Result of parsing boolean_logical_and.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -526,6 +588,7 @@ description: Result of parsing boolean_logical_and.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c", "start": 0, "type": "Identifier" @@ -536,9 +599,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cc", "start": 0, "type": "Identifier" @@ -559,6 +624,7 @@ description: Result of parsing boolean_logical_and.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -568,6 +634,7 @@ description: Result of parsing boolean_logical_and.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -575,8 +642,10 @@ description: Result of parsing boolean_logical_and.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -586,6 +655,7 @@ description: Result of parsing boolean_logical_and.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -595,6 +665,7 @@ description: Result of parsing boolean_logical_and.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -602,16 +673,19 @@ description: Result of parsing boolean_logical_and.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -626,6 +700,7 @@ description: Result of parsing boolean_logical_and.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -633,6 +708,7 @@ description: Result of parsing boolean_logical_and.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -648,6 +724,7 @@ description: Result of parsing boolean_logical_and.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -655,6 +732,7 @@ description: Result of parsing boolean_logical_and.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"both branches of and are true makes the whole expression true\"", "start": 0, "type": "Literal", @@ -667,9 +745,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -680,6 +760,7 @@ description: Result of parsing boolean_logical_and.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -687,9 +768,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c", "start": 0, "type": "Identifier" @@ -700,6 +783,7 @@ description: Result of parsing boolean_logical_and.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -712,6 +796,7 @@ description: Result of parsing boolean_logical_and.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dd", "start": 0, "type": "Identifier" @@ -722,16 +807,19 @@ description: Result of parsing boolean_logical_and.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", "type": "Literal", "value": false }, + "moduleId": 0, "operator": "&", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -742,11 +830,13 @@ description: Result of parsing boolean_logical_and.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -759,6 +849,7 @@ description: Result of parsing boolean_logical_and.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -769,9 +860,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dd", "start": 0, "type": "Identifier" @@ -792,6 +885,7 @@ description: Result of parsing boolean_logical_and.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -801,6 +895,7 @@ description: Result of parsing boolean_logical_and.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -808,8 +903,10 @@ description: Result of parsing boolean_logical_and.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -819,6 +916,7 @@ description: Result of parsing boolean_logical_and.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -828,6 +926,7 @@ description: Result of parsing boolean_logical_and.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -835,16 +934,19 @@ description: Result of parsing boolean_logical_and.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -859,6 +961,7 @@ description: Result of parsing boolean_logical_and.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -866,6 +969,7 @@ description: Result of parsing boolean_logical_and.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -881,6 +985,7 @@ description: Result of parsing boolean_logical_and.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -888,6 +993,7 @@ description: Result of parsing boolean_logical_and.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"both branches of and are false makes the whole expression false\"", "start": 0, "type": "Literal", @@ -900,9 +1006,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -913,6 +1021,7 @@ description: Result of parsing boolean_logical_and.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -920,9 +1029,11 @@ description: Result of parsing boolean_logical_and.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -933,6 +1044,7 @@ description: Result of parsing boolean_logical_and.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -940,12 +1052,14 @@ description: Result of parsing boolean_logical_and.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -957,6 +1071,7 @@ description: Result of parsing boolean_logical_and.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -968,6 +1083,7 @@ description: Result of parsing boolean_logical_and.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/boolean_logical_multiple/ast.snap b/rust/kcl-lib/tests/boolean_logical_multiple/ast.snap index 7769e2d30..638e25e46 100644 --- a/rust/kcl-lib/tests/boolean_logical_multiple/ast.snap +++ b/rust/kcl-lib/tests/boolean_logical_multiple/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing boolean_logical_multiple.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ii", "start": 0, "type": "Identifier" @@ -23,12 +24,14 @@ description: Result of parsing boolean_logical_multiple.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "operator": "|", "right": { "commentStart": 0, @@ -36,16 +39,19 @@ description: Result of parsing boolean_logical_multiple.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", "type": "Literal", "value": false }, + "moduleId": 0, "operator": "&", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -60,11 +66,13 @@ description: Result of parsing boolean_logical_multiple.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -77,6 +85,7 @@ description: Result of parsing boolean_logical_multiple.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -87,9 +96,11 @@ description: Result of parsing boolean_logical_multiple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ii", "start": 0, "type": "Identifier" @@ -110,6 +121,7 @@ description: Result of parsing boolean_logical_multiple.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -119,6 +131,7 @@ description: Result of parsing boolean_logical_multiple.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -126,8 +139,10 @@ description: Result of parsing boolean_logical_multiple.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -137,6 +152,7 @@ description: Result of parsing boolean_logical_multiple.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -146,6 +162,7 @@ description: Result of parsing boolean_logical_multiple.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -153,16 +170,19 @@ description: Result of parsing boolean_logical_multiple.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -177,6 +197,7 @@ description: Result of parsing boolean_logical_multiple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -184,6 +205,7 @@ description: Result of parsing boolean_logical_multiple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -199,6 +221,7 @@ description: Result of parsing boolean_logical_multiple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -206,6 +229,7 @@ description: Result of parsing boolean_logical_multiple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"and has higher precedence than or\"", "start": 0, "type": "Literal", @@ -218,9 +242,11 @@ description: Result of parsing boolean_logical_multiple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -231,6 +257,7 @@ description: Result of parsing boolean_logical_multiple.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -238,9 +265,11 @@ description: Result of parsing boolean_logical_multiple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -251,6 +280,7 @@ description: Result of parsing boolean_logical_multiple.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -263,6 +293,7 @@ description: Result of parsing boolean_logical_multiple.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "jj", "start": 0, "type": "Identifier" @@ -276,12 +307,14 @@ description: Result of parsing boolean_logical_multiple.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", "type": "Literal", "value": false }, + "moduleId": 0, "operator": "|", "right": { "commentStart": 0, @@ -289,17 +322,20 @@ description: Result of parsing boolean_logical_multiple.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "operator": "&", "right": { "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -308,6 +344,7 @@ description: Result of parsing boolean_logical_multiple.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "!", "start": 0, "type": "UnaryExpression", @@ -321,6 +358,7 @@ description: Result of parsing boolean_logical_multiple.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "|", "right": { "commentStart": 0, @@ -328,16 +366,19 @@ description: Result of parsing boolean_logical_multiple.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", "type": "Literal", "value": false }, + "moduleId": 0, "operator": "&", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -352,11 +393,13 @@ description: Result of parsing boolean_logical_multiple.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -369,6 +412,7 @@ description: Result of parsing boolean_logical_multiple.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "j", "start": 0, "type": "Identifier" @@ -379,9 +423,11 @@ description: Result of parsing boolean_logical_multiple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "jj", "start": 0, "type": "Identifier" @@ -402,6 +448,7 @@ description: Result of parsing boolean_logical_multiple.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -411,6 +458,7 @@ description: Result of parsing boolean_logical_multiple.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -418,8 +466,10 @@ description: Result of parsing boolean_logical_multiple.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -429,6 +479,7 @@ description: Result of parsing boolean_logical_multiple.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -438,6 +489,7 @@ description: Result of parsing boolean_logical_multiple.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -445,16 +497,19 @@ description: Result of parsing boolean_logical_multiple.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -469,6 +524,7 @@ description: Result of parsing boolean_logical_multiple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -476,6 +532,7 @@ description: Result of parsing boolean_logical_multiple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -491,6 +548,7 @@ description: Result of parsing boolean_logical_multiple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -498,6 +556,7 @@ description: Result of parsing boolean_logical_multiple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"multiple logical operators\"", "start": 0, "type": "Literal", @@ -510,9 +569,11 @@ description: Result of parsing boolean_logical_multiple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -523,6 +584,7 @@ description: Result of parsing boolean_logical_multiple.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -530,9 +592,11 @@ description: Result of parsing boolean_logical_multiple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "j", "start": 0, "type": "Identifier" @@ -543,6 +607,7 @@ description: Result of parsing boolean_logical_multiple.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -550,12 +615,14 @@ description: Result of parsing boolean_logical_multiple.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/boolean_logical_or/ast.snap b/rust/kcl-lib/tests/boolean_logical_or/ast.snap index e20e3171c..8d55e487b 100644 --- a/rust/kcl-lib/tests/boolean_logical_or/ast.snap +++ b/rust/kcl-lib/tests/boolean_logical_or/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing boolean_logical_or.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aa", "start": 0, "type": "Identifier" @@ -23,16 +24,19 @@ description: Result of parsing boolean_logical_or.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "operator": "|", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -43,11 +47,13 @@ description: Result of parsing boolean_logical_or.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -60,6 +66,7 @@ description: Result of parsing boolean_logical_or.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -70,9 +77,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aa", "start": 0, "type": "Identifier" @@ -93,6 +102,7 @@ description: Result of parsing boolean_logical_or.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -102,6 +112,7 @@ description: Result of parsing boolean_logical_or.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -109,8 +120,10 @@ description: Result of parsing boolean_logical_or.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -120,6 +133,7 @@ description: Result of parsing boolean_logical_or.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -129,6 +143,7 @@ description: Result of parsing boolean_logical_or.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -136,16 +151,19 @@ description: Result of parsing boolean_logical_or.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -160,6 +178,7 @@ description: Result of parsing boolean_logical_or.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -167,6 +186,7 @@ description: Result of parsing boolean_logical_or.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -182,6 +202,7 @@ description: Result of parsing boolean_logical_or.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -189,6 +210,7 @@ description: Result of parsing boolean_logical_or.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"left branch of or is true makes the whole expression true\"", "start": 0, "type": "Literal", @@ -201,9 +223,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -214,6 +238,7 @@ description: Result of parsing boolean_logical_or.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -221,9 +246,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -234,6 +261,7 @@ description: Result of parsing boolean_logical_or.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -246,6 +274,7 @@ description: Result of parsing boolean_logical_or.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bb", "start": 0, "type": "Identifier" @@ -256,16 +285,19 @@ description: Result of parsing boolean_logical_or.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", "type": "Literal", "value": false }, + "moduleId": 0, "operator": "|", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -276,11 +308,13 @@ description: Result of parsing boolean_logical_or.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -293,6 +327,7 @@ description: Result of parsing boolean_logical_or.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "b", "start": 0, "type": "Identifier" @@ -303,9 +338,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bb", "start": 0, "type": "Identifier" @@ -326,6 +363,7 @@ description: Result of parsing boolean_logical_or.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -335,6 +373,7 @@ description: Result of parsing boolean_logical_or.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -342,8 +381,10 @@ description: Result of parsing boolean_logical_or.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -353,6 +394,7 @@ description: Result of parsing boolean_logical_or.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -362,6 +404,7 @@ description: Result of parsing boolean_logical_or.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -369,16 +412,19 @@ description: Result of parsing boolean_logical_or.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -393,6 +439,7 @@ description: Result of parsing boolean_logical_or.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -400,6 +447,7 @@ description: Result of parsing boolean_logical_or.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -415,6 +463,7 @@ description: Result of parsing boolean_logical_or.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -422,6 +471,7 @@ description: Result of parsing boolean_logical_or.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"right branch of or is true makes the whole expression true\"", "start": 0, "type": "Literal", @@ -434,9 +484,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -447,6 +499,7 @@ description: Result of parsing boolean_logical_or.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -454,9 +507,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "b", "start": 0, "type": "Identifier" @@ -467,6 +522,7 @@ description: Result of parsing boolean_logical_or.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -479,6 +535,7 @@ description: Result of parsing boolean_logical_or.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cc", "start": 0, "type": "Identifier" @@ -489,16 +546,19 @@ description: Result of parsing boolean_logical_or.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "operator": "|", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -509,11 +569,13 @@ description: Result of parsing boolean_logical_or.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -526,6 +588,7 @@ description: Result of parsing boolean_logical_or.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c", "start": 0, "type": "Identifier" @@ -536,9 +599,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cc", "start": 0, "type": "Identifier" @@ -559,6 +624,7 @@ description: Result of parsing boolean_logical_or.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -568,6 +634,7 @@ description: Result of parsing boolean_logical_or.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -575,8 +642,10 @@ description: Result of parsing boolean_logical_or.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -586,6 +655,7 @@ description: Result of parsing boolean_logical_or.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -595,6 +665,7 @@ description: Result of parsing boolean_logical_or.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -602,16 +673,19 @@ description: Result of parsing boolean_logical_or.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -626,6 +700,7 @@ description: Result of parsing boolean_logical_or.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -633,6 +708,7 @@ description: Result of parsing boolean_logical_or.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -648,6 +724,7 @@ description: Result of parsing boolean_logical_or.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -655,6 +732,7 @@ description: Result of parsing boolean_logical_or.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"both branches of or are true makes the whole expression true\"", "start": 0, "type": "Literal", @@ -667,9 +745,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -680,6 +760,7 @@ description: Result of parsing boolean_logical_or.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -687,9 +768,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c", "start": 0, "type": "Identifier" @@ -700,6 +783,7 @@ description: Result of parsing boolean_logical_or.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -712,6 +796,7 @@ description: Result of parsing boolean_logical_or.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dd", "start": 0, "type": "Identifier" @@ -722,16 +807,19 @@ description: Result of parsing boolean_logical_or.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", "type": "Literal", "value": false }, + "moduleId": 0, "operator": "|", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -742,11 +830,13 @@ description: Result of parsing boolean_logical_or.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -759,6 +849,7 @@ description: Result of parsing boolean_logical_or.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -769,9 +860,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dd", "start": 0, "type": "Identifier" @@ -792,6 +885,7 @@ description: Result of parsing boolean_logical_or.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -801,6 +895,7 @@ description: Result of parsing boolean_logical_or.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -808,8 +903,10 @@ description: Result of parsing boolean_logical_or.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -819,6 +916,7 @@ description: Result of parsing boolean_logical_or.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -828,6 +926,7 @@ description: Result of parsing boolean_logical_or.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -835,16 +934,19 @@ description: Result of parsing boolean_logical_or.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -859,6 +961,7 @@ description: Result of parsing boolean_logical_or.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -866,6 +969,7 @@ description: Result of parsing boolean_logical_or.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -881,6 +985,7 @@ description: Result of parsing boolean_logical_or.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -888,6 +993,7 @@ description: Result of parsing boolean_logical_or.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"both branches of or are false makes the whole expression false\"", "start": 0, "type": "Literal", @@ -900,9 +1006,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -913,6 +1021,7 @@ description: Result of parsing boolean_logical_or.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -920,9 +1029,11 @@ description: Result of parsing boolean_logical_or.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -933,6 +1044,7 @@ description: Result of parsing boolean_logical_or.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -940,12 +1052,14 @@ description: Result of parsing boolean_logical_or.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -957,6 +1071,7 @@ description: Result of parsing boolean_logical_or.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -968,6 +1083,7 @@ description: Result of parsing boolean_logical_or.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/circle_three_point/ast.snap b/rust/kcl-lib/tests/circle_three_point/ast.snap index f972a38f2..15c8779db 100644 --- a/rust/kcl-lib/tests/circle_three_point/ast.snap +++ b/rust/kcl-lib/tests/circle_three_point/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing circle_three_point.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing circle_three_point.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing circle_three_point.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing circle_three_point.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing circle_three_point.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p1", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing circle_three_point.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing circle_three_point.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing circle_three_point.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,6 +118,7 @@ description: Result of parsing circle_three_point.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p2", "start": 0, "type": "Identifier" @@ -117,6 +129,7 @@ description: Result of parsing circle_three_point.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -129,6 +142,7 @@ description: Result of parsing circle_three_point.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -140,6 +154,7 @@ description: Result of parsing circle_three_point.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -150,6 +165,7 @@ description: Result of parsing circle_three_point.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p3", "start": 0, "type": "Identifier" @@ -160,6 +176,7 @@ description: Result of parsing circle_three_point.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "27", "start": 0, "type": "Literal", @@ -172,6 +189,7 @@ description: Result of parsing circle_three_point.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -183,6 +201,7 @@ description: Result of parsing circle_three_point.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -193,9 +212,11 @@ description: Result of parsing circle_three_point.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circleThreePoint", "start": 0, "type": "Identifier" @@ -206,6 +227,7 @@ description: Result of parsing circle_three_point.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -218,6 +240,7 @@ description: Result of parsing circle_three_point.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -225,6 +248,7 @@ description: Result of parsing circle_three_point.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -240,9 +264,11 @@ description: Result of parsing circle_three_point.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -253,6 +279,7 @@ description: Result of parsing circle_three_point.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -261,15 +288,18 @@ description: Result of parsing circle_three_point.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -277,6 +307,7 @@ description: Result of parsing circle_three_point.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/circular_pattern3d_a_pattern/ast.snap b/rust/kcl-lib/tests/circular_pattern3d_a_pattern/ast.snap index 5ef437335..879a1d8aa 100644 --- a/rust/kcl-lib/tests/circular_pattern3d_a_pattern/ast.snap +++ b/rust/kcl-lib/tests/circular_pattern3d_a_pattern/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exampleSketch", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,9 +193,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -188,6 +208,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -200,6 +221,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -210,6 +232,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -222,6 +245,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -233,6 +257,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -243,9 +268,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -256,6 +283,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -268,6 +296,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -278,6 +307,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -291,6 +321,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -302,6 +333,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -309,6 +341,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -319,9 +352,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -332,19 +367,23 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -355,12 +394,14 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -373,6 +414,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -380,6 +422,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -395,9 +438,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -408,6 +453,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -416,15 +462,18 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -437,6 +486,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pattn1", "start": 0, "type": "Identifier" @@ -448,6 +498,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -458,6 +509,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -470,6 +522,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -482,6 +535,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -493,6 +547,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -503,6 +558,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -510,6 +566,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -525,6 +582,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -532,6 +590,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -547,9 +606,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -560,6 +621,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -567,9 +629,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exampleSketch", "start": 0, "type": "Identifier" @@ -580,11 +644,13 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -597,6 +663,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pattn2", "start": 0, "type": "Identifier" @@ -608,6 +675,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -618,6 +686,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -630,6 +699,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -642,6 +712,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -653,6 +724,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -663,6 +735,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -674,6 +747,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -685,6 +759,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -694,6 +769,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -705,6 +781,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -714,6 +791,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -725,6 +803,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -732,6 +811,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -742,6 +822,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -749,6 +830,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41", "start": 0, "type": "Literal", @@ -764,6 +846,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -771,6 +854,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -786,6 +870,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -793,6 +878,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -805,9 +891,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -818,6 +906,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -825,9 +914,11 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pattn1", "start": 0, "type": "Identifier" @@ -838,11 +929,13 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -850,12 +943,14 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -867,6 +962,7 @@ description: Result of parsing circular_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/clone_w_fillets/ast.snap b/rust/kcl-lib/tests/clone_w_fillets/ast.snap index 1b9739a01..036e667c2 100644 --- a/rust/kcl-lib/tests/clone_w_fillets/ast.snap +++ b/rust/kcl-lib/tests/clone_w_fillets/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing clone_w_fillets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing clone_w_fillets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing clone_w_fillets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing clone_w_fillets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -53,6 +58,7 @@ description: Result of parsing clone_w_fillets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -62,11 +68,13 @@ description: Result of parsing clone_w_fillets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +87,7 @@ description: Result of parsing clone_w_fillets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -86,6 +95,7 @@ description: Result of parsing clone_w_fillets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -95,11 +105,13 @@ description: Result of parsing clone_w_fillets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -112,6 +124,7 @@ description: Result of parsing clone_w_fillets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -119,6 +132,7 @@ description: Result of parsing clone_w_fillets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -128,11 +142,13 @@ description: Result of parsing clone_w_fillets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -145,6 +161,7 @@ description: Result of parsing clone_w_fillets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingPlateSketch", "start": 0, "type": "Identifier" @@ -152,13 +169,16 @@ description: Result of parsing clone_w_fillets.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -169,6 +189,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -176,9 +197,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -196,6 +219,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -211,9 +235,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -225,15 +251,18 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -255,9 +284,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -269,15 +300,18 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -293,6 +327,7 @@ description: Result of parsing clone_w_fillets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -303,9 +338,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -316,6 +353,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -328,6 +366,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -342,9 +381,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -354,10 +395,12 @@ description: Result of parsing clone_w_fillets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -379,9 +422,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -393,15 +438,18 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -417,6 +465,7 @@ description: Result of parsing clone_w_fillets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -427,6 +476,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -434,6 +484,7 @@ description: Result of parsing clone_w_fillets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -445,9 +496,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -458,6 +511,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -470,6 +524,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -484,9 +539,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -496,10 +553,12 @@ description: Result of parsing clone_w_fillets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -520,9 +579,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -532,10 +593,12 @@ description: Result of parsing clone_w_fillets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -551,6 +614,7 @@ description: Result of parsing clone_w_fillets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -561,6 +625,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -568,6 +633,7 @@ description: Result of parsing clone_w_fillets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -579,9 +645,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -592,6 +660,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -604,6 +673,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -619,9 +689,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -633,15 +705,18 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -662,9 +737,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -674,10 +751,12 @@ description: Result of parsing clone_w_fillets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -693,6 +772,7 @@ description: Result of parsing clone_w_fillets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -703,6 +783,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -710,6 +791,7 @@ description: Result of parsing clone_w_fillets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -721,9 +803,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -734,6 +818,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -746,6 +831,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -753,6 +839,7 @@ description: Result of parsing clone_w_fillets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -764,9 +851,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -777,6 +866,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -785,15 +875,18 @@ description: Result of parsing clone_w_fillets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -806,6 +899,7 @@ description: Result of parsing clone_w_fillets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingPlate", "start": 0, "type": "Identifier" @@ -819,6 +913,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -827,9 +922,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -845,9 +942,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -858,6 +957,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -865,9 +965,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingPlateSketch", "start": 0, "type": "Identifier" @@ -885,6 +987,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -893,9 +996,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -911,6 +1016,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -919,13 +1025,16 @@ description: Result of parsing clone_w_fillets.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -936,6 +1045,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -943,9 +1053,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge1", "start": 0, "type": "Identifier" @@ -957,13 +1069,16 @@ description: Result of parsing clone_w_fillets.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -974,6 +1089,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -981,9 +1097,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge2", "start": 0, "type": "Identifier" @@ -995,13 +1113,16 @@ description: Result of parsing clone_w_fillets.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1012,6 +1133,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1019,9 +1141,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge3", "start": 0, "type": "Identifier" @@ -1033,13 +1157,16 @@ description: Result of parsing clone_w_fillets.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1050,6 +1177,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1057,9 +1185,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge4", "start": 0, "type": "Identifier" @@ -1072,6 +1202,7 @@ description: Result of parsing clone_w_fillets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1082,9 +1213,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1095,6 +1228,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1103,15 +1237,18 @@ description: Result of parsing clone_w_fillets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1124,6 +1261,7 @@ description: Result of parsing clone_w_fillets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingPlate2", "start": 0, "type": "Identifier" @@ -1131,13 +1269,16 @@ description: Result of parsing clone_w_fillets.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -1148,6 +1289,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1155,9 +1297,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingPlate", "start": 0, "type": "Identifier" @@ -1175,6 +1319,7 @@ description: Result of parsing clone_w_fillets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1182,6 +1327,7 @@ description: Result of parsing clone_w_fillets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -1197,9 +1343,11 @@ description: Result of parsing clone_w_fillets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1210,6 +1358,7 @@ description: Result of parsing clone_w_fillets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1218,15 +1367,18 @@ description: Result of parsing clone_w_fillets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1234,12 +1386,14 @@ description: Result of parsing clone_w_fillets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1251,6 +1405,7 @@ description: Result of parsing clone_w_fillets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1262,6 +1417,7 @@ description: Result of parsing clone_w_fillets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/clone_w_shell/ast.snap b/rust/kcl-lib/tests/clone_w_shell/ast.snap index e0f726df9..cac2b100c 100644 --- a/rust/kcl-lib/tests/clone_w_shell/ast.snap +++ b/rust/kcl-lib/tests/clone_w_shell/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing clone_w_shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstSketch", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing clone_w_shell.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing clone_w_shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -75,6 +83,7 @@ description: Result of parsing clone_w_shell.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -94,6 +104,7 @@ description: Result of parsing clone_w_shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -105,6 +116,7 @@ description: Result of parsing clone_w_shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -115,9 +127,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -128,6 +142,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -140,6 +155,7 @@ description: Result of parsing clone_w_shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -150,6 +166,7 @@ description: Result of parsing clone_w_shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24", "start": 0, "type": "Literal", @@ -162,6 +179,7 @@ description: Result of parsing clone_w_shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -173,6 +191,7 @@ description: Result of parsing clone_w_shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -183,9 +202,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -196,6 +217,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -208,6 +230,7 @@ description: Result of parsing clone_w_shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -218,6 +241,7 @@ description: Result of parsing clone_w_shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -231,6 +255,7 @@ description: Result of parsing clone_w_shell.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24", "start": 0, "type": "Literal", @@ -242,6 +267,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -249,6 +275,7 @@ description: Result of parsing clone_w_shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -259,9 +286,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -272,6 +301,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -284,6 +314,7 @@ description: Result of parsing clone_w_shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -295,6 +326,7 @@ description: Result of parsing clone_w_shell.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24", "start": 0, "type": "Literal", @@ -306,6 +338,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -314,6 +347,7 @@ description: Result of parsing clone_w_shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -325,6 +359,7 @@ description: Result of parsing clone_w_shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -335,9 +370,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -348,19 +385,23 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -371,6 +412,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -383,6 +425,7 @@ description: Result of parsing clone_w_shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -390,6 +433,7 @@ description: Result of parsing clone_w_shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -405,9 +449,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -418,6 +464,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -426,12 +473,14 @@ description: Result of parsing clone_w_shell.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -448,11 +497,13 @@ description: Result of parsing clone_w_shell.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Remove the end face for the extrusion." ], @@ -468,6 +519,7 @@ description: Result of parsing clone_w_shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstShell", "start": 0, "type": "Identifier" @@ -479,6 +531,7 @@ description: Result of parsing clone_w_shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -490,9 +543,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -504,6 +559,7 @@ description: Result of parsing clone_w_shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -514,6 +570,7 @@ description: Result of parsing clone_w_shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -521,6 +578,7 @@ description: Result of parsing clone_w_shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -536,9 +594,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shell", "start": 0, "type": "Identifier" @@ -549,6 +609,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -556,9 +617,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstSketch", "start": 0, "type": "Identifier" @@ -569,11 +632,13 @@ description: Result of parsing clone_w_shell.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -586,6 +651,7 @@ description: Result of parsing clone_w_shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondShell", "start": 0, "type": "Identifier" @@ -593,13 +659,16 @@ description: Result of parsing clone_w_shell.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -610,6 +679,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -617,9 +687,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstShell", "start": 0, "type": "Identifier" @@ -637,6 +709,7 @@ description: Result of parsing clone_w_shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -644,6 +717,7 @@ description: Result of parsing clone_w_shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -659,9 +733,11 @@ description: Result of parsing clone_w_shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -672,6 +748,7 @@ description: Result of parsing clone_w_shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -680,15 +757,18 @@ description: Result of parsing clone_w_shell.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -696,12 +776,14 @@ description: Result of parsing clone_w_shell.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -713,6 +795,7 @@ description: Result of parsing clone_w_shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/coerce_from_trig_to_point/ast.snap b/rust/kcl-lib/tests/coerce_from_trig_to_point/ast.snap index 635e927ac..954099536 100644 --- a/rust/kcl-lib/tests/coerce_from_trig_to_point/ast.snap +++ b/rust/kcl-lib/tests/coerce_from_trig_to_point/ast.snap @@ -1,6 +1,6 @@ --- source: kcl-lib/src/simulation_tests.rs -description: Result of parsing error_with_point_shows_numeric_units.kcl +description: Result of parsing coerce_from_trig_to_point.kcl --- { "Ok": { @@ -11,13 +11,16 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -28,6 +31,7 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35,9 +39,11 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -55,6 +61,7 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -63,13 +70,16 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -80,12 +90,14 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "66.6deg", "start": 0, "type": "Literal", @@ -97,13 +109,16 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -114,12 +129,14 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "66.6deg", "start": 0, "type": "Literal", @@ -132,6 +149,7 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -142,6 +160,7 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -149,6 +168,7 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -164,9 +184,11 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -177,6 +199,7 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -185,10 +208,12 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -196,6 +221,7 @@ description: Result of parsing error_with_point_shows_numeric_units.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/comparisons/ast.snap b/rust/kcl-lib/tests/comparisons/ast.snap index e789845c6..46ee155c8 100644 --- a/rust/kcl-lib/tests/comparisons/ast.snap +++ b/rust/kcl-lib/tests/comparisons/ast.snap @@ -15,6 +15,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -37,6 +39,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -44,6 +47,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"equality\"", "start": 0, "type": "Literal", @@ -56,9 +60,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -69,12 +75,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -85,6 +93,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -99,6 +108,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -106,6 +116,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.0", "start": 0, "type": "Literal", @@ -121,6 +132,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -128,6 +140,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"equality of floats\"", "start": 0, "type": "Literal", @@ -140,9 +153,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -153,12 +168,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.0", "start": 0, "type": "Literal", @@ -169,6 +186,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -183,6 +201,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isLessThan", "start": 0, "type": "Identifier" @@ -190,6 +209,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -205,6 +225,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -212,6 +233,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"lt\"", "start": 0, "type": "Literal", @@ -224,9 +246,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -237,12 +261,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -253,6 +279,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -267,6 +294,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isLessThanOrEqual", "start": 0, "type": "Identifier" @@ -274,6 +302,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -289,6 +318,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -296,6 +326,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"lte but actually lt\"", "start": 0, "type": "Literal", @@ -308,9 +339,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -321,12 +354,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -337,6 +372,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -351,6 +387,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isLessThanOrEqual", "start": 0, "type": "Identifier" @@ -358,6 +395,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -373,6 +411,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -380,6 +419,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"lte but actually eq\"", "start": 0, "type": "Literal", @@ -392,9 +432,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -405,12 +447,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -421,6 +465,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -435,6 +480,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThan", "start": 0, "type": "Identifier" @@ -442,6 +488,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -457,6 +504,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -464,6 +512,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"gt\"", "start": 0, "type": "Literal", @@ -476,9 +525,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -489,12 +540,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -505,6 +558,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -519,6 +573,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThanOrEqual", "start": 0, "type": "Identifier" @@ -526,6 +581,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -541,6 +597,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -548,6 +605,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"gte but actually gt\"", "start": 0, "type": "Literal", @@ -560,9 +618,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -573,12 +633,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -589,6 +651,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -603,6 +666,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThanOrEqual", "start": 0, "type": "Identifier" @@ -610,6 +674,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -625,6 +690,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -632,6 +698,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"gte but actually eq\"", "start": 0, "type": "Literal", @@ -644,9 +711,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -657,12 +726,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -673,6 +744,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -687,6 +759,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -694,6 +767,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -709,6 +783,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -716,6 +791,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"equality of zero\"", "start": 0, "type": "Literal", @@ -728,9 +804,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -741,12 +819,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -757,6 +837,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -771,6 +852,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -779,6 +861,7 @@ description: Result of parsing comparisons.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -790,6 +873,7 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -801,6 +885,7 @@ description: Result of parsing comparisons.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -808,6 +893,7 @@ description: Result of parsing comparisons.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"equality of zero and neg zero\"", "start": 0, "type": "Literal", @@ -820,9 +906,11 @@ description: Result of parsing comparisons.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -833,12 +921,14 @@ description: Result of parsing comparisons.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -849,6 +939,7 @@ description: Result of parsing comparisons.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -856,12 +947,14 @@ description: Result of parsing comparisons.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/comparisons_multiple/ast.snap b/rust/kcl-lib/tests/comparisons_multiple/ast.snap index a47b28ec7..62eb2b7ae 100644 --- a/rust/kcl-lib/tests/comparisons_multiple/ast.snap +++ b/rust/kcl-lib/tests/comparisons_multiple/ast.snap @@ -15,6 +15,7 @@ description: Result of parsing comparisons_multiple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ description: Result of parsing comparisons_multiple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"this should not compile\"", "start": 0, "type": "Literal", @@ -34,9 +36,11 @@ description: Result of parsing comparisons_multiple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -47,6 +51,7 @@ description: Result of parsing comparisons_multiple.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59,6 +64,7 @@ description: Result of parsing comparisons_multiple.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -68,10 +74,12 @@ description: Result of parsing comparisons_multiple.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "==", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -85,10 +93,12 @@ description: Result of parsing comparisons_multiple.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "==", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -103,6 +113,7 @@ description: Result of parsing comparisons_multiple.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -110,6 +121,7 @@ description: Result of parsing comparisons_multiple.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/computed_var/ast.snap b/rust/kcl-lib/tests/computed_var/ast.snap index 00be9c7b8..61c7df9b2 100644 --- a/rust/kcl-lib/tests/computed_var/ast.snap +++ b/rust/kcl-lib/tests/computed_var/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing computed_var.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -59,6 +63,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -70,15 +75,18 @@ description: Result of parsing computed_var.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -91,6 +99,7 @@ description: Result of parsing computed_var.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -98,6 +107,7 @@ description: Result of parsing computed_var.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -107,11 +117,13 @@ description: Result of parsing computed_var.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -124,6 +136,7 @@ description: Result of parsing computed_var.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ten", "start": 0, "type": "Identifier" @@ -132,13 +145,16 @@ description: Result of parsing computed_var.kcl "commentStart": 0, "computed": true, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -151,6 +167,7 @@ description: Result of parsing computed_var.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -160,11 +177,13 @@ description: Result of parsing computed_var.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -179,6 +198,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -186,6 +206,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -201,6 +222,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -208,6 +230,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"oops\"", "start": 0, "type": "Literal", @@ -220,9 +243,11 @@ description: Result of parsing computed_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -233,6 +258,7 @@ description: Result of parsing computed_var.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -240,9 +266,11 @@ description: Result of parsing computed_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ten", "start": 0, "type": "Identifier" @@ -253,6 +281,7 @@ description: Result of parsing computed_var.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -265,6 +294,7 @@ description: Result of parsing computed_var.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -272,6 +302,7 @@ description: Result of parsing computed_var.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -279,15 +310,18 @@ description: Result of parsing computed_var.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foo", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -304,15 +338,18 @@ description: Result of parsing computed_var.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bar", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -328,11 +365,13 @@ description: Result of parsing computed_var.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -345,6 +384,7 @@ description: Result of parsing computed_var.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier" @@ -353,13 +393,16 @@ description: Result of parsing computed_var.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -372,6 +415,7 @@ description: Result of parsing computed_var.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foo", "start": 0, "type": "Identifier", @@ -381,11 +425,13 @@ description: Result of parsing computed_var.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -400,6 +446,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -407,6 +454,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -422,6 +470,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -429,6 +478,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"oops\"", "start": 0, "type": "Literal", @@ -441,9 +491,11 @@ description: Result of parsing computed_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -454,6 +506,7 @@ description: Result of parsing computed_var.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -461,9 +514,11 @@ description: Result of parsing computed_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier" @@ -474,6 +529,7 @@ description: Result of parsing computed_var.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -488,6 +544,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -495,6 +552,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -510,6 +568,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -517,6 +576,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -532,6 +592,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -539,6 +600,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"oops pi\"", "start": 0, "type": "Literal", @@ -551,9 +613,11 @@ description: Result of parsing computed_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -564,6 +628,7 @@ description: Result of parsing computed_var.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -571,9 +636,11 @@ description: Result of parsing computed_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "PI", "start": 0, "type": "Identifier" @@ -584,6 +651,7 @@ description: Result of parsing computed_var.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -596,18 +664,22 @@ description: Result of parsing computed_var.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -618,6 +690,7 @@ description: Result of parsing computed_var.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -630,6 +703,7 @@ description: Result of parsing computed_var.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -639,14 +713,17 @@ description: Result of parsing computed_var.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "PI", "start": 0, "type": "Identifier" @@ -660,11 +737,13 @@ description: Result of parsing computed_var.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "ty": { "Rad": null, "commentStart": 0, "end": 0, + "moduleId": 0, "p_type": "Number", "start": 0, "type": "Primitive" @@ -673,11 +752,13 @@ description: Result of parsing computed_var.kcl "type": "AscribedExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -692,6 +773,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -699,6 +781,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -714,6 +797,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -721,6 +805,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.000001", "start": 0, "type": "Literal", @@ -736,6 +821,7 @@ description: Result of parsing computed_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -743,6 +829,7 @@ description: Result of parsing computed_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"oops cos\"", "start": 0, "type": "Literal", @@ -755,9 +842,11 @@ description: Result of parsing computed_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -768,6 +857,7 @@ description: Result of parsing computed_var.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -775,9 +865,11 @@ description: Result of parsing computed_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -788,6 +880,7 @@ description: Result of parsing computed_var.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -795,12 +888,14 @@ description: Result of parsing computed_var.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -812,6 +907,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -823,6 +919,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -834,6 +931,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -845,6 +943,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -857,6 +956,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -868,6 +968,7 @@ description: Result of parsing computed_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/crazy_multi_profile/ast.snap b/rust/kcl-lib/tests/crazy_multi_profile/ast.snap index bb7001708..20dab09e0 100644 --- a/rust/kcl-lib/tests/crazy_multi_profile/ast.snap +++ b/rust/kcl-lib/tests/crazy_multi_profile/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.71", "start": 0, "type": "Literal", @@ -108,6 +120,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.66", "start": 0, "type": "Literal", @@ -119,6 +132,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -126,6 +140,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -136,9 +151,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -149,6 +166,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -156,9 +174,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -186,6 +207,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.65", "start": 0, "type": "Literal", @@ -198,6 +220,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.02", "start": 0, "type": "Literal", @@ -209,6 +232,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -219,6 +243,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -226,6 +251,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -237,9 +263,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -250,6 +278,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -262,6 +291,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -272,6 +302,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.73", "start": 0, "type": "Literal", @@ -285,6 +316,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.36", "start": 0, "type": "Literal", @@ -296,6 +328,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -303,6 +336,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -313,6 +347,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -320,6 +355,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -331,9 +367,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -344,6 +382,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -356,6 +395,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -364,13 +404,16 @@ description: Result of parsing crazy_multi_profile.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -381,25 +424,30 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -410,12 +458,14 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -423,6 +473,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -433,9 +484,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -446,19 +499,23 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -469,6 +526,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -477,15 +535,18 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -498,6 +559,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -509,6 +571,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -516,6 +579,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -531,9 +595,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -544,6 +610,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -551,9 +618,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -564,11 +633,13 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -581,6 +652,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -592,6 +664,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -600,9 +673,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -618,9 +693,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -631,6 +708,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -638,9 +716,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -651,11 +731,13 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -668,6 +750,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -681,6 +764,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -691,6 +775,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -703,6 +788,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.46", "start": 0, "type": "Literal", @@ -714,6 +800,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -724,9 +811,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -737,6 +826,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -744,9 +834,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -764,6 +856,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -774,6 +867,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.52", "start": 0, "type": "Literal", @@ -786,6 +880,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.79", "start": 0, "type": "Literal", @@ -797,6 +892,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -807,9 +903,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -820,6 +918,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -832,6 +931,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -842,6 +942,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.98", "start": 0, "type": "Literal", @@ -855,6 +956,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.81", "start": 0, "type": "Literal", @@ -866,6 +968,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -873,6 +976,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -883,9 +987,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -896,6 +1002,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -904,15 +1011,18 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -925,6 +1035,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile003", "start": 0, "type": "Identifier" @@ -938,6 +1049,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -948,6 +1060,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.19", "start": 0, "type": "Literal", @@ -960,6 +1073,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.3", "start": 0, "type": "Literal", @@ -971,6 +1085,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -981,9 +1096,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -994,6 +1111,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1001,9 +1119,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1021,6 +1141,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1028,6 +1149,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1043,6 +1165,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1050,6 +1173,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.64", "start": 0, "type": "Literal", @@ -1065,6 +1189,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1072,6 +1197,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1083,9 +1209,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1096,6 +1224,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1108,6 +1237,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1116,13 +1246,16 @@ description: Result of parsing crazy_multi_profile.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1133,6 +1266,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1140,9 +1274,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1153,10 +1289,12 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1176,6 +1314,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1183,6 +1322,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.81", "start": 0, "type": "Literal", @@ -1198,9 +1338,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1211,6 +1353,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1223,18 +1366,22 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1245,6 +1392,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1252,9 +1400,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1271,19 +1421,23 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1294,6 +1448,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1301,9 +1456,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1316,6 +1473,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1327,9 +1485,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1340,6 +1500,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1352,6 +1513,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1360,13 +1522,16 @@ description: Result of parsing crazy_multi_profile.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1377,25 +1542,30 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1406,12 +1576,14 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1419,6 +1591,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1429,9 +1602,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1442,19 +1617,23 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1465,6 +1644,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1473,15 +1653,18 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1494,6 +1677,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile004", "start": 0, "type": "Identifier" @@ -1507,6 +1691,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1517,6 +1702,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.15", "start": 0, "type": "Literal", @@ -1529,6 +1715,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.39", "start": 0, "type": "Literal", @@ -1540,6 +1727,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1550,9 +1738,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1563,6 +1753,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1570,9 +1761,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1590,6 +1783,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1597,6 +1791,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.92", "start": 0, "type": "Literal", @@ -1612,9 +1807,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1625,6 +1822,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1637,6 +1835,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1648,6 +1847,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.41", "start": 0, "type": "Literal", @@ -1659,6 +1859,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1668,6 +1869,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.85", "start": 0, "type": "Literal", @@ -1679,6 +1881,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1686,6 +1889,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1696,9 +1900,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1709,6 +1915,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1721,6 +1928,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1729,13 +1937,16 @@ description: Result of parsing crazy_multi_profile.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1746,25 +1957,30 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1775,12 +1991,14 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1788,6 +2006,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1798,9 +2017,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1811,19 +2032,23 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1834,6 +2059,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1842,15 +2068,18 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1863,6 +2092,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile005", "start": 0, "type": "Identifier" @@ -1874,6 +2104,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1884,6 +2115,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.15", "start": 0, "type": "Literal", @@ -1896,6 +2128,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.34", "start": 0, "type": "Literal", @@ -1907,6 +2140,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1917,6 +2151,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1924,6 +2159,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.66", "start": 0, "type": "Literal", @@ -1939,9 +2175,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1952,6 +2190,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1959,9 +2198,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1972,11 +2213,13 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1989,6 +2232,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile006", "start": 0, "type": "Identifier" @@ -2002,6 +2246,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2012,6 +2257,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.65", "start": 0, "type": "Literal", @@ -2024,6 +2270,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.82", "start": 0, "type": "Literal", @@ -2035,6 +2282,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2045,9 +2293,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2058,6 +2308,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2065,9 +2316,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2085,6 +2338,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2095,6 +2349,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.38", "start": 0, "type": "Literal", @@ -2107,6 +2362,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.62", "start": 0, "type": "Literal", @@ -2118,6 +2374,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2128,9 +2385,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2141,6 +2400,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2153,6 +2413,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2163,6 +2424,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.13", "start": 0, "type": "Literal", @@ -2176,6 +2438,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.57", "start": 0, "type": "Literal", @@ -2187,6 +2450,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2194,6 +2458,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2204,9 +2469,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2217,6 +2484,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2229,6 +2497,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2237,13 +2506,16 @@ description: Result of parsing crazy_multi_profile.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2254,25 +2526,30 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2283,12 +2560,14 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2296,6 +2575,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2306,9 +2586,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2319,19 +2601,23 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2342,6 +2628,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2350,15 +2637,18 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2371,6 +2661,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve001", "start": 0, "type": "Identifier" @@ -2382,6 +2673,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2389,6 +2681,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -2404,18 +2697,22 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -2426,6 +2723,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2433,9 +2731,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2452,9 +2752,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -2465,6 +2767,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2472,9 +2775,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile004", "start": 0, "type": "Identifier" @@ -2485,11 +2790,13 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2502,6 +2809,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -2513,6 +2821,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2520,6 +2829,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2535,9 +2845,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2548,6 +2860,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2555,9 +2868,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile006", "start": 0, "type": "Identifier" @@ -2568,11 +2883,13 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2585,18 +2902,22 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2607,6 +2928,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2615,9 +2937,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2629,17 +2953,20 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2652,6 +2979,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile007", "start": 0, "type": "Identifier" @@ -2665,6 +2993,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2675,6 +3004,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.8", "start": 0, "type": "Literal", @@ -2687,6 +3017,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.55", "start": 0, "type": "Literal", @@ -2698,6 +3029,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2708,9 +3040,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2721,6 +3055,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2728,9 +3063,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -2748,6 +3085,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2758,6 +3096,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.39", "start": 0, "type": "Literal", @@ -2770,6 +3109,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.58", "start": 0, "type": "Literal", @@ -2781,6 +3121,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2791,9 +3132,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2804,6 +3147,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2816,6 +3160,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2826,6 +3171,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.02", "start": 0, "type": "Literal", @@ -2839,6 +3185,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.85", "start": 0, "type": "Literal", @@ -2850,6 +3197,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2857,6 +3205,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2867,9 +3216,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2880,6 +3231,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2888,15 +3240,18 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2909,6 +3264,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile008", "start": 0, "type": "Identifier" @@ -2922,6 +3278,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2932,6 +3289,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.54", "start": 0, "type": "Literal", @@ -2944,6 +3302,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.49", "start": 0, "type": "Literal", @@ -2955,6 +3314,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2965,9 +3325,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2978,6 +3340,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2985,9 +3348,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -3005,6 +3370,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3015,6 +3381,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.34", "start": 0, "type": "Literal", @@ -3027,6 +3394,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.64", "start": 0, "type": "Literal", @@ -3038,6 +3406,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3048,9 +3417,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3061,6 +3432,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3073,6 +3445,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3083,6 +3456,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.33", "start": 0, "type": "Literal", @@ -3096,6 +3470,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.96", "start": 0, "type": "Literal", @@ -3107,6 +3482,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3114,6 +3490,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3124,9 +3501,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3137,6 +3516,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3149,6 +3529,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3157,13 +3538,16 @@ description: Result of parsing crazy_multi_profile.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3174,25 +3558,30 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3203,12 +3592,14 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3216,6 +3607,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3226,9 +3618,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3239,19 +3633,23 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3262,6 +3660,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3270,15 +3669,18 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3291,6 +3693,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile009", "start": 0, "type": "Identifier" @@ -3304,6 +3707,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3314,6 +3718,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.23", "start": 0, "type": "Literal", @@ -3326,6 +3731,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.95", "start": 0, "type": "Literal", @@ -3337,6 +3743,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3347,9 +3754,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3360,6 +3769,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3367,9 +3777,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -3387,6 +3799,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3397,6 +3810,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.8", "start": 0, "type": "Literal", @@ -3409,6 +3823,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.17", "start": 0, "type": "Literal", @@ -3420,6 +3835,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3430,9 +3846,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3443,6 +3861,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3455,6 +3874,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3465,6 +3885,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.34", "start": 0, "type": "Literal", @@ -3478,6 +3899,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.75", "start": 0, "type": "Literal", @@ -3489,6 +3911,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3496,6 +3919,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3506,9 +3930,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3519,6 +3945,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3531,6 +3958,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3539,13 +3967,16 @@ description: Result of parsing crazy_multi_profile.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3556,25 +3987,30 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3585,12 +4021,14 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3598,6 +4036,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3608,9 +4047,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3621,19 +4062,23 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3644,6 +4089,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3652,15 +4098,18 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3673,6 +4122,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile010", "start": 0, "type": "Identifier" @@ -3684,6 +4134,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3694,6 +4145,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.18", "start": 0, "type": "Literal", @@ -3707,6 +4159,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.11", "start": 0, "type": "Literal", @@ -3718,6 +4171,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3725,6 +4179,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3735,6 +4190,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3742,6 +4198,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.67", "start": 0, "type": "Literal", @@ -3757,9 +4214,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3770,6 +4229,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3777,9 +4237,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -3790,11 +4252,13 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3807,6 +4271,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile011", "start": 0, "type": "Identifier" @@ -3820,6 +4285,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3830,6 +4296,7 @@ description: Result of parsing crazy_multi_profile.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.07", "start": 0, "type": "Literal", @@ -3843,6 +4310,7 @@ description: Result of parsing crazy_multi_profile.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.39", "start": 0, "type": "Literal", @@ -3854,6 +4322,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3861,6 +4330,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3871,9 +4341,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3884,6 +4356,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3891,9 +4364,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -3911,6 +4386,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3918,6 +4394,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3933,6 +4410,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3940,6 +4418,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.54", "start": 0, "type": "Literal", @@ -3955,6 +4434,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3962,6 +4442,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3973,9 +4454,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3986,6 +4469,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3998,6 +4482,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4006,13 +4491,16 @@ description: Result of parsing crazy_multi_profile.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -4023,6 +4511,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4030,9 +4519,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -4043,10 +4534,12 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4066,6 +4559,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4073,6 +4567,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.17", "start": 0, "type": "Literal", @@ -4088,9 +4583,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4101,6 +4598,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4113,18 +4611,22 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -4135,6 +4637,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4142,9 +4645,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -4161,19 +4666,23 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4184,6 +4693,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4191,9 +4701,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -4206,6 +4718,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4217,9 +4730,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4230,6 +4745,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4242,6 +4758,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4250,13 +4767,16 @@ description: Result of parsing crazy_multi_profile.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4267,25 +4787,30 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4296,12 +4821,14 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4309,6 +4836,7 @@ description: Result of parsing crazy_multi_profile.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4319,9 +4847,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4332,19 +4862,23 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4355,6 +4889,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4363,15 +4898,18 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4384,6 +4922,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -4395,6 +4934,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4402,6 +4942,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -4417,9 +4958,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4430,6 +4973,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4437,9 +4981,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile011", "start": 0, "type": "Identifier" @@ -4450,11 +4996,13 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4467,6 +5015,7 @@ description: Result of parsing crazy_multi_profile.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve002", "start": 0, "type": "Identifier" @@ -4478,6 +5027,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4485,6 +5035,7 @@ description: Result of parsing crazy_multi_profile.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -4500,6 +5051,7 @@ description: Result of parsing crazy_multi_profile.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4508,9 +5060,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -4526,9 +5080,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -4539,6 +5095,7 @@ description: Result of parsing crazy_multi_profile.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4546,9 +5103,11 @@ description: Result of parsing crazy_multi_profile.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile008", "start": 0, "type": "Identifier" @@ -4559,11 +5118,13 @@ description: Result of parsing crazy_multi_profile.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4571,6 +5132,7 @@ description: Result of parsing crazy_multi_profile.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/crazy_multi_profile/program_memory.snap b/rust/kcl-lib/tests/crazy_multi_profile/program_memory.snap index 8e7aa71a2..4e8c69d96 100644 --- a/rust/kcl-lib/tests/crazy_multi_profile/program_memory.snap +++ b/rust/kcl-lib/tests/crazy_multi_profile/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -30,6 +31,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -60,6 +62,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -85,6 +88,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -353,6 +357,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -366,6 +371,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -396,6 +402,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -421,6 +428,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -596,6 +604,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 2117, "end": 2138, + "moduleId": 0, "start": 2117, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -640,6 +649,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 2117, "end": 2138, + "moduleId": 0, "start": 2117, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -817,6 +827,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -842,6 +853,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -1037,6 +1049,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -1050,6 +1063,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -1080,6 +1094,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -1105,6 +1120,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -1276,6 +1292,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 571, "end": 592, + "moduleId": 0, "start": 571, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1399,6 +1416,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -1412,6 +1430,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -1442,6 +1461,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -1467,6 +1487,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -1742,6 +1763,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -1755,6 +1777,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -1785,6 +1808,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -1810,6 +1834,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -2028,6 +2053,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -2041,6 +2067,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -2071,6 +2098,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -2096,6 +2124,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -2365,6 +2394,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -2378,6 +2408,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -2408,6 +2439,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -2433,6 +2465,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -3067,6 +3100,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 2117, "end": 2138, + "moduleId": 0, "start": 2117, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -3349,6 +3383,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -3362,6 +3397,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -3392,6 +3428,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -3417,6 +3454,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -3827,6 +3865,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -3840,6 +3879,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" @@ -3870,6 +3910,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 123, "end": 129, + "moduleId": 0, "start": 123, "type": "TagDeclarator", "value": "seg02" @@ -3895,6 +3936,7 @@ description: Variables in memory after executing crazy_multi_profile.kcl "tag": { "commentStart": 168, "end": 174, + "moduleId": 0, "start": 168, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/cube/ast.snap b/rust/kcl-lib/tests/cube/ast.snap index ccb993dd6..16c3a31f9 100644 --- a/rust/kcl-lib/tests/cube/ast.snap +++ b/rust/kcl-lib/tests/cube/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -39,9 +41,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -51,10 +55,12 @@ description: Result of parsing cube.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -68,11 +74,13 @@ description: Result of parsing cube.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -85,6 +93,7 @@ description: Result of parsing cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -93,13 +102,16 @@ description: Result of parsing cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -112,6 +124,7 @@ description: Result of parsing cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -125,11 +138,13 @@ description: Result of parsing cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -142,6 +157,7 @@ description: Result of parsing cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -150,13 +166,16 @@ description: Result of parsing cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -169,6 +188,7 @@ description: Result of parsing cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -182,11 +202,13 @@ description: Result of parsing cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -199,6 +221,7 @@ description: Result of parsing cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p0", "start": 0, "type": "Identifier" @@ -214,9 +237,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -228,19 +253,23 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -262,9 +291,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -276,19 +307,23 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -304,15 +339,18 @@ description: Result of parsing cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -325,6 +363,7 @@ description: Result of parsing cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p1", "start": 0, "type": "Identifier" @@ -340,9 +379,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -354,19 +395,23 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -387,9 +432,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -399,14 +446,17 @@ description: Result of parsing cube.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -422,15 +472,18 @@ description: Result of parsing cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -443,6 +496,7 @@ description: Result of parsing cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p2", "start": 0, "type": "Identifier" @@ -457,9 +511,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -469,14 +525,17 @@ description: Result of parsing cube.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -497,9 +556,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -509,14 +570,17 @@ description: Result of parsing cube.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -532,15 +596,18 @@ description: Result of parsing cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -553,6 +620,7 @@ description: Result of parsing cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p3", "start": 0, "type": "Identifier" @@ -567,9 +635,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -579,14 +649,17 @@ description: Result of parsing cube.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -608,9 +681,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -622,19 +697,23 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -650,15 +729,18 @@ description: Result of parsing cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -667,13 +749,16 @@ description: Result of parsing cube.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -684,6 +769,7 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -691,9 +777,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -711,6 +799,7 @@ description: Result of parsing cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -719,9 +808,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p0", "start": 0, "type": "Identifier" @@ -737,9 +828,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -750,6 +843,7 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -762,6 +856,7 @@ description: Result of parsing cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -770,9 +865,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p1", "start": 0, "type": "Identifier" @@ -788,9 +885,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -801,6 +900,7 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -813,6 +913,7 @@ description: Result of parsing cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -821,9 +922,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p2", "start": 0, "type": "Identifier" @@ -839,9 +942,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -852,6 +957,7 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -864,6 +970,7 @@ description: Result of parsing cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -872,9 +979,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p3", "start": 0, "type": "Identifier" @@ -890,9 +999,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -903,6 +1014,7 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -915,6 +1027,7 @@ description: Result of parsing cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -923,9 +1036,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p0", "start": 0, "type": "Identifier" @@ -941,9 +1056,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -954,19 +1071,23 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -977,6 +1098,7 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -989,6 +1111,7 @@ description: Result of parsing cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -997,9 +1120,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -1015,9 +1140,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1028,6 +1155,7 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1036,12 +1164,14 @@ description: Result of parsing cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1049,12 +1179,14 @@ description: Result of parsing cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1069,12 +1201,14 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -1085,6 +1219,7 @@ description: Result of parsing cube.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1095,11 +1230,13 @@ description: Result of parsing cube.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1112,6 +1249,7 @@ description: Result of parsing cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myCube", "start": 0, "type": "Identifier" @@ -1123,6 +1261,7 @@ description: Result of parsing cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -1130,6 +1269,7 @@ description: Result of parsing cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -1145,6 +1285,7 @@ description: Result of parsing cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1155,6 +1296,7 @@ description: Result of parsing cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1167,6 +1309,7 @@ description: Result of parsing cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1178,6 +1321,7 @@ description: Result of parsing cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1188,9 +1332,11 @@ description: Result of parsing cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -1201,16 +1347,19 @@ description: Result of parsing cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1218,12 +1367,14 @@ description: Result of parsing cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/cube_with_error/ast.snap b/rust/kcl-lib/tests/cube_with_error/ast.snap index a866f0009..2d5e7d51e 100644 --- a/rust/kcl-lib/tests/cube_with_error/ast.snap +++ b/rust/kcl-lib/tests/cube_with_error/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing cube_with_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing cube_with_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -39,9 +41,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -51,10 +55,12 @@ description: Result of parsing cube_with_error.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -68,11 +74,13 @@ description: Result of parsing cube_with_error.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -85,6 +93,7 @@ description: Result of parsing cube_with_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -93,13 +102,16 @@ description: Result of parsing cube_with_error.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -112,6 +124,7 @@ description: Result of parsing cube_with_error.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -125,11 +138,13 @@ description: Result of parsing cube_with_error.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -142,6 +157,7 @@ description: Result of parsing cube_with_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -150,13 +166,16 @@ description: Result of parsing cube_with_error.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -169,6 +188,7 @@ description: Result of parsing cube_with_error.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -182,11 +202,13 @@ description: Result of parsing cube_with_error.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -199,6 +221,7 @@ description: Result of parsing cube_with_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p0", "start": 0, "type": "Identifier" @@ -214,9 +237,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -228,19 +253,23 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -262,9 +291,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -276,19 +307,23 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -304,15 +339,18 @@ description: Result of parsing cube_with_error.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -325,6 +363,7 @@ description: Result of parsing cube_with_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p1", "start": 0, "type": "Identifier" @@ -340,9 +379,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -354,19 +395,23 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -387,9 +432,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -399,14 +446,17 @@ description: Result of parsing cube_with_error.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -422,15 +472,18 @@ description: Result of parsing cube_with_error.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -443,6 +496,7 @@ description: Result of parsing cube_with_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p2", "start": 0, "type": "Identifier" @@ -457,9 +511,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -469,14 +525,17 @@ description: Result of parsing cube_with_error.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -497,9 +556,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -509,14 +570,17 @@ description: Result of parsing cube_with_error.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -532,15 +596,18 @@ description: Result of parsing cube_with_error.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -553,6 +620,7 @@ description: Result of parsing cube_with_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p3", "start": 0, "type": "Identifier" @@ -567,9 +635,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -579,14 +649,17 @@ description: Result of parsing cube_with_error.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -608,9 +681,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -622,19 +697,23 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -650,15 +729,18 @@ description: Result of parsing cube_with_error.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -667,13 +749,16 @@ description: Result of parsing cube_with_error.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -684,6 +769,7 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -691,9 +777,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -711,6 +799,7 @@ description: Result of parsing cube_with_error.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -719,9 +808,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p0", "start": 0, "type": "Identifier" @@ -737,9 +828,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -750,6 +843,7 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -762,6 +856,7 @@ description: Result of parsing cube_with_error.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -770,9 +865,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p1", "start": 0, "type": "Identifier" @@ -788,9 +885,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -801,6 +900,7 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -813,6 +913,7 @@ description: Result of parsing cube_with_error.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -821,9 +922,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p2", "start": 0, "type": "Identifier" @@ -839,9 +942,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -852,6 +957,7 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -864,6 +970,7 @@ description: Result of parsing cube_with_error.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -872,9 +979,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p3", "start": 0, "type": "Identifier" @@ -890,9 +999,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -903,6 +1014,7 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -915,6 +1027,7 @@ description: Result of parsing cube_with_error.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -923,9 +1036,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p0", "start": 0, "type": "Identifier" @@ -941,9 +1056,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -954,19 +1071,23 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -977,6 +1098,7 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -989,6 +1111,7 @@ description: Result of parsing cube_with_error.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -997,9 +1120,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1015,9 +1140,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1028,6 +1155,7 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1036,12 +1164,14 @@ description: Result of parsing cube_with_error.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1049,12 +1179,14 @@ description: Result of parsing cube_with_error.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1069,12 +1201,14 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1085,6 +1219,7 @@ description: Result of parsing cube_with_error.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1095,11 +1230,13 @@ description: Result of parsing cube_with_error.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1112,6 +1249,7 @@ description: Result of parsing cube_with_error.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myCube", "start": 0, "type": "Identifier" @@ -1123,6 +1261,7 @@ description: Result of parsing cube_with_error.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1130,6 +1269,7 @@ description: Result of parsing cube_with_error.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -1145,6 +1285,7 @@ description: Result of parsing cube_with_error.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1155,6 +1296,7 @@ description: Result of parsing cube_with_error.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1167,6 +1309,7 @@ description: Result of parsing cube_with_error.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1178,6 +1321,7 @@ description: Result of parsing cube_with_error.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1188,9 +1332,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -1201,16 +1347,19 @@ description: Result of parsing cube_with_error.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1222,9 +1371,11 @@ description: Result of parsing cube_with_error.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foo", "start": 0, "type": "Identifier" @@ -1234,6 +1385,7 @@ description: Result of parsing cube_with_error.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "preComments": [ "", "", @@ -1246,12 +1398,14 @@ description: Result of parsing cube_with_error.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/double_map_fn/ast.snap b/rust/kcl-lib/tests/double_map_fn/ast.snap index 00e28c89b..f4bcad0d0 100644 --- a/rust/kcl-lib/tests/double_map_fn/ast.snap +++ b/rust/kcl-lib/tests/double_map_fn/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing double_map_fn.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "increment", "start": 0, "type": "Identifier" @@ -28,9 +29,11 @@ description: Result of parsing double_map_fn.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -40,10 +43,12 @@ description: Result of parsing double_map_fn.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -59,6 +64,7 @@ description: Result of parsing double_map_fn.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -66,16 +72,19 @@ description: Result of parsing double_map_fn.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -87,11 +96,13 @@ description: Result of parsing double_map_fn.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -104,6 +115,7 @@ description: Result of parsing double_map_fn.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xs", "start": 0, "type": "Identifier" @@ -114,6 +126,7 @@ description: Result of parsing double_map_fn.kcl "endElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -124,10 +137,12 @@ description: Result of parsing double_map_fn.kcl } }, "endInclusive": true, + "moduleId": 0, "start": 0, "startElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -140,11 +155,13 @@ description: Result of parsing double_map_fn.kcl "type": "ArrayRangeExpression", "type": "ArrayRangeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -157,6 +174,7 @@ description: Result of parsing double_map_fn.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ys", "start": 0, "type": "Identifier" @@ -167,9 +185,11 @@ description: Result of parsing double_map_fn.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xs", "start": 0, "type": "Identifier" @@ -186,6 +206,7 @@ description: Result of parsing double_map_fn.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -194,9 +215,11 @@ description: Result of parsing double_map_fn.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "increment", "start": 0, "type": "Identifier" @@ -212,9 +235,11 @@ description: Result of parsing double_map_fn.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "map", "start": 0, "type": "Identifier" @@ -225,6 +250,7 @@ description: Result of parsing double_map_fn.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -237,6 +263,7 @@ description: Result of parsing double_map_fn.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -245,9 +272,11 @@ description: Result of parsing double_map_fn.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "increment", "start": 0, "type": "Identifier" @@ -263,9 +292,11 @@ description: Result of parsing double_map_fn.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "map", "start": 0, "type": "Identifier" @@ -276,6 +307,7 @@ description: Result of parsing double_map_fn.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -284,15 +316,18 @@ description: Result of parsing double_map_fn.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -300,12 +335,14 @@ description: Result of parsing double_map_fn.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/error_inside_fn_also_has_source_range_of_call_site_recursive/ast.snap b/rust/kcl-lib/tests/error_inside_fn_also_has_source_range_of_call_site_recursive/ast.snap index 2f43a0e51..d5703e408 100644 --- a/rust/kcl-lib/tests/error_inside_fn_also_has_source_range_of_call_site_recursive/ast.snap +++ b/rust/kcl-lib/tests/error_inside_fn_also_has_source_range_of_call_site_recursive/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "someFunction", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "someNestedFunction", "start": 0, "type": "Identifier" @@ -39,13 +41,16 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63,9 +69,11 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "something2", "start": 0, "type": "Identifier" @@ -76,6 +84,7 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -83,16 +92,19 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "something2", "start": 0, "type": "Identifier" @@ -104,11 +116,13 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -117,13 +131,16 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "someNestedFunction", "start": 0, "type": "Identifier" @@ -134,6 +151,7 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -141,9 +159,11 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "something", "start": 0, "type": "Identifier" @@ -154,6 +174,7 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -161,12 +182,14 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -181,12 +204,14 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "something", "start": 0, "type": "Identifier" @@ -198,11 +223,13 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -211,13 +238,16 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "someFunction", "start": 0, "type": "Identifier" @@ -228,12 +258,14 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'INVALID'", "start": 0, "type": "Literal", @@ -241,6 +273,7 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit "value": "INVALID" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -248,12 +281,14 @@ description: Result of parsing error_inside_fn_also_has_source_range_of_call_sit ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/error_revolve_on_edge_get_edge/ast.snap b/rust/kcl-lib/tests/error_revolve_on_edge_get_edge/ast.snap index e314d2be3..42ae0696d 100644 --- a/rust/kcl-lib/tests/error_revolve_on_edge_get_edge/ast.snap +++ b/rust/kcl-lib/tests/error_revolve_on_edge_get_edge/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "box", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,9 +193,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -188,6 +208,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -200,6 +221,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -210,6 +232,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -222,6 +245,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -233,6 +257,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -243,9 +268,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -256,6 +283,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -268,6 +296,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -278,6 +307,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -291,6 +321,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -302,6 +333,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -309,6 +341,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -319,6 +352,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -326,6 +360,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -337,9 +372,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -350,19 +387,23 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -373,6 +414,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -385,6 +427,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -392,6 +435,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -407,9 +451,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -420,6 +466,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -428,15 +475,18 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -449,6 +499,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -462,6 +513,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -470,9 +522,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolveAxis", "start": 0, "type": "Identifier" @@ -488,9 +542,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -501,6 +557,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -508,9 +565,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "box", "start": 0, "type": "Identifier" @@ -528,6 +587,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -538,6 +598,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -550,6 +611,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -561,6 +623,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -571,9 +634,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -584,6 +649,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -596,6 +662,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -606,6 +673,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -619,6 +687,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -630,6 +699,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -637,6 +707,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -647,9 +718,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -660,6 +733,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -672,6 +746,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -682,6 +757,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -694,6 +770,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -705,6 +782,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -715,9 +793,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -728,6 +808,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -740,6 +821,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -750,6 +832,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -762,6 +845,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -773,6 +857,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -783,9 +868,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -796,19 +883,23 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -819,6 +910,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -831,6 +923,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -839,9 +932,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolveAxis", "start": 0, "type": "Identifier" @@ -857,6 +952,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -864,6 +960,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -879,9 +976,11 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -892,6 +991,7 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -900,15 +1000,18 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -916,12 +1019,14 @@ description: Result of parsing error_revolve_on_edge_get_edge.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/execute_engine_error_return/ast.snap b/rust/kcl-lib/tests/execute_engine_error_return/ast.snap index 3de80d83e..fe0d1050e 100644 --- a/rust/kcl-lib/tests/execute_engine_error_return/ast.snap +++ b/rust/kcl-lib/tests/execute_engine_error_return/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing execute_engine_error_return.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing execute_engine_error_return.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing execute_engine_error_return.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing execute_engine_error_return.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing execute_engine_error_return.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.5229", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing execute_engine_error_return.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.25217", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing execute_engine_error_return.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing execute_engine_error_return.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing execute_engine_error_return.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing execute_engine_error_return.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.50433", "start": 0, "type": "Literal", @@ -155,6 +171,7 @@ description: Result of parsing execute_engine_error_return.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.19122", "start": 0, "type": "Literal", @@ -166,6 +183,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -173,6 +191,7 @@ description: Result of parsing execute_engine_error_return.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -183,9 +202,11 @@ description: Result of parsing execute_engine_error_return.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -196,6 +217,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -208,6 +230,7 @@ description: Result of parsing execute_engine_error_return.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -218,6 +241,7 @@ description: Result of parsing execute_engine_error_return.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.01362", "start": 0, "type": "Literal", @@ -231,6 +255,7 @@ description: Result of parsing execute_engine_error_return.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.48731", "start": 0, "type": "Literal", @@ -242,6 +267,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -249,6 +275,7 @@ description: Result of parsing execute_engine_error_return.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -259,9 +286,11 @@ description: Result of parsing execute_engine_error_return.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -272,6 +301,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -284,6 +314,7 @@ description: Result of parsing execute_engine_error_return.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -295,6 +326,7 @@ description: Result of parsing execute_engine_error_return.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.02877", "start": 0, "type": "Literal", @@ -306,6 +338,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -315,6 +348,7 @@ description: Result of parsing execute_engine_error_return.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.76825", "start": 0, "type": "Literal", @@ -326,6 +360,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -333,6 +368,7 @@ description: Result of parsing execute_engine_error_return.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -343,9 +379,11 @@ description: Result of parsing execute_engine_error_return.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -356,6 +394,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -368,6 +407,7 @@ description: Result of parsing execute_engine_error_return.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -379,6 +419,7 @@ description: Result of parsing execute_engine_error_return.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.53311", "start": 0, "type": "Literal", @@ -390,6 +431,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -398,6 +440,7 @@ description: Result of parsing execute_engine_error_return.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.81559", "start": 0, "type": "Literal", @@ -409,6 +452,7 @@ description: Result of parsing execute_engine_error_return.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -419,9 +463,11 @@ description: Result of parsing execute_engine_error_return.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -432,6 +478,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -444,6 +491,7 @@ description: Result of parsing execute_engine_error_return.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -451,6 +499,7 @@ description: Result of parsing execute_engine_error_return.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -466,9 +515,11 @@ description: Result of parsing execute_engine_error_return.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -479,6 +530,7 @@ description: Result of parsing execute_engine_error_return.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -487,15 +539,18 @@ description: Result of parsing execute_engine_error_return.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -503,6 +558,7 @@ description: Result of parsing execute_engine_error_return.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/export_var_only_at_top_level/ast.snap b/rust/kcl-lib/tests/export_var_only_at_top_level/ast.snap index 6043f03c7..b46f1619b 100644 --- a/rust/kcl-lib/tests/export_var_only_at_top_level/ast.snap +++ b/rust/kcl-lib/tests/export_var_only_at_top_level/ast.snap @@ -1,6 +1,6 @@ --- source: kcl-lib/src/simulation_tests.rs -description: Result of parsing export_only_at_top_level.kcl +description: Result of parsing export_var_only_at_top_level.kcl --- { "Ok": { @@ -13,6 +13,7 @@ description: Result of parsing export_only_at_top_level.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "main", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing export_only_at_top_level.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -35,6 +37,7 @@ description: Result of parsing export_only_at_top_level.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -44,11 +47,13 @@ description: Result of parsing export_only_at_top_level.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -58,6 +63,7 @@ description: Result of parsing export_only_at_top_level.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -69,6 +75,7 @@ description: Result of parsing export_only_at_top_level.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -76,20 +83,24 @@ description: Result of parsing export_only_at_top_level.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -98,13 +109,16 @@ description: Result of parsing export_only_at_top_level.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "main", "start": 0, "type": "Identifier" @@ -115,11 +129,13 @@ description: Result of parsing export_only_at_top_level.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -127,12 +143,14 @@ description: Result of parsing export_only_at_top_level.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/fillet-and-shell/ast.snap b/rust/kcl-lib/tests/fillet-and-shell/ast.snap index 4cb0fb415..3b1ee60a2 100644 --- a/rust/kcl-lib/tests/fillet-and-shell/ast.snap +++ b/rust/kcl-lib/tests/fillet-and-shell/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizWidth", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizLength", "start": 0, "type": "Identifier" @@ -53,6 +58,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "65", "start": 0, "type": "Literal", @@ -62,11 +68,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +87,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseThickness", "start": 0, "type": "Identifier" @@ -86,6 +95,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -95,11 +105,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -112,6 +124,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -119,6 +132,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -128,11 +142,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -145,6 +161,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwHeight", "start": 0, "type": "Identifier" @@ -152,6 +169,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -161,11 +179,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -178,6 +198,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseWidth", "start": 0, "type": "Identifier" @@ -189,9 +210,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizWidth", "start": 0, "type": "Identifier" @@ -201,6 +224,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -209,9 +233,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -221,10 +247,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -242,11 +270,13 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -259,6 +289,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseLength", "start": 0, "type": "Identifier" @@ -270,9 +301,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizLength", "start": 0, "type": "Identifier" @@ -282,6 +315,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -290,9 +324,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -302,10 +338,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -323,11 +361,13 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -340,6 +380,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseHeight", "start": 0, "type": "Identifier" @@ -347,6 +388,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -356,11 +398,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -373,6 +417,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "widthBetweenScrews", "start": 0, "type": "Identifier" @@ -380,6 +425,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23", "start": 0, "type": "Literal", @@ -389,11 +435,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -406,6 +454,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthBetweenScrews", "start": 0, "type": "Identifier" @@ -416,6 +465,7 @@ description: Result of parsing fillet-and-shell.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "29", "start": 0, "type": "Literal", @@ -425,10 +475,12 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -442,11 +494,13 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -459,6 +513,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiDistance", "start": 0, "type": "Identifier" @@ -466,6 +521,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.4", "start": 0, "type": "Literal", @@ -475,11 +531,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -492,6 +550,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "microUsb1Distance", "start": 0, "type": "Identifier" @@ -499,6 +558,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41.4", "start": 0, "type": "Literal", @@ -508,11 +568,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -525,6 +587,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "microUsb2Distance", "start": 0, "type": "Identifier" @@ -532,6 +595,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "54", "start": 0, "type": "Literal", @@ -541,11 +605,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -558,6 +624,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiWidth", "start": 0, "type": "Identifier" @@ -565,6 +632,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.2", "start": 0, "type": "Literal", @@ -574,11 +642,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -591,6 +661,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "microUsbWidth", "start": 0, "type": "Identifier" @@ -598,6 +669,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.4", "start": 0, "type": "Literal", @@ -607,11 +679,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -624,6 +698,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectorPadding", "start": 0, "type": "Identifier" @@ -631,6 +706,7 @@ description: Result of parsing fillet-and-shell.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -640,11 +716,13 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -657,6 +735,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiHole", "start": 0, "type": "Identifier" @@ -664,13 +743,16 @@ description: Result of parsing fillet-and-shell.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -681,6 +763,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -688,9 +771,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -708,6 +793,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -718,6 +804,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -737,9 +824,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -749,14 +838,17 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiDistance", "start": 0, "type": "Identifier" @@ -770,6 +862,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -778,9 +871,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiWidth", "start": 0, "type": "Identifier" @@ -790,10 +885,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -813,6 +910,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -823,9 +921,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -836,6 +936,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -848,6 +949,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -858,6 +960,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -877,9 +980,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -889,14 +994,17 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiDistance", "start": 0, "type": "Identifier" @@ -910,6 +1018,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -918,9 +1027,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiWidth", "start": 0, "type": "Identifier" @@ -930,10 +1041,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -953,6 +1066,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -963,9 +1077,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -976,6 +1092,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -988,6 +1105,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -998,6 +1116,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1017,9 +1136,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -1029,14 +1150,17 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiDistance", "start": 0, "type": "Identifier" @@ -1050,6 +1174,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1058,9 +1183,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiWidth", "start": 0, "type": "Identifier" @@ -1070,10 +1197,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1093,6 +1222,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1103,9 +1233,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1116,6 +1248,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1128,6 +1261,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1138,6 +1272,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1157,9 +1292,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -1169,14 +1306,17 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiDistance", "start": 0, "type": "Identifier" @@ -1190,6 +1330,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1198,9 +1339,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "miniHdmiWidth", "start": 0, "type": "Identifier" @@ -1210,10 +1353,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1233,6 +1378,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1243,9 +1389,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1256,19 +1404,23 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1279,12 +1431,14 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1293,15 +1447,18 @@ description: Result of parsing fillet-and-shell.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1314,6 +1471,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "case", "start": 0, "type": "Identifier" @@ -1321,13 +1479,16 @@ description: Result of parsing fillet-and-shell.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1338,6 +1499,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1345,9 +1507,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1365,6 +1529,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1375,6 +1540,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1387,6 +1553,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1398,6 +1565,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1408,9 +1576,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1421,6 +1591,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1433,6 +1604,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1444,9 +1616,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseWidth", "start": 0, "type": "Identifier" @@ -1459,6 +1633,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1470,6 +1645,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1480,6 +1656,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1487,6 +1664,7 @@ description: Result of parsing fillet-and-shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1498,9 +1676,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1511,6 +1691,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1523,6 +1704,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1534,9 +1716,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseWidth", "start": 0, "type": "Identifier" @@ -1550,9 +1734,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseLength", "start": 0, "type": "Identifier" @@ -1564,6 +1750,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1574,6 +1761,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1581,6 +1769,7 @@ description: Result of parsing fillet-and-shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1592,9 +1781,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1605,6 +1796,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1617,6 +1809,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1627,6 +1820,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1640,9 +1834,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseLength", "start": 0, "type": "Identifier" @@ -1654,6 +1850,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1664,6 +1861,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1671,6 +1869,7 @@ description: Result of parsing fillet-and-shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1682,9 +1881,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1695,6 +1896,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1707,6 +1909,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1714,6 +1917,7 @@ description: Result of parsing fillet-and-shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1725,9 +1929,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1738,6 +1944,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1750,6 +1957,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1758,9 +1966,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseHeight", "start": 0, "type": "Identifier" @@ -1776,9 +1986,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1789,6 +2001,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1801,6 +2014,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1808,6 +2022,7 @@ description: Result of parsing fillet-and-shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1823,6 +2038,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1831,13 +2047,16 @@ description: Result of parsing fillet-and-shell.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1848,6 +2067,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1855,9 +2075,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge1", "start": 0, "type": "Identifier" @@ -1869,13 +2091,16 @@ description: Result of parsing fillet-and-shell.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1886,6 +2111,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1893,9 +2119,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge2", "start": 0, "type": "Identifier" @@ -1907,13 +2135,16 @@ description: Result of parsing fillet-and-shell.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1924,6 +2155,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1931,9 +2163,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge3", "start": 0, "type": "Identifier" @@ -1945,13 +2179,16 @@ description: Result of parsing fillet-and-shell.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1962,6 +2199,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1969,9 +2207,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge4", "start": 0, "type": "Identifier" @@ -1984,6 +2224,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1994,9 +2235,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -2007,6 +2250,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2015,15 +2259,18 @@ description: Result of parsing fillet-and-shell.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2036,6 +2283,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "m25Screw", "start": 0, "type": "Identifier" @@ -2051,6 +2299,7 @@ description: Result of parsing fillet-and-shell.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screw", "start": 0, "type": "Identifier" @@ -2058,13 +2307,16 @@ description: Result of parsing fillet-and-shell.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2075,6 +2327,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2082,9 +2335,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2102,6 +2357,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2112,6 +2368,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2124,6 +2381,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2135,6 +2393,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2145,9 +2404,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2158,6 +2419,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2170,6 +2432,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2181,9 +2444,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -2197,9 +2462,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2211,6 +2478,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2221,6 +2489,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2228,6 +2497,7 @@ description: Result of parsing fillet-and-shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -2243,9 +2513,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2256,6 +2528,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2268,6 +2541,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -2279,6 +2553,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2290,9 +2565,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -2306,9 +2583,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2320,6 +2599,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2330,6 +2610,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2337,6 +2618,7 @@ description: Result of parsing fillet-and-shell.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -2352,9 +2634,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2365,6 +2649,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2376,9 +2661,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2389,6 +2676,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2401,6 +2689,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2409,9 +2698,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2427,9 +2718,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2440,6 +2733,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2448,15 +2742,18 @@ description: Result of parsing fillet-and-shell.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2466,9 +2763,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screw", "start": 0, "type": "Identifier" @@ -2480,6 +2779,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2487,16 +2787,19 @@ description: Result of parsing fillet-and-shell.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -2507,6 +2810,7 @@ description: Result of parsing fillet-and-shell.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2517,6 +2821,7 @@ description: Result of parsing fillet-and-shell.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2527,11 +2832,13 @@ description: Result of parsing fillet-and-shell.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2546,6 +2853,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -2560,9 +2868,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -2572,6 +2882,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2580,9 +2891,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizWidth", "start": 0, "type": "Identifier" @@ -2592,10 +2905,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2613,6 +2928,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2621,9 +2937,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "widthBetweenScrews", "start": 0, "type": "Identifier" @@ -2633,10 +2951,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2660,6 +2980,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2676,6 +2997,7 @@ description: Result of parsing fillet-and-shell.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2685,14 +3007,17 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -2706,6 +3031,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2714,9 +3040,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizLength", "start": 0, "type": "Identifier" @@ -2726,10 +3054,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2747,6 +3077,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2755,9 +3086,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthBetweenScrews", "start": 0, "type": "Identifier" @@ -2767,10 +3100,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2794,6 +3129,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2802,9 +3138,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwHeight", "start": 0, "type": "Identifier" @@ -2820,9 +3158,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "m25Screw", "start": 0, "type": "Identifier" @@ -2833,11 +3173,13 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2852,6 +3194,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -2866,9 +3209,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -2878,6 +3223,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2886,9 +3232,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizWidth", "start": 0, "type": "Identifier" @@ -2898,10 +3246,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2919,6 +3269,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2927,9 +3278,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "widthBetweenScrews", "start": 0, "type": "Identifier" @@ -2939,10 +3292,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2966,6 +3321,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2982,6 +3338,7 @@ description: Result of parsing fillet-and-shell.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2991,14 +3348,17 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -3012,6 +3372,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3020,9 +3381,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizLength", "start": 0, "type": "Identifier" @@ -3032,10 +3395,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3053,6 +3418,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3061,9 +3427,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthBetweenScrews", "start": 0, "type": "Identifier" @@ -3073,10 +3441,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3100,6 +3470,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3108,9 +3479,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwHeight", "start": 0, "type": "Identifier" @@ -3126,9 +3499,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "m25Screw", "start": 0, "type": "Identifier" @@ -3139,11 +3514,13 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3158,6 +3535,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -3172,9 +3550,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -3184,6 +3564,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3192,9 +3573,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizWidth", "start": 0, "type": "Identifier" @@ -3204,10 +3587,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3225,6 +3610,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3233,9 +3619,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "widthBetweenScrews", "start": 0, "type": "Identifier" @@ -3245,10 +3633,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3272,6 +3662,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -3288,6 +3679,7 @@ description: Result of parsing fillet-and-shell.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3297,14 +3689,17 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -3318,6 +3713,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3326,9 +3722,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizLength", "start": 0, "type": "Identifier" @@ -3338,10 +3736,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3359,6 +3759,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3367,9 +3768,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthBetweenScrews", "start": 0, "type": "Identifier" @@ -3379,10 +3782,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3406,6 +3811,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3414,9 +3820,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwHeight", "start": 0, "type": "Identifier" @@ -3432,9 +3840,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "m25Screw", "start": 0, "type": "Identifier" @@ -3445,11 +3855,13 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3464,6 +3876,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -3478,9 +3891,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -3490,6 +3905,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3498,9 +3914,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizWidth", "start": 0, "type": "Identifier" @@ -3510,10 +3928,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3531,6 +3951,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3539,9 +3960,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "widthBetweenScrews", "start": 0, "type": "Identifier" @@ -3551,10 +3974,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3578,6 +4003,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -3594,6 +4020,7 @@ description: Result of parsing fillet-and-shell.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3603,14 +4030,17 @@ description: Result of parsing fillet-and-shell.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "border", "start": 0, "type": "Identifier" @@ -3624,6 +4054,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3632,9 +4063,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rpizLength", "start": 0, "type": "Identifier" @@ -3644,10 +4077,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3665,6 +4100,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3673,9 +4109,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthBetweenScrews", "start": 0, "type": "Identifier" @@ -3685,10 +4123,12 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3712,6 +4152,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3720,9 +4161,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwHeight", "start": 0, "type": "Identifier" @@ -3738,9 +4181,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "m25Screw", "start": 0, "type": "Identifier" @@ -3751,11 +4196,13 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3770,6 +4217,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -3780,6 +4228,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'end'", "start": 0, "type": "Literal", @@ -3788,6 +4237,7 @@ description: Result of parsing fillet-and-shell.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3798,6 +4248,7 @@ description: Result of parsing fillet-and-shell.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -3806,9 +4257,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "caseThickness", "start": 0, "type": "Identifier" @@ -3824,9 +4277,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shell", "start": 0, "type": "Identifier" @@ -3837,6 +4292,7 @@ description: Result of parsing fillet-and-shell.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3844,9 +4300,11 @@ description: Result of parsing fillet-and-shell.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "case", "start": 0, "type": "Identifier" @@ -3857,6 +4315,7 @@ description: Result of parsing fillet-and-shell.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3864,12 +4323,14 @@ description: Result of parsing fillet-and-shell.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3881,6 +4342,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3892,6 +4354,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3903,6 +4366,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3914,6 +4378,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3925,6 +4390,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3936,6 +4402,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3947,6 +4414,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3958,6 +4426,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3969,6 +4438,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3980,6 +4450,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3991,6 +4462,7 @@ description: Result of parsing fillet-and-shell.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/fillet-and-shell/program_memory.snap b/rust/kcl-lib/tests/fillet-and-shell/program_memory.snap index a9b364b5b..a3bab429b 100644 --- a/rust/kcl-lib/tests/fillet-and-shell/program_memory.snap +++ b/rust/kcl-lib/tests/fillet-and-shell/program_memory.snap @@ -30,6 +30,7 @@ description: Variables in memory after executing fillet-and-shell.kcl "tag": { "commentStart": 878, "end": 884, + "moduleId": 0, "start": 878, "type": "TagDeclarator", "value": "edge1" @@ -43,6 +44,7 @@ description: Variables in memory after executing fillet-and-shell.kcl "tag": { "commentStart": 941, "end": 947, + "moduleId": 0, "start": 941, "type": "TagDeclarator", "value": "edge2" @@ -56,6 +58,7 @@ description: Variables in memory after executing fillet-and-shell.kcl "tag": { "commentStart": 996, "end": 1002, + "moduleId": 0, "start": 996, "type": "TagDeclarator", "value": "edge3" @@ -69,6 +72,7 @@ description: Variables in memory after executing fillet-and-shell.kcl "tag": { "commentStart": 1021, "end": 1027, + "moduleId": 0, "start": 1021, "type": "TagDeclarator", "value": "edge4" @@ -92,6 +96,7 @@ description: Variables in memory after executing fillet-and-shell.kcl "tag": { "commentStart": 878, "end": 884, + "moduleId": 0, "start": 878, "type": "TagDeclarator", "value": "edge1" @@ -117,6 +122,7 @@ description: Variables in memory after executing fillet-and-shell.kcl "tag": { "commentStart": 941, "end": 947, + "moduleId": 0, "start": 941, "type": "TagDeclarator", "value": "edge2" @@ -142,6 +148,7 @@ description: Variables in memory after executing fillet-and-shell.kcl "tag": { "commentStart": 996, "end": 1002, + "moduleId": 0, "start": 996, "type": "TagDeclarator", "value": "edge3" @@ -167,6 +174,7 @@ description: Variables in memory after executing fillet-and-shell.kcl "tag": { "commentStart": 1021, "end": 1027, + "moduleId": 0, "start": 1021, "type": "TagDeclarator", "value": "edge4" diff --git a/rust/kcl-lib/tests/fillet_duplicate_tags/ast.snap b/rust/kcl-lib/tests/fillet_duplicate_tags/ast.snap index aa41eb589..cf0784bbb 100644 --- a/rust/kcl-lib/tests/fillet_duplicate_tags/ast.snap +++ b/rust/kcl-lib/tests/fillet_duplicate_tags/ast.snap @@ -17,6 +17,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -27,6 +28,7 @@ description: Result of parsing fillet_duplicate_tags.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -39,6 +41,7 @@ description: Result of parsing fillet_duplicate_tags.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -50,6 +53,7 @@ description: Result of parsing fillet_duplicate_tags.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60,9 +64,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -73,17 +79,21 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -94,6 +104,7 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -101,9 +112,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -129,6 +143,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -144,6 +159,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -151,6 +167,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -162,9 +179,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -175,6 +194,7 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -187,6 +207,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -194,6 +215,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -209,6 +231,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -216,6 +239,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -227,9 +251,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -240,6 +266,7 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -252,18 +279,22 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -274,12 +305,14 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -291,6 +324,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -298,6 +332,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -309,9 +344,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -322,6 +359,7 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -334,6 +372,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -341,6 +380,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -352,9 +392,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -365,6 +407,7 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -377,6 +420,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -384,6 +428,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -399,9 +444,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -412,6 +459,7 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -424,6 +472,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -431,6 +480,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -446,6 +496,7 @@ description: Result of parsing fillet_duplicate_tags.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -457,9 +508,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line003", "start": 0, "type": "Identifier" @@ -470,13 +523,16 @@ description: Result of parsing fillet_duplicate_tags.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -487,6 +543,7 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -494,9 +551,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line000", "start": 0, "type": "Identifier" @@ -508,13 +567,16 @@ description: Result of parsing fillet_duplicate_tags.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -525,6 +587,7 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -532,9 +595,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line001", "start": 0, "type": "Identifier" @@ -547,6 +612,7 @@ description: Result of parsing fillet_duplicate_tags.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -557,9 +623,11 @@ description: Result of parsing fillet_duplicate_tags.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -570,6 +638,7 @@ description: Result of parsing fillet_duplicate_tags.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -578,10 +647,12 @@ description: Result of parsing fillet_duplicate_tags.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -589,12 +660,14 @@ description: Result of parsing fillet_duplicate_tags.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/flush_batch_on_end/ast.snap b/rust/kcl-lib/tests/flush_batch_on_end/ast.snap index 04c9057cd..dd17275a3 100644 --- a/rust/kcl-lib/tests/flush_batch_on_end/ast.snap +++ b/rust/kcl-lib/tests/flush_batch_on_end/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing flush_batch_on_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing flush_batch_on_end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.364", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing flush_batch_on_end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Set units in inches (in)", "", @@ -52,6 +56,7 @@ description: Result of parsing flush_batch_on_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerDiameter", "start": 0, "type": "Identifier" @@ -62,6 +67,7 @@ description: Result of parsing flush_batch_on_end.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -71,10 +77,12 @@ description: Result of parsing flush_batch_on_end.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "64", "start": 0, "type": "Literal", @@ -88,11 +96,13 @@ description: Result of parsing flush_batch_on_end.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -105,6 +115,7 @@ description: Result of parsing flush_batch_on_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -115,6 +126,7 @@ description: Result of parsing flush_batch_on_end.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -124,6 +136,7 @@ description: Result of parsing flush_batch_on_end.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -131,6 +144,7 @@ description: Result of parsing flush_batch_on_end.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -140,10 +154,12 @@ description: Result of parsing flush_batch_on_end.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -161,11 +177,13 @@ description: Result of parsing flush_batch_on_end.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -178,18 +196,22 @@ description: Result of parsing flush_batch_on_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -200,6 +222,7 @@ description: Result of parsing flush_batch_on_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -207,9 +230,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -220,11 +245,13 @@ description: Result of parsing flush_batch_on_end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -242,6 +269,7 @@ description: Result of parsing flush_batch_on_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerProfile", "start": 0, "type": "Identifier" @@ -253,6 +281,7 @@ description: Result of parsing flush_batch_on_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -263,6 +292,7 @@ description: Result of parsing flush_batch_on_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -275,6 +305,7 @@ description: Result of parsing flush_batch_on_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -286,6 +317,7 @@ description: Result of parsing flush_batch_on_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -296,6 +328,7 @@ description: Result of parsing flush_batch_on_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -307,9 +340,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerDiameter", "start": 0, "type": "Identifier" @@ -319,10 +354,12 @@ description: Result of parsing flush_batch_on_end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -342,6 +379,7 @@ description: Result of parsing flush_batch_on_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -349,6 +387,7 @@ description: Result of parsing flush_batch_on_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -360,9 +399,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -373,6 +414,7 @@ description: Result of parsing flush_batch_on_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -380,9 +422,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -393,11 +437,13 @@ description: Result of parsing flush_batch_on_end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -415,6 +461,7 @@ description: Result of parsing flush_batch_on_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerProfile", "start": 0, "type": "Identifier" @@ -426,6 +473,7 @@ description: Result of parsing flush_batch_on_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -436,6 +484,7 @@ description: Result of parsing flush_batch_on_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -448,6 +497,7 @@ description: Result of parsing flush_batch_on_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -459,6 +509,7 @@ description: Result of parsing flush_batch_on_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -469,6 +520,7 @@ description: Result of parsing flush_batch_on_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -480,9 +532,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDiameter", "start": 0, "type": "Identifier" @@ -492,10 +546,12 @@ description: Result of parsing flush_batch_on_end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -515,6 +571,7 @@ description: Result of parsing flush_batch_on_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -522,6 +579,7 @@ description: Result of parsing flush_batch_on_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -533,9 +591,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -546,6 +606,7 @@ description: Result of parsing flush_batch_on_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -553,9 +614,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -566,11 +629,13 @@ description: Result of parsing flush_batch_on_end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -588,6 +653,7 @@ description: Result of parsing flush_batch_on_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeProfile", "start": 0, "type": "Identifier" @@ -598,9 +664,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerProfile", "start": 0, "type": "Identifier" @@ -617,6 +685,7 @@ description: Result of parsing flush_batch_on_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -625,9 +694,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerProfile", "start": 0, "type": "Identifier" @@ -643,9 +714,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -656,6 +729,7 @@ description: Result of parsing flush_batch_on_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -664,12 +738,14 @@ description: Result of parsing flush_batch_on_end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -686,11 +762,13 @@ description: Result of parsing flush_batch_on_end.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -708,6 +786,7 @@ description: Result of parsing flush_batch_on_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipe", "start": 0, "type": "Identifier" @@ -719,6 +798,7 @@ description: Result of parsing flush_batch_on_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -727,9 +807,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -745,9 +827,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -758,6 +842,7 @@ description: Result of parsing flush_batch_on_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -765,9 +850,11 @@ description: Result of parsing flush_batch_on_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeProfile", "start": 0, "type": "Identifier" @@ -778,11 +865,13 @@ description: Result of parsing flush_batch_on_end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -794,9 +883,11 @@ description: Result of parsing flush_batch_on_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -808,19 +899,23 @@ description: Result of parsing flush_batch_on_end.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -836,12 +931,14 @@ description: Result of parsing flush_batch_on_end.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/flush_batch_on_end/program_memory.snap b/rust/kcl-lib/tests/flush_batch_on_end/program_memory.snap index 868aa21d6..ae8ec2844 100644 --- a/rust/kcl-lib/tests/flush_batch_on_end/program_memory.snap +++ b/rust/kcl-lib/tests/flush_batch_on_end/program_memory.snap @@ -50,6 +50,7 @@ description: Variables in memory after executing flush_batch_on_end.kcl "tag": { "commentStart": 515, "end": 522, + "moduleId": 0, "start": 515, "type": "TagDeclarator", "value": "arc001" @@ -175,6 +176,7 @@ description: Variables in memory after executing flush_batch_on_end.kcl "tag": { "commentStart": 360, "end": 367, + "moduleId": 0, "start": 360, "type": "TagDeclarator", "value": "arc000" @@ -264,6 +266,7 @@ description: Variables in memory after executing flush_batch_on_end.kcl "tag": { "commentStart": 360, "end": 367, + "moduleId": 0, "start": 360, "type": "TagDeclarator", "value": "arc000" @@ -293,6 +296,7 @@ description: Variables in memory after executing flush_batch_on_end.kcl "tag": { "commentStart": 360, "end": 367, + "moduleId": 0, "start": 360, "type": "TagDeclarator", "value": "arc000" @@ -400,6 +404,7 @@ description: Variables in memory after executing flush_batch_on_end.kcl "tag": { "commentStart": 360, "end": 367, + "moduleId": 0, "start": 360, "type": "TagDeclarator", "value": "arc000" diff --git a/rust/kcl-lib/tests/function_sketch/ast.snap b/rust/kcl-lib/tests/function_sketch/ast.snap index 4952d68b1..26d918362 100644 --- a/rust/kcl-lib/tests/function_sketch/ast.snap +++ b/rust/kcl-lib/tests/function_sketch/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing function_sketch.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "box", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing function_sketch.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myBox", "start": 0, "type": "Identifier" @@ -35,13 +37,16 @@ description: Result of parsing function_sketch.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -52,6 +57,7 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59,9 +65,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -79,6 +87,7 @@ description: Result of parsing function_sketch.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing function_sketch.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -101,6 +111,7 @@ description: Result of parsing function_sketch.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -112,6 +123,7 @@ description: Result of parsing function_sketch.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -122,9 +134,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -135,6 +149,7 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -147,6 +162,7 @@ description: Result of parsing function_sketch.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -157,6 +173,7 @@ description: Result of parsing function_sketch.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -170,9 +187,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -184,6 +203,7 @@ description: Result of parsing function_sketch.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -194,9 +214,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -207,6 +229,7 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -219,6 +242,7 @@ description: Result of parsing function_sketch.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -230,9 +254,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -245,6 +271,7 @@ description: Result of parsing function_sketch.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -256,6 +283,7 @@ description: Result of parsing function_sketch.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -266,9 +294,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -279,6 +309,7 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -291,6 +322,7 @@ description: Result of parsing function_sketch.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -301,6 +333,7 @@ description: Result of parsing function_sketch.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -315,9 +348,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -329,6 +364,7 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -336,6 +372,7 @@ description: Result of parsing function_sketch.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -346,9 +383,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -359,19 +398,23 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -382,12 +425,14 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -400,6 +445,7 @@ description: Result of parsing function_sketch.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -408,9 +454,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "h", "start": 0, "type": "Identifier" @@ -426,9 +474,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -439,6 +489,7 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -447,15 +498,18 @@ description: Result of parsing function_sketch.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -465,9 +519,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myBox", "start": 0, "type": "Identifier" @@ -479,6 +535,7 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -486,12 +543,14 @@ description: Result of parsing function_sketch.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -506,12 +565,14 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "h", "start": 0, "type": "Identifier" @@ -522,6 +583,7 @@ description: Result of parsing function_sketch.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -532,6 +594,7 @@ description: Result of parsing function_sketch.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -542,11 +605,13 @@ description: Result of parsing function_sketch.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -559,6 +624,7 @@ description: Result of parsing function_sketch.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fnBox", "start": 0, "type": "Identifier" @@ -570,6 +636,7 @@ description: Result of parsing function_sketch.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "h", "start": 0, "type": "Identifier" @@ -577,6 +644,7 @@ description: Result of parsing function_sketch.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -592,6 +660,7 @@ description: Result of parsing function_sketch.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -599,6 +668,7 @@ description: Result of parsing function_sketch.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -614,6 +684,7 @@ description: Result of parsing function_sketch.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -621,6 +692,7 @@ description: Result of parsing function_sketch.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -636,9 +708,11 @@ description: Result of parsing function_sketch.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "box", "start": 0, "type": "Identifier" @@ -649,16 +723,19 @@ description: Result of parsing function_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -666,12 +743,14 @@ description: Result of parsing function_sketch.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/function_sketch_with_position/ast.snap b/rust/kcl-lib/tests/function_sketch_with_position/ast.snap index 4b2680396..11f0e1471 100644 --- a/rust/kcl-lib/tests/function_sketch_with_position/ast.snap +++ b/rust/kcl-lib/tests/function_sketch_with_position/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing function_sketch_with_position.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "box", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing function_sketch_with_position.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myBox", "start": 0, "type": "Identifier" @@ -35,13 +37,16 @@ description: Result of parsing function_sketch_with_position.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -52,6 +57,7 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59,9 +65,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -79,6 +87,7 @@ description: Result of parsing function_sketch_with_position.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -87,9 +96,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -105,9 +116,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -118,6 +131,7 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -130,6 +144,7 @@ description: Result of parsing function_sketch_with_position.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -140,6 +155,7 @@ description: Result of parsing function_sketch_with_position.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -153,9 +169,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -167,6 +185,7 @@ description: Result of parsing function_sketch_with_position.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -177,9 +196,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -190,6 +211,7 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -202,6 +224,7 @@ description: Result of parsing function_sketch_with_position.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -213,9 +236,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -228,6 +253,7 @@ description: Result of parsing function_sketch_with_position.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -239,6 +265,7 @@ description: Result of parsing function_sketch_with_position.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -249,9 +276,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -262,6 +291,7 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -274,6 +304,7 @@ description: Result of parsing function_sketch_with_position.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -284,6 +315,7 @@ description: Result of parsing function_sketch_with_position.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -298,9 +330,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -312,6 +346,7 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -319,6 +354,7 @@ description: Result of parsing function_sketch_with_position.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -329,9 +365,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -342,19 +380,23 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -365,12 +407,14 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -383,6 +427,7 @@ description: Result of parsing function_sketch_with_position.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -391,9 +436,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "h", "start": 0, "type": "Identifier" @@ -409,9 +456,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -422,6 +471,7 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -430,15 +480,18 @@ description: Result of parsing function_sketch_with_position.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -448,9 +501,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myBox", "start": 0, "type": "Identifier" @@ -462,6 +517,7 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -469,12 +525,14 @@ description: Result of parsing function_sketch_with_position.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -489,12 +547,14 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -505,6 +565,7 @@ description: Result of parsing function_sketch_with_position.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "h", "start": 0, "type": "Identifier" @@ -515,6 +576,7 @@ description: Result of parsing function_sketch_with_position.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -525,6 +587,7 @@ description: Result of parsing function_sketch_with_position.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -535,11 +598,13 @@ description: Result of parsing function_sketch_with_position.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -552,6 +617,7 @@ description: Result of parsing function_sketch_with_position.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing", "start": 0, "type": "Identifier" @@ -563,6 +629,7 @@ description: Result of parsing function_sketch_with_position.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -573,6 +640,7 @@ description: Result of parsing function_sketch_with_position.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -585,6 +653,7 @@ description: Result of parsing function_sketch_with_position.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -596,6 +665,7 @@ description: Result of parsing function_sketch_with_position.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -606,6 +676,7 @@ description: Result of parsing function_sketch_with_position.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "h", "start": 0, "type": "Identifier" @@ -613,6 +684,7 @@ description: Result of parsing function_sketch_with_position.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -628,6 +700,7 @@ description: Result of parsing function_sketch_with_position.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l", "start": 0, "type": "Identifier" @@ -635,6 +708,7 @@ description: Result of parsing function_sketch_with_position.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -650,6 +724,7 @@ description: Result of parsing function_sketch_with_position.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -657,6 +732,7 @@ description: Result of parsing function_sketch_with_position.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -672,9 +748,11 @@ description: Result of parsing function_sketch_with_position.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "box", "start": 0, "type": "Identifier" @@ -685,16 +763,19 @@ description: Result of parsing function_sketch_with_position.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -702,12 +783,14 @@ description: Result of parsing function_sketch_with_position.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/helix_ccw/ast.snap b/rust/kcl-lib/tests/helix_ccw/ast.snap index 6222e48a4..8f4a8a153 100644 --- a/rust/kcl-lib/tests/helix_ccw/ast.snap +++ b/rust/kcl-lib/tests/helix_ccw/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing helix_ccw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing helix_ccw.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing helix_ccw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing helix_ccw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing helix_ccw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing helix_ccw.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing helix_ccw.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing helix_ccw.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,6 +118,7 @@ description: Result of parsing helix_ccw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -114,6 +126,7 @@ description: Result of parsing helix_ccw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -129,9 +142,11 @@ description: Result of parsing helix_ccw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing helix_ccw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -154,6 +170,7 @@ description: Result of parsing helix_ccw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -161,6 +178,7 @@ description: Result of parsing helix_ccw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -176,9 +194,11 @@ description: Result of parsing helix_ccw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -189,6 +209,7 @@ description: Result of parsing helix_ccw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -201,6 +222,7 @@ description: Result of parsing helix_ccw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolutions", "start": 0, "type": "Identifier" @@ -208,6 +230,7 @@ description: Result of parsing helix_ccw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -223,6 +246,7 @@ description: Result of parsing helix_ccw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -230,6 +254,7 @@ description: Result of parsing helix_ccw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -245,6 +270,7 @@ description: Result of parsing helix_ccw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ccw", "start": 0, "type": "Identifier" @@ -252,6 +278,7 @@ description: Result of parsing helix_ccw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -264,6 +291,7 @@ description: Result of parsing helix_ccw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cylinder", "start": 0, "type": "Identifier" @@ -271,6 +299,7 @@ description: Result of parsing helix_ccw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -281,9 +310,11 @@ description: Result of parsing helix_ccw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helix", "start": 0, "type": "Identifier" @@ -294,6 +325,7 @@ description: Result of parsing helix_ccw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -302,15 +334,18 @@ description: Result of parsing helix_ccw.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -318,6 +353,7 @@ description: Result of parsing helix_ccw.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/helix_simple/ast.snap b/rust/kcl-lib/tests/helix_simple/ast.snap index 62d7f6418..43e93681f 100644 --- a/rust/kcl-lib/tests/helix_simple/ast.snap +++ b/rust/kcl-lib/tests/helix_simple/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing helix_simple.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helper001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing helix_simple.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing helix_simple.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing helix_simple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing helix_simple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing helix_simple.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing helix_simple.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing helix_simple.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing helix_simple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing helix_simple.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing helix_simple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing helix_simple.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing helix_simple.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing helix_simple.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,6 +193,7 @@ description: Result of parsing helix_simple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -182,6 +201,7 @@ description: Result of parsing helix_simple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -193,9 +213,11 @@ description: Result of parsing helix_simple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -206,6 +228,7 @@ description: Result of parsing helix_simple.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -214,15 +237,18 @@ description: Result of parsing helix_simple.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Create a helix around an edge." ], @@ -238,6 +264,7 @@ description: Result of parsing helix_simple.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixPath", "start": 0, "type": "Identifier" @@ -249,6 +276,7 @@ description: Result of parsing helix_simple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -256,6 +284,7 @@ description: Result of parsing helix_simple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -271,6 +300,7 @@ description: Result of parsing helix_simple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ccw", "start": 0, "type": "Identifier" @@ -278,6 +308,7 @@ description: Result of parsing helix_simple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -290,6 +321,7 @@ description: Result of parsing helix_simple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolutions", "start": 0, "type": "Identifier" @@ -297,6 +329,7 @@ description: Result of parsing helix_simple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -312,6 +345,7 @@ description: Result of parsing helix_simple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -319,6 +353,7 @@ description: Result of parsing helix_simple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -334,6 +369,7 @@ description: Result of parsing helix_simple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -341,6 +377,7 @@ description: Result of parsing helix_simple.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -356,6 +393,7 @@ description: Result of parsing helix_simple.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -364,9 +402,11 @@ description: Result of parsing helix_simple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge001", "start": 0, "type": "Identifier" @@ -382,9 +422,11 @@ description: Result of parsing helix_simple.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helix", "start": 0, "type": "Identifier" @@ -395,16 +437,19 @@ description: Result of parsing helix_simple.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -412,12 +457,14 @@ description: Result of parsing helix_simple.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/helix_simple/program_memory.snap b/rust/kcl-lib/tests/helix_simple/program_memory.snap index fb00ad03d..52703915c 100644 --- a/rust/kcl-lib/tests/helix_simple/program_memory.snap +++ b/rust/kcl-lib/tests/helix_simple/program_memory.snap @@ -40,6 +40,7 @@ description: Variables in memory after executing helix_simple.kcl "tag": { "commentStart": 126, "end": 134, + "moduleId": 0, "start": 126, "type": "TagDeclarator", "value": "edge001" diff --git a/rust/kcl-lib/tests/i_shape/ast.snap b/rust/kcl-lib/tests/i_shape/ast.snap index e3b60fa38..9f5e793d5 100644 --- a/rust/kcl-lib/tests/i_shape/ast.snap +++ b/rust/kcl-lib/tests/i_shape/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing i_shape.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d_wrist_circumference", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing i_shape.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.8", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing i_shape.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.7", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing i_shape.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.4", "start": 0, "type": "Literal", @@ -59,6 +63,7 @@ description: Result of parsing i_shape.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.5", "start": 0, "type": "Literal", @@ -70,15 +75,18 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -91,6 +99,7 @@ description: Result of parsing i_shape.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -108,13 +117,16 @@ description: Result of parsing i_shape.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d_wrist_circumference", "start": 0, "type": "Identifier" @@ -127,6 +139,7 @@ description: Result of parsing i_shape.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -140,18 +153,22 @@ description: Result of parsing i_shape.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d_wrist_circumference", "start": 0, "type": "Identifier" @@ -164,6 +181,7 @@ description: Result of parsing i_shape.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -181,18 +199,22 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d_wrist_circumference", "start": 0, "type": "Identifier" @@ -205,6 +227,7 @@ description: Result of parsing i_shape.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -222,18 +245,22 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d_wrist_circumference", "start": 0, "type": "Identifier" @@ -246,6 +273,7 @@ description: Result of parsing i_shape.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -263,11 +291,13 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +310,7 @@ description: Result of parsing i_shape.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -287,6 +318,7 @@ description: Result of parsing i_shape.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120.0", "start": 0, "type": "Literal", @@ -296,11 +328,13 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +347,7 @@ description: Result of parsing i_shape.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hand_thickness", "start": 0, "type": "Identifier" @@ -320,6 +355,7 @@ description: Result of parsing i_shape.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.0", "start": 0, "type": "Literal", @@ -329,11 +365,13 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -346,6 +384,7 @@ description: Result of parsing i_shape.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -353,6 +392,7 @@ description: Result of parsing i_shape.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.0", "start": 0, "type": "Literal", @@ -362,11 +402,13 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -379,6 +421,7 @@ description: Result of parsing i_shape.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "brace_base", "start": 0, "type": "Identifier" @@ -386,13 +429,16 @@ description: Result of parsing i_shape.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -403,6 +449,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -410,9 +457,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -430,6 +479,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -441,9 +491,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -456,6 +508,7 @@ description: Result of parsing i_shape.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -467,6 +520,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -477,9 +531,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -490,6 +546,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -502,6 +559,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -516,9 +574,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -528,14 +588,17 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -552,6 +615,7 @@ description: Result of parsing i_shape.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -563,6 +627,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -573,9 +638,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -586,6 +653,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -598,6 +666,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -609,9 +678,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -625,9 +696,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -639,6 +712,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -649,9 +723,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -662,6 +738,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -674,6 +751,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -684,6 +762,7 @@ description: Result of parsing i_shape.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.0", "start": 0, "type": "Literal", @@ -693,14 +772,17 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -720,9 +802,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -733,6 +817,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -745,6 +830,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -757,9 +843,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -771,6 +859,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -780,9 +869,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -794,6 +885,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -804,9 +896,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -817,6 +911,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -829,6 +924,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -841,13 +937,16 @@ description: Result of parsing i_shape.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d_wrist_circumference", "start": 0, "type": "Identifier" @@ -860,6 +959,7 @@ description: Result of parsing i_shape.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -873,6 +973,7 @@ description: Result of parsing i_shape.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -881,9 +982,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -893,10 +996,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -916,6 +1021,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -927,9 +1033,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -940,6 +1048,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -952,6 +1061,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -964,9 +1074,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -978,6 +1090,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -987,9 +1100,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1001,6 +1116,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1011,9 +1127,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1024,6 +1142,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1036,6 +1155,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1053,9 +1173,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1065,10 +1187,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.0", "start": 0, "type": "Literal", @@ -1082,10 +1206,12 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.0", "start": 0, "type": "Literal", @@ -1099,6 +1225,7 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1107,9 +1234,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1119,10 +1248,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1146,9 +1277,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1159,6 +1292,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1171,6 +1305,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1182,9 +1317,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1198,9 +1335,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1212,6 +1351,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1222,9 +1362,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1235,6 +1377,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1247,6 +1390,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1257,6 +1401,7 @@ description: Result of parsing i_shape.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.0", "start": 0, "type": "Literal", @@ -1266,6 +1411,7 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1274,9 +1420,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1286,10 +1434,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1313,9 +1463,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1326,6 +1478,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1338,6 +1491,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1349,9 +1503,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1365,9 +1521,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1379,6 +1537,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1389,9 +1548,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1402,6 +1563,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1414,6 +1576,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1424,6 +1587,7 @@ description: Result of parsing i_shape.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.0", "start": 0, "type": "Literal", @@ -1433,14 +1597,17 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1460,9 +1627,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1473,6 +1642,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1485,6 +1655,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1497,9 +1668,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1511,6 +1684,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1520,9 +1694,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1534,6 +1710,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1544,9 +1721,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1557,6 +1736,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1569,6 +1749,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1587,9 +1768,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hand_thickness", "start": 0, "type": "Identifier" @@ -1599,10 +1782,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.0", "start": 0, "type": "Literal", @@ -1616,10 +1801,12 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.0", "start": 0, "type": "Literal", @@ -1633,6 +1820,7 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1641,9 +1829,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1653,10 +1843,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1676,6 +1868,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1687,9 +1880,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1700,6 +1895,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1712,6 +1908,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1724,9 +1921,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1738,6 +1937,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1748,9 +1948,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1762,6 +1964,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1769,6 +1972,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1779,9 +1983,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1792,6 +1998,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1804,6 +2011,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1815,6 +2023,7 @@ description: Result of parsing i_shape.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.0", "start": 0, "type": "Literal", @@ -1824,14 +2033,17 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1847,6 +2059,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1858,9 +2071,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1871,6 +2086,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1883,6 +2099,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1894,9 +2111,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1911,9 +2130,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -1925,6 +2146,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1932,6 +2154,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1942,9 +2165,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1955,6 +2180,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1967,6 +2193,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1977,6 +2204,7 @@ description: Result of parsing i_shape.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.0", "start": 0, "type": "Literal", @@ -1986,6 +2214,7 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1994,9 +2223,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2006,10 +2237,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2033,9 +2266,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2046,6 +2281,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2058,6 +2294,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2069,9 +2306,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2086,9 +2325,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2100,6 +2341,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2107,6 +2349,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2117,9 +2360,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2130,6 +2375,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2142,6 +2388,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2160,9 +2407,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2172,10 +2421,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.0", "start": 0, "type": "Literal", @@ -2189,10 +2440,12 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.0", "start": 0, "type": "Literal", @@ -2206,6 +2459,7 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2214,9 +2468,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2226,10 +2482,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2249,6 +2507,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2260,9 +2519,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2273,6 +2534,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2285,6 +2547,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2297,9 +2560,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2311,6 +2576,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2321,9 +2587,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2335,6 +2603,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2342,6 +2611,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2352,9 +2622,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2365,6 +2637,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2377,6 +2650,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2398,13 +2672,16 @@ description: Result of parsing i_shape.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d_wrist_circumference", "start": 0, "type": "Identifier" @@ -2417,6 +2694,7 @@ description: Result of parsing i_shape.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2430,18 +2708,22 @@ description: Result of parsing i_shape.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d_wrist_circumference", "start": 0, "type": "Identifier" @@ -2454,6 +2736,7 @@ description: Result of parsing i_shape.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2471,18 +2754,22 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d_wrist_circumference", "start": 0, "type": "Identifier" @@ -2495,6 +2782,7 @@ description: Result of parsing i_shape.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2512,14 +2800,17 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hand_thickness", "start": 0, "type": "Identifier" @@ -2533,14 +2824,17 @@ description: Result of parsing i_shape.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2556,6 +2850,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2567,9 +2862,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2580,6 +2877,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2592,6 +2890,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2604,9 +2903,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2618,6 +2919,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2628,9 +2930,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2642,6 +2946,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2649,6 +2954,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2659,9 +2965,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2672,6 +2980,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2684,6 +2993,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2695,6 +3005,7 @@ description: Result of parsing i_shape.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.0", "start": 0, "type": "Literal", @@ -2704,14 +3015,17 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2727,6 +3041,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2738,9 +3053,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2751,6 +3068,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2763,6 +3081,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2774,9 +3093,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2791,9 +3112,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -2805,6 +3128,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2812,6 +3136,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2822,9 +3147,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2835,19 +3162,23 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2858,12 +3189,14 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2872,15 +3205,18 @@ description: Result of parsing i_shape.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2900,6 +3236,7 @@ description: Result of parsing i_shape.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "inner", "start": 0, "type": "Identifier" @@ -2907,13 +3244,16 @@ description: Result of parsing i_shape.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2924,6 +3264,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2931,9 +3272,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2951,6 +3294,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2961,6 +3305,7 @@ description: Result of parsing i_shape.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2973,6 +3318,7 @@ description: Result of parsing i_shape.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2984,6 +3330,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2994,9 +3341,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3007,6 +3356,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3019,6 +3369,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3026,6 +3377,7 @@ description: Result of parsing i_shape.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3041,9 +3393,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3054,6 +3408,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3066,6 +3421,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3077,9 +3433,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3093,9 +3451,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3107,6 +3467,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3117,9 +3478,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3130,6 +3493,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3142,6 +3506,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3152,6 +3517,7 @@ description: Result of parsing i_shape.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.0", "start": 0, "type": "Literal", @@ -3161,6 +3527,7 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3169,9 +3536,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3181,10 +3550,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3208,9 +3579,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3221,6 +3594,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3233,6 +3607,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3245,9 +3620,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3259,6 +3636,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3268,9 +3646,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3282,6 +3662,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3292,9 +3673,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3305,6 +3688,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3317,6 +3701,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3325,6 +3710,7 @@ description: Result of parsing i_shape.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3336,6 +3722,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3347,9 +3734,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3360,6 +3749,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3372,6 +3762,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3384,9 +3775,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3398,6 +3791,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3408,9 +3802,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3422,6 +3818,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3429,6 +3826,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3439,9 +3837,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3452,6 +3852,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3464,6 +3865,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3475,6 +3877,7 @@ description: Result of parsing i_shape.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.0", "start": 0, "type": "Literal", @@ -3484,6 +3887,7 @@ description: Result of parsing i_shape.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3492,9 +3896,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3504,10 +3910,12 @@ description: Result of parsing i_shape.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3527,6 +3935,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3538,9 +3947,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3551,6 +3962,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3563,6 +3975,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3574,9 +3987,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3591,9 +4006,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corner_radius", "start": 0, "type": "Identifier" @@ -3605,6 +4022,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3612,6 +4030,7 @@ description: Result of parsing i_shape.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3622,9 +4041,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3635,19 +4056,23 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3658,12 +4083,14 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3672,15 +4099,18 @@ description: Result of parsing i_shape.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3693,6 +4123,7 @@ description: Result of parsing i_shape.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "final", "start": 0, "type": "Identifier" @@ -3703,9 +4134,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "brace_base", "start": 0, "type": "Identifier" @@ -3722,6 +4155,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3730,9 +4164,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "inner", "start": 0, "type": "Identifier" @@ -3748,9 +4184,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -3761,6 +4199,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3773,6 +4212,7 @@ description: Result of parsing i_shape.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3780,6 +4220,7 @@ description: Result of parsing i_shape.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.0", "start": 0, "type": "Literal", @@ -3795,9 +4236,11 @@ description: Result of parsing i_shape.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3808,6 +4251,7 @@ description: Result of parsing i_shape.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3816,15 +4260,18 @@ description: Result of parsing i_shape.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3832,12 +4279,14 @@ description: Result of parsing i_shape.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3849,6 +4298,7 @@ description: Result of parsing i_shape.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/if_else/ast.snap b/rust/kcl-lib/tests/if_else/ast.snap index 4bfe18779..dc2051937 100644 --- a/rust/kcl-lib/tests/if_else/ast.snap +++ b/rust/kcl-lib/tests/if_else/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing if_else.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -22,6 +23,7 @@ description: Result of parsing if_else.kcl "cond": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing if_else.kcl "cond": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -43,6 +46,7 @@ description: Result of parsing if_else.kcl }, "digest": null, "end": 0, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -52,6 +56,7 @@ description: Result of parsing if_else.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -61,6 +66,7 @@ description: Result of parsing if_else.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -68,6 +74,7 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "ElseIf" @@ -82,6 +89,7 @@ description: Result of parsing if_else.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -91,6 +99,7 @@ description: Result of parsing if_else.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -98,8 +107,10 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -109,6 +120,7 @@ description: Result of parsing if_else.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -118,6 +130,7 @@ description: Result of parsing if_else.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -125,16 +138,19 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -149,6 +165,7 @@ description: Result of parsing if_else.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -156,6 +173,7 @@ description: Result of parsing if_else.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -171,6 +189,7 @@ description: Result of parsing if_else.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -178,6 +197,7 @@ description: Result of parsing if_else.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"the 'if' branch gets returned\"", "start": 0, "type": "Literal", @@ -190,9 +210,11 @@ description: Result of parsing if_else.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -203,6 +225,7 @@ description: Result of parsing if_else.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -210,9 +233,11 @@ description: Result of parsing if_else.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -223,6 +248,7 @@ description: Result of parsing if_else.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -235,6 +261,7 @@ description: Result of parsing if_else.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "b", "start": 0, "type": "Identifier" @@ -244,6 +271,7 @@ description: Result of parsing if_else.kcl "cond": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -257,6 +285,7 @@ description: Result of parsing if_else.kcl "cond": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -265,6 +294,7 @@ description: Result of parsing if_else.kcl }, "digest": null, "end": 0, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -274,6 +304,7 @@ description: Result of parsing if_else.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -283,6 +314,7 @@ description: Result of parsing if_else.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -290,6 +322,7 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "ElseIf" @@ -304,6 +337,7 @@ description: Result of parsing if_else.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -313,6 +347,7 @@ description: Result of parsing if_else.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -320,8 +355,10 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -331,6 +368,7 @@ description: Result of parsing if_else.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -340,6 +378,7 @@ description: Result of parsing if_else.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -347,16 +386,19 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -371,6 +413,7 @@ description: Result of parsing if_else.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -378,6 +421,7 @@ description: Result of parsing if_else.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -393,6 +437,7 @@ description: Result of parsing if_else.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -400,6 +445,7 @@ description: Result of parsing if_else.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"the 'else if' branch gets returned\"", "start": 0, "type": "Literal", @@ -412,9 +458,11 @@ description: Result of parsing if_else.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -425,6 +473,7 @@ description: Result of parsing if_else.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -432,9 +481,11 @@ description: Result of parsing if_else.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "b", "start": 0, "type": "Identifier" @@ -445,6 +496,7 @@ description: Result of parsing if_else.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -457,6 +509,7 @@ description: Result of parsing if_else.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c", "start": 0, "type": "Identifier" @@ -466,6 +519,7 @@ description: Result of parsing if_else.kcl "cond": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -479,6 +533,7 @@ description: Result of parsing if_else.kcl "cond": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -487,6 +542,7 @@ description: Result of parsing if_else.kcl }, "digest": null, "end": 0, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -496,6 +552,7 @@ description: Result of parsing if_else.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -505,6 +562,7 @@ description: Result of parsing if_else.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -512,6 +570,7 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "ElseIf" @@ -526,6 +585,7 @@ description: Result of parsing if_else.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -535,6 +595,7 @@ description: Result of parsing if_else.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -542,8 +603,10 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -553,6 +616,7 @@ description: Result of parsing if_else.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -562,6 +626,7 @@ description: Result of parsing if_else.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -569,16 +634,19 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -593,6 +661,7 @@ description: Result of parsing if_else.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -600,6 +669,7 @@ description: Result of parsing if_else.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -615,6 +685,7 @@ description: Result of parsing if_else.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -622,6 +693,7 @@ description: Result of parsing if_else.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"the 'else' branch gets returned\"", "start": 0, "type": "Literal", @@ -634,9 +706,11 @@ description: Result of parsing if_else.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -647,6 +721,7 @@ description: Result of parsing if_else.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -654,9 +729,11 @@ description: Result of parsing if_else.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c", "start": 0, "type": "Identifier" @@ -667,6 +744,7 @@ description: Result of parsing if_else.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -674,12 +752,14 @@ description: Result of parsing if_else.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -691,6 +771,7 @@ description: Result of parsing if_else.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -703,6 +784,7 @@ description: Result of parsing if_else.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -714,6 +796,7 @@ description: Result of parsing if_else.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/import_async/ast.snap b/rust/kcl-lib/tests/import_async/ast.snap index f12bc507d..8dc1fedf1 100644 --- a/rust/kcl-lib/tests/import_async/ast.snap +++ b/rust/kcl-lib/tests/import_async/ast.snap @@ -8,10 +8,12 @@ description: Result of parsing import_async.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "outerAttrs": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "name": null, "properties": [ { @@ -20,19 +22,23 @@ description: Result of parsing import_async.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "m", "start": 0, "type": "Identifier" @@ -57,6 +63,7 @@ description: Result of parsing import_async.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screw", "start": 0, "type": "Identifier" @@ -74,6 +81,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myScrew", "start": 0, "type": "Identifier" @@ -82,9 +90,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screw", "start": 0, "type": "Identifier" @@ -94,11 +104,13 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -111,6 +123,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -126,6 +139,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -137,9 +151,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -149,14 +165,17 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -170,11 +189,13 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate gear parameters" ], @@ -190,6 +211,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -198,9 +220,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -210,11 +234,13 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -227,6 +253,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -237,6 +264,7 @@ description: Result of parsing import_async.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -246,14 +274,17 @@ description: Result of parsing import_async.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -267,11 +298,13 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -284,6 +317,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -295,9 +329,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -307,15 +343,19 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -326,6 +366,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -333,9 +374,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -350,11 +393,13 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -367,6 +412,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -378,9 +424,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -390,6 +438,7 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -397,6 +446,7 @@ description: Result of parsing import_async.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -406,14 +456,17 @@ description: Result of parsing import_async.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -431,11 +484,13 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -448,6 +503,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -455,6 +511,7 @@ description: Result of parsing import_async.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -464,11 +521,13 @@ description: Result of parsing import_async.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -486,6 +545,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -497,9 +557,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -509,10 +571,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -526,11 +590,13 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -543,6 +609,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -550,6 +617,7 @@ description: Result of parsing import_async.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -559,11 +627,13 @@ description: Result of parsing import_async.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -576,6 +646,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -587,9 +658,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -599,10 +672,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -616,11 +691,13 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -633,18 +710,22 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "asin", "start": 0, "type": "Identifier" @@ -655,6 +736,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -668,9 +750,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -680,10 +764,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -697,14 +783,17 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -719,11 +808,13 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -736,6 +827,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWithKeyway", "start": 0, "type": "Identifier" @@ -743,13 +835,16 @@ description: Result of parsing import_async.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -760,6 +855,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -767,9 +863,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -787,6 +885,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -801,9 +900,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -813,15 +914,19 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -832,6 +937,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -839,9 +945,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -863,9 +971,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -875,15 +985,19 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -894,6 +1008,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -901,9 +1016,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -920,6 +1037,7 @@ description: Result of parsing import_async.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -930,9 +1048,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -943,6 +1063,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -955,6 +1076,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -963,9 +1085,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -981,9 +1105,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -994,6 +1120,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1006,6 +1133,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1015,9 +1143,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -1029,6 +1159,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1040,9 +1171,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1053,6 +1186,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1065,6 +1199,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1074,9 +1209,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -1088,6 +1225,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1099,9 +1237,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1112,6 +1252,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1124,6 +1265,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1138,6 +1280,7 @@ description: Result of parsing import_async.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1149,19 +1292,23 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -1175,10 +1322,12 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1198,6 +1347,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1205,6 +1355,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1220,6 +1371,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1228,9 +1380,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1246,9 +1400,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1259,6 +1415,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1271,6 +1428,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1278,6 +1436,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1293,6 +1452,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1301,9 +1461,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -1319,6 +1481,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1327,9 +1490,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1345,9 +1510,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1358,19 +1525,23 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1381,6 +1552,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1389,12 +1561,14 @@ description: Result of parsing import_async.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1411,11 +1585,13 @@ description: Result of parsing import_async.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1433,6 +1609,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -1448,18 +1625,22 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "acos", "start": 0, "type": "Identifier" @@ -1470,6 +1651,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1483,9 +1665,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -1495,15 +1679,19 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -1514,6 +1702,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1521,9 +1710,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -1538,6 +1729,7 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -1546,9 +1738,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1558,10 +1752,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1580,11 +1776,13 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate the amount to rotate each planar sketch of the gear given the gear helix angle and total gear height" ], @@ -1600,6 +1798,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -1607,13 +1806,16 @@ description: Result of parsing import_async.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1624,6 +1826,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1634,6 +1837,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1642,9 +1846,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -1660,9 +1866,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1673,6 +1881,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1680,9 +1889,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1701,6 +1912,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1712,6 +1924,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1720,9 +1933,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1738,6 +1953,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1749,9 +1965,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1761,10 +1979,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1784,9 +2004,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1797,6 +2019,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1808,9 +2031,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1821,6 +2046,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1833,6 +2059,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -1844,9 +2071,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1856,10 +2085,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1879,6 +2110,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -1890,9 +2122,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1902,10 +2136,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1925,6 +2161,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1933,9 +2170,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1951,6 +2190,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1958,6 +2198,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1969,9 +2210,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -1982,6 +2225,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1994,6 +2238,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2005,6 +2250,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2018,6 +2264,7 @@ description: Result of parsing import_async.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "160", "start": 0, "type": "Literal", @@ -2027,14 +2274,17 @@ description: Result of parsing import_async.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2048,14 +2298,17 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -2075,6 +2328,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2086,9 +2340,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -2098,10 +2354,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2121,9 +2379,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -2134,6 +2394,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2145,9 +2406,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2158,6 +2421,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2170,6 +2434,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -2181,9 +2446,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -2193,10 +2460,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2216,6 +2485,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -2227,9 +2497,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -2239,10 +2511,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2262,6 +2536,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2276,6 +2551,7 @@ description: Result of parsing import_async.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2285,15 +2561,19 @@ description: Result of parsing import_async.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -2304,6 +2584,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2311,13 +2592,16 @@ description: Result of parsing import_async.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -2328,6 +2612,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2335,9 +2620,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2348,15 +2635,19 @@ description: Result of parsing import_async.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -2367,6 +2658,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2374,9 +2666,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2396,6 +2690,7 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2403,6 +2698,7 @@ description: Result of parsing import_async.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2412,14 +2708,17 @@ description: Result of parsing import_async.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -2439,6 +2738,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2450,6 +2750,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -2457,6 +2758,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2469,9 +2771,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -2482,6 +2786,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2494,6 +2799,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2505,6 +2811,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2518,6 +2825,7 @@ description: Result of parsing import_async.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2527,14 +2835,17 @@ description: Result of parsing import_async.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2548,14 +2859,17 @@ description: Result of parsing import_async.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -2575,6 +2889,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2586,9 +2901,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -2598,10 +2915,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2621,9 +2940,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -2634,6 +2955,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2645,9 +2967,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2658,6 +2982,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2670,6 +2995,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2678,9 +3004,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2696,6 +3024,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2706,6 +3035,7 @@ description: Result of parsing import_async.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2718,6 +3048,7 @@ description: Result of parsing import_async.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2729,6 +3060,7 @@ description: Result of parsing import_async.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2739,6 +3071,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2746,6 +3079,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2761,6 +3095,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2768,6 +3103,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2780,9 +3116,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -2793,25 +3131,30 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2822,6 +3165,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2834,6 +3178,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -2842,9 +3187,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWithKeyway", "start": 0, "type": "Identifier" @@ -2860,9 +3207,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2873,6 +3222,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2881,12 +3231,14 @@ description: Result of parsing import_async.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2900,6 +3252,7 @@ description: Result of parsing import_async.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2916,11 +3269,13 @@ description: Result of parsing import_async.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2935,9 +3290,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -2949,6 +3306,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2956,16 +3314,19 @@ description: Result of parsing import_async.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2976,11 +3337,13 @@ description: Result of parsing import_async.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2993,6 +3356,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -3004,6 +3368,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -3011,6 +3376,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3026,9 +3392,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -3039,16 +3407,19 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3066,6 +3437,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -3077,6 +3449,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -3088,9 +3461,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3100,10 +3475,12 @@ description: Result of parsing import_async.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3123,9 +3500,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -3136,16 +3515,19 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3163,6 +3545,7 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -3174,6 +3557,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -3182,9 +3566,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3200,9 +3586,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -3213,16 +3601,19 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3240,18 +3631,22 @@ description: Result of parsing import_async.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -3262,6 +3657,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3272,9 +3668,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -3288,9 +3686,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -3304,9 +3704,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -3318,16 +3720,19 @@ description: Result of parsing import_async.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3342,9 +3747,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -3356,6 +3763,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -3363,12 +3771,14 @@ description: Result of parsing import_async.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "15": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3383,12 +3793,14 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -3399,6 +3811,7 @@ description: Result of parsing import_async.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -3409,6 +3822,7 @@ description: Result of parsing import_async.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -3419,6 +3833,7 @@ description: Result of parsing import_async.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -3429,6 +3844,7 @@ description: Result of parsing import_async.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3439,11 +3855,13 @@ description: Result of parsing import_async.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -3463,6 +3881,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -3470,6 +3889,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21", "start": 0, "type": "Literal", @@ -3485,6 +3905,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -3492,6 +3913,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3507,6 +3929,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -3514,6 +3937,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -3529,6 +3953,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -3536,6 +3961,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -3551,6 +3977,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3558,6 +3985,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -3573,9 +4001,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -3586,11 +4016,13 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3604,9 +4036,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myScrew", "start": 0, "type": "Identifier" @@ -3623,6 +4057,7 @@ description: Result of parsing import_async.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -3630,6 +4065,7 @@ description: Result of parsing import_async.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -3645,9 +4081,11 @@ description: Result of parsing import_async.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -3658,6 +4096,7 @@ description: Result of parsing import_async.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3666,10 +4105,12 @@ description: Result of parsing import_async.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3681,9 +4122,11 @@ description: Result of parsing import_async.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3695,19 +4138,23 @@ description: Result of parsing import_async.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -3723,12 +4170,14 @@ description: Result of parsing import_async.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3740,6 +4189,7 @@ description: Result of parsing import_async.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3751,6 +4201,7 @@ description: Result of parsing import_async.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3763,6 +4214,7 @@ description: Result of parsing import_async.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/import_constant/ast.snap b/rust/kcl-lib/tests/import_constant/ast.snap index 150a724d4..d7a995bea 100644 --- a/rust/kcl-lib/tests/import_constant/ast.snap +++ b/rust/kcl-lib/tests/import_constant/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_constant.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "export_constant.kcl" @@ -19,9 +20,11 @@ description: Result of parsing import_constant.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier" @@ -38,6 +41,7 @@ description: Result of parsing import_constant.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/import_cycle1/ast.snap b/rust/kcl-lib/tests/import_cycle1/ast.snap index 056501066..fc44c94ff 100644 --- a/rust/kcl-lib/tests/import_cycle1/ast.snap +++ b/rust/kcl-lib/tests/import_cycle1/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_cycle1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "import_cycle2.kcl" @@ -19,9 +20,11 @@ description: Result of parsing import_cycle1.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier" @@ -43,6 +46,7 @@ description: Result of parsing import_cycle1.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier" @@ -55,13 +59,16 @@ description: Result of parsing import_cycle1.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier" @@ -72,15 +79,18 @@ description: Result of parsing import_cycle1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -96,6 +106,7 @@ description: Result of parsing import_cycle1.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -103,20 +114,24 @@ description: Result of parsing import_cycle1.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -129,9 +144,11 @@ description: Result of parsing import_cycle1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -143,19 +160,23 @@ description: Result of parsing import_cycle1.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -171,12 +192,14 @@ description: Result of parsing import_cycle1.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -189,6 +212,7 @@ description: Result of parsing import_cycle1.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/import_export/ast.snap b/rust/kcl-lib/tests/import_export/ast.snap index 0e15fdab2..f638a33cd 100644 --- a/rust/kcl-lib/tests/import_export/ast.snap +++ b/rust/kcl-lib/tests/import_export/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_export.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "export_1.kcl" @@ -19,9 +20,11 @@ description: Result of parsing import_export.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier" @@ -38,6 +41,7 @@ description: Result of parsing import_export.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/import_file_not_exist_error/ast.snap b/rust/kcl-lib/tests/import_file_not_exist_error/ast.snap index 095f423c4..2848426a5 100644 --- a/rust/kcl-lib/tests/import_file_not_exist_error/ast.snap +++ b/rust/kcl-lib/tests/import_file_not_exist_error/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_file_not_exist_error.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "not-exist.kcl" @@ -19,9 +20,11 @@ description: Result of parsing import_file_not_exist_error.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hotdog", "start": 0, "type": "Identifier" @@ -38,6 +41,7 @@ description: Result of parsing import_file_not_exist_error.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/import_file_parse_error/ast.snap b/rust/kcl-lib/tests/import_file_parse_error/ast.snap index 18b310fb2..5192bdb27 100644 --- a/rust/kcl-lib/tests/import_file_parse_error/ast.snap +++ b/rust/kcl-lib/tests/import_file_parse_error/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_file_parse_error.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "parse-failure.kcl" @@ -19,9 +20,11 @@ description: Result of parsing import_file_parse_error.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hotdog", "start": 0, "type": "Identifier" @@ -38,6 +41,7 @@ description: Result of parsing import_file_parse_error.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/import_foreign/ast.snap b/rust/kcl-lib/tests/import_foreign/ast.snap index cfa1ba128..832cbd2ba 100644 --- a/rust/kcl-lib/tests/import_foreign/ast.snap +++ b/rust/kcl-lib/tests/import_foreign/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_foreign.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Foreign", "path": "../inputs/cube.gltf" @@ -17,6 +18,7 @@ description: Result of parsing import_foreign.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -34,6 +36,7 @@ description: Result of parsing import_foreign.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "model", "start": 0, "type": "Identifier" @@ -42,9 +45,11 @@ description: Result of parsing import_foreign.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -54,11 +59,13 @@ description: Result of parsing import_foreign.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -66,12 +73,14 @@ description: Result of parsing import_foreign.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/import_function_not_sketch/ast.snap b/rust/kcl-lib/tests/import_function_not_sketch/ast.snap index 78240d7a4..63601b2a2 100644 --- a/rust/kcl-lib/tests/import_function_not_sketch/ast.snap +++ b/rust/kcl-lib/tests/import_function_not_sketch/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_function_not_sketch.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "my_functions.kcl" @@ -19,9 +20,11 @@ description: Result of parsing import_function_not_sketch.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier" @@ -43,6 +46,7 @@ description: Result of parsing import_function_not_sketch.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier" @@ -55,13 +59,16 @@ description: Result of parsing import_function_not_sketch.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier" @@ -72,15 +79,18 @@ description: Result of parsing import_function_not_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -96,6 +106,7 @@ description: Result of parsing import_function_not_sketch.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -103,20 +114,24 @@ description: Result of parsing import_function_not_sketch.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -129,9 +144,11 @@ description: Result of parsing import_function_not_sketch.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -143,19 +160,23 @@ description: Result of parsing import_function_not_sketch.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -171,12 +192,14 @@ description: Result of parsing import_function_not_sketch.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -189,6 +212,7 @@ description: Result of parsing import_function_not_sketch.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/import_glob/ast.snap b/rust/kcl-lib/tests/import_glob/ast.snap index 854bec1e2..10a2637cc 100644 --- a/rust/kcl-lib/tests/import_glob/ast.snap +++ b/rust/kcl-lib/tests/import_glob/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_glob.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "export_constant.kcl" @@ -15,6 +16,7 @@ description: Result of parsing import_glob.kcl "selector": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "Glob" }, @@ -25,6 +27,7 @@ description: Result of parsing import_glob.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/import_mesh_clone/ast.snap b/rust/kcl-lib/tests/import_mesh_clone/ast.snap index f3b8c8dc7..725085623 100644 --- a/rust/kcl-lib/tests/import_mesh_clone/ast.snap +++ b/rust/kcl-lib/tests/import_mesh_clone/ast.snap @@ -8,10 +8,12 @@ description: Result of parsing import_mesh_clone.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "outerAttrs": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "name": null, "properties": [ { @@ -20,19 +22,23 @@ description: Result of parsing import_mesh_clone.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "m", "start": 0, "type": "Identifier" @@ -57,6 +63,7 @@ description: Result of parsing import_mesh_clone.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yellow", "start": 0, "type": "Identifier" @@ -75,9 +82,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yellow", "start": 0, "type": "Identifier" @@ -94,6 +103,7 @@ description: Result of parsing import_mesh_clone.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -102,6 +112,7 @@ description: Result of parsing import_mesh_clone.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2000", "start": 0, "type": "Literal", @@ -113,6 +124,7 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -124,6 +136,7 @@ description: Result of parsing import_mesh_clone.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -132,6 +145,7 @@ description: Result of parsing import_mesh_clone.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2000", "start": 0, "type": "Literal", @@ -143,6 +157,7 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -154,9 +169,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -167,12 +184,14 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -181,10 +200,12 @@ description: Result of parsing import_mesh_clone.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -199,6 +220,7 @@ description: Result of parsing import_mesh_clone.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -206,6 +228,7 @@ description: Result of parsing import_mesh_clone.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#ffff00\"", "start": 0, "type": "Literal", @@ -218,9 +241,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -231,6 +256,7 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -238,9 +264,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yellow", "start": 0, "type": "Identifier" @@ -251,6 +279,7 @@ description: Result of parsing import_mesh_clone.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -263,6 +292,7 @@ description: Result of parsing import_mesh_clone.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "red", "start": 0, "type": "Identifier" @@ -270,13 +300,16 @@ description: Result of parsing import_mesh_clone.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -294,9 +328,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yellow", "start": 0, "type": "Identifier" @@ -314,6 +350,7 @@ description: Result of parsing import_mesh_clone.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -321,6 +358,7 @@ description: Result of parsing import_mesh_clone.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4000", "start": 0, "type": "Literal", @@ -336,9 +374,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -349,12 +389,14 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -363,15 +405,18 @@ description: Result of parsing import_mesh_clone.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -386,6 +431,7 @@ description: Result of parsing import_mesh_clone.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -393,6 +439,7 @@ description: Result of parsing import_mesh_clone.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#ff0000\"", "start": 0, "type": "Literal", @@ -405,9 +452,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -418,6 +467,7 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -425,9 +475,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "red", "start": 0, "type": "Identifier" @@ -438,6 +490,7 @@ description: Result of parsing import_mesh_clone.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -450,6 +503,7 @@ description: Result of parsing import_mesh_clone.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "green", "start": 0, "type": "Identifier" @@ -457,13 +511,16 @@ description: Result of parsing import_mesh_clone.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -474,6 +531,7 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -481,9 +539,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yellow", "start": 0, "type": "Identifier" @@ -501,6 +561,7 @@ description: Result of parsing import_mesh_clone.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -508,6 +569,7 @@ description: Result of parsing import_mesh_clone.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4000", "start": 0, "type": "Literal", @@ -523,9 +585,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -536,12 +600,14 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -550,15 +616,18 @@ description: Result of parsing import_mesh_clone.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -573,6 +642,7 @@ description: Result of parsing import_mesh_clone.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -580,6 +650,7 @@ description: Result of parsing import_mesh_clone.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#00ff00\"", "start": 0, "type": "Literal", @@ -592,9 +663,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -605,6 +678,7 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -612,9 +686,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "green", "start": 0, "type": "Identifier" @@ -625,6 +701,7 @@ description: Result of parsing import_mesh_clone.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -637,6 +714,7 @@ description: Result of parsing import_mesh_clone.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blue", "start": 0, "type": "Identifier" @@ -644,13 +722,16 @@ description: Result of parsing import_mesh_clone.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -661,6 +742,7 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -668,9 +750,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "red", "start": 0, "type": "Identifier" @@ -688,6 +772,7 @@ description: Result of parsing import_mesh_clone.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -695,6 +780,7 @@ description: Result of parsing import_mesh_clone.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4000", "start": 0, "type": "Literal", @@ -710,9 +796,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -723,12 +811,14 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -737,15 +827,18 @@ description: Result of parsing import_mesh_clone.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -760,6 +853,7 @@ description: Result of parsing import_mesh_clone.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -767,6 +861,7 @@ description: Result of parsing import_mesh_clone.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#0000ff\"", "start": 0, "type": "Literal", @@ -779,9 +874,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -792,6 +889,7 @@ description: Result of parsing import_mesh_clone.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -799,9 +897,11 @@ description: Result of parsing import_mesh_clone.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blue", "start": 0, "type": "Identifier" @@ -812,6 +912,7 @@ description: Result of parsing import_mesh_clone.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -819,12 +920,14 @@ description: Result of parsing import_mesh_clone.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -836,6 +939,7 @@ description: Result of parsing import_mesh_clone.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -847,6 +951,7 @@ description: Result of parsing import_mesh_clone.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -858,6 +963,7 @@ description: Result of parsing import_mesh_clone.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/import_only_at_top_level/ast.snap b/rust/kcl-lib/tests/import_only_at_top_level/ast.snap index 2c7d02eb3..3a03cc292 100644 --- a/rust/kcl-lib/tests/import_only_at_top_level/ast.snap +++ b/rust/kcl-lib/tests/import_only_at_top_level/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing import_only_at_top_level.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "main", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing import_only_at_top_level.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "empty.kcl" @@ -39,6 +41,7 @@ description: Result of parsing import_only_at_top_level.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -50,6 +53,7 @@ description: Result of parsing import_only_at_top_level.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -57,20 +61,24 @@ description: Result of parsing import_only_at_top_level.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,13 +87,16 @@ description: Result of parsing import_only_at_top_level.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "main", "start": 0, "type": "Identifier" @@ -96,11 +107,13 @@ description: Result of parsing import_only_at_top_level.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -108,12 +121,14 @@ description: Result of parsing import_only_at_top_level.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/import_side_effect/ast.snap b/rust/kcl-lib/tests/import_side_effect/ast.snap index 2fd618675..f272ec84c 100644 --- a/rust/kcl-lib/tests/import_side_effect/ast.snap +++ b/rust/kcl-lib/tests/import_side_effect/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_side_effect.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "export_side_effect.kcl" @@ -19,9 +20,11 @@ description: Result of parsing import_side_effect.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foo", "start": 0, "type": "Identifier" @@ -38,6 +41,7 @@ description: Result of parsing import_side_effect.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/import_transform/ast.snap b/rust/kcl-lib/tests/import_transform/ast.snap index 00011abd5..5abf8ae6a 100644 --- a/rust/kcl-lib/tests/import_transform/ast.snap +++ b/rust/kcl-lib/tests/import_transform/ast.snap @@ -8,10 +8,12 @@ description: Result of parsing import_transform.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "outerAttrs": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "name": null, "properties": [ { @@ -20,19 +22,23 @@ description: Result of parsing import_transform.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "m", "start": 0, "type": "Identifier" @@ -57,6 +63,7 @@ description: Result of parsing import_transform.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screw", "start": 0, "type": "Identifier" @@ -75,9 +82,11 @@ description: Result of parsing import_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screw", "start": 0, "type": "Identifier" @@ -94,6 +103,7 @@ description: Result of parsing import_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -101,6 +111,7 @@ description: Result of parsing import_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -116,6 +127,7 @@ description: Result of parsing import_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -123,6 +135,7 @@ description: Result of parsing import_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -138,6 +151,7 @@ description: Result of parsing import_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -145,6 +159,7 @@ description: Result of parsing import_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -160,9 +175,11 @@ description: Result of parsing import_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -173,12 +190,14 @@ description: Result of parsing import_transform.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -191,6 +210,7 @@ description: Result of parsing import_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -198,6 +218,7 @@ description: Result of parsing import_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -213,6 +234,7 @@ description: Result of parsing import_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -220,6 +242,7 @@ description: Result of parsing import_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -235,6 +258,7 @@ description: Result of parsing import_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -242,6 +266,7 @@ description: Result of parsing import_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -257,9 +282,11 @@ description: Result of parsing import_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -270,12 +297,14 @@ description: Result of parsing import_transform.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -288,6 +317,7 @@ description: Result of parsing import_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -295,6 +325,7 @@ description: Result of parsing import_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -310,6 +341,7 @@ description: Result of parsing import_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -317,6 +349,7 @@ description: Result of parsing import_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -332,6 +365,7 @@ description: Result of parsing import_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -339,6 +373,7 @@ description: Result of parsing import_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -354,9 +389,11 @@ description: Result of parsing import_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -367,12 +404,14 @@ description: Result of parsing import_transform.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -381,10 +420,12 @@ description: Result of parsing import_transform.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -392,12 +433,14 @@ description: Result of parsing import_transform.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/import_whole_simple/ast.snap b/rust/kcl-lib/tests/import_whole_simple/ast.snap index c34f06ac4..e306baaa4 100644 --- a/rust/kcl-lib/tests/import_whole_simple/ast.snap +++ b/rust/kcl-lib/tests/import_whole_simple/ast.snap @@ -1,6 +1,6 @@ --- source: kcl-lib/src/simulation_tests.rs -description: Result of parsing import_whole.kcl +description: Result of parsing import_whole_simple.kcl --- { "Ok": { @@ -8,6 +8,7 @@ description: Result of parsing import_whole.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "exported_mod.kcl" @@ -17,6 +18,7 @@ description: Result of parsing import_whole.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foo", "start": 0, "type": "Identifier" @@ -34,6 +36,7 @@ description: Result of parsing import_whole.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bar", "start": 0, "type": "Identifier" @@ -44,9 +47,11 @@ description: Result of parsing import_whole.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foo", "start": 0, "type": "Identifier" @@ -63,6 +68,7 @@ description: Result of parsing import_whole.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -70,6 +76,7 @@ description: Result of parsing import_whole.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -85,9 +92,11 @@ description: Result of parsing import_whole.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -98,6 +107,7 @@ description: Result of parsing import_whole.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -106,15 +116,18 @@ description: Result of parsing import_whole.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -126,9 +139,11 @@ description: Result of parsing import_whole.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -140,19 +155,23 @@ description: Result of parsing import_whole.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -168,12 +187,14 @@ description: Result of parsing import_whole.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -186,6 +207,7 @@ description: Result of parsing import_whole.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/import_whole_transitive_import/ast.snap b/rust/kcl-lib/tests/import_whole_transitive_import/ast.snap index 6bfad0f2e..f3369fc85 100644 --- a/rust/kcl-lib/tests/import_whole_transitive_import/ast.snap +++ b/rust/kcl-lib/tests/import_whole_transitive_import/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing import_whole_transitive_import.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "part.kcl" @@ -28,6 +29,7 @@ description: Result of parsing import_whole_transitive_import.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bar", "start": 0, "type": "Identifier" @@ -38,9 +40,11 @@ description: Result of parsing import_whole_transitive_import.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part", "start": 0, "type": "Identifier" @@ -57,6 +61,7 @@ description: Result of parsing import_whole_transitive_import.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -64,6 +69,7 @@ description: Result of parsing import_whole_transitive_import.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -79,9 +85,11 @@ description: Result of parsing import_whole_transitive_import.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -92,6 +100,7 @@ description: Result of parsing import_whole_transitive_import.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -100,15 +109,18 @@ description: Result of parsing import_whole_transitive_import.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -120,9 +132,11 @@ description: Result of parsing import_whole_transitive_import.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -134,19 +148,23 @@ description: Result of parsing import_whole_transitive_import.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -162,12 +180,14 @@ description: Result of parsing import_whole_transitive_import.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -180,6 +200,7 @@ description: Result of parsing import_whole_transitive_import.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/index_of_array/ast.snap b/rust/kcl-lib/tests/index_of_array/ast.snap index 2923b9d4f..ca466c2b1 100644 --- a/rust/kcl-lib/tests/index_of_array/ast.snap +++ b/rust/kcl-lib/tests/index_of_array/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing index_of_array.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "91", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "92", "start": 0, "type": "Literal", @@ -58,15 +62,18 @@ description: Result of parsing index_of_array.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +86,7 @@ description: Result of parsing index_of_array.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "result0", "start": 0, "type": "Identifier" @@ -87,13 +95,16 @@ description: Result of parsing index_of_array.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -106,6 +117,7 @@ description: Result of parsing index_of_array.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -119,11 +131,13 @@ description: Result of parsing index_of_array.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -138,6 +152,7 @@ description: Result of parsing index_of_array.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isLessThanOrEqual", "start": 0, "type": "Identifier" @@ -145,6 +160,7 @@ description: Result of parsing index_of_array.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "91", "start": 0, "type": "Literal", @@ -160,6 +176,7 @@ description: Result of parsing index_of_array.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -167,6 +184,7 @@ description: Result of parsing index_of_array.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"Literal property lookup\"", "start": 0, "type": "Literal", @@ -179,9 +197,11 @@ description: Result of parsing index_of_array.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -192,6 +212,7 @@ description: Result of parsing index_of_array.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -199,9 +220,11 @@ description: Result of parsing index_of_array.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "result0", "start": 0, "type": "Identifier" @@ -212,6 +235,7 @@ description: Result of parsing index_of_array.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -226,6 +250,7 @@ description: Result of parsing index_of_array.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThanOrEqual", "start": 0, "type": "Identifier" @@ -233,6 +258,7 @@ description: Result of parsing index_of_array.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "91", "start": 0, "type": "Literal", @@ -248,6 +274,7 @@ description: Result of parsing index_of_array.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -255,6 +282,7 @@ description: Result of parsing index_of_array.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"Literal property lookup\"", "start": 0, "type": "Literal", @@ -267,9 +295,11 @@ description: Result of parsing index_of_array.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -280,6 +310,7 @@ description: Result of parsing index_of_array.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -287,9 +318,11 @@ description: Result of parsing index_of_array.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "result0", "start": 0, "type": "Identifier" @@ -300,6 +333,7 @@ description: Result of parsing index_of_array.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -312,6 +346,7 @@ description: Result of parsing index_of_array.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -322,6 +357,7 @@ description: Result of parsing index_of_array.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -331,10 +367,12 @@ description: Result of parsing index_of_array.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -348,11 +386,13 @@ description: Result of parsing index_of_array.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -365,6 +405,7 @@ description: Result of parsing index_of_array.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "result1", "start": 0, "type": "Identifier" @@ -373,13 +414,16 @@ description: Result of parsing index_of_array.kcl "commentStart": 0, "computed": true, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -392,6 +436,7 @@ description: Result of parsing index_of_array.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -401,11 +446,13 @@ description: Result of parsing index_of_array.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -420,6 +467,7 @@ description: Result of parsing index_of_array.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isLessThanOrEqual", "start": 0, "type": "Identifier" @@ -427,6 +475,7 @@ description: Result of parsing index_of_array.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "91", "start": 0, "type": "Literal", @@ -442,6 +491,7 @@ description: Result of parsing index_of_array.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -449,6 +499,7 @@ description: Result of parsing index_of_array.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"Computed property lookup\"", "start": 0, "type": "Literal", @@ -461,9 +512,11 @@ description: Result of parsing index_of_array.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -474,6 +527,7 @@ description: Result of parsing index_of_array.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -481,9 +535,11 @@ description: Result of parsing index_of_array.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "result1", "start": 0, "type": "Identifier" @@ -494,6 +550,7 @@ description: Result of parsing index_of_array.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -508,6 +565,7 @@ description: Result of parsing index_of_array.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThanOrEqual", "start": 0, "type": "Identifier" @@ -515,6 +573,7 @@ description: Result of parsing index_of_array.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "91", "start": 0, "type": "Literal", @@ -530,6 +589,7 @@ description: Result of parsing index_of_array.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -537,6 +597,7 @@ description: Result of parsing index_of_array.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"Computed property lookup\"", "start": 0, "type": "Literal", @@ -549,9 +610,11 @@ description: Result of parsing index_of_array.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -562,6 +625,7 @@ description: Result of parsing index_of_array.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -569,9 +633,11 @@ description: Result of parsing index_of_array.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "result1", "start": 0, "type": "Identifier" @@ -582,6 +648,7 @@ description: Result of parsing index_of_array.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -589,12 +656,14 @@ description: Result of parsing index_of_array.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -606,6 +675,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -617,6 +687,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -628,6 +699,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -639,6 +711,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -650,6 +723,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -662,6 +736,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -673,6 +748,7 @@ description: Result of parsing index_of_array.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/intersect_cubes/ast.snap b/rust/kcl-lib/tests/intersect_cubes/ast.snap index 4f44cd343..c0c478a42 100644 --- a/rust/kcl-lib/tests/intersect_cubes/ast.snap +++ b/rust/kcl-lib/tests/intersect_cubes/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing intersect_cubes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -24,13 +25,16 @@ description: Result of parsing intersect_cubes.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -41,6 +45,7 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48,9 +53,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -68,6 +75,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -82,13 +90,16 @@ description: Result of parsing intersect_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -101,6 +112,7 @@ description: Result of parsing intersect_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -114,14 +126,17 @@ description: Result of parsing intersect_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -142,13 +157,16 @@ description: Result of parsing intersect_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -161,6 +179,7 @@ description: Result of parsing intersect_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -174,14 +193,17 @@ description: Result of parsing intersect_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -197,6 +219,7 @@ description: Result of parsing intersect_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -207,9 +230,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -220,6 +245,7 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -232,6 +258,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -246,13 +273,16 @@ description: Result of parsing intersect_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -265,6 +295,7 @@ description: Result of parsing intersect_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -278,14 +309,17 @@ description: Result of parsing intersect_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -306,13 +340,16 @@ description: Result of parsing intersect_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -325,6 +362,7 @@ description: Result of parsing intersect_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -338,14 +376,17 @@ description: Result of parsing intersect_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -361,6 +402,7 @@ description: Result of parsing intersect_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -371,9 +413,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -384,6 +428,7 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -396,6 +441,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -410,13 +456,16 @@ description: Result of parsing intersect_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -429,6 +478,7 @@ description: Result of parsing intersect_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -442,14 +492,17 @@ description: Result of parsing intersect_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -470,13 +523,16 @@ description: Result of parsing intersect_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -489,6 +545,7 @@ description: Result of parsing intersect_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -502,14 +559,17 @@ description: Result of parsing intersect_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -525,6 +585,7 @@ description: Result of parsing intersect_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -535,9 +596,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -548,6 +611,7 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -560,6 +624,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -574,13 +639,16 @@ description: Result of parsing intersect_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -593,6 +661,7 @@ description: Result of parsing intersect_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -606,14 +675,17 @@ description: Result of parsing intersect_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -634,13 +706,16 @@ description: Result of parsing intersect_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -653,6 +728,7 @@ description: Result of parsing intersect_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -666,14 +742,17 @@ description: Result of parsing intersect_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -689,6 +768,7 @@ description: Result of parsing intersect_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -699,9 +779,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -712,19 +794,23 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -735,6 +821,7 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -747,6 +834,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -757,6 +845,7 @@ description: Result of parsing intersect_cubes.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -766,14 +855,17 @@ description: Result of parsing intersect_cubes.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -793,9 +885,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -806,6 +900,7 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -814,12 +909,14 @@ description: Result of parsing intersect_cubes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -827,16 +924,19 @@ description: Result of parsing intersect_cubes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -847,6 +947,7 @@ description: Result of parsing intersect_cubes.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -857,11 +958,13 @@ description: Result of parsing intersect_cubes.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -874,6 +977,7 @@ description: Result of parsing intersect_cubes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -885,6 +989,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -895,6 +1000,7 @@ description: Result of parsing intersect_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -907,6 +1013,7 @@ description: Result of parsing intersect_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -918,6 +1025,7 @@ description: Result of parsing intersect_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -928,6 +1036,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -935,6 +1044,7 @@ description: Result of parsing intersect_cubes.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -950,9 +1060,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -963,16 +1075,19 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -985,6 +1100,7 @@ description: Result of parsing intersect_cubes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -998,6 +1114,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1008,6 +1125,7 @@ description: Result of parsing intersect_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -1020,6 +1138,7 @@ description: Result of parsing intersect_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1031,6 +1150,7 @@ description: Result of parsing intersect_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1041,6 +1161,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -1048,6 +1169,7 @@ description: Result of parsing intersect_cubes.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1063,9 +1185,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -1076,6 +1200,7 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1088,6 +1213,7 @@ description: Result of parsing intersect_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1095,6 +1221,7 @@ description: Result of parsing intersect_cubes.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1110,9 +1237,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1123,6 +1252,7 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1131,15 +1261,18 @@ description: Result of parsing intersect_cubes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1152,18 +1285,22 @@ description: Result of parsing intersect_cubes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fullPart", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersect", "start": 0, "type": "Identifier" @@ -1174,6 +1311,7 @@ description: Result of parsing intersect_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1184,9 +1322,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -1200,9 +1340,11 @@ description: Result of parsing intersect_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -1214,16 +1356,19 @@ description: Result of parsing intersect_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1231,12 +1376,14 @@ description: Result of parsing intersect_cubes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1248,6 +1395,7 @@ description: Result of parsing intersect_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/invalid_index_fractional/ast.snap b/rust/kcl-lib/tests/invalid_index_fractional/ast.snap index 9df77d73c..6efded428 100644 --- a/rust/kcl-lib/tests/invalid_index_fractional/ast.snap +++ b/rust/kcl-lib/tests/invalid_index_fractional/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing invalid_index_fractional.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing invalid_index_fractional.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing invalid_index_fractional.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing invalid_index_fractional.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -58,15 +62,18 @@ description: Result of parsing invalid_index_fractional.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +86,7 @@ description: Result of parsing invalid_index_fractional.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -87,13 +95,16 @@ description: Result of parsing invalid_index_fractional.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -106,6 +117,7 @@ description: Result of parsing invalid_index_fractional.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -119,11 +131,13 @@ description: Result of parsing invalid_index_fractional.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -131,6 +145,7 @@ description: Result of parsing invalid_index_fractional.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/invalid_index_negative/ast.snap b/rust/kcl-lib/tests/invalid_index_negative/ast.snap index 64b7dd4a1..2050e14f6 100644 --- a/rust/kcl-lib/tests/invalid_index_negative/ast.snap +++ b/rust/kcl-lib/tests/invalid_index_negative/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing invalid_index_negative.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing invalid_index_negative.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing invalid_index_negative.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing invalid_index_negative.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -58,15 +62,18 @@ description: Result of parsing invalid_index_negative.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +86,7 @@ description: Result of parsing invalid_index_negative.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -87,6 +95,7 @@ description: Result of parsing invalid_index_negative.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -98,16 +107,19 @@ description: Result of parsing invalid_index_negative.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -120,6 +132,7 @@ description: Result of parsing invalid_index_negative.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -128,13 +141,16 @@ description: Result of parsing invalid_index_negative.kcl "commentStart": 0, "computed": true, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -147,6 +163,7 @@ description: Result of parsing invalid_index_negative.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -156,11 +173,13 @@ description: Result of parsing invalid_index_negative.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -168,6 +187,7 @@ description: Result of parsing invalid_index_negative.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/invalid_index_str/ast.snap b/rust/kcl-lib/tests/invalid_index_str/ast.snap index 60797828a..15266bb32 100644 --- a/rust/kcl-lib/tests/invalid_index_str/ast.snap +++ b/rust/kcl-lib/tests/invalid_index_str/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing invalid_index_str.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing invalid_index_str.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -35,6 +37,7 @@ description: Result of parsing invalid_index_str.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -47,6 +50,7 @@ description: Result of parsing invalid_index_str.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -58,15 +62,18 @@ description: Result of parsing invalid_index_str.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +86,7 @@ description: Result of parsing invalid_index_str.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -87,13 +95,16 @@ description: Result of parsing invalid_index_str.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -106,6 +117,7 @@ description: Result of parsing invalid_index_str.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"s\"", "start": 0, "type": "Literal", @@ -116,11 +128,13 @@ description: Result of parsing invalid_index_str.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -128,6 +142,7 @@ description: Result of parsing invalid_index_str.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/invalid_member_object/ast.snap b/rust/kcl-lib/tests/invalid_member_object/ast.snap index d8fd315ee..b62fea1bb 100644 --- a/rust/kcl-lib/tests/invalid_member_object/ast.snap +++ b/rust/kcl-lib/tests/invalid_member_object/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing invalid_member_object.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "num", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing invalid_member_object.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "999", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing invalid_member_object.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing invalid_member_object.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -54,13 +59,16 @@ description: Result of parsing invalid_member_object.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "num", "start": 0, "type": "Identifier" @@ -73,6 +81,7 @@ description: Result of parsing invalid_member_object.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -86,11 +95,13 @@ description: Result of parsing invalid_member_object.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -98,6 +109,7 @@ description: Result of parsing invalid_member_object.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/invalid_member_object_prop/ast.snap b/rust/kcl-lib/tests/invalid_member_object_prop/ast.snap index a1aa40135..09dd18257 100644 --- a/rust/kcl-lib/tests/invalid_member_object_prop/ast.snap +++ b/rust/kcl-lib/tests/invalid_member_object_prop/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing invalid_member_object_prop.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "b", "start": 0, "type": "Identifier" @@ -20,17 +21,20 @@ description: Result of parsing invalid_member_object_prop.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", "type": "Literal", "value": true }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -43,6 +47,7 @@ description: Result of parsing invalid_member_object_prop.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -51,13 +56,16 @@ description: Result of parsing invalid_member_object_prop.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "b", "start": 0, "type": "Identifier" @@ -70,6 +78,7 @@ description: Result of parsing invalid_member_object_prop.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"property\"", "start": 0, "type": "Literal", @@ -80,11 +89,13 @@ description: Result of parsing invalid_member_object_prop.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -92,6 +103,7 @@ description: Result of parsing invalid_member_object_prop.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/invalid_member_object_using_string/ast.snap b/rust/kcl-lib/tests/invalid_member_object_using_string/ast.snap index b44248bb2..187a30390 100644 --- a/rust/kcl-lib/tests/invalid_member_object_using_string/ast.snap +++ b/rust/kcl-lib/tests/invalid_member_object_using_string/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing invalid_member_object_using_string.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -20,17 +21,20 @@ description: Result of parsing invalid_member_object_using_string.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"foo\"", "start": 0, "type": "Literal", "type": "Literal", "value": "foo" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -43,6 +47,7 @@ description: Result of parsing invalid_member_object_using_string.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -50,6 +55,7 @@ description: Result of parsing invalid_member_object_using_string.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -57,15 +63,18 @@ description: Result of parsing invalid_member_object_using_string.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foo", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -82,15 +91,18 @@ description: Result of parsing invalid_member_object_using_string.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bar", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -106,11 +118,13 @@ description: Result of parsing invalid_member_object_using_string.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -123,6 +137,7 @@ description: Result of parsing invalid_member_object_using_string.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier" @@ -131,13 +146,16 @@ description: Result of parsing invalid_member_object_using_string.kcl "commentStart": 0, "computed": true, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -150,6 +168,7 @@ description: Result of parsing invalid_member_object_using_string.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier", @@ -159,11 +178,13 @@ description: Result of parsing invalid_member_object_using_string.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Try to index with a string." ], @@ -174,12 +195,14 @@ description: Result of parsing invalid_member_object_using_string.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -191,6 +214,7 @@ description: Result of parsing invalid_member_object_using_string.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/involute_circular_units/ast.snap b/rust/kcl-lib/tests/involute_circular_units/ast.snap index 7ec0e4abe..f8c5c14cd 100644 --- a/rust/kcl-lib/tests/involute_circular_units/ast.snap +++ b/rust/kcl-lib/tests/involute_circular_units/ast.snap @@ -1,6 +1,5 @@ --- source: kcl-lib/src/simulation_tests.rs -assertion_line: 87 description: Result of parsing involute_circular_units.kcl --- { @@ -14,6 +13,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -21,6 +21,7 @@ description: Result of parsing involute_circular_units.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21", "start": 0, "type": "Literal", @@ -30,11 +31,13 @@ description: Result of parsing involute_circular_units.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -50,6 +53,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -57,6 +61,7 @@ description: Result of parsing involute_circular_units.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -66,11 +71,13 @@ description: Result of parsing involute_circular_units.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -83,6 +90,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -94,9 +102,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -106,14 +116,17 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -127,11 +140,13 @@ description: Result of parsing involute_circular_units.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -144,6 +159,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -151,6 +167,7 @@ description: Result of parsing involute_circular_units.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20deg", "start": 0, "type": "Literal", @@ -160,11 +177,13 @@ description: Result of parsing involute_circular_units.kcl "suffix": "Deg" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -177,6 +196,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -185,9 +205,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -197,11 +219,13 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -224,6 +249,7 @@ description: Result of parsing involute_circular_units.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -233,14 +259,17 @@ description: Result of parsing involute_circular_units.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -254,11 +283,13 @@ description: Result of parsing involute_circular_units.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -271,6 +302,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -282,9 +314,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -294,15 +328,19 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -313,6 +351,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -320,9 +359,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -337,11 +378,13 @@ description: Result of parsing involute_circular_units.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -354,6 +397,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -365,9 +409,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -377,6 +423,7 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -384,6 +431,7 @@ description: Result of parsing involute_circular_units.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -393,14 +441,17 @@ description: Result of parsing involute_circular_units.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -418,11 +469,13 @@ description: Result of parsing involute_circular_units.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -435,6 +488,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -442,6 +496,7 @@ description: Result of parsing involute_circular_units.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".3", "start": 0, "type": "Literal", @@ -451,11 +506,13 @@ description: Result of parsing involute_circular_units.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -468,6 +525,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle001", "start": 0, "type": "Identifier" @@ -475,6 +533,7 @@ description: Result of parsing involute_circular_units.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -484,11 +543,13 @@ description: Result of parsing involute_circular_units.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -501,6 +562,7 @@ description: Result of parsing involute_circular_units.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -508,13 +570,16 @@ description: Result of parsing involute_circular_units.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -525,6 +590,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -532,9 +598,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -552,6 +620,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -566,9 +635,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -578,10 +649,12 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -598,6 +671,7 @@ description: Result of parsing involute_circular_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -609,6 +683,7 @@ description: Result of parsing involute_circular_units.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -619,9 +694,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -632,6 +709,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -644,6 +722,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -655,9 +734,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -667,10 +748,12 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -690,6 +773,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -701,9 +785,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -713,10 +799,12 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -736,6 +824,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -743,6 +832,7 @@ description: Result of parsing involute_circular_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -758,6 +848,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -765,6 +856,7 @@ description: Result of parsing involute_circular_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -776,9 +868,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -789,6 +883,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -801,6 +896,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -809,13 +905,16 @@ description: Result of parsing involute_circular_units.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegX", "start": 0, "type": "Identifier" @@ -826,25 +925,30 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegY", "start": 0, "type": "Identifier" @@ -855,12 +959,14 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -868,6 +974,7 @@ description: Result of parsing involute_circular_units.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -878,9 +985,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -891,6 +1000,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -903,18 +1013,22 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "asin", "start": 0, "type": "Identifier" @@ -925,6 +1039,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -932,13 +1047,16 @@ description: Result of parsing involute_circular_units.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -949,6 +1067,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -956,9 +1075,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -969,15 +1090,19 @@ description: Result of parsing involute_circular_units.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -988,6 +1113,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -995,9 +1121,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1019,6 +1147,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1026,6 +1155,7 @@ description: Result of parsing involute_circular_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -1041,6 +1171,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1052,9 +1183,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1064,10 +1197,12 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1087,6 +1222,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1094,6 +1230,7 @@ description: Result of parsing involute_circular_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1105,9 +1242,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1118,6 +1257,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1130,6 +1270,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -1141,9 +1282,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1153,10 +1296,12 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1176,6 +1321,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -1187,9 +1333,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1199,10 +1347,12 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1222,6 +1372,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1230,6 +1381,7 @@ description: Result of parsing involute_circular_units.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -1241,6 +1393,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1252,6 +1405,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -1259,6 +1413,7 @@ description: Result of parsing involute_circular_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1271,9 +1426,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -1284,6 +1441,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1296,6 +1454,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1304,13 +1463,16 @@ description: Result of parsing involute_circular_units.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegX", "start": 0, "type": "Identifier" @@ -1321,25 +1483,30 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegY", "start": 0, "type": "Identifier" @@ -1350,12 +1517,14 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1363,6 +1532,7 @@ description: Result of parsing involute_circular_units.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1373,9 +1543,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1386,6 +1558,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1398,6 +1571,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1409,6 +1583,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1419,6 +1594,7 @@ description: Result of parsing involute_circular_units.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1428,14 +1604,17 @@ description: Result of parsing involute_circular_units.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1455,6 +1634,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1466,9 +1646,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1478,10 +1660,12 @@ description: Result of parsing involute_circular_units.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1501,9 +1685,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1514,6 +1700,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1525,9 +1712,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1538,6 +1727,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1550,6 +1740,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1558,9 +1749,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1576,6 +1769,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1586,6 +1780,7 @@ description: Result of parsing involute_circular_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1598,6 +1793,7 @@ description: Result of parsing involute_circular_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1609,6 +1805,7 @@ description: Result of parsing involute_circular_units.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1619,6 +1816,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1626,6 +1824,7 @@ description: Result of parsing involute_circular_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1641,6 +1840,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1648,6 +1848,7 @@ description: Result of parsing involute_circular_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1660,9 +1861,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -1673,25 +1876,30 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1702,6 +1910,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1714,6 +1923,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1725,6 +1935,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1735,6 +1946,7 @@ description: Result of parsing involute_circular_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1747,6 +1959,7 @@ description: Result of parsing involute_circular_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1758,6 +1971,7 @@ description: Result of parsing involute_circular_units.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1768,6 +1982,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1775,6 +1990,7 @@ description: Result of parsing involute_circular_units.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1790,9 +2006,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1803,6 +2021,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1814,9 +2033,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1827,6 +2048,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1839,6 +2061,7 @@ description: Result of parsing involute_circular_units.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1847,9 +2070,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -1865,9 +2090,11 @@ description: Result of parsing involute_circular_units.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1878,6 +2105,7 @@ description: Result of parsing involute_circular_units.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1886,15 +2114,18 @@ description: Result of parsing involute_circular_units.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1906,9 +2137,11 @@ description: Result of parsing involute_circular_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1920,19 +2153,23 @@ description: Result of parsing involute_circular_units.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cm", "start": 0, "type": "Identifier" @@ -1948,12 +2185,14 @@ description: Result of parsing involute_circular_units.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1966,6 +2205,7 @@ description: Result of parsing involute_circular_units.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/involute_circular_units/program_memory.snap b/rust/kcl-lib/tests/involute_circular_units/program_memory.snap index 856f1089f..b0dc1863d 100644 --- a/rust/kcl-lib/tests/involute_circular_units/program_memory.snap +++ b/rust/kcl-lib/tests/involute_circular_units/program_memory.snap @@ -140,6 +140,7 @@ description: Variables in memory after executing involute_circular_units.kcl "tag": { "commentStart": 505, "end": 511, + "moduleId": 0, "start": 505, "type": "TagDeclarator", "value": "seg01" @@ -160,6 +161,7 @@ description: Variables in memory after executing involute_circular_units.kcl "tag": { "commentStart": 708, "end": 714, + "moduleId": 0, "start": 708, "type": "TagDeclarator", "value": "seg02" @@ -204,6 +206,7 @@ description: Variables in memory after executing involute_circular_units.kcl "tag": { "commentStart": 505, "end": 511, + "moduleId": 0, "start": 505, "type": "TagDeclarator", "value": "seg01" @@ -254,6 +257,7 @@ description: Variables in memory after executing involute_circular_units.kcl "tag": { "commentStart": 708, "end": 714, + "moduleId": 0, "start": 708, "type": "TagDeclarator", "value": "seg02" diff --git a/rust/kcl-lib/tests/kcl_samples/axial-fan/ast.snap b/rust/kcl-lib/tests/kcl_samples/axial-fan/ast.snap index 5929487ee..d2d504a6a 100644 --- a/rust/kcl-lib/tests/kcl_samples/axial-fan/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/axial-fan/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing axial-fan.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "fan-housing.kcl" @@ -20,6 +21,7 @@ description: Result of parsing axial-fan.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fanHousing", "start": 0, "type": "Identifier" @@ -32,6 +34,7 @@ description: Result of parsing axial-fan.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "motor.kcl" @@ -41,6 +44,7 @@ description: Result of parsing axial-fan.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "motor", "start": 0, "type": "Identifier" @@ -53,6 +57,7 @@ description: Result of parsing axial-fan.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "fan.kcl" @@ -62,6 +67,7 @@ description: Result of parsing axial-fan.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fan", "start": 0, "type": "Identifier" @@ -78,9 +84,11 @@ description: Result of parsing axial-fan.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fanHousing", "start": 0, "type": "Identifier" @@ -90,6 +98,7 @@ description: Result of parsing axial-fan.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "preComments": [ "", "", @@ -106,9 +115,11 @@ description: Result of parsing axial-fan.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "motor", "start": 0, "type": "Identifier" @@ -118,6 +129,7 @@ description: Result of parsing axial-fan.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -129,9 +141,11 @@ description: Result of parsing axial-fan.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fan", "start": 0, "type": "Identifier" @@ -141,6 +155,7 @@ description: Result of parsing axial-fan.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -152,9 +167,11 @@ description: Result of parsing axial-fan.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -173,19 +190,23 @@ description: Result of parsing axial-fan.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -202,15 +223,18 @@ description: Result of parsing axial-fan.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -226,12 +250,14 @@ description: Result of parsing axial-fan.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/ball-bearing/ast.snap b/rust/kcl-lib/tests/kcl_samples/ball-bearing/ast.snap index 611c70e5d..002f8c960 100644 --- a/rust/kcl-lib/tests/kcl_samples/ball-bearing/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/ball-bearing/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outsideDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing ball-bearing.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.625", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing ball-bearing.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sphereDia", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing ball-bearing.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing ball-bearing.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftDia", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing ball-bearing.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing ball-bearing.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overallThickness", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing ball-bearing.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.313", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing ball-bearing.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing ball-bearing.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.100", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing ball-bearing.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overHangLength", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing ball-bearing.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".3", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing ball-bearing.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nBalls", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing ball-bearing.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing ball-bearing.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chainWidth", "start": 0, "type": "Identifier" @@ -258,9 +287,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sphereDia", "start": 0, "type": "Identifier" @@ -270,10 +301,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -287,11 +320,13 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -304,6 +339,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chainThickness", "start": 0, "type": "Identifier" @@ -315,9 +351,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sphereDia", "start": 0, "type": "Identifier" @@ -327,10 +365,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -344,11 +384,13 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -361,6 +403,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "linkDiameter", "start": 0, "type": "Identifier" @@ -372,9 +415,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sphereDia", "start": 0, "type": "Identifier" @@ -384,10 +429,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -401,11 +448,13 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -418,6 +467,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insideWallSketch", "start": 0, "type": "Identifier" @@ -425,13 +475,16 @@ description: Result of parsing ball-bearing.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -442,6 +495,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -452,6 +506,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -464,9 +519,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overallThickness", "start": 0, "type": "Identifier" @@ -478,15 +535,18 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -506,9 +566,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -519,6 +581,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -526,9 +589,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -547,6 +612,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -557,6 +623,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -569,6 +636,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -580,6 +648,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -590,6 +659,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -604,9 +674,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftDia", "start": 0, "type": "Identifier" @@ -616,10 +688,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -633,14 +707,17 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -660,9 +737,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -673,6 +752,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -685,6 +765,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -696,6 +777,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -706,6 +788,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -718,6 +801,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -729,6 +813,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -739,6 +824,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -750,9 +836,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftDia", "start": 0, "type": "Identifier" @@ -762,10 +850,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -785,9 +875,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -798,6 +890,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -809,9 +902,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -822,6 +917,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -830,12 +926,14 @@ description: Result of parsing ball-bearing.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -852,11 +950,13 @@ description: Result of parsing ball-bearing.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -874,6 +974,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insideWall", "start": 0, "type": "Identifier" @@ -885,6 +986,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -893,9 +995,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overallThickness", "start": 0, "type": "Identifier" @@ -911,9 +1015,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -924,6 +1030,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -931,9 +1038,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insideWallSketch", "start": 0, "type": "Identifier" @@ -944,11 +1053,13 @@ description: Result of parsing ball-bearing.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -961,6 +1072,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballsSketch", "start": 0, "type": "Identifier" @@ -968,13 +1080,16 @@ description: Result of parsing ball-bearing.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -985,6 +1100,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -992,9 +1108,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1012,6 +1130,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1029,9 +1148,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftDia", "start": 0, "type": "Identifier" @@ -1041,10 +1162,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1058,14 +1181,17 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1082,6 +1208,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.001", "start": 0, "type": "Literal", @@ -1093,6 +1220,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1103,9 +1231,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1116,6 +1246,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1128,6 +1259,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1135,6 +1267,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1150,6 +1283,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1157,6 +1291,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1172,6 +1307,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1183,9 +1319,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sphereDia", "start": 0, "type": "Identifier" @@ -1195,10 +1333,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1218,9 +1358,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1231,19 +1373,23 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1254,6 +1400,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1262,12 +1409,14 @@ description: Result of parsing ball-bearing.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1284,11 +1433,13 @@ description: Result of parsing ball-bearing.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1306,6 +1457,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "balls", "start": 0, "type": "Identifier" @@ -1319,6 +1471,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1327,9 +1480,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -1345,9 +1500,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1358,6 +1515,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1365,9 +1523,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballsSketch", "start": 0, "type": "Identifier" @@ -1385,6 +1545,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1392,6 +1553,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1407,6 +1569,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1417,6 +1580,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1429,6 +1593,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1441,6 +1606,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1452,6 +1618,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1462,6 +1629,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1472,6 +1640,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1484,6 +1653,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1496,6 +1666,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1507,6 +1678,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1517,6 +1689,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1525,9 +1698,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nBalls", "start": 0, "type": "Identifier" @@ -1543,6 +1718,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1550,6 +1726,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1562,9 +1739,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -1575,6 +1754,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1583,12 +1763,14 @@ description: Result of parsing ball-bearing.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1605,11 +1787,13 @@ description: Result of parsing ball-bearing.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1622,6 +1806,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chainSketch", "start": 0, "type": "Identifier" @@ -1629,13 +1814,16 @@ description: Result of parsing ball-bearing.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1646,6 +1834,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1653,9 +1842,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1673,6 +1864,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1696,9 +1888,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftDia", "start": 0, "type": "Identifier" @@ -1708,10 +1902,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1725,14 +1921,17 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1746,6 +1945,7 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1754,9 +1954,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sphereDia", "start": 0, "type": "Identifier" @@ -1766,10 +1968,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1787,6 +1991,7 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1795,9 +2000,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chainWidth", "start": 0, "type": "Identifier" @@ -1807,10 +2014,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1834,6 +2043,7 @@ description: Result of parsing ball-bearing.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -1843,15 +2053,19 @@ description: Result of parsing ball-bearing.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -1862,12 +2076,14 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -1884,6 +2100,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1894,9 +2111,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1907,6 +2126,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1919,6 +2139,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1926,6 +2147,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -1941,6 +2163,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1948,6 +2171,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -1963,6 +2187,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1974,9 +2199,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sphereDia", "start": 0, "type": "Identifier" @@ -1986,10 +2213,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2009,9 +2238,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2022,6 +2253,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2034,6 +2266,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2044,6 +2277,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2057,9 +2291,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chainThickness", "start": 0, "type": "Identifier" @@ -2071,6 +2307,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2081,9 +2318,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2094,6 +2333,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2106,6 +2346,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2118,9 +2359,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chainWidth", "start": 0, "type": "Identifier" @@ -2132,6 +2375,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2140,6 +2384,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2151,6 +2396,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2161,9 +2407,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2174,19 +2422,23 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2197,6 +2449,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2205,12 +2458,14 @@ description: Result of parsing ball-bearing.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2227,11 +2482,13 @@ description: Result of parsing ball-bearing.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2244,6 +2501,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chainHead", "start": 0, "type": "Identifier" @@ -2257,6 +2515,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2265,9 +2524,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -2283,9 +2544,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -2296,6 +2559,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2303,9 +2567,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chainSketch", "start": 0, "type": "Identifier" @@ -2323,6 +2589,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2330,6 +2597,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2345,6 +2613,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2355,6 +2624,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2367,6 +2637,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2379,6 +2650,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2390,6 +2662,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2400,6 +2673,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2410,6 +2684,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2422,6 +2697,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2434,6 +2710,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2445,6 +2722,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2455,6 +2733,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2463,9 +2742,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nBalls", "start": 0, "type": "Identifier" @@ -2481,6 +2762,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2488,6 +2770,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2500,9 +2783,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -2513,6 +2798,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2521,12 +2807,14 @@ description: Result of parsing ball-bearing.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2543,11 +2831,13 @@ description: Result of parsing ball-bearing.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2560,6 +2850,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "linkSketch", "start": 0, "type": "Identifier" @@ -2567,13 +2858,16 @@ description: Result of parsing ball-bearing.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2584,6 +2878,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2591,9 +2886,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2611,6 +2908,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2631,9 +2929,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftDia", "start": 0, "type": "Identifier" @@ -2643,10 +2943,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2660,14 +2962,17 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2681,6 +2986,7 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2689,9 +2995,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sphereDia", "start": 0, "type": "Identifier" @@ -2701,10 +3009,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2725,6 +3035,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2736,6 +3047,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2746,6 +3058,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2757,9 +3070,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "linkDiameter", "start": 0, "type": "Identifier" @@ -2769,10 +3084,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2792,9 +3109,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2805,6 +3124,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2813,12 +3133,14 @@ description: Result of parsing ball-bearing.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2835,11 +3157,13 @@ description: Result of parsing ball-bearing.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2852,6 +3176,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "linkRevolve", "start": 0, "type": "Identifier" @@ -2865,6 +3190,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2873,9 +3199,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -2891,6 +3219,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2901,6 +3230,7 @@ description: Result of parsing ball-bearing.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2910,14 +3240,17 @@ description: Result of parsing ball-bearing.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nBalls", "start": 0, "type": "Identifier" @@ -2937,9 +3270,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -2950,6 +3285,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2957,9 +3293,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "linkSketch", "start": 0, "type": "Identifier" @@ -2977,6 +3315,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2984,6 +3323,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2999,6 +3339,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3009,6 +3350,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3021,6 +3363,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3033,6 +3376,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3044,6 +3388,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3054,6 +3399,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3064,6 +3410,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3076,6 +3423,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3088,6 +3436,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3099,6 +3448,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3109,6 +3459,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3117,9 +3468,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nBalls", "start": 0, "type": "Identifier" @@ -3135,6 +3488,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -3142,6 +3496,7 @@ description: Result of parsing ball-bearing.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -3154,9 +3509,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -3167,6 +3524,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3175,12 +3533,14 @@ description: Result of parsing ball-bearing.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3197,11 +3557,13 @@ description: Result of parsing ball-bearing.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3214,6 +3576,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outsideWallSketch", "start": 0, "type": "Identifier" @@ -3221,13 +3584,16 @@ description: Result of parsing ball-bearing.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3238,6 +3604,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3248,6 +3615,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3260,9 +3628,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overallThickness", "start": 0, "type": "Identifier" @@ -3274,15 +3644,18 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3302,9 +3675,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3315,6 +3690,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3322,9 +3698,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3343,6 +3721,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3353,6 +3732,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3365,6 +3745,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3376,6 +3757,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3386,6 +3768,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3397,9 +3780,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outsideDiameter", "start": 0, "type": "Identifier" @@ -3409,10 +3794,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3432,9 +3819,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3445,6 +3834,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3457,6 +3847,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3468,6 +3859,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3478,6 +3870,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3490,6 +3883,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3501,6 +3895,7 @@ description: Result of parsing ball-bearing.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3511,6 +3906,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3528,9 +3924,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftDia", "start": 0, "type": "Identifier" @@ -3540,10 +3938,12 @@ description: Result of parsing ball-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3557,14 +3957,17 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3578,14 +3981,17 @@ description: Result of parsing ball-bearing.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sphereDia", "start": 0, "type": "Identifier" @@ -3605,9 +4011,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3618,6 +4026,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3629,9 +4038,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -3642,6 +4053,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3650,15 +4062,18 @@ description: Result of parsing ball-bearing.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3671,6 +4086,7 @@ description: Result of parsing ball-bearing.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outsideWall", "start": 0, "type": "Identifier" @@ -3682,6 +4098,7 @@ description: Result of parsing ball-bearing.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3690,9 +4107,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overallThickness", "start": 0, "type": "Identifier" @@ -3708,9 +4127,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3721,6 +4142,7 @@ description: Result of parsing ball-bearing.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3728,9 +4150,11 @@ description: Result of parsing ball-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outsideWallSketch", "start": 0, "type": "Identifier" @@ -3741,11 +4165,13 @@ description: Result of parsing ball-bearing.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3757,9 +4183,11 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3778,19 +4206,23 @@ description: Result of parsing ball-bearing.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -3807,15 +4239,18 @@ description: Result of parsing ball-bearing.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3831,12 +4266,14 @@ description: Result of parsing ball-bearing.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "18": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3849,6 +4286,7 @@ description: Result of parsing ball-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/ast.snap b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/ast.snap index 19ad55c42..992f83a22 100644 --- a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballBoltLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// variables" ], @@ -49,6 +53,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballRadius", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,18 +90,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchStartAngle", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "asin", "start": 0, "type": "Identifier" @@ -104,6 +116,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -114,9 +127,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballBoltLength", "start": 0, "type": "Identifier" @@ -126,14 +141,17 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballRadius", "start": 0, "type": "Identifier" @@ -148,11 +166,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -165,6 +185,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingThicknessHalf", "start": 0, "type": "Identifier" @@ -172,6 +193,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.5", "start": 0, "type": "Literal", @@ -181,11 +203,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -198,6 +222,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR1", "start": 0, "type": "Identifier" @@ -205,6 +230,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -214,11 +240,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -231,6 +259,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR2", "start": 0, "type": "Identifier" @@ -238,6 +267,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -247,11 +277,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -264,6 +296,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -271,6 +304,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -280,11 +314,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -297,6 +333,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftR", "start": 0, "type": "Identifier" @@ -304,6 +341,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -313,11 +351,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -330,6 +370,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distanceBetweenEyeAndShaftEnd", "start": 0, "type": "Identifier" @@ -337,6 +378,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36", "start": 0, "type": "Literal", @@ -346,11 +388,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -363,6 +407,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radiusToFlat", "start": 0, "type": "Identifier" @@ -370,6 +415,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -379,11 +425,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -396,6 +444,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flatsWidth", "start": 0, "type": "Identifier" @@ -403,6 +452,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -412,11 +462,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -429,6 +481,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tapperInAng", "start": 0, "type": "Identifier" @@ -436,6 +489,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -445,11 +499,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -462,6 +518,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDForM8Tap", "start": 0, "type": "Identifier" @@ -469,6 +526,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.8", "start": 0, "type": "Literal", @@ -478,11 +536,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -495,6 +555,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holdDepth", "start": 0, "type": "Identifier" @@ -502,6 +563,7 @@ description: Result of parsing ball-joint-rod-end.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -511,11 +573,13 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -528,18 +592,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketchAngle1", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "asin", "start": 0, "type": "Identifier" @@ -550,6 +618,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -560,9 +629,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingThicknessHalf", "start": 0, "type": "Identifier" @@ -572,14 +643,17 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR1", "start": 0, "type": "Identifier" @@ -594,11 +668,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -616,18 +692,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketchAngle2", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "asin", "start": 0, "type": "Identifier" @@ -638,6 +718,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -648,9 +729,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingThicknessHalf", "start": 0, "type": "Identifier" @@ -660,14 +743,17 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR2", "start": 0, "type": "Identifier" @@ -682,11 +768,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -699,6 +787,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pointOnRingPolar", "start": 0, "type": "Identifier" @@ -710,6 +799,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -721,9 +811,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketchAngle2", "start": 0, "type": "Identifier" @@ -733,10 +825,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -756,6 +850,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -767,9 +862,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR2", "start": 0, "type": "Identifier" @@ -779,14 +876,17 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -806,9 +906,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -819,16 +921,19 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -841,6 +946,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polarY", "start": 0, "type": "Identifier" @@ -849,13 +955,16 @@ description: Result of parsing ball-joint-rod-end.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pointOnRingPolar", "start": 0, "type": "Identifier" @@ -868,6 +977,7 @@ description: Result of parsing ball-joint-rod-end.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -881,11 +991,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -898,18 +1010,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectPoint", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -920,6 +1036,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -933,6 +1050,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exp", "start": 0, "type": "Identifier" @@ -940,6 +1058,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -955,9 +1074,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pow", "start": 0, "type": "Identifier" @@ -968,6 +1089,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -975,9 +1097,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR1", "start": 0, "type": "Identifier" @@ -988,6 +1112,7 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "arguments": [ @@ -996,6 +1121,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exp", "start": 0, "type": "Identifier" @@ -1003,6 +1129,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1018,9 +1145,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pow", "start": 0, "type": "Identifier" @@ -1031,6 +1160,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1038,9 +1168,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftR", "start": 0, "type": "Identifier" @@ -1056,11 +1188,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1073,18 +1207,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1095,6 +1233,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1102,9 +1241,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1115,11 +1256,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1140,6 +1283,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballProfile", "start": 0, "type": "Identifier" @@ -1153,6 +1297,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1164,6 +1309,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1175,9 +1321,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchStartAngle", "start": 0, "type": "Identifier" @@ -1187,10 +1335,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1210,6 +1360,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1218,9 +1369,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballRadius", "start": 0, "type": "Identifier" @@ -1236,9 +1389,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1249,6 +1404,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1260,9 +1416,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1273,6 +1431,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1280,9 +1439,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballSketch", "start": 0, "type": "Identifier" @@ -1300,6 +1461,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1311,9 +1473,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchStartAngle", "start": 0, "type": "Identifier" @@ -1323,10 +1487,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1346,6 +1512,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1356,6 +1523,7 @@ description: Result of parsing ball-joint-rod-end.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1365,14 +1533,17 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchStartAngle", "start": 0, "type": "Identifier" @@ -1392,6 +1563,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1400,9 +1572,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballRadius", "start": 0, "type": "Identifier" @@ -1418,9 +1592,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1431,6 +1607,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1443,6 +1620,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1450,6 +1628,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1465,9 +1644,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1478,6 +1659,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1490,6 +1672,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1499,9 +1682,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballBoltLength", "start": 0, "type": "Identifier" @@ -1513,6 +1698,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1524,9 +1710,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1537,6 +1725,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1549,6 +1738,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1557,13 +1747,16 @@ description: Result of parsing ball-joint-rod-end.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1574,25 +1767,30 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1603,12 +1801,14 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1616,6 +1816,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1626,9 +1827,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1639,19 +1842,23 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1662,6 +1869,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1670,15 +1878,18 @@ description: Result of parsing ball-joint-rod-end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1691,6 +1902,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballRevolve", "start": 0, "type": "Identifier" @@ -1704,6 +1916,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1711,6 +1924,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1726,6 +1940,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1734,9 +1949,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -1752,9 +1969,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1765,6 +1984,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1772,9 +1992,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballProfile", "start": 0, "type": "Identifier" @@ -1792,6 +2014,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1799,6 +2022,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#519afb\"", "start": 0, "type": "Literal", @@ -1811,9 +2035,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -1824,12 +2050,14 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1838,12 +2066,14 @@ description: Result of parsing ball-joint-rod-end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1860,11 +2090,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1877,18 +2109,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1899,6 +2135,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1906,9 +2143,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1919,11 +2158,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1936,6 +2177,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopProfile", "start": 0, "type": "Identifier" @@ -1949,6 +2191,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1960,6 +2203,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1971,9 +2215,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketchAngle1", "start": 0, "type": "Identifier" @@ -1983,10 +2229,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2006,6 +2254,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2014,9 +2263,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR1", "start": 0, "type": "Identifier" @@ -2032,9 +2283,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -2045,6 +2298,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2056,9 +2310,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2069,6 +2325,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2076,9 +2333,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketch", "start": 0, "type": "Identifier" @@ -2096,6 +2355,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -2107,9 +2367,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketchAngle1", "start": 0, "type": "Identifier" @@ -2119,10 +2381,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2142,6 +2406,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -2152,6 +2417,7 @@ description: Result of parsing ball-joint-rod-end.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2161,14 +2427,17 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketchAngle1", "start": 0, "type": "Identifier" @@ -2188,6 +2457,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2196,9 +2466,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR1", "start": 0, "type": "Identifier" @@ -2214,9 +2486,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2227,6 +2501,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2239,6 +2514,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2247,9 +2523,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polarY", "start": 0, "type": "Identifier" @@ -2265,9 +2543,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2278,6 +2558,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2290,6 +2571,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -2302,9 +2584,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketchAngle2", "start": 0, "type": "Identifier" @@ -2316,15 +2600,18 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2344,6 +2631,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -2354,6 +2642,7 @@ description: Result of parsing ball-joint-rod-end.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2363,14 +2652,17 @@ description: Result of parsing ball-joint-rod-end.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopSketchAngle2", "start": 0, "type": "Identifier" @@ -2390,6 +2682,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2398,9 +2691,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR2", "start": 0, "type": "Identifier" @@ -2416,9 +2711,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2429,6 +2726,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2441,6 +2739,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2449,13 +2748,16 @@ description: Result of parsing ball-joint-rod-end.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2466,25 +2768,30 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2495,12 +2802,14 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2508,6 +2817,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2518,9 +2828,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2531,19 +2843,23 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2554,6 +2870,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2562,15 +2879,18 @@ description: Result of parsing ball-joint-rod-end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2583,6 +2903,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopRevolve", "start": 0, "type": "Identifier" @@ -2594,6 +2915,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2601,6 +2923,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2616,6 +2939,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2624,9 +2948,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -2642,9 +2968,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -2655,6 +2983,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2662,9 +2991,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopProfile", "start": 0, "type": "Identifier" @@ -2675,11 +3006,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2692,6 +3025,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectPoint2", "start": 0, "type": "Identifier" @@ -2703,6 +3037,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2711,6 +3046,7 @@ description: Result of parsing ball-joint-rod-end.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2722,6 +3058,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2733,6 +3070,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2744,9 +3082,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR1", "start": 0, "type": "Identifier" @@ -2756,10 +3096,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08", "start": 0, "type": "Literal", @@ -2779,9 +3121,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -2792,16 +3136,19 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2814,18 +3161,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyRevolveSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2836,6 +3187,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2843,9 +3195,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2856,11 +3210,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2879,6 +3235,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyRevolveProfile", "start": 0, "type": "Identifier" @@ -2892,6 +3249,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2902,6 +3260,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2916,9 +3275,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distanceBetweenEyeAndShaftEnd", "start": 0, "type": "Identifier" @@ -2930,6 +3291,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2937,6 +3299,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2947,9 +3310,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2960,6 +3325,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2967,9 +3333,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyRevolveSketch", "start": 0, "type": "Identifier" @@ -2987,6 +3355,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2998,9 +3367,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shaftR", "start": 0, "type": "Identifier" @@ -3010,10 +3381,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.07", "start": 0, "type": "Literal", @@ -3033,6 +3406,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3040,6 +3414,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3051,9 +3426,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3064,6 +3441,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3076,6 +3454,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3085,9 +3464,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectPoint", "start": 0, "type": "Identifier" @@ -3099,6 +3480,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3110,6 +3492,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3117,6 +3500,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3128,9 +3512,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3141,6 +3527,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3153,6 +3540,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -3161,9 +3549,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectPoint2", "start": 0, "type": "Identifier" @@ -3179,6 +3569,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3193,9 +3584,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingR1", "start": 0, "type": "Identifier" @@ -3205,10 +3598,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08", "start": 0, "type": "Literal", @@ -3225,6 +3620,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3236,6 +3632,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3246,9 +3643,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3259,6 +3658,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3271,6 +3671,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3278,6 +3679,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3293,9 +3695,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3306,6 +3710,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3318,6 +3723,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3326,13 +3732,16 @@ description: Result of parsing ball-joint-rod-end.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3343,25 +3752,30 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3372,12 +3786,14 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3385,6 +3801,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3395,9 +3812,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3408,19 +3827,23 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3431,6 +3854,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3439,12 +3863,14 @@ description: Result of parsing ball-joint-rod-end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3458,6 +3884,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3474,11 +3901,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3491,6 +3920,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyRevolve", "start": 0, "type": "Identifier" @@ -3502,6 +3932,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3509,6 +3940,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -3524,6 +3956,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3532,9 +3965,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -3550,9 +3985,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -3563,6 +4000,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3570,9 +4008,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyRevolveProfile", "start": 0, "type": "Identifier" @@ -3583,11 +4023,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3600,18 +4042,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodySketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3622,6 +4068,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3630,9 +4077,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -3644,17 +4093,20 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3672,6 +4124,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyProfile", "start": 0, "type": "Identifier" @@ -3685,6 +4138,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3695,6 +4149,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3712,9 +4167,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distanceBetweenEyeAndShaftEnd", "start": 0, "type": "Identifier" @@ -3726,15 +4183,18 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3750,6 +4210,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3760,9 +4221,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3773,6 +4236,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3780,9 +4244,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodySketch", "start": 0, "type": "Identifier" @@ -3800,6 +4266,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3811,9 +4278,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flatsWidth", "start": 0, "type": "Identifier" @@ -3823,10 +4292,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3846,9 +4317,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3859,6 +4332,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3871,6 +4345,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3886,9 +4361,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectPoint", "start": 0, "type": "Identifier" @@ -3900,15 +4377,18 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -3922,10 +4402,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11", "start": 0, "type": "Literal", @@ -3945,6 +4427,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3952,6 +4435,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3963,9 +4447,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3976,6 +4462,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3988,6 +4475,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3995,6 +4483,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4006,6 +4495,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4017,9 +4507,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tapperInAng", "start": 0, "type": "Identifier" @@ -4029,10 +4521,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4052,6 +4546,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -4063,9 +4558,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingThicknessHalf", "start": 0, "type": "Identifier" @@ -4075,10 +4572,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -4098,9 +4597,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4111,6 +4612,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4123,6 +4625,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4130,6 +4633,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4145,6 +4649,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4152,6 +4657,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4163,9 +4669,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4176,6 +4684,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4188,6 +4697,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4200,9 +4710,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "housingThicknessHalf", "start": 0, "type": "Identifier" @@ -4214,15 +4726,18 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -4242,9 +4757,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4255,6 +4772,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4267,19 +4785,23 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4290,6 +4812,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4297,9 +4820,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -4312,6 +4837,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4323,6 +4849,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4330,6 +4857,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4341,9 +4869,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4354,6 +4884,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4366,6 +4897,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4374,9 +4906,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tapperInAng", "start": 0, "type": "Identifier" @@ -4392,6 +4926,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -4404,9 +4939,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flatsWidth", "start": 0, "type": "Identifier" @@ -4418,15 +4955,18 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4446,6 +4986,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4453,6 +4994,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4464,9 +5006,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4477,6 +5021,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4489,19 +5034,23 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4512,6 +5061,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4519,9 +5069,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "longflats", "start": 0, "type": "Identifier" @@ -4534,6 +5086,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4545,9 +5098,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4558,6 +5113,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4570,6 +5126,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4578,13 +5135,16 @@ description: Result of parsing ball-joint-rod-end.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4595,25 +5155,30 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4624,12 +5189,14 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4637,6 +5204,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4647,9 +5215,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4660,19 +5230,23 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4683,6 +5257,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4691,15 +5266,18 @@ description: Result of parsing ball-joint-rod-end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4712,6 +5290,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyFlats", "start": 0, "type": "Identifier" @@ -4725,6 +5304,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4732,6 +5312,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -4747,9 +5328,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4760,6 +5343,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4767,9 +5351,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyProfile", "start": 0, "type": "Identifier" @@ -4787,6 +5373,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -4794,6 +5381,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -4809,6 +5397,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -4816,6 +5405,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4831,6 +5421,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -4838,6 +5429,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4853,9 +5445,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -4866,6 +5460,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4878,6 +5473,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4885,6 +5481,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -4900,6 +5497,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -4914,6 +5512,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -4925,9 +5524,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -4941,9 +5542,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -4955,6 +5558,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4965,9 +5569,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -4978,6 +5584,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4985,6 +5592,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4995,9 +5603,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -5008,6 +5618,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5020,6 +5631,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5027,6 +5639,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -5042,6 +5655,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -5056,6 +5670,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -5067,9 +5682,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -5083,9 +5700,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -5097,6 +5716,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5107,9 +5727,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -5120,6 +5742,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5127,6 +5750,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5137,9 +5761,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -5150,6 +5776,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5158,15 +5785,18 @@ description: Result of parsing ball-joint-rod-end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5179,18 +5809,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solid001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersect", "start": 0, "type": "Identifier" @@ -5201,6 +5835,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5211,9 +5846,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyRevolve", "start": 0, "type": "Identifier" @@ -5227,9 +5864,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedShaftBodyFlats", "start": 0, "type": "Identifier" @@ -5241,16 +5880,19 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5263,18 +5905,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5285,6 +5931,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5293,9 +5940,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -5307,17 +5956,20 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5330,6 +5982,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile005", "start": 0, "type": "Identifier" @@ -5341,6 +5994,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5351,6 +6005,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5363,6 +6018,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5374,6 +6030,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5384,6 +6041,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5395,9 +6053,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballRadius", "start": 0, "type": "Identifier" @@ -5407,10 +6067,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5430,9 +6092,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5443,6 +6107,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5450,9 +6115,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" @@ -5463,11 +6130,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5480,6 +6149,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -5493,6 +6163,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5500,6 +6171,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -5515,9 +6187,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5528,6 +6202,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5535,9 +6210,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile005", "start": 0, "type": "Identifier" @@ -5555,6 +6232,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -5562,6 +6240,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5577,6 +6256,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -5585,6 +6265,7 @@ description: Result of parsing ball-joint-rod-end.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -5596,6 +6277,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5607,6 +6289,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -5614,6 +6297,7 @@ description: Result of parsing ball-joint-rod-end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5629,9 +6313,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5642,6 +6328,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5650,15 +6337,18 @@ description: Result of parsing ball-joint-rod-end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5671,6 +6361,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solid002", "start": 0, "type": "Identifier" @@ -5682,6 +6373,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -5693,9 +6385,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -5707,6 +6401,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5717,9 +6412,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -5730,6 +6427,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5740,9 +6438,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solid001", "start": 0, "type": "Identifier" @@ -5754,16 +6454,19 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5776,18 +6479,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solid003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -5798,6 +6505,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5808,9 +6516,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solid002", "start": 0, "type": "Identifier" @@ -5824,9 +6534,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retainingLoopRevolve", "start": 0, "type": "Identifier" @@ -5838,16 +6550,19 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Join the thread body with the retaining loop for the balljoint" ], @@ -5863,6 +6578,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -5874,6 +6590,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5886,9 +6603,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distanceBetweenEyeAndShaftEnd", "start": 0, "type": "Identifier" @@ -5900,15 +6619,18 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5928,9 +6650,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5941,6 +6665,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5948,9 +6673,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -5961,11 +6688,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5978,18 +6707,22 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6000,6 +6733,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6007,9 +6741,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -6020,11 +6756,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6037,6 +6775,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -6048,6 +6787,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6058,6 +6798,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6070,6 +6811,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6081,6 +6823,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6091,6 +6834,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6102,9 +6846,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDForM8Tap", "start": 0, "type": "Identifier" @@ -6114,10 +6860,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6137,9 +6885,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6150,6 +6900,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6157,9 +6908,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -6170,11 +6923,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6187,6 +6942,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedRodHole", "start": 0, "type": "Identifier" @@ -6198,6 +6954,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6209,9 +6966,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holdDepth", "start": 0, "type": "Identifier" @@ -6221,10 +6980,12 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6244,9 +7005,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6257,6 +7020,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6264,9 +7028,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -6277,11 +7043,13 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6294,6 +7062,7 @@ description: Result of parsing ball-joint-rod-end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solid004", "start": 0, "type": "Identifier" @@ -6305,6 +7074,7 @@ description: Result of parsing ball-joint-rod-end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -6316,9 +7086,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedRodHole", "start": 0, "type": "Identifier" @@ -6330,6 +7102,7 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6340,9 +7113,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -6353,6 +7128,7 @@ description: Result of parsing ball-joint-rod-end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6363,9 +7139,11 @@ description: Result of parsing ball-joint-rod-end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solid003", "start": 0, "type": "Identifier" @@ -6377,16 +7155,19 @@ description: Result of parsing ball-joint-rod-end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6403,9 +7184,11 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -6424,19 +7207,23 @@ description: Result of parsing ball-joint-rod-end.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -6453,15 +7240,18 @@ description: Result of parsing ball-joint-rod-end.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -6477,12 +7267,14 @@ description: Result of parsing ball-joint-rod-end.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "17": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6494,6 +7286,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6505,6 +7298,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6516,6 +7310,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6528,6 +7323,7 @@ description: Result of parsing ball-joint-rod-end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/program_memory.snap index 2b3fb8822..802124cc2 100644 --- a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/program_memory.snap @@ -1500,6 +1500,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -1513,6 +1514,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -1550,6 +1552,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -1575,6 +1578,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -1764,6 +1768,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -1777,6 +1782,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -1814,6 +1820,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -1839,6 +1846,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -2028,6 +2036,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -2041,6 +2050,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -2078,6 +2088,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -2103,6 +2114,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -2292,6 +2304,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -2305,6 +2318,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -2342,6 +2356,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -2367,6 +2382,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -2684,6 +2700,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3423, "end": 3433, + "moduleId": 0, "start": 3423, "type": "TagDeclarator", "value": "longflats" @@ -2697,6 +2714,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3457, "end": 3463, + "moduleId": 0, "start": 3457, "type": "TagDeclarator", "value": "seg01" @@ -2710,6 +2728,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3568, "end": 3574, + "moduleId": 0, "start": 3568, "type": "TagDeclarator", "value": "seg02" @@ -2730,6 +2749,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3673, "end": 3679, + "moduleId": 0, "start": 3673, "type": "TagDeclarator", "value": "seg03" @@ -2743,6 +2763,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3756, "end": 3762, + "moduleId": 0, "start": 3756, "type": "TagDeclarator", "value": "seg04" @@ -2799,6 +2820,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3423, "end": 3433, + "moduleId": 0, "start": 3423, "type": "TagDeclarator", "value": "longflats" @@ -2824,6 +2846,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3457, "end": 3463, + "moduleId": 0, "start": 3457, "type": "TagDeclarator", "value": "seg01" @@ -2849,6 +2872,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3568, "end": 3574, + "moduleId": 0, "start": 3568, "type": "TagDeclarator", "value": "seg02" @@ -2893,6 +2917,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3673, "end": 3679, + "moduleId": 0, "start": 3673, "type": "TagDeclarator", "value": "seg03" @@ -2918,6 +2943,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3756, "end": 3762, + "moduleId": 0, "start": 3756, "type": "TagDeclarator", "value": "seg04" @@ -3149,6 +3175,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3423, "end": 3433, + "moduleId": 0, "start": 3423, "type": "TagDeclarator", "value": "longflats" @@ -3174,6 +3201,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3457, "end": 3463, + "moduleId": 0, "start": 3457, "type": "TagDeclarator", "value": "seg01" @@ -3199,6 +3227,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3568, "end": 3574, + "moduleId": 0, "start": 3568, "type": "TagDeclarator", "value": "seg02" @@ -3243,6 +3272,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3673, "end": 3679, + "moduleId": 0, "start": 3673, "type": "TagDeclarator", "value": "seg03" @@ -3268,6 +3298,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 3756, "end": 3762, + "moduleId": 0, "start": 3756, "type": "TagDeclarator", "value": "seg04" @@ -3430,6 +3461,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -3443,6 +3475,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -3480,6 +3513,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -3505,6 +3539,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" @@ -3698,6 +3733,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2631, "end": 2637, + "moduleId": 0, "start": 2631, "type": "TagDeclarator", "value": "seg05" @@ -3723,6 +3759,7 @@ description: Variables in memory after executing ball-joint-rod-end.kcl "tag": { "commentStart": 2719, "end": 2724, + "moduleId": 0, "start": 2719, "type": "TagDeclarator", "value": "kink" diff --git a/rust/kcl-lib/tests/kcl_samples/bench/ast.snap b/rust/kcl-lib/tests/kcl_samples/bench/ast.snap index 040072c94..931faf39f 100644 --- a/rust/kcl-lib/tests/kcl_samples/bench/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/bench/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing bench.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing bench.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "56", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing bench.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define the bench length" ], @@ -44,6 +48,7 @@ description: Result of parsing bench.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "bench-parts.kcl" @@ -60,9 +65,11 @@ description: Result of parsing bench.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dividerThickness", "start": 0, "type": "Identifier" @@ -79,6 +86,7 @@ description: Result of parsing bench.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "bench-parts.kcl" @@ -90,9 +98,11 @@ description: Result of parsing bench.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divider", "start": 0, "type": "Identifier" @@ -109,6 +119,7 @@ description: Result of parsing bench.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "bench-parts.kcl" @@ -120,9 +131,11 @@ description: Result of parsing bench.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connector", "start": 0, "type": "Identifier" @@ -139,6 +152,7 @@ description: Result of parsing bench.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "bench-parts.kcl" @@ -150,9 +164,11 @@ description: Result of parsing bench.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seatSlats", "start": 0, "type": "Identifier" @@ -169,6 +185,7 @@ description: Result of parsing bench.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "bench-parts.kcl" @@ -180,9 +197,11 @@ description: Result of parsing bench.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "backSlats", "start": 0, "type": "Identifier" @@ -199,6 +218,7 @@ description: Result of parsing bench.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "bench-parts.kcl" @@ -210,9 +230,11 @@ description: Result of parsing bench.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armRest", "start": 0, "type": "Identifier" @@ -230,13 +252,16 @@ description: Result of parsing bench.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divider", "start": 0, "type": "Identifier" @@ -247,6 +272,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -254,9 +280,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -267,6 +295,7 @@ description: Result of parsing bench.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -280,13 +309,16 @@ description: Result of parsing bench.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divider", "start": 0, "type": "Identifier" @@ -297,6 +329,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -307,6 +340,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -318,9 +352,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -330,10 +366,12 @@ description: Result of parsing bench.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -353,9 +391,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -366,6 +406,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -373,9 +414,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -387,6 +430,7 @@ description: Result of parsing bench.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -395,13 +439,16 @@ description: Result of parsing bench.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divider", "start": 0, "type": "Identifier" @@ -412,6 +459,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -422,6 +470,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -434,9 +483,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -448,15 +499,18 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -476,9 +530,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -489,6 +545,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -496,9 +553,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -510,6 +569,7 @@ description: Result of parsing bench.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -524,6 +584,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -532,9 +593,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -550,9 +613,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connector", "start": 0, "type": "Identifier" @@ -563,6 +628,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -573,6 +639,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -585,9 +652,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -599,15 +668,18 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -627,9 +699,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -640,6 +714,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -647,9 +722,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -661,6 +738,7 @@ description: Result of parsing bench.kcl } } }, + "moduleId": 0, "preComments": [ "", "", @@ -680,6 +758,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -691,9 +770,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -703,14 +784,17 @@ description: Result of parsing bench.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dividerThickness", "start": 0, "type": "Identifier" @@ -730,9 +814,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seatSlats", "start": 0, "type": "Identifier" @@ -743,6 +829,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -753,6 +840,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -768,9 +856,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -782,15 +872,18 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -804,6 +897,7 @@ description: Result of parsing bench.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -812,9 +906,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dividerThickness", "start": 0, "type": "Identifier" @@ -824,10 +920,12 @@ description: Result of parsing bench.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -851,9 +949,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -864,6 +964,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -871,9 +972,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -885,6 +988,7 @@ description: Result of parsing bench.kcl } } }, + "moduleId": 0, "preComments": [ "", "", @@ -904,6 +1008,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -915,9 +1020,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -927,14 +1034,17 @@ description: Result of parsing bench.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dividerThickness", "start": 0, "type": "Identifier" @@ -954,9 +1064,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "backSlats", "start": 0, "type": "Identifier" @@ -967,6 +1079,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -977,6 +1090,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -992,9 +1106,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -1006,15 +1122,18 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1028,6 +1147,7 @@ description: Result of parsing bench.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1036,9 +1156,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dividerThickness", "start": 0, "type": "Identifier" @@ -1048,10 +1170,12 @@ description: Result of parsing bench.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1075,9 +1199,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1088,6 +1214,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1095,9 +1222,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1109,6 +1238,7 @@ description: Result of parsing bench.kcl } } }, + "moduleId": 0, "preComments": [ "", "", @@ -1128,6 +1258,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1139,9 +1270,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -1151,10 +1284,12 @@ description: Result of parsing bench.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1174,9 +1309,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armRest", "start": 0, "type": "Identifier" @@ -1187,6 +1324,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1194,9 +1332,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1207,6 +1347,7 @@ description: Result of parsing bench.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -1226,6 +1367,7 @@ description: Result of parsing bench.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1238,9 +1380,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "benchLength", "start": 0, "type": "Identifier" @@ -1252,15 +1396,18 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1280,9 +1427,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armRest", "start": 0, "type": "Identifier" @@ -1293,6 +1442,7 @@ description: Result of parsing bench.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1300,9 +1450,11 @@ description: Result of parsing bench.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1313,6 +1465,7 @@ description: Result of parsing bench.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1324,9 +1477,11 @@ description: Result of parsing bench.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1345,19 +1500,23 @@ description: Result of parsing bench.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -1374,15 +1533,18 @@ description: Result of parsing bench.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1398,12 +1560,14 @@ description: Result of parsing bench.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/bone-plate/ast.snap b/rust/kcl-lib/tests/kcl_samples/bone-plate/ast.snap index 21591c649..77723ae38 100644 --- a/rust/kcl-lib/tests/kcl_samples/bone-plate/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/bone-plate/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing bone-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSize", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing bone-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.5", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing bone-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing bone-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateRevolve", "start": 0, "type": "Identifier" @@ -56,13 +61,16 @@ description: Result of parsing bone-plate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -73,6 +81,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -80,9 +89,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -100,6 +111,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -110,6 +122,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.9", "start": 0, "type": "Literal", @@ -122,6 +135,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -133,6 +147,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -143,9 +158,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -156,6 +173,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -168,6 +186,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -175,6 +194,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -190,6 +210,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -197,6 +218,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "176", "start": 0, "type": "Literal", @@ -212,6 +234,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -219,6 +242,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -234,9 +258,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -247,6 +273,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -259,6 +286,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -267,6 +295,7 @@ description: Result of parsing bone-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -278,6 +307,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -289,6 +319,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -296,6 +327,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "54", "start": 0, "type": "Literal", @@ -311,6 +343,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -318,6 +351,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -333,9 +367,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -346,6 +382,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -358,6 +395,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -365,6 +403,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -380,6 +419,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -387,6 +427,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "176", "start": 0, "type": "Literal", @@ -402,6 +443,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -409,6 +451,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -424,9 +467,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -437,6 +482,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -449,6 +495,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -457,6 +504,7 @@ description: Result of parsing bone-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -468,6 +516,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -479,6 +528,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -486,6 +536,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "54", "start": 0, "type": "Literal", @@ -501,6 +552,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -508,6 +560,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -523,9 +576,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -536,6 +591,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -548,6 +604,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -555,6 +612,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -570,6 +628,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -577,6 +636,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "176", "start": 0, "type": "Literal", @@ -592,6 +652,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -599,6 +660,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -614,9 +676,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -627,6 +691,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -639,6 +704,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -647,6 +713,7 @@ description: Result of parsing bone-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -658,6 +725,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -669,6 +737,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -676,6 +745,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "54", "start": 0, "type": "Literal", @@ -691,6 +761,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -698,6 +769,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -713,9 +785,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -726,6 +800,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -738,6 +813,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -745,6 +821,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -760,6 +837,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -767,6 +845,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "174", "start": 0, "type": "Literal", @@ -782,6 +861,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -789,6 +869,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "170", "start": 0, "type": "Literal", @@ -804,9 +885,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -817,6 +900,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -829,6 +913,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -839,6 +924,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41.8", "start": 0, "type": "Literal", @@ -851,6 +937,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "91.88", "start": 0, "type": "Literal", @@ -862,6 +949,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -872,9 +960,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -885,6 +975,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -897,6 +988,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -907,6 +999,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "56.92", "start": 0, "type": "Literal", @@ -919,6 +1012,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "117.08", "start": 0, "type": "Literal", @@ -930,6 +1024,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -940,6 +1035,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -947,6 +1043,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -958,9 +1055,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -971,6 +1070,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -983,18 +1083,22 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -1005,6 +1109,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1012,9 +1117,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1031,6 +1138,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1038,6 +1146,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.16", "start": 0, "type": "Literal", @@ -1053,9 +1162,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1066,6 +1177,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1078,6 +1190,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1088,6 +1201,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60.93", "start": 0, "type": "Literal", @@ -1100,6 +1214,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "140.44", "start": 0, "type": "Literal", @@ -1111,6 +1226,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1121,6 +1237,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1128,6 +1245,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1139,9 +1257,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1152,6 +1272,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1164,18 +1285,22 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -1186,6 +1311,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1193,9 +1319,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1212,6 +1340,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1219,6 +1348,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.65", "start": 0, "type": "Literal", @@ -1234,9 +1364,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1247,6 +1379,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1259,6 +1392,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1269,6 +1403,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "48.35", "start": 0, "type": "Literal", @@ -1281,6 +1416,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "85.53", "start": 0, "type": "Literal", @@ -1292,6 +1428,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1302,9 +1439,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1315,6 +1454,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1327,6 +1467,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1337,6 +1478,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35.2", "start": 0, "type": "Literal", @@ -1349,6 +1491,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "67.73", "start": 0, "type": "Literal", @@ -1360,6 +1503,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1370,6 +1514,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1377,6 +1522,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1388,9 +1534,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1401,6 +1549,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1413,18 +1562,22 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -1435,6 +1588,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1442,9 +1596,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1461,6 +1617,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1468,6 +1625,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "49.06", "start": 0, "type": "Literal", @@ -1483,9 +1641,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1496,6 +1656,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1508,6 +1669,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1516,13 +1678,16 @@ description: Result of parsing bone-plate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1533,25 +1698,30 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1562,12 +1732,14 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1575,6 +1747,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1585,9 +1758,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1598,19 +1773,23 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1621,6 +1800,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1633,6 +1813,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1641,9 +1822,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -1659,6 +1842,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1666,6 +1850,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "65", "start": 0, "type": "Literal", @@ -1681,6 +1866,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -1688,6 +1874,7 @@ description: Result of parsing bone-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1700,9 +1887,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1713,6 +1902,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1721,12 +1911,14 @@ description: Result of parsing bone-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "19": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1743,11 +1935,13 @@ description: Result of parsing bone-plate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1765,6 +1959,7 @@ description: Result of parsing bone-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeFn", "start": 0, "type": "Identifier" @@ -1776,13 +1971,16 @@ description: Result of parsing bone-plate.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1793,6 +1991,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1800,9 +1999,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -1820,6 +2021,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1828,9 +2030,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1846,6 +2050,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -1854,9 +2059,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSize", "start": 0, "type": "Identifier" @@ -1872,9 +2079,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1885,6 +2094,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1897,6 +2107,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1905,6 +2116,7 @@ description: Result of parsing bone-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -1916,6 +2128,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1927,9 +2140,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1940,6 +2155,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1948,12 +2164,14 @@ description: Result of parsing bone-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1961,16 +2179,19 @@ description: Result of parsing bone-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1982,11 +2203,13 @@ description: Result of parsing bone-plate.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1999,6 +2222,7 @@ description: Result of parsing bone-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeCenters", "start": 0, "type": "Identifier" @@ -2012,6 +2236,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2024,6 +2249,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.25", "start": 0, "type": "Literal", @@ -2035,6 +2261,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2045,6 +2272,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2057,6 +2285,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "29.5", "start": 0, "type": "Literal", @@ -2068,6 +2297,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2078,6 +2308,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2090,6 +2321,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "46.25", "start": 0, "type": "Literal", @@ -2101,6 +2333,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2111,6 +2344,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2123,6 +2357,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "77", "start": 0, "type": "Literal", @@ -2134,6 +2369,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2144,6 +2380,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2156,6 +2393,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -2167,6 +2405,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2177,6 +2416,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2189,6 +2429,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "130", "start": 0, "type": "Literal", @@ -2200,6 +2441,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2211,6 +2453,7 @@ description: Result of parsing bone-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -2222,6 +2465,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2230,6 +2474,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "130", "start": 0, "type": "Literal", @@ -2241,6 +2486,7 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2251,6 +2497,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -2263,6 +2510,7 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "130", "start": 0, "type": "Literal", @@ -2274,21 +2522,25 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2306,6 +2558,7 @@ description: Result of parsing bone-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holes", "start": 0, "type": "Identifier" @@ -2317,6 +2570,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2325,9 +2579,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeFn", "start": 0, "type": "Identifier" @@ -2343,9 +2599,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "map", "start": 0, "type": "Identifier" @@ -2356,6 +2614,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2363,9 +2622,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeCenters", "start": 0, "type": "Identifier" @@ -2376,11 +2637,13 @@ description: Result of parsing bone-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2398,6 +2661,7 @@ description: Result of parsing bone-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solid", "start": 0, "type": "Identifier" @@ -2409,6 +2673,7 @@ description: Result of parsing bone-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -2417,9 +2682,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holes", "start": 0, "type": "Identifier" @@ -2435,9 +2702,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -2448,6 +2717,7 @@ description: Result of parsing bone-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2458,9 +2728,11 @@ description: Result of parsing bone-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateRevolve", "start": 0, "type": "Identifier" @@ -2472,16 +2744,19 @@ description: Result of parsing bone-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2498,9 +2773,11 @@ description: Result of parsing bone-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2519,19 +2796,23 @@ description: Result of parsing bone-plate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -2547,12 +2828,14 @@ description: Result of parsing bone-plate.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/bone-plate/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/bone-plate/program_memory.snap index e571c1a38..b6c08e861 100644 --- a/rust/kcl-lib/tests/kcl_samples/bone-plate/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/bone-plate/program_memory.snap @@ -1212,6 +1212,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1064, "end": 1070, + "moduleId": 0, "start": 1064, "type": "TagDeclarator", "value": "seg01" @@ -1232,6 +1233,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1189, "end": 1195, + "moduleId": 0, "start": 1189, "type": "TagDeclarator", "value": "seg02" @@ -1259,6 +1261,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1361, "end": 1367, + "moduleId": 0, "start": 1361, "type": "TagDeclarator", "value": "seg03" @@ -1500,6 +1503,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1064, "end": 1070, + "moduleId": 0, "start": 1064, "type": "TagDeclarator", "value": "seg01" @@ -1549,6 +1553,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1189, "end": 1195, + "moduleId": 0, "start": 1189, "type": "TagDeclarator", "value": "seg02" @@ -1622,6 +1627,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1361, "end": 1367, + "moduleId": 0, "start": 1361, "type": "TagDeclarator", "value": "seg03" @@ -1855,6 +1861,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1064, "end": 1070, + "moduleId": 0, "start": 1064, "type": "TagDeclarator", "value": "seg01" @@ -1875,6 +1882,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1189, "end": 1195, + "moduleId": 0, "start": 1189, "type": "TagDeclarator", "value": "seg02" @@ -1902,6 +1910,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1361, "end": 1367, + "moduleId": 0, "start": 1361, "type": "TagDeclarator", "value": "seg03" @@ -2143,6 +2152,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1064, "end": 1070, + "moduleId": 0, "start": 1064, "type": "TagDeclarator", "value": "seg01" @@ -2192,6 +2202,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1189, "end": 1195, + "moduleId": 0, "start": 1189, "type": "TagDeclarator", "value": "seg02" @@ -2265,6 +2276,7 @@ description: Variables in memory after executing bone-plate.kcl "tag": { "commentStart": 1361, "end": 1367, + "moduleId": 0, "start": 1361, "type": "TagDeclarator", "value": "seg03" diff --git a/rust/kcl-lib/tests/kcl_samples/bottle/ast.snap b/rust/kcl-lib/tests/kcl_samples/bottle/ast.snap index 37c8e5712..823529639 100644 --- a/rust/kcl-lib/tests/kcl_samples/bottle/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/bottle/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing bottle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleWidth", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing bottle.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing bottle.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Input dimensions to define the bottle" ], @@ -49,6 +53,7 @@ description: Result of parsing bottle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleLength", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing bottle.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "125", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing bottle.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing bottle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleHeight", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing bottle.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "220", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing bottle.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing bottle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "neckDepth", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing bottle.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing bottle.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing bottle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "neckDiameter", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing bottle.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing bottle.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing bottle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing bottle.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing bottle.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing bottle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleBody", "start": 0, "type": "Identifier" @@ -221,13 +246,16 @@ description: Result of parsing bottle.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -238,6 +266,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -245,9 +274,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -265,6 +296,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -280,9 +312,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleLength", "start": 0, "type": "Identifier" @@ -294,15 +328,18 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -319,6 +356,7 @@ description: Result of parsing bottle.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -330,6 +368,7 @@ description: Result of parsing bottle.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -340,9 +379,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -353,6 +394,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -365,6 +407,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -376,9 +419,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleWidth", "start": 0, "type": "Identifier" @@ -388,10 +433,12 @@ description: Result of parsing bottle.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -411,9 +458,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -424,6 +473,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -436,6 +486,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -450,9 +501,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleLength", "start": 0, "type": "Identifier" @@ -462,10 +515,12 @@ description: Result of parsing bottle.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -486,9 +541,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleWidth", "start": 0, "type": "Identifier" @@ -498,10 +555,12 @@ description: Result of parsing bottle.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -517,6 +576,7 @@ description: Result of parsing bottle.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -527,6 +587,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -537,6 +598,7 @@ description: Result of parsing bottle.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -553,9 +615,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleWidth", "start": 0, "type": "Identifier" @@ -565,10 +629,12 @@ description: Result of parsing bottle.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -584,6 +650,7 @@ description: Result of parsing bottle.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -594,9 +661,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -607,6 +676,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -619,6 +689,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -626,6 +697,7 @@ description: Result of parsing bottle.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -641,9 +713,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -654,6 +728,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -666,6 +741,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -674,9 +750,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -692,9 +770,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -705,19 +785,23 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -728,6 +812,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -740,6 +825,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -751,9 +837,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleHeight", "start": 0, "type": "Identifier" @@ -763,14 +851,17 @@ description: Result of parsing bottle.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "neckDepth", "start": 0, "type": "Identifier" @@ -790,9 +881,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -803,6 +896,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -811,12 +905,14 @@ description: Result of parsing bottle.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -833,11 +929,13 @@ description: Result of parsing bottle.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -855,6 +953,7 @@ description: Result of parsing bottle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleNeck", "start": 0, "type": "Identifier" @@ -868,6 +967,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -876,9 +976,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -894,9 +996,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -907,6 +1011,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -914,9 +1019,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleBody", "start": 0, "type": "Identifier" @@ -934,6 +1041,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -944,6 +1052,7 @@ description: Result of parsing bottle.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -956,6 +1065,7 @@ description: Result of parsing bottle.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -967,6 +1077,7 @@ description: Result of parsing bottle.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -977,6 +1088,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -988,9 +1100,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "neckDiameter", "start": 0, "type": "Identifier" @@ -1000,10 +1114,12 @@ description: Result of parsing bottle.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1023,9 +1139,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1036,6 +1154,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1048,6 +1167,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1056,9 +1176,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "neckDepth", "start": 0, "type": "Identifier" @@ -1074,9 +1196,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1087,6 +1211,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1095,12 +1220,14 @@ description: Result of parsing bottle.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1117,11 +1244,13 @@ description: Result of parsing bottle.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1134,6 +1263,7 @@ description: Result of parsing bottle.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleShell", "start": 0, "type": "Identifier" @@ -1147,6 +1277,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -1158,9 +1289,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1172,6 +1305,7 @@ description: Result of parsing bottle.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1182,6 +1316,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1190,9 +1325,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1208,9 +1345,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shell", "start": 0, "type": "Identifier" @@ -1221,6 +1360,7 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1228,9 +1368,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottleNeck", "start": 0, "type": "Identifier" @@ -1248,6 +1390,7 @@ description: Result of parsing bottle.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1255,6 +1398,7 @@ description: Result of parsing bottle.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#0078c2\"", "start": 0, "type": "Literal", @@ -1267,9 +1411,11 @@ description: Result of parsing bottle.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -1280,12 +1426,14 @@ description: Result of parsing bottle.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1294,15 +1442,18 @@ description: Result of parsing bottle.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1314,9 +1465,11 @@ description: Result of parsing bottle.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1335,19 +1488,23 @@ description: Result of parsing bottle.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -1364,15 +1521,18 @@ description: Result of parsing bottle.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1388,12 +1548,14 @@ description: Result of parsing bottle.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/bracket/ast.snap b/rust/kcl-lib/tests/kcl_samples/bracket/ast.snap index deee1685d..0df19e2e1 100644 --- a/rust/kcl-lib/tests/kcl_samples/bracket/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/bracket/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sigmaAllow", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35000", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.0", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "300", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fos", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountLength", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.0", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountLength", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.25", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfDepth", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".50", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".625", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +349,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moment", "start": 0, "type": "Identifier" @@ -324,9 +361,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfDepth", "start": 0, "type": "Identifier" @@ -336,14 +375,17 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -357,11 +399,13 @@ description: Result of parsing bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -379,18 +423,22 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -401,6 +449,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -417,9 +466,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moment", "start": 0, "type": "Identifier" @@ -429,14 +480,17 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fos", "start": 0, "type": "Identifier" @@ -450,10 +504,12 @@ description: Result of parsing bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -467,6 +523,7 @@ description: Result of parsing bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -475,9 +532,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sigmaAllow", "start": 0, "type": "Identifier" @@ -487,14 +546,17 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -513,11 +575,13 @@ description: Result of parsing bracket.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -530,6 +594,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -537,6 +602,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -546,11 +612,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -563,6 +631,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extBendRadius", "start": 0, "type": "Identifier" @@ -574,9 +643,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -586,14 +657,17 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -607,11 +681,13 @@ description: Result of parsing bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -624,6 +700,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -631,6 +708,7 @@ description: Result of parsing bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".5", "start": 0, "type": "Literal", @@ -640,11 +718,13 @@ description: Result of parsing bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -657,6 +737,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -668,9 +749,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -680,10 +763,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -697,11 +782,13 @@ description: Result of parsing bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -714,6 +801,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -725,9 +813,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -737,10 +827,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -754,11 +846,13 @@ description: Result of parsing bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -773,6 +867,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThanOrEqual", "start": 0, "type": "Identifier" @@ -784,9 +879,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -796,10 +893,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -819,6 +918,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -826,6 +926,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"Holes not possible. Either decrease hole diameter or increase wallMountLength\"", "start": 0, "type": "Literal", @@ -838,9 +939,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -851,6 +954,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -858,9 +962,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountLength", "start": 0, "type": "Identifier" @@ -871,6 +977,7 @@ description: Result of parsing bracket.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -890,6 +997,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThanOrEqual", "start": 0, "type": "Identifier" @@ -901,9 +1009,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -913,10 +1023,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.5", "start": 0, "type": "Literal", @@ -936,6 +1048,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -943,6 +1056,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"wallMountLength must be longer for hole sizes to work. Either decrease mounting hole diameters or increase shelfMountLength\"", "start": 0, "type": "Literal", @@ -955,9 +1069,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -968,6 +1084,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -975,9 +1092,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountLength", "start": 0, "type": "Identifier" @@ -988,6 +1107,7 @@ description: Result of parsing bracket.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1002,6 +1122,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThanOrEqual", "start": 0, "type": "Identifier" @@ -1013,9 +1134,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -1025,10 +1148,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.5", "start": 0, "type": "Literal", @@ -1048,6 +1173,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -1055,6 +1181,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"Holes not possible. Either decrease hole diameter or increase width\"", "start": 0, "type": "Literal", @@ -1067,9 +1194,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -1080,6 +1209,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1087,9 +1217,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1100,6 +1232,7 @@ description: Result of parsing bracket.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1114,6 +1247,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThanOrEqual", "start": 0, "type": "Identifier" @@ -1125,9 +1259,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -1137,10 +1273,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.5", "start": 0, "type": "Literal", @@ -1160,6 +1298,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -1167,6 +1306,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"Holes not possible. Either decrease hole diameter or increase width\"", "start": 0, "type": "Literal", @@ -1179,9 +1319,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -1192,6 +1334,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1199,9 +1342,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1212,6 +1357,7 @@ description: Result of parsing bracket.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1224,6 +1370,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketBody", "start": 0, "type": "Identifier" @@ -1231,13 +1378,16 @@ description: Result of parsing bracket.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1248,6 +1398,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1255,9 +1406,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -1275,6 +1428,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1285,6 +1439,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1297,6 +1452,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1308,6 +1464,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1318,9 +1475,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1331,6 +1490,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1343,6 +1503,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1354,9 +1515,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountLength", "start": 0, "type": "Identifier" @@ -1366,14 +1529,17 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1393,6 +1559,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1400,6 +1567,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1411,9 +1579,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1424,6 +1594,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1436,6 +1607,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1444,9 +1616,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1462,6 +1636,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1469,6 +1644,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1480,9 +1656,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1493,6 +1671,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1505,6 +1684,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1514,9 +1694,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountLength", "start": 0, "type": "Identifier" @@ -1528,6 +1710,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1539,6 +1722,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1546,6 +1730,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1557,9 +1742,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1570,6 +1757,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1582,6 +1770,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1591,9 +1780,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountLength", "start": 0, "type": "Identifier" @@ -1605,6 +1796,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1616,6 +1808,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1623,6 +1816,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1634,9 +1828,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1647,6 +1843,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1659,6 +1856,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1667,9 +1865,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1685,6 +1885,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1692,6 +1893,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1703,9 +1905,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1716,6 +1920,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1728,6 +1933,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1736,13 +1942,16 @@ description: Result of parsing bracket.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1753,25 +1962,30 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1782,12 +1996,14 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1795,6 +2011,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1805,6 +2022,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1812,6 +2030,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1823,9 +2042,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1836,19 +2057,23 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1859,6 +2084,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1871,6 +2097,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1879,9 +2106,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1897,9 +2126,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1910,12 +2141,14 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1924,12 +2157,14 @@ description: Result of parsing bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1946,11 +2181,13 @@ description: Result of parsing bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1968,6 +2205,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHoles", "start": 0, "type": "Identifier" @@ -1981,6 +2219,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1989,9 +2228,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2007,9 +2248,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2020,6 +2263,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2027,9 +2271,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketBody", "start": 0, "type": "Identifier" @@ -2047,6 +2293,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2062,9 +2309,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -2074,14 +2323,17 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -2097,6 +2349,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2106,9 +2359,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -2120,6 +2375,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2130,6 +2386,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2141,9 +2398,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -2153,10 +2412,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2176,9 +2437,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2189,6 +2452,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2201,6 +2465,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2208,6 +2473,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2223,6 +2489,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2241,9 +2508,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extBendRadius", "start": 0, "type": "Identifier" @@ -2253,14 +2522,17 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -2276,19 +2548,23 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountLength", "start": 0, "type": "Identifier" @@ -2302,14 +2578,17 @@ description: Result of parsing bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -2329,6 +2608,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2340,6 +2620,7 @@ description: Result of parsing bracket.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2351,6 +2632,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2359,6 +2641,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2370,6 +2653,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2380,9 +2664,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -2393,6 +2679,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2405,6 +2692,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2412,6 +2700,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2427,6 +2716,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2438,9 +2728,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2450,6 +2742,7 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2458,9 +2751,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -2470,10 +2765,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2497,6 +2794,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2507,6 +2805,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2519,6 +2818,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2530,6 +2830,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2540,9 +2841,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -2553,6 +2856,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2565,6 +2869,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2577,9 +2882,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -2591,15 +2898,18 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".01", "start": 0, "type": "Literal", @@ -2619,9 +2929,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2632,12 +2944,14 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2646,12 +2960,14 @@ description: Result of parsing bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2668,11 +2984,13 @@ description: Result of parsing bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2685,6 +3003,7 @@ description: Result of parsing bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHoles", "start": 0, "type": "Identifier" @@ -2698,6 +3017,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2706,9 +3026,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -2724,9 +3046,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2737,6 +3061,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2744,9 +3069,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketBody", "start": 0, "type": "Identifier" @@ -2764,6 +3091,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2781,9 +3109,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountLength", "start": 0, "type": "Identifier" @@ -2793,14 +3123,17 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -2814,14 +3147,17 @@ description: Result of parsing bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -2839,9 +3175,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -2853,6 +3191,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2863,6 +3202,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2874,9 +3214,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHoleDiameter", "start": 0, "type": "Identifier" @@ -2886,10 +3228,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2909,9 +3253,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2922,6 +3268,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2934,6 +3281,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2941,6 +3289,7 @@ description: Result of parsing bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2956,6 +3305,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2967,9 +3317,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2979,6 +3331,7 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2987,9 +3340,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountingHolePlacementOffset", "start": 0, "type": "Identifier" @@ -2999,10 +3354,12 @@ description: Result of parsing bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3026,6 +3383,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3036,6 +3394,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3048,6 +3407,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3059,6 +3419,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3069,9 +3430,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -3082,6 +3445,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3094,6 +3458,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3106,9 +3471,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -3120,15 +3487,18 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -3148,9 +3518,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3161,12 +3533,14 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3175,12 +3549,14 @@ description: Result of parsing bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3197,11 +3573,13 @@ description: Result of parsing bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3216,6 +3594,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3224,9 +3603,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extBendRadius", "start": 0, "type": "Identifier" @@ -3242,6 +3623,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -3250,13 +3632,16 @@ description: Result of parsing bracket.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -3267,6 +3652,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3274,9 +3660,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -3289,6 +3677,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3299,9 +3688,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -3312,6 +3703,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3319,9 +3711,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketBody", "start": 0, "type": "Identifier" @@ -3332,6 +3726,7 @@ description: Result of parsing bracket.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3346,6 +3741,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3354,9 +3750,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -3372,6 +3770,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -3380,13 +3779,16 @@ description: Result of parsing bracket.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -3397,6 +3799,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3404,9 +3807,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg06", "start": 0, "type": "Identifier" @@ -3419,6 +3824,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3429,9 +3835,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -3442,6 +3850,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3449,9 +3858,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketBody", "start": 0, "type": "Identifier" @@ -3462,6 +3873,7 @@ description: Result of parsing bracket.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3476,6 +3888,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3484,9 +3897,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -3502,6 +3917,7 @@ description: Result of parsing bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -3513,9 +3929,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -3526,13 +3944,16 @@ description: Result of parsing bracket.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -3543,6 +3964,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3550,9 +3972,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -3567,9 +3991,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -3580,13 +4006,16 @@ description: Result of parsing bracket.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -3597,6 +4026,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3604,9 +4034,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -3619,6 +4051,7 @@ description: Result of parsing bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3629,9 +4062,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -3642,6 +4077,7 @@ description: Result of parsing bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3649,9 +4085,11 @@ description: Result of parsing bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketBody", "start": 0, "type": "Identifier" @@ -3662,6 +4100,7 @@ description: Result of parsing bracket.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -3678,9 +4117,11 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3699,19 +4140,23 @@ description: Result of parsing bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -3728,15 +4173,18 @@ description: Result of parsing bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3752,12 +4200,14 @@ description: Result of parsing bracket.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3771,6 +4221,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3784,6 +4235,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3797,6 +4249,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3810,6 +4263,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3823,6 +4277,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3837,6 +4292,7 @@ description: Result of parsing bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/bracket/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/bracket/program_memory.snap index e5df95d98..b3fcbffd9 100644 --- a/rust/kcl-lib/tests/kcl_samples/bracket/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/bracket/program_memory.snap @@ -30,6 +30,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -43,6 +44,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -56,6 +58,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -69,6 +72,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -82,6 +86,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -95,6 +100,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -118,6 +124,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -143,6 +150,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -168,6 +176,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -193,6 +202,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -218,6 +228,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -243,6 +254,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -593,6 +605,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -606,6 +619,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -619,6 +633,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -632,6 +647,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -645,6 +661,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -658,6 +675,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -681,6 +699,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -706,6 +725,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -731,6 +751,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -756,6 +777,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -781,6 +803,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -806,6 +829,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -1042,6 +1066,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -1055,6 +1080,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -1068,6 +1094,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -1081,6 +1108,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -1094,6 +1122,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -1107,6 +1136,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -1130,6 +1160,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -1155,6 +1186,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -1180,6 +1212,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -1205,6 +1238,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -1230,6 +1264,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -1255,6 +1290,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -1491,6 +1527,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -1504,6 +1541,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -1517,6 +1555,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -1530,6 +1569,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -1543,6 +1583,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -1556,6 +1597,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -1579,6 +1621,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -1604,6 +1647,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -1629,6 +1673,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -1654,6 +1699,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -1679,6 +1725,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -1704,6 +1751,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -1940,6 +1988,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -1953,6 +2002,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -1966,6 +2016,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -1979,6 +2030,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -1992,6 +2044,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -2005,6 +2058,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -2028,6 +2082,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -2053,6 +2108,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -2078,6 +2134,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -2103,6 +2160,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -2128,6 +2186,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -2153,6 +2212,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -2459,6 +2519,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -2472,6 +2533,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -2485,6 +2547,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -2498,6 +2561,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -2511,6 +2575,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -2524,6 +2589,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -2547,6 +2613,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -2572,6 +2639,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -2597,6 +2665,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -2622,6 +2691,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -2647,6 +2717,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -2672,6 +2743,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -2908,6 +2980,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -2921,6 +2994,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -2934,6 +3008,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -2947,6 +3022,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -2960,6 +3036,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -2973,6 +3050,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" @@ -2996,6 +3074,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2165, "end": 2171, + "moduleId": 0, "start": 2165, "type": "TagDeclarator", "value": "seg01" @@ -3021,6 +3100,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2210, "end": 2216, + "moduleId": 0, "start": 2210, "type": "TagDeclarator", "value": "seg02" @@ -3046,6 +3126,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2263, "end": 2269, + "moduleId": 0, "start": 2263, "type": "TagDeclarator", "value": "seg03" @@ -3071,6 +3152,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2315, "end": 2321, + "moduleId": 0, "start": 2315, "type": "TagDeclarator", "value": "seg04" @@ -3096,6 +3178,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2360, "end": 2366, + "moduleId": 0, "start": 2360, "type": "TagDeclarator", "value": "seg05" @@ -3121,6 +3204,7 @@ description: Variables in memory after executing bracket.kcl "tag": { "commentStart": 2436, "end": 2442, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "seg06" diff --git a/rust/kcl-lib/tests/kcl_samples/brake-rotor/ast.snap b/rust/kcl-lib/tests/kcl_samples/brake-rotor/ast.snap index f23532135..6dcf45609 100644 --- a/rust/kcl-lib/tests/kcl_samples/brake-rotor/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/brake-rotor/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDisc", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "320", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters." ], @@ -49,6 +53,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dPitchCircle", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "114.3", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dBore", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "64", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nStuds", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dStudDrilling", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.5", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurface", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalf", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tVent", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -285,6 +317,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wVent", "start": 0, "type": "Identifier" @@ -292,6 +325,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -301,11 +335,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -318,6 +354,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rVentFillet", "start": 0, "type": "Identifier" @@ -325,6 +362,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -334,11 +372,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -351,6 +391,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nVentBosses", "start": 0, "type": "Identifier" @@ -358,6 +399,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36", "start": 0, "type": "Literal", @@ -367,11 +409,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -384,6 +428,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDrillDia", "start": 0, "type": "Identifier" @@ -391,6 +436,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -400,11 +446,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -422,6 +470,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aBase", "start": 0, "type": "Identifier" @@ -429,6 +478,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -438,11 +488,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -455,6 +507,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aSweep", "start": 0, "type": "Identifier" @@ -462,6 +515,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -471,11 +525,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -488,6 +544,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nArcs", "start": 0, "type": "Identifier" @@ -495,6 +552,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -504,11 +562,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -521,6 +581,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aDraftBell", "start": 0, "type": "Identifier" @@ -528,6 +589,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -537,11 +599,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -559,6 +623,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tBell", "start": 0, "type": "Identifier" @@ -566,6 +631,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -575,11 +641,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -592,6 +660,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hBellAboveDiscFace", "start": 0, "type": "Identifier" @@ -599,6 +668,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -608,11 +678,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -625,6 +697,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hBellSubflush", "start": 0, "type": "Identifier" @@ -632,6 +705,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -641,11 +715,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -658,6 +734,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wUndercut", "start": 0, "type": "Identifier" @@ -665,6 +742,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -674,11 +752,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -691,6 +771,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "drillHole", "start": 0, "type": "Identifier" @@ -706,6 +787,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rInner", "start": 0, "type": "Identifier" @@ -720,9 +802,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDisc", "start": 0, "type": "Identifier" @@ -732,10 +816,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -749,14 +835,17 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurface", "start": 0, "type": "Identifier" @@ -770,11 +859,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Sketch a vent hole at line parameter value t on an arc drawn across the disc surface." ], @@ -790,6 +881,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rOuter", "start": 0, "type": "Identifier" @@ -801,9 +893,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDisc", "start": 0, "type": "Identifier" @@ -813,10 +907,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -830,11 +926,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -847,6 +945,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aStart", "start": 0, "type": "Identifier" @@ -855,9 +954,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aBase", "start": 0, "type": "Identifier" @@ -867,11 +968,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -884,6 +987,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aEnd", "start": 0, "type": "Identifier" @@ -895,9 +999,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aBase", "start": 0, "type": "Identifier" @@ -907,14 +1013,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aSweep", "start": 0, "type": "Identifier" @@ -928,11 +1037,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -945,6 +1056,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rCurrent", "start": 0, "type": "Identifier" @@ -956,9 +1068,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rInner", "start": 0, "type": "Identifier" @@ -968,6 +1082,7 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -976,9 +1091,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -988,6 +1105,7 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -996,9 +1114,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rOuter", "start": 0, "type": "Identifier" @@ -1008,14 +1128,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rInner", "start": 0, "type": "Identifier" @@ -1037,11 +1160,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1059,6 +1184,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aCurrent", "start": 0, "type": "Identifier" @@ -1070,9 +1196,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aStart", "start": 0, "type": "Identifier" @@ -1082,6 +1210,7 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1090,9 +1219,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1102,6 +1233,7 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -1110,9 +1242,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aEnd", "start": 0, "type": "Identifier" @@ -1122,14 +1256,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aStart", "start": 0, "type": "Identifier" @@ -1151,11 +1288,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1173,6 +1312,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xCenter", "start": 0, "type": "Identifier" @@ -1184,9 +1324,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rCurrent", "start": 0, "type": "Identifier" @@ -1196,15 +1338,19 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -1215,6 +1361,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1222,9 +1369,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aCurrent", "start": 0, "type": "Identifier" @@ -1239,11 +1388,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1261,6 +1412,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yCenter", "start": 0, "type": "Identifier" @@ -1272,9 +1424,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rCurrent", "start": 0, "type": "Identifier" @@ -1284,15 +1438,19 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -1303,6 +1461,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1310,9 +1469,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aCurrent", "start": 0, "type": "Identifier" @@ -1327,11 +1488,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1344,6 +1507,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "drillCircle", "start": 0, "type": "Identifier" @@ -1355,6 +1519,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1366,9 +1531,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xCenter", "start": 0, "type": "Identifier" @@ -1382,9 +1549,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yCenter", "start": 0, "type": "Identifier" @@ -1396,6 +1565,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1406,6 +1576,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1417,9 +1588,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDrillDia", "start": 0, "type": "Identifier" @@ -1429,10 +1602,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1452,9 +1627,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1465,6 +1642,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1472,9 +1650,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "activeSketch", "start": 0, "type": "Identifier" @@ -1485,11 +1665,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1504,9 +1686,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "drillCircle", "start": 0, "type": "Identifier" @@ -1518,6 +1702,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1525,12 +1710,14 @@ description: Result of parsing brake-rotor.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1545,12 +1732,14 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "activeSketch", "start": 0, "type": "Identifier" @@ -1561,6 +1750,7 @@ description: Result of parsing brake-rotor.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1571,11 +1761,13 @@ description: Result of parsing brake-rotor.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1588,6 +1780,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createDiscHalf", "start": 0, "type": "Identifier" @@ -1603,18 +1796,22 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchFace", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1625,6 +1822,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1632,9 +1830,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -1645,11 +1845,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Create a disc half with a vent hole pattern." ], @@ -1665,6 +1867,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileFace", "start": 0, "type": "Identifier" @@ -1678,6 +1881,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1688,6 +1892,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1700,6 +1905,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1711,6 +1917,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1721,6 +1928,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1732,9 +1940,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDiscParam", "start": 0, "type": "Identifier" @@ -1744,10 +1954,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1767,9 +1979,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1780,6 +1994,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1787,9 +2002,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchFace", "start": 0, "type": "Identifier" @@ -1807,6 +2024,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1818,6 +2036,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1828,6 +2047,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1840,6 +2060,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1851,6 +2072,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1861,6 +2083,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1875,9 +2098,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDiscParam", "start": 0, "type": "Identifier" @@ -1887,10 +2112,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1904,14 +2131,17 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurfaceParam", "start": 0, "type": "Identifier" @@ -1931,9 +2161,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1944,6 +2176,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1951,9 +2184,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchFace", "start": 0, "type": "Identifier" @@ -1970,9 +2205,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1983,6 +2220,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1991,12 +2229,14 @@ description: Result of parsing brake-rotor.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2013,11 +2253,13 @@ description: Result of parsing brake-rotor.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2030,6 +2272,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hole1", "start": 0, "type": "Identifier" @@ -2041,6 +2284,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "activeSketch", "start": 0, "type": "Identifier" @@ -2049,9 +2293,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchFace", "start": 0, "type": "Identifier" @@ -2067,6 +2313,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -2074,6 +2321,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -2089,9 +2337,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "drillHole", "start": 0, "type": "Identifier" @@ -2102,16 +2352,19 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2124,6 +2377,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hole2", "start": 0, "type": "Identifier" @@ -2135,6 +2389,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "activeSketch", "start": 0, "type": "Identifier" @@ -2143,9 +2398,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchFace", "start": 0, "type": "Identifier" @@ -2161,6 +2418,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -2168,6 +2426,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2183,9 +2442,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "drillHole", "start": 0, "type": "Identifier" @@ -2196,16 +2457,19 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2218,6 +2482,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hole3", "start": 0, "type": "Identifier" @@ -2229,6 +2494,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "activeSketch", "start": 0, "type": "Identifier" @@ -2237,9 +2503,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchFace", "start": 0, "type": "Identifier" @@ -2255,6 +2523,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -2262,6 +2531,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -2277,9 +2547,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "drillHole", "start": 0, "type": "Identifier" @@ -2290,16 +2562,19 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2312,6 +2587,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holes", "start": 0, "type": "Identifier" @@ -2323,6 +2599,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2331,9 +2608,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nArcs", "start": 0, "type": "Identifier" @@ -2349,6 +2628,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2359,6 +2639,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2371,6 +2652,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2382,6 +2664,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2392,6 +2675,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2399,6 +2683,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2414,6 +2699,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2421,6 +2707,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2433,9 +2720,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -2446,6 +2735,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2456,9 +2746,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hole1", "start": 0, "type": "Identifier" @@ -2472,9 +2764,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hole2", "start": 0, "type": "Identifier" @@ -2488,9 +2782,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hole3", "start": 0, "type": "Identifier" @@ -2502,16 +2798,19 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2529,6 +2828,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileDrilled", "start": 0, "type": "Identifier" @@ -2540,6 +2840,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -2548,9 +2849,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holes", "start": 0, "type": "Identifier" @@ -2566,9 +2869,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2579,6 +2884,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2586,9 +2892,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileFace", "start": 0, "type": "Identifier" @@ -2599,11 +2907,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2616,6 +2926,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "discHalf", "start": 0, "type": "Identifier" @@ -2627,6 +2938,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2635,9 +2947,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalfParam", "start": 0, "type": "Identifier" @@ -2653,9 +2967,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2666,6 +2982,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2673,9 +2990,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileFace", "start": 0, "type": "Identifier" @@ -2686,11 +3005,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2705,9 +3026,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "discHalf", "start": 0, "type": "Identifier" @@ -2719,6 +3042,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2726,16 +3050,19 @@ description: Result of parsing brake-rotor.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2746,6 +3073,7 @@ description: Result of parsing brake-rotor.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDiscParam", "start": 0, "type": "Identifier" @@ -2756,6 +3084,7 @@ description: Result of parsing brake-rotor.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurfaceParam", "start": 0, "type": "Identifier" @@ -2766,6 +3095,7 @@ description: Result of parsing brake-rotor.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalfParam", "start": 0, "type": "Identifier" @@ -2776,11 +3106,13 @@ description: Result of parsing brake-rotor.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2793,6 +3125,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "discInboard", "start": 0, "type": "Identifier" @@ -2804,6 +3137,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2812,9 +3146,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2830,6 +3166,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDiscParam", "start": 0, "type": "Identifier" @@ -2838,9 +3175,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDisc", "start": 0, "type": "Identifier" @@ -2856,6 +3195,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurfaceParam", "start": 0, "type": "Identifier" @@ -2864,9 +3204,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurface", "start": 0, "type": "Identifier" @@ -2882,6 +3224,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalfParam", "start": 0, "type": "Identifier" @@ -2890,9 +3233,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalf", "start": 0, "type": "Identifier" @@ -2908,9 +3253,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createDiscHalf", "start": 0, "type": "Identifier" @@ -2921,16 +3268,19 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2951,6 +3301,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "planeVent", "start": 0, "type": "Identifier" @@ -2962,6 +3313,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2970,9 +3322,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalf", "start": 0, "type": "Identifier" @@ -2988,9 +3342,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3001,6 +3357,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3008,9 +3365,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3021,11 +3380,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3043,18 +3404,22 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchVent", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3065,6 +3430,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3072,9 +3438,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "planeVent", "start": 0, "type": "Identifier" @@ -3085,11 +3453,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3102,6 +3472,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileVent", "start": 0, "type": "Identifier" @@ -3115,6 +3486,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3127,9 +3499,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wVent", "start": 0, "type": "Identifier" @@ -3141,6 +3515,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3153,9 +3528,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDisc", "start": 0, "type": "Identifier" @@ -3165,10 +3542,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3184,6 +3563,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3194,9 +3574,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3207,6 +3589,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3214,9 +3597,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchVent", "start": 0, "type": "Identifier" @@ -3234,6 +3619,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3241,6 +3627,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3256,6 +3643,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3264,9 +3652,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wVent", "start": 0, "type": "Identifier" @@ -3282,6 +3672,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3289,6 +3680,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3300,9 +3692,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3313,6 +3707,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3325,6 +3720,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3333,13 +3729,16 @@ description: Result of parsing brake-rotor.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3350,6 +3749,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3357,9 +3757,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3370,10 +3772,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3393,6 +3797,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3401,9 +3806,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurface", "start": 0, "type": "Identifier" @@ -3419,6 +3826,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3426,6 +3834,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3437,9 +3846,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3450,6 +3861,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3462,18 +3874,22 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3484,6 +3900,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3491,9 +3908,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3510,19 +3929,23 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3533,6 +3956,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3540,9 +3964,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3555,6 +3981,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3566,6 +3993,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3573,6 +4001,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3584,9 +4013,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3597,6 +4028,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3609,6 +4041,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3617,13 +4050,16 @@ description: Result of parsing brake-rotor.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3634,25 +4070,30 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3663,12 +4104,14 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3676,6 +4119,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3686,6 +4130,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3693,6 +4138,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3704,9 +4150,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3717,19 +4165,23 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3740,6 +4192,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3748,15 +4201,18 @@ description: Result of parsing brake-rotor.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3769,6 +4225,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ventPad", "start": 0, "type": "Identifier" @@ -3782,6 +4239,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3790,9 +4248,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tVent", "start": 0, "type": "Identifier" @@ -3808,9 +4268,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3821,6 +4283,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3828,9 +4291,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileVent", "start": 0, "type": "Identifier" @@ -3848,6 +4313,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3856,9 +4322,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rVentFillet", "start": 0, "type": "Identifier" @@ -3874,6 +4342,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -3888,6 +4357,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -3899,9 +4369,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -3915,9 +4387,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3929,6 +4403,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3939,9 +4414,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -3952,6 +4429,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3964,6 +4442,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -3975,9 +4454,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -3991,9 +4472,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -4005,6 +4488,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4015,9 +4499,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -4028,6 +4514,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4040,6 +4527,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -4051,9 +4539,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -4067,9 +4557,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -4081,6 +4573,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4091,9 +4584,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -4104,6 +4599,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4116,6 +4612,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -4127,9 +4624,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -4143,9 +4642,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -4157,6 +4658,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4167,9 +4669,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -4180,6 +4684,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4187,6 +4692,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4197,9 +4703,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -4210,6 +4718,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4218,15 +4727,18 @@ description: Result of parsing brake-rotor.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4239,6 +4751,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ventSet", "start": 0, "type": "Identifier" @@ -4250,6 +4763,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4258,9 +4772,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nVentBosses", "start": 0, "type": "Identifier" @@ -4276,6 +4792,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4286,6 +4803,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4298,6 +4816,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4310,6 +4829,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4321,6 +4841,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4331,6 +4852,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4341,6 +4863,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4353,6 +4876,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4366,9 +4890,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalf", "start": 0, "type": "Identifier" @@ -4380,6 +4906,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4390,6 +4917,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -4397,6 +4925,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -4412,6 +4941,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -4419,6 +4949,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -4431,9 +4962,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -4444,6 +4977,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4451,9 +4985,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ventPad", "start": 0, "type": "Identifier" @@ -4464,11 +5000,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4481,6 +5019,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "planeOutboard", "start": 0, "type": "Identifier" @@ -4492,6 +5031,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -4503,9 +5043,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalf", "start": 0, "type": "Identifier" @@ -4515,14 +5057,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tVent", "start": 0, "type": "Identifier" @@ -4542,9 +5087,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -4555,6 +5102,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4562,9 +5110,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4575,11 +5125,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4597,6 +5149,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "discOutboard", "start": 0, "type": "Identifier" @@ -4608,6 +5161,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -4616,9 +5170,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "planeOutboard", "start": 0, "type": "Identifier" @@ -4634,6 +5190,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDiscParam", "start": 0, "type": "Identifier" @@ -4642,9 +5199,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDisc", "start": 0, "type": "Identifier" @@ -4660,6 +5219,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurfaceParam", "start": 0, "type": "Identifier" @@ -4668,9 +5228,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurface", "start": 0, "type": "Identifier" @@ -4686,6 +5248,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalfParam", "start": 0, "type": "Identifier" @@ -4694,9 +5257,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalf", "start": 0, "type": "Identifier" @@ -4712,9 +5277,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createDiscHalf", "start": 0, "type": "Identifier" @@ -4725,16 +5292,19 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4747,6 +5317,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rCenter", "start": 0, "type": "Identifier" @@ -4764,9 +5335,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDisc", "start": 0, "type": "Identifier" @@ -4776,10 +5349,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4793,14 +5368,17 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurface", "start": 0, "type": "Identifier" @@ -4814,14 +5392,17 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wUndercut", "start": 0, "type": "Identifier" @@ -4835,11 +5416,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4857,6 +5440,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rBore", "start": 0, "type": "Identifier" @@ -4868,9 +5452,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dBore", "start": 0, "type": "Identifier" @@ -4880,10 +5466,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4897,11 +5485,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4914,6 +5504,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lDraftExterior", "start": 0, "type": "Identifier" @@ -4925,9 +5516,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hBellAboveDiscFace", "start": 0, "type": "Identifier" @@ -4937,15 +5530,19 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -4956,6 +5553,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4965,6 +5563,7 @@ description: Result of parsing brake-rotor.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4974,14 +5573,17 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aDraftBell", "start": 0, "type": "Identifier" @@ -5000,11 +5602,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5017,6 +5621,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lDraftInterior", "start": 0, "type": "Identifier" @@ -5031,9 +5636,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hBellAboveDiscFace", "start": 0, "type": "Identifier" @@ -5043,14 +5650,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tBell", "start": 0, "type": "Identifier" @@ -5064,15 +5674,19 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -5083,6 +5697,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5092,6 +5707,7 @@ description: Result of parsing brake-rotor.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5101,14 +5717,17 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "aDraftBell", "start": 0, "type": "Identifier" @@ -5127,11 +5746,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5144,6 +5765,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rOuter", "start": 0, "type": "Identifier" @@ -5158,9 +5780,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rCenter", "start": 0, "type": "Identifier" @@ -5170,14 +5794,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lDraftExterior", "start": 0, "type": "Identifier" @@ -5191,14 +5818,17 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rBore", "start": 0, "type": "Identifier" @@ -5212,11 +5842,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5234,6 +5866,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rInner", "start": 0, "type": "Identifier" @@ -5248,9 +5881,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rOuter", "start": 0, "type": "Identifier" @@ -5260,14 +5895,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lDraftExterior", "start": 0, "type": "Identifier" @@ -5281,6 +5919,7 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5289,9 +5928,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tBell", "start": 0, "type": "Identifier" @@ -5301,14 +5942,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lDraftInterior", "start": 0, "type": "Identifier" @@ -5326,11 +5970,13 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5343,18 +5989,22 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchDiscBell", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5365,6 +6015,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5373,9 +6024,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -5387,17 +6040,20 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5410,6 +6066,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bodyDiscBell", "start": 0, "type": "Identifier" @@ -5423,6 +6080,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5441,9 +6099,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dDisc", "start": 0, "type": "Identifier" @@ -5455,15 +6115,18 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5477,14 +6140,17 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hFrictionSurface", "start": 0, "type": "Identifier" @@ -5508,9 +6174,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tDiscHalf", "start": 0, "type": "Identifier" @@ -5520,10 +6188,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5537,14 +6207,17 @@ description: Result of parsing brake-rotor.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tVent", "start": 0, "type": "Identifier" @@ -5560,6 +6233,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5570,9 +6244,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5583,6 +6259,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5590,9 +6267,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchDiscBell", "start": 0, "type": "Identifier" @@ -5610,6 +6289,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -5618,6 +6298,7 @@ description: Result of parsing brake-rotor.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -5629,6 +6310,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5640,6 +6322,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -5647,6 +6330,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5662,6 +6346,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5673,9 +6358,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wUndercut", "start": 0, "type": "Identifier" @@ -5685,10 +6372,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5708,9 +6397,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -5721,12 +6412,14 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5739,6 +6432,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5750,9 +6444,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lDraftExterior", "start": 0, "type": "Identifier" @@ -5766,9 +6462,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hBellAboveDiscFace", "start": 0, "type": "Identifier" @@ -5780,6 +6478,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5790,9 +6489,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5803,6 +6504,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5815,6 +6517,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5823,9 +6526,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rOuter", "start": 0, "type": "Identifier" @@ -5841,6 +6546,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5848,6 +6554,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5859,9 +6566,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5872,6 +6581,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5884,6 +6594,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5893,9 +6604,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tBell", "start": 0, "type": "Identifier" @@ -5907,6 +6620,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5918,9 +6632,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5931,6 +6647,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5943,6 +6660,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5952,9 +6670,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rInner", "start": 0, "type": "Identifier" @@ -5966,6 +6686,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5977,9 +6698,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5990,6 +6713,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6002,6 +6726,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6014,9 +6739,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lDraftInterior", "start": 0, "type": "Identifier" @@ -6028,6 +6755,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6038,9 +6766,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hBellAboveDiscFace", "start": 0, "type": "Identifier" @@ -6052,6 +6782,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6059,6 +6790,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6069,9 +6801,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6082,6 +6816,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6094,6 +6829,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6104,6 +6840,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6117,6 +6854,7 @@ description: Result of parsing brake-rotor.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6128,6 +6866,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6135,6 +6874,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6145,9 +6885,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6158,6 +6900,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6170,6 +6913,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6181,6 +6925,7 @@ description: Result of parsing brake-rotor.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6192,11 +6937,13 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -6205,9 +6952,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tBell", "start": 0, "type": "Identifier" @@ -6217,14 +6966,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wUndercut", "start": 0, "type": "Identifier" @@ -6248,9 +7000,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6261,19 +7015,23 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -6284,12 +7042,14 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6302,6 +7062,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -6310,9 +7071,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -6328,9 +7091,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -6341,6 +7106,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6349,12 +7115,14 @@ description: Result of parsing brake-rotor.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6368,6 +7136,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6384,11 +7153,13 @@ description: Result of parsing brake-rotor.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6401,6 +7172,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchLugs", "start": 0, "type": "Identifier" @@ -6412,6 +7184,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6420,9 +7193,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -6438,9 +7213,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6451,6 +7228,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6458,9 +7236,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bodyDiscBell", "start": 0, "type": "Identifier" @@ -6471,11 +7251,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6488,6 +7270,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStud", "start": 0, "type": "Identifier" @@ -6501,6 +7284,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6511,6 +7295,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6527,9 +7312,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dPitchCircle", "start": 0, "type": "Identifier" @@ -6539,10 +7326,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6558,6 +7347,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6568,6 +7358,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6579,9 +7370,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dStudDrilling", "start": 0, "type": "Identifier" @@ -6591,10 +7384,12 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6614,9 +7409,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6627,6 +7424,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6634,9 +7432,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchLugs", "start": 0, "type": "Identifier" @@ -6654,6 +7454,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6662,9 +7463,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nStuds", "start": 0, "type": "Identifier" @@ -6680,6 +7483,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6690,6 +7494,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6702,6 +7507,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6713,6 +7519,7 @@ description: Result of parsing brake-rotor.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6723,6 +7530,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -6730,6 +7538,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -6745,6 +7554,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -6752,6 +7562,7 @@ description: Result of parsing brake-rotor.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -6764,9 +7575,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -6777,12 +7590,14 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6791,15 +7606,18 @@ description: Result of parsing brake-rotor.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6812,6 +7630,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clearance", "start": 0, "type": "Identifier" @@ -6819,6 +7638,7 @@ description: Result of parsing brake-rotor.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6828,11 +7648,13 @@ description: Result of parsing brake-rotor.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6845,6 +7667,7 @@ description: Result of parsing brake-rotor.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lugs", "start": 0, "type": "Identifier" @@ -6856,6 +7679,7 @@ description: Result of parsing brake-rotor.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6867,6 +7691,7 @@ description: Result of parsing brake-rotor.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6878,11 +7703,13 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -6891,9 +7718,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tBell", "start": 0, "type": "Identifier" @@ -6903,14 +7732,17 @@ description: Result of parsing brake-rotor.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clearance", "start": 0, "type": "Identifier" @@ -6934,9 +7766,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6947,6 +7781,7 @@ description: Result of parsing brake-rotor.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6954,9 +7789,11 @@ description: Result of parsing brake-rotor.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStud", "start": 0, "type": "Identifier" @@ -6967,11 +7804,13 @@ description: Result of parsing brake-rotor.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6983,9 +7822,11 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -6997,19 +7838,23 @@ description: Result of parsing brake-rotor.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -7025,12 +7870,14 @@ description: Result of parsing brake-rotor.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7044,6 +7891,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7057,6 +7905,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7068,6 +7917,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7079,6 +7929,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7090,6 +7941,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7101,6 +7953,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7112,6 +7965,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7126,6 +7980,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7137,6 +7992,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7148,6 +8004,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7157,6 +8014,7 @@ description: Result of parsing brake-rotor.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/brake-rotor/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/brake-rotor/program_memory.snap index 063076a7a..e50079b09 100644 --- a/rust/kcl-lib/tests/kcl_samples/brake-rotor/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/brake-rotor/program_memory.snap @@ -70,6 +70,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -179,6 +180,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -838,6 +840,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -947,6 +950,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -1272,6 +1276,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -1381,6 +1386,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -1706,6 +1712,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -1815,6 +1822,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -2140,6 +2148,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -2249,6 +2258,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -2574,6 +2584,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -2683,6 +2694,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -3103,6 +3115,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -3212,6 +3225,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -3516,6 +3530,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -3625,6 +3640,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -3929,6 +3945,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -4038,6 +4055,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -4342,6 +4360,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -4451,6 +4470,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -4755,6 +4775,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -4864,6 +4885,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -5109,6 +5131,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -5134,6 +5157,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -5159,6 +5183,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -5184,6 +5209,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -5460,6 +5486,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -5569,6 +5596,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 4473, "end": 4479, + "moduleId": 0, "start": 4473, "type": "TagDeclarator", "value": "seg04" @@ -5855,6 +5883,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -5868,6 +5897,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -5881,6 +5911,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -5894,6 +5925,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -5917,6 +5949,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -5942,6 +5975,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -5967,6 +6001,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -5992,6 +6027,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -6197,6 +6233,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -6210,6 +6247,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -6223,6 +6261,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -6236,6 +6275,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -6259,6 +6299,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -6284,6 +6325,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -6309,6 +6351,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -6334,6 +6377,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -6536,6 +6580,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -6549,6 +6594,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -6562,6 +6608,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -6575,6 +6622,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -6598,6 +6646,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -6623,6 +6672,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -6648,6 +6698,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -6673,6 +6724,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -6875,6 +6927,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -6888,6 +6941,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -6901,6 +6955,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -6914,6 +6969,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -6937,6 +6993,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -6962,6 +7019,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -6987,6 +7045,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -7012,6 +7071,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -7214,6 +7274,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -7227,6 +7288,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -7240,6 +7302,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -7253,6 +7316,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -7276,6 +7340,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -7301,6 +7366,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -7326,6 +7392,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -7351,6 +7418,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -7553,6 +7621,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -7566,6 +7635,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -7579,6 +7649,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -7592,6 +7663,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -7615,6 +7687,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -7640,6 +7713,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -7665,6 +7739,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -7690,6 +7765,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -7892,6 +7968,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -7905,6 +7982,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -7918,6 +7996,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -7931,6 +8010,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -7954,6 +8034,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -7979,6 +8060,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -8004,6 +8086,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -8029,6 +8112,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -8231,6 +8315,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -8244,6 +8329,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -8257,6 +8343,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -8270,6 +8357,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -8293,6 +8381,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -8318,6 +8407,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -8343,6 +8433,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -8368,6 +8459,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -8570,6 +8662,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -8583,6 +8676,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -8596,6 +8690,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -8609,6 +8704,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -8632,6 +8728,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -8657,6 +8754,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -8682,6 +8780,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -8707,6 +8806,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -8909,6 +9009,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -8922,6 +9023,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -8935,6 +9037,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -8948,6 +9051,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -8971,6 +9075,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -8996,6 +9101,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -9021,6 +9127,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -9046,6 +9153,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -9248,6 +9356,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -9261,6 +9370,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -9274,6 +9384,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -9287,6 +9398,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -9310,6 +9422,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -9335,6 +9448,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -9360,6 +9474,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -9385,6 +9500,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -9587,6 +9703,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -9600,6 +9717,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -9613,6 +9731,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -9626,6 +9745,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -9649,6 +9769,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -9674,6 +9795,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -9699,6 +9821,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -9724,6 +9847,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -9926,6 +10050,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -9939,6 +10064,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -9952,6 +10078,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -9965,6 +10092,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -9988,6 +10116,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -10013,6 +10142,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -10038,6 +10168,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -10063,6 +10194,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -10265,6 +10397,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -10278,6 +10411,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -10291,6 +10425,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -10304,6 +10439,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -10327,6 +10463,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -10352,6 +10489,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -10377,6 +10515,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -10402,6 +10541,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -10604,6 +10744,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -10617,6 +10758,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -10630,6 +10772,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -10643,6 +10786,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -10666,6 +10810,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -10691,6 +10836,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -10716,6 +10862,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -10741,6 +10888,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -10943,6 +11091,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -10956,6 +11105,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -10969,6 +11119,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -10982,6 +11133,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -11005,6 +11157,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -11030,6 +11183,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -11055,6 +11209,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -11080,6 +11235,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -11282,6 +11438,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -11295,6 +11452,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -11308,6 +11466,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -11321,6 +11480,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -11344,6 +11504,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -11369,6 +11530,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -11394,6 +11556,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -11419,6 +11582,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -11621,6 +11785,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -11634,6 +11799,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -11647,6 +11813,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -11660,6 +11827,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -11683,6 +11851,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -11708,6 +11877,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -11733,6 +11903,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -11758,6 +11929,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -11960,6 +12132,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -11973,6 +12146,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -11986,6 +12160,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -11999,6 +12174,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -12022,6 +12198,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -12047,6 +12224,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -12072,6 +12250,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -12097,6 +12276,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -12299,6 +12479,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -12312,6 +12493,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -12325,6 +12507,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -12338,6 +12521,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -12361,6 +12545,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -12386,6 +12571,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -12411,6 +12597,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -12436,6 +12623,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -12638,6 +12826,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -12651,6 +12840,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -12664,6 +12854,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -12677,6 +12868,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -12700,6 +12892,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -12725,6 +12918,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -12750,6 +12944,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -12775,6 +12970,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -12977,6 +13173,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -12990,6 +13187,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -13003,6 +13201,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -13016,6 +13215,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -13039,6 +13239,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -13064,6 +13265,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -13089,6 +13291,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -13114,6 +13317,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -13316,6 +13520,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -13329,6 +13534,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -13342,6 +13548,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -13355,6 +13562,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -13378,6 +13586,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -13403,6 +13612,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -13428,6 +13638,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -13453,6 +13664,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -13655,6 +13867,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -13668,6 +13881,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -13681,6 +13895,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -13694,6 +13909,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -13717,6 +13933,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -13742,6 +13959,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -13767,6 +13985,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -13792,6 +14011,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -13994,6 +14214,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -14007,6 +14228,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -14020,6 +14242,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -14033,6 +14256,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -14056,6 +14280,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -14081,6 +14306,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -14106,6 +14332,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -14131,6 +14358,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -14333,6 +14561,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -14346,6 +14575,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -14359,6 +14589,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -14372,6 +14603,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -14395,6 +14627,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -14420,6 +14653,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -14445,6 +14679,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -14470,6 +14705,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -14672,6 +14908,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -14685,6 +14922,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -14698,6 +14936,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -14711,6 +14950,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -14734,6 +14974,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -14759,6 +15000,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -14784,6 +15026,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -14809,6 +15052,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -15011,6 +15255,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -15024,6 +15269,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -15037,6 +15283,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -15050,6 +15297,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -15073,6 +15321,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -15098,6 +15347,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -15123,6 +15373,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -15148,6 +15399,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -15350,6 +15602,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -15363,6 +15616,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -15376,6 +15630,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -15389,6 +15644,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -15412,6 +15668,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -15437,6 +15694,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -15462,6 +15720,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -15487,6 +15746,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -15689,6 +15949,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -15702,6 +15963,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -15715,6 +15977,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -15728,6 +15991,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -15751,6 +16015,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -15776,6 +16041,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -15801,6 +16067,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -15826,6 +16093,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -16028,6 +16296,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -16041,6 +16310,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -16054,6 +16324,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -16067,6 +16338,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -16090,6 +16362,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -16115,6 +16388,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -16140,6 +16414,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -16165,6 +16440,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -16367,6 +16643,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -16380,6 +16657,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -16393,6 +16671,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -16406,6 +16685,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -16429,6 +16709,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -16454,6 +16735,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -16479,6 +16761,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -16504,6 +16787,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -16706,6 +16990,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -16719,6 +17004,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -16732,6 +17018,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -16745,6 +17032,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -16768,6 +17056,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -16793,6 +17082,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -16818,6 +17108,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -16843,6 +17134,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -17045,6 +17337,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -17058,6 +17351,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -17071,6 +17365,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -17084,6 +17379,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -17107,6 +17403,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -17132,6 +17429,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -17157,6 +17455,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -17182,6 +17481,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -17384,6 +17684,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -17397,6 +17698,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -17410,6 +17712,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -17423,6 +17726,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -17446,6 +17750,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -17471,6 +17776,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -17496,6 +17802,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -17521,6 +17828,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -17723,6 +18031,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -17736,6 +18045,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -17749,6 +18059,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -17762,6 +18073,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -17785,6 +18097,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -17810,6 +18123,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -17835,6 +18149,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -17860,6 +18175,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -18062,6 +18378,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -18075,6 +18392,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -18088,6 +18406,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -18101,6 +18420,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" @@ -18124,6 +18444,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2641, "end": 2662, + "moduleId": 0, "start": 2641, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -18149,6 +18470,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2756, "end": 2762, + "moduleId": 0, "start": 2756, "type": "TagDeclarator", "value": "seg02" @@ -18174,6 +18496,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2864, "end": 2870, + "moduleId": 0, "start": 2864, "type": "TagDeclarator", "value": "seg03" @@ -18199,6 +18522,7 @@ description: Variables in memory after executing brake-rotor.kcl "tag": { "commentStart": 2940, "end": 2946, + "moduleId": 0, "start": 2940, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/ast.snap b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/ast.snap index 3c693a827..ee44a2358 100644 --- a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "car-wheel.kcl" @@ -20,6 +21,7 @@ description: Result of parsing car-wheel-assembly.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carWheel", "start": 0, "type": "Identifier" @@ -32,6 +34,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "car-rotor.kcl" @@ -41,6 +44,7 @@ description: Result of parsing car-wheel-assembly.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carRotor", "start": 0, "type": "Identifier" @@ -53,6 +57,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "brake-caliper.kcl" @@ -62,6 +67,7 @@ description: Result of parsing car-wheel-assembly.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "brakeCaliper", "start": 0, "type": "Identifier" @@ -74,6 +80,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "lug-nut.kcl" @@ -83,6 +90,7 @@ description: Result of parsing car-wheel-assembly.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lugNut", "start": 0, "type": "Identifier" @@ -95,6 +103,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "car-tire.kcl" @@ -104,6 +113,7 @@ description: Result of parsing car-wheel-assembly.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carTire", "start": 0, "type": "Identifier" @@ -116,6 +126,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "parameters.kcl" @@ -128,6 +139,7 @@ description: Result of parsing car-wheel-assembly.kcl "selector": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "Glob" }, @@ -144,9 +156,11 @@ description: Result of parsing car-wheel-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carRotor", "start": 0, "type": "Identifier" @@ -163,6 +177,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -170,6 +185,7 @@ description: Result of parsing car-wheel-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -185,6 +201,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -192,6 +209,7 @@ description: Result of parsing car-wheel-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -207,6 +225,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -214,6 +233,7 @@ description: Result of parsing car-wheel-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -229,9 +249,11 @@ description: Result of parsing car-wheel-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -242,6 +264,7 @@ description: Result of parsing car-wheel-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -250,12 +273,14 @@ description: Result of parsing car-wheel-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -272,6 +297,7 @@ description: Result of parsing car-wheel-assembly.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "preComments": [ "", "", @@ -288,9 +314,11 @@ description: Result of parsing car-wheel-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carWheel", "start": 0, "type": "Identifier" @@ -300,6 +328,7 @@ description: Result of parsing car-wheel-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -313,9 +342,11 @@ description: Result of parsing car-wheel-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lugNut", "start": 0, "type": "Identifier" @@ -332,6 +363,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -339,6 +371,7 @@ description: Result of parsing car-wheel-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -354,6 +387,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -364,6 +398,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -376,6 +411,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -388,6 +424,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -399,6 +436,7 @@ description: Result of parsing car-wheel-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -409,6 +447,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -419,6 +458,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -431,6 +471,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -443,6 +484,7 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -454,6 +496,7 @@ description: Result of parsing car-wheel-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -464,6 +507,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -472,9 +516,11 @@ description: Result of parsing car-wheel-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lugCount", "start": 0, "type": "Identifier" @@ -490,6 +536,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -497,6 +544,7 @@ description: Result of parsing car-wheel-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -509,9 +557,11 @@ description: Result of parsing car-wheel-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -522,6 +572,7 @@ description: Result of parsing car-wheel-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -530,12 +581,14 @@ description: Result of parsing car-wheel-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -552,6 +605,7 @@ description: Result of parsing car-wheel-assembly.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "preComments": [ "", "", @@ -570,9 +624,11 @@ description: Result of parsing car-wheel-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "brakeCaliper", "start": 0, "type": "Identifier" @@ -589,6 +645,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -596,6 +653,7 @@ description: Result of parsing car-wheel-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -611,6 +669,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -618,6 +677,7 @@ description: Result of parsing car-wheel-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -633,6 +693,7 @@ description: Result of parsing car-wheel-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -640,6 +701,7 @@ description: Result of parsing car-wheel-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -655,9 +717,11 @@ description: Result of parsing car-wheel-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -668,6 +732,7 @@ description: Result of parsing car-wheel-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -676,12 +741,14 @@ description: Result of parsing car-wheel-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -698,6 +765,7 @@ description: Result of parsing car-wheel-assembly.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -709,9 +777,11 @@ description: Result of parsing car-wheel-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carTire", "start": 0, "type": "Identifier" @@ -721,6 +791,7 @@ description: Result of parsing car-wheel-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -732,9 +803,11 @@ description: Result of parsing car-wheel-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -753,19 +826,23 @@ description: Result of parsing car-wheel-assembly.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -782,15 +859,18 @@ description: Result of parsing car-wheel-assembly.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -806,12 +886,14 @@ description: Result of parsing car-wheel-assembly.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/clock/ast.snap b/rust/kcl-lib/tests/kcl_samples/clock/ast.snap index 39bbec475..8c12b91db 100644 --- a/rust/kcl-lib/tests/kcl_samples/clock/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/clock/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "500", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Clock", "// A clock with roman numerals", @@ -53,6 +57,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockThickness", "start": 0, "type": "Identifier" @@ -60,6 +65,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -69,11 +75,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -86,6 +94,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandLength", "start": 0, "type": "Identifier" @@ -93,6 +102,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -102,11 +112,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -119,6 +131,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -126,6 +139,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -135,11 +149,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -152,6 +168,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numHeight", "start": 0, "type": "Identifier" @@ -159,6 +176,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -168,11 +186,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -185,6 +205,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandWidth", "start": 0, "type": "Identifier" @@ -192,6 +213,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -201,11 +223,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -218,6 +242,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandWidth", "start": 0, "type": "Identifier" @@ -225,6 +250,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -234,11 +260,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -251,6 +279,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandLargeDiameter", "start": 0, "type": "Identifier" @@ -258,6 +287,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "230", "start": 0, "type": "Literal", @@ -267,11 +297,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -284,6 +316,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandLargeDiameter", "start": 0, "type": "Identifier" @@ -291,6 +324,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "310", "start": 0, "type": "Literal", @@ -300,11 +334,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -317,6 +353,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -324,6 +361,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -333,11 +371,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -350,6 +390,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ridgeThickness", "start": 0, "type": "Identifier" @@ -357,6 +398,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -366,11 +408,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -383,6 +427,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberThickness", "start": 0, "type": "Identifier" @@ -390,6 +435,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -399,11 +445,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -416,6 +464,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ridgeDiameter", "start": 0, "type": "Identifier" @@ -427,9 +476,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -439,10 +490,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -456,11 +509,13 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -478,6 +533,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandArmLength", "start": 0, "type": "Identifier" @@ -492,9 +548,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -504,10 +562,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -521,10 +581,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".25", "start": 0, "type": "Literal", @@ -538,11 +600,13 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -555,6 +619,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandArmLength", "start": 0, "type": "Identifier" @@ -569,9 +634,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -581,10 +648,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -598,10 +667,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".40", "start": 0, "type": "Literal", @@ -615,11 +686,13 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -634,6 +707,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThan", "start": 0, "type": "Identifier" @@ -641,6 +715,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "450", "start": 0, "type": "Literal", @@ -656,6 +731,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -663,6 +739,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"clock diameter needs to be greater than 400\"", "start": 0, "type": "Literal", @@ -675,9 +752,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -688,6 +767,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -695,9 +775,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -708,6 +790,7 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -725,6 +808,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hour", "start": 0, "type": "Identifier" @@ -732,6 +816,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -741,11 +826,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -763,6 +850,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minute", "start": 0, "type": "Identifier" @@ -770,6 +858,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "29", "start": 0, "type": "Literal", @@ -779,11 +868,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -796,6 +887,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -806,6 +898,7 @@ description: Result of parsing clock.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -815,6 +908,7 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -823,9 +917,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hour", "start": 0, "type": "Identifier" @@ -835,10 +931,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -856,11 +954,13 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -878,6 +978,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -888,6 +989,7 @@ description: Result of parsing clock.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -897,6 +999,7 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -905,9 +1008,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minute", "start": 0, "type": "Identifier" @@ -917,10 +1022,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -938,11 +1045,13 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -955,18 +1064,22 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockBodySketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -977,6 +1090,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -984,9 +1098,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -997,11 +1113,13 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1019,6 +1137,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -1030,6 +1149,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1040,6 +1160,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1052,6 +1173,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1063,6 +1185,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1073,6 +1196,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -1081,9 +1205,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -1099,6 +1225,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1106,6 +1233,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1117,9 +1245,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1130,6 +1260,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1137,9 +1268,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockBodySketch", "start": 0, "type": "Identifier" @@ -1150,11 +1283,13 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1167,6 +1302,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockBody", "start": 0, "type": "Identifier" @@ -1180,6 +1316,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1188,9 +1325,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockThickness", "start": 0, "type": "Identifier" @@ -1206,6 +1345,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagStart", "start": 0, "type": "Identifier" @@ -1213,6 +1353,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1224,9 +1365,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1237,6 +1380,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1244,9 +1388,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -1264,6 +1410,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1272,9 +1419,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -1290,6 +1439,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1304,6 +1454,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -1315,9 +1466,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1331,9 +1484,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capStart001", "start": 0, "type": "Identifier" @@ -1345,6 +1500,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1355,9 +1511,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -1368,6 +1526,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1375,6 +1534,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1385,9 +1545,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1398,6 +1560,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1406,12 +1569,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1428,11 +1593,13 @@ description: Result of parsing clock.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1445,6 +1612,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockRidgeSketch", "start": 0, "type": "Identifier" @@ -1456,6 +1624,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1464,9 +1633,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1482,9 +1653,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1495,6 +1668,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1502,9 +1676,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockBody", "start": 0, "type": "Identifier" @@ -1515,11 +1691,13 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1532,6 +1710,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -1543,6 +1722,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1553,6 +1733,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1565,6 +1746,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1576,6 +1758,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1586,6 +1769,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -1594,9 +1778,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -1612,6 +1798,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1619,6 +1806,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1630,9 +1818,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1643,6 +1833,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1650,9 +1841,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockRidgeSketch", "start": 0, "type": "Identifier" @@ -1663,11 +1856,13 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1680,6 +1875,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile003", "start": 0, "type": "Identifier" @@ -1691,6 +1887,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1701,6 +1898,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1713,6 +1911,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1724,6 +1923,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1734,6 +1934,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -1742,9 +1943,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ridgeDiameter", "start": 0, "type": "Identifier" @@ -1760,9 +1963,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1773,6 +1978,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1780,9 +1986,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockRidgeSketch", "start": 0, "type": "Identifier" @@ -1793,11 +2001,13 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1812,6 +2022,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1820,9 +2031,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile003", "start": 0, "type": "Identifier" @@ -1838,9 +2051,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1851,6 +2066,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1858,9 +2074,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -1871,6 +2089,7 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1883,6 +2102,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockRidge", "start": 0, "type": "Identifier" @@ -1896,6 +2116,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1904,9 +2125,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ridgeThickness", "start": 0, "type": "Identifier" @@ -1922,6 +2145,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -1929,6 +2153,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1940,9 +2165,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1953,6 +2180,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1960,9 +2188,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -1980,6 +2210,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1988,9 +2219,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -2006,6 +2239,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2020,6 +2254,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -2031,9 +2266,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2047,9 +2284,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capEnd001", "start": 0, "type": "Identifier" @@ -2061,6 +2300,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2071,9 +2311,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -2084,6 +2326,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2091,6 +2334,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2101,9 +2345,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -2114,6 +2360,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2126,6 +2373,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -2133,6 +2381,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#ab4321\"", "start": 0, "type": "Literal", @@ -2145,9 +2394,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -2158,12 +2409,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2172,12 +2425,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2194,11 +2449,13 @@ description: Result of parsing clock.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2211,6 +2468,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -2218,12 +2476,14 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2243,15 +2503,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2259,10 +2522,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2284,9 +2549,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -2296,10 +2563,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2313,10 +2582,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2330,10 +2601,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2347,15 +2620,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -2366,12 +2643,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -2402,9 +2681,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -2414,10 +2695,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2431,10 +2714,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2448,10 +2733,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2465,15 +2752,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -2484,12 +2775,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -2506,6 +2799,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2523,15 +2817,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2539,10 +2836,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2567,9 +2866,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -2579,10 +2880,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2596,10 +2899,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2613,10 +2918,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2630,15 +2937,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -2649,12 +2960,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -2669,10 +2982,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -2702,9 +3017,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -2714,10 +3031,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2731,10 +3050,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2748,10 +3069,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2765,15 +3088,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -2784,12 +3111,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -2806,6 +3135,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2817,10 +3147,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2845,9 +3177,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -2857,10 +3191,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2874,10 +3210,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2891,10 +3229,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2908,15 +3248,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -2927,12 +3271,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -2947,10 +3293,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2980,9 +3328,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -2992,10 +3342,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3009,10 +3361,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3026,10 +3380,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3043,15 +3399,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -3062,12 +3422,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -3084,6 +3446,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3101,15 +3464,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -3117,10 +3483,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -3145,9 +3513,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -3157,10 +3527,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3174,10 +3546,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3191,10 +3565,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3208,15 +3584,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -3227,12 +3607,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3247,10 +3629,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -3280,9 +3664,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -3292,10 +3678,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3309,10 +3697,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3326,10 +3716,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3343,15 +3735,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -3362,12 +3758,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3384,6 +3782,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3395,10 +3794,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -3420,9 +3821,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -3432,10 +3835,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3449,10 +3854,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3466,10 +3873,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3483,15 +3892,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -3502,12 +3915,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3538,9 +3953,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -3550,10 +3967,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3567,10 +3986,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3584,10 +4005,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3601,15 +4024,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -3620,12 +4047,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3642,6 +4071,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3653,10 +4083,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i3", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -3681,9 +4113,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -3693,10 +4127,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3710,10 +4146,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3727,10 +4165,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3744,15 +4184,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -3763,12 +4207,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3783,10 +4229,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -3816,9 +4264,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -3828,10 +4278,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3845,10 +4297,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3862,10 +4316,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3879,15 +4335,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -3898,12 +4358,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3920,6 +4382,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3937,15 +4400,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "four", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -3953,10 +4419,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -3981,9 +4449,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -3993,10 +4463,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4010,10 +4482,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4027,10 +4501,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4044,15 +4520,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -4063,6 +4543,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4070,6 +4551,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4081,6 +4563,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4091,10 +4574,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -4124,9 +4609,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -4136,10 +4623,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4153,10 +4642,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4170,10 +4661,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4187,15 +4680,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -4206,6 +4703,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4213,6 +4711,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4224,6 +4723,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4236,6 +4736,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4247,10 +4748,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -4275,9 +4778,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -4287,10 +4792,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4304,10 +4811,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4321,10 +4830,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4338,15 +4849,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -4357,6 +4872,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4364,6 +4880,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4375,6 +4892,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4385,10 +4903,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13", "start": 0, "type": "Literal", @@ -4418,9 +4938,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -4430,10 +4952,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4447,10 +4971,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4464,10 +4990,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4481,15 +5009,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -4500,6 +5032,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4507,6 +5040,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4518,6 +5052,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4530,6 +5065,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4547,15 +5083,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "five", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -4563,10 +5102,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -4588,9 +5129,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -4600,10 +5143,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4617,10 +5162,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4634,10 +5181,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4651,15 +5200,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -4670,6 +5223,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4677,6 +5231,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -4688,6 +5243,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4714,9 +5270,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -4726,10 +5284,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4743,10 +5303,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4760,10 +5322,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4777,15 +5341,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -4796,6 +5364,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4803,6 +5372,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -4814,6 +5384,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4826,6 +5397,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4843,15 +5415,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "six", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -4859,10 +5434,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -4887,9 +5464,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -4899,10 +5478,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4916,10 +5497,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4933,10 +5516,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4950,15 +5535,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -4969,6 +5558,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4976,6 +5566,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4987,6 +5578,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4997,10 +5589,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -5030,9 +5624,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -5042,10 +5638,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5059,10 +5657,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5076,10 +5676,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5093,15 +5695,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -5112,6 +5718,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5119,6 +5726,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5130,6 +5738,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5142,6 +5751,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5153,10 +5763,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -5181,9 +5793,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -5193,10 +5807,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5210,10 +5826,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5227,10 +5845,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5244,15 +5864,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -5263,6 +5887,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5270,6 +5895,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5281,6 +5907,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5291,10 +5918,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -5324,9 +5953,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -5336,10 +5967,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5353,10 +5986,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5370,10 +6005,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5387,15 +6024,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -5406,6 +6047,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5413,6 +6055,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5424,6 +6067,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5436,6 +6080,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5453,15 +6098,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seven", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -5469,10 +6117,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -5497,9 +6147,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -5509,10 +6161,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5526,10 +6180,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5543,10 +6199,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5560,15 +6218,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -5579,6 +6241,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5586,6 +6249,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -5597,6 +6261,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5607,10 +6272,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -5640,9 +6307,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -5652,10 +6321,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5669,10 +6340,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5686,10 +6359,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5703,15 +6378,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -5722,6 +6401,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5729,6 +6409,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -5740,6 +6421,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5752,6 +6434,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5763,10 +6446,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -5791,9 +6476,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -5803,10 +6490,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5820,10 +6509,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5837,10 +6528,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5854,15 +6547,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -5873,6 +6570,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5880,6 +6578,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -5891,6 +6590,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5901,10 +6601,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -5934,9 +6636,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -5946,10 +6650,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5963,10 +6669,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5980,10 +6688,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5997,15 +6707,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -6016,6 +6730,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6023,6 +6738,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -6034,6 +6750,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6046,6 +6763,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6057,10 +6775,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -6085,9 +6805,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -6097,10 +6819,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6114,10 +6838,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6131,10 +6857,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6148,15 +6876,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -6167,6 +6899,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6174,6 +6907,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -6185,6 +6919,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6195,10 +6930,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -6228,9 +6965,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -6240,10 +6979,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6257,10 +6998,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6274,10 +7017,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6291,15 +7036,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -6310,6 +7059,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6317,6 +7067,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -6328,6 +7079,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6340,6 +7092,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6357,15 +7110,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eight", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6373,10 +7129,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -6401,9 +7159,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -6413,10 +7173,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6430,10 +7192,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6447,10 +7211,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6464,15 +7230,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -6483,6 +7253,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6490,6 +7261,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -6501,6 +7273,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6511,10 +7284,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -6544,9 +7319,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -6556,10 +7333,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6573,10 +7352,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6590,10 +7371,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6607,15 +7390,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -6626,6 +7413,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6633,6 +7421,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -6644,6 +7433,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6656,6 +7446,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6667,10 +7458,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -6695,9 +7488,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -6707,10 +7502,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6724,10 +7521,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6741,10 +7540,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6758,15 +7559,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -6777,6 +7582,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6784,6 +7590,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -6795,6 +7602,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6805,10 +7613,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -6838,9 +7648,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -6850,10 +7662,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6867,10 +7681,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6884,10 +7700,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6901,15 +7719,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -6920,6 +7742,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6927,6 +7750,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -6938,6 +7762,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6950,6 +7775,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6961,10 +7787,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -6989,9 +7817,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -7001,10 +7831,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7018,10 +7850,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7035,10 +7869,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -7052,15 +7888,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -7071,6 +7911,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7078,6 +7919,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -7089,6 +7931,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7099,10 +7942,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -7132,9 +7977,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -7144,10 +7991,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7161,10 +8010,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7178,10 +8029,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -7195,15 +8048,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -7214,6 +8071,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7221,6 +8079,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -7232,6 +8091,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7244,6 +8104,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7255,10 +8116,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i3", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -7283,9 +8146,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -7295,10 +8160,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7312,10 +8179,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7329,10 +8198,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -7346,15 +8217,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -7365,6 +8240,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7372,6 +8248,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -7383,6 +8260,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7393,10 +8271,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -7426,9 +8306,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -7438,10 +8320,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7455,10 +8339,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7472,10 +8358,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -7489,15 +8377,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -7508,6 +8400,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7515,6 +8408,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -7526,6 +8420,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7538,6 +8433,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7555,15 +8451,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nine", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -7571,10 +8470,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -7599,9 +8500,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -7611,10 +8514,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7628,10 +8533,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7645,10 +8552,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -7662,15 +8571,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -7681,12 +8594,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -7701,10 +8616,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -7734,9 +8651,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -7746,10 +8665,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7763,10 +8684,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7780,10 +8703,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -7797,15 +8722,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -7816,12 +8745,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -7838,6 +8769,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7849,10 +8781,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -7877,9 +8811,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -7889,10 +8825,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7906,10 +8844,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7923,10 +8863,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -7940,15 +8882,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -7959,12 +8905,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -7979,10 +8927,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -8012,9 +8962,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -8024,10 +8976,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8041,10 +8995,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8058,10 +9014,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -8075,15 +9033,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -8094,12 +9056,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -8116,6 +9080,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8133,15 +9098,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ten", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -8149,10 +9117,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8177,9 +9147,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -8189,10 +9161,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8206,10 +9180,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8223,10 +9199,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -8240,15 +9218,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -8259,12 +9241,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -8279,10 +9263,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -8312,9 +9298,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -8324,10 +9312,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8341,10 +9331,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8358,10 +9350,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -8375,15 +9369,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -8394,12 +9392,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -8416,6 +9416,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8433,15 +9434,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eleven", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -8449,10 +9453,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8474,9 +9480,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -8486,10 +9494,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8503,10 +9513,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8520,10 +9532,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -8537,15 +9551,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -8556,12 +9574,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -8592,9 +9612,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -8604,10 +9626,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8621,10 +9645,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8638,10 +9664,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -8655,15 +9683,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -8674,12 +9706,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -8696,6 +9730,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8707,10 +9742,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8735,9 +9772,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -8747,10 +9786,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8764,10 +9805,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8781,10 +9824,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -8798,15 +9843,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -8817,12 +9866,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -8837,10 +9888,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -8870,9 +9923,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -8882,10 +9937,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8899,10 +9956,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8916,10 +9975,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -8933,15 +9994,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -8952,12 +10017,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -8974,6 +10041,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8991,15 +10059,18 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "twelve", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -9007,10 +10078,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -9035,9 +10108,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -9047,10 +10122,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9064,10 +10141,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -9081,10 +10160,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -9098,15 +10179,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -9117,12 +10202,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -9137,10 +10224,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -9170,9 +10259,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -9182,10 +10273,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9199,10 +10292,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -9216,10 +10311,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -9233,15 +10330,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -9252,12 +10353,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -9274,6 +10377,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9285,10 +10389,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -9313,9 +10419,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -9325,10 +10433,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9342,10 +10452,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -9359,10 +10471,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -9376,15 +10490,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -9395,12 +10513,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -9415,10 +10535,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -9448,9 +10570,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -9460,10 +10584,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9477,10 +10603,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -9494,10 +10622,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -9511,15 +10641,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -9530,12 +10664,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -9552,6 +10688,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9563,10 +10700,12 @@ description: Result of parsing clock.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -9591,9 +10730,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -9603,10 +10744,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9620,10 +10763,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -9637,10 +10782,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -9654,15 +10801,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -9673,12 +10824,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -9693,10 +10846,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -9726,9 +10881,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockDiameter", "start": 0, "type": "Identifier" @@ -9738,10 +10895,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9755,10 +10914,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -9772,10 +10933,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -9789,15 +10952,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -9808,12 +10975,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -9830,6 +10999,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9846,11 +11016,13 @@ description: Result of parsing clock.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9863,6 +11035,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -9878,6 +11051,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "iWidth", "start": 0, "type": "Identifier" @@ -9885,6 +11059,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -9894,11 +11069,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9911,6 +11088,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "iLength", "start": 0, "type": "Identifier" @@ -9918,6 +11096,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -9927,11 +11106,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9940,13 +11121,16 @@ description: Result of parsing clock.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -9957,6 +11141,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9967,6 +11152,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -9974,6 +11160,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -9989,9 +11176,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -10002,6 +11191,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10009,9 +11199,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -10030,6 +11222,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -10044,9 +11237,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -10056,6 +11251,7 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -10064,9 +11260,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "iWidth", "start": 0, "type": "Identifier" @@ -10076,10 +11274,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10104,9 +11304,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -10116,6 +11318,7 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -10124,9 +11327,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "iLength", "start": 0, "type": "Identifier" @@ -10136,10 +11341,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10159,6 +11366,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10169,9 +11377,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -10182,12 +11392,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10200,6 +11412,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10208,9 +11421,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "iWidth", "start": 0, "type": "Identifier" @@ -10226,9 +11441,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -10239,12 +11456,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10257,6 +11476,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10266,9 +11486,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "iLength", "start": 0, "type": "Identifier" @@ -10280,6 +11502,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10291,9 +11514,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -10304,12 +11529,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10322,6 +11549,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10331,9 +11559,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "iWidth", "start": 0, "type": "Identifier" @@ -10345,6 +11575,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10356,9 +11587,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -10369,25 +11602,30 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -10398,12 +11636,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10416,6 +11656,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10424,9 +11665,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberThickness", "start": 0, "type": "Identifier" @@ -10442,9 +11685,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -10455,12 +11700,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10473,6 +11720,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -10480,6 +11728,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#140f0f\"", "start": 0, "type": "Literal", @@ -10492,9 +11741,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -10505,12 +11756,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10519,12 +11772,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -10532,16 +11787,19 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -10552,6 +11810,7 @@ description: Result of parsing clock.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -10562,11 +11821,13 @@ description: Result of parsing clock.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -10584,6 +11845,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterX", "start": 0, "type": "Identifier" @@ -10599,6 +11861,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xWidth", "start": 0, "type": "Identifier" @@ -10606,6 +11869,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -10615,11 +11879,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10632,6 +11898,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLength", "start": 0, "type": "Identifier" @@ -10639,6 +11906,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -10648,11 +11916,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10661,13 +11931,16 @@ description: Result of parsing clock.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -10678,6 +11951,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10688,6 +11962,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -10695,6 +11970,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -10710,9 +11986,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -10723,6 +12001,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10730,9 +12009,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -10751,6 +12032,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -10765,9 +12047,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -10777,6 +12061,7 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -10785,9 +12070,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xWidth", "start": 0, "type": "Identifier" @@ -10797,10 +12084,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10825,9 +12114,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -10837,6 +12128,7 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -10845,9 +12137,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLength", "start": 0, "type": "Identifier" @@ -10857,10 +12151,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10880,6 +12176,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10890,9 +12187,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -10903,12 +12202,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10921,6 +12222,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10932,9 +12234,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xWidth", "start": 0, "type": "Identifier" @@ -10944,10 +12248,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -10967,9 +12273,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -10980,12 +12288,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10998,6 +12308,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -11006,6 +12317,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -11017,6 +12329,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11028,6 +12341,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -11042,9 +12356,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLength", "start": 0, "type": "Identifier" @@ -11054,10 +12370,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11071,10 +12389,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -11094,9 +12414,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -11107,12 +12429,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11125,6 +12449,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -11132,6 +12457,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -11147,6 +12473,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -11161,9 +12488,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLength", "start": 0, "type": "Identifier" @@ -11173,10 +12502,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11190,10 +12521,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -11213,9 +12546,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -11226,12 +12561,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11244,6 +12581,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11255,9 +12593,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xWidth", "start": 0, "type": "Identifier" @@ -11267,10 +12607,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -11290,9 +12632,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -11303,12 +12647,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11321,6 +12667,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -11331,6 +12678,7 @@ description: Result of parsing clock.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -11340,10 +12688,12 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -11363,6 +12713,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -11377,9 +12728,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLength", "start": 0, "type": "Identifier" @@ -11389,10 +12742,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11406,10 +12761,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11429,9 +12786,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -11442,12 +12801,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11460,6 +12821,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -11468,6 +12830,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -11479,6 +12842,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11490,6 +12854,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -11504,9 +12869,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLength", "start": 0, "type": "Identifier" @@ -11516,10 +12883,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11533,10 +12902,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11556,9 +12927,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -11569,12 +12942,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11587,6 +12962,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11599,9 +12975,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xWidth", "start": 0, "type": "Identifier" @@ -11613,15 +12991,18 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -11641,9 +13022,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -11654,12 +13037,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11672,6 +13057,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -11683,6 +13069,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -11694,15 +13081,18 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -11722,6 +13112,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -11736,9 +13127,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLength", "start": 0, "type": "Identifier" @@ -11748,10 +13141,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11765,10 +13160,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -11788,9 +13185,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -11801,12 +13200,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11819,6 +13220,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -11829,6 +13231,7 @@ description: Result of parsing clock.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -11838,10 +13241,12 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -11861,6 +13266,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -11875,9 +13281,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLength", "start": 0, "type": "Identifier" @@ -11887,10 +13295,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11904,10 +13314,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -11927,9 +13339,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -11940,12 +13354,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11958,6 +13374,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11970,9 +13387,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xWidth", "start": 0, "type": "Identifier" @@ -11984,15 +13403,18 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -12012,9 +13434,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -12025,12 +13449,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -12043,6 +13469,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -12050,6 +13477,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -12065,6 +13493,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -12079,9 +13508,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLength", "start": 0, "type": "Identifier" @@ -12091,10 +13522,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -12108,10 +13541,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -12131,9 +13566,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -12144,25 +13581,30 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -12173,12 +13615,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -12191,6 +13635,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -12199,9 +13644,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberThickness", "start": 0, "type": "Identifier" @@ -12217,9 +13664,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -12230,12 +13679,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -12248,6 +13699,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -12255,6 +13707,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#140f0f\"", "start": 0, "type": "Literal", @@ -12267,9 +13720,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -12280,12 +13735,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -12294,12 +13751,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -12307,12 +13766,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -12327,12 +13788,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -12343,6 +13806,7 @@ description: Result of parsing clock.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -12353,11 +13817,13 @@ description: Result of parsing clock.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -12375,6 +13841,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterV", "start": 0, "type": "Identifier" @@ -12390,6 +13857,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vWidth", "start": 0, "type": "Identifier" @@ -12397,6 +13865,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -12406,11 +13875,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12423,6 +13894,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vLength", "start": 0, "type": "Identifier" @@ -12430,6 +13902,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -12439,11 +13912,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12452,13 +13927,16 @@ description: Result of parsing clock.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -12469,6 +13947,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12479,6 +13958,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -12486,6 +13966,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -12501,9 +13982,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -12514,6 +13997,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12521,9 +14005,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -12542,6 +14028,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -12556,9 +14043,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -12568,6 +14057,7 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -12576,9 +14066,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vWidth", "start": 0, "type": "Identifier" @@ -12588,10 +14080,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -12616,9 +14110,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -12628,6 +14124,7 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -12636,9 +14133,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vLength", "start": 0, "type": "Identifier" @@ -12648,10 +14147,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -12671,6 +14172,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12681,9 +14183,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -12694,12 +14198,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -12712,6 +14218,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -12726,9 +14233,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vWidth", "start": 0, "type": "Identifier" @@ -12738,10 +14247,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -12755,10 +14266,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -12778,9 +14291,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -12791,12 +14306,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -12809,6 +14326,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12823,9 +14341,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vWidth", "start": 0, "type": "Identifier" @@ -12835,10 +14355,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -12860,9 +14382,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vLength", "start": 0, "type": "Identifier" @@ -12874,15 +14398,18 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -12898,6 +14425,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12908,9 +14436,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12921,12 +14451,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -12939,6 +14471,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12953,9 +14486,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vWidth", "start": 0, "type": "Identifier" @@ -12965,10 +14500,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -12989,9 +14526,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vLength", "start": 0, "type": "Identifier" @@ -13001,10 +14540,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -13020,6 +14561,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13030,9 +14572,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13043,12 +14587,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -13061,6 +14607,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -13075,9 +14622,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vWidth", "start": 0, "type": "Identifier" @@ -13087,10 +14636,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -13104,10 +14655,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -13127,9 +14680,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -13140,12 +14695,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -13158,6 +14715,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13176,9 +14734,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vWidth", "start": 0, "type": "Identifier" @@ -13190,15 +14750,18 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -13212,10 +14775,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -13234,9 +14799,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vLength", "start": 0, "type": "Identifier" @@ -13248,6 +14815,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13255,6 +14823,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13265,9 +14834,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13278,25 +14849,30 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -13307,12 +14883,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -13325,6 +14903,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -13333,9 +14912,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberThickness", "start": 0, "type": "Identifier" @@ -13351,9 +14932,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -13364,12 +14947,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -13382,6 +14967,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -13389,6 +14975,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#140f0f\"", "start": 0, "type": "Literal", @@ -13401,9 +14988,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -13414,12 +15003,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -13428,12 +15019,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -13441,16 +15034,19 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -13461,6 +15057,7 @@ description: Result of parsing clock.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -13471,11 +15068,13 @@ description: Result of parsing clock.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -13495,6 +15094,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -13503,21 +15103,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -13530,6 +15135,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier", @@ -13542,6 +15148,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -13554,6 +15161,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -13573,6 +15181,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -13581,21 +15190,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -13608,6 +15222,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "one", "start": 0, "type": "Identifier", @@ -13620,6 +15235,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -13632,6 +15248,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -13651,9 +15268,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -13664,11 +15283,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -13691,6 +15312,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -13699,21 +15321,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -13726,6 +15353,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier", @@ -13738,6 +15366,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -13750,6 +15379,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -13769,6 +15399,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -13777,21 +15408,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -13804,6 +15440,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier", @@ -13816,6 +15453,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -13828,6 +15466,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -13847,9 +15486,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -13860,11 +15501,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -13884,6 +15527,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -13892,21 +15536,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -13919,6 +15568,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier", @@ -13931,6 +15581,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -13943,6 +15594,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -13962,6 +15614,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -13970,21 +15623,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -13997,6 +15655,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier", @@ -14009,6 +15668,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -14021,6 +15681,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -14040,9 +15701,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -14053,11 +15716,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -14072,6 +15737,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -14080,21 +15746,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14107,6 +15778,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier", @@ -14119,6 +15791,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -14131,6 +15804,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -14150,6 +15824,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -14158,21 +15833,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14185,6 +15865,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier", @@ -14197,6 +15878,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -14209,6 +15891,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -14228,9 +15911,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -14241,11 +15926,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -14265,6 +15952,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -14273,21 +15961,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14300,6 +15993,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier", @@ -14312,6 +16006,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -14324,6 +16019,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -14343,6 +16039,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -14351,21 +16048,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14378,6 +16080,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier", @@ -14390,6 +16093,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -14402,6 +16106,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -14421,9 +16126,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -14434,11 +16141,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -14453,6 +16162,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -14461,21 +16171,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14488,6 +16203,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier", @@ -14500,6 +16216,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i3", "start": 0, "type": "Identifier", @@ -14512,6 +16229,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -14531,6 +16249,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -14539,21 +16258,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14566,6 +16290,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier", @@ -14578,6 +16303,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i3", "start": 0, "type": "Identifier", @@ -14590,6 +16316,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -14609,9 +16336,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -14622,11 +16351,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -14641,6 +16372,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -14649,21 +16381,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14676,6 +16413,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "four", "start": 0, "type": "Identifier", @@ -14688,6 +16426,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -14700,6 +16439,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -14719,6 +16459,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -14727,21 +16468,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14754,6 +16500,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "four", "start": 0, "type": "Identifier", @@ -14766,6 +16513,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -14778,6 +16526,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -14797,9 +16546,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -14810,11 +16561,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -14834,6 +16587,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -14842,21 +16596,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14869,6 +16628,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "four", "start": 0, "type": "Identifier", @@ -14881,6 +16641,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -14893,6 +16654,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -14912,6 +16674,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -14920,21 +16683,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -14947,6 +16715,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "four", "start": 0, "type": "Identifier", @@ -14959,6 +16728,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -14971,6 +16741,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -14990,9 +16761,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterV", "start": 0, "type": "Identifier" @@ -15003,11 +16776,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -15022,6 +16797,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -15030,21 +16806,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15057,6 +16838,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "five", "start": 0, "type": "Identifier", @@ -15069,6 +16851,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -15081,6 +16864,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -15100,6 +16884,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -15108,21 +16893,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15135,6 +16925,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "five", "start": 0, "type": "Identifier", @@ -15147,6 +16938,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -15159,6 +16951,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -15178,9 +16971,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterV", "start": 0, "type": "Identifier" @@ -15191,11 +16986,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -15215,6 +17012,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -15223,21 +17021,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15250,6 +17053,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "six", "start": 0, "type": "Identifier", @@ -15262,6 +17066,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -15274,6 +17079,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -15293,6 +17099,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -15301,21 +17108,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15328,6 +17140,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "six", "start": 0, "type": "Identifier", @@ -15340,6 +17153,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -15352,6 +17166,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -15371,9 +17186,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterV", "start": 0, "type": "Identifier" @@ -15384,11 +17201,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -15408,6 +17227,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -15416,21 +17236,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15443,6 +17268,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "six", "start": 0, "type": "Identifier", @@ -15455,6 +17281,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -15467,6 +17294,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -15486,6 +17314,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -15494,21 +17323,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15521,6 +17355,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "six", "start": 0, "type": "Identifier", @@ -15533,6 +17368,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -15545,6 +17381,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -15564,9 +17401,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -15577,11 +17416,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -15596,6 +17437,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -15604,21 +17446,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15631,6 +17478,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seven", "start": 0, "type": "Identifier", @@ -15643,6 +17491,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -15655,6 +17504,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -15674,6 +17524,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -15682,21 +17533,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15709,6 +17565,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seven", "start": 0, "type": "Identifier", @@ -15721,6 +17578,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -15733,6 +17591,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -15752,9 +17611,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterV", "start": 0, "type": "Identifier" @@ -15765,11 +17626,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -15789,6 +17652,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -15797,21 +17661,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15824,6 +17693,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seven", "start": 0, "type": "Identifier", @@ -15836,6 +17706,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -15848,6 +17719,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -15867,6 +17739,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -15875,21 +17748,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -15902,6 +17780,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seven", "start": 0, "type": "Identifier", @@ -15914,6 +17793,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -15926,6 +17806,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -15945,9 +17826,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -15958,11 +17841,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -15977,6 +17862,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -15985,21 +17871,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16012,6 +17903,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seven", "start": 0, "type": "Identifier", @@ -16024,6 +17916,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -16036,6 +17929,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -16055,6 +17949,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -16063,21 +17958,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16090,6 +17990,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seven", "start": 0, "type": "Identifier", @@ -16102,6 +18003,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -16114,6 +18016,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -16133,9 +18036,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -16146,11 +18051,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -16165,6 +18072,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -16173,21 +18081,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16200,6 +18113,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eight", "start": 0, "type": "Identifier", @@ -16212,6 +18126,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -16224,6 +18139,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -16243,6 +18159,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -16251,21 +18168,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16278,6 +18200,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eight", "start": 0, "type": "Identifier", @@ -16290,6 +18213,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "v", "start": 0, "type": "Identifier", @@ -16302,6 +18226,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -16321,9 +18246,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterV", "start": 0, "type": "Identifier" @@ -16334,11 +18261,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -16358,6 +18287,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -16366,21 +18296,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16393,6 +18328,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eight", "start": 0, "type": "Identifier", @@ -16405,6 +18341,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -16417,6 +18354,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -16436,6 +18374,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -16444,21 +18383,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16471,6 +18415,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eight", "start": 0, "type": "Identifier", @@ -16483,6 +18428,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -16495,6 +18441,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -16514,9 +18461,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -16527,11 +18476,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -16546,6 +18497,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -16554,21 +18506,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16581,6 +18538,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eight", "start": 0, "type": "Identifier", @@ -16593,6 +18551,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -16605,6 +18564,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -16624,6 +18584,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -16632,21 +18593,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16659,6 +18625,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eight", "start": 0, "type": "Identifier", @@ -16671,6 +18638,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -16683,6 +18651,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -16702,9 +18671,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -16715,11 +18686,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -16734,6 +18707,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -16742,21 +18716,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16769,6 +18748,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eight", "start": 0, "type": "Identifier", @@ -16781,6 +18761,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i3", "start": 0, "type": "Identifier", @@ -16793,6 +18774,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -16812,6 +18794,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -16820,21 +18803,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16847,6 +18835,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eight", "start": 0, "type": "Identifier", @@ -16859,6 +18848,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i3", "start": 0, "type": "Identifier", @@ -16871,6 +18861,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -16890,9 +18881,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -16903,11 +18896,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -16922,6 +18917,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -16930,21 +18926,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -16957,6 +18958,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nine", "start": 0, "type": "Identifier", @@ -16969,6 +18971,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -16981,6 +18984,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -17000,6 +19004,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -17008,21 +19013,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17035,6 +19045,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nine", "start": 0, "type": "Identifier", @@ -17047,6 +19058,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -17059,6 +19071,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -17078,9 +19091,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -17091,11 +19106,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -17115,6 +19132,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -17123,21 +19141,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17150,6 +19173,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nine", "start": 0, "type": "Identifier", @@ -17162,6 +19186,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier", @@ -17174,6 +19199,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -17193,6 +19219,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -17201,21 +19228,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17228,6 +19260,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nine", "start": 0, "type": "Identifier", @@ -17240,6 +19273,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier", @@ -17252,6 +19286,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -17271,9 +19306,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterX", "start": 0, "type": "Identifier" @@ -17284,11 +19321,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -17303,6 +19342,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -17311,21 +19351,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17338,6 +19383,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ten", "start": 0, "type": "Identifier", @@ -17350,6 +19396,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier", @@ -17362,6 +19409,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -17381,6 +19429,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -17389,21 +19438,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17416,6 +19470,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ten", "start": 0, "type": "Identifier", @@ -17428,6 +19483,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier", @@ -17440,6 +19496,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -17459,9 +19516,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterX", "start": 0, "type": "Identifier" @@ -17472,11 +19531,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -17496,6 +19557,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -17504,21 +19566,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17531,6 +19598,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eleven", "start": 0, "type": "Identifier", @@ -17543,6 +19611,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier", @@ -17555,6 +19624,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -17574,6 +19644,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -17582,21 +19653,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17609,6 +19685,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eleven", "start": 0, "type": "Identifier", @@ -17621,6 +19698,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier", @@ -17633,6 +19711,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -17652,9 +19731,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterX", "start": 0, "type": "Identifier" @@ -17665,11 +19746,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -17689,6 +19772,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -17697,21 +19781,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17724,6 +19813,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eleven", "start": 0, "type": "Identifier", @@ -17736,6 +19826,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -17748,6 +19839,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -17767,6 +19859,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -17775,21 +19868,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17802,6 +19900,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "eleven", "start": 0, "type": "Identifier", @@ -17814,6 +19913,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -17826,6 +19926,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -17845,9 +19946,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -17858,11 +19961,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -17877,6 +19982,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -17885,21 +19991,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17912,6 +20023,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "twelve", "start": 0, "type": "Identifier", @@ -17924,6 +20036,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier", @@ -17936,6 +20049,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -17955,6 +20069,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -17963,21 +20078,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -17990,6 +20110,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "twelve", "start": 0, "type": "Identifier", @@ -18002,6 +20123,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier", @@ -18014,6 +20136,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -18033,9 +20156,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterX", "start": 0, "type": "Identifier" @@ -18046,11 +20171,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -18070,6 +20197,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -18078,21 +20206,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -18105,6 +20238,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "twelve", "start": 0, "type": "Identifier", @@ -18117,6 +20251,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -18129,6 +20264,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -18148,6 +20284,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -18156,21 +20293,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -18183,6 +20325,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "twelve", "start": 0, "type": "Identifier", @@ -18195,6 +20338,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier", @@ -18207,6 +20351,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -18226,9 +20371,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -18239,11 +20386,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -18258,6 +20407,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -18266,21 +20416,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -18293,6 +20448,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "twelve", "start": 0, "type": "Identifier", @@ -18305,6 +20461,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -18317,6 +20474,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -18336,6 +20494,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -18344,21 +20503,26 @@ description: Result of parsing clock.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numberObject", "start": 0, "type": "Identifier" @@ -18371,6 +20535,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "twelve", "start": 0, "type": "Identifier", @@ -18383,6 +20548,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i2", "start": 0, "type": "Identifier", @@ -18395,6 +20561,7 @@ description: Result of parsing clock.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -18414,9 +20581,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "letterI", "start": 0, "type": "Identifier" @@ -18427,11 +20596,13 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -18448,6 +20619,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -18456,9 +20628,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -18474,9 +20648,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -18487,6 +20663,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18494,9 +20671,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockBody", "start": 0, "type": "Identifier" @@ -18514,6 +20693,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -18524,6 +20704,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -18536,6 +20717,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -18547,6 +20729,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18557,6 +20740,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -18565,9 +20749,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -18583,9 +20769,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -18596,6 +20784,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18608,6 +20797,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -18616,9 +20806,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numHeight", "start": 0, "type": "Identifier" @@ -18634,9 +20826,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -18647,12 +20841,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -18661,12 +20857,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -18683,6 +20881,7 @@ description: Result of parsing clock.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "preComments": [ "", "", @@ -18700,18 +20899,22 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -18722,6 +20925,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18732,6 +20936,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -18739,6 +20944,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -18754,9 +20960,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -18767,6 +20975,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18774,9 +20983,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -18788,11 +20999,13 @@ description: Result of parsing clock.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -18805,6 +21018,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile007", "start": 0, "type": "Identifier" @@ -18818,6 +21032,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -18838,9 +21053,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -18850,10 +21067,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -18867,10 +21086,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -18884,15 +21105,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -18903,6 +21128,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18913,9 +21139,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -18925,10 +21153,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -18960,9 +21190,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -18972,10 +21204,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -18989,10 +21223,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -19006,15 +21242,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -19025,6 +21265,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19035,9 +21276,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -19047,10 +21290,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -19071,6 +21316,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19081,9 +21327,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -19094,6 +21342,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19101,9 +21350,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" @@ -19121,6 +21372,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -19141,9 +21393,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -19153,10 +21407,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -19170,10 +21426,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -19187,15 +21445,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -19206,6 +21468,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19216,9 +21479,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -19228,10 +21493,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -19263,9 +21530,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -19275,10 +21544,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -19292,10 +21563,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -19309,15 +21582,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -19328,6 +21605,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19338,9 +21616,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -19350,10 +21630,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -19374,6 +21656,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19384,6 +21667,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19404,9 +21688,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -19416,10 +21702,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -19433,10 +21721,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -19450,15 +21740,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -19469,6 +21763,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19479,9 +21774,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -19491,10 +21788,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "340", "start": 0, "type": "Literal", @@ -19526,9 +21825,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -19538,10 +21839,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -19555,10 +21858,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -19572,15 +21877,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -19591,6 +21900,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19601,9 +21911,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -19613,10 +21925,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "340", "start": 0, "type": "Literal", @@ -19637,6 +21951,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19647,9 +21962,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -19660,12 +21977,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -19678,6 +21997,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -19686,9 +22006,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -19704,6 +22026,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -19712,9 +22035,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandArmLength", "start": 0, "type": "Identifier" @@ -19730,9 +22055,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -19743,12 +22070,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -19761,6 +22090,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -19772,9 +22102,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -19784,10 +22116,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -19807,6 +22141,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -19818,9 +22153,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandWidth", "start": 0, "type": "Identifier" @@ -19830,10 +22167,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -19853,6 +22192,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -19860,6 +22200,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -19871,9 +22212,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -19884,12 +22227,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -19902,6 +22247,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19919,9 +22265,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandLargeDiameter", "start": 0, "type": "Identifier" @@ -19931,10 +22279,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -19948,15 +22298,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -19967,6 +22321,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19974,9 +22329,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -20001,9 +22358,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandLargeDiameter", "start": 0, "type": "Identifier" @@ -20013,10 +22372,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -20030,15 +22391,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -20049,6 +22414,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20056,9 +22422,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -20075,6 +22443,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20085,6 +22454,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -20092,6 +22462,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -20103,9 +22474,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20116,12 +22489,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -20134,6 +22509,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -20142,13 +22518,16 @@ description: Result of parsing clock.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -20159,6 +22538,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20166,9 +22546,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg002", "start": 0, "type": "Identifier" @@ -20179,10 +22561,12 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -20202,18 +22586,22 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -20224,6 +22612,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20231,9 +22620,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg002", "start": 0, "type": "Identifier" @@ -20250,9 +22641,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -20263,12 +22656,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -20281,6 +22676,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -20292,9 +22688,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hourHandAngle", "start": 0, "type": "Identifier" @@ -20304,10 +22702,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -20327,18 +22727,22 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -20349,6 +22753,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20356,9 +22761,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg004", "start": 0, "type": "Identifier" @@ -20375,9 +22782,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -20388,12 +22797,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -20406,6 +22817,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20414,13 +22826,16 @@ description: Result of parsing clock.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -20431,25 +22846,30 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -20460,12 +22880,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -20473,6 +22895,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20483,9 +22906,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20496,25 +22921,30 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -20525,12 +22955,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -20539,12 +22971,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -20561,11 +22995,13 @@ description: Result of parsing clock.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -20578,6 +23014,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile008", "start": 0, "type": "Identifier" @@ -20589,6 +23026,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -20599,6 +23037,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -20611,6 +23050,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -20622,6 +23062,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20632,6 +23073,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -20640,9 +23082,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -20658,9 +23102,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -20671,6 +23117,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20678,9 +23125,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" @@ -20691,11 +23140,13 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -20712,6 +23163,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -20720,9 +23172,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile008", "start": 0, "type": "Identifier" @@ -20738,9 +23192,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -20751,6 +23207,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20758,9 +23215,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile007", "start": 0, "type": "Identifier" @@ -20778,6 +23237,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -20785,6 +23245,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -20800,9 +23261,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -20813,12 +23276,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -20831,6 +23296,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -20838,6 +23304,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#404040\"", "start": 0, "type": "Literal", @@ -20850,9 +23317,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -20863,12 +23332,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -20877,12 +23348,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -20899,6 +23372,7 @@ description: Result of parsing clock.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -20911,18 +23385,22 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch006", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -20933,6 +23411,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20943,6 +23422,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -20950,6 +23430,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -20965,9 +23446,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -20978,6 +23461,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20985,9 +23469,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -20999,11 +23485,13 @@ description: Result of parsing clock.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -21016,6 +23504,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile009", "start": 0, "type": "Identifier" @@ -21029,6 +23518,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -21049,9 +23539,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -21061,10 +23553,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -21078,10 +23572,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -21095,15 +23591,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -21114,6 +23614,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21124,9 +23625,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -21136,10 +23639,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -21171,9 +23676,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -21183,10 +23690,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -21200,10 +23709,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -21217,15 +23728,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -21236,6 +23751,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21246,9 +23762,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -21258,10 +23776,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -21282,6 +23802,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21292,9 +23813,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -21305,6 +23828,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21312,9 +23836,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch006", "start": 0, "type": "Identifier" @@ -21332,6 +23858,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -21352,9 +23879,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -21364,10 +23893,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -21381,10 +23912,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -21398,15 +23931,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -21417,6 +23954,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21427,9 +23965,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -21439,10 +23979,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -21474,9 +24016,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -21486,10 +24030,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -21503,10 +24049,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -21520,15 +24068,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -21539,6 +24091,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21549,9 +24102,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -21561,10 +24116,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -21585,6 +24142,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21595,6 +24153,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -21615,9 +24174,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -21627,10 +24188,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -21644,10 +24207,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -21661,15 +24226,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -21680,6 +24249,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21690,9 +24260,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -21702,10 +24274,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "340", "start": 0, "type": "Literal", @@ -21737,9 +24311,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nubDiameter", "start": 0, "type": "Identifier" @@ -21749,10 +24325,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -21766,10 +24344,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.375", "start": 0, "type": "Literal", @@ -21783,15 +24363,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -21802,6 +24386,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21812,9 +24397,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -21824,10 +24411,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "340", "start": 0, "type": "Literal", @@ -21848,6 +24437,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21858,9 +24448,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -21871,12 +24463,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -21889,6 +24483,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -21897,9 +24492,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -21915,6 +24512,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -21923,9 +24521,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandArmLength", "start": 0, "type": "Identifier" @@ -21941,9 +24541,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -21954,12 +24556,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -21972,6 +24576,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -21983,9 +24588,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -21995,10 +24602,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -22018,6 +24627,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -22029,9 +24639,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandWidth", "start": 0, "type": "Identifier" @@ -22041,10 +24653,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -22064,6 +24678,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -22071,6 +24686,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -22082,9 +24698,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -22095,12 +24713,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -22113,6 +24733,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -22130,9 +24751,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandLargeDiameter", "start": 0, "type": "Identifier" @@ -22142,10 +24765,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -22159,15 +24784,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -22178,6 +24807,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22185,9 +24815,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -22212,9 +24844,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandLargeDiameter", "start": 0, "type": "Identifier" @@ -22224,10 +24858,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -22241,15 +24877,19 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -22260,6 +24900,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22267,9 +24908,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -22286,6 +24929,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22296,6 +24940,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -22303,6 +24948,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -22314,9 +24960,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22327,12 +24975,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -22345,6 +24995,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -22353,13 +25004,16 @@ description: Result of parsing clock.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -22370,6 +25024,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22377,9 +25032,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg005", "start": 0, "type": "Identifier" @@ -22390,10 +25047,12 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -22413,18 +25072,22 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -22435,6 +25098,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22442,9 +25106,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg005", "start": 0, "type": "Identifier" @@ -22461,9 +25127,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -22474,12 +25142,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -22492,6 +25162,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -22503,9 +25174,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minuteHandAngle", "start": 0, "type": "Identifier" @@ -22515,10 +25188,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -22538,18 +25213,22 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -22560,6 +25239,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22567,9 +25247,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg003", "start": 0, "type": "Identifier" @@ -22586,9 +25268,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -22599,12 +25283,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -22617,6 +25303,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -22625,13 +25312,16 @@ description: Result of parsing clock.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -22642,25 +25332,30 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -22671,12 +25366,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -22684,6 +25381,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22694,9 +25392,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22707,25 +25407,30 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -22736,12 +25441,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -22750,15 +25457,18 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -22771,6 +25481,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile010", "start": 0, "type": "Identifier" @@ -22782,6 +25493,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -22792,6 +25504,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -22804,6 +25517,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -22815,6 +25529,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22825,6 +25540,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -22832,6 +25548,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -22847,9 +25564,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -22860,6 +25579,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22867,9 +25587,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch006", "start": 0, "type": "Identifier" @@ -22880,11 +25602,13 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -22901,6 +25625,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -22909,9 +25634,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile010", "start": 0, "type": "Identifier" @@ -22927,9 +25654,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -22940,6 +25669,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22947,9 +25677,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile009", "start": 0, "type": "Identifier" @@ -22967,6 +25699,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -22974,6 +25707,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -22989,9 +25723,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -23002,12 +25738,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -23020,6 +25758,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -23027,6 +25766,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#404040\"", "start": 0, "type": "Literal", @@ -23039,9 +25779,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -23052,12 +25794,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -23066,12 +25810,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23088,6 +25834,7 @@ description: Result of parsing clock.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -23100,6 +25847,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwHeadDiameter", "start": 0, "type": "Identifier" @@ -23107,6 +25855,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.53", "start": 0, "type": "Literal", @@ -23116,11 +25865,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -23133,6 +25884,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwTolerance", "start": 0, "type": "Identifier" @@ -23140,6 +25892,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".5", "start": 0, "type": "Literal", @@ -23149,11 +25902,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -23166,6 +25921,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotWidth", "start": 0, "type": "Identifier" @@ -23180,9 +25936,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwHeadDiameter", "start": 0, "type": "Identifier" @@ -23192,14 +25950,17 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwTolerance", "start": 0, "type": "Identifier" @@ -23213,10 +25974,12 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -23230,11 +25993,13 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -23247,6 +26012,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotLength", "start": 0, "type": "Identifier" @@ -23254,6 +26020,7 @@ description: Result of parsing clock.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -23263,11 +26030,13 @@ description: Result of parsing clock.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -23280,6 +26049,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -23291,6 +26061,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -23299,9 +26070,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -23317,9 +26090,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -23330,6 +26105,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23337,9 +26113,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clockBody", "start": 0, "type": "Identifier" @@ -23350,11 +26128,13 @@ description: Result of parsing clock.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -23372,6 +26152,7 @@ description: Result of parsing clock.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile004", "start": 0, "type": "Identifier" @@ -23385,6 +26166,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -23400,9 +26182,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotWidth", "start": 0, "type": "Identifier" @@ -23414,15 +26198,18 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -23439,6 +26226,7 @@ description: Result of parsing clock.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -23450,6 +26238,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23460,9 +26249,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -23473,6 +26264,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23480,9 +26272,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -23500,6 +26294,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -23509,9 +26304,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotLength", "start": 0, "type": "Identifier" @@ -23523,6 +26320,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23534,9 +26332,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -23547,6 +26347,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23559,6 +26360,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -23573,9 +26375,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwHeadDiameter", "start": 0, "type": "Identifier" @@ -23585,10 +26389,12 @@ description: Result of parsing clock.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -23602,14 +26408,17 @@ description: Result of parsing clock.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screwTolerance", "start": 0, "type": "Identifier" @@ -23629,6 +26438,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -23636,6 +26446,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -23651,6 +26462,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -23658,6 +26470,7 @@ description: Result of parsing clock.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "420", "start": 0, "type": "Literal", @@ -23673,9 +26486,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -23686,12 +26501,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -23704,6 +26521,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -23712,9 +26530,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotLength", "start": 0, "type": "Identifier" @@ -23730,9 +26550,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -23743,12 +26565,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -23761,6 +26585,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -23769,13 +26594,16 @@ description: Result of parsing clock.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -23786,25 +26614,30 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -23815,12 +26648,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -23828,6 +26663,7 @@ description: Result of parsing clock.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23838,9 +26674,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -23851,19 +26689,23 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -23874,6 +26716,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23886,6 +26729,7 @@ description: Result of parsing clock.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -23894,6 +26738,7 @@ description: Result of parsing clock.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -23905,6 +26750,7 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23916,9 +26762,11 @@ description: Result of parsing clock.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -23929,12 +26777,14 @@ description: Result of parsing clock.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -23943,12 +26793,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23965,11 +26817,13 @@ description: Result of parsing clock.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -23977,12 +26831,14 @@ description: Result of parsing clock.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "21": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/clock/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/clock/program_memory.snap index c89a537f9..5c88f91b0 100644 --- a/rust/kcl-lib/tests/kcl_samples/clock/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/clock/program_memory.snap @@ -27,6 +27,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -40,6 +41,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 968, "end": 980, + "moduleId": 0, "start": 968, "type": "TagDeclarator", "value": "capStart001" @@ -69,6 +71,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -235,6 +238,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 1312, "end": 1318, + "moduleId": 0, "start": 1312, "type": "TagDeclarator", "value": "seg01" @@ -248,6 +252,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 1512, "end": 1522, + "moduleId": 0, "start": 1512, "type": "TagDeclarator", "value": "capEnd001" @@ -277,6 +282,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 1312, "end": 1318, + "moduleId": 0, "start": 1312, "type": "TagDeclarator", "value": "seg01" @@ -324,6 +330,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -337,6 +344,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 968, "end": 980, + "moduleId": 0, "start": 968, "type": "TagDeclarator", "value": "capStart001" @@ -366,6 +374,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -573,6 +582,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -586,6 +596,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 968, "end": 980, + "moduleId": 0, "start": 968, "type": "TagDeclarator", "value": "capStart001" @@ -615,6 +626,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -1841,6 +1853,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -1944,6 +1957,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 1312, "end": 1318, + "moduleId": 0, "start": 1312, "type": "TagDeclarator", "value": "seg01" @@ -1991,6 +2005,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -2004,6 +2019,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 968, "end": 980, + "moduleId": 0, "start": 968, "type": "TagDeclarator", "value": "capStart001" @@ -2033,6 +2049,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -2243,6 +2260,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -2256,6 +2274,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 968, "end": 980, + "moduleId": 0, "start": 968, "type": "TagDeclarator", "value": "capStart001" @@ -2285,6 +2304,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -2600,6 +2620,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -2613,6 +2634,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 968, "end": 980, + "moduleId": 0, "start": 968, "type": "TagDeclarator", "value": "capStart001" @@ -2642,6 +2664,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -2853,6 +2876,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 9962, "end": 9969, + "moduleId": 0, "start": 9962, "type": "TagDeclarator", "value": "seg004" @@ -2878,6 +2902,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 10158, "end": 10165, + "moduleId": 0, "start": 10158, "type": "TagDeclarator", "value": "seg002" @@ -3188,6 +3213,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 11501, "end": 11508, + "moduleId": 0, "start": 11501, "type": "TagDeclarator", "value": "seg003" @@ -3213,6 +3239,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 11705, "end": 11712, + "moduleId": 0, "start": 11705, "type": "TagDeclarator", "value": "seg005" @@ -3571,6 +3598,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" @@ -3584,6 +3612,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 968, "end": 980, + "moduleId": 0, "start": 968, "type": "TagDeclarator", "value": "capStart001" @@ -3613,6 +3642,7 @@ description: Variables in memory after executing clock.kcl "tag": { "commentStart": 889, "end": 895, + "moduleId": 0, "start": 889, "type": "TagDeclarator", "value": "seg02" diff --git a/rust/kcl-lib/tests/kcl_samples/cold-plate/ast.snap b/rust/kcl-lib/tests/kcl_samples/cold-plate/ast.snap index a7a20025a..b15bc57a6 100644 --- a/rust/kcl-lib/tests/kcl_samples/cold-plate/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/cold-plate/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing cold-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing cold-plate.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -32,10 +34,12 @@ description: Result of parsing cold-plate.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -49,11 +53,13 @@ description: Result of parsing cold-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -69,6 +75,7 @@ description: Result of parsing cold-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -76,6 +83,7 @@ description: Result of parsing cold-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.080", "start": 0, "type": "Literal", @@ -85,11 +93,13 @@ description: Result of parsing cold-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -102,6 +112,7 @@ description: Result of parsing cold-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -109,6 +120,7 @@ description: Result of parsing cold-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -118,11 +130,13 @@ description: Result of parsing cold-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -135,6 +149,7 @@ description: Result of parsing cold-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coldPlate", "start": 0, "type": "Identifier" @@ -142,13 +157,16 @@ description: Result of parsing cold-plate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -159,6 +177,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -166,9 +185,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -186,6 +207,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -196,6 +218,7 @@ description: Result of parsing cold-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -212,9 +235,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -224,10 +249,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -243,6 +270,7 @@ description: Result of parsing cold-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -253,9 +281,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -266,6 +296,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -278,6 +309,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -289,9 +321,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -301,6 +335,7 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -309,9 +344,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -321,10 +358,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -348,9 +387,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -361,6 +402,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -373,6 +415,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -382,9 +425,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -396,6 +441,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -407,9 +453,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -420,6 +468,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -432,6 +481,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -439,6 +489,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -454,6 +505,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -465,9 +517,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -477,10 +531,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -500,9 +556,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -513,6 +571,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -525,6 +584,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -533,9 +593,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -551,9 +613,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -564,6 +628,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -576,6 +641,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -590,9 +656,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -602,10 +670,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -619,14 +689,17 @@ description: Result of parsing cold-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -646,6 +719,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -653,6 +727,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -664,9 +739,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -677,6 +754,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -689,6 +767,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -698,9 +777,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -712,6 +793,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -723,6 +805,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -730,6 +813,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -741,9 +825,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -754,6 +840,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -766,6 +853,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -773,6 +861,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -788,6 +877,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -799,9 +889,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -811,10 +903,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -834,9 +928,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -847,6 +943,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -859,6 +956,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -867,9 +965,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -885,6 +985,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -892,6 +993,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -903,9 +1005,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -916,6 +1020,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -928,6 +1033,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -939,9 +1045,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -951,6 +1059,7 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -959,9 +1068,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -971,10 +1082,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -998,9 +1111,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1011,6 +1126,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1023,6 +1139,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1031,6 +1148,7 @@ description: Result of parsing cold-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "77", "start": 0, "type": "Literal", @@ -1042,6 +1160,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1053,6 +1172,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1064,9 +1184,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -1076,10 +1198,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1099,9 +1223,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1112,6 +1238,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1124,6 +1251,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1131,6 +1259,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "77", "start": 0, "type": "Literal", @@ -1146,6 +1275,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1154,9 +1284,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -1172,6 +1304,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1179,6 +1312,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1190,9 +1324,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1203,6 +1339,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1215,18 +1352,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -1237,6 +1378,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1244,9 +1386,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1263,6 +1407,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1270,6 +1415,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1285,9 +1431,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1298,6 +1446,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1310,6 +1459,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1317,6 +1467,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1332,9 +1483,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1345,6 +1498,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1357,6 +1511,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1364,6 +1519,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1379,9 +1535,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1392,6 +1550,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1404,6 +1563,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1412,9 +1572,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -1430,9 +1592,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -1443,19 +1607,23 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1466,6 +1634,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1478,6 +1647,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1485,6 +1655,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -1500,6 +1671,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -1507,6 +1679,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1519,9 +1692,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1532,6 +1707,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1540,12 +1716,14 @@ description: Result of parsing cold-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "18": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1562,11 +1740,13 @@ description: Result of parsing cold-plate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1584,6 +1764,7 @@ description: Result of parsing cold-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "copperTubePath", "start": 0, "type": "Identifier" @@ -1591,13 +1772,16 @@ description: Result of parsing cold-plate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1608,6 +1792,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1618,6 +1803,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1626,9 +1812,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -1644,9 +1832,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1657,6 +1847,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1664,9 +1855,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1685,6 +1878,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1696,6 +1890,7 @@ description: Result of parsing cold-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.35", "start": 0, "type": "Literal", @@ -1707,6 +1902,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1720,9 +1916,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -1734,15 +1932,18 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1758,6 +1959,7 @@ description: Result of parsing cold-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1768,9 +1970,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1781,6 +1985,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1793,6 +1998,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1800,6 +2006,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.13", "start": 0, "type": "Literal", @@ -1815,6 +2022,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1822,6 +2030,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1833,9 +2042,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1846,6 +2057,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1858,6 +2070,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1865,6 +2078,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1880,6 +2094,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1888,9 +2103,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -1906,6 +2123,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1913,6 +2131,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1924,9 +2143,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1937,6 +2158,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1949,18 +2171,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -1971,6 +2197,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1978,9 +2205,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1997,6 +2226,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2004,6 +2234,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.02", "start": 0, "type": "Literal", @@ -2019,6 +2250,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2026,6 +2258,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2037,9 +2270,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2050,6 +2285,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2062,6 +2298,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2070,6 +2307,7 @@ description: Result of parsing cold-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2081,6 +2319,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2092,6 +2331,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2100,9 +2340,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -2118,6 +2360,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2125,6 +2368,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2136,9 +2380,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2149,6 +2395,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2161,18 +2408,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -2183,6 +2434,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2190,9 +2442,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2209,18 +2463,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2231,6 +2489,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2238,9 +2497,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg06", "start": 0, "type": "Identifier" @@ -2257,9 +2518,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2270,6 +2533,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2282,6 +2546,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2289,6 +2554,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2304,6 +2570,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2312,9 +2579,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -2330,6 +2599,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2337,6 +2607,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2348,9 +2619,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2361,6 +2634,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2373,18 +2647,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -2395,6 +2673,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2402,9 +2681,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -2421,18 +2702,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2443,6 +2728,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2450,9 +2736,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -2469,9 +2757,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2482,6 +2772,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2490,12 +2781,14 @@ description: Result of parsing cold-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2512,11 +2805,13 @@ description: Result of parsing cold-plate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2529,6 +2824,7 @@ description: Result of parsing cold-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeWall", "start": 0, "type": "Identifier" @@ -2536,13 +2832,16 @@ description: Result of parsing cold-plate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2553,6 +2852,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2563,6 +2863,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2571,6 +2872,7 @@ description: Result of parsing cold-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.35", "start": 0, "type": "Literal", @@ -2582,6 +2884,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2593,9 +2896,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2606,6 +2911,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2613,9 +2919,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -2634,6 +2942,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2649,9 +2958,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -2663,15 +2974,18 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2689,9 +3003,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -2703,6 +3019,7 @@ description: Result of parsing cold-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2713,6 +3030,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2724,9 +3042,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -2736,10 +3056,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2759,9 +3081,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2772,6 +3096,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2784,6 +3109,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -2795,6 +3121,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2810,9 +3137,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -2824,15 +3153,18 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2850,9 +3182,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -2864,6 +3198,7 @@ description: Result of parsing cold-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2874,6 +3209,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2888,9 +3224,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -2900,10 +3238,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2917,14 +3257,17 @@ description: Result of parsing cold-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2944,9 +3287,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2957,6 +3302,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2968,9 +3314,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2981,12 +3329,14 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2999,6 +3349,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -3007,9 +3358,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "copperTubePath", "start": 0, "type": "Identifier" @@ -3025,9 +3378,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -3038,6 +3393,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3050,6 +3406,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -3057,6 +3414,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#b81b0a\"", "start": 0, "type": "Literal", @@ -3069,9 +3427,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -3082,6 +3442,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3090,12 +3451,14 @@ description: Result of parsing cold-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3112,11 +3475,13 @@ description: Result of parsing cold-plate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3129,6 +3494,7 @@ description: Result of parsing cold-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "brazedCap", "start": 0, "type": "Identifier" @@ -3136,13 +3502,16 @@ description: Result of parsing cold-plate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3153,6 +3522,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3160,9 +3530,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -3180,18 +3552,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEnd", "start": 0, "type": "Identifier" @@ -3202,6 +3578,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3209,9 +3586,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg07", "start": 0, "type": "Identifier" @@ -3228,9 +3607,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3241,6 +3622,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3253,6 +3635,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -3267,9 +3650,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -3279,10 +3664,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3303,9 +3690,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -3315,10 +3704,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.85", "start": 0, "type": "Literal", @@ -3334,6 +3725,7 @@ description: Result of parsing cold-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3344,18 +3736,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEnd", "start": 0, "type": "Identifier" @@ -3366,6 +3762,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3373,9 +3770,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg08", "start": 0, "type": "Identifier" @@ -3392,9 +3791,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3405,6 +3806,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3417,18 +3819,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segStartY", "start": 0, "type": "Identifier" @@ -3439,6 +3845,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3446,9 +3853,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg08", "start": 0, "type": "Identifier" @@ -3465,9 +3874,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3478,6 +3889,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3490,6 +3902,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -3504,9 +3917,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -3516,10 +3931,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3537,13 +3954,16 @@ description: Result of parsing cold-plate.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -3554,6 +3974,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3561,9 +3982,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg09", "start": 0, "type": "Identifier" @@ -3574,6 +3997,7 @@ description: Result of parsing cold-plate.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3582,9 +4006,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeDiameter", "start": 0, "type": "Identifier" @@ -3594,10 +4020,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3617,6 +4045,7 @@ description: Result of parsing cold-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3627,18 +4056,22 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEnd", "start": 0, "type": "Identifier" @@ -3649,6 +4082,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3656,9 +4090,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg09", "start": 0, "type": "Identifier" @@ -3675,9 +4111,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3688,6 +4126,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3700,6 +4139,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3708,13 +4148,16 @@ description: Result of parsing cold-plate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3725,25 +4168,30 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3754,12 +4202,14 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3767,6 +4217,7 @@ description: Result of parsing cold-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3777,9 +4228,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3790,19 +4243,23 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3813,6 +4270,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3825,6 +4283,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3832,6 +4291,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -3847,6 +4307,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -3854,6 +4315,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -3866,9 +4328,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3879,6 +4343,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3891,6 +4356,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3898,6 +4364,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3913,6 +4380,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -3924,9 +4392,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -3936,10 +4406,12 @@ description: Result of parsing cold-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3959,6 +4431,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3969,6 +4442,7 @@ description: Result of parsing cold-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3982,6 +4456,7 @@ description: Result of parsing cold-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3993,6 +4468,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4001,6 +4477,7 @@ description: Result of parsing cold-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4012,6 +4489,7 @@ description: Result of parsing cold-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4022,9 +4500,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -4035,6 +4515,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4047,6 +4528,7 @@ description: Result of parsing cold-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4054,6 +4536,7 @@ description: Result of parsing cold-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#6b261e\"", "start": 0, "type": "Literal", @@ -4066,9 +4549,11 @@ description: Result of parsing cold-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -4079,6 +4564,7 @@ description: Result of parsing cold-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4087,15 +4573,18 @@ description: Result of parsing cold-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4107,9 +4596,11 @@ description: Result of parsing cold-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -4128,19 +4619,23 @@ description: Result of parsing cold-plate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -4156,12 +4651,14 @@ description: Result of parsing cold-plate.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/cold-plate/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/cold-plate/program_memory.snap index 4465022f6..19b3f2ce8 100644 --- a/rust/kcl-lib/tests/kcl_samples/cold-plate/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/cold-plate/program_memory.snap @@ -1017,6 +1017,7 @@ description: Variables in memory after executing cold-plate.kcl "tag": { "commentStart": 856, "end": 862, + "moduleId": 0, "start": 856, "type": "TagDeclarator", "value": "seg07" @@ -1042,6 +1043,7 @@ description: Variables in memory after executing cold-plate.kcl "tag": { "commentStart": 905, "end": 911, + "moduleId": 0, "start": 905, "type": "TagDeclarator", "value": "seg09" @@ -1091,6 +1093,7 @@ description: Variables in memory after executing cold-plate.kcl "tag": { "commentStart": 1012, "end": 1018, + "moduleId": 0, "start": 1012, "type": "TagDeclarator", "value": "seg08" @@ -1159,6 +1162,7 @@ description: Variables in memory after executing cold-plate.kcl "tag": { "commentStart": 1189, "end": 1195, + "moduleId": 0, "start": 1189, "type": "TagDeclarator", "value": "seg01" @@ -1348,6 +1352,7 @@ description: Variables in memory after executing cold-plate.kcl "tag": { "commentStart": 1594, "end": 1600, + "moduleId": 0, "start": 1594, "type": "TagDeclarator", "value": "seg05" @@ -1378,6 +1383,7 @@ description: Variables in memory after executing cold-plate.kcl "tag": { "commentStart": 1661, "end": 1667, + "moduleId": 0, "start": 1661, "type": "TagDeclarator", "value": "seg02" @@ -1403,6 +1409,7 @@ description: Variables in memory after executing cold-plate.kcl "tag": { "commentStart": 1736, "end": 1742, + "moduleId": 0, "start": 1736, "type": "TagDeclarator", "value": "seg06" @@ -1433,6 +1440,7 @@ description: Variables in memory after executing cold-plate.kcl "tag": { "commentStart": 1804, "end": 1810, + "moduleId": 0, "start": 1804, "type": "TagDeclarator", "value": "seg03" @@ -1482,6 +1490,7 @@ description: Variables in memory after executing cold-plate.kcl "tag": { "commentStart": 1940, "end": 1946, + "moduleId": 0, "start": 1940, "type": "TagDeclarator", "value": "seg04" diff --git a/rust/kcl-lib/tests/kcl_samples/color-cube/ast.snap b/rust/kcl-lib/tests/kcl_samples/color-cube/ast.snap index 554422f8a..7cb62b8ac 100644 --- a/rust/kcl-lib/tests/kcl_samples/color-cube/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/color-cube/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing color-cube.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing color-cube.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Parameters referenced in drawRectangle" ], @@ -49,6 +53,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "halfSize", "start": 0, "type": "Identifier" @@ -60,9 +65,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -72,10 +79,12 @@ description: Result of parsing color-cube.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -89,11 +98,13 @@ description: Result of parsing color-cube.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -106,6 +117,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeLength", "start": 0, "type": "Identifier" @@ -113,6 +125,7 @@ description: Result of parsing color-cube.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -122,11 +135,13 @@ description: Result of parsing color-cube.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -139,6 +154,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalConstant", "start": 0, "type": "Identifier" @@ -146,6 +162,7 @@ description: Result of parsing color-cube.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -155,11 +172,13 @@ description: Result of parsing color-cube.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -172,6 +191,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughnessConstant", "start": 0, "type": "Identifier" @@ -179,6 +199,7 @@ description: Result of parsing color-cube.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -188,11 +209,13 @@ description: Result of parsing color-cube.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -205,6 +228,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bluePlane", "start": 0, "type": "Identifier" @@ -216,6 +240,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -224,9 +249,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "halfSize", "start": 0, "type": "Identifier" @@ -242,9 +269,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -255,6 +284,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -262,9 +292,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -275,11 +307,13 @@ description: Result of parsing color-cube.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -297,6 +331,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yellowPlane", "start": 0, "type": "Identifier" @@ -308,6 +343,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -317,9 +353,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "halfSize", "start": 0, "type": "Identifier" @@ -331,6 +369,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -342,9 +381,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -355,6 +396,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -362,9 +404,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -375,11 +419,13 @@ description: Result of parsing color-cube.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -392,6 +438,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "greenPlane", "start": 0, "type": "Identifier" @@ -403,6 +450,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -412,9 +460,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "halfSize", "start": 0, "type": "Identifier" @@ -426,6 +476,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -437,9 +488,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -450,6 +503,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -457,9 +511,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -470,11 +526,13 @@ description: Result of parsing color-cube.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -487,6 +545,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "purplePlane", "start": 0, "type": "Identifier" @@ -498,6 +557,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -507,9 +567,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "halfSize", "start": 0, "type": "Identifier" @@ -521,6 +583,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -532,9 +595,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -545,6 +610,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -553,9 +619,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -567,17 +635,20 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -590,6 +661,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "redPlane", "start": 0, "type": "Identifier" @@ -601,6 +673,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -612,9 +685,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "halfSize", "start": 0, "type": "Identifier" @@ -624,14 +699,17 @@ description: Result of parsing color-cube.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeLength", "start": 0, "type": "Identifier" @@ -651,9 +729,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -664,6 +744,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -671,9 +752,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -684,11 +767,13 @@ description: Result of parsing color-cube.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -701,6 +786,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tealPlane", "start": 0, "type": "Identifier" @@ -712,6 +798,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -721,9 +808,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "halfSize", "start": 0, "type": "Identifier" @@ -735,6 +824,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -746,9 +836,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -759,6 +851,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -766,9 +859,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -779,11 +874,13 @@ description: Result of parsing color-cube.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -796,6 +893,7 @@ description: Result of parsing color-cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchRectangle", "start": 0, "type": "Identifier" @@ -810,9 +908,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile", "start": 0, "type": "Identifier" @@ -829,6 +929,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -841,9 +942,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "halfSize", "start": 0, "type": "Identifier" @@ -855,6 +958,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -864,9 +968,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "halfSize", "start": 0, "type": "Identifier" @@ -878,6 +984,7 @@ description: Result of parsing color-cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -888,9 +995,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -901,6 +1010,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -913,6 +1023,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -920,6 +1031,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -935,6 +1047,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -943,9 +1056,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -961,6 +1076,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -968,6 +1084,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -979,9 +1096,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -992,6 +1111,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1004,6 +1124,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1012,13 +1133,16 @@ description: Result of parsing color-cube.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1029,6 +1153,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1036,9 +1161,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1049,10 +1176,12 @@ description: Result of parsing color-cube.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1072,6 +1201,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1080,9 +1210,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size", "start": 0, "type": "Identifier" @@ -1098,6 +1230,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1105,6 +1238,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1116,9 +1250,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1129,6 +1265,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1141,18 +1278,22 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1163,6 +1304,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1170,9 +1312,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1189,19 +1333,23 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1212,6 +1360,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1219,9 +1368,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1234,6 +1385,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1245,6 +1397,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1252,6 +1405,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1263,9 +1417,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1276,6 +1432,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1288,6 +1445,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1296,13 +1454,16 @@ description: Result of parsing color-cube.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1313,25 +1474,30 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1342,12 +1508,14 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1355,6 +1523,7 @@ description: Result of parsing color-cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1365,9 +1534,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1378,19 +1549,23 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1401,6 +1576,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1413,6 +1589,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1421,9 +1598,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeLength", "start": 0, "type": "Identifier" @@ -1439,9 +1618,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1452,6 +1633,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1464,6 +1646,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1472,9 +1655,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1490,6 +1675,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -1498,9 +1684,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalConstant", "start": 0, "type": "Identifier" @@ -1516,6 +1704,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -1524,9 +1713,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughnessConstant", "start": 0, "type": "Identifier" @@ -1542,9 +1733,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -1555,6 +1748,7 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1563,12 +1757,14 @@ description: Result of parsing color-cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1576,16 +1772,19 @@ description: Result of parsing color-cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile", "start": 0, "type": "Identifier" @@ -1596,6 +1795,7 @@ description: Result of parsing color-cube.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1606,11 +1806,13 @@ description: Result of parsing color-cube.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1630,6 +1832,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile", "start": 0, "type": "Identifier" @@ -1638,9 +1841,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bluePlane", "start": 0, "type": "Identifier" @@ -1656,6 +1861,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1663,6 +1869,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'#0000FF'", "start": 0, "type": "Literal", @@ -1675,9 +1882,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchRectangle", "start": 0, "type": "Identifier" @@ -1688,11 +1897,13 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -1712,6 +1923,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile", "start": 0, "type": "Identifier" @@ -1720,9 +1932,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yellowPlane", "start": 0, "type": "Identifier" @@ -1738,6 +1952,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1745,6 +1960,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'#FFFF00'", "start": 0, "type": "Literal", @@ -1757,9 +1973,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchRectangle", "start": 0, "type": "Identifier" @@ -1770,11 +1988,13 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1789,6 +2009,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile", "start": 0, "type": "Identifier" @@ -1797,9 +2018,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "greenPlane", "start": 0, "type": "Identifier" @@ -1815,6 +2038,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1822,6 +2046,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'#00FF00'", "start": 0, "type": "Literal", @@ -1834,9 +2059,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchRectangle", "start": 0, "type": "Identifier" @@ -1847,11 +2074,13 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1866,6 +2095,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile", "start": 0, "type": "Identifier" @@ -1874,9 +2104,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "redPlane", "start": 0, "type": "Identifier" @@ -1892,6 +2124,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1899,6 +2132,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'#FF0000'", "start": 0, "type": "Literal", @@ -1911,9 +2145,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchRectangle", "start": 0, "type": "Identifier" @@ -1924,11 +2160,13 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1943,6 +2181,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile", "start": 0, "type": "Identifier" @@ -1951,9 +2190,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tealPlane", "start": 0, "type": "Identifier" @@ -1969,6 +2210,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1976,6 +2218,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'#00FFFF'", "start": 0, "type": "Literal", @@ -1988,9 +2231,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchRectangle", "start": 0, "type": "Identifier" @@ -2001,11 +2246,13 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2020,6 +2267,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile", "start": 0, "type": "Identifier" @@ -2028,9 +2276,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "purplePlane", "start": 0, "type": "Identifier" @@ -2046,6 +2296,7 @@ description: Result of parsing color-cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -2053,6 +2304,7 @@ description: Result of parsing color-cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'#FF00FF'", "start": 0, "type": "Literal", @@ -2065,9 +2317,11 @@ description: Result of parsing color-cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketchRectangle", "start": 0, "type": "Identifier" @@ -2078,11 +2332,13 @@ description: Result of parsing color-cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2094,9 +2350,11 @@ description: Result of parsing color-cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2115,19 +2373,23 @@ description: Result of parsing color-cube.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -2144,15 +2406,18 @@ description: Result of parsing color-cube.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2168,12 +2433,14 @@ description: Result of parsing color-cube.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ast.snap b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ast.snap index 8d89235fb..f6fc8571f 100644 --- a/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingX", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingY", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -92,6 +101,7 @@ description: Result of parsing counterdrilled-weldment.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -101,10 +111,12 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -118,11 +130,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -135,6 +149,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "counterdrillDiameter", "start": 0, "type": "Identifier" @@ -145,6 +160,7 @@ description: Result of parsing counterdrilled-weldment.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -154,10 +170,12 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -171,11 +189,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -188,6 +208,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "counterdrillDepth", "start": 0, "type": "Identifier" @@ -198,6 +219,7 @@ description: Result of parsing counterdrilled-weldment.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -207,10 +229,12 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -224,11 +248,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -241,6 +267,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeInnerDiameter", "start": 0, "type": "Identifier" @@ -251,6 +278,7 @@ description: Result of parsing counterdrilled-weldment.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -260,6 +288,7 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -267,6 +296,7 @@ description: Result of parsing counterdrilled-weldment.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -276,10 +306,12 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -297,11 +329,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -314,6 +348,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeThickness", "start": 0, "type": "Identifier" @@ -321,6 +356,7 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.115", "start": 0, "type": "Literal", @@ -330,11 +366,13 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -347,6 +385,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeHeight", "start": 0, "type": "Identifier" @@ -354,6 +393,7 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -363,11 +403,13 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -380,6 +422,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -387,6 +430,7 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".5", "start": 0, "type": "Literal", @@ -396,11 +440,13 @@ description: Result of parsing counterdrilled-weldment.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -413,6 +459,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockLength", "start": 0, "type": "Identifier" @@ -424,9 +471,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingX", "start": 0, "type": "Identifier" @@ -436,6 +485,7 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -444,9 +494,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -456,10 +508,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -477,11 +531,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -499,6 +555,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -510,9 +567,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingY", "start": 0, "type": "Identifier" @@ -522,6 +581,7 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -530,9 +590,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -542,10 +604,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -563,11 +627,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -580,6 +646,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateSketch", "start": 0, "type": "Identifier" @@ -587,13 +654,16 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -604,6 +674,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -611,9 +682,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -631,6 +704,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -646,9 +720,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockLength", "start": 0, "type": "Identifier" @@ -660,15 +736,18 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -690,9 +769,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -704,15 +785,18 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -728,6 +812,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -738,9 +823,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -751,6 +838,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -763,6 +851,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -770,6 +859,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -785,6 +875,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -793,9 +884,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockLength", "start": 0, "type": "Identifier" @@ -811,6 +904,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -818,6 +912,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -829,9 +924,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -842,6 +939,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -854,6 +952,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -862,13 +961,16 @@ description: Result of parsing counterdrilled-weldment.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -879,6 +981,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -886,9 +989,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -899,10 +1004,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -922,6 +1029,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -930,9 +1038,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -948,6 +1058,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -955,6 +1066,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -966,9 +1078,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -979,6 +1093,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -991,18 +1106,22 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1013,6 +1132,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1020,9 +1140,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1039,19 +1161,23 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1062,6 +1188,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1069,9 +1196,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1084,6 +1213,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1095,6 +1225,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1102,6 +1233,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1113,9 +1245,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1126,6 +1260,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1138,6 +1273,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1146,13 +1282,16 @@ description: Result of parsing counterdrilled-weldment.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1163,25 +1302,30 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1192,12 +1336,14 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1205,6 +1351,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1215,6 +1362,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1222,6 +1370,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1233,9 +1382,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1246,19 +1397,23 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1269,6 +1424,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1281,6 +1437,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1292,6 +1449,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1302,6 +1460,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1314,6 +1473,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1325,6 +1485,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1335,6 +1496,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1346,9 +1508,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeInnerDiameter", "start": 0, "type": "Identifier" @@ -1358,10 +1522,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1381,9 +1547,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1394,6 +1562,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1405,9 +1574,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1418,6 +1589,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1426,15 +1598,18 @@ description: Result of parsing counterdrilled-weldment.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1452,6 +1627,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateBody", "start": 0, "type": "Identifier" @@ -1465,6 +1641,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1473,9 +1650,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -1491,9 +1670,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1504,6 +1685,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1511,9 +1693,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateSketch", "start": 0, "type": "Identifier" @@ -1531,6 +1715,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1542,9 +1727,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -1554,10 +1741,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1577,6 +1766,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1585,13 +1775,16 @@ description: Result of parsing counterdrilled-weldment.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1602,6 +1795,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1609,9 +1803,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentB001", "start": 0, "type": "Identifier" @@ -1623,13 +1819,16 @@ description: Result of parsing counterdrilled-weldment.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1640,6 +1839,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1647,9 +1847,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1661,13 +1863,16 @@ description: Result of parsing counterdrilled-weldment.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1678,6 +1883,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1685,9 +1891,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentC001", "start": 0, "type": "Identifier" @@ -1699,13 +1907,16 @@ description: Result of parsing counterdrilled-weldment.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1716,6 +1927,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1723,9 +1935,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -1738,6 +1952,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1748,9 +1963,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -1761,6 +1978,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1769,12 +1987,14 @@ description: Result of parsing counterdrilled-weldment.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1791,11 +2011,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1808,6 +2030,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holePositions", "start": 0, "type": "Identifier" @@ -1826,9 +2049,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingX", "start": 0, "type": "Identifier" @@ -1840,15 +2065,18 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1870,9 +2098,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingY", "start": 0, "type": "Identifier" @@ -1884,15 +2114,18 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1908,6 +2141,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1923,9 +2157,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingX", "start": 0, "type": "Identifier" @@ -1937,15 +2173,18 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1966,9 +2205,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingY", "start": 0, "type": "Identifier" @@ -1978,10 +2219,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1997,6 +2240,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2011,9 +2255,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingX", "start": 0, "type": "Identifier" @@ -2023,10 +2269,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2048,9 +2296,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingY", "start": 0, "type": "Identifier" @@ -2062,15 +2312,18 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2086,6 +2339,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2100,9 +2354,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingX", "start": 0, "type": "Identifier" @@ -2112,10 +2368,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2136,9 +2394,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingY", "start": 0, "type": "Identifier" @@ -2148,10 +2408,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2167,21 +2429,25 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2194,6 +2460,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "counterdrill", "start": 0, "type": "Identifier" @@ -2209,6 +2476,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cbdrill", "start": 0, "type": "Identifier" @@ -2222,6 +2490,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2230,9 +2499,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -2248,9 +2519,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2261,6 +2534,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2268,9 +2542,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateBody", "start": 0, "type": "Identifier" @@ -2288,6 +2564,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2296,9 +2573,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holePosition", "start": 0, "type": "Identifier" @@ -2314,6 +2593,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2325,9 +2605,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "counterdrillDiameter", "start": 0, "type": "Identifier" @@ -2337,10 +2619,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2360,9 +2644,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2373,6 +2659,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2385,6 +2672,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2394,9 +2682,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "counterdrillDepth", "start": 0, "type": "Identifier" @@ -2408,6 +2698,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2419,9 +2710,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2432,6 +2725,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2440,15 +2734,18 @@ description: Result of parsing counterdrilled-weldment.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2461,6 +2758,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cbBolt", "start": 0, "type": "Identifier" @@ -2474,6 +2772,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2482,9 +2781,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -2500,9 +2801,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2513,6 +2816,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2520,9 +2824,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cbdrill", "start": 0, "type": "Identifier" @@ -2540,6 +2846,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2548,9 +2855,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holePosition", "start": 0, "type": "Identifier" @@ -2566,6 +2875,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2577,9 +2887,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -2589,10 +2901,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2612,6 +2926,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2619,6 +2934,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2630,9 +2946,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2643,6 +2961,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2655,6 +2974,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2667,9 +2987,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -2681,19 +3003,23 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "counterdrillDepth", "start": 0, "type": "Identifier" @@ -2713,9 +3039,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2726,6 +3054,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2738,6 +3067,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2755,9 +3085,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "counterdrillDiameter", "start": 0, "type": "Identifier" @@ -2767,14 +3099,17 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -2788,10 +3123,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2805,15 +3142,19 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -2824,12 +3165,14 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2850,6 +3193,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2861,9 +3205,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hole01", "start": 0, "type": "Identifier" @@ -2875,6 +3221,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2885,9 +3232,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -2898,6 +3247,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2906,12 +3256,14 @@ description: Result of parsing counterdrilled-weldment.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2928,11 +3280,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2941,6 +3295,7 @@ description: Result of parsing counterdrilled-weldment.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [], "start": 0, "type": "ObjectExpression", @@ -2948,6 +3303,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2955,16 +3311,19 @@ description: Result of parsing counterdrilled-weldment.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holePosition", "start": 0, "type": "Identifier" @@ -2976,11 +3335,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -3000,6 +3361,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -3008,9 +3370,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "counterdrill", "start": 0, "type": "Identifier" @@ -3026,9 +3390,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "map", "start": 0, "type": "Identifier" @@ -3039,6 +3405,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3046,9 +3413,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holePositions", "start": 0, "type": "Identifier" @@ -3059,6 +3428,7 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -3076,6 +3446,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pinhole", "start": 0, "type": "Identifier" @@ -3083,13 +3454,16 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3100,6 +3474,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3107,9 +3482,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -3127,6 +3504,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3137,6 +3515,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3149,6 +3528,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.2", "start": 0, "type": "Literal", @@ -3160,6 +3540,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3170,6 +3551,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3177,6 +3559,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -3192,9 +3575,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3205,6 +3590,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3217,6 +3603,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3225,6 +3612,7 @@ description: Result of parsing counterdrilled-weldment.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -3236,6 +3624,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3247,9 +3636,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3260,6 +3651,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3268,12 +3660,14 @@ description: Result of parsing counterdrilled-weldment.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3290,11 +3684,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3312,6 +3708,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centralTube", "start": 0, "type": "Identifier" @@ -3319,13 +3716,16 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3336,6 +3736,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3346,6 +3747,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3354,9 +3756,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -3372,9 +3776,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3385,6 +3791,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3392,9 +3799,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3413,6 +3822,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3423,6 +3833,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3435,6 +3846,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3446,6 +3858,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3456,6 +3869,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3470,9 +3884,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeInnerDiameter", "start": 0, "type": "Identifier" @@ -3482,10 +3898,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3499,14 +3917,17 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeThickness", "start": 0, "type": "Identifier" @@ -3526,9 +3947,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3539,6 +3962,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3551,6 +3975,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3562,6 +3987,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3572,6 +3998,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3584,6 +4011,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3595,6 +4023,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3605,6 +4034,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3616,9 +4046,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeInnerDiameter", "start": 0, "type": "Identifier" @@ -3628,10 +4060,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3651,9 +4085,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3664,6 +4100,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3675,9 +4112,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -3688,6 +4127,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3700,6 +4140,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3708,9 +4149,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeHeight", "start": 0, "type": "Identifier" @@ -3726,9 +4169,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3739,6 +4184,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3751,6 +4197,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -3762,9 +4209,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pinhole", "start": 0, "type": "Identifier" @@ -3776,6 +4225,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3786,9 +4236,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -3799,6 +4251,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3807,12 +4260,14 @@ description: Result of parsing counterdrilled-weldment.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3829,11 +4284,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3846,6 +4303,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fin", "start": 0, "type": "Identifier" @@ -3861,6 +4319,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diagPlane", "start": 0, "type": "Identifier" @@ -3868,6 +4327,7 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -3875,10 +4335,12 @@ description: Result of parsing counterdrilled-weldment.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -3887,6 +4349,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -3899,6 +4362,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -3911,6 +4375,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -3922,6 +4387,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3933,10 +4399,12 @@ description: Result of parsing counterdrilled-weldment.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -3952,9 +4420,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingX", "start": 0, "type": "Identifier" @@ -3964,10 +4434,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3981,14 +4453,17 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -4009,9 +4484,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingY", "start": 0, "type": "Identifier" @@ -4021,10 +4498,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4041,6 +4520,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4052,6 +4532,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4063,10 +4544,12 @@ description: Result of parsing counterdrilled-weldment.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -4075,6 +4558,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4087,6 +4571,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4099,6 +4584,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4110,6 +4596,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4120,11 +4607,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4137,6 +4626,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "finSketch", "start": 0, "type": "Identifier" @@ -4144,13 +4634,16 @@ description: Result of parsing counterdrilled-weldment.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4161,6 +4654,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4168,9 +4662,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diagPlane", "start": 0, "type": "Identifier" @@ -4188,6 +4684,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4205,9 +4702,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeInnerDiameter", "start": 0, "type": "Identifier" @@ -4217,10 +4716,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4234,14 +4735,17 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeThickness", "start": 0, "type": "Identifier" @@ -4259,9 +4763,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -4273,6 +4779,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4283,9 +4790,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4296,6 +4805,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4308,6 +4818,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4316,13 +4827,16 @@ description: Result of parsing counterdrilled-weldment.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -4333,6 +4847,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4349,9 +4864,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingX", "start": 0, "type": "Identifier" @@ -4361,10 +4878,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4378,10 +4897,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4395,6 +4916,7 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4406,9 +4928,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacingY", "start": 0, "type": "Identifier" @@ -4418,10 +4942,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4435,10 +4961,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4457,14 +4985,17 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "counterdrillDiameter", "start": 0, "type": "Identifier" @@ -4484,9 +5015,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4497,6 +5030,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4509,6 +5043,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4516,6 +5051,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -4531,9 +5067,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4544,6 +5082,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4556,6 +5095,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4567,13 +5107,16 @@ description: Result of parsing counterdrilled-weldment.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4584,21 +5127,25 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -4619,9 +5166,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -4631,6 +5180,7 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4639,9 +5189,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeHeight", "start": 0, "type": "Identifier" @@ -4651,10 +5203,12 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".8", "start": 0, "type": "Literal", @@ -4674,6 +5228,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4684,9 +5239,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4697,6 +5254,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4709,6 +5267,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4717,6 +5276,7 @@ description: Result of parsing counterdrilled-weldment.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -4728,6 +5288,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4739,9 +5300,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4752,6 +5315,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4764,6 +5328,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4772,13 +5337,16 @@ description: Result of parsing counterdrilled-weldment.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4789,25 +5357,30 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4818,12 +5391,14 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4831,6 +5406,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4841,9 +5417,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4854,19 +5432,23 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4877,6 +5459,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4889,6 +5472,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4897,9 +5481,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubeThickness", "start": 0, "type": "Identifier" @@ -4915,6 +5501,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -4922,6 +5509,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -4934,9 +5522,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4947,6 +5537,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4955,12 +5546,14 @@ description: Result of parsing counterdrilled-weldment.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4977,11 +5570,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4994,6 +5589,7 @@ description: Result of parsing counterdrilled-weldment.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "otherFin", "start": 0, "type": "Identifier" @@ -5005,6 +5601,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -5012,6 +5609,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5027,6 +5625,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5037,6 +5636,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5049,6 +5649,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5061,6 +5662,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5072,6 +5674,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5082,6 +5685,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5092,6 +5696,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5104,6 +5709,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5116,6 +5722,7 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5127,6 +5734,7 @@ description: Result of parsing counterdrilled-weldment.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5137,6 +5745,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -5144,6 +5753,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -5159,6 +5769,7 @@ description: Result of parsing counterdrilled-weldment.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -5166,6 +5777,7 @@ description: Result of parsing counterdrilled-weldment.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -5178,9 +5790,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -5191,6 +5805,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5198,9 +5813,11 @@ description: Result of parsing counterdrilled-weldment.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "finSketch", "start": 0, "type": "Identifier" @@ -5211,11 +5828,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5224,6 +5843,7 @@ description: Result of parsing counterdrilled-weldment.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [], "start": 0, "type": "ObjectExpression", @@ -5231,6 +5851,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -5238,12 +5859,14 @@ description: Result of parsing counterdrilled-weldment.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5258,12 +5881,14 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -5275,11 +5900,13 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5288,13 +5915,16 @@ description: Result of parsing counterdrilled-weldment.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fin", "start": 0, "type": "Identifier" @@ -5305,12 +5935,14 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5321,6 +5953,7 @@ description: Result of parsing counterdrilled-weldment.kcl } } }, + "moduleId": 0, "preComments": [ "", "", @@ -5334,13 +5967,16 @@ description: Result of parsing counterdrilled-weldment.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fin", "start": 0, "type": "Identifier" @@ -5351,6 +5987,7 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5358,6 +5995,7 @@ description: Result of parsing counterdrilled-weldment.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5369,12 +6007,14 @@ description: Result of parsing counterdrilled-weldment.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -5386,9 +6026,11 @@ description: Result of parsing counterdrilled-weldment.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -5407,19 +6049,23 @@ description: Result of parsing counterdrilled-weldment.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -5435,12 +6081,14 @@ description: Result of parsing counterdrilled-weldment.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/program_memory.snap index dba5ccb88..358c95905 100644 --- a/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/counterdrilled-weldment/program_memory.snap @@ -461,6 +461,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 867, "end": 888, + "moduleId": 0, "start": 867, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -474,6 +475,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 976, "end": 997, + "moduleId": 0, "start": 976, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -487,6 +489,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 1099, "end": 1120, + "moduleId": 0, "start": 1099, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -500,6 +503,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 1190, "end": 1211, + "moduleId": 0, "start": 1190, "type": "TagDeclarator", "value": "rectangleSegmentD001" @@ -523,6 +527,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 867, "end": 888, + "moduleId": 0, "start": 867, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -548,6 +553,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 976, "end": 997, + "moduleId": 0, "start": 976, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -573,6 +579,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 1099, "end": 1120, + "moduleId": 0, "start": 1099, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -598,6 +605,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 1190, "end": 1211, + "moduleId": 0, "start": 1190, "type": "TagDeclarator", "value": "rectangleSegmentD001" @@ -804,6 +812,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 867, "end": 888, + "moduleId": 0, "start": 867, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -829,6 +838,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 976, "end": 997, + "moduleId": 0, "start": 976, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -854,6 +864,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 1099, "end": 1120, + "moduleId": 0, "start": 1099, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -879,6 +890,7 @@ description: Variables in memory after executing counterdrilled-weldment.kcl "tag": { "commentStart": 1190, "end": 1211, + "moduleId": 0, "start": 1190, "type": "TagDeclarator", "value": "rectangleSegmentD001" diff --git a/rust/kcl-lib/tests/kcl_samples/countersunk-plate/ast.snap b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/ast.snap index 075238f8f..26271cf8e 100644 --- a/rust/kcl-lib/tests/kcl_samples/countersunk-plate/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/countersunk-plate/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacing", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing countersunk-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing countersunk-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -59,6 +64,7 @@ description: Result of parsing countersunk-plate.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -68,10 +74,12 @@ description: Result of parsing countersunk-plate.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -85,11 +93,13 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -102,6 +112,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centerHoleDiameter", "start": 0, "type": "Identifier" @@ -112,6 +123,7 @@ description: Result of parsing countersunk-plate.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -121,6 +133,7 @@ description: Result of parsing countersunk-plate.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -128,6 +141,7 @@ description: Result of parsing countersunk-plate.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -137,10 +151,12 @@ description: Result of parsing countersunk-plate.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -158,11 +174,13 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -175,6 +193,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateThickness", "start": 0, "type": "Identifier" @@ -182,6 +201,7 @@ description: Result of parsing countersunk-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.375", "start": 0, "type": "Literal", @@ -191,11 +211,13 @@ description: Result of parsing countersunk-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -208,6 +230,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -225,9 +248,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centerHoleDiameter", "start": 0, "type": "Identifier" @@ -237,10 +262,12 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -254,10 +281,12 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -271,10 +300,12 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".35", "start": 0, "type": "Literal", @@ -288,11 +319,13 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -314,6 +347,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -328,9 +362,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -340,10 +376,12 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -357,10 +395,12 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".25", "start": 0, "type": "Literal", @@ -374,11 +414,13 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -391,6 +433,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -402,9 +445,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacing", "start": 0, "type": "Identifier" @@ -414,10 +459,12 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -431,11 +478,13 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -448,18 +497,22 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "asin", "start": 0, "type": "Identifier" @@ -470,6 +523,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -483,9 +537,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -495,14 +551,17 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -516,14 +575,17 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -538,11 +600,13 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -555,6 +619,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentLength", "start": 0, "type": "Identifier" @@ -569,9 +634,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -581,14 +648,17 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -602,15 +672,19 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -621,6 +695,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -628,9 +703,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" @@ -645,11 +722,13 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -662,6 +741,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateBody", "start": 0, "type": "Identifier" @@ -669,13 +749,16 @@ description: Result of parsing countersunk-plate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -686,6 +769,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -693,9 +777,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -713,6 +799,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -724,6 +811,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -734,6 +822,7 @@ description: Result of parsing countersunk-plate.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -743,14 +832,17 @@ description: Result of parsing countersunk-plate.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" @@ -770,6 +862,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -778,9 +871,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -796,9 +891,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -809,6 +906,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -820,9 +918,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -833,6 +933,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -845,6 +946,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -854,9 +956,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" @@ -868,6 +972,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -879,6 +984,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -887,9 +993,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentLength", "start": 0, "type": "Identifier" @@ -905,9 +1013,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -918,6 +1028,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -930,6 +1041,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -938,9 +1050,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -956,6 +1070,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -970,9 +1085,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" @@ -982,10 +1099,12 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -999,10 +1118,12 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1022,9 +1143,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1035,6 +1158,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1047,6 +1171,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1055,9 +1180,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" @@ -1073,6 +1200,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1082,9 +1210,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentLength", "start": 0, "type": "Identifier" @@ -1096,6 +1226,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1107,9 +1238,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1120,6 +1253,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1132,6 +1266,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1140,9 +1275,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -1158,6 +1295,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1170,9 +1308,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" @@ -1184,15 +1324,18 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1212,9 +1355,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1225,6 +1370,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1237,6 +1383,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1246,9 +1393,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" @@ -1260,6 +1409,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1271,6 +1421,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1280,9 +1431,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentLength", "start": 0, "type": "Identifier" @@ -1294,6 +1447,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1305,9 +1459,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1318,6 +1474,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1330,6 +1487,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1338,9 +1496,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -1356,6 +1516,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1370,9 +1531,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" @@ -1382,10 +1545,12 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1399,10 +1564,12 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1422,9 +1589,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1435,6 +1604,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1447,6 +1617,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1455,9 +1626,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentAngle", "start": 0, "type": "Identifier" @@ -1473,6 +1646,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1481,9 +1655,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentLength", "start": 0, "type": "Identifier" @@ -1499,9 +1675,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1512,6 +1690,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1524,6 +1703,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1532,13 +1712,16 @@ description: Result of parsing countersunk-plate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1549,25 +1732,30 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1578,12 +1766,14 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1591,6 +1781,7 @@ description: Result of parsing countersunk-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1601,9 +1792,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1614,19 +1807,23 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1637,6 +1834,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1649,6 +1847,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1660,6 +1859,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1670,6 +1870,7 @@ description: Result of parsing countersunk-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1682,6 +1883,7 @@ description: Result of parsing countersunk-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1693,6 +1895,7 @@ description: Result of parsing countersunk-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1703,6 +1906,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1717,9 +1921,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centerHoleDiameter", "start": 0, "type": "Identifier" @@ -1729,10 +1935,12 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1746,10 +1954,12 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -1769,9 +1979,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1782,6 +1994,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1793,9 +2006,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1806,6 +2021,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1818,6 +2034,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1826,9 +2043,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateThickness", "start": 0, "type": "Identifier" @@ -1844,9 +2063,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1857,12 +2078,14 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1871,12 +2094,14 @@ description: Result of parsing countersunk-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1890,6 +2115,7 @@ description: Result of parsing countersunk-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1906,11 +2132,13 @@ description: Result of parsing countersunk-plate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1923,6 +2151,7 @@ description: Result of parsing countersunk-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -1942,6 +2171,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1950,9 +2180,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1968,9 +2200,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1981,6 +2215,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1988,9 +2223,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateBody", "start": 0, "type": "Identifier" @@ -2008,6 +2245,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2019,9 +2257,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holePosition", "start": 0, "type": "Identifier" @@ -2034,6 +2274,7 @@ description: Result of parsing countersunk-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2045,6 +2286,7 @@ description: Result of parsing countersunk-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2055,6 +2297,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2066,9 +2309,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -2078,10 +2323,12 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2101,6 +2348,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2108,6 +2356,7 @@ description: Result of parsing countersunk-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2119,9 +2368,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2132,6 +2383,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2144,6 +2396,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2153,9 +2406,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateThickness", "start": 0, "type": "Identifier" @@ -2167,6 +2422,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2178,9 +2434,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2191,6 +2449,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2203,6 +2462,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2211,9 +2471,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -2229,6 +2491,7 @@ description: Result of parsing countersunk-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2240,9 +2503,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hole01", "start": 0, "type": "Identifier" @@ -2254,6 +2519,7 @@ description: Result of parsing countersunk-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2264,9 +2530,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -2277,6 +2545,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2285,12 +2554,14 @@ description: Result of parsing countersunk-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2307,6 +2578,7 @@ description: Result of parsing countersunk-plate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2315,6 +2587,7 @@ description: Result of parsing countersunk-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [], "start": 0, "type": "ObjectExpression", @@ -2322,6 +2595,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2329,16 +2603,19 @@ description: Result of parsing countersunk-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holePosition", "start": 0, "type": "Identifier" @@ -2350,11 +2627,13 @@ description: Result of parsing countersunk-plate.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2363,13 +2642,16 @@ description: Result of parsing countersunk-plate.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -2380,6 +2662,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2391,9 +2674,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacing", "start": 0, "type": "Identifier" @@ -2405,15 +2690,18 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2428,6 +2716,7 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "preComments": [ "", "", @@ -2441,13 +2730,16 @@ description: Result of parsing countersunk-plate.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -2458,6 +2750,7 @@ description: Result of parsing countersunk-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2468,9 +2761,11 @@ description: Result of parsing countersunk-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSpacing", "start": 0, "type": "Identifier" @@ -2480,10 +2775,12 @@ description: Result of parsing countersunk-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2498,6 +2795,7 @@ description: Result of parsing countersunk-plate.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2509,9 +2807,11 @@ description: Result of parsing countersunk-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2530,19 +2830,23 @@ description: Result of parsing countersunk-plate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -2558,12 +2862,14 @@ description: Result of parsing countersunk-plate.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2576,6 +2882,7 @@ description: Result of parsing countersunk-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ast.snap b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ast.snap index 695de80ed..dd0aa4ae6 100644 --- a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "parameters.kcl" @@ -18,6 +19,7 @@ description: Result of parsing cpu-cooler.kcl "selector": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "Glob" }, @@ -28,6 +30,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "fan-housing.kcl" @@ -37,6 +40,7 @@ description: Result of parsing cpu-cooler.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fanHousing", "start": 0, "type": "Identifier" @@ -49,6 +53,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "motor.kcl" @@ -58,6 +63,7 @@ description: Result of parsing cpu-cooler.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "motor", "start": 0, "type": "Identifier" @@ -70,6 +76,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "fan.kcl" @@ -79,6 +86,7 @@ description: Result of parsing cpu-cooler.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fan", "start": 0, "type": "Identifier" @@ -91,6 +99,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "heat-sink.kcl" @@ -100,6 +109,7 @@ description: Result of parsing cpu-cooler.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "heatSink", "start": 0, "type": "Identifier" @@ -112,6 +122,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "mounting-wire.kcl" @@ -121,6 +132,7 @@ description: Result of parsing cpu-cooler.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingWire", "start": 0, "type": "Identifier" @@ -133,6 +145,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "removable-sticker.kcl" @@ -142,6 +155,7 @@ description: Result of parsing cpu-cooler.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "removableSticker", "start": 0, "type": "Identifier" @@ -158,9 +172,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "heatSink", "start": 0, "type": "Identifier" @@ -170,6 +186,7 @@ description: Result of parsing cpu-cooler.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "preComments": [ "", "", @@ -187,6 +204,7 @@ description: Result of parsing cpu-cooler.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translatePart", "start": 0, "type": "Identifier" @@ -203,9 +221,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part", "start": 0, "type": "Identifier" @@ -222,6 +242,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -233,9 +254,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "heatSinkDepth", "start": 0, "type": "Identifier" @@ -245,10 +268,12 @@ description: Result of parsing cpu-cooler.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -268,6 +293,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -278,6 +304,7 @@ description: Result of parsing cpu-cooler.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -287,6 +314,7 @@ description: Result of parsing cpu-cooler.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -295,9 +323,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fanSize", "start": 0, "type": "Identifier" @@ -307,10 +337,12 @@ description: Result of parsing cpu-cooler.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -334,9 +366,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -347,6 +381,7 @@ description: Result of parsing cpu-cooler.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -359,6 +394,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -366,6 +402,7 @@ description: Result of parsing cpu-cooler.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -381,6 +418,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -392,9 +430,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "heatSinkDepth", "start": 0, "type": "Identifier" @@ -404,14 +444,17 @@ description: Result of parsing cpu-cooler.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fanHeight", "start": 0, "type": "Identifier" @@ -431,6 +474,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -442,6 +486,7 @@ description: Result of parsing cpu-cooler.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -453,6 +498,7 @@ description: Result of parsing cpu-cooler.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -461,6 +507,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -473,6 +520,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -484,6 +532,7 @@ description: Result of parsing cpu-cooler.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -494,9 +543,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -507,12 +558,14 @@ description: Result of parsing cpu-cooler.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -521,10 +574,12 @@ description: Result of parsing cpu-cooler.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -533,6 +588,7 @@ description: Result of parsing cpu-cooler.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [], "start": 0, "type": "ObjectExpression", @@ -540,6 +596,7 @@ description: Result of parsing cpu-cooler.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -547,16 +604,19 @@ description: Result of parsing cpu-cooler.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part", "start": 0, "type": "Identifier" @@ -567,11 +627,13 @@ description: Result of parsing cpu-cooler.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -586,6 +648,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part", "start": 0, "type": "Identifier" @@ -594,9 +657,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fanHousing", "start": 0, "type": "Identifier" @@ -612,9 +677,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translatePart", "start": 0, "type": "Identifier" @@ -625,11 +692,13 @@ description: Result of parsing cpu-cooler.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -644,6 +713,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part", "start": 0, "type": "Identifier" @@ -652,9 +722,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "motor", "start": 0, "type": "Identifier" @@ -670,9 +742,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translatePart", "start": 0, "type": "Identifier" @@ -683,11 +757,13 @@ description: Result of parsing cpu-cooler.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -702,6 +778,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part", "start": 0, "type": "Identifier" @@ -710,9 +787,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fan", "start": 0, "type": "Identifier" @@ -728,9 +807,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translatePart", "start": 0, "type": "Identifier" @@ -741,11 +822,13 @@ description: Result of parsing cpu-cooler.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -759,9 +842,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingWire", "start": 0, "type": "Identifier" @@ -778,6 +863,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -785,6 +871,7 @@ description: Result of parsing cpu-cooler.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -800,6 +887,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -810,6 +898,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -822,6 +911,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -834,6 +924,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -845,6 +936,7 @@ description: Result of parsing cpu-cooler.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -855,6 +947,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -865,6 +958,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -877,6 +971,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -892,6 +987,7 @@ description: Result of parsing cpu-cooler.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -901,6 +997,7 @@ description: Result of parsing cpu-cooler.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -909,9 +1006,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fanSize", "start": 0, "type": "Identifier" @@ -921,10 +1020,12 @@ description: Result of parsing cpu-cooler.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -944,6 +1045,7 @@ description: Result of parsing cpu-cooler.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -954,6 +1056,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -961,6 +1064,7 @@ description: Result of parsing cpu-cooler.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -976,6 +1080,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -983,6 +1088,7 @@ description: Result of parsing cpu-cooler.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -995,9 +1101,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -1008,12 +1116,14 @@ description: Result of parsing cpu-cooler.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1026,6 +1136,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1033,6 +1144,7 @@ description: Result of parsing cpu-cooler.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1048,6 +1160,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1058,6 +1171,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1070,6 +1184,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1082,6 +1197,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1093,6 +1209,7 @@ description: Result of parsing cpu-cooler.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1103,6 +1220,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1113,6 +1231,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1125,6 +1244,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1137,6 +1257,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1148,6 +1269,7 @@ description: Result of parsing cpu-cooler.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1158,6 +1280,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1165,6 +1288,7 @@ description: Result of parsing cpu-cooler.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1180,6 +1304,7 @@ description: Result of parsing cpu-cooler.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1187,6 +1312,7 @@ description: Result of parsing cpu-cooler.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1199,9 +1325,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -1212,12 +1340,14 @@ description: Result of parsing cpu-cooler.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1226,10 +1356,12 @@ description: Result of parsing cpu-cooler.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1241,9 +1373,11 @@ description: Result of parsing cpu-cooler.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "removableSticker", "start": 0, "type": "Identifier" @@ -1253,6 +1387,7 @@ description: Result of parsing cpu-cooler.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1264,9 +1399,11 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1285,19 +1422,23 @@ description: Result of parsing cpu-cooler.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -1313,12 +1454,14 @@ description: Result of parsing cpu-cooler.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1330,6 +1473,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1342,6 +1486,7 @@ description: Result of parsing cpu-cooler.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/ast.snap b/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/ast.snap index 13553e3a9..0f09512e3 100644 --- a/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateBaseLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "300", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateHookLength", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateWidth", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateThickness", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetSlabRail", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lProfileFn", "start": 0, "type": "Identifier" @@ -196,18 +217,22 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profilePlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -218,6 +243,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -228,6 +254,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -240,9 +267,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -254,15 +283,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -282,9 +314,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -295,6 +329,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -302,9 +337,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -316,11 +353,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -333,6 +372,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileShape", "start": 0, "type": "Identifier" @@ -346,6 +386,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -356,6 +397,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -368,6 +410,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -379,6 +422,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -389,9 +433,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -402,6 +448,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -409,9 +456,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profilePlane", "start": 0, "type": "Identifier" @@ -429,6 +478,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -437,9 +487,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthHook", "start": 0, "type": "Identifier" @@ -455,6 +507,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -462,6 +515,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -473,9 +527,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -486,6 +542,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -498,6 +555,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -506,9 +564,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -524,9 +584,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -537,6 +599,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -549,6 +612,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -560,9 +624,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -572,14 +638,17 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthHook", "start": 0, "type": "Identifier" @@ -599,6 +668,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -606,6 +676,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -617,9 +688,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -630,6 +703,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -642,6 +716,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -653,9 +728,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthBase", "start": 0, "type": "Identifier" @@ -665,14 +742,17 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -692,6 +772,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -699,6 +780,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -710,9 +792,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -723,6 +807,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -735,6 +820,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -744,9 +830,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -758,6 +846,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -769,9 +858,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -782,6 +873,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -794,6 +886,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -802,13 +895,16 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -819,25 +915,30 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -848,12 +949,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -861,6 +964,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -871,6 +975,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -878,6 +983,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -889,9 +995,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -902,19 +1010,23 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -925,6 +1037,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -933,15 +1046,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -954,6 +1070,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileBody", "start": 0, "type": "Identifier" @@ -967,6 +1084,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -975,9 +1093,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -993,9 +1113,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1006,6 +1128,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1013,9 +1136,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileShape", "start": 0, "type": "Identifier" @@ -1033,6 +1158,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1041,9 +1167,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1059,6 +1187,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1073,6 +1202,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -1084,9 +1214,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseInside", "start": 0, "type": "Identifier" @@ -1100,9 +1232,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookInside", "start": 0, "type": "Identifier" @@ -1114,6 +1248,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1124,9 +1259,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -1137,6 +1274,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1144,6 +1282,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1154,9 +1293,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1167,6 +1308,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1179,6 +1321,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1190,9 +1333,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1202,10 +1347,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1225,6 +1372,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1239,6 +1387,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -1250,9 +1399,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseOutside", "start": 0, "type": "Identifier" @@ -1266,9 +1417,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookOutside", "start": 0, "type": "Identifier" @@ -1280,6 +1433,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1290,9 +1444,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -1303,6 +1459,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1310,6 +1467,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1320,9 +1478,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1333,6 +1493,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1341,15 +1502,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1359,9 +1523,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileBody", "start": 0, "type": "Identifier" @@ -1373,6 +1539,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1380,16 +1547,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthBase", "start": 0, "type": "Identifier" @@ -1400,6 +1570,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthHook", "start": 0, "type": "Identifier" @@ -1410,6 +1581,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1420,6 +1592,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1430,11 +1603,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1453,6 +1628,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexagonFn", "start": 0, "type": "Identifier" @@ -1468,6 +1644,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shape", "start": 0, "type": "Identifier" @@ -1481,6 +1658,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1493,9 +1671,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1507,6 +1687,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1515,6 +1696,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1526,6 +1708,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1536,9 +1719,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1549,6 +1734,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1556,9 +1742,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -1576,6 +1764,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1583,6 +1772,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -1598,6 +1788,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1606,9 +1797,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1624,9 +1817,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1637,6 +1832,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1649,6 +1845,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1657,9 +1854,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1675,9 +1874,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1688,6 +1889,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1700,6 +1902,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1708,6 +1911,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -1719,6 +1923,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1730,6 +1935,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1738,9 +1944,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1756,9 +1964,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1769,6 +1979,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1781,6 +1992,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1789,6 +2001,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -1800,6 +2013,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1811,6 +2025,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1819,9 +2034,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1837,9 +2054,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1850,6 +2069,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1862,6 +2082,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1871,9 +2092,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1885,6 +2108,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1896,9 +2120,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1909,6 +2135,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1921,6 +2148,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1929,13 +2157,16 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1946,25 +2177,30 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1975,12 +2211,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1988,6 +2226,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1998,9 +2237,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2011,19 +2252,23 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2034,6 +2279,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2042,15 +2288,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2060,9 +2309,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shape", "start": 0, "type": "Identifier" @@ -2074,6 +2325,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2081,16 +2333,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2101,6 +2356,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2111,11 +2367,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -2133,6 +2391,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltFn", "start": 0, "type": "Identifier" @@ -2148,18 +2407,22 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2170,6 +2433,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2177,9 +2441,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2190,11 +2456,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2207,6 +2475,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadShape", "start": 0, "type": "Identifier" @@ -2218,6 +2487,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2226,9 +2496,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadPlane", "start": 0, "type": "Identifier" @@ -2244,6 +2516,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2252,9 +2525,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -2270,9 +2545,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexagonFn", "start": 0, "type": "Identifier" @@ -2283,16 +2560,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2305,6 +2585,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadBody", "start": 0, "type": "Identifier" @@ -2316,6 +2597,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2327,9 +2609,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -2339,10 +2623,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -2362,9 +2648,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2375,6 +2663,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2382,9 +2671,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadShape", "start": 0, "type": "Identifier" @@ -2395,11 +2686,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2412,6 +2705,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltPlane", "start": 0, "type": "Identifier" @@ -2423,6 +2717,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2431,9 +2726,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -2449,9 +2746,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2462,6 +2761,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2469,9 +2769,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadBody", "start": 0, "type": "Identifier" @@ -2482,11 +2784,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2499,6 +2803,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltShape", "start": 0, "type": "Identifier" @@ -2510,6 +2815,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2520,6 +2826,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2532,6 +2839,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2543,6 +2851,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2553,6 +2862,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2564,9 +2874,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -2576,10 +2888,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2599,9 +2913,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2612,6 +2928,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2619,9 +2936,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltPlane", "start": 0, "type": "Identifier" @@ -2632,11 +2951,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2649,6 +2970,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -2660,6 +2982,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2668,9 +2991,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2686,9 +3011,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2699,6 +3026,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2706,9 +3034,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltShape", "start": 0, "type": "Identifier" @@ -2719,11 +3049,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2733,9 +3065,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -2747,6 +3081,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2754,16 +3089,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -2774,6 +3112,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2784,11 +3123,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -2806,6 +3147,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltWithPlateAndNutFn", "start": 0, "type": "Identifier" @@ -2821,6 +3163,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateSide", "start": 0, "type": "Identifier" @@ -2832,9 +3175,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -2844,10 +3189,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2861,11 +3208,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2878,18 +3227,22 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateplane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2900,6 +3253,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2910,6 +3264,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2919,9 +3274,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gap", "start": 0, "type": "Identifier" @@ -2933,6 +3290,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2944,9 +3302,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2957,6 +3317,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2964,9 +3325,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2978,11 +3341,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2995,6 +3360,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateShape", "start": 0, "type": "Identifier" @@ -3008,6 +3374,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3023,9 +3390,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateSide", "start": 0, "type": "Identifier" @@ -3037,15 +3406,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3067,9 +3439,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateSide", "start": 0, "type": "Identifier" @@ -3081,15 +3455,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3105,6 +3482,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3115,9 +3493,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3128,6 +3508,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3135,9 +3516,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateplane", "start": 0, "type": "Identifier" @@ -3155,6 +3538,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3163,9 +3547,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateSide", "start": 0, "type": "Identifier" @@ -3181,9 +3567,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3194,6 +3582,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3206,6 +3595,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3214,9 +3604,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateSide", "start": 0, "type": "Identifier" @@ -3232,9 +3624,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3245,6 +3639,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3257,6 +3652,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3266,9 +3662,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateSide", "start": 0, "type": "Identifier" @@ -3280,6 +3678,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3291,9 +3690,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3304,6 +3705,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3316,6 +3718,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3324,13 +3727,16 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3341,25 +3747,30 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3370,12 +3781,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3383,6 +3796,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3393,9 +3807,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3406,19 +3822,23 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3429,6 +3849,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3437,15 +3858,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3458,6 +3882,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateBody", "start": 0, "type": "Identifier" @@ -3469,6 +3894,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3481,9 +3907,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -3495,15 +3923,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -3523,9 +3954,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3536,6 +3969,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3543,9 +3977,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateShape", "start": 0, "type": "Identifier" @@ -3556,11 +3992,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3573,6 +4011,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nutPlane", "start": 0, "type": "Identifier" @@ -3584,6 +4023,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3592,9 +4032,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -3610,9 +4052,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3623,6 +4067,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3630,9 +4075,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateBody", "start": 0, "type": "Identifier" @@ -3643,11 +4090,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3660,6 +4109,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadShape", "start": 0, "type": "Identifier" @@ -3671,6 +4121,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -3679,9 +4130,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nutPlane", "start": 0, "type": "Identifier" @@ -3697,6 +4150,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3704,6 +4158,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -3719,9 +4174,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexagonFn", "start": 0, "type": "Identifier" @@ -3732,16 +4189,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3754,6 +4214,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadBody", "start": 0, "type": "Identifier" @@ -3765,6 +4226,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3776,9 +4238,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -3788,10 +4252,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -3811,9 +4277,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3824,6 +4292,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3831,9 +4300,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadShape", "start": 0, "type": "Identifier" @@ -3844,11 +4315,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3861,6 +4334,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -3872,6 +4346,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -3880,9 +4355,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -3898,6 +4375,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3912,9 +4390,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gap", "start": 0, "type": "Identifier" @@ -3924,14 +4404,17 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -3945,10 +4428,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3968,9 +4453,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltFn", "start": 0, "type": "Identifier" @@ -3981,16 +4468,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4003,18 +4493,22 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mergedBody", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -4025,6 +4519,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4035,9 +4530,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadBody", "start": 0, "type": "Identifier" @@ -4051,9 +4548,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -4065,16 +4564,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4084,9 +4586,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mergedBody", "start": 0, "type": "Identifier" @@ -4098,6 +4602,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -4105,16 +4610,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -4125,6 +4633,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4135,6 +4644,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gap", "start": 0, "type": "Identifier" @@ -4145,11 +4655,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -4168,6 +4680,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlate", "start": 0, "type": "Identifier" @@ -4179,6 +4692,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthBase", "start": 0, "type": "Identifier" @@ -4187,9 +4701,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateBaseLength", "start": 0, "type": "Identifier" @@ -4205,6 +4721,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthHook", "start": 0, "type": "Identifier" @@ -4213,9 +4730,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateHookLength", "start": 0, "type": "Identifier" @@ -4231,6 +4750,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -4239,9 +4759,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateWidth", "start": 0, "type": "Identifier" @@ -4257,6 +4779,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -4265,9 +4788,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateThickness", "start": 0, "type": "Identifier" @@ -4283,9 +4808,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lProfileFn", "start": 0, "type": "Identifier" @@ -4296,16 +4823,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4323,6 +4853,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleWidth", "start": 0, "type": "Identifier" @@ -4330,6 +4861,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -4339,11 +4871,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4361,6 +4895,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleLength", "start": 0, "type": "Identifier" @@ -4368,6 +4903,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -4377,11 +4913,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4394,6 +4932,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleOffset", "start": 0, "type": "Identifier" @@ -4401,6 +4940,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4410,11 +4950,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4427,18 +4969,22 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHolePlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4449,6 +4995,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4456,9 +5003,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4469,11 +5018,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4491,6 +5042,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleShape", "start": 0, "type": "Identifier" @@ -4504,6 +5056,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4522,9 +5075,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleLength", "start": 0, "type": "Identifier" @@ -4534,14 +5089,17 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleWidth", "start": 0, "type": "Identifier" @@ -4557,15 +5115,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4586,9 +5147,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleWidth", "start": 0, "type": "Identifier" @@ -4598,10 +5161,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4617,6 +5182,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4627,9 +5193,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4640,6 +5208,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4647,9 +5216,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHolePlane", "start": 0, "type": "Identifier" @@ -4667,6 +5238,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4678,9 +5250,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleLength", "start": 0, "type": "Identifier" @@ -4690,14 +5264,17 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleWidth", "start": 0, "type": "Identifier" @@ -4717,9 +5294,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4730,6 +5309,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4742,6 +5322,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4759,9 +5340,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleLength", "start": 0, "type": "Identifier" @@ -4771,14 +5354,17 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleWidth", "start": 0, "type": "Identifier" @@ -4792,10 +5378,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4817,9 +5405,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleWidth", "start": 0, "type": "Identifier" @@ -4831,15 +5421,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4855,6 +5448,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4865,9 +5459,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4878,6 +5474,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4890,6 +5487,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4901,9 +5499,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleWidth", "start": 0, "type": "Identifier" @@ -4913,14 +5513,17 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleLength", "start": 0, "type": "Identifier" @@ -4940,9 +5543,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4953,6 +5558,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4965,6 +5571,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4973,13 +5580,16 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4990,25 +5600,30 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5019,12 +5634,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5032,6 +5649,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5042,9 +5660,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5055,19 +5675,23 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5078,6 +5702,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5090,6 +5715,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -5098,9 +5724,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetSlabRail", "start": 0, "type": "Identifier" @@ -5116,6 +5744,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -5127,9 +5756,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleOffset", "start": 0, "type": "Identifier" @@ -5139,6 +5770,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5147,9 +5779,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateWidth", "start": 0, "type": "Identifier" @@ -5159,10 +5793,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5186,6 +5822,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -5194,6 +5831,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5205,6 +5843,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5216,9 +5855,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5229,12 +5870,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5243,15 +5886,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5264,6 +5910,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleVoidLeft", "start": 0, "type": "Identifier" @@ -5275,6 +5922,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5286,9 +5934,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateThickness", "start": 0, "type": "Identifier" @@ -5298,10 +5948,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5321,9 +5973,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5334,6 +5988,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5341,9 +5996,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleShape", "start": 0, "type": "Identifier" @@ -5354,11 +6011,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5371,6 +6030,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleVoidRight", "start": 0, "type": "Identifier" @@ -5378,13 +6038,16 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -5395,6 +6058,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5402,9 +6066,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleVoidLeft", "start": 0, "type": "Identifier" @@ -5422,6 +6088,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -5429,6 +6096,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5444,6 +6112,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -5455,9 +6124,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateWidth", "start": 0, "type": "Identifier" @@ -5467,6 +6138,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5475,9 +6147,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleOffset", "start": 0, "type": "Identifier" @@ -5487,10 +6161,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5514,6 +6190,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -5521,6 +6198,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5536,9 +6214,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5549,12 +6229,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5563,12 +6245,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5585,11 +6269,13 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5602,6 +6288,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlatePunchOne", "start": 0, "type": "Identifier" @@ -5613,6 +6300,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -5624,9 +6312,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleVoidLeft", "start": 0, "type": "Identifier" @@ -5638,6 +6328,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5648,9 +6339,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -5661,6 +6354,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5671,9 +6365,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlate", "start": 0, "type": "Identifier" @@ -5685,16 +6381,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5707,6 +6406,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlatePunchTwo", "start": 0, "type": "Identifier" @@ -5718,6 +6418,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -5729,9 +6430,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleVoidRight", "start": 0, "type": "Identifier" @@ -5743,6 +6446,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5753,9 +6457,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -5766,6 +6472,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5776,9 +6483,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlatePunchOne", "start": 0, "type": "Identifier" @@ -5790,16 +6499,19 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5812,6 +6524,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateBolts", "start": 0, "type": "Identifier" @@ -5825,6 +6538,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -5832,6 +6546,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -5847,6 +6562,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5854,6 +6570,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -5869,6 +6586,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gap", "start": 0, "type": "Identifier" @@ -5880,9 +6598,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateThickness", "start": 0, "type": "Identifier" @@ -5892,10 +6612,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -5915,9 +6637,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltWithPlateAndNutFn", "start": 0, "type": "Identifier" @@ -5928,6 +6652,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5940,6 +6665,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -5947,6 +6673,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -5962,6 +6689,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -5969,6 +6697,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5984,6 +6713,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -5991,6 +6721,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6006,9 +6737,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -6019,12 +6752,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6037,6 +6772,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -6045,9 +6781,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetSlabRail", "start": 0, "type": "Identifier" @@ -6063,6 +6801,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -6074,9 +6813,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleOffset", "start": 0, "type": "Identifier" @@ -6086,6 +6827,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6094,9 +6836,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateWidth", "start": 0, "type": "Identifier" @@ -6106,10 +6850,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6133,6 +6879,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -6140,6 +6887,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -6155,9 +6903,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -6168,12 +6918,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6186,6 +6938,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6193,6 +6946,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6208,6 +6962,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -6219,9 +6974,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabPlateWidth", "start": 0, "type": "Identifier" @@ -6231,6 +6988,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6239,9 +6997,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wideHoleOffset", "start": 0, "type": "Identifier" @@ -6251,10 +7011,12 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6278,6 +7040,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -6288,6 +7051,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6301,6 +7065,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6312,6 +7077,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6320,6 +7086,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6331,6 +7098,7 @@ description: Result of parsing curtain-wall-anchor-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6341,9 +7109,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -6354,12 +7124,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6368,15 +7140,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6394,9 +7169,11 @@ description: Result of parsing curtain-wall-anchor-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -6415,19 +7192,23 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -6444,15 +7225,18 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -6468,12 +7252,14 @@ description: Result of parsing curtain-wall-anchor-plate.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/program_memory.snap index 5db7fc7d4..f7da2d802 100644 --- a/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/program_memory.snap @@ -66,6 +66,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 798, "end": 810, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "hookOutside" @@ -86,6 +87,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 897, "end": 908, + "moduleId": 0, "start": 897, "type": "TagDeclarator", "value": "hookInside" @@ -99,6 +101,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 962, "end": 973, + "moduleId": 0, "start": 962, "type": "TagDeclarator", "value": "baseInside" @@ -119,6 +122,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 1079, "end": 1091, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "baseOutside" @@ -142,6 +146,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 798, "end": 810, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "hookOutside" @@ -186,6 +191,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 897, "end": 908, + "moduleId": 0, "start": 897, "type": "TagDeclarator", "value": "hookInside" @@ -211,6 +217,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 962, "end": 973, + "moduleId": 0, "start": 962, "type": "TagDeclarator", "value": "baseInside" @@ -255,6 +262,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 1079, "end": 1091, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "baseOutside" @@ -1336,6 +1344,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 798, "end": 810, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "hookOutside" @@ -1356,6 +1365,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 897, "end": 908, + "moduleId": 0, "start": 897, "type": "TagDeclarator", "value": "hookInside" @@ -1369,6 +1379,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 962, "end": 973, + "moduleId": 0, "start": 962, "type": "TagDeclarator", "value": "baseInside" @@ -1389,6 +1400,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 1079, "end": 1091, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "baseOutside" @@ -1412,6 +1424,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 798, "end": 810, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "hookOutside" @@ -1456,6 +1469,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 897, "end": 908, + "moduleId": 0, "start": 897, "type": "TagDeclarator", "value": "hookInside" @@ -1481,6 +1495,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 962, "end": 973, + "moduleId": 0, "start": 962, "type": "TagDeclarator", "value": "baseInside" @@ -1525,6 +1540,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 1079, "end": 1091, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "baseOutside" @@ -1691,6 +1707,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 798, "end": 810, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "hookOutside" @@ -1711,6 +1728,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 897, "end": 908, + "moduleId": 0, "start": 897, "type": "TagDeclarator", "value": "hookInside" @@ -1724,6 +1742,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 962, "end": 973, + "moduleId": 0, "start": 962, "type": "TagDeclarator", "value": "baseInside" @@ -1744,6 +1763,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 1079, "end": 1091, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "baseOutside" @@ -1767,6 +1787,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 798, "end": 810, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "hookOutside" @@ -1811,6 +1832,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 897, "end": 908, + "moduleId": 0, "start": 897, "type": "TagDeclarator", "value": "hookInside" @@ -1836,6 +1858,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 962, "end": 973, + "moduleId": 0, "start": 962, "type": "TagDeclarator", "value": "baseInside" @@ -1880,6 +1903,7 @@ description: Variables in memory after executing curtain-wall-anchor-plate.kcl "tag": { "commentStart": 1079, "end": 1091, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "baseOutside" diff --git a/rust/kcl-lib/tests/kcl_samples/cycloidal-gear/ast.snap b/rust/kcl-lib/tests/kcl_samples/cycloidal-gear/ast.snap index e7cae4ba1..81aa38b1e 100644 --- a/rust/kcl-lib/tests/kcl_samples/cycloidal-gear/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/cycloidal-gear/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing cycloidal-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cycloidalGear", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing cycloidal-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch", "start": 0, "type": "Identifier" @@ -43,6 +45,7 @@ description: Result of parsing cycloidal-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngleP", "start": 0, "type": "Identifier" @@ -57,9 +60,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -69,14 +74,17 @@ description: Result of parsing cycloidal-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gHeight", "start": 0, "type": "Identifier" @@ -90,14 +98,17 @@ description: Result of parsing cycloidal-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -111,11 +122,13 @@ description: Result of parsing cycloidal-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -128,6 +141,7 @@ description: Result of parsing cycloidal-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearProfile", "start": 0, "type": "Identifier" @@ -135,13 +149,16 @@ description: Result of parsing cycloidal-gear.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -152,6 +169,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -162,6 +180,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -170,9 +189,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gHeight", "start": 0, "type": "Identifier" @@ -188,9 +209,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -201,6 +224,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -208,9 +232,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -229,6 +255,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -249,9 +276,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -261,10 +290,12 @@ description: Result of parsing cycloidal-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.55", "start": 0, "type": "Literal", @@ -278,15 +309,19 @@ description: Result of parsing cycloidal-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -297,6 +332,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -304,9 +340,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngleP", "start": 0, "type": "Identifier" @@ -321,6 +359,7 @@ description: Result of parsing cycloidal-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -329,9 +368,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -341,15 +382,19 @@ description: Result of parsing cycloidal-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -360,6 +405,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -368,9 +414,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngleP", "start": 0, "type": "Identifier" @@ -382,6 +430,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -409,9 +458,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -421,10 +472,12 @@ description: Result of parsing cycloidal-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.55", "start": 0, "type": "Literal", @@ -438,15 +491,19 @@ description: Result of parsing cycloidal-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -457,6 +514,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -464,9 +522,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngleP", "start": 0, "type": "Identifier" @@ -481,6 +541,7 @@ description: Result of parsing cycloidal-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -489,9 +550,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -501,15 +564,19 @@ description: Result of parsing cycloidal-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -520,6 +587,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -528,9 +596,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngleP", "start": 0, "type": "Identifier" @@ -542,6 +612,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -558,6 +629,7 @@ description: Result of parsing cycloidal-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -568,9 +640,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -581,6 +655,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -593,6 +668,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -603,6 +679,7 @@ description: Result of parsing cycloidal-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -612,14 +689,17 @@ description: Result of parsing cycloidal-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngleP", "start": 0, "type": "Identifier" @@ -639,6 +719,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -650,6 +731,7 @@ description: Result of parsing cycloidal-gear.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -661,19 +743,23 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngleP", "start": 0, "type": "Identifier" @@ -693,6 +779,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -701,9 +788,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -719,9 +808,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -732,6 +823,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -744,6 +836,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -755,9 +848,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -767,10 +862,12 @@ description: Result of parsing cycloidal-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.67", "start": 0, "type": "Literal", @@ -790,6 +887,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -797,6 +895,7 @@ description: Result of parsing cycloidal-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -812,9 +911,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -825,6 +926,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -837,6 +939,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -845,9 +948,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -863,6 +968,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -871,6 +977,7 @@ description: Result of parsing cycloidal-gear.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -882,6 +989,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -893,9 +1001,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -906,6 +1016,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -918,6 +1029,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -929,9 +1041,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -941,10 +1055,12 @@ description: Result of parsing cycloidal-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.67", "start": 0, "type": "Literal", @@ -964,6 +1080,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -971,6 +1088,7 @@ description: Result of parsing cycloidal-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -986,9 +1104,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -999,6 +1119,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1011,6 +1132,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1019,9 +1141,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -1037,6 +1161,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1045,6 +1170,7 @@ description: Result of parsing cycloidal-gear.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1056,6 +1182,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1067,9 +1194,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1080,6 +1209,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1092,6 +1222,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1100,13 +1231,16 @@ description: Result of parsing cycloidal-gear.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1117,25 +1251,30 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1146,12 +1285,14 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1159,6 +1300,7 @@ description: Result of parsing cycloidal-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1169,9 +1311,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1182,19 +1326,23 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1205,12 +1353,14 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1223,6 +1373,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1234,6 +1385,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1244,6 +1396,7 @@ description: Result of parsing cycloidal-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1256,6 +1409,7 @@ description: Result of parsing cycloidal-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1267,6 +1421,7 @@ description: Result of parsing cycloidal-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1277,6 +1432,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1288,9 +1444,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiameter", "start": 0, "type": "Identifier" @@ -1300,10 +1458,12 @@ description: Result of parsing cycloidal-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1323,9 +1483,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1336,6 +1498,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1347,9 +1510,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1360,6 +1525,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1368,15 +1534,18 @@ description: Result of parsing cycloidal-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1386,9 +1555,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearProfile", "start": 0, "type": "Identifier" @@ -1400,6 +1571,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1407,16 +1579,19 @@ description: Result of parsing cycloidal-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gHeight", "start": 0, "type": "Identifier" @@ -1428,11 +1603,13 @@ description: Result of parsing cycloidal-gear.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Create a function to draw the gear profile as a sketch. Rotate each profile about the gear's axis by an helix angle proportional to the total gear height" ], @@ -1448,18 +1625,22 @@ description: Result of parsing cycloidal-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearLoft", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -1470,6 +1651,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1477,13 +1659,16 @@ description: Result of parsing cycloidal-gear.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch", "start": 0, "type": "Identifier" @@ -1494,12 +1679,14 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1511,13 +1698,16 @@ description: Result of parsing cycloidal-gear.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch", "start": 0, "type": "Identifier" @@ -1528,6 +1718,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1538,9 +1729,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -1550,10 +1743,12 @@ description: Result of parsing cycloidal-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1569,13 +1764,16 @@ description: Result of parsing cycloidal-gear.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch", "start": 0, "type": "Identifier" @@ -1586,6 +1784,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1593,9 +1792,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -1608,16 +1809,19 @@ description: Result of parsing cycloidal-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1632,9 +1836,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearLoft", "start": 0, "type": "Identifier" @@ -1646,6 +1852,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1653,12 +1860,14 @@ description: Result of parsing cycloidal-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1673,12 +1882,14 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -1689,6 +1900,7 @@ description: Result of parsing cycloidal-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -1699,6 +1911,7 @@ description: Result of parsing cycloidal-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiameter", "start": 0, "type": "Identifier" @@ -1709,6 +1922,7 @@ description: Result of parsing cycloidal-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -1719,11 +1933,13 @@ description: Result of parsing cycloidal-gear.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Create a function for the cycloidal gear" ], @@ -1741,6 +1957,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearPitch", "start": 0, "type": "Identifier" @@ -1748,6 +1965,7 @@ description: Result of parsing cycloidal-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".3", "start": 0, "type": "Literal", @@ -1763,6 +1981,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -1770,6 +1989,7 @@ description: Result of parsing cycloidal-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -1785,6 +2005,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiameter", "start": 0, "type": "Identifier" @@ -1792,6 +2013,7 @@ description: Result of parsing cycloidal-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.297", "start": 0, "type": "Literal", @@ -1807,6 +2029,7 @@ description: Result of parsing cycloidal-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -1815,6 +2038,7 @@ description: Result of parsing cycloidal-gear.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -1826,6 +2050,7 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1837,9 +2062,11 @@ description: Result of parsing cycloidal-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cycloidalGear", "start": 0, "type": "Identifier" @@ -1850,11 +2077,13 @@ description: Result of parsing cycloidal-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -1871,9 +2100,11 @@ description: Result of parsing cycloidal-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1892,19 +2123,23 @@ description: Result of parsing cycloidal-gear.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1921,15 +2156,18 @@ description: Result of parsing cycloidal-gear.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1945,12 +2183,14 @@ description: Result of parsing cycloidal-gear.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/dodecahedron/ast.snap b/rust/kcl-lib/tests/kcl_samples/dodecahedron/ast.snap index d15d48ee5..49dedaff6 100644 --- a/rust/kcl-lib/tests/kcl_samples/dodecahedron/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/dodecahedron/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing dodecahedron.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "116.565", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define the dihedral angle for a regular dodecahedron" ], @@ -49,6 +53,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createFaceTemplate", "start": 0, "type": "Identifier" @@ -64,6 +69,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseSketch", "start": 0, "type": "Identifier" @@ -71,13 +77,16 @@ description: Result of parsing dodecahedron.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -88,6 +97,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -95,9 +105,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -115,6 +127,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -129,6 +142,7 @@ description: Result of parsing dodecahedron.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -140,19 +154,23 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -173,6 +191,7 @@ description: Result of parsing dodecahedron.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -184,19 +203,23 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -212,6 +235,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -222,9 +246,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -235,6 +261,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -247,6 +274,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -260,6 +288,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -269,14 +298,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -297,6 +329,7 @@ description: Result of parsing dodecahedron.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -308,19 +341,23 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -336,6 +373,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -346,9 +384,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -359,6 +399,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -371,6 +412,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -384,6 +426,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -393,14 +436,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -420,6 +466,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -429,14 +476,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -452,6 +502,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -462,9 +513,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -475,6 +528,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -487,6 +541,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -501,6 +556,7 @@ description: Result of parsing dodecahedron.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -512,19 +568,23 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -544,6 +604,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -553,14 +614,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -576,6 +640,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -586,9 +651,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -599,19 +666,23 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -622,6 +693,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -630,15 +702,18 @@ description: Result of parsing dodecahedron.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -651,6 +726,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extruded", "start": 0, "type": "Identifier" @@ -662,6 +738,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -675,6 +752,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -684,14 +762,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -705,10 +786,12 @@ description: Result of parsing dodecahedron.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -728,9 +811,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -741,6 +826,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -748,9 +834,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseSketch", "start": 0, "type": "Identifier" @@ -761,11 +849,13 @@ description: Result of parsing dodecahedron.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -777,9 +867,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extruded", "start": 0, "type": "Identifier" @@ -796,6 +888,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -803,6 +896,7 @@ description: Result of parsing dodecahedron.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -818,6 +912,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -825,6 +920,7 @@ description: Result of parsing dodecahedron.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -840,6 +936,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -851,6 +948,7 @@ description: Result of parsing dodecahedron.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "260", "start": 0, "type": "Literal", @@ -862,19 +960,23 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -894,9 +996,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -907,6 +1011,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -915,12 +1020,14 @@ description: Result of parsing dodecahedron.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -928,16 +1035,19 @@ description: Result of parsing dodecahedron.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dither", "start": 0, "type": "Identifier" @@ -949,11 +1059,13 @@ description: Result of parsing dodecahedron.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -971,6 +1083,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceRotations", "start": 0, "type": "Identifier" @@ -984,6 +1097,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -996,6 +1110,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1008,6 +1123,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1020,6 +1136,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1031,6 +1148,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1042,9 +1160,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1057,6 +1177,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1069,6 +1190,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1081,6 +1203,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -1092,6 +1215,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1103,9 +1227,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1118,6 +1244,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1130,6 +1257,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "72", "start": 0, "type": "Literal", @@ -1142,6 +1270,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -1153,6 +1282,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1164,9 +1294,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1179,6 +1311,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1191,6 +1324,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "144", "start": 0, "type": "Literal", @@ -1203,6 +1337,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -1214,6 +1349,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1225,9 +1361,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1240,6 +1378,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1252,6 +1391,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "216", "start": 0, "type": "Literal", @@ -1264,6 +1404,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -1275,6 +1416,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1286,9 +1428,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1301,6 +1445,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1313,6 +1458,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "288", "start": 0, "type": "Literal", @@ -1325,6 +1471,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1336,6 +1483,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1346,6 +1494,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1358,6 +1507,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1370,6 +1520,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1382,6 +1533,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -1393,6 +1545,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1406,6 +1559,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1415,14 +1569,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1439,6 +1596,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1451,6 +1609,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36", "start": 0, "type": "Literal", @@ -1463,6 +1622,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -1474,6 +1634,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1487,6 +1648,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1496,14 +1658,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1520,6 +1685,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1532,6 +1698,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "108", "start": 0, "type": "Literal", @@ -1544,6 +1711,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -1555,6 +1723,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1568,6 +1737,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1577,14 +1747,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1601,6 +1774,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1613,6 +1787,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1625,6 +1800,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -1636,6 +1812,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1649,6 +1826,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1658,14 +1836,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1682,6 +1863,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1694,6 +1876,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "252", "start": 0, "type": "Literal", @@ -1706,6 +1889,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11", "start": 0, "type": "Literal", @@ -1717,6 +1901,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1730,6 +1915,7 @@ description: Result of parsing dodecahedron.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1739,14 +1925,17 @@ description: Result of parsing dodecahedron.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dihedral", "start": 0, "type": "Identifier" @@ -1763,6 +1952,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1775,6 +1965,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "324", "start": 0, "type": "Literal", @@ -1787,6 +1978,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12", "start": 0, "type": "Literal", @@ -1798,18 +1990,21 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } ], "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1823,6 +2018,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1836,6 +2032,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1849,6 +2046,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1862,6 +2060,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1875,6 +2074,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1888,6 +2088,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1901,6 +2102,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1914,6 +2116,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1927,6 +2130,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1940,6 +2144,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1953,6 +2158,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1969,11 +2175,13 @@ description: Result of parsing dodecahedron.kcl "type": "ArrayExpression", "type": "ArrayExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1991,6 +2199,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dodecFaces", "start": 0, "type": "Identifier" @@ -2002,6 +2211,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2013,13 +2223,16 @@ description: Result of parsing dodecahedron.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createFaceTemplate", "start": 0, "type": "Identifier" @@ -2030,6 +2243,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2037,13 +2251,16 @@ description: Result of parsing dodecahedron.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotation", "start": 0, "type": "Identifier" @@ -2056,6 +2273,7 @@ description: Result of parsing dodecahedron.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2077,6 +2295,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2085,13 +2304,16 @@ description: Result of parsing dodecahedron.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotation", "start": 0, "type": "Identifier" @@ -2104,6 +2326,7 @@ description: Result of parsing dodecahedron.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2123,6 +2346,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -2131,13 +2355,16 @@ description: Result of parsing dodecahedron.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotation", "start": 0, "type": "Identifier" @@ -2150,6 +2377,7 @@ description: Result of parsing dodecahedron.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2169,6 +2397,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -2177,13 +2406,16 @@ description: Result of parsing dodecahedron.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotation", "start": 0, "type": "Identifier" @@ -2196,6 +2428,7 @@ description: Result of parsing dodecahedron.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2215,6 +2448,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "global", "start": 0, "type": "Identifier" @@ -2222,6 +2456,7 @@ description: Result of parsing dodecahedron.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2234,9 +2469,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -2247,6 +2484,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2255,12 +2493,14 @@ description: Result of parsing dodecahedron.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2268,16 +2508,19 @@ description: Result of parsing dodecahedron.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotation", "start": 0, "type": "Identifier" @@ -2295,9 +2538,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "map", "start": 0, "type": "Identifier" @@ -2308,6 +2553,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2315,9 +2561,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceRotations", "start": 0, "type": "Identifier" @@ -2328,11 +2576,13 @@ description: Result of parsing dodecahedron.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2350,6 +2600,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "calculateArrayLength", "start": 0, "type": "Identifier" @@ -2365,6 +2616,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "initial", "start": 0, "type": "Identifier" @@ -2372,6 +2624,7 @@ description: Result of parsing dodecahedron.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2387,6 +2640,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2402,9 +2656,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "accum", "start": 0, "type": "Identifier" @@ -2414,10 +2670,12 @@ description: Result of parsing dodecahedron.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2433,6 +2691,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2440,16 +2699,19 @@ description: Result of parsing dodecahedron.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "item", "start": 0, "type": "Identifier" @@ -2461,6 +2723,7 @@ description: Result of parsing dodecahedron.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "accum", "start": 0, "type": "Identifier" @@ -2477,9 +2740,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reduce", "start": 0, "type": "Identifier" @@ -2490,6 +2755,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2497,9 +2763,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -2512,6 +2780,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2519,16 +2788,19 @@ description: Result of parsing dodecahedron.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arr", "start": 0, "type": "Identifier" @@ -2540,11 +2812,13 @@ description: Result of parsing dodecahedron.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2557,6 +2831,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createIntersection", "start": 0, "type": "Identifier" @@ -2572,6 +2847,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reduceIntersect", "start": 0, "type": "Identifier" @@ -2581,13 +2857,16 @@ description: Result of parsing dodecahedron.kcl "body": [ { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersect", "start": 0, "type": "Identifier" @@ -2598,6 +2877,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2608,9 +2888,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "previous", "start": 0, "type": "Identifier" @@ -2624,9 +2906,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "accum", "start": 0, "type": "Identifier" @@ -2638,6 +2922,7 @@ description: Result of parsing dodecahedron.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2645,6 +2930,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2652,16 +2938,19 @@ description: Result of parsing dodecahedron.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "previous", "start": 0, "type": "Identifier" @@ -2673,6 +2962,7 @@ description: Result of parsing dodecahedron.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "accum", "start": 0, "type": "Identifier" @@ -2683,11 +2973,13 @@ description: Result of parsing dodecahedron.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2700,6 +2992,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastIndex", "start": 0, "type": "Identifier" @@ -2708,13 +3001,16 @@ description: Result of parsing dodecahedron.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "calculateArrayLength", "start": 0, "type": "Identifier" @@ -2725,6 +3021,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2732,9 +3029,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solids", "start": 0, "type": "Identifier" @@ -2745,10 +3044,12 @@ description: Result of parsing dodecahedron.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2762,11 +3063,13 @@ description: Result of parsing dodecahedron.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2779,6 +3082,7 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSolid", "start": 0, "type": "Identifier" @@ -2787,13 +3091,16 @@ description: Result of parsing dodecahedron.kcl "commentStart": 0, "computed": true, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solids", "start": 0, "type": "Identifier" @@ -2806,6 +3113,7 @@ description: Result of parsing dodecahedron.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastIndex", "start": 0, "type": "Identifier", @@ -2815,11 +3123,13 @@ description: Result of parsing dodecahedron.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2832,18 +3142,22 @@ description: Result of parsing dodecahedron.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "remainingSolids", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pop", "start": 0, "type": "Identifier" @@ -2854,6 +3168,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2861,9 +3176,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solids", "start": 0, "type": "Identifier" @@ -2874,11 +3191,13 @@ description: Result of parsing dodecahedron.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2891,6 +3210,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "initial", "start": 0, "type": "Identifier" @@ -2899,9 +3219,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSolid", "start": 0, "type": "Identifier" @@ -2917,6 +3239,7 @@ description: Result of parsing dodecahedron.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -2925,9 +3248,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reduceIntersect", "start": 0, "type": "Identifier" @@ -2943,9 +3268,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reduce", "start": 0, "type": "Identifier" @@ -2956,6 +3283,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2963,9 +3291,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "remainingSolids", "start": 0, "type": "Identifier" @@ -2978,6 +3308,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2985,16 +3316,19 @@ description: Result of parsing dodecahedron.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "solids", "start": 0, "type": "Identifier" @@ -3006,11 +3340,13 @@ description: Result of parsing dodecahedron.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3019,13 +3355,16 @@ description: Result of parsing dodecahedron.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createIntersection", "start": 0, "type": "Identifier" @@ -3036,6 +3375,7 @@ description: Result of parsing dodecahedron.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3043,9 +3383,11 @@ description: Result of parsing dodecahedron.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dodecFaces", "start": 0, "type": "Identifier" @@ -3056,6 +3398,7 @@ description: Result of parsing dodecahedron.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -3072,9 +3415,11 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3093,19 +3438,23 @@ description: Result of parsing dodecahedron.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -3122,15 +3471,18 @@ description: Result of parsing dodecahedron.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3146,12 +3498,14 @@ description: Result of parsing dodecahedron.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3163,6 +3517,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3175,6 +3530,7 @@ description: Result of parsing dodecahedron.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/enclosure/ast.snap b/rust/kcl-lib/tests/kcl_samples/enclosure/ast.snap index 7cacfcd1c..33070d21b 100644 --- a/rust/kcl-lib/tests/kcl_samples/enclosure/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/enclosure/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing enclosure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "175", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing enclosure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing enclosure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "125", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing enclosure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing enclosure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing enclosure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing enclosure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing enclosure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing enclosure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing enclosure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -188,13 +209,16 @@ description: Result of parsing enclosure.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -205,6 +229,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -212,9 +237,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -232,6 +259,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -242,6 +270,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -254,6 +283,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -265,6 +295,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -275,9 +306,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -288,6 +321,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -300,6 +334,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -307,6 +342,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -322,6 +358,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -330,9 +367,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -348,6 +387,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -355,6 +395,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -366,9 +407,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -379,6 +422,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -391,6 +435,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -399,13 +444,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -416,6 +464,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -423,9 +472,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -436,10 +487,12 @@ description: Result of parsing enclosure.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -461,9 +514,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -479,6 +534,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -486,6 +542,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -497,9 +554,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -510,6 +569,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -522,18 +582,22 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -544,6 +608,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -551,9 +616,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -570,19 +637,23 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -593,6 +664,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -600,9 +672,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -615,6 +689,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -626,6 +701,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -633,6 +709,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -644,9 +721,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -657,6 +736,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -669,6 +749,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -677,13 +758,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -694,25 +778,30 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -723,12 +812,14 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -736,6 +827,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -746,6 +838,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -753,6 +846,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -764,9 +858,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -777,19 +873,23 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -800,6 +900,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -808,15 +909,18 @@ description: Result of parsing enclosure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -834,6 +938,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -847,6 +952,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -855,9 +961,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -873,9 +981,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -886,6 +996,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -893,9 +1004,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -913,6 +1026,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -924,9 +1038,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -936,10 +1052,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -959,6 +1077,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -967,13 +1086,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -984,6 +1106,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -991,9 +1114,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -1005,13 +1130,16 @@ description: Result of parsing enclosure.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1022,6 +1150,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1029,9 +1158,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentB001", "start": 0, "type": "Identifier" @@ -1043,13 +1174,16 @@ description: Result of parsing enclosure.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1060,6 +1194,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1067,9 +1202,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentC001", "start": 0, "type": "Identifier" @@ -1081,13 +1218,16 @@ description: Result of parsing enclosure.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1098,6 +1238,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1105,9 +1246,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -1120,6 +1263,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1130,9 +1274,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1143,6 +1289,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1155,6 +1302,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -1166,9 +1314,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1180,6 +1330,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1190,6 +1341,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1198,9 +1350,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1216,9 +1370,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shell", "start": 0, "type": "Identifier" @@ -1229,6 +1385,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1237,12 +1394,14 @@ description: Result of parsing enclosure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1256,6 +1415,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1272,11 +1432,13 @@ description: Result of parsing enclosure.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1289,6 +1451,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "function001", "start": 0, "type": "Identifier" @@ -1304,6 +1467,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -1311,6 +1475,7 @@ description: Result of parsing enclosure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1318,10 +1483,12 @@ description: Result of parsing enclosure.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1330,6 +1497,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1342,6 +1510,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1355,9 +1524,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1369,6 +1540,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1380,10 +1552,12 @@ description: Result of parsing enclosure.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1392,6 +1566,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1404,6 +1579,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1416,6 +1592,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1427,6 +1604,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1438,10 +1616,12 @@ description: Result of parsing enclosure.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1450,6 +1630,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1462,6 +1643,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1474,6 +1656,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1485,6 +1668,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1496,10 +1680,12 @@ description: Result of parsing enclosure.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1508,6 +1694,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1520,6 +1707,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1532,6 +1720,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1543,6 +1732,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1553,11 +1743,13 @@ description: Result of parsing enclosure.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Create a plane to sketch on shell interior" ], @@ -1573,6 +1765,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1580,13 +1773,16 @@ description: Result of parsing enclosure.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1597,6 +1793,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1604,9 +1801,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -1624,6 +1823,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1635,13 +1835,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -1654,6 +1857,7 @@ description: Result of parsing enclosure.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1671,13 +1875,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -1690,6 +1897,7 @@ description: Result of parsing enclosure.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1705,6 +1913,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1715,6 +1924,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1726,9 +1936,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -1738,14 +1950,17 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1765,9 +1980,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1778,6 +1995,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1790,6 +2008,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1801,6 +2020,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1812,13 +2032,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -1831,6 +2054,7 @@ description: Result of parsing enclosure.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1848,13 +2072,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -1867,6 +2094,7 @@ description: Result of parsing enclosure.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1882,6 +2110,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1892,6 +2121,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1900,9 +2130,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -1918,9 +2150,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1931,6 +2165,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1942,9 +2177,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1955,6 +2192,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1963,15 +2201,18 @@ description: Result of parsing enclosure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1989,6 +2230,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -2000,6 +2242,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2011,9 +2254,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2023,14 +2268,17 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2050,9 +2298,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2063,6 +2313,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2070,9 +2321,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2083,11 +2336,13 @@ description: Result of parsing enclosure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2097,9 +2352,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -2111,6 +2368,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2118,12 +2376,14 @@ description: Result of parsing enclosure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2138,12 +2398,14 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -2155,11 +2417,13 @@ description: Result of parsing enclosure.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2168,13 +2432,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "function001", "start": 0, "type": "Identifier" @@ -2185,6 +2452,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2201,9 +2469,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2213,10 +2483,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2230,14 +2502,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -2261,9 +2536,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2273,10 +2550,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2290,14 +2569,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -2313,11 +2595,13 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "preComments": [ "", "", @@ -2331,13 +2615,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "function001", "start": 0, "type": "Identifier" @@ -2348,6 +2635,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2364,9 +2652,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2376,10 +2666,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2393,14 +2685,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -2421,9 +2716,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2433,6 +2730,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2444,9 +2742,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2456,10 +2756,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2473,14 +2775,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -2500,11 +2805,13 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2513,13 +2820,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "function001", "start": 0, "type": "Identifier" @@ -2530,6 +2840,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2543,9 +2854,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2555,6 +2868,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2566,9 +2880,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2578,10 +2894,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2595,14 +2913,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -2630,9 +2951,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2642,10 +2965,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2659,14 +2984,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -2682,11 +3010,13 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2695,13 +3025,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "function001", "start": 0, "type": "Identifier" @@ -2712,6 +3045,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2725,9 +3059,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2737,6 +3073,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2748,9 +3085,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2760,10 +3099,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2777,14 +3118,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -2809,9 +3153,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2821,6 +3167,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2832,9 +3179,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2844,10 +3193,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2861,14 +3212,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -2888,11 +3242,13 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2905,6 +3261,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -2912,13 +3269,16 @@ description: Result of parsing enclosure.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2929,6 +3289,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2936,9 +3297,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2956,6 +3319,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2970,9 +3334,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2982,10 +3348,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -3002,6 +3370,7 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3013,6 +3382,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3023,9 +3393,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3036,6 +3408,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3048,6 +3421,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3055,6 +3429,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3070,6 +3445,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3078,9 +3454,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3096,6 +3474,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3103,6 +3482,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3114,9 +3494,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3127,6 +3509,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3139,6 +3522,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3147,13 +3531,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3164,6 +3551,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3171,9 +3559,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3184,10 +3574,12 @@ description: Result of parsing enclosure.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3209,9 +3601,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3227,6 +3621,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3234,6 +3629,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3245,9 +3641,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3258,6 +3656,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3270,18 +3669,22 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3292,6 +3695,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3299,9 +3703,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3318,19 +3724,23 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3341,6 +3751,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3348,9 +3759,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3363,6 +3776,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3374,6 +3788,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3381,6 +3796,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3392,9 +3808,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3405,6 +3823,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3417,6 +3836,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3425,13 +3845,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3442,25 +3865,30 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3471,12 +3899,14 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3484,6 +3914,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3494,6 +3925,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3501,6 +3933,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3512,9 +3945,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3525,19 +3960,23 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3548,6 +3987,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3560,6 +4000,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3571,6 +4012,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3591,9 +4033,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3603,10 +4047,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -3620,6 +4066,7 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3628,9 +4075,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3640,10 +4089,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3661,14 +4112,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -3692,9 +4146,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3704,10 +4160,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3721,14 +4179,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -3744,6 +4205,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3754,6 +4216,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3762,9 +4225,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -3780,9 +4245,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3793,6 +4260,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3804,9 +4272,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -3817,6 +4287,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3829,6 +4300,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3840,6 +4312,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3860,9 +4333,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3872,10 +4347,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -3889,6 +4366,7 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3897,9 +4375,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3909,10 +4389,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3930,14 +4412,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -3958,9 +4443,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3970,6 +4457,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3981,9 +4469,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3993,10 +4483,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4010,14 +4502,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -4037,6 +4532,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4047,6 +4543,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4055,9 +4552,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -4073,9 +4572,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4086,6 +4587,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4097,9 +4599,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4110,6 +4614,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4122,6 +4627,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -4133,6 +4639,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4150,9 +4657,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -4162,10 +4671,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.2", "start": 0, "type": "Literal", @@ -4179,6 +4690,7 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4190,9 +4702,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4202,10 +4716,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4219,14 +4735,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -4254,9 +4773,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4266,10 +4787,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4283,14 +4806,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -4306,6 +4832,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4316,6 +4843,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4324,9 +4852,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -4342,9 +4872,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4355,6 +4887,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4366,9 +4899,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4379,6 +4914,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4391,6 +4927,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -4402,6 +4939,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4419,9 +4957,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -4431,10 +4971,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.2", "start": 0, "type": "Literal", @@ -4448,6 +4990,7 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4459,9 +5002,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4471,10 +5016,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4488,14 +5035,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -4520,9 +5070,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4532,6 +5084,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4543,9 +5096,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4555,10 +5110,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4572,14 +5129,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -4599,6 +5159,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4609,6 +5170,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4617,9 +5179,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -4635,9 +5199,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4648,6 +5214,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4659,9 +5226,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4672,6 +5241,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4680,15 +5250,18 @@ description: Result of parsing enclosure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4706,6 +5279,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -4719,6 +5293,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4727,9 +5302,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4745,9 +5322,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4758,6 +5337,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4765,9 +5345,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -4785,6 +5367,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4796,9 +5379,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4808,10 +5393,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4831,6 +5418,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -4839,13 +5427,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -4856,6 +5447,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4863,9 +5455,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -4877,13 +5471,16 @@ description: Result of parsing enclosure.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -4894,6 +5491,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4901,9 +5499,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentB002", "start": 0, "type": "Identifier" @@ -4915,13 +5515,16 @@ description: Result of parsing enclosure.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -4932,6 +5535,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4939,9 +5543,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentC002", "start": 0, "type": "Identifier" @@ -4953,13 +5559,16 @@ description: Result of parsing enclosure.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -4970,6 +5579,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4977,9 +5587,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD002", "start": 0, "type": "Identifier" @@ -4992,6 +5604,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5002,9 +5615,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -5015,6 +5630,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5023,12 +5639,14 @@ description: Result of parsing enclosure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5045,11 +5663,13 @@ description: Result of parsing enclosure.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5062,6 +5682,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -5075,6 +5696,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -5083,9 +5705,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -5101,9 +5725,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5114,6 +5740,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5121,9 +5748,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -5141,6 +5770,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5158,9 +5788,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -5170,10 +5802,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -5187,14 +5821,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -5212,9 +5849,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -5226,6 +5865,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5236,9 +5876,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5249,6 +5891,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5261,6 +5904,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5268,6 +5912,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5283,6 +5928,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5294,9 +5940,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -5306,6 +5954,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5313,6 +5962,7 @@ description: Result of parsing enclosure.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5322,14 +5972,17 @@ description: Result of parsing enclosure.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -5353,6 +6006,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5360,6 +6014,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5371,9 +6026,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -5384,6 +6041,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5396,6 +6054,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5404,13 +6063,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -5421,6 +6083,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5428,9 +6091,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -5441,10 +6106,12 @@ description: Result of parsing enclosure.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5464,6 +6131,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5475,9 +6143,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5487,6 +6157,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5494,6 +6165,7 @@ description: Result of parsing enclosure.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5503,14 +6175,17 @@ description: Result of parsing enclosure.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -5534,6 +6209,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5541,6 +6217,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5552,9 +6229,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -5565,6 +6244,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5577,18 +6257,22 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -5599,6 +6283,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5606,9 +6291,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -5625,19 +6312,23 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -5648,6 +6339,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5655,9 +6347,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -5670,6 +6364,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5681,6 +6376,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5688,6 +6384,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5699,9 +6396,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -5712,6 +6411,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5724,6 +6424,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5732,13 +6433,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5749,25 +6453,30 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5778,12 +6487,14 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5791,6 +6502,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5801,6 +6513,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5808,6 +6521,7 @@ description: Result of parsing enclosure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5819,9 +6533,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5832,19 +6548,23 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5855,6 +6575,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5867,6 +6588,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -5878,6 +6600,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5898,9 +6621,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -5910,10 +6635,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -5927,6 +6654,7 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5935,9 +6663,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -5947,10 +6677,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5968,14 +6700,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -5999,9 +6734,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6011,10 +6748,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6028,14 +6767,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6051,6 +6793,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6061,6 +6804,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6072,9 +6816,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6084,14 +6830,17 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6111,9 +6860,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6124,6 +6875,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6135,9 +6887,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -6148,6 +6902,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6160,6 +6915,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -6171,6 +6927,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6191,9 +6948,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6203,10 +6962,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -6220,6 +6981,7 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -6228,9 +6990,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6240,10 +7004,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6261,14 +7027,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6289,9 +7058,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6301,6 +7072,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6312,9 +7084,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6324,10 +7098,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6341,14 +7117,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6368,6 +7147,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6378,6 +7158,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6389,9 +7170,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6401,14 +7184,17 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6428,9 +7214,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6441,6 +7229,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6452,9 +7241,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -6465,6 +7256,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6477,6 +7269,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -6488,6 +7281,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6505,9 +7299,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6517,10 +7313,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.2", "start": 0, "type": "Literal", @@ -6534,6 +7332,7 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6545,9 +7344,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6557,10 +7358,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6574,14 +7377,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6609,9 +7415,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6621,10 +7429,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6638,14 +7448,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6661,6 +7474,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6671,6 +7485,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6682,9 +7497,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6694,14 +7511,17 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6721,9 +7541,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6734,6 +7556,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6745,9 +7568,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -6758,6 +7583,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6770,6 +7596,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -6781,6 +7608,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6798,9 +7626,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6810,10 +7640,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.2", "start": 0, "type": "Literal", @@ -6827,6 +7659,7 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6838,9 +7671,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6850,10 +7685,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6867,14 +7704,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6899,9 +7739,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6911,6 +7753,7 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6922,9 +7765,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6934,10 +7779,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6951,14 +7798,17 @@ description: Result of parsing enclosure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -6978,6 +7828,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6988,6 +7839,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6999,9 +7851,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDia", "start": 0, "type": "Identifier" @@ -7011,14 +7865,17 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -7038,9 +7895,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -7051,6 +7910,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7062,9 +7922,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -7075,6 +7937,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7083,15 +7946,18 @@ description: Result of parsing enclosure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7104,6 +7970,7 @@ description: Result of parsing enclosure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude004", "start": 0, "type": "Identifier" @@ -7117,6 +7984,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7125,9 +7993,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -7143,9 +8013,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7156,6 +8028,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7163,9 +8036,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -7183,6 +8058,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -7194,9 +8070,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -7206,10 +8084,12 @@ description: Result of parsing enclosure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7229,6 +8109,7 @@ description: Result of parsing enclosure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -7237,13 +8118,16 @@ description: Result of parsing enclosure.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -7254,6 +8138,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7261,9 +8146,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -7275,13 +8162,16 @@ description: Result of parsing enclosure.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -7292,6 +8182,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7299,9 +8190,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentB003", "start": 0, "type": "Identifier" @@ -7313,13 +8206,16 @@ description: Result of parsing enclosure.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -7330,6 +8226,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7337,9 +8234,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentC003", "start": 0, "type": "Identifier" @@ -7351,13 +8250,16 @@ description: Result of parsing enclosure.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -7368,6 +8270,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7375,9 +8278,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD003", "start": 0, "type": "Identifier" @@ -7390,6 +8295,7 @@ description: Result of parsing enclosure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7400,9 +8306,11 @@ description: Result of parsing enclosure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -7413,6 +8321,7 @@ description: Result of parsing enclosure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7421,15 +8330,18 @@ description: Result of parsing enclosure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7441,9 +8353,11 @@ description: Result of parsing enclosure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -7462,19 +8376,23 @@ description: Result of parsing enclosure.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -7491,15 +8409,18 @@ description: Result of parsing enclosure.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7515,12 +8436,14 @@ description: Result of parsing enclosure.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/enclosure/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/enclosure/program_memory.snap index dc0e15cd5..1606b2550 100644 --- a/rust/kcl-lib/tests/kcl_samples/enclosure/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/enclosure/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 380, "end": 401, + "moduleId": 0, "start": 380, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -30,6 +31,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 476, "end": 497, + "moduleId": 0, "start": 476, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -43,6 +45,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 599, "end": 620, + "moduleId": 0, "start": 599, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -56,6 +59,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 690, "end": 711, + "moduleId": 0, "start": 690, "type": "TagDeclarator", "value": "rectangleSegmentD001" @@ -79,6 +83,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 380, "end": 401, + "moduleId": 0, "start": 380, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -104,6 +109,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 476, "end": 497, + "moduleId": 0, "start": 476, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -129,6 +135,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 599, "end": 620, + "moduleId": 0, "start": 599, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -154,6 +161,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 690, "end": 711, + "moduleId": 0, "start": 690, "type": "TagDeclarator", "value": "rectangleSegmentD001" @@ -356,6 +364,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2436, "end": 2457, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -369,6 +378,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2532, "end": 2553, + "moduleId": 0, "start": 2532, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -382,6 +392,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2655, "end": 2676, + "moduleId": 0, "start": 2655, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -395,6 +406,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2746, "end": 2767, + "moduleId": 0, "start": 2746, "type": "TagDeclarator", "value": "rectangleSegmentD002" @@ -418,6 +430,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2436, "end": 2457, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -443,6 +456,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2532, "end": 2553, + "moduleId": 0, "start": 2532, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -468,6 +482,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2655, "end": 2676, + "moduleId": 0, "start": 2655, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -493,6 +508,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2746, "end": 2767, + "moduleId": 0, "start": 2746, "type": "TagDeclarator", "value": "rectangleSegmentD002" @@ -695,6 +711,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4129, "end": 4150, + "moduleId": 0, "start": 4129, "type": "TagDeclarator", "value": "rectangleSegmentA003" @@ -708,6 +725,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4256, "end": 4277, + "moduleId": 0, "start": 4256, "type": "TagDeclarator", "value": "rectangleSegmentB003" @@ -721,6 +739,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4379, "end": 4400, + "moduleId": 0, "start": 4379, "type": "TagDeclarator", "value": "rectangleSegmentC003" @@ -734,6 +753,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4470, "end": 4491, + "moduleId": 0, "start": 4470, "type": "TagDeclarator", "value": "rectangleSegmentD003" @@ -757,6 +777,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4129, "end": 4150, + "moduleId": 0, "start": 4129, "type": "TagDeclarator", "value": "rectangleSegmentA003" @@ -782,6 +803,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4256, "end": 4277, + "moduleId": 0, "start": 4256, "type": "TagDeclarator", "value": "rectangleSegmentB003" @@ -807,6 +829,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4379, "end": 4400, + "moduleId": 0, "start": 4379, "type": "TagDeclarator", "value": "rectangleSegmentC003" @@ -832,6 +855,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4470, "end": 4491, + "moduleId": 0, "start": 4470, "type": "TagDeclarator", "value": "rectangleSegmentD003" @@ -898,6 +922,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2436, "end": 2457, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -911,6 +936,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2532, "end": 2553, + "moduleId": 0, "start": 2532, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -924,6 +950,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2655, "end": 2676, + "moduleId": 0, "start": 2655, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -937,6 +964,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2746, "end": 2767, + "moduleId": 0, "start": 2746, "type": "TagDeclarator", "value": "rectangleSegmentD002" @@ -960,6 +988,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2436, "end": 2457, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -985,6 +1014,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2532, "end": 2553, + "moduleId": 0, "start": 2532, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -1010,6 +1040,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2655, "end": 2676, + "moduleId": 0, "start": 2655, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -1035,6 +1066,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2746, "end": 2767, + "moduleId": 0, "start": 2746, "type": "TagDeclarator", "value": "rectangleSegmentD002" @@ -1472,6 +1504,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 380, "end": 401, + "moduleId": 0, "start": 380, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1497,6 +1530,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 476, "end": 497, + "moduleId": 0, "start": 476, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -1522,6 +1556,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 599, "end": 620, + "moduleId": 0, "start": 599, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -1547,6 +1582,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 690, "end": 711, + "moduleId": 0, "start": 690, "type": "TagDeclarator", "value": "rectangleSegmentD001" @@ -1671,6 +1707,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2436, "end": 2457, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -1696,6 +1733,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2532, "end": 2553, + "moduleId": 0, "start": 2532, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -1721,6 +1759,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2655, "end": 2676, + "moduleId": 0, "start": 2655, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -1746,6 +1785,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2746, "end": 2767, + "moduleId": 0, "start": 2746, "type": "TagDeclarator", "value": "rectangleSegmentD002" @@ -1870,6 +1910,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4129, "end": 4150, + "moduleId": 0, "start": 4129, "type": "TagDeclarator", "value": "rectangleSegmentA003" @@ -1895,6 +1936,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4256, "end": 4277, + "moduleId": 0, "start": 4256, "type": "TagDeclarator", "value": "rectangleSegmentB003" @@ -1920,6 +1962,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4379, "end": 4400, + "moduleId": 0, "start": 4379, "type": "TagDeclarator", "value": "rectangleSegmentC003" @@ -1945,6 +1988,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 4470, "end": 4491, + "moduleId": 0, "start": 4470, "type": "TagDeclarator", "value": "rectangleSegmentD003" @@ -2011,6 +2055,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2436, "end": 2457, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -2024,6 +2069,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2532, "end": 2553, + "moduleId": 0, "start": 2532, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -2037,6 +2083,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2655, "end": 2676, + "moduleId": 0, "start": 2655, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -2050,6 +2097,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2746, "end": 2767, + "moduleId": 0, "start": 2746, "type": "TagDeclarator", "value": "rectangleSegmentD002" @@ -2073,6 +2121,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2436, "end": 2457, + "moduleId": 0, "start": 2436, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -2098,6 +2147,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2532, "end": 2553, + "moduleId": 0, "start": 2532, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -2123,6 +2173,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2655, "end": 2676, + "moduleId": 0, "start": 2655, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -2148,6 +2199,7 @@ description: Variables in memory after executing enclosure.kcl "tag": { "commentStart": 2746, "end": 2767, + "moduleId": 0, "start": 2746, "type": "TagDeclarator", "value": "rectangleSegmentD002" diff --git a/rust/kcl-lib/tests/kcl_samples/engine-valve/ast.snap b/rust/kcl-lib/tests/kcl_samples/engine-valve/ast.snap index b1e7a0782..4e0c71946 100644 --- a/rust/kcl-lib/tests/kcl_samples/engine-valve/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/engine-valve/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing engine-valve.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveLength", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing engine-valve.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadLength", "start": 0, "type": "Identifier" @@ -93,9 +102,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveDiameter", "start": 0, "type": "Identifier" @@ -105,10 +116,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -122,11 +135,13 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -139,6 +154,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadThickness", "start": 0, "type": "Identifier" @@ -146,6 +162,7 @@ description: Result of parsing engine-valve.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -155,11 +172,13 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -172,6 +191,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -179,6 +199,7 @@ description: Result of parsing engine-valve.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -188,11 +209,13 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -205,6 +228,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemHeadLength", "start": 0, "type": "Identifier" @@ -212,6 +236,7 @@ description: Result of parsing engine-valve.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -221,11 +246,13 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -238,6 +265,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLength", "start": 0, "type": "Identifier" @@ -252,9 +280,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveLength", "start": 0, "type": "Identifier" @@ -264,14 +294,17 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadLength", "start": 0, "type": "Identifier" @@ -285,14 +318,17 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemHeadLength", "start": 0, "type": "Identifier" @@ -306,11 +342,13 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -323,6 +361,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveRadius", "start": 0, "type": "Identifier" @@ -334,9 +373,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveDiameter", "start": 0, "type": "Identifier" @@ -346,10 +387,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -363,11 +406,13 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -385,18 +430,22 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -407,6 +456,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -414,9 +464,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -427,11 +479,13 @@ description: Result of parsing engine-valve.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -444,6 +498,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadShape", "start": 0, "type": "Identifier" @@ -457,6 +512,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -468,6 +524,7 @@ description: Result of parsing engine-valve.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -479,6 +536,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -488,9 +546,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadLength", "start": 0, "type": "Identifier" @@ -502,6 +562,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -512,9 +573,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -525,6 +588,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -532,9 +596,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadPlane", "start": 0, "type": "Identifier" @@ -552,6 +618,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -562,6 +629,7 @@ description: Result of parsing engine-valve.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -571,6 +639,7 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -579,9 +648,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -591,10 +662,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -618,9 +691,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -631,6 +706,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -643,6 +719,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -656,6 +733,7 @@ description: Result of parsing engine-valve.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -665,6 +743,7 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -673,9 +752,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -685,10 +766,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -710,9 +793,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveRadius", "start": 0, "type": "Identifier" @@ -724,6 +809,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -734,9 +820,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -747,6 +835,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -759,6 +848,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -773,6 +863,7 @@ description: Result of parsing engine-valve.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -784,19 +875,23 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveRadius", "start": 0, "type": "Identifier" @@ -814,9 +909,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadThickness", "start": 0, "type": "Identifier" @@ -828,6 +925,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -838,6 +936,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -845,6 +944,7 @@ description: Result of parsing engine-valve.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -856,9 +956,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -869,6 +971,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -881,6 +984,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -893,9 +997,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveRadius", "start": 0, "type": "Identifier" @@ -907,6 +1013,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -915,6 +1022,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -926,6 +1034,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -936,9 +1045,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -949,6 +1060,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -961,6 +1073,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -971,6 +1084,7 @@ description: Result of parsing engine-valve.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -980,14 +1094,17 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveRadius", "start": 0, "type": "Identifier" @@ -1007,9 +1124,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1020,6 +1139,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1032,6 +1152,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -1046,6 +1167,7 @@ description: Result of parsing engine-valve.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.34", "start": 0, "type": "Literal", @@ -1057,19 +1179,23 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveRadius", "start": 0, "type": "Identifier" @@ -1089,6 +1215,7 @@ description: Result of parsing engine-valve.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08", "start": 0, "type": "Literal", @@ -1098,14 +1225,17 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveRadius", "start": 0, "type": "Identifier" @@ -1121,6 +1251,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1131,6 +1262,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1145,6 +1277,7 @@ description: Result of parsing engine-valve.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02", "start": 0, "type": "Literal", @@ -1156,19 +1289,23 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveRadius", "start": 0, "type": "Identifier" @@ -1188,6 +1325,7 @@ description: Result of parsing engine-valve.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11", "start": 0, "type": "Literal", @@ -1197,14 +1335,17 @@ description: Result of parsing engine-valve.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveRadius", "start": 0, "type": "Identifier" @@ -1220,6 +1361,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1230,9 +1372,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1243,6 +1387,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1255,6 +1400,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1263,13 +1409,16 @@ description: Result of parsing engine-valve.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1280,25 +1429,30 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1309,12 +1463,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1322,6 +1478,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1332,9 +1489,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1345,19 +1504,23 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1368,6 +1531,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1376,15 +1540,18 @@ description: Result of parsing engine-valve.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1397,6 +1564,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHead", "start": 0, "type": "Identifier" @@ -1408,6 +1576,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1415,6 +1584,7 @@ description: Result of parsing engine-valve.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1430,6 +1600,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1438,9 +1609,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -1456,9 +1629,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1469,6 +1644,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1476,9 +1652,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadShape", "start": 0, "type": "Identifier" @@ -1489,11 +1667,13 @@ description: Result of parsing engine-valve.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1506,6 +1686,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveStemSketch", "start": 0, "type": "Identifier" @@ -1513,13 +1694,16 @@ description: Result of parsing engine-valve.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1530,6 +1714,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1540,6 +1725,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1548,9 +1734,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadLength", "start": 0, "type": "Identifier" @@ -1566,9 +1754,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1579,6 +1769,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1586,9 +1777,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1607,6 +1800,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1617,6 +1811,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1629,6 +1824,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1640,6 +1836,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1650,6 +1847,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1661,9 +1859,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -1673,10 +1873,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1696,9 +1898,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1709,6 +1913,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1721,6 +1926,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1735,9 +1941,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLength", "start": 0, "type": "Identifier" @@ -1747,14 +1955,17 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveHeadLength", "start": 0, "type": "Identifier" @@ -1768,14 +1979,17 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemHeadLength", "start": 0, "type": "Identifier" @@ -1795,9 +2009,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1808,6 +2024,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1816,12 +2033,14 @@ description: Result of parsing engine-valve.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1838,11 +2057,13 @@ description: Result of parsing engine-valve.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1860,6 +2081,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stepLength", "start": 0, "type": "Identifier" @@ -1871,9 +2093,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemHeadLength", "start": 0, "type": "Identifier" @@ -1883,10 +2107,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -1900,11 +2126,13 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1917,6 +2145,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step1", "start": 0, "type": "Identifier" @@ -1930,6 +2159,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1938,9 +2168,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1956,9 +2188,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1969,6 +2203,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1976,9 +2211,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveStemSketch", "start": 0, "type": "Identifier" @@ -1996,6 +2233,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2006,6 +2244,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2018,6 +2257,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2029,6 +2269,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2039,6 +2280,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2053,9 +2295,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -2065,10 +2309,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2082,10 +2328,12 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -2105,9 +2353,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2118,12 +2368,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2136,6 +2388,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2147,9 +2400,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stepLength", "start": 0, "type": "Identifier" @@ -2159,10 +2414,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2182,9 +2439,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2195,12 +2454,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2209,15 +2470,18 @@ description: Result of parsing engine-valve.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2230,6 +2494,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step2", "start": 0, "type": "Identifier" @@ -2243,6 +2508,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2251,9 +2517,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -2269,9 +2537,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2282,6 +2552,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2289,9 +2560,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step1", "start": 0, "type": "Identifier" @@ -2309,6 +2582,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2319,6 +2593,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2331,6 +2606,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2342,6 +2618,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2352,6 +2629,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2366,9 +2644,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -2378,10 +2658,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2395,10 +2677,12 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -2418,9 +2702,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2431,12 +2717,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2449,6 +2737,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2457,9 +2746,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stepLength", "start": 0, "type": "Identifier" @@ -2475,9 +2766,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2488,12 +2781,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2502,15 +2797,18 @@ description: Result of parsing engine-valve.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2523,6 +2821,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step3", "start": 0, "type": "Identifier" @@ -2536,6 +2835,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2544,9 +2844,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -2562,9 +2864,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2575,6 +2879,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2582,9 +2887,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step2", "start": 0, "type": "Identifier" @@ -2602,6 +2909,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2612,6 +2920,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2624,6 +2933,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2635,6 +2945,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2645,6 +2956,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2659,9 +2971,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -2671,10 +2985,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2688,10 +3004,12 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -2711,9 +3029,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2724,12 +3044,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2742,6 +3064,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2750,9 +3073,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stepLength", "start": 0, "type": "Identifier" @@ -2768,9 +3093,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2781,12 +3108,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2795,15 +3124,18 @@ description: Result of parsing engine-valve.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2816,6 +3148,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step4", "start": 0, "type": "Identifier" @@ -2829,6 +3162,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2837,9 +3171,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -2855,9 +3191,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2868,6 +3206,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2875,9 +3214,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step3", "start": 0, "type": "Identifier" @@ -2895,6 +3236,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2905,6 +3247,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2917,6 +3260,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2928,6 +3272,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2938,6 +3283,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2952,9 +3298,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -2964,10 +3312,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2981,10 +3331,12 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -3004,9 +3356,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3017,12 +3371,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3035,6 +3391,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3043,9 +3400,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stepLength", "start": 0, "type": "Identifier" @@ -3061,9 +3420,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3074,12 +3435,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3088,15 +3451,18 @@ description: Result of parsing engine-valve.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3109,6 +3475,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step5", "start": 0, "type": "Identifier" @@ -3122,6 +3489,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3130,9 +3498,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -3148,9 +3518,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3161,6 +3533,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3168,9 +3541,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step4", "start": 0, "type": "Identifier" @@ -3188,6 +3563,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3198,6 +3574,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3210,6 +3587,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3221,6 +3599,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3231,6 +3610,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3245,9 +3625,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -3257,10 +3639,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3274,10 +3658,12 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -3297,9 +3683,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3310,12 +3698,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3328,6 +3718,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3336,9 +3727,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stepLength", "start": 0, "type": "Identifier" @@ -3354,9 +3747,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3367,12 +3762,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3381,15 +3778,18 @@ description: Result of parsing engine-valve.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3402,6 +3802,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step6", "start": 0, "type": "Identifier" @@ -3415,6 +3816,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3423,9 +3825,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -3441,9 +3845,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3454,6 +3860,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3461,9 +3868,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step5", "start": 0, "type": "Identifier" @@ -3481,6 +3890,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3491,6 +3901,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3503,6 +3914,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3514,6 +3926,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3524,6 +3937,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3538,9 +3952,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -3550,10 +3966,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3567,10 +3985,12 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -3590,9 +4010,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3603,12 +4025,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3621,6 +4045,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3629,9 +4054,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stepLength", "start": 0, "type": "Identifier" @@ -3647,9 +4074,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3660,12 +4089,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3674,15 +4105,18 @@ description: Result of parsing engine-valve.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3695,6 +4129,7 @@ description: Result of parsing engine-valve.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step7", "start": 0, "type": "Identifier" @@ -3708,6 +4143,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3716,9 +4152,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -3734,9 +4172,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3747,6 +4187,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3754,9 +4195,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "step6", "start": 0, "type": "Identifier" @@ -3774,6 +4217,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3784,6 +4228,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3796,6 +4241,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3807,6 +4253,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3817,6 +4264,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3831,9 +4279,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemDiameter", "start": 0, "type": "Identifier" @@ -3843,10 +4293,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3860,10 +4312,12 @@ description: Result of parsing engine-valve.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -3883,6 +4337,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3890,6 +4345,7 @@ description: Result of parsing engine-valve.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3901,9 +4357,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3914,12 +4372,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3932,6 +4392,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3943,9 +4404,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stepLength", "start": 0, "type": "Identifier" @@ -3955,10 +4418,12 @@ description: Result of parsing engine-valve.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3978,6 +4443,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -3985,6 +4451,7 @@ description: Result of parsing engine-valve.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3996,9 +4463,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4009,12 +4478,14 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4027,6 +4498,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4034,6 +4506,7 @@ description: Result of parsing engine-valve.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -4049,6 +4522,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -4063,6 +4537,7 @@ description: Result of parsing engine-valve.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -4074,9 +4549,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -4090,9 +4567,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capEnd001", "start": 0, "type": "Identifier" @@ -4104,6 +4583,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4114,9 +4594,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -4127,6 +4609,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4134,6 +4617,7 @@ description: Result of parsing engine-valve.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4144,9 +4628,11 @@ description: Result of parsing engine-valve.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -4157,6 +4643,7 @@ description: Result of parsing engine-valve.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4165,15 +4652,18 @@ description: Result of parsing engine-valve.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4185,9 +4675,11 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -4199,19 +4691,23 @@ description: Result of parsing engine-valve.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -4228,15 +4724,18 @@ description: Result of parsing engine-valve.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4252,12 +4751,14 @@ description: Result of parsing engine-valve.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4269,6 +4770,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4280,6 +4782,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4289,6 +4792,7 @@ description: Result of parsing engine-valve.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/engine-valve/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/engine-valve/program_memory.snap index 98d3aa86b..00b4aa643 100644 --- a/rust/kcl-lib/tests/kcl_samples/engine-valve/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/engine-valve/program_memory.snap @@ -2819,6 +2819,7 @@ description: Variables in memory after executing engine-valve.kcl "tag": { "commentStart": 2483, "end": 2489, + "moduleId": 0, "start": 2483, "type": "TagDeclarator", "value": "seg02" @@ -2832,6 +2833,7 @@ description: Variables in memory after executing engine-valve.kcl "tag": { "commentStart": 2548, "end": 2558, + "moduleId": 0, "start": 2548, "type": "TagDeclarator", "value": "capEnd001" @@ -2861,6 +2863,7 @@ description: Variables in memory after executing engine-valve.kcl "tag": { "commentStart": 2483, "end": 2489, + "moduleId": 0, "start": 2483, "type": "TagDeclarator", "value": "seg02" @@ -3722,6 +3725,7 @@ description: Variables in memory after executing engine-valve.kcl "tag": { "commentStart": 744, "end": 750, + "moduleId": 0, "start": 744, "type": "TagDeclarator", "value": "seg01" @@ -3816,6 +3820,7 @@ description: Variables in memory after executing engine-valve.kcl "tag": { "commentStart": 744, "end": 750, + "moduleId": 0, "start": 744, "type": "TagDeclarator", "value": "seg01" @@ -4117,6 +4122,7 @@ description: Variables in memory after executing engine-valve.kcl "tag": { "commentStart": 744, "end": 750, + "moduleId": 0, "start": 744, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/ast.snap b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/ast.snap index b8e2cf3a7..00d916a3e 100644 --- a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing exhaust-manifold.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.625", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing exhaust-manifold.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.080", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateHeight", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing exhaust-manifold.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing exhaust-manifold.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTube", "start": 0, "type": "Identifier" @@ -163,6 +180,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos001", "start": 0, "type": "Identifier" @@ -174,9 +192,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "n", "start": 0, "type": "Identifier" @@ -186,10 +206,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -203,11 +225,13 @@ description: Result of parsing exhaust-manifold.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Create an index for the function" ], @@ -223,6 +247,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepPlane", "start": 0, "type": "Identifier" @@ -230,6 +255,7 @@ description: Result of parsing exhaust-manifold.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -237,10 +263,12 @@ description: Result of parsing exhaust-manifold.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -250,9 +278,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos001", "start": 0, "type": "Identifier" @@ -265,6 +295,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -277,6 +308,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -288,6 +320,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -299,23 +332,28 @@ description: Result of parsing exhaust-manifold.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -326,6 +364,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -334,9 +373,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle001", "start": 0, "type": "Identifier" @@ -348,6 +389,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -355,13 +397,16 @@ description: Result of parsing exhaust-manifold.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -372,6 +417,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -380,9 +426,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle001", "start": 0, "type": "Identifier" @@ -394,6 +442,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -403,6 +452,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -414,6 +464,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -425,10 +476,12 @@ description: Result of parsing exhaust-manifold.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -437,6 +490,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -449,6 +503,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -461,6 +516,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -472,6 +528,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -483,10 +540,12 @@ description: Result of parsing exhaust-manifold.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -495,6 +554,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -507,6 +567,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -519,6 +580,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -530,6 +592,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -540,11 +603,13 @@ description: Result of parsing exhaust-manifold.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -562,6 +627,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepPath", "start": 0, "type": "Identifier" @@ -569,13 +635,16 @@ description: Result of parsing exhaust-manifold.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -586,6 +655,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -593,9 +663,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepPlane", "start": 0, "type": "Identifier" @@ -613,6 +685,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -623,6 +696,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -636,9 +710,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateHeight", "start": 0, "type": "Identifier" @@ -650,6 +726,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -660,9 +737,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -673,6 +752,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -685,6 +765,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -695,6 +776,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -708,9 +790,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length001", "start": 0, "type": "Identifier" @@ -722,6 +806,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -732,9 +817,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -745,6 +832,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -757,6 +845,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -765,6 +854,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -776,6 +866,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -787,6 +878,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -795,9 +887,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -813,6 +907,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -820,6 +915,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -831,9 +927,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -844,6 +942,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -856,18 +955,22 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -878,6 +981,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -885,9 +989,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc01", "start": 0, "type": "Identifier" @@ -904,6 +1010,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -912,9 +1019,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length002", "start": 0, "type": "Identifier" @@ -930,9 +1039,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -943,6 +1054,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -955,6 +1067,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -962,6 +1075,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "85", "start": 0, "type": "Literal", @@ -977,6 +1091,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -985,9 +1100,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -1003,6 +1120,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1010,6 +1128,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1021,9 +1140,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1034,6 +1155,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1046,18 +1168,22 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -1068,6 +1194,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1075,9 +1202,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc02", "start": 0, "type": "Identifier" @@ -1094,6 +1223,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1102,9 +1232,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length003", "start": 0, "type": "Identifier" @@ -1120,9 +1252,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1133,6 +1267,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1141,12 +1276,14 @@ description: Result of parsing exhaust-manifold.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1163,11 +1300,13 @@ description: Result of parsing exhaust-manifold.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1185,6 +1324,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepProfile", "start": 0, "type": "Identifier" @@ -1192,13 +1332,16 @@ description: Result of parsing exhaust-manifold.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1209,6 +1352,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1216,9 +1360,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1236,6 +1382,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1247,9 +1394,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos001", "start": 0, "type": "Identifier" @@ -1262,6 +1411,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1273,6 +1423,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1283,6 +1434,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1294,9 +1446,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -1306,10 +1460,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1329,9 +1485,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1342,6 +1500,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1354,6 +1513,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1365,6 +1525,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1376,9 +1537,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos001", "start": 0, "type": "Identifier" @@ -1391,6 +1554,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1402,6 +1566,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1412,6 +1577,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1426,9 +1592,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -1438,10 +1606,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1455,14 +1625,17 @@ description: Result of parsing exhaust-manifold.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1482,9 +1655,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1495,6 +1670,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1506,9 +1682,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1519,6 +1697,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1531,6 +1710,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -1539,9 +1719,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepPath", "start": 0, "type": "Identifier" @@ -1557,9 +1739,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -1570,6 +1754,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1578,15 +1763,18 @@ description: Result of parsing exhaust-manifold.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1595,6 +1783,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [], "start": 0, "type": "ObjectExpression", @@ -1602,6 +1791,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1609,12 +1799,14 @@ description: Result of parsing exhaust-manifold.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1629,12 +1821,14 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "n", "start": 0, "type": "Identifier" @@ -1645,6 +1839,7 @@ description: Result of parsing exhaust-manifold.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle001", "start": 0, "type": "Identifier" @@ -1655,6 +1850,7 @@ description: Result of parsing exhaust-manifold.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length001", "start": 0, "type": "Identifier" @@ -1665,6 +1861,7 @@ description: Result of parsing exhaust-manifold.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length002", "start": 0, "type": "Identifier" @@ -1675,6 +1872,7 @@ description: Result of parsing exhaust-manifold.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length003", "start": 0, "type": "Identifier" @@ -1685,11 +1883,13 @@ description: Result of parsing exhaust-manifold.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1709,6 +1909,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "n", "start": 0, "type": "Identifier" @@ -1716,6 +1917,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1731,6 +1933,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle001", "start": 0, "type": "Identifier" @@ -1738,6 +1941,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1753,6 +1957,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length001", "start": 0, "type": "Identifier" @@ -1760,6 +1965,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1775,6 +1981,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length002", "start": 0, "type": "Identifier" @@ -1782,6 +1989,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -1797,6 +2005,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length003", "start": 0, "type": "Identifier" @@ -1804,6 +2013,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1819,9 +2029,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTube", "start": 0, "type": "Identifier" @@ -1832,11 +2044,13 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -1856,6 +2070,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "n", "start": 0, "type": "Identifier" @@ -1863,6 +2078,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1878,6 +2094,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle001", "start": 0, "type": "Identifier" @@ -1885,6 +2102,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1900,6 +2118,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length001", "start": 0, "type": "Identifier" @@ -1907,6 +2126,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1922,6 +2142,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length002", "start": 0, "type": "Identifier" @@ -1929,6 +2150,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -1944,6 +2166,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length003", "start": 0, "type": "Identifier" @@ -1951,6 +2174,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1966,9 +2190,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTube", "start": 0, "type": "Identifier" @@ -1979,11 +2205,13 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1998,6 +2226,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "n", "start": 0, "type": "Identifier" @@ -2005,6 +2234,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2020,6 +2250,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle001", "start": 0, "type": "Identifier" @@ -2027,6 +2258,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.3", "start": 0, "type": "Literal", @@ -2042,6 +2274,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length001", "start": 0, "type": "Identifier" @@ -2049,6 +2282,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2064,6 +2298,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length002", "start": 0, "type": "Identifier" @@ -2071,6 +2306,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2086,6 +2322,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length003", "start": 0, "type": "Identifier" @@ -2093,6 +2330,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2108,9 +2346,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTube", "start": 0, "type": "Identifier" @@ -2121,11 +2361,13 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2140,6 +2382,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "n", "start": 0, "type": "Identifier" @@ -2147,6 +2390,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2162,6 +2406,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle001", "start": 0, "type": "Identifier" @@ -2169,6 +2414,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.2", "start": 0, "type": "Literal", @@ -2184,6 +2430,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length001", "start": 0, "type": "Identifier" @@ -2191,6 +2438,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2206,6 +2454,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length002", "start": 0, "type": "Identifier" @@ -2213,6 +2462,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2228,6 +2478,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length003", "start": 0, "type": "Identifier" @@ -2235,6 +2486,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2250,9 +2502,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTube", "start": 0, "type": "Identifier" @@ -2263,11 +2517,13 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2280,6 +2536,7 @@ description: Result of parsing exhaust-manifold.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeSketch", "start": 0, "type": "Identifier" @@ -2287,13 +2544,16 @@ description: Result of parsing exhaust-manifold.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2304,6 +2564,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2311,9 +2572,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2331,6 +2594,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2344,6 +2608,7 @@ description: Result of parsing exhaust-manifold.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2353,10 +2618,12 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.3", "start": 0, "type": "Literal", @@ -2374,6 +2641,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -2385,6 +2653,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2392,6 +2661,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2402,9 +2672,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2415,6 +2687,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2427,6 +2700,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2435,6 +2709,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.6", "start": 0, "type": "Literal", @@ -2446,6 +2721,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2457,6 +2733,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2464,6 +2741,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2475,9 +2753,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2488,6 +2768,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2500,6 +2781,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2507,6 +2789,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".3", "start": 0, "type": "Literal", @@ -2522,6 +2805,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2530,6 +2814,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -2541,6 +2826,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2552,9 +2838,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2565,6 +2853,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2577,6 +2866,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2584,6 +2874,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".9", "start": 0, "type": "Literal", @@ -2599,6 +2890,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2606,6 +2898,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -2621,9 +2914,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2634,6 +2929,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2646,6 +2942,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2653,6 +2950,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".3", "start": 0, "type": "Literal", @@ -2668,6 +2966,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2676,6 +2975,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -2687,6 +2987,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2698,9 +2999,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2711,6 +3014,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2723,6 +3027,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2731,6 +3036,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.4", "start": 0, "type": "Literal", @@ -2742,6 +3048,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2753,6 +3060,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2760,6 +3068,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2771,9 +3080,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2784,6 +3095,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2796,18 +3108,22 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2818,6 +3134,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2825,9 +3142,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2844,6 +3163,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2851,6 +3171,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2862,9 +3183,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2875,6 +3198,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2887,6 +3211,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2894,6 +3219,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.1", "start": 0, "type": "Literal", @@ -2909,6 +3235,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2916,6 +3243,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2927,9 +3255,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2940,6 +3270,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2952,6 +3283,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2959,6 +3291,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".3", "start": 0, "type": "Literal", @@ -2974,6 +3307,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2982,6 +3316,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -2993,6 +3328,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3004,9 +3340,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3017,6 +3355,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3029,6 +3368,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3036,6 +3376,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -3051,6 +3392,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3058,6 +3400,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -3073,9 +3416,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3086,6 +3431,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3098,6 +3444,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3105,6 +3452,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".3", "start": 0, "type": "Literal", @@ -3120,6 +3468,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3128,6 +3477,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -3139,6 +3489,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3150,9 +3501,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3163,6 +3516,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3175,18 +3529,22 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3197,6 +3555,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3204,9 +3563,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -3223,6 +3584,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3230,6 +3592,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3241,9 +3604,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3254,6 +3619,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3266,18 +3632,22 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3288,12 +3658,14 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3305,6 +3677,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3312,6 +3685,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3323,9 +3697,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3336,6 +3712,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3348,19 +3725,23 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3371,6 +3752,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3378,9 +3760,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -3393,6 +3777,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3404,6 +3789,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3411,6 +3797,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3422,9 +3809,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3435,6 +3824,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3447,6 +3837,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3454,6 +3845,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".3", "start": 0, "type": "Literal", @@ -3469,6 +3861,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3477,6 +3870,7 @@ description: Result of parsing exhaust-manifold.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -3488,6 +3882,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3499,9 +3894,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3512,6 +3909,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3524,6 +3922,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3531,6 +3930,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".9", "start": 0, "type": "Literal", @@ -3546,6 +3946,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3553,6 +3954,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -3568,9 +3970,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3581,6 +3985,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3593,6 +3998,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3601,13 +4007,16 @@ description: Result of parsing exhaust-manifold.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3618,25 +4027,30 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3647,12 +4061,14 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3660,6 +4076,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3670,9 +4087,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3683,19 +4102,23 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3706,6 +4129,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3718,6 +4142,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3729,6 +4154,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3739,6 +4165,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3751,6 +4178,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3762,6 +4190,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3772,6 +4201,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3786,9 +4216,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -3798,10 +4230,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3815,14 +4249,17 @@ description: Result of parsing exhaust-manifold.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3842,9 +4279,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3855,6 +4294,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3866,9 +4306,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -3879,6 +4321,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3891,6 +4334,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3902,6 +4346,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3912,6 +4357,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3924,6 +4370,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3935,6 +4382,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3945,6 +4393,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3959,9 +4408,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -3971,10 +4422,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3988,14 +4441,17 @@ description: Result of parsing exhaust-manifold.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4015,9 +4471,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4028,6 +4486,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4039,9 +4498,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4052,6 +4513,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4064,6 +4526,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -4075,6 +4538,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4085,6 +4549,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4097,6 +4562,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4108,6 +4574,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4118,6 +4585,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4132,9 +4600,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -4144,10 +4614,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4161,14 +4633,17 @@ description: Result of parsing exhaust-manifold.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4188,9 +4663,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4201,6 +4678,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4212,9 +4690,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4225,6 +4705,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4237,6 +4718,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -4248,6 +4730,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4258,6 +4741,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -4270,6 +4754,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4281,6 +4766,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4291,6 +4777,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4305,9 +4792,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -4317,10 +4806,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4334,14 +4825,17 @@ description: Result of parsing exhaust-manifold.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4361,9 +4855,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4374,6 +4870,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4385,9 +4882,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4398,6 +4897,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4410,6 +4910,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -4421,6 +4922,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4436,9 +4938,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -4450,15 +4954,18 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -4480,9 +4987,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -4494,15 +5003,18 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -4518,6 +5030,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4528,6 +5041,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4538,6 +5052,7 @@ description: Result of parsing exhaust-manifold.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -4547,10 +5062,12 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4570,9 +5087,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4583,6 +5102,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4594,9 +5114,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4607,6 +5129,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4619,6 +5142,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -4630,6 +5154,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4644,9 +5169,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -4656,10 +5183,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -4680,9 +5209,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -4692,10 +5223,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -4711,6 +5244,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4721,6 +5255,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4731,6 +5266,7 @@ description: Result of parsing exhaust-manifold.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -4740,10 +5276,12 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4763,9 +5301,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4776,6 +5316,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4787,9 +5328,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4800,6 +5343,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4812,6 +5356,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -4823,6 +5368,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4839,6 +5385,7 @@ description: Result of parsing exhaust-manifold.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4848,10 +5395,12 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4865,6 +5414,7 @@ description: Result of parsing exhaust-manifold.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4873,9 +5423,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -4885,10 +5437,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -4913,9 +5467,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -4925,10 +5481,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -4944,6 +5502,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4954,6 +5513,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4964,6 +5524,7 @@ description: Result of parsing exhaust-manifold.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -4973,10 +5534,12 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4996,9 +5559,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5009,6 +5574,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5020,9 +5586,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -5033,6 +5601,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5045,6 +5614,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -5056,6 +5626,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5072,6 +5643,7 @@ description: Result of parsing exhaust-manifold.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5081,10 +5653,12 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5098,6 +5672,7 @@ description: Result of parsing exhaust-manifold.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5106,9 +5681,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -5118,10 +5695,12 @@ description: Result of parsing exhaust-manifold.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -5147,9 +5726,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "primaryTubeDiameter", "start": 0, "type": "Identifier" @@ -5161,15 +5742,18 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -5185,6 +5769,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5195,6 +5780,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5205,6 +5791,7 @@ description: Result of parsing exhaust-manifold.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -5214,10 +5801,12 @@ description: Result of parsing exhaust-manifold.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5237,9 +5826,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5250,6 +5841,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5261,9 +5853,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -5274,6 +5868,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5286,6 +5881,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5294,9 +5890,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateHeight", "start": 0, "type": "Identifier" @@ -5312,9 +5910,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5325,6 +5925,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5337,6 +5938,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5344,6 +5946,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -5359,6 +5962,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -5367,13 +5971,16 @@ description: Result of parsing exhaust-manifold.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -5384,6 +5991,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5391,9 +5999,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -5405,13 +6015,16 @@ description: Result of parsing exhaust-manifold.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -5422,6 +6035,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5429,9 +6043,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg07", "start": 0, "type": "Identifier" @@ -5444,6 +6060,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5454,9 +6071,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -5467,6 +6086,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5479,6 +6099,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5486,6 +6107,7 @@ description: Result of parsing exhaust-manifold.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".25", "start": 0, "type": "Literal", @@ -5501,6 +6123,7 @@ description: Result of parsing exhaust-manifold.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -5509,13 +6132,16 @@ description: Result of parsing exhaust-manifold.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -5526,6 +6152,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5533,9 +6160,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -5547,13 +6176,16 @@ description: Result of parsing exhaust-manifold.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -5564,6 +6196,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5571,9 +6204,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg08", "start": 0, "type": "Identifier" @@ -5586,6 +6221,7 @@ description: Result of parsing exhaust-manifold.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5596,9 +6232,11 @@ description: Result of parsing exhaust-manifold.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -5609,6 +6247,7 @@ description: Result of parsing exhaust-manifold.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5617,12 +6256,14 @@ description: Result of parsing exhaust-manifold.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "18": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5636,6 +6277,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5649,6 +6291,7 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5665,11 +6308,13 @@ description: Result of parsing exhaust-manifold.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5686,9 +6331,11 @@ description: Result of parsing exhaust-manifold.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -5707,19 +6354,23 @@ description: Result of parsing exhaust-manifold.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -5736,15 +6387,18 @@ description: Result of parsing exhaust-manifold.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -5760,12 +6414,14 @@ description: Result of parsing exhaust-manifold.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/program_memory.snap index 30300f8a0..c0a895f18 100644 --- a/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/exhaust-manifold/program_memory.snap @@ -30,6 +30,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2009, "end": 2015, + "moduleId": 0, "start": 2009, "type": "TagDeclarator", "value": "seg01" @@ -64,6 +65,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2183, "end": 2189, + "moduleId": 0, "start": 2183, "type": "TagDeclarator", "value": "seg03" @@ -77,6 +79,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2232, "end": 2238, + "moduleId": 0, "start": 2232, "type": "TagDeclarator", "value": "seg04" @@ -90,6 +93,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2271, "end": 2277, + "moduleId": 0, "start": 2271, "type": "TagDeclarator", "value": "seg05" @@ -124,6 +128,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2455, "end": 2461, + "moduleId": 0, "start": 2455, "type": "TagDeclarator", "value": "seg07" @@ -137,6 +142,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2512, "end": 2518, + "moduleId": 0, "start": 2512, "type": "TagDeclarator", "value": "seg08" @@ -150,6 +156,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2562, "end": 2568, + "moduleId": 0, "start": 2562, "type": "TagDeclarator", "value": "seg09" @@ -194,6 +201,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2009, "end": 2015, + "moduleId": 0, "start": 2009, "type": "TagDeclarator", "value": "seg01" @@ -291,6 +299,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2183, "end": 2189, + "moduleId": 0, "start": 2183, "type": "TagDeclarator", "value": "seg03" @@ -316,6 +325,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2232, "end": 2238, + "moduleId": 0, "start": 2232, "type": "TagDeclarator", "value": "seg04" @@ -341,6 +351,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2271, "end": 2277, + "moduleId": 0, "start": 2271, "type": "TagDeclarator", "value": "seg05" @@ -438,6 +449,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2455, "end": 2461, + "moduleId": 0, "start": 2455, "type": "TagDeclarator", "value": "seg07" @@ -463,6 +475,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2512, "end": 2518, + "moduleId": 0, "start": 2512, "type": "TagDeclarator", "value": "seg08" @@ -488,6 +501,7 @@ description: Variables in memory after executing exhaust-manifold.kcl "tag": { "commentStart": 2562, "end": 2568, + "moduleId": 0, "start": 2562, "type": "TagDeclarator", "value": "seg09" diff --git a/rust/kcl-lib/tests/kcl_samples/flange/ast.snap b/rust/kcl-lib/tests/kcl_samples/flange/ast.snap index 112fee018..f5693e648 100644 --- a/rust/kcl-lib/tests/kcl_samples/flange/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/flange/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingHoleDia", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".625", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDia", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.625", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeDia", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalThickness", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.813", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTotalDiameter", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.313", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottomThickness", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottomTotalDiameter", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingHolePlacementDiameter", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.5", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseThickness", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".625", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +349,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTotalThickness", "start": 0, "type": "Identifier" @@ -324,9 +361,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalThickness", "start": 0, "type": "Identifier" @@ -336,6 +375,7 @@ description: Result of parsing flange.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -344,9 +384,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottomThickness", "start": 0, "type": "Identifier" @@ -356,14 +398,17 @@ description: Result of parsing flange.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseThickness", "start": 0, "type": "Identifier" @@ -381,11 +426,13 @@ description: Result of parsing flange.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -398,6 +445,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nHoles", "start": 0, "type": "Identifier" @@ -405,6 +453,7 @@ description: Result of parsing flange.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -414,11 +463,13 @@ description: Result of parsing flange.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -433,6 +484,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThan", "start": 0, "type": "Identifier" @@ -440,6 +492,7 @@ description: Result of parsing flange.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -455,6 +508,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -462,6 +516,7 @@ description: Result of parsing flange.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"nHoles must be greater than 1\"", "start": 0, "type": "Literal", @@ -474,9 +529,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -487,6 +544,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -494,9 +552,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nHoles", "start": 0, "type": "Identifier" @@ -507,6 +567,7 @@ description: Result of parsing flange.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -524,6 +585,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circles", "start": 0, "type": "Identifier" @@ -531,13 +593,16 @@ description: Result of parsing flange.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -548,6 +613,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -555,9 +621,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -575,6 +643,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -589,9 +658,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingHolePlacementDiameter", "start": 0, "type": "Identifier" @@ -601,10 +672,12 @@ description: Result of parsing flange.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -621,6 +694,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -632,6 +706,7 @@ description: Result of parsing flange.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -642,6 +717,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -653,9 +729,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingHoleDia", "start": 0, "type": "Identifier" @@ -665,10 +743,12 @@ description: Result of parsing flange.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -688,9 +768,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -701,6 +783,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -713,6 +796,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -720,6 +804,7 @@ description: Result of parsing flange.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -735,6 +820,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -745,6 +831,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -757,6 +844,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -768,6 +856,7 @@ description: Result of parsing flange.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -778,6 +867,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -786,9 +876,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nHoles", "start": 0, "type": "Identifier" @@ -804,6 +896,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -811,6 +904,7 @@ description: Result of parsing flange.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -823,9 +917,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -836,6 +932,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -844,12 +941,14 @@ description: Result of parsing flange.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -866,11 +965,13 @@ description: Result of parsing flange.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -888,6 +989,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBase", "start": 0, "type": "Identifier" @@ -895,13 +997,16 @@ description: Result of parsing flange.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -912,6 +1017,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -919,9 +1025,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -939,6 +1047,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -949,6 +1058,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -961,6 +1071,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -972,6 +1083,7 @@ description: Result of parsing flange.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -982,6 +1094,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -993,9 +1106,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDia", "start": 0, "type": "Identifier" @@ -1005,10 +1120,12 @@ description: Result of parsing flange.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1028,9 +1145,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1041,6 +1160,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1053,6 +1173,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1061,9 +1182,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circles", "start": 0, "type": "Identifier" @@ -1079,9 +1202,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1092,6 +1217,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1104,6 +1230,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1112,9 +1239,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseThickness", "start": 0, "type": "Identifier" @@ -1130,9 +1259,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1143,6 +1274,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1151,12 +1283,14 @@ description: Result of parsing flange.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1173,11 +1307,13 @@ description: Result of parsing flange.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1190,6 +1326,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topExtrusion", "start": 0, "type": "Identifier" @@ -1203,6 +1340,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1211,9 +1349,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1229,9 +1369,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1242,6 +1384,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1249,9 +1392,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBase", "start": 0, "type": "Identifier" @@ -1269,6 +1414,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1279,6 +1425,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1291,6 +1438,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1302,6 +1450,7 @@ description: Result of parsing flange.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1312,6 +1461,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1323,9 +1473,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTotalDiameter", "start": 0, "type": "Identifier" @@ -1335,10 +1487,12 @@ description: Result of parsing flange.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1358,9 +1512,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1371,6 +1527,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1383,6 +1540,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1391,9 +1549,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTotalThickness", "start": 0, "type": "Identifier" @@ -1409,9 +1569,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1422,6 +1584,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1430,12 +1593,14 @@ description: Result of parsing flange.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1452,11 +1617,13 @@ description: Result of parsing flange.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1469,6 +1636,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottomExtrusion", "start": 0, "type": "Identifier" @@ -1482,6 +1650,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1490,9 +1659,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -1508,9 +1679,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1521,6 +1694,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1528,9 +1702,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBase", "start": 0, "type": "Identifier" @@ -1548,6 +1724,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1558,6 +1735,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1570,6 +1748,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1581,6 +1760,7 @@ description: Result of parsing flange.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1591,6 +1771,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1602,9 +1783,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottomTotalDiameter", "start": 0, "type": "Identifier" @@ -1614,10 +1797,12 @@ description: Result of parsing flange.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1637,9 +1822,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1650,6 +1837,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1662,6 +1850,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1670,9 +1859,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottomThickness", "start": 0, "type": "Identifier" @@ -1688,9 +1879,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1701,6 +1894,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1709,12 +1903,14 @@ description: Result of parsing flange.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1731,11 +1927,13 @@ description: Result of parsing flange.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1748,6 +1946,7 @@ description: Result of parsing flange.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeHole", "start": 0, "type": "Identifier" @@ -1761,6 +1960,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1769,9 +1969,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1787,9 +1989,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1800,6 +2004,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1807,9 +2012,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topExtrusion", "start": 0, "type": "Identifier" @@ -1827,6 +2034,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1837,6 +2045,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1849,6 +2058,7 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1860,6 +2070,7 @@ description: Result of parsing flange.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1870,6 +2081,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1881,9 +2093,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeDia", "start": 0, "type": "Identifier" @@ -1893,10 +2107,12 @@ description: Result of parsing flange.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1916,9 +2132,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1929,6 +2147,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1941,6 +2160,7 @@ description: Result of parsing flange.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1956,9 +2176,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTotalThickness", "start": 0, "type": "Identifier" @@ -1968,14 +2190,17 @@ description: Result of parsing flange.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseThickness", "start": 0, "type": "Identifier" @@ -1989,14 +2214,17 @@ description: Result of parsing flange.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottomThickness", "start": 0, "type": "Identifier" @@ -2012,6 +2240,7 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2023,9 +2252,11 @@ description: Result of parsing flange.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2036,12 +2267,14 @@ description: Result of parsing flange.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2050,15 +2283,18 @@ description: Result of parsing flange.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2070,9 +2306,11 @@ description: Result of parsing flange.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2091,19 +2329,23 @@ description: Result of parsing flange.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -2120,15 +2362,18 @@ description: Result of parsing flange.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2144,12 +2389,14 @@ description: Result of parsing flange.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/ast.snap b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/ast.snap index 0b25cf882..03d1a75d9 100644 --- a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.0", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "144.0", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80.0", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45.0", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabWidth", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabThk", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +349,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketPlane", "start": 0, "type": "Identifier" @@ -320,6 +357,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -327,15 +365,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -343,15 +384,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -368,10 +412,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -384,9 +430,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -396,10 +444,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -413,14 +463,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -441,15 +494,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -472,15 +528,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -488,15 +547,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -513,15 +575,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -538,15 +603,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -569,15 +637,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -585,15 +656,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -610,15 +684,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -635,15 +712,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -666,15 +746,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -682,15 +765,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -707,16 +793,19 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -728,6 +817,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -740,15 +830,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -770,11 +863,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -792,6 +887,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketSketch", "start": 0, "type": "Identifier" @@ -807,6 +903,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "s", "start": 0, "type": "Identifier" @@ -814,13 +911,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -831,6 +931,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -838,9 +939,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketPlane", "start": 0, "type": "Identifier" @@ -858,6 +961,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -876,9 +980,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -890,15 +996,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -912,14 +1021,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -940,9 +1052,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -952,14 +1066,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -975,6 +1092,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -985,9 +1103,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -998,6 +1118,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1010,6 +1131,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1028,9 +1150,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -1042,15 +1166,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1064,14 +1191,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1090,9 +1220,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1104,6 +1236,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1111,6 +1244,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1121,6 +1255,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1128,6 +1263,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1139,9 +1275,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1152,6 +1290,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1164,6 +1303,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1181,9 +1321,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -1193,10 +1335,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1210,14 +1354,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1236,9 +1383,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1250,6 +1399,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1257,6 +1407,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1267,6 +1418,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1274,6 +1426,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1285,9 +1438,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1298,6 +1453,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1310,6 +1466,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1327,9 +1484,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -1339,10 +1498,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1356,14 +1517,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1384,9 +1548,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -1396,14 +1562,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1419,6 +1588,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1429,6 +1599,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1436,6 +1607,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1447,9 +1619,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1460,6 +1634,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1472,6 +1647,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1486,9 +1662,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -1498,10 +1676,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1522,9 +1702,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -1534,14 +1716,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1557,6 +1742,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1567,6 +1753,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1574,6 +1761,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1585,9 +1773,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1598,6 +1788,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1610,6 +1801,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1624,9 +1816,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -1636,10 +1830,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1656,6 +1852,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1667,6 +1864,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1677,6 +1875,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1684,6 +1883,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1695,9 +1895,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1708,6 +1910,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1720,6 +1923,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1735,9 +1939,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -1749,15 +1955,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1774,6 +1983,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1785,6 +1995,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1795,6 +2006,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1802,6 +2014,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1813,9 +2026,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1826,6 +2041,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1838,6 +2054,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1853,9 +2070,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -1867,15 +2086,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1896,9 +2118,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -1908,14 +2132,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1931,6 +2158,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1941,6 +2169,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1948,6 +2177,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1959,9 +2189,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1972,6 +2204,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1984,6 +2217,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1991,6 +2225,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2002,9 +2237,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2015,6 +2252,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2023,15 +2261,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2041,9 +2282,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "s", "start": 0, "type": "Identifier" @@ -2055,6 +2298,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2062,16 +2306,19 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -2082,6 +2329,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -2092,6 +2340,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -2102,11 +2351,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -2124,6 +2375,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bs", "start": 0, "type": "Identifier" @@ -2135,6 +2387,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "w", "start": 0, "type": "Identifier" @@ -2143,9 +2396,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2161,6 +2416,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "d", "start": 0, "type": "Identifier" @@ -2169,9 +2425,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -2187,6 +2445,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -2195,9 +2454,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -2213,9 +2474,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketSketch", "start": 0, "type": "Identifier" @@ -2226,16 +2489,19 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2253,6 +2519,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketBody", "start": 0, "type": "Identifier" @@ -2263,9 +2530,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bs", "start": 0, "type": "Identifier" @@ -2282,6 +2551,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2293,9 +2563,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2305,6 +2577,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2312,6 +2585,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2321,14 +2595,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -2352,9 +2629,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2365,6 +2644,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2377,6 +2657,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2385,9 +2666,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2403,6 +2686,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2411,13 +2695,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -2428,6 +2715,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2435,17 +2723,21 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bs", "start": 0, "type": "Identifier" @@ -2458,6 +2750,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -2470,6 +2763,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge7", "start": 0, "type": "Identifier", @@ -2481,13 +2775,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -2498,6 +2795,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2505,17 +2803,21 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bs", "start": 0, "type": "Identifier" @@ -2528,6 +2830,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -2540,6 +2843,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge2", "start": 0, "type": "Identifier", @@ -2551,13 +2855,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -2568,6 +2875,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2575,17 +2883,21 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bs", "start": 0, "type": "Identifier" @@ -2598,6 +2910,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -2610,6 +2923,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge3", "start": 0, "type": "Identifier", @@ -2621,13 +2935,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -2638,6 +2955,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2645,17 +2963,21 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bs", "start": 0, "type": "Identifier" @@ -2668,6 +2990,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -2680,6 +3003,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge6", "start": 0, "type": "Identifier", @@ -2692,6 +3016,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2702,9 +3027,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -2715,6 +3042,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2723,12 +3051,14 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2745,11 +3075,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2762,6 +3094,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabPlane", "start": 0, "type": "Identifier" @@ -2769,6 +3102,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2776,15 +3110,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2792,15 +3129,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2817,15 +3157,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2842,10 +3185,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2855,9 +3200,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -2867,14 +3214,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -2901,15 +3251,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2917,15 +3270,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2942,15 +3298,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2967,15 +3326,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2998,15 +3360,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -3014,15 +3379,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3039,15 +3407,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3064,15 +3435,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3095,15 +3469,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -3111,15 +3488,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3136,15 +3516,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3161,15 +3544,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3191,11 +3577,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3208,6 +3596,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabsR", "start": 0, "type": "Identifier" @@ -3215,13 +3604,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3232,6 +3624,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3239,9 +3632,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabPlane", "start": 0, "type": "Identifier" @@ -3259,6 +3654,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3276,9 +3672,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3288,10 +3686,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3305,14 +3705,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -3336,9 +3739,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3348,10 +3753,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3365,14 +3772,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -3388,6 +3798,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3398,9 +3809,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3411,6 +3824,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3423,6 +3837,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3434,9 +3849,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabWidth", "start": 0, "type": "Identifier" @@ -3454,9 +3871,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -3468,15 +3887,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3492,6 +3914,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3502,6 +3925,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3509,6 +3933,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3520,9 +3945,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3533,6 +3960,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3545,6 +3973,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3555,6 +3984,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3575,9 +4005,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -3589,15 +4021,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3611,10 +4046,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3630,6 +4067,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3640,6 +4078,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3647,6 +4086,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3658,9 +4098,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3671,6 +4113,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3683,6 +4126,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3695,9 +4139,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabWidth", "start": 0, "type": "Identifier" @@ -3709,6 +4155,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3722,9 +4169,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -3736,15 +4185,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3760,6 +4212,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3770,6 +4223,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3777,6 +4231,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3788,9 +4243,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3801,6 +4258,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3813,6 +4271,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3820,6 +4279,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3831,9 +4291,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3844,6 +4306,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3856,6 +4319,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3867,6 +4331,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3887,9 +4352,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3899,10 +4366,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3916,14 +4385,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -3937,6 +4409,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3945,9 +4418,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabWidth", "start": 0, "type": "Identifier" @@ -3957,10 +4432,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3991,9 +4468,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4003,10 +4482,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4020,14 +4501,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -4041,6 +4525,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4049,9 +4534,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -4061,6 +4548,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -4068,6 +4556,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4077,10 +4566,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4104,6 +4595,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4114,6 +4606,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4125,9 +4618,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -4137,10 +4632,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4160,9 +4657,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4173,6 +4672,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4184,9 +4684,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4197,6 +4699,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4209,6 +4712,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4218,9 +4722,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabThk", "start": 0, "type": "Identifier" @@ -4232,6 +4738,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4243,9 +4750,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4256,6 +4765,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4268,6 +4778,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4279,9 +4790,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -4291,10 +4804,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4314,6 +4829,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -4322,13 +4838,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -4339,6 +4858,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4346,9 +4866,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge11", "start": 0, "type": "Identifier" @@ -4360,13 +4882,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -4377,6 +4902,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4384,9 +4910,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge12", "start": 0, "type": "Identifier" @@ -4399,6 +4927,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4409,9 +4938,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -4422,6 +4953,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4434,6 +4966,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4444,6 +4977,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4457,6 +4991,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4468,6 +5003,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4476,6 +5012,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4487,6 +5024,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4497,6 +5035,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4504,6 +5043,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4519,6 +5059,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4533,9 +5074,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4545,6 +5088,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4552,6 +5096,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4561,14 +5106,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -4586,6 +5134,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4597,9 +5146,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -4609,10 +5160,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4626,10 +5179,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4653,9 +5208,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -4666,6 +5223,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4674,12 +5232,14 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4696,11 +5256,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4718,6 +5280,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabsL", "start": 0, "type": "Identifier" @@ -4725,13 +5288,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4742,6 +5308,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4749,9 +5316,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabPlane", "start": 0, "type": "Identifier" @@ -4769,6 +5338,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4787,9 +5357,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -4801,15 +5373,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4823,14 +5398,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -4854,9 +5432,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4866,10 +5446,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4883,14 +5465,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -4906,6 +5491,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4916,9 +5502,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4929,6 +5517,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4941,6 +5530,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4953,9 +5543,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabWidth", "start": 0, "type": "Identifier" @@ -4967,6 +5559,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4980,9 +5573,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -4994,15 +5589,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5018,6 +5616,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5028,6 +5627,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5035,6 +5635,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5046,9 +5647,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5059,6 +5662,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5071,6 +5675,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5081,6 +5686,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5101,9 +5707,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -5115,15 +5723,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5137,10 +5748,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5156,6 +5769,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5166,6 +5780,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5173,6 +5788,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5184,9 +5800,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5197,6 +5815,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5209,6 +5828,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5220,9 +5840,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabWidth", "start": 0, "type": "Identifier" @@ -5240,9 +5862,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -5254,15 +5878,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5278,6 +5905,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5288,6 +5916,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5295,6 +5924,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5306,9 +5936,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5319,6 +5951,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5331,6 +5964,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5338,6 +5972,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5349,9 +5984,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5362,6 +5999,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5374,6 +6012,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -5385,6 +6024,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5406,9 +6046,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -5420,15 +6062,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5442,14 +6087,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -5463,6 +6111,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5471,9 +6120,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabWidth", "start": 0, "type": "Identifier" @@ -5483,10 +6134,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5517,9 +6170,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5529,10 +6184,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5546,14 +6203,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -5567,6 +6227,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5575,9 +6236,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -5587,6 +6250,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -5594,6 +6258,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5603,10 +6268,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5630,6 +6297,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5640,6 +6308,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5651,9 +6320,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -5663,10 +6334,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5686,9 +6359,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5699,6 +6374,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5710,9 +6386,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -5723,6 +6401,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5735,6 +6414,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5744,9 +6424,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabThk", "start": 0, "type": "Identifier" @@ -5758,6 +6440,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5769,9 +6452,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5782,6 +6467,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5794,6 +6480,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5805,9 +6492,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -5817,10 +6506,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5840,6 +6531,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -5848,13 +6540,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -5865,6 +6560,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5872,9 +6568,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge21", "start": 0, "type": "Identifier" @@ -5886,13 +6584,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -5903,6 +6604,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5910,9 +6612,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge22", "start": 0, "type": "Identifier" @@ -5925,6 +6629,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5935,9 +6640,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -5948,6 +6655,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5960,6 +6668,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5970,6 +6679,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5983,6 +6693,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5994,6 +6705,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6002,6 +6714,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6013,6 +6726,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6023,6 +6737,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6030,6 +6745,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6045,6 +6761,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -6059,9 +6776,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6071,6 +6790,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -6078,6 +6798,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6087,14 +6808,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -6112,6 +6836,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6123,9 +6848,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tabLength", "start": 0, "type": "Identifier" @@ -6135,10 +6862,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6152,10 +6881,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6179,9 +6910,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -6192,6 +6925,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6200,12 +6934,14 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6222,11 +6958,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6239,6 +6977,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retPlane", "start": 0, "type": "Identifier" @@ -6246,6 +6985,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6253,15 +6993,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6269,10 +7012,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -6286,9 +7031,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6300,15 +7047,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6322,10 +7072,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -6346,15 +7098,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6371,15 +7126,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6402,15 +7160,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6418,15 +7179,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6443,15 +7207,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6468,15 +7235,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6499,15 +7269,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6515,15 +7288,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6540,15 +7316,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6565,15 +7344,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6596,15 +7378,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6612,15 +7397,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6637,15 +7425,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6662,15 +7453,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6692,11 +7486,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6709,6 +7505,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retFront", "start": 0, "type": "Identifier" @@ -6716,13 +7513,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6733,6 +7533,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6740,9 +7541,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retPlane", "start": 0, "type": "Identifier" @@ -6760,6 +7563,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6778,9 +7582,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6792,15 +7598,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6814,14 +7623,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -6838,6 +7650,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6849,6 +7662,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6859,9 +7673,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6872,6 +7688,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6884,6 +7701,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6894,6 +7712,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6907,9 +7726,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -6921,6 +7742,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6931,9 +7753,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6944,6 +7768,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6956,6 +7781,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6967,9 +7793,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -6984,9 +7812,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -6998,6 +7828,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7005,6 +7836,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7015,9 +7847,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7028,19 +7862,23 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -7051,6 +7889,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7063,6 +7902,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7074,9 +7914,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -7086,10 +7928,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -7109,9 +7953,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7122,6 +7968,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7130,12 +7977,14 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7152,11 +8001,13 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -7174,6 +8025,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retBack", "start": 0, "type": "Identifier" @@ -7181,13 +8033,16 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -7198,6 +8053,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7205,9 +8061,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "retPlane", "start": 0, "type": "Identifier" @@ -7225,6 +8083,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -7242,9 +8101,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7254,10 +8115,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7271,14 +8134,17 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -7295,6 +8161,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7306,6 +8173,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7316,9 +8184,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -7329,6 +8199,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7341,6 +8212,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7351,6 +8223,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7364,9 +8237,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -7378,6 +8253,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7388,9 +8264,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7401,6 +8279,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7413,6 +8292,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7425,9 +8305,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -7439,6 +8321,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7447,6 +8330,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7458,6 +8342,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7468,9 +8353,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7481,6 +8368,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7493,6 +8381,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7503,6 +8392,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7517,9 +8407,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -7531,6 +8423,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7538,6 +8431,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7548,9 +8442,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7561,19 +8457,23 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -7584,6 +8484,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7596,6 +8497,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7607,9 +8509,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -7619,10 +8523,12 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -7642,9 +8548,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7655,6 +8563,7 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7663,15 +8572,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7683,9 +8595,11 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -7704,19 +8618,23 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -7733,15 +8651,18 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7757,12 +8678,14 @@ description: Result of parsing focusrite-scarlett-mounting-bracket.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/program_memory.snap index 33362abff..29822dc38 100644 --- a/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/focusrite-scarlett-mounting-bracket/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 920, "end": 926, + "moduleId": 0, "start": 920, "type": "TagDeclarator", "value": "edge1" @@ -30,6 +31,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 977, "end": 983, + "moduleId": 0, "start": 977, "type": "TagDeclarator", "value": "edge2" @@ -43,6 +45,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1037, "end": 1043, + "moduleId": 0, "start": 1037, "type": "TagDeclarator", "value": "edge3" @@ -56,6 +59,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1093, "end": 1099, + "moduleId": 0, "start": 1093, "type": "TagDeclarator", "value": "edge4" @@ -69,6 +73,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1145, "end": 1151, + "moduleId": 0, "start": 1145, "type": "TagDeclarator", "value": "edge5" @@ -82,6 +87,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1198, "end": 1204, + "moduleId": 0, "start": 1198, "type": "TagDeclarator", "value": "edge6" @@ -95,6 +101,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1255, "end": 1261, + "moduleId": 0, "start": 1255, "type": "TagDeclarator", "value": "edge7" @@ -108,6 +115,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1282, "end": 1288, + "moduleId": 0, "start": 1282, "type": "TagDeclarator", "value": "edge8" @@ -131,6 +139,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 920, "end": 926, + "moduleId": 0, "start": 920, "type": "TagDeclarator", "value": "edge1" @@ -156,6 +165,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 977, "end": 983, + "moduleId": 0, "start": 977, "type": "TagDeclarator", "value": "edge2" @@ -181,6 +191,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1037, "end": 1043, + "moduleId": 0, "start": 1037, "type": "TagDeclarator", "value": "edge3" @@ -206,6 +217,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1093, "end": 1099, + "moduleId": 0, "start": 1093, "type": "TagDeclarator", "value": "edge4" @@ -231,6 +243,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1145, "end": 1151, + "moduleId": 0, "start": 1145, "type": "TagDeclarator", "value": "edge5" @@ -256,6 +269,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1198, "end": 1204, + "moduleId": 0, "start": 1198, "type": "TagDeclarator", "value": "edge6" @@ -281,6 +295,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1255, "end": 1261, + "moduleId": 0, "start": 1255, "type": "TagDeclarator", "value": "edge7" @@ -306,6 +321,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1282, "end": 1288, + "moduleId": 0, "start": 1282, "type": "TagDeclarator", "value": "edge8" @@ -694,6 +710,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 920, "end": 926, + "moduleId": 0, "start": 920, "type": "TagDeclarator", "value": "edge1" @@ -719,6 +736,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 977, "end": 983, + "moduleId": 0, "start": 977, "type": "TagDeclarator", "value": "edge2" @@ -744,6 +762,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1037, "end": 1043, + "moduleId": 0, "start": 1037, "type": "TagDeclarator", "value": "edge3" @@ -769,6 +788,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1093, "end": 1099, + "moduleId": 0, "start": 1093, "type": "TagDeclarator", "value": "edge4" @@ -794,6 +814,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1145, "end": 1151, + "moduleId": 0, "start": 1145, "type": "TagDeclarator", "value": "edge5" @@ -819,6 +840,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1198, "end": 1204, + "moduleId": 0, "start": 1198, "type": "TagDeclarator", "value": "edge6" @@ -844,6 +866,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1255, "end": 1261, + "moduleId": 0, "start": 1255, "type": "TagDeclarator", "value": "edge7" @@ -869,6 +892,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 1282, "end": 1288, + "moduleId": 0, "start": 1282, "type": "TagDeclarator", "value": "edge8" @@ -1856,6 +1880,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2923, "end": 2930, + "moduleId": 0, "start": 2923, "type": "TagDeclarator", "value": "edge21" @@ -1869,6 +1894,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2979, "end": 2986, + "moduleId": 0, "start": 2979, "type": "TagDeclarator", "value": "edge22" @@ -1882,6 +1908,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 3038, "end": 3045, + "moduleId": 0, "start": 3038, "type": "TagDeclarator", "value": "edge23" @@ -1895,6 +1922,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 3064, "end": 3071, + "moduleId": 0, "start": 3064, "type": "TagDeclarator", "value": "edge24" @@ -1918,6 +1946,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2923, "end": 2930, + "moduleId": 0, "start": 2923, "type": "TagDeclarator", "value": "edge21" @@ -1943,6 +1972,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2979, "end": 2986, + "moduleId": 0, "start": 2979, "type": "TagDeclarator", "value": "edge22" @@ -1968,6 +1998,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 3038, "end": 3045, + "moduleId": 0, "start": 3038, "type": "TagDeclarator", "value": "edge23" @@ -1993,6 +2024,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 3064, "end": 3071, + "moduleId": 0, "start": 3064, "type": "TagDeclarator", "value": "edge24" @@ -2140,6 +2172,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2923, "end": 2930, + "moduleId": 0, "start": 2923, "type": "TagDeclarator", "value": "edge21" @@ -2153,6 +2186,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2979, "end": 2986, + "moduleId": 0, "start": 2979, "type": "TagDeclarator", "value": "edge22" @@ -2166,6 +2200,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 3038, "end": 3045, + "moduleId": 0, "start": 3038, "type": "TagDeclarator", "value": "edge23" @@ -2179,6 +2214,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 3064, "end": 3071, + "moduleId": 0, "start": 3064, "type": "TagDeclarator", "value": "edge24" @@ -2202,6 +2238,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2923, "end": 2930, + "moduleId": 0, "start": 2923, "type": "TagDeclarator", "value": "edge21" @@ -2227,6 +2264,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2979, "end": 2986, + "moduleId": 0, "start": 2979, "type": "TagDeclarator", "value": "edge22" @@ -2252,6 +2290,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 3038, "end": 3045, + "moduleId": 0, "start": 3038, "type": "TagDeclarator", "value": "edge23" @@ -2277,6 +2316,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 3064, "end": 3071, + "moduleId": 0, "start": 3064, "type": "TagDeclarator", "value": "edge24" @@ -2429,6 +2469,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2097, "end": 2104, + "moduleId": 0, "start": 2097, "type": "TagDeclarator", "value": "edge11" @@ -2442,6 +2483,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2153, "end": 2160, + "moduleId": 0, "start": 2153, "type": "TagDeclarator", "value": "edge12" @@ -2455,6 +2497,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2213, "end": 2220, + "moduleId": 0, "start": 2213, "type": "TagDeclarator", "value": "edge13" @@ -2468,6 +2511,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2239, "end": 2246, + "moduleId": 0, "start": 2239, "type": "TagDeclarator", "value": "edge14" @@ -2491,6 +2535,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2097, "end": 2104, + "moduleId": 0, "start": 2097, "type": "TagDeclarator", "value": "edge11" @@ -2516,6 +2561,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2153, "end": 2160, + "moduleId": 0, "start": 2153, "type": "TagDeclarator", "value": "edge12" @@ -2541,6 +2587,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2213, "end": 2220, + "moduleId": 0, "start": 2213, "type": "TagDeclarator", "value": "edge13" @@ -2566,6 +2613,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2239, "end": 2246, + "moduleId": 0, "start": 2239, "type": "TagDeclarator", "value": "edge14" @@ -2713,6 +2761,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2097, "end": 2104, + "moduleId": 0, "start": 2097, "type": "TagDeclarator", "value": "edge11" @@ -2726,6 +2775,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2153, "end": 2160, + "moduleId": 0, "start": 2153, "type": "TagDeclarator", "value": "edge12" @@ -2739,6 +2789,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2213, "end": 2220, + "moduleId": 0, "start": 2213, "type": "TagDeclarator", "value": "edge13" @@ -2752,6 +2803,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2239, "end": 2246, + "moduleId": 0, "start": 2239, "type": "TagDeclarator", "value": "edge14" @@ -2775,6 +2827,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2097, "end": 2104, + "moduleId": 0, "start": 2097, "type": "TagDeclarator", "value": "edge11" @@ -2800,6 +2853,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2153, "end": 2160, + "moduleId": 0, "start": 2153, "type": "TagDeclarator", "value": "edge12" @@ -2825,6 +2879,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2213, "end": 2220, + "moduleId": 0, "start": 2213, "type": "TagDeclarator", "value": "edge13" @@ -2850,6 +2905,7 @@ description: Variables in memory after executing focusrite-scarlett-mounting-bra "tag": { "commentStart": 2239, "end": 2246, + "moduleId": 0, "start": 2239, "type": "TagDeclarator", "value": "edge14" diff --git a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/ast.snap b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/ast.snap index 71f53b91c..4784e3da5 100644 --- a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperThickness", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.5", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperLength", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70.0", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.0", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripLength", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150.0", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperFilletRadius", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.0", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperSlotWidth", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.0", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripWidth", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.0", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripHeight", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.0", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripFilletRadius", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.0", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +349,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripSlotWidth", "start": 0, "type": "Identifier" @@ -320,6 +357,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.0", "start": 0, "type": "Literal", @@ -329,11 +367,13 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -346,6 +386,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slot", "start": 0, "type": "Identifier" @@ -361,6 +402,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -374,13 +416,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -393,6 +438,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -406,18 +452,22 @@ description: Result of parsing food-service-spatula.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "==", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -430,6 +480,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -464,13 +515,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -483,6 +537,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -496,18 +551,22 @@ description: Result of parsing food-service-spatula.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "<", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -520,6 +579,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -546,13 +606,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "toDegrees", "start": 0, "type": "Identifier" @@ -561,6 +624,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "units", "start": 0, "type": "Identifier" @@ -571,17 +635,21 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -592,6 +660,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -605,13 +674,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -624,6 +696,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -637,18 +710,22 @@ description: Result of parsing food-service-spatula.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -661,6 +738,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -678,6 +756,7 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -686,13 +765,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -705,6 +787,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -718,18 +801,22 @@ description: Result of parsing food-service-spatula.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -742,6 +829,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -765,6 +853,7 @@ description: Result of parsing food-service-spatula.kcl } } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -772,8 +861,10 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -784,13 +875,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "toDegrees", "start": 0, "type": "Identifier" @@ -799,6 +893,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "units", "start": 0, "type": "Identifier" @@ -809,17 +904,21 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -830,6 +929,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -843,13 +943,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -862,6 +965,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -875,18 +979,22 @@ description: Result of parsing food-service-spatula.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -899,6 +1007,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -916,6 +1025,7 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -924,13 +1034,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -943,6 +1056,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -956,18 +1070,22 @@ description: Result of parsing food-service-spatula.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -980,6 +1098,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1003,10 +1122,12 @@ description: Result of parsing food-service-spatula.kcl } } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1020,6 +1141,7 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1027,11 +1149,13 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1039,8 +1163,10 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -1056,13 +1182,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1075,6 +1204,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1088,18 +1218,22 @@ description: Result of parsing food-service-spatula.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": ">", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -1112,6 +1246,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1140,6 +1275,7 @@ description: Result of parsing food-service-spatula.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -1149,6 +1285,7 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1156,8 +1293,10 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -1167,6 +1306,7 @@ description: Result of parsing food-service-spatula.kcl "expression": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1176,6 +1316,7 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1183,11 +1324,13 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1195,16 +1338,19 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1217,18 +1363,22 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dist", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -1239,6 +1389,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1252,6 +1403,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exp", "start": 0, "type": "Identifier" @@ -1259,6 +1411,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1274,9 +1427,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pow", "start": 0, "type": "Identifier" @@ -1287,6 +1442,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1297,13 +1453,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1316,6 +1475,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1329,18 +1489,22 @@ description: Result of parsing food-service-spatula.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -1353,6 +1517,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1371,6 +1536,7 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "operator": "+", "right": { "arguments": [ @@ -1379,6 +1545,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exp", "start": 0, "type": "Identifier" @@ -1386,6 +1553,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1401,9 +1569,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pow", "start": 0, "type": "Identifier" @@ -1414,6 +1584,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1424,13 +1595,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1443,6 +1617,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1456,18 +1631,22 @@ description: Result of parsing food-service-spatula.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -1480,6 +1659,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1503,11 +1683,13 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1520,6 +1702,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xstart", "start": 0, "type": "Identifier" @@ -1537,9 +1720,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1549,10 +1734,12 @@ description: Result of parsing food-service-spatula.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1566,15 +1753,19 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -1585,6 +1776,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1595,9 +1787,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1607,10 +1801,12 @@ description: Result of parsing food-service-spatula.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1629,18 +1825,22 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -1653,6 +1853,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1670,11 +1871,13 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1687,6 +1890,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ystart", "start": 0, "type": "Identifier" @@ -1704,9 +1908,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1716,10 +1922,12 @@ description: Result of parsing food-service-spatula.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1733,15 +1941,19 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -1752,6 +1964,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1762,9 +1975,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1774,10 +1989,12 @@ description: Result of parsing food-service-spatula.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1796,18 +2013,22 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -1820,6 +2041,7 @@ description: Result of parsing food-service-spatula.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1837,11 +2059,13 @@ description: Result of parsing food-service-spatula.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1854,6 +2078,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotSketch", "start": 0, "type": "Identifier" @@ -1867,6 +2092,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1878,9 +2104,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xstart", "start": 0, "type": "Identifier" @@ -1894,9 +2122,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ystart", "start": 0, "type": "Identifier" @@ -1908,6 +2138,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1918,9 +2149,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1931,6 +2164,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1938,9 +2172,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch1", "start": 0, "type": "Identifier" @@ -1958,6 +2194,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1966,9 +2203,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1984,6 +2223,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1992,9 +2232,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dist", "start": 0, "type": "Identifier" @@ -2010,9 +2252,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2023,6 +2267,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2035,6 +2280,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2046,9 +2292,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2058,10 +2306,12 @@ description: Result of parsing food-service-spatula.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2081,6 +2331,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2088,6 +2339,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2103,9 +2355,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2116,6 +2370,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2128,6 +2383,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2136,9 +2392,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2154,6 +2412,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2163,9 +2422,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "dist", "start": 0, "type": "Identifier" @@ -2177,6 +2438,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2188,9 +2450,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2201,6 +2465,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2213,6 +2478,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2221,13 +2487,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2238,25 +2507,30 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2267,12 +2541,14 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2280,6 +2556,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2290,9 +2567,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2303,19 +2582,23 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2326,6 +2609,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2334,15 +2618,18 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2352,9 +2639,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotSketch", "start": 0, "type": "Identifier" @@ -2366,6 +2655,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2373,16 +2663,19 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch1", "start": 0, "type": "Identifier" @@ -2393,6 +2686,7 @@ description: Result of parsing food-service-spatula.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -2403,6 +2697,7 @@ description: Result of parsing food-service-spatula.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2413,6 +2708,7 @@ description: Result of parsing food-service-spatula.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2423,11 +2719,13 @@ description: Result of parsing food-service-spatula.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -2445,18 +2743,22 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2467,6 +2769,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2474,9 +2777,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2487,11 +2792,13 @@ description: Result of parsing food-service-spatula.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2509,6 +2816,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperProfile", "start": 0, "type": "Identifier" @@ -2522,6 +2830,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2534,9 +2843,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperLength", "start": 0, "type": "Identifier" @@ -2548,6 +2859,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2557,6 +2869,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "32.0", "start": 0, "type": "Literal", @@ -2568,6 +2881,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2575,6 +2889,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2585,9 +2900,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2598,6 +2915,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2605,9 +2923,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperSketch", "start": 0, "type": "Identifier" @@ -2625,6 +2945,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2636,9 +2957,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperLength", "start": 0, "type": "Identifier" @@ -2651,6 +2974,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.0", "start": 0, "type": "Literal", @@ -2662,6 +2986,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2672,9 +2997,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2685,6 +3012,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2697,6 +3025,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2704,6 +3033,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60.0", "start": 0, "type": "Literal", @@ -2719,6 +3049,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2726,6 +3057,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2737,9 +3069,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2750,6 +3084,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2762,6 +3097,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2774,9 +3110,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperLength", "start": 0, "type": "Identifier" @@ -2788,6 +3126,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2796,6 +3135,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.0", "start": 0, "type": "Literal", @@ -2807,6 +3147,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2817,9 +3158,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2830,6 +3173,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2842,6 +3186,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -2849,6 +3194,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "163.087610", "start": 0, "type": "Literal", @@ -2864,6 +3210,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -2871,6 +3218,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "196.912390", "start": 0, "type": "Literal", @@ -2886,6 +3234,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2893,6 +3242,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "110.0", "start": 0, "type": "Literal", @@ -2908,9 +3258,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2921,19 +3273,23 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2944,6 +3300,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2952,12 +3309,14 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2974,11 +3333,13 @@ description: Result of parsing food-service-spatula.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2996,6 +3357,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotProfile000", "start": 0, "type": "Identifier" @@ -3007,6 +3369,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch1", "start": 0, "type": "Identifier" @@ -3015,9 +3378,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperSketch", "start": 0, "type": "Identifier" @@ -3033,6 +3398,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -3044,6 +3410,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -3055,6 +3422,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3063,6 +3431,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3074,6 +3443,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3084,6 +3454,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3095,6 +3466,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -3106,6 +3478,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3114,6 +3487,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3125,6 +3499,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3135,6 +3510,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3143,9 +3519,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperSlotWidth", "start": 0, "type": "Identifier" @@ -3161,9 +3539,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slot", "start": 0, "type": "Identifier" @@ -3174,16 +3554,19 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3196,6 +3579,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotProfile001", "start": 0, "type": "Identifier" @@ -3207,6 +3591,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch1", "start": 0, "type": "Identifier" @@ -3215,9 +3600,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperSketch", "start": 0, "type": "Identifier" @@ -3233,6 +3620,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -3244,6 +3632,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -3255,6 +3644,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3263,6 +3653,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -3274,6 +3665,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3284,6 +3676,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3295,6 +3688,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -3306,6 +3700,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3314,6 +3709,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19", "start": 0, "type": "Literal", @@ -3325,6 +3721,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3335,6 +3732,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3343,9 +3741,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperSlotWidth", "start": 0, "type": "Identifier" @@ -3361,9 +3761,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slot", "start": 0, "type": "Identifier" @@ -3374,16 +3776,19 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3401,6 +3806,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotProfile002", "start": 0, "type": "Identifier" @@ -3412,6 +3818,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch1", "start": 0, "type": "Identifier" @@ -3420,9 +3827,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperSketch", "start": 0, "type": "Identifier" @@ -3438,6 +3847,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -3449,6 +3859,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -3460,6 +3871,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3469,6 +3881,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -3480,6 +3893,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3487,6 +3901,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3497,6 +3912,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3508,6 +3924,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -3519,6 +3936,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3528,6 +3946,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19", "start": 0, "type": "Literal", @@ -3539,6 +3958,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3546,6 +3966,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3556,6 +3977,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3564,9 +3986,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperSlotWidth", "start": 0, "type": "Identifier" @@ -3582,9 +4006,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slot", "start": 0, "type": "Identifier" @@ -3595,16 +4021,19 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3622,6 +4051,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spatulaProfile", "start": 0, "type": "Identifier" @@ -3632,9 +4062,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperProfile", "start": 0, "type": "Identifier" @@ -3651,6 +4083,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3659,9 +4092,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotProfile000", "start": 0, "type": "Identifier" @@ -3677,9 +4112,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -3690,6 +4127,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3702,6 +4140,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3710,9 +4149,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotProfile001", "start": 0, "type": "Identifier" @@ -3728,9 +4169,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -3741,6 +4184,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3753,6 +4197,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3761,9 +4206,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slotProfile002", "start": 0, "type": "Identifier" @@ -3779,9 +4226,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -3792,6 +4241,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3800,12 +4250,14 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3822,11 +4274,13 @@ description: Result of parsing food-service-spatula.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3844,6 +4298,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipper", "start": 0, "type": "Identifier" @@ -3855,6 +4310,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3863,9 +4319,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperThickness", "start": 0, "type": "Identifier" @@ -3881,9 +4339,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3894,6 +4354,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3901,9 +4362,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spatulaProfile", "start": 0, "type": "Identifier" @@ -3914,11 +4377,13 @@ description: Result of parsing food-service-spatula.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3933,6 +4398,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3941,9 +4407,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperFilletRadius", "start": 0, "type": "Identifier" @@ -3959,6 +4427,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -3967,13 +4436,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -3984,6 +4456,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3991,9 +4464,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "backEdge", "start": 0, "type": "Identifier" @@ -4005,13 +4480,16 @@ description: Result of parsing food-service-spatula.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -4022,6 +4500,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4029,9 +4508,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "backEdge", "start": 0, "type": "Identifier" @@ -4044,6 +4525,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4054,9 +4536,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -4067,6 +4551,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4074,9 +4559,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipper", "start": 0, "type": "Identifier" @@ -4087,6 +4574,7 @@ description: Result of parsing food-service-spatula.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -4104,18 +4592,22 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4126,6 +4618,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4136,6 +4629,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -4148,9 +4642,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -4162,15 +4658,18 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4190,9 +4689,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -4203,6 +4704,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4210,9 +4712,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -4224,11 +4728,13 @@ description: Result of parsing food-service-spatula.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4246,6 +4752,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleProfile", "start": 0, "type": "Identifier" @@ -4259,6 +4766,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4269,6 +4777,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4282,9 +4791,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flipperThickness", "start": 0, "type": "Identifier" @@ -4296,6 +4807,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4306,9 +4818,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4319,6 +4833,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4326,9 +4841,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleSketch", "start": 0, "type": "Identifier" @@ -4346,6 +4863,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4356,6 +4874,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "31.819805", "start": 0, "type": "Literal", @@ -4368,6 +4887,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "31.819805", "start": 0, "type": "Literal", @@ -4379,6 +4899,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4389,6 +4910,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4396,6 +4918,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4407,9 +4930,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4420,6 +4945,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4432,6 +4958,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4442,6 +4969,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "140.953893", "start": 0, "type": "Literal", @@ -4454,6 +4982,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "51.303021", "start": 0, "type": "Literal", @@ -4465,6 +4994,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4475,9 +5005,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4488,6 +5020,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4500,6 +5033,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4511,6 +5045,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.710101", "start": 0, "type": "Literal", @@ -4522,6 +5057,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4530,6 +5066,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.698463", "start": 0, "type": "Literal", @@ -4541,6 +5078,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4551,9 +5089,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4564,6 +5104,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4576,6 +5117,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4587,6 +5129,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "141.995517", "start": 0, "type": "Literal", @@ -4598,6 +5141,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4607,6 +5151,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "51.682142", "start": 0, "type": "Literal", @@ -4618,6 +5163,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4625,6 +5171,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4635,6 +5182,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4642,6 +5190,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4653,9 +5202,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4666,6 +5217,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4678,6 +5230,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4689,6 +5242,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36.139148", "start": 0, "type": "Literal", @@ -4700,6 +5254,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4709,6 +5264,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36.139148", "start": 0, "type": "Literal", @@ -4720,6 +5276,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4727,6 +5284,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4737,9 +5295,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4750,6 +5310,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4762,6 +5323,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4769,6 +5331,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.071068", "start": 0, "type": "Literal", @@ -4784,9 +5347,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4797,19 +5362,23 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4820,6 +5389,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4828,12 +5398,14 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4850,11 +5422,13 @@ description: Result of parsing food-service-spatula.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4872,6 +5446,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handle", "start": 0, "type": "Identifier" @@ -4883,6 +5458,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4891,9 +5467,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -4909,9 +5487,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4922,6 +5502,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4929,9 +5510,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleProfile", "start": 0, "type": "Identifier" @@ -4942,11 +5525,13 @@ description: Result of parsing food-service-spatula.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4961,6 +5546,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4968,6 +5554,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4983,6 +5570,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -4991,13 +5579,16 @@ description: Result of parsing food-service-spatula.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -5008,6 +5599,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5015,9 +5607,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleBottomEdge", "start": 0, "type": "Identifier" @@ -5029,13 +5623,16 @@ description: Result of parsing food-service-spatula.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -5046,6 +5643,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5053,9 +5651,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleTopEdge", "start": 0, "type": "Identifier" @@ -5068,6 +5668,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5078,9 +5679,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -5091,6 +5694,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5098,9 +5702,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handle", "start": 0, "type": "Identifier" @@ -5111,6 +5717,7 @@ description: Result of parsing food-service-spatula.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -5128,6 +5735,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handlePlane", "start": 0, "type": "Identifier" @@ -5135,6 +5743,7 @@ description: Result of parsing food-service-spatula.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -5142,10 +5751,12 @@ description: Result of parsing food-service-spatula.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -5154,6 +5765,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "208.593833", "start": 0, "type": "Literal", @@ -5166,6 +5778,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5178,6 +5791,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "75.921946", "start": 0, "type": "Literal", @@ -5189,6 +5803,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5200,10 +5815,12 @@ description: Result of parsing food-service-spatula.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -5212,6 +5829,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.342020", "start": 0, "type": "Literal", @@ -5225,6 +5843,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5236,6 +5855,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5245,6 +5865,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.939693", "start": 0, "type": "Literal", @@ -5256,6 +5877,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5263,6 +5885,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5274,10 +5897,12 @@ description: Result of parsing food-service-spatula.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -5286,6 +5911,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5298,6 +5924,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -5310,6 +5937,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5321,6 +5949,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5332,10 +5961,12 @@ description: Result of parsing food-service-spatula.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -5344,6 +5975,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.939693", "start": 0, "type": "Literal", @@ -5357,6 +5989,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5368,6 +6001,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5376,6 +6010,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.342020", "start": 0, "type": "Literal", @@ -5387,6 +6022,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5397,11 +6033,13 @@ description: Result of parsing food-service-spatula.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5419,18 +6057,22 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5441,6 +6083,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5448,9 +6091,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handlePlane", "start": 0, "type": "Identifier" @@ -5461,11 +6106,13 @@ description: Result of parsing food-service-spatula.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5483,6 +6130,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripProfile", "start": 0, "type": "Identifier" @@ -5496,6 +6144,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5507,6 +6156,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.806746", "start": 0, "type": "Literal", @@ -5518,6 +6168,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5527,6 +6178,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.0", "start": 0, "type": "Literal", @@ -5538,6 +6190,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5545,6 +6198,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5555,9 +6209,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5568,6 +6224,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5575,9 +6232,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripSketch", "start": 0, "type": "Identifier" @@ -5595,6 +6254,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5606,9 +6266,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripWidth", "start": 0, "type": "Identifier" @@ -5618,6 +6280,7 @@ description: Result of parsing food-service-spatula.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5625,6 +6288,7 @@ description: Result of parsing food-service-spatula.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5634,14 +6298,17 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripFilletRadius", "start": 0, "type": "Identifier" @@ -5665,9 +6332,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5678,6 +6347,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5690,6 +6360,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -5698,6 +6369,7 @@ description: Result of parsing food-service-spatula.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90.0", "start": 0, "type": "Literal", @@ -5709,6 +6381,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5720,6 +6393,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -5727,6 +6401,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5742,6 +6417,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5750,9 +6426,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripFilletRadius", "start": 0, "type": "Identifier" @@ -5768,9 +6446,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -5781,6 +6461,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5793,6 +6474,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5804,9 +6486,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripHeight", "start": 0, "type": "Identifier" @@ -5816,6 +6500,7 @@ description: Result of parsing food-service-spatula.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5823,6 +6508,7 @@ description: Result of parsing food-service-spatula.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5832,14 +6518,17 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripFilletRadius", "start": 0, "type": "Identifier" @@ -5863,9 +6552,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5876,6 +6567,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5888,6 +6580,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -5895,6 +6588,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5910,6 +6604,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -5917,6 +6612,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90.0", "start": 0, "type": "Literal", @@ -5932,6 +6628,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5940,9 +6637,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripFilletRadius", "start": 0, "type": "Identifier" @@ -5958,9 +6657,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -5971,6 +6672,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5983,6 +6685,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5995,9 +6698,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripWidth", "start": 0, "type": "Identifier" @@ -6007,6 +6712,7 @@ description: Result of parsing food-service-spatula.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6014,6 +6720,7 @@ description: Result of parsing food-service-spatula.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6023,14 +6730,17 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripFilletRadius", "start": 0, "type": "Identifier" @@ -6050,6 +6760,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6061,9 +6772,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6074,6 +6787,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6086,6 +6800,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -6093,6 +6808,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90.0", "start": 0, "type": "Literal", @@ -6108,6 +6824,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -6115,6 +6832,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180.0", "start": 0, "type": "Literal", @@ -6130,6 +6848,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6138,9 +6857,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripFilletRadius", "start": 0, "type": "Identifier" @@ -6156,9 +6877,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -6169,6 +6892,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6181,6 +6905,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6193,9 +6918,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripHeight", "start": 0, "type": "Identifier" @@ -6205,6 +6932,7 @@ description: Result of parsing food-service-spatula.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6212,6 +6940,7 @@ description: Result of parsing food-service-spatula.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6221,14 +6950,17 @@ description: Result of parsing food-service-spatula.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripFilletRadius", "start": 0, "type": "Identifier" @@ -6248,6 +6980,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6259,6 +6992,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -6266,6 +7000,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -6277,9 +7012,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6290,6 +7027,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6302,6 +7040,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -6309,6 +7048,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180.0", "start": 0, "type": "Literal", @@ -6324,6 +7064,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -6331,6 +7072,7 @@ description: Result of parsing food-service-spatula.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270.0", "start": 0, "type": "Literal", @@ -6346,6 +7088,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6354,9 +7097,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripFilletRadius", "start": 0, "type": "Identifier" @@ -6372,9 +7117,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -6385,19 +7132,23 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -6408,6 +7159,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6416,12 +7168,14 @@ description: Result of parsing food-service-spatula.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6438,11 +7192,13 @@ description: Result of parsing food-service-spatula.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6460,6 +7216,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grip", "start": 0, "type": "Identifier" @@ -6471,6 +7228,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6480,9 +7238,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripLength", "start": 0, "type": "Identifier" @@ -6494,6 +7254,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6505,9 +7266,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6518,6 +7281,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6525,9 +7289,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripProfile", "start": 0, "type": "Identifier" @@ -6538,11 +7304,13 @@ description: Result of parsing food-service-spatula.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6555,6 +7323,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeSketch", "start": 0, "type": "Identifier" @@ -6566,6 +7335,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6574,9 +7344,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripEdgeTop", "start": 0, "type": "Identifier" @@ -6592,9 +7364,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6605,6 +7379,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6612,9 +7387,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grip", "start": 0, "type": "Identifier" @@ -6625,11 +7402,13 @@ description: Result of parsing food-service-spatula.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6647,6 +7426,7 @@ description: Result of parsing food-service-spatula.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripHoleProfile", "start": 0, "type": "Identifier" @@ -6658,6 +7438,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch1", "start": 0, "type": "Identifier" @@ -6666,9 +7447,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeSketch", "start": 0, "type": "Identifier" @@ -6684,6 +7467,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -6694,6 +7478,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6706,6 +7491,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -6717,6 +7503,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6727,6 +7514,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6737,6 +7525,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6749,6 +7538,7 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "210", "start": 0, "type": "Literal", @@ -6760,6 +7550,7 @@ description: Result of parsing food-service-spatula.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6770,6 +7561,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6778,9 +7570,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripSlotWidth", "start": 0, "type": "Identifier" @@ -6796,9 +7590,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slot", "start": 0, "type": "Identifier" @@ -6809,16 +7605,19 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6838,6 +7637,7 @@ description: Result of parsing food-service-spatula.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6850,9 +7650,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripWidth", "start": 0, "type": "Identifier" @@ -6864,15 +7666,18 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -6892,9 +7697,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6905,6 +7712,7 @@ description: Result of parsing food-service-spatula.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6912,9 +7720,11 @@ description: Result of parsing food-service-spatula.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gripHoleProfile", "start": 0, "type": "Identifier" @@ -6925,6 +7735,7 @@ description: Result of parsing food-service-spatula.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -6941,9 +7752,11 @@ description: Result of parsing food-service-spatula.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -6962,19 +7775,23 @@ description: Result of parsing food-service-spatula.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -6991,15 +7808,18 @@ description: Result of parsing food-service-spatula.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7015,12 +7835,14 @@ description: Result of parsing food-service-spatula.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/program_memory.snap index ef37cfc80..25cbd21f6 100644 --- a/rust/kcl-lib/tests/kcl_samples/food-service-spatula/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/food-service-spatula/program_memory.snap @@ -29,6 +29,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 1590, "end": 1599, + "moduleId": 0, "start": 1590, "type": "TagDeclarator", "value": "backEdge" @@ -92,6 +93,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 1590, "end": 1599, + "moduleId": 0, "start": 1590, "type": "TagDeclarator", "value": "backEdge" @@ -301,6 +303,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 1590, "end": 1599, + "moduleId": 0, "start": 1590, "type": "TagDeclarator", "value": "backEdge" @@ -553,6 +556,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 4336, "end": 4348, + "moduleId": 0, "start": 4336, "type": "TagDeclarator", "value": "gripEdgeTop" @@ -715,6 +719,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 4336, "end": 4348, + "moduleId": 0, "start": 4336, "type": "TagDeclarator", "value": "gripEdgeTop" @@ -1060,6 +1065,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 4336, "end": 4348, + "moduleId": 0, "start": 4336, "type": "TagDeclarator", "value": "gripEdgeTop" @@ -1222,6 +1228,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 4336, "end": 4348, + "moduleId": 0, "start": 4336, "type": "TagDeclarator", "value": "gripEdgeTop" @@ -1540,6 +1547,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 4336, "end": 4348, + "moduleId": 0, "start": 4336, "type": "TagDeclarator", "value": "gripEdgeTop" @@ -1731,6 +1739,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 2988, "end": 3005, + "moduleId": 0, "start": 2988, "type": "TagDeclarator", "value": "handleBottomEdge" @@ -1758,6 +1767,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 3136, "end": 3150, + "moduleId": 0, "start": 3136, "type": "TagDeclarator", "value": "handleTopEdge" @@ -1802,6 +1812,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 2988, "end": 3005, + "moduleId": 0, "start": 2988, "type": "TagDeclarator", "value": "handleBottomEdge" @@ -1865,6 +1876,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 3136, "end": 3150, + "moduleId": 0, "start": 3136, "type": "TagDeclarator", "value": "handleTopEdge" @@ -2213,6 +2225,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 2988, "end": 3005, + "moduleId": 0, "start": 2988, "type": "TagDeclarator", "value": "handleBottomEdge" @@ -2276,6 +2289,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 3136, "end": 3150, + "moduleId": 0, "start": 3136, "type": "TagDeclarator", "value": "handleTopEdge" @@ -2538,6 +2552,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 4336, "end": 4348, + "moduleId": 0, "start": 4336, "type": "TagDeclarator", "value": "gripEdgeTop" @@ -2700,6 +2715,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 4336, "end": 4348, + "moduleId": 0, "start": 4336, "type": "TagDeclarator", "value": "gripEdgeTop" @@ -3373,6 +3389,7 @@ description: Variables in memory after executing food-service-spatula.kcl "tag": { "commentStart": 1590, "end": 1599, + "moduleId": 0, "start": 1590, "type": "TagDeclarator", "value": "backEdge" diff --git a/rust/kcl-lib/tests/kcl_samples/french-press/ast.snap b/rust/kcl-lib/tests/kcl_samples/french-press/ast.snap index c93c3e4f5..cc9644dd4 100644 --- a/rust/kcl-lib/tests/kcl_samples/french-press/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/french-press/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing french-press.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.41", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing french-press.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeHeight", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing french-press.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.32", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing french-press.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleThickness", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing french-press.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.65", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing french-press.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -122,13 +135,16 @@ description: Result of parsing french-press.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -139,6 +155,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -146,9 +163,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -166,6 +185,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -180,9 +200,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -192,10 +214,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -212,6 +236,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.7", "start": 0, "type": "Literal", @@ -223,6 +248,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -233,9 +259,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -246,6 +274,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -258,6 +287,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -265,6 +295,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -280,6 +311,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -287,6 +319,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -302,6 +335,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -309,6 +343,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -320,9 +355,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -333,6 +370,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -345,6 +383,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -353,13 +392,16 @@ description: Result of parsing french-press.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -370,6 +412,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -377,9 +420,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -390,10 +435,12 @@ description: Result of parsing french-press.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -413,6 +460,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -421,6 +469,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -432,6 +481,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -443,6 +493,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -450,6 +501,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -461,9 +513,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -474,6 +528,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -486,18 +541,22 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -508,6 +567,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -515,9 +575,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -534,19 +596,23 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -557,6 +623,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -564,9 +631,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -579,6 +648,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -590,6 +660,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -597,6 +668,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -608,9 +680,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -621,6 +695,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -633,6 +708,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -641,13 +717,16 @@ description: Result of parsing french-press.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -658,25 +737,30 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -687,12 +771,14 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -700,6 +786,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -710,9 +797,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -723,19 +812,23 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -746,6 +839,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -758,6 +852,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -765,6 +860,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -780,6 +876,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -788,9 +885,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -806,9 +905,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -819,6 +920,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -827,12 +929,14 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -849,11 +953,13 @@ description: Result of parsing french-press.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -871,6 +977,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -878,6 +985,7 @@ description: Result of parsing french-press.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -885,10 +993,12 @@ description: Result of parsing french-press.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -898,6 +1008,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.26", "start": 0, "type": "Literal", @@ -909,6 +1020,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -917,6 +1029,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.26", "start": 0, "type": "Literal", @@ -929,6 +1042,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -940,6 +1054,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -951,10 +1066,12 @@ description: Result of parsing french-press.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -963,6 +1080,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -975,6 +1093,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -987,6 +1106,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -998,6 +1118,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1009,10 +1130,12 @@ description: Result of parsing french-press.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1021,6 +1144,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1033,6 +1157,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1045,6 +1170,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1056,6 +1182,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1067,10 +1194,12 @@ description: Result of parsing french-press.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1079,6 +1208,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1091,6 +1221,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1103,6 +1234,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1114,6 +1246,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1124,11 +1257,13 @@ description: Result of parsing french-press.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1141,6 +1276,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1148,13 +1284,16 @@ description: Result of parsing french-press.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1165,6 +1304,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1172,9 +1312,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -1192,6 +1334,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1206,9 +1349,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -1218,10 +1363,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1238,6 +1385,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.7", "start": 0, "type": "Literal", @@ -1249,6 +1397,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1259,9 +1408,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1272,6 +1423,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1284,6 +1436,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1291,6 +1444,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -1306,9 +1460,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1319,6 +1475,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1331,6 +1488,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1339,6 +1497,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.2", "start": 0, "type": "Literal", @@ -1350,6 +1509,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1361,6 +1521,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1368,6 +1529,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1379,9 +1541,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1392,6 +1556,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1404,6 +1569,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1411,6 +1577,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1426,6 +1593,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1433,6 +1601,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "205", "start": 0, "type": "Literal", @@ -1448,6 +1617,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1455,6 +1625,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -1470,9 +1641,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1483,6 +1656,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1495,6 +1669,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1503,6 +1678,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -1514,6 +1690,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1525,6 +1702,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1532,6 +1710,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -1547,6 +1726,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1554,6 +1734,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1565,9 +1746,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1578,6 +1761,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1590,6 +1774,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1597,6 +1782,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -1612,6 +1798,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1620,6 +1807,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -1631,6 +1819,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1642,6 +1831,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1649,6 +1839,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -1664,9 +1855,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1677,6 +1870,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1689,6 +1883,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1696,6 +1891,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -1711,6 +1907,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -1719,6 +1916,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -1730,6 +1928,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1741,6 +1940,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1748,6 +1948,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1759,9 +1960,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1772,6 +1975,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1784,6 +1988,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1791,6 +1996,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -1806,6 +2012,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1813,6 +2020,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1828,6 +2036,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1835,6 +2044,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1850,9 +2060,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1863,6 +2075,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1875,6 +2088,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1882,6 +2096,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -1897,6 +2112,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1904,6 +2120,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1915,9 +2132,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1928,6 +2147,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1940,6 +2160,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1947,6 +2168,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -1962,9 +2184,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1975,6 +2199,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1987,6 +2212,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1995,13 +2221,16 @@ description: Result of parsing french-press.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2012,6 +2241,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2019,9 +2249,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edgeLen", "start": 0, "type": "Identifier" @@ -2032,10 +2264,12 @@ description: Result of parsing french-press.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.035", "start": 0, "type": "Literal", @@ -2055,6 +2289,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2062,6 +2297,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2073,9 +2309,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2086,6 +2324,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2098,6 +2337,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -2105,6 +2345,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2120,6 +2361,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -2127,6 +2369,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -2142,6 +2385,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2149,6 +2393,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -2164,9 +2409,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2177,6 +2424,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2189,6 +2437,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2196,6 +2445,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -2211,6 +2461,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2220,13 +2471,16 @@ description: Result of parsing french-press.kcl "end": 0, "left": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2237,6 +2491,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2244,9 +2499,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge3", "start": 0, "type": "Identifier" @@ -2259,15 +2516,18 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.035", "start": 0, "type": "Literal", @@ -2287,6 +2547,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2294,6 +2555,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2305,9 +2567,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2318,6 +2582,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2330,6 +2595,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -2338,6 +2604,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -2349,6 +2616,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2360,6 +2628,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -2367,6 +2636,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -2382,6 +2652,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2389,6 +2660,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2404,9 +2676,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2417,6 +2691,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2429,6 +2704,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2437,6 +2713,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -2448,6 +2725,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2459,6 +2737,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2468,13 +2747,16 @@ description: Result of parsing french-press.kcl "end": 0, "left": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2485,6 +2767,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2492,9 +2775,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "edge2", "start": 0, "type": "Identifier" @@ -2507,15 +2792,18 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.035", "start": 0, "type": "Literal", @@ -2535,6 +2823,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2542,6 +2831,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2553,9 +2843,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2566,6 +2858,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2578,6 +2871,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -2585,6 +2879,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "205", "start": 0, "type": "Literal", @@ -2600,6 +2895,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -2607,6 +2903,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2622,6 +2919,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2629,6 +2927,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -2644,9 +2943,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2657,6 +2958,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2669,6 +2971,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2677,13 +2980,16 @@ description: Result of parsing french-press.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2694,25 +3000,30 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2723,12 +3034,14 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2736,6 +3049,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2746,9 +3060,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2759,19 +3075,23 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2782,6 +3102,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2794,6 +3115,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2801,6 +3123,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -2816,9 +3139,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2829,6 +3154,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2841,6 +3167,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2851,6 +3178,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2863,6 +3191,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2875,6 +3204,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2886,6 +3216,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2896,6 +3227,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2906,6 +3238,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2918,6 +3251,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2930,6 +3264,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2941,6 +3276,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2951,6 +3287,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2958,6 +3295,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2973,6 +3311,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2980,6 +3319,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2995,6 +3335,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -3002,6 +3343,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -3014,9 +3356,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -3027,6 +3371,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3035,12 +3380,14 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "20": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3057,11 +3404,13 @@ description: Result of parsing french-press.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3079,6 +3428,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -3086,13 +3436,16 @@ description: Result of parsing french-press.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3103,6 +3456,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3113,6 +3467,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3120,6 +3475,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3135,9 +3491,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3148,6 +3506,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3155,9 +3514,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3176,6 +3537,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3186,6 +3548,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3198,6 +3561,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3209,6 +3573,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3219,6 +3584,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3233,9 +3599,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -3245,10 +3613,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3262,10 +3632,12 @@ description: Result of parsing french-press.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -3285,9 +3657,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3298,6 +3672,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3306,15 +3681,18 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3327,6 +3705,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -3338,6 +3717,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3345,6 +3725,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.050", "start": 0, "type": "Literal", @@ -3360,9 +3741,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3373,6 +3756,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3380,9 +3764,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -3393,11 +3779,13 @@ description: Result of parsing french-press.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3410,6 +3798,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -3423,6 +3812,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3431,9 +3821,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -3449,9 +3841,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3462,6 +3856,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3469,9 +3864,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -3489,6 +3886,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3499,6 +3897,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -3511,6 +3910,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17", "start": 0, "type": "Literal", @@ -3522,6 +3922,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3532,9 +3933,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3545,6 +3948,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3557,6 +3961,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3564,6 +3969,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -3579,9 +3985,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3592,6 +4000,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3604,6 +4013,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -3611,6 +4021,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3626,6 +4037,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -3634,6 +4046,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -3645,6 +4058,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3656,6 +4070,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3663,6 +4078,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -3678,9 +4094,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3691,6 +4109,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3703,6 +4122,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3711,13 +4131,16 @@ description: Result of parsing french-press.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3728,25 +4151,30 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3757,12 +4185,14 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3770,6 +4200,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3780,9 +4211,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3793,19 +4226,23 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3816,6 +4253,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3828,6 +4266,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3838,6 +4277,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3850,6 +4290,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3861,6 +4302,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3871,6 +4313,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3878,6 +4321,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3893,6 +4337,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -3900,6 +4345,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -3915,6 +4361,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -3922,6 +4369,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -3934,9 +4382,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -3947,6 +4397,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3955,15 +4406,18 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3976,6 +4430,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -3987,6 +4442,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3995,6 +4451,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.050", "start": 0, "type": "Literal", @@ -4006,6 +4463,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4017,9 +4475,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4030,6 +4490,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4037,9 +4498,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -4050,11 +4513,13 @@ description: Result of parsing french-press.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4067,6 +4532,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" @@ -4074,13 +4540,16 @@ description: Result of parsing french-press.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4091,6 +4560,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4098,9 +4568,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -4118,6 +4590,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4128,6 +4601,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -4140,6 +4614,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.11", "start": 0, "type": "Literal", @@ -4151,6 +4626,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4161,9 +4637,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4174,6 +4652,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4186,6 +4665,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4200,9 +4680,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -4212,10 +4694,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4229,10 +4713,12 @@ description: Result of parsing french-press.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -4252,9 +4738,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4265,6 +4753,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4277,6 +4766,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4284,6 +4774,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4299,6 +4790,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -4313,9 +4805,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -4325,10 +4819,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4342,10 +4838,12 @@ description: Result of parsing french-press.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.07", "start": 0, "type": "Literal", @@ -4365,6 +4863,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4372,6 +4871,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4383,9 +4883,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4396,6 +4898,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4408,6 +4911,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4416,6 +4920,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -4427,6 +4932,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4438,6 +4944,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4445,6 +4952,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.050", "start": 0, "type": "Literal", @@ -4460,9 +4968,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4473,6 +4983,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4485,6 +4996,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4492,6 +5004,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4507,19 +5020,23 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4530,6 +5047,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4537,9 +5055,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg1", "start": 0, "type": "Identifier" @@ -4552,6 +5072,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4563,9 +5084,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4576,6 +5099,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4588,6 +5112,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4595,6 +5120,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -4610,9 +5136,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4623,6 +5151,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4635,6 +5164,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4643,13 +5173,16 @@ description: Result of parsing french-press.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4660,25 +5193,30 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4689,12 +5227,14 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4702,6 +5242,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4712,9 +5253,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4725,19 +5268,23 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4748,6 +5295,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4760,6 +5308,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4768,9 +5317,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -4786,9 +5337,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -4799,6 +5352,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4807,12 +5361,14 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4829,11 +5385,13 @@ description: Result of parsing french-press.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4851,6 +5409,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch006", "start": 0, "type": "Identifier" @@ -4858,13 +5417,16 @@ description: Result of parsing french-press.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4875,6 +5437,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4882,9 +5445,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -4902,6 +5467,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4912,6 +5478,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -4924,6 +5491,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4935,6 +5503,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4945,9 +5514,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4958,6 +5529,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4970,6 +5542,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4980,6 +5553,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -4992,6 +5566,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5003,6 +5578,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5013,9 +5589,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5026,6 +5604,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5038,6 +5617,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5045,6 +5625,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -5060,6 +5641,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -5067,6 +5649,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05", "start": 0, "type": "Literal", @@ -5082,9 +5665,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -5095,6 +5680,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5107,6 +5693,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5114,6 +5701,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -5129,9 +5717,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5142,6 +5732,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5154,6 +5745,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5164,6 +5756,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -5176,6 +5769,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5187,6 +5781,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5197,9 +5792,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5210,6 +5807,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5222,6 +5820,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5230,6 +5829,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".05", "start": 0, "type": "Literal", @@ -5241,6 +5841,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5252,9 +5853,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5265,6 +5868,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5277,6 +5881,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5284,6 +5889,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -5299,6 +5905,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5307,6 +5914,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5318,6 +5926,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5329,9 +5938,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5342,6 +5953,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5354,6 +5966,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5362,13 +5975,16 @@ description: Result of parsing french-press.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5379,25 +5995,30 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5408,12 +6029,14 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5421,6 +6044,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5431,9 +6055,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5444,19 +6070,23 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5467,6 +6097,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5479,6 +6110,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5487,9 +6119,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -5505,9 +6139,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -5518,6 +6154,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5526,12 +6163,14 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "10": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5548,11 +6187,13 @@ description: Result of parsing french-press.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5565,6 +6206,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch007", "start": 0, "type": "Identifier" @@ -5572,13 +6214,16 @@ description: Result of parsing french-press.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5589,6 +6234,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5599,6 +6245,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5606,6 +6253,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.12", "start": 0, "type": "Literal", @@ -5621,9 +6269,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5634,6 +6284,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5641,9 +6292,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -5662,6 +6315,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5672,6 +6326,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5684,6 +6339,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5695,6 +6351,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5705,6 +6362,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5719,9 +6377,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -5731,10 +6391,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5748,10 +6410,12 @@ description: Result of parsing french-press.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24", "start": 0, "type": "Literal", @@ -5771,9 +6435,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5784,6 +6450,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5796,6 +6463,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -5807,6 +6475,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5817,6 +6486,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5829,6 +6499,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5840,6 +6511,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5850,6 +6522,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5857,6 +6530,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".15", "start": 0, "type": "Literal", @@ -5872,9 +6546,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5885,6 +6561,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5896,9 +6573,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -5909,6 +6588,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5917,15 +6597,18 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5938,6 +6621,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -5949,6 +6633,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5956,6 +6641,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.050", "start": 0, "type": "Literal", @@ -5971,9 +6657,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5984,6 +6672,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5991,9 +6680,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch007", "start": 0, "type": "Identifier" @@ -6004,11 +6695,13 @@ description: Result of parsing french-press.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6021,6 +6714,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch008", "start": 0, "type": "Identifier" @@ -6034,6 +6728,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6042,9 +6737,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -6060,9 +6757,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6073,6 +6772,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6080,9 +6780,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -6100,6 +6802,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6110,6 +6813,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.4", "start": 0, "type": "Literal", @@ -6122,6 +6826,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6133,6 +6838,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6143,6 +6849,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6150,6 +6857,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".3", "start": 0, "type": "Literal", @@ -6165,9 +6873,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6178,6 +6888,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6190,6 +6901,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6200,6 +6912,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6212,6 +6925,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6223,6 +6937,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6233,6 +6948,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6240,6 +6956,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -6255,6 +6972,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -6262,6 +6980,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -6277,6 +6996,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -6284,6 +7004,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -6296,9 +7017,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -6309,6 +7032,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6317,15 +7041,18 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6343,6 +7070,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude004", "start": 0, "type": "Identifier" @@ -6354,6 +7082,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6362,6 +7091,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.050", "start": 0, "type": "Literal", @@ -6373,6 +7103,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6384,9 +7115,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6397,6 +7130,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6404,9 +7138,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch008", "start": 0, "type": "Identifier" @@ -6417,11 +7153,13 @@ description: Result of parsing french-press.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6434,6 +7172,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch009", "start": 0, "type": "Identifier" @@ -6447,6 +7186,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6455,9 +7195,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -6473,9 +7215,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6486,6 +7230,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6493,9 +7238,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -6513,6 +7260,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6523,6 +7271,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -6535,6 +7284,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6546,6 +7296,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6556,6 +7307,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6563,6 +7315,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".2", "start": 0, "type": "Literal", @@ -6578,9 +7331,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6591,6 +7346,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6603,6 +7359,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6613,6 +7370,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6625,6 +7383,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6636,6 +7395,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6646,6 +7406,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6653,6 +7414,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6668,6 +7430,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -6675,6 +7438,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -6690,6 +7454,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -6697,6 +7462,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -6709,9 +7475,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -6722,6 +7490,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6730,15 +7499,18 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6756,6 +7528,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude005", "start": 0, "type": "Identifier" @@ -6767,6 +7540,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6775,6 +7549,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.050", "start": 0, "type": "Literal", @@ -6786,6 +7561,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6797,9 +7573,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6810,6 +7588,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6817,9 +7596,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch009", "start": 0, "type": "Identifier" @@ -6830,11 +7611,13 @@ description: Result of parsing french-press.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6847,6 +7630,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch010", "start": 0, "type": "Identifier" @@ -6854,13 +7638,16 @@ description: Result of parsing french-press.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6871,6 +7658,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6878,9 +7666,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -6898,6 +7688,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6908,6 +7699,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6920,6 +7712,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6931,6 +7724,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6941,6 +7735,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6952,9 +7747,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -6964,10 +7761,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6987,9 +7786,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -7000,6 +7801,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7008,12 +7810,14 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7030,11 +7834,13 @@ description: Result of parsing french-press.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -7052,6 +7858,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude006", "start": 0, "type": "Identifier" @@ -7065,6 +7872,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7073,9 +7881,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeHeight", "start": 0, "type": "Identifier" @@ -7091,9 +7901,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7104,6 +7916,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7111,9 +7924,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch010", "start": 0, "type": "Identifier" @@ -7131,6 +7946,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -7142,9 +7958,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -7156,6 +7974,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7166,6 +7985,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -7173,6 +7993,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".07", "start": 0, "type": "Literal", @@ -7188,9 +8009,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shell", "start": 0, "type": "Identifier" @@ -7201,6 +8024,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7209,12 +8033,14 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7231,11 +8057,13 @@ description: Result of parsing french-press.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7248,6 +8076,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch011", "start": 0, "type": "Identifier" @@ -7255,13 +8084,16 @@ description: Result of parsing french-press.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -7272,6 +8104,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7279,9 +8112,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -7299,6 +8134,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -7309,6 +8145,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -7325,9 +8162,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeHeight", "start": 0, "type": "Identifier" @@ -7337,10 +8176,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -7356,6 +8197,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7366,9 +8208,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -7379,6 +8223,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7391,6 +8236,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7405,9 +8251,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -7417,10 +8265,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7434,10 +8284,12 @@ description: Result of parsing french-press.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -7457,9 +8309,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7470,6 +8324,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7482,6 +8337,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7489,6 +8345,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -7504,9 +8361,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7517,6 +8376,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7529,6 +8389,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7536,6 +8397,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -7551,9 +8413,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7564,6 +8428,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7576,6 +8441,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7583,6 +8449,7 @@ description: Result of parsing french-press.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -7598,9 +8465,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7611,6 +8480,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7623,6 +8493,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7634,6 +8505,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02", "start": 0, "type": "Literal", @@ -7645,6 +8517,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7653,6 +8526,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02", "start": 0, "type": "Literal", @@ -7664,6 +8538,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7674,9 +8549,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7687,6 +8564,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7699,6 +8577,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "control1", "start": 0, "type": "Identifier" @@ -7710,6 +8589,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -7721,6 +8601,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7729,6 +8610,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7740,6 +8622,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7750,6 +8633,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "control2", "start": 0, "type": "Identifier" @@ -7764,9 +8648,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -7776,10 +8662,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -7796,6 +8684,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7807,6 +8696,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7817,6 +8707,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7835,9 +8726,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "carafeDiameter", "start": 0, "type": "Identifier" @@ -7849,15 +8742,18 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7871,10 +8767,12 @@ description: Result of parsing french-press.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -7891,6 +8789,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7902,6 +8801,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7912,9 +8812,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bezierCurve", "start": 0, "type": "Identifier" @@ -7925,6 +8827,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7937,6 +8840,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7945,13 +8849,16 @@ description: Result of parsing french-press.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -7962,25 +8869,30 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -7991,12 +8903,14 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8004,6 +8918,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8014,9 +8929,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8027,19 +8944,23 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -8050,6 +8971,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8062,6 +8984,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8070,9 +8993,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -8088,9 +9013,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -8101,6 +9028,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8109,12 +9037,14 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "10": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -8131,11 +9061,13 @@ description: Result of parsing french-press.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8148,6 +9080,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch012", "start": 0, "type": "Identifier" @@ -8155,13 +9088,16 @@ description: Result of parsing french-press.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -8172,6 +9108,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8182,6 +9119,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -8193,9 +9131,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleThickness", "start": 0, "type": "Identifier" @@ -8205,10 +9145,12 @@ description: Result of parsing french-press.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8228,9 +9170,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -8241,6 +9185,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8248,9 +9193,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -8269,6 +9216,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -8279,6 +9227,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.3", "start": 0, "type": "Literal", @@ -8291,6 +9240,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.4", "start": 0, "type": "Literal", @@ -8302,6 +9252,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8312,9 +9263,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -8325,6 +9278,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8337,6 +9291,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8347,6 +9302,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.56", "start": 0, "type": "Literal", @@ -8359,6 +9315,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8370,6 +9327,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8380,9 +9338,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8393,6 +9353,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8405,6 +9366,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8415,6 +9377,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.1", "start": 0, "type": "Literal", @@ -8427,6 +9390,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.26", "start": 0, "type": "Literal", @@ -8438,6 +9402,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8448,9 +9413,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -8461,6 +9428,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8473,6 +9441,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8483,6 +9452,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.17", "start": 0, "type": "Literal", @@ -8495,6 +9465,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.6", "start": 0, "type": "Literal", @@ -8506,6 +9477,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8516,9 +9488,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -8529,6 +9503,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8541,6 +9516,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8551,6 +9527,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.13", "start": 0, "type": "Literal", @@ -8563,6 +9540,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.61", "start": 0, "type": "Literal", @@ -8574,6 +9552,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8584,9 +9563,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -8597,6 +9578,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8609,6 +9591,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8620,6 +9603,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.09", "start": 0, "type": "Literal", @@ -8631,6 +9615,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8639,6 +9624,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8650,6 +9636,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8660,9 +9647,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8673,6 +9662,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8685,6 +9675,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8695,6 +9686,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8707,6 +9699,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43", "start": 0, "type": "Literal", @@ -8718,6 +9711,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8728,9 +9722,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8741,6 +9737,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8753,6 +9750,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8763,6 +9761,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.99", "start": 0, "type": "Literal", @@ -8776,6 +9775,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02", "start": 0, "type": "Literal", @@ -8787,6 +9787,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8794,6 +9795,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8804,9 +9806,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8817,6 +9821,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8829,6 +9834,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8839,6 +9845,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.63", "start": 0, "type": "Literal", @@ -8851,6 +9858,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.6", "start": 0, "type": "Literal", @@ -8862,6 +9870,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8872,9 +9881,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -8885,6 +9896,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8897,6 +9909,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8907,6 +9920,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.56", "start": 0, "type": "Literal", @@ -8919,6 +9933,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.15", "start": 0, "type": "Literal", @@ -8930,6 +9945,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8940,9 +9956,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -8953,6 +9971,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8965,6 +9984,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8975,6 +9995,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.72", "start": 0, "type": "Literal", @@ -8987,6 +10008,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -8998,6 +10020,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9008,9 +10031,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -9021,6 +10046,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9033,6 +10059,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9044,6 +10071,7 @@ description: Result of parsing french-press.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -9055,6 +10083,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9063,6 +10092,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9074,6 +10104,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9084,9 +10115,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9097,6 +10130,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9109,6 +10143,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9117,13 +10152,16 @@ description: Result of parsing french-press.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -9134,25 +10172,30 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -9163,12 +10206,14 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -9176,6 +10221,7 @@ description: Result of parsing french-press.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9186,9 +10232,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9199,19 +10247,23 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -9222,6 +10274,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9230,15 +10283,18 @@ description: Result of parsing french-press.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9251,6 +10307,7 @@ description: Result of parsing french-press.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude007", "start": 0, "type": "Identifier" @@ -9262,6 +10319,7 @@ description: Result of parsing french-press.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9271,9 +10329,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleThickness", "start": 0, "type": "Identifier" @@ -9285,6 +10345,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9296,9 +10357,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -9309,6 +10372,7 @@ description: Result of parsing french-press.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9316,9 +10380,11 @@ description: Result of parsing french-press.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch012", "start": 0, "type": "Identifier" @@ -9329,11 +10395,13 @@ description: Result of parsing french-press.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9345,9 +10413,11 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -9366,19 +10436,23 @@ description: Result of parsing french-press.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -9395,15 +10469,18 @@ description: Result of parsing french-press.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -9419,12 +10496,14 @@ description: Result of parsing french-press.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9436,6 +10515,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9447,6 +10527,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9458,6 +10539,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9469,6 +10551,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9480,6 +10563,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9492,6 +10576,7 @@ description: Result of parsing french-press.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/french-press/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/french-press/program_memory.snap index 9a8a2da13..70ff91188 100644 --- a/rust/kcl-lib/tests/kcl_samples/french-press/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/french-press/program_memory.snap @@ -4401,6 +4401,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 375, "end": 396, + "moduleId": 0, "start": 375, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -4414,6 +4415,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 479, "end": 500, + "moduleId": 0, "start": 479, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -4427,6 +4429,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 602, "end": 623, + "moduleId": 0, "start": 602, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -4457,6 +4460,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 375, "end": 396, + "moduleId": 0, "start": 375, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -4482,6 +4486,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 479, "end": 500, + "moduleId": 0, "start": 479, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -4507,6 +4512,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 602, "end": 623, + "moduleId": 0, "start": 602, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -4660,6 +4666,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1091, "end": 1097, + "moduleId": 0, "start": 1091, "type": "TagDeclarator", "value": "edge1" @@ -4680,6 +4687,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1205, "end": 1211, + "moduleId": 0, "start": 1205, "type": "TagDeclarator", "value": "edge2" @@ -4700,6 +4708,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1326, "end": 1332, + "moduleId": 0, "start": 1326, "type": "TagDeclarator", "value": "edge3" @@ -4720,6 +4729,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1425, "end": 1433, + "moduleId": 0, "start": 1425, "type": "TagDeclarator", "value": "edgeLen" @@ -4740,6 +4750,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1511, "end": 1517, + "moduleId": 0, "start": 1511, "type": "TagDeclarator", "value": "edge4" @@ -4760,6 +4771,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1642, "end": 1648, + "moduleId": 0, "start": 1642, "type": "TagDeclarator", "value": "edge5" @@ -4780,6 +4792,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1775, "end": 1781, + "moduleId": 0, "start": 1775, "type": "TagDeclarator", "value": "edge6" @@ -4836,6 +4849,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1091, "end": 1097, + "moduleId": 0, "start": 1091, "type": "TagDeclarator", "value": "edge1" @@ -4886,6 +4900,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1205, "end": 1211, + "moduleId": 0, "start": 1205, "type": "TagDeclarator", "value": "edge2" @@ -4936,6 +4951,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1326, "end": 1332, + "moduleId": 0, "start": 1326, "type": "TagDeclarator", "value": "edge3" @@ -4986,6 +5002,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1425, "end": 1433, + "moduleId": 0, "start": 1425, "type": "TagDeclarator", "value": "edgeLen" @@ -5030,6 +5047,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1511, "end": 1517, + "moduleId": 0, "start": 1511, "type": "TagDeclarator", "value": "edge4" @@ -5080,6 +5098,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1642, "end": 1648, + "moduleId": 0, "start": 1642, "type": "TagDeclarator", "value": "edge5" @@ -5130,6 +5149,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1775, "end": 1781, + "moduleId": 0, "start": 1775, "type": "TagDeclarator", "value": "edge6" @@ -5321,6 +5341,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1091, "end": 1097, + "moduleId": 0, "start": 1091, "type": "TagDeclarator", "value": "edge1" @@ -5341,6 +5362,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1205, "end": 1211, + "moduleId": 0, "start": 1205, "type": "TagDeclarator", "value": "edge2" @@ -5361,6 +5383,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1326, "end": 1332, + "moduleId": 0, "start": 1326, "type": "TagDeclarator", "value": "edge3" @@ -5381,6 +5404,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1425, "end": 1433, + "moduleId": 0, "start": 1425, "type": "TagDeclarator", "value": "edgeLen" @@ -5401,6 +5425,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1511, "end": 1517, + "moduleId": 0, "start": 1511, "type": "TagDeclarator", "value": "edge4" @@ -5421,6 +5446,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1642, "end": 1648, + "moduleId": 0, "start": 1642, "type": "TagDeclarator", "value": "edge5" @@ -5441,6 +5467,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1775, "end": 1781, + "moduleId": 0, "start": 1775, "type": "TagDeclarator", "value": "edge6" @@ -5497,6 +5524,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1091, "end": 1097, + "moduleId": 0, "start": 1091, "type": "TagDeclarator", "value": "edge1" @@ -5547,6 +5575,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1205, "end": 1211, + "moduleId": 0, "start": 1205, "type": "TagDeclarator", "value": "edge2" @@ -5597,6 +5626,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1326, "end": 1332, + "moduleId": 0, "start": 1326, "type": "TagDeclarator", "value": "edge3" @@ -5647,6 +5677,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1425, "end": 1433, + "moduleId": 0, "start": 1425, "type": "TagDeclarator", "value": "edgeLen" @@ -5691,6 +5722,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1511, "end": 1517, + "moduleId": 0, "start": 1511, "type": "TagDeclarator", "value": "edge4" @@ -5741,6 +5773,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1642, "end": 1648, + "moduleId": 0, "start": 1642, "type": "TagDeclarator", "value": "edge5" @@ -5791,6 +5824,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1775, "end": 1781, + "moduleId": 0, "start": 1775, "type": "TagDeclarator", "value": "edge6" @@ -5982,6 +6016,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1091, "end": 1097, + "moduleId": 0, "start": 1091, "type": "TagDeclarator", "value": "edge1" @@ -6002,6 +6037,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1205, "end": 1211, + "moduleId": 0, "start": 1205, "type": "TagDeclarator", "value": "edge2" @@ -6022,6 +6058,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1326, "end": 1332, + "moduleId": 0, "start": 1326, "type": "TagDeclarator", "value": "edge3" @@ -6042,6 +6079,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1425, "end": 1433, + "moduleId": 0, "start": 1425, "type": "TagDeclarator", "value": "edgeLen" @@ -6062,6 +6100,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1511, "end": 1517, + "moduleId": 0, "start": 1511, "type": "TagDeclarator", "value": "edge4" @@ -6082,6 +6121,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1642, "end": 1648, + "moduleId": 0, "start": 1642, "type": "TagDeclarator", "value": "edge5" @@ -6102,6 +6142,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1775, "end": 1781, + "moduleId": 0, "start": 1775, "type": "TagDeclarator", "value": "edge6" @@ -6158,6 +6199,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1091, "end": 1097, + "moduleId": 0, "start": 1091, "type": "TagDeclarator", "value": "edge1" @@ -6208,6 +6250,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1205, "end": 1211, + "moduleId": 0, "start": 1205, "type": "TagDeclarator", "value": "edge2" @@ -6258,6 +6301,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1326, "end": 1332, + "moduleId": 0, "start": 1326, "type": "TagDeclarator", "value": "edge3" @@ -6308,6 +6352,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1425, "end": 1433, + "moduleId": 0, "start": 1425, "type": "TagDeclarator", "value": "edgeLen" @@ -6352,6 +6397,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1511, "end": 1517, + "moduleId": 0, "start": 1511, "type": "TagDeclarator", "value": "edge4" @@ -6402,6 +6448,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1642, "end": 1648, + "moduleId": 0, "start": 1642, "type": "TagDeclarator", "value": "edge5" @@ -6452,6 +6499,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1775, "end": 1781, + "moduleId": 0, "start": 1775, "type": "TagDeclarator", "value": "edge6" @@ -6643,6 +6691,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1091, "end": 1097, + "moduleId": 0, "start": 1091, "type": "TagDeclarator", "value": "edge1" @@ -6663,6 +6712,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1205, "end": 1211, + "moduleId": 0, "start": 1205, "type": "TagDeclarator", "value": "edge2" @@ -6683,6 +6733,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1326, "end": 1332, + "moduleId": 0, "start": 1326, "type": "TagDeclarator", "value": "edge3" @@ -6703,6 +6754,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1425, "end": 1433, + "moduleId": 0, "start": 1425, "type": "TagDeclarator", "value": "edgeLen" @@ -6723,6 +6775,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1511, "end": 1517, + "moduleId": 0, "start": 1511, "type": "TagDeclarator", "value": "edge4" @@ -6743,6 +6796,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1642, "end": 1648, + "moduleId": 0, "start": 1642, "type": "TagDeclarator", "value": "edge5" @@ -6763,6 +6817,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1775, "end": 1781, + "moduleId": 0, "start": 1775, "type": "TagDeclarator", "value": "edge6" @@ -6819,6 +6874,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1091, "end": 1097, + "moduleId": 0, "start": 1091, "type": "TagDeclarator", "value": "edge1" @@ -6869,6 +6925,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1205, "end": 1211, + "moduleId": 0, "start": 1205, "type": "TagDeclarator", "value": "edge2" @@ -6919,6 +6976,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1326, "end": 1332, + "moduleId": 0, "start": 1326, "type": "TagDeclarator", "value": "edge3" @@ -6969,6 +7027,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1425, "end": 1433, + "moduleId": 0, "start": 1425, "type": "TagDeclarator", "value": "edgeLen" @@ -7013,6 +7072,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1511, "end": 1517, + "moduleId": 0, "start": 1511, "type": "TagDeclarator", "value": "edge4" @@ -7063,6 +7123,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1642, "end": 1648, + "moduleId": 0, "start": 1642, "type": "TagDeclarator", "value": "edge5" @@ -7113,6 +7174,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 1775, "end": 1781, + "moduleId": 0, "start": 1775, "type": "TagDeclarator", "value": "edge6" @@ -8130,6 +8192,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 2929, "end": 2934, + "moduleId": 0, "start": 2929, "type": "TagDeclarator", "value": "seg1" @@ -8200,6 +8263,7 @@ description: Variables in memory after executing french-press.kcl "tag": { "commentStart": 2929, "end": 2934, + "moduleId": 0, "start": 2929, "type": "TagDeclarator", "value": "seg1" diff --git a/rust/kcl-lib/tests/kcl_samples/gear-rack/ast.snap b/rust/kcl-lib/tests/kcl_samples/gear-rack/ast.snap index 4f2fd2e77..95f16bcf0 100644 --- a/rust/kcl-lib/tests/kcl_samples/gear-rack/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/gear-rack/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing gear-rack.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing gear-rack.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchHeight", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing gear-rack.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.5", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing gear-rack.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing gear-rack.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing gear-rack.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing gear-rack.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing gear-rack.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minHeight", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing gear-rack.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.875", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing gear-rack.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rackBody", "start": 0, "type": "Identifier" @@ -188,13 +209,16 @@ description: Result of parsing gear-rack.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -205,6 +229,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -212,9 +237,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -232,6 +259,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -247,9 +275,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -261,15 +291,18 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -286,6 +319,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -297,6 +331,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -307,9 +342,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -320,6 +357,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -332,6 +370,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -343,9 +382,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -358,6 +399,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -369,6 +411,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -379,9 +422,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -392,6 +437,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -404,6 +450,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -414,6 +461,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -427,9 +475,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minHeight", "start": 0, "type": "Identifier" @@ -441,6 +491,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -451,9 +502,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -464,6 +517,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -476,6 +530,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -488,9 +543,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -502,6 +559,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -510,6 +568,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -521,6 +580,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -531,9 +591,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -544,19 +606,23 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -567,6 +633,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -579,6 +646,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -587,9 +655,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -605,9 +675,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -618,6 +690,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -626,12 +699,14 @@ description: Result of parsing gear-rack.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -648,11 +723,13 @@ description: Result of parsing gear-rack.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -670,6 +747,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tooth", "start": 0, "type": "Identifier" @@ -685,6 +763,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "toothSketch", "start": 0, "type": "Identifier" @@ -692,13 +771,16 @@ description: Result of parsing gear-rack.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -709,6 +791,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -716,9 +799,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -736,6 +821,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -754,9 +840,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -768,15 +856,18 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -790,10 +881,12 @@ description: Result of parsing gear-rack.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.567672", "start": 0, "type": "Literal", @@ -811,9 +904,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minHeight", "start": 0, "type": "Identifier" @@ -825,6 +920,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -835,9 +931,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -848,6 +946,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -860,6 +959,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -870,6 +970,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.157636", "start": 0, "type": "Literal", @@ -882,6 +983,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.110378", "start": 0, "type": "Literal", @@ -893,6 +995,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -903,9 +1006,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -916,6 +1021,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -928,6 +1034,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -938,6 +1045,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.329118", "start": 0, "type": "Literal", @@ -950,6 +1058,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.904244", "start": 0, "type": "Literal", @@ -961,6 +1070,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -971,9 +1081,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -984,6 +1096,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -996,6 +1109,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1006,6 +1120,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.157636", "start": 0, "type": "Literal", @@ -1018,6 +1133,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.110378", "start": 0, "type": "Literal", @@ -1029,6 +1145,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1039,9 +1156,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1052,6 +1171,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1064,6 +1184,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1074,6 +1195,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.186505", "start": 0, "type": "Literal", @@ -1086,6 +1208,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1097,6 +1220,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1107,9 +1231,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1120,6 +1246,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1132,6 +1259,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1142,6 +1270,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.157636", "start": 0, "type": "Literal", @@ -1155,6 +1284,7 @@ description: Result of parsing gear-rack.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.110378", "start": 0, "type": "Literal", @@ -1166,6 +1296,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1173,6 +1304,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1183,9 +1315,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1196,6 +1330,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1208,6 +1343,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1218,6 +1354,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.329118", "start": 0, "type": "Literal", @@ -1231,6 +1368,7 @@ description: Result of parsing gear-rack.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.904244", "start": 0, "type": "Literal", @@ -1242,6 +1380,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1249,6 +1388,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1259,9 +1399,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1272,6 +1414,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1284,6 +1427,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1294,6 +1438,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.157636", "start": 0, "type": "Literal", @@ -1307,6 +1452,7 @@ description: Result of parsing gear-rack.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.110378", "start": 0, "type": "Literal", @@ -1318,6 +1464,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1325,6 +1472,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1335,9 +1483,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1348,19 +1498,23 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1371,6 +1525,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1383,6 +1538,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1391,9 +1547,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1409,9 +1567,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1422,6 +1582,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1430,15 +1591,18 @@ description: Result of parsing gear-rack.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1448,9 +1612,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "toothSketch", "start": 0, "type": "Identifier" @@ -1462,6 +1628,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1469,20 +1636,24 @@ description: Result of parsing gear-rack.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1495,6 +1666,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teeth", "start": 0, "type": "Identifier" @@ -1502,13 +1674,16 @@ description: Result of parsing gear-rack.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tooth", "start": 0, "type": "Identifier" @@ -1519,6 +1694,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1531,6 +1707,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1541,6 +1718,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -1553,6 +1731,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1565,6 +1744,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1576,6 +1756,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1586,6 +1767,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -1593,6 +1775,7 @@ description: Result of parsing gear-rack.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.570796", "start": 0, "type": "Literal", @@ -1608,6 +1791,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1615,6 +1799,7 @@ description: Result of parsing gear-rack.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "63", "start": 0, "type": "Literal", @@ -1630,9 +1815,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -1643,6 +1830,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1651,12 +1839,14 @@ description: Result of parsing gear-rack.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1673,11 +1863,13 @@ description: Result of parsing gear-rack.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1695,6 +1887,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endCapTooth", "start": 0, "type": "Identifier" @@ -1702,13 +1895,16 @@ description: Result of parsing gear-rack.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1719,6 +1915,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1726,9 +1923,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1746,6 +1945,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1761,9 +1961,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1775,15 +1977,18 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1800,6 +2005,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.849525", "start": 0, "type": "Literal", @@ -1811,6 +2017,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1821,9 +2028,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1834,6 +2043,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1846,6 +2056,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1856,6 +2067,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.314524", "start": 0, "type": "Literal", @@ -1869,6 +2081,7 @@ description: Result of parsing gear-rack.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.864147", "start": 0, "type": "Literal", @@ -1880,6 +2093,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1887,6 +2101,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1897,9 +2112,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1910,6 +2127,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1922,6 +2140,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1932,6 +2151,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.157636", "start": 0, "type": "Literal", @@ -1945,6 +2165,7 @@ description: Result of parsing gear-rack.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.110378", "start": 0, "type": "Literal", @@ -1956,6 +2177,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1963,6 +2185,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1973,9 +2196,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1986,6 +2211,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1998,6 +2224,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2013,9 +2240,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2027,15 +2256,18 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2053,9 +2285,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minHeight", "start": 0, "type": "Identifier" @@ -2067,6 +2301,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2077,9 +2312,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2090,19 +2327,23 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2113,6 +2354,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2125,6 +2367,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2133,9 +2376,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2151,9 +2396,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2164,6 +2411,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2172,12 +2420,14 @@ description: Result of parsing gear-rack.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2194,11 +2444,13 @@ description: Result of parsing gear-rack.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2211,6 +2463,7 @@ description: Result of parsing gear-rack.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endCapTooth2", "start": 0, "type": "Identifier" @@ -2218,13 +2471,16 @@ description: Result of parsing gear-rack.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2235,6 +2491,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2242,9 +2499,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2262,6 +2521,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2276,9 +2536,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2288,10 +2550,12 @@ description: Result of parsing gear-rack.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2308,6 +2572,7 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.849525", "start": 0, "type": "Literal", @@ -2319,6 +2584,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2329,9 +2595,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2342,6 +2610,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2354,6 +2623,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2365,6 +2635,7 @@ description: Result of parsing gear-rack.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.314524", "start": 0, "type": "Literal", @@ -2376,6 +2647,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2385,6 +2657,7 @@ description: Result of parsing gear-rack.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.864147", "start": 0, "type": "Literal", @@ -2396,6 +2669,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2403,6 +2677,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2413,9 +2688,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2426,6 +2703,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2438,6 +2716,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2449,6 +2728,7 @@ description: Result of parsing gear-rack.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.157636", "start": 0, "type": "Literal", @@ -2460,6 +2740,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2469,6 +2750,7 @@ description: Result of parsing gear-rack.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.110378", "start": 0, "type": "Literal", @@ -2480,6 +2762,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2487,6 +2770,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2497,9 +2781,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2510,6 +2796,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2522,6 +2809,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2536,9 +2824,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2548,10 +2838,12 @@ description: Result of parsing gear-rack.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2569,9 +2861,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minHeight", "start": 0, "type": "Identifier" @@ -2583,6 +2877,7 @@ description: Result of parsing gear-rack.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2593,9 +2888,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2606,19 +2903,23 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2629,6 +2930,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2641,6 +2943,7 @@ description: Result of parsing gear-rack.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2649,9 +2952,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2667,9 +2972,11 @@ description: Result of parsing gear-rack.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2680,6 +2987,7 @@ description: Result of parsing gear-rack.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2688,15 +2996,18 @@ description: Result of parsing gear-rack.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2708,9 +3019,11 @@ description: Result of parsing gear-rack.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2729,19 +3042,23 @@ description: Result of parsing gear-rack.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -2758,15 +3075,18 @@ description: Result of parsing gear-rack.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2782,12 +3102,14 @@ description: Result of parsing gear-rack.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/ast.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/ast.snap index b3fb433ec..962ad7443 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "42.0", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.0", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.15", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.5", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOffset", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.8", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magDepth", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.4", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -318,6 +354,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -325,6 +362,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -334,11 +372,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -351,6 +391,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -365,9 +406,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -377,14 +420,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -398,14 +444,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -419,11 +468,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -441,6 +492,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -456,6 +508,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -463,13 +516,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -480,6 +536,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -487,9 +544,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -507,6 +566,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -517,6 +577,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -529,6 +590,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -540,6 +602,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -550,9 +613,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -563,6 +628,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -575,6 +641,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -583,9 +650,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -601,9 +670,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -614,6 +685,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -626,6 +698,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -634,6 +707,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -645,6 +719,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -656,6 +731,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -664,9 +740,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -682,9 +760,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -695,6 +775,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -707,6 +788,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -716,9 +798,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -730,6 +814,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -741,9 +826,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -754,6 +841,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -766,6 +854,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -774,6 +863,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -785,6 +875,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -796,6 +887,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -804,9 +896,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -822,9 +916,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -835,19 +931,23 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -858,6 +958,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -866,15 +967,18 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -884,9 +988,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -898,6 +1004,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -905,16 +1012,19 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -926,11 +1036,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -948,6 +1060,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleSide", "start": 0, "type": "Identifier" @@ -959,6 +1072,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -970,9 +1084,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -982,6 +1098,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -990,9 +1107,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1002,10 +1121,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1029,9 +1150,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1042,17 +1165,21 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1063,6 +1190,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1073,6 +1201,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1081,9 +1210,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1099,9 +1230,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1112,6 +1245,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1119,9 +1253,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1134,11 +1270,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1156,6 +1294,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sides", "start": 0, "type": "Identifier" @@ -1167,6 +1306,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1174,6 +1314,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1189,6 +1330,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1199,6 +1341,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1211,6 +1354,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1223,6 +1367,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1234,6 +1379,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1244,6 +1390,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1258,9 +1405,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1270,10 +1419,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1294,9 +1445,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1306,10 +1459,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1326,6 +1481,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1337,6 +1493,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1347,6 +1504,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1354,6 +1512,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1369,6 +1528,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1376,6 +1536,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1388,9 +1549,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -1401,6 +1564,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1408,9 +1572,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleSide", "start": 0, "type": "Identifier" @@ -1421,11 +1587,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1443,6 +1611,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis000", "start": 0, "type": "Identifier" @@ -1450,6 +1619,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1457,10 +1627,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1469,6 +1641,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1481,6 +1654,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1492,6 +1666,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1503,10 +1678,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1516,9 +1693,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1532,9 +1711,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1546,6 +1727,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1556,11 +1738,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1578,6 +1762,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleCorner", "start": 0, "type": "Identifier" @@ -1589,6 +1774,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1597,6 +1783,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1608,6 +1795,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1619,6 +1807,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1627,9 +1816,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis000", "start": 0, "type": "Identifier" @@ -1645,9 +1836,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1658,17 +1851,21 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1679,6 +1876,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1689,6 +1887,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1697,9 +1896,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1715,9 +1916,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1728,6 +1931,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1735,9 +1939,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1750,11 +1956,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1772,6 +1980,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corners", "start": 0, "type": "Identifier" @@ -1783,6 +1992,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1790,6 +2000,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1805,6 +2016,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1815,6 +2027,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1827,6 +2040,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1839,6 +2053,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1850,6 +2065,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1860,6 +2076,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1874,9 +2091,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1886,10 +2105,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1910,9 +2131,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1922,10 +2145,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1942,6 +2167,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1953,6 +2179,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1963,6 +2190,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1970,6 +2198,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1985,6 +2214,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1992,6 +2222,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2004,9 +2235,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -2017,6 +2250,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2024,9 +2258,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleCorner", "start": 0, "type": "Identifier" @@ -2037,11 +2273,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2059,6 +2297,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateSides", "start": 0, "type": "Identifier" @@ -2072,6 +2311,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2082,6 +2322,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2094,6 +2335,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2106,6 +2348,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2117,6 +2360,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2127,6 +2371,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2135,9 +2380,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -2153,6 +2400,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2161,9 +2409,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2179,9 +2429,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2192,6 +2444,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2199,9 +2452,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sides", "start": 0, "type": "Identifier" @@ -2219,6 +2474,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2229,6 +2485,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2241,6 +2498,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2253,6 +2511,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2264,6 +2523,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2274,6 +2534,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2282,9 +2543,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -2300,6 +2563,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2308,9 +2572,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2326,9 +2592,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2339,6 +2607,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2347,12 +2616,14 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2369,11 +2640,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2391,6 +2664,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateCorners", "start": 0, "type": "Identifier" @@ -2404,6 +2678,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2414,6 +2689,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2426,6 +2702,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2438,6 +2715,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2449,6 +2727,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2459,6 +2738,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2467,9 +2747,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -2485,6 +2767,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2493,9 +2776,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2511,9 +2796,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2524,6 +2811,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2531,9 +2819,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corners", "start": 0, "type": "Identifier" @@ -2551,6 +2841,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2561,6 +2852,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2573,6 +2865,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2585,6 +2878,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2596,6 +2890,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2606,6 +2901,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2614,9 +2910,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -2632,6 +2930,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2640,9 +2939,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2658,9 +2959,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2671,6 +2974,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2679,12 +2983,14 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2701,11 +3007,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2718,6 +3026,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCenterCutout", "start": 0, "type": "Identifier" @@ -2733,6 +3042,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetSketch", "start": 0, "type": "Identifier" @@ -2740,13 +3050,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2757,6 +3070,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2764,9 +3078,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2784,6 +3100,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2798,9 +3115,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -2810,14 +3129,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -2837,6 +3159,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2846,14 +3169,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -2869,6 +3195,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2879,9 +3206,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2892,6 +3221,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2904,6 +3234,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2920,6 +3251,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2929,14 +3261,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -2950,6 +3285,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2958,9 +3294,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -2970,14 +3308,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -2995,6 +3336,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3003,9 +3345,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3015,10 +3359,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3042,9 +3388,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3055,6 +3403,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3067,6 +3416,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -3074,6 +3424,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90.0", "start": 0, "type": "Literal", @@ -3089,6 +3440,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -3096,6 +3448,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -3111,6 +3464,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3122,9 +3476,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3134,10 +3490,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3157,9 +3515,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3170,6 +3530,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3182,6 +3543,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3199,6 +3561,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3208,14 +3571,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3229,6 +3595,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3237,9 +3604,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -3249,14 +3618,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -3274,6 +3646,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3282,9 +3655,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3294,10 +3669,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3317,6 +3694,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3328,9 +3706,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3341,6 +3721,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3353,6 +3734,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3364,9 +3746,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -3376,6 +3760,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3383,6 +3768,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3392,14 +3778,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3423,9 +3812,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3436,6 +3827,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3448,6 +3840,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3464,6 +3857,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3473,14 +3867,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3494,6 +3891,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3502,9 +3900,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -3514,14 +3914,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -3539,6 +3942,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3547,9 +3951,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3559,10 +3965,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3586,9 +3994,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3599,6 +4009,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3611,6 +4022,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -3618,6 +4030,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180.0", "start": 0, "type": "Literal", @@ -3633,6 +4046,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -3640,6 +4054,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90.0", "start": 0, "type": "Literal", @@ -3655,6 +4070,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3666,9 +4082,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3678,10 +4096,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3701,9 +4121,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3714,6 +4136,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3726,6 +4149,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3742,6 +4166,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3751,14 +4176,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3772,6 +4200,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3780,9 +4209,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -3792,14 +4223,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -3817,6 +4251,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3825,9 +4260,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3837,10 +4274,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3864,9 +4303,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3877,6 +4318,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3889,6 +4331,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3900,9 +4343,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -3912,6 +4357,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3919,6 +4365,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3928,14 +4375,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3959,9 +4409,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3972,6 +4424,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3984,6 +4437,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4001,6 +4455,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4010,14 +4465,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4031,6 +4489,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4039,9 +4498,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -4051,14 +4512,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -4076,6 +4540,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4084,9 +4549,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4096,10 +4563,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4119,6 +4588,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4130,9 +4600,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4143,6 +4615,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4155,6 +4628,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -4162,6 +4636,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270.0", "start": 0, "type": "Literal", @@ -4177,6 +4652,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -4184,6 +4660,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180.0", "start": 0, "type": "Literal", @@ -4199,6 +4676,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4210,9 +4688,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4222,10 +4702,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4245,9 +4727,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -4258,6 +4742,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4270,6 +4755,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4286,6 +4772,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4295,14 +4782,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4316,6 +4806,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4324,9 +4815,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -4336,14 +4829,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -4361,6 +4857,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4369,9 +4866,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4381,10 +4880,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4408,9 +4909,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4421,6 +4924,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4433,6 +4937,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4445,9 +4950,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4457,6 +4964,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4464,6 +4972,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4473,14 +4982,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4500,6 +5012,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4511,6 +5024,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4518,6 +5032,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4529,9 +5044,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4542,6 +5059,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4554,6 +5072,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4571,6 +5090,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4580,14 +5100,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4601,6 +5124,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4609,9 +5133,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -4621,14 +5147,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -4646,6 +5175,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4654,9 +5184,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4666,10 +5198,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4689,6 +5223,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4700,9 +5235,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4713,6 +5250,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4725,6 +5263,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -4732,6 +5271,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360.0", "start": 0, "type": "Literal", @@ -4747,6 +5287,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -4754,6 +5295,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270.0", "start": 0, "type": "Literal", @@ -4769,6 +5311,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4780,9 +5323,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4792,10 +5337,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4815,9 +5362,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -4828,6 +5377,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4840,6 +5390,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4857,6 +5408,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4866,14 +5418,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4887,6 +5442,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4895,9 +5451,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -4907,14 +5465,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -4932,6 +5493,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4940,9 +5502,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4952,10 +5516,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4975,6 +5541,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4986,9 +5553,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4999,6 +5568,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5011,6 +5581,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5023,9 +5594,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5035,6 +5608,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5042,6 +5616,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5051,14 +5626,17 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -5078,6 +5656,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5089,9 +5668,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5102,19 +5683,23 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5125,6 +5710,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5133,15 +5719,18 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5151,9 +5740,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetSketch", "start": 0, "type": "Identifier" @@ -5165,6 +5756,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -5172,16 +5764,19 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -5193,11 +5788,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5210,6 +5807,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetBase", "start": 0, "type": "Identifier" @@ -5225,6 +5823,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetBaseSketch", "start": 0, "type": "Identifier" @@ -5232,13 +5831,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5249,6 +5851,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5256,9 +5859,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -5276,6 +5881,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5286,6 +5892,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5298,6 +5905,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5309,6 +5917,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5319,9 +5928,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5332,6 +5943,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5344,6 +5956,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5352,9 +5965,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5370,6 +5985,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5377,6 +5993,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5388,9 +6005,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5401,6 +6020,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5413,6 +6033,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5421,9 +6042,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5439,6 +6062,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5446,6 +6070,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5457,9 +6082,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5470,6 +6097,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5482,18 +6110,22 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5504,12 +6136,14 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5521,6 +6155,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5528,6 +6163,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5539,9 +6175,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5552,6 +6190,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5564,6 +6203,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5571,6 +6211,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5582,9 +6223,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5595,6 +6238,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5607,18 +6251,22 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCenterCutout", "start": 0, "type": "Identifier" @@ -5629,6 +6277,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5636,9 +6285,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -5655,9 +6306,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -5668,6 +6321,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5676,15 +6330,18 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5694,9 +6351,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetBaseSketch", "start": 0, "type": "Identifier" @@ -5708,6 +6367,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -5715,16 +6375,19 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -5736,11 +6399,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -5758,6 +6423,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetsSketch", "start": 0, "type": "Identifier" @@ -5765,13 +6431,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5782,6 +6451,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5789,9 +6459,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -5809,6 +6481,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5823,9 +6496,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -5835,10 +6510,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5859,9 +6536,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -5871,10 +6550,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5890,6 +6571,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5900,6 +6582,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5911,9 +6594,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -5923,10 +6608,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5946,9 +6633,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5959,6 +6648,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5971,6 +6661,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5985,9 +6676,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5997,10 +6690,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6021,9 +6716,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -6033,10 +6730,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6052,6 +6751,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6062,6 +6762,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6069,6 +6770,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6084,6 +6786,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -6091,6 +6794,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -6106,6 +6810,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -6113,6 +6818,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -6125,9 +6831,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -6138,6 +6846,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6146,12 +6855,14 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6168,11 +6879,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6190,6 +6903,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetProfile", "start": 0, "type": "Identifier" @@ -6197,13 +6911,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetBase", "start": 0, "type": "Identifier" @@ -6214,6 +6931,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6221,9 +6939,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -6241,6 +6961,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -6249,9 +6970,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetsSketch", "start": 0, "type": "Identifier" @@ -6267,9 +6990,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -6280,6 +7005,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6288,12 +7014,14 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6310,11 +7038,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6327,6 +7057,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetHolesExtrude", "start": 0, "type": "Identifier" @@ -6338,6 +7069,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6347,9 +7079,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magDepth", "start": 0, "type": "Identifier" @@ -6361,6 +7095,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6372,9 +7107,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6385,6 +7122,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6392,9 +7130,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetProfile", "start": 0, "type": "Identifier" @@ -6405,11 +7145,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6422,6 +7164,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetHolesExtrudeFillets", "start": 0, "type": "Identifier" @@ -6433,6 +7176,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6441,9 +7185,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -6459,6 +7205,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -6467,13 +7214,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -6484,6 +7234,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6491,21 +7242,26 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetHolesExtrude", "start": 0, "type": "Identifier" @@ -6518,6 +7274,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch", "start": 0, "type": "Identifier", @@ -6530,6 +7287,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -6542,6 +7300,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line001", "start": 0, "type": "Identifier", @@ -6553,13 +7312,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -6570,6 +7332,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6577,21 +7340,26 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetHolesExtrude", "start": 0, "type": "Identifier" @@ -6604,6 +7372,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch", "start": 0, "type": "Identifier", @@ -6616,6 +7385,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -6628,6 +7398,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line001", "start": 0, "type": "Identifier", @@ -6639,13 +7410,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -6656,6 +7430,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6663,21 +7438,26 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetHolesExtrude", "start": 0, "type": "Identifier" @@ -6690,6 +7470,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch", "start": 0, "type": "Identifier", @@ -6702,6 +7483,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -6714,6 +7496,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line003", "start": 0, "type": "Identifier", @@ -6725,13 +7508,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -6742,6 +7528,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6749,21 +7536,26 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetHolesExtrude", "start": 0, "type": "Identifier" @@ -6776,6 +7568,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch", "start": 0, "type": "Identifier", @@ -6788,6 +7581,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -6800,6 +7594,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line003", "start": 0, "type": "Identifier", @@ -6812,6 +7607,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6822,9 +7618,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -6835,6 +7633,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6842,9 +7641,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetHolesExtrude", "start": 0, "type": "Identifier" @@ -6855,11 +7656,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6877,18 +7680,22 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetProfileNoMagnets", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetBase", "start": 0, "type": "Identifier" @@ -6899,6 +7706,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6909,6 +7717,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -6918,9 +7727,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magDepth", "start": 0, "type": "Identifier" @@ -6932,6 +7743,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6943,9 +7755,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -6956,6 +7770,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6963,9 +7778,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -6977,11 +7794,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6999,6 +7818,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCutoutExtrude", "start": 0, "type": "Identifier" @@ -7010,6 +7830,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7019,9 +7840,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magDepth", "start": 0, "type": "Identifier" @@ -7033,6 +7856,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7044,9 +7868,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7057,6 +7883,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7064,9 +7891,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetProfileNoMagnets", "start": 0, "type": "Identifier" @@ -7077,11 +7906,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -7099,6 +7930,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCutoutExtrudeFillets", "start": 0, "type": "Identifier" @@ -7110,6 +7942,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -7118,9 +7951,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -7136,6 +7971,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -7144,13 +7980,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -7161,6 +8000,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7168,21 +8008,26 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCutoutExtrude", "start": 0, "type": "Identifier" @@ -7195,6 +8040,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch", "start": 0, "type": "Identifier", @@ -7207,6 +8053,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -7219,6 +8066,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line001", "start": 0, "type": "Identifier", @@ -7230,13 +8078,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -7247,6 +8098,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7254,21 +8106,26 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCutoutExtrude", "start": 0, "type": "Identifier" @@ -7281,6 +8138,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch", "start": 0, "type": "Identifier", @@ -7293,6 +8151,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -7305,6 +8164,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line001", "start": 0, "type": "Identifier", @@ -7316,13 +8176,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -7333,6 +8196,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7340,21 +8204,26 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCutoutExtrude", "start": 0, "type": "Identifier" @@ -7367,6 +8236,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch", "start": 0, "type": "Identifier", @@ -7379,6 +8249,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -7391,6 +8262,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line003", "start": 0, "type": "Identifier", @@ -7402,13 +8274,16 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -7419,6 +8294,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7426,21 +8302,26 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCutoutExtrude", "start": 0, "type": "Identifier" @@ -7453,6 +8334,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch", "start": 0, "type": "Identifier", @@ -7465,6 +8347,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -7477,6 +8360,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line003", "start": 0, "type": "Identifier", @@ -7489,6 +8373,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7499,9 +8384,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -7512,6 +8399,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7519,9 +8407,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCutoutExtrude", "start": 0, "type": "Identifier" @@ -7532,11 +8422,13 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -7558,6 +8450,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -7568,6 +8461,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7580,6 +8474,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7592,6 +8487,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7603,6 +8499,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7613,6 +8510,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -7621,9 +8519,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -7639,6 +8539,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -7647,9 +8548,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -7665,9 +8568,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -7678,6 +8583,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7685,9 +8591,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetHolesExtrudeFillets", "start": 0, "type": "Identifier" @@ -7705,6 +8613,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -7715,6 +8624,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7727,6 +8637,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7739,6 +8650,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7750,6 +8662,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7760,6 +8673,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -7768,9 +8682,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -7786,6 +8702,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -7794,9 +8711,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -7812,9 +8731,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -7825,6 +8746,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7833,12 +8755,14 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7855,6 +8779,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "preComments": [ "", "", @@ -7876,6 +8801,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -7886,6 +8812,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7898,6 +8825,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7910,6 +8838,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7921,6 +8850,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7931,6 +8861,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -7939,9 +8870,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -7957,6 +8890,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -7965,9 +8899,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -7983,9 +8919,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -7996,6 +8934,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8003,9 +8942,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magnetCutoutExtrudeFillets", "start": 0, "type": "Identifier" @@ -8023,6 +8964,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8033,6 +8975,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8045,6 +8988,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -8057,6 +9001,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8068,6 +9013,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8078,6 +9024,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -8086,9 +9033,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -8104,6 +9053,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -8112,9 +9062,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -8130,9 +9082,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -8143,6 +9097,7 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8151,10 +9106,12 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -8166,9 +9123,11 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -8187,19 +9146,23 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -8216,15 +9179,18 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -8240,12 +9206,14 @@ description: Result of parsing gridfinity-baseplate-magnets.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/program_memory.snap index 612fd199d..b69717643 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate-magnets/program_memory.snap @@ -10960,6 +10960,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -10973,6 +10974,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -10986,6 +10988,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -10999,6 +11002,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" @@ -11022,6 +11026,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -11047,6 +11052,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -11072,6 +11078,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -11097,6 +11104,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" @@ -11206,6 +11214,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -11219,6 +11228,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -11232,6 +11242,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -11245,6 +11256,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" @@ -11268,6 +11280,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -11293,6 +11306,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -11318,6 +11332,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -11343,6 +11358,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" @@ -11526,6 +11542,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -11539,6 +11556,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -11552,6 +11570,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -11565,6 +11584,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" @@ -11588,6 +11608,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -11613,6 +11634,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -11638,6 +11660,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -11663,6 +11686,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" @@ -11772,6 +11796,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -11785,6 +11810,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -11798,6 +11824,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -11811,6 +11838,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" @@ -11834,6 +11862,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -11859,6 +11888,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -11884,6 +11914,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -11909,6 +11940,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" @@ -12096,6 +12128,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -12121,6 +12154,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -12146,6 +12180,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -12171,6 +12206,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" @@ -12276,6 +12312,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4300, "end": 4308, + "moduleId": 0, "start": 4300, "type": "TagDeclarator", "value": "line001" @@ -12301,6 +12338,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4349, "end": 4357, + "moduleId": 0, "start": 4349, "type": "TagDeclarator", "value": "line002" @@ -12326,6 +12364,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4410, "end": 4418, + "moduleId": 0, "start": 4410, "type": "TagDeclarator", "value": "line003" @@ -12351,6 +12390,7 @@ description: Variables in memory after executing gridfinity-baseplate-magnets.kc "tag": { "commentStart": 4439, "end": 4447, + "moduleId": 0, "start": 4439, "type": "TagDeclarator", "value": "line004" diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate/ast.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate/ast.snap index d2714f70e..f00e7d821 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-baseplate/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing gridfinity-baseplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "42.0", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing gridfinity-baseplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing gridfinity-baseplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.0", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing gridfinity-baseplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing gridfinity-baseplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing gridfinity-baseplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing gridfinity-baseplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing gridfinity-baseplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing gridfinity-baseplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.15", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing gridfinity-baseplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing gridfinity-baseplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing gridfinity-baseplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -219,6 +243,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -226,6 +251,7 @@ description: Result of parsing gridfinity-baseplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -235,11 +261,13 @@ description: Result of parsing gridfinity-baseplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -252,6 +280,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -266,9 +295,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -278,14 +309,17 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -299,14 +333,17 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -320,11 +357,13 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -342,6 +381,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -357,6 +397,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -364,13 +405,16 @@ description: Result of parsing gridfinity-baseplate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -381,6 +425,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -388,9 +433,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -408,6 +455,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -418,6 +466,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -430,6 +479,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -441,6 +491,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -451,9 +502,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -464,6 +517,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -476,6 +530,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -484,9 +539,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -502,9 +559,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -515,6 +574,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -527,6 +587,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -535,6 +596,7 @@ description: Result of parsing gridfinity-baseplate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -546,6 +608,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -557,6 +620,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -565,9 +629,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -583,9 +649,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -596,6 +664,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -608,6 +677,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -617,9 +687,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -631,6 +703,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -642,9 +715,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -655,6 +730,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -667,6 +743,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -675,6 +752,7 @@ description: Result of parsing gridfinity-baseplate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -686,6 +764,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -697,6 +776,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -705,9 +785,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -723,9 +805,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -736,19 +820,23 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -759,6 +847,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -767,15 +856,18 @@ description: Result of parsing gridfinity-baseplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -785,9 +877,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -799,6 +893,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -806,16 +901,19 @@ description: Result of parsing gridfinity-baseplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -827,11 +925,13 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -849,6 +949,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleSide", "start": 0, "type": "Identifier" @@ -860,6 +961,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -871,9 +973,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -883,6 +987,7 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -891,9 +996,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -903,10 +1010,12 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -930,9 +1039,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -943,17 +1054,21 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -964,6 +1079,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -974,6 +1090,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -982,9 +1099,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1000,9 +1119,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1013,6 +1134,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1020,9 +1142,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1035,11 +1159,13 @@ description: Result of parsing gridfinity-baseplate.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1057,6 +1183,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sides", "start": 0, "type": "Identifier" @@ -1068,6 +1195,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1075,6 +1203,7 @@ description: Result of parsing gridfinity-baseplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1090,6 +1219,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1100,6 +1230,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1112,6 +1243,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1124,6 +1256,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1135,6 +1268,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1145,6 +1279,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1159,9 +1294,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1171,10 +1308,12 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1195,9 +1334,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1207,10 +1348,12 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1227,6 +1370,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1238,6 +1382,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1248,6 +1393,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1255,6 +1401,7 @@ description: Result of parsing gridfinity-baseplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1270,6 +1417,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1277,6 +1425,7 @@ description: Result of parsing gridfinity-baseplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1289,9 +1438,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -1302,6 +1453,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1309,9 +1461,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleSide", "start": 0, "type": "Identifier" @@ -1322,11 +1476,13 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1344,6 +1500,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis000", "start": 0, "type": "Identifier" @@ -1351,6 +1508,7 @@ description: Result of parsing gridfinity-baseplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1358,10 +1516,12 @@ description: Result of parsing gridfinity-baseplate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1370,6 +1530,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1382,6 +1543,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1393,6 +1555,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1404,10 +1567,12 @@ description: Result of parsing gridfinity-baseplate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1417,9 +1582,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1433,9 +1600,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1447,6 +1616,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1457,11 +1627,13 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1479,6 +1651,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleCorner", "start": 0, "type": "Identifier" @@ -1490,6 +1663,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1498,6 +1672,7 @@ description: Result of parsing gridfinity-baseplate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1509,6 +1684,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1520,6 +1696,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1528,9 +1705,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis000", "start": 0, "type": "Identifier" @@ -1546,9 +1725,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1559,17 +1740,21 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1580,6 +1765,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1590,6 +1776,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1598,9 +1785,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1616,9 +1805,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1629,6 +1820,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1636,9 +1828,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1651,11 +1845,13 @@ description: Result of parsing gridfinity-baseplate.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1673,6 +1869,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corners", "start": 0, "type": "Identifier" @@ -1684,6 +1881,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1691,6 +1889,7 @@ description: Result of parsing gridfinity-baseplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1706,6 +1905,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1716,6 +1916,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1728,6 +1929,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1740,6 +1942,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1751,6 +1954,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1761,6 +1965,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1775,9 +1980,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1787,10 +1994,12 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1811,9 +2020,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1823,10 +2034,12 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1843,6 +2056,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1854,6 +2068,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1864,6 +2079,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1871,6 +2087,7 @@ description: Result of parsing gridfinity-baseplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1886,6 +2103,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1893,6 +2111,7 @@ description: Result of parsing gridfinity-baseplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1905,9 +2124,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -1918,6 +2139,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1925,9 +2147,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleCorner", "start": 0, "type": "Identifier" @@ -1938,11 +2162,13 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1960,6 +2186,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateSides", "start": 0, "type": "Identifier" @@ -1973,6 +2200,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1983,6 +2211,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1995,6 +2224,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2007,6 +2237,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2018,6 +2249,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2028,6 +2260,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2036,9 +2269,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -2054,6 +2289,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2062,9 +2298,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2080,9 +2318,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2093,6 +2333,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2100,9 +2341,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sides", "start": 0, "type": "Identifier" @@ -2120,6 +2363,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2130,6 +2374,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2142,6 +2387,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2154,6 +2400,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2165,6 +2412,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2175,6 +2423,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2183,9 +2432,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -2201,6 +2452,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2209,9 +2461,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2227,9 +2481,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2240,6 +2496,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2248,12 +2505,14 @@ description: Result of parsing gridfinity-baseplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2270,11 +2529,13 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2292,6 +2553,7 @@ description: Result of parsing gridfinity-baseplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateCorners", "start": 0, "type": "Identifier" @@ -2305,6 +2567,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2315,6 +2578,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2327,6 +2591,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2339,6 +2604,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2350,6 +2616,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2360,6 +2627,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2368,9 +2636,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -2386,6 +2656,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2394,9 +2665,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2412,9 +2685,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2425,6 +2700,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2432,9 +2708,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corners", "start": 0, "type": "Identifier" @@ -2452,6 +2730,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2462,6 +2741,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2474,6 +2754,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2486,6 +2767,7 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2497,6 +2779,7 @@ description: Result of parsing gridfinity-baseplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2507,6 +2790,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2515,9 +2799,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -2533,6 +2819,7 @@ description: Result of parsing gridfinity-baseplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2541,9 +2828,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2559,9 +2848,11 @@ description: Result of parsing gridfinity-baseplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2572,6 +2863,7 @@ description: Result of parsing gridfinity-baseplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2580,15 +2872,18 @@ description: Result of parsing gridfinity-baseplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2600,9 +2895,11 @@ description: Result of parsing gridfinity-baseplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2621,19 +2918,23 @@ description: Result of parsing gridfinity-baseplate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -2650,15 +2951,18 @@ description: Result of parsing gridfinity-baseplate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2674,12 +2978,14 @@ description: Result of parsing gridfinity-baseplate.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/ast.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/ast.snap index 475e2ab18..5cb70e497 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41.5", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binHeight", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.0", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.95", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binThk", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.75", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.15", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +349,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -320,6 +357,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.5", "start": 0, "type": "Literal", @@ -329,11 +367,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -346,6 +386,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOffset", "start": 0, "type": "Identifier" @@ -353,6 +394,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.8", "start": 0, "type": "Literal", @@ -362,11 +404,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -379,6 +423,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magDepth", "start": 0, "type": "Identifier" @@ -386,6 +431,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.4", "start": 0, "type": "Literal", @@ -395,11 +441,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -412,6 +460,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipRadius", "start": 0, "type": "Identifier" @@ -419,6 +468,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -428,11 +478,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -445,6 +497,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep1", "start": 0, "type": "Identifier" @@ -452,6 +505,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.4", "start": 0, "type": "Literal", @@ -461,11 +515,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -478,6 +534,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep2", "start": 0, "type": "Identifier" @@ -485,6 +542,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -494,11 +552,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -511,6 +571,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep3", "start": 0, "type": "Identifier" @@ -518,6 +579,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -527,11 +589,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -544,6 +608,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep4", "start": 0, "type": "Identifier" @@ -551,6 +616,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -560,11 +626,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -577,6 +645,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep5", "start": 0, "type": "Identifier" @@ -584,6 +653,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -593,11 +663,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -610,6 +682,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -617,6 +690,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -626,11 +700,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -648,6 +724,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -655,6 +732,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -664,11 +742,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -681,6 +761,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinHeight", "start": 0, "type": "Identifier" @@ -688,6 +769,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -697,11 +779,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -714,6 +798,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -728,9 +813,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -740,14 +827,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -761,14 +851,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -782,11 +875,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -804,6 +899,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipHeight", "start": 0, "type": "Identifier" @@ -824,9 +920,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep1", "start": 0, "type": "Identifier" @@ -836,14 +934,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep2", "start": 0, "type": "Identifier" @@ -857,14 +958,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep3", "start": 0, "type": "Identifier" @@ -878,14 +982,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep4", "start": 0, "type": "Identifier" @@ -899,14 +1006,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep5", "start": 0, "type": "Identifier" @@ -920,11 +1030,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -937,6 +1049,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -952,6 +1065,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -959,13 +1073,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -976,6 +1093,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -983,9 +1101,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -1003,6 +1123,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1017,9 +1138,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -1029,14 +1152,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -1053,6 +1179,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1064,6 +1191,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1074,9 +1202,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1087,6 +1217,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1099,6 +1230,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1107,9 +1239,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1125,9 +1259,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1138,6 +1274,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1150,6 +1287,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1159,9 +1297,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -1173,6 +1313,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1184,9 +1325,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1197,6 +1340,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1209,6 +1353,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1217,6 +1362,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -1228,6 +1374,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1239,6 +1386,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -1247,9 +1395,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -1265,9 +1415,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1278,6 +1430,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1290,6 +1443,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1299,9 +1453,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -1313,6 +1469,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1324,9 +1481,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1337,6 +1496,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1349,6 +1509,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1357,6 +1518,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -1368,6 +1530,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1379,6 +1542,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -1387,9 +1551,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -1405,9 +1571,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1418,19 +1586,23 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1441,6 +1613,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1449,15 +1622,18 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1467,9 +1643,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -1481,6 +1659,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1488,16 +1667,19 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -1509,11 +1691,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1531,6 +1715,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleSide", "start": 0, "type": "Identifier" @@ -1542,6 +1727,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1553,9 +1739,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1565,6 +1753,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1573,9 +1762,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1585,10 +1776,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1612,9 +1805,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1625,17 +1820,21 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1646,6 +1845,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1656,6 +1856,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1667,9 +1868,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1679,14 +1882,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -1706,9 +1912,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1719,6 +1927,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1726,9 +1935,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1741,11 +1952,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1763,6 +1976,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sides", "start": 0, "type": "Identifier" @@ -1774,6 +1988,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1781,6 +1996,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1796,6 +2012,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1806,6 +2023,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1818,6 +2036,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1830,6 +2049,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1841,6 +2061,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1851,6 +2072,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1868,9 +2090,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1880,6 +2104,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1887,6 +2112,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1896,14 +2122,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -1921,10 +2150,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1948,9 +2179,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1960,6 +2193,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1967,6 +2201,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1976,14 +2211,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2001,10 +2239,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2021,6 +2261,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2032,6 +2273,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2042,6 +2284,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2049,6 +2292,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2064,6 +2308,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2071,6 +2316,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2083,9 +2329,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -2096,6 +2344,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2103,9 +2352,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleSide", "start": 0, "type": "Identifier" @@ -2116,11 +2367,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2138,6 +2391,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis000", "start": 0, "type": "Identifier" @@ -2145,6 +2399,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2152,10 +2407,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2164,6 +2421,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2176,6 +2434,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2187,6 +2446,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2198,10 +2458,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2214,9 +2476,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -2226,14 +2490,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2254,9 +2521,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -2266,14 +2535,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2289,6 +2561,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2299,11 +2572,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2321,6 +2596,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleCorner", "start": 0, "type": "Identifier" @@ -2332,6 +2608,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2340,6 +2617,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2351,6 +2629,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2362,6 +2641,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2370,9 +2650,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis000", "start": 0, "type": "Identifier" @@ -2388,9 +2670,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -2401,17 +2685,21 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2422,6 +2710,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2432,6 +2721,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2443,9 +2733,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -2455,14 +2747,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2482,9 +2777,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2495,6 +2792,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2502,9 +2800,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -2517,11 +2817,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2539,6 +2841,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corners", "start": 0, "type": "Identifier" @@ -2550,6 +2853,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2557,6 +2861,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2572,6 +2877,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2582,6 +2888,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2594,6 +2901,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2606,6 +2914,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2617,6 +2926,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2627,6 +2937,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2644,9 +2955,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2656,6 +2969,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2663,6 +2977,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2672,14 +2987,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2697,10 +3015,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2724,9 +3044,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2736,6 +3058,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2743,6 +3066,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2752,14 +3076,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2777,10 +3104,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2797,6 +3126,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2808,6 +3138,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2818,6 +3149,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2825,6 +3157,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2840,6 +3173,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2847,6 +3181,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2859,9 +3194,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -2872,6 +3209,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2879,9 +3217,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleCorner", "start": 0, "type": "Identifier" @@ -2892,11 +3232,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2914,6 +3256,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleBinFill", "start": 0, "type": "Identifier" @@ -2921,13 +3264,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2938,6 +3284,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2945,9 +3292,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2965,6 +3314,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2979,9 +3329,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -2991,14 +3343,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -3019,9 +3374,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -3031,14 +3388,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -3054,6 +3414,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3064,9 +3425,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3077,6 +3440,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3089,6 +3453,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3103,9 +3468,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -3115,6 +3482,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3123,9 +3491,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -3135,10 +3505,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3159,6 +3531,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3170,6 +3543,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3180,6 +3554,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3187,6 +3562,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3198,9 +3574,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3211,6 +3589,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3223,6 +3602,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3233,6 +3613,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3249,9 +3630,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -3261,6 +3644,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3269,9 +3653,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -3281,10 +3667,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3304,6 +3692,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3314,6 +3703,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3321,6 +3711,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3332,9 +3723,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3345,6 +3738,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3357,18 +3751,22 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3379,12 +3777,14 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3396,6 +3796,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3403,6 +3804,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3414,9 +3816,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3427,6 +3831,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3439,6 +3844,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3446,6 +3852,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3457,9 +3864,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3470,6 +3879,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3482,6 +3892,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3490,9 +3901,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3508,9 +3921,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3521,6 +3936,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3533,6 +3949,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3541,9 +3958,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -3559,6 +3978,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -3567,13 +3987,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -3584,6 +4007,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3591,9 +4015,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line000", "start": 0, "type": "Identifier" @@ -3605,13 +4031,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -3622,6 +4051,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3629,9 +4059,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line000", "start": 0, "type": "Identifier" @@ -3643,13 +4075,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -3660,6 +4095,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3667,9 +4103,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line002", "start": 0, "type": "Identifier" @@ -3681,13 +4119,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -3698,6 +4139,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3705,9 +4147,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line002", "start": 0, "type": "Identifier" @@ -3720,6 +4164,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3730,9 +4175,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -3743,6 +4190,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3751,15 +4199,18 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3772,6 +4223,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magCutout000", "start": 0, "type": "Identifier" @@ -3785,6 +4237,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3793,9 +4246,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -3811,9 +4266,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3824,6 +4281,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3831,9 +4289,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleBinFill", "start": 0, "type": "Identifier" @@ -3851,6 +4311,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3869,9 +4330,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOffset", "start": 0, "type": "Identifier" @@ -3883,19 +4346,23 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -3909,14 +4376,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -3940,9 +4410,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOffset", "start": 0, "type": "Identifier" @@ -3952,14 +4424,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -3973,14 +4448,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -3996,6 +4474,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4006,6 +4485,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4017,9 +4497,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -4029,10 +4511,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4052,9 +4536,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4065,6 +4551,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4077,6 +4564,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -4084,6 +4572,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -4099,6 +4588,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4117,9 +4607,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4131,11 +4623,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4143,6 +4637,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4152,14 +4647,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -4177,10 +4675,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4204,9 +4704,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4216,6 +4718,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4223,6 +4726,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4232,14 +4736,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -4257,10 +4764,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4276,6 +4785,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4286,6 +4796,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4293,6 +4804,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4308,6 +4820,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -4315,6 +4828,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -4327,9 +4841,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -4340,6 +4856,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4352,6 +4869,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4361,9 +4879,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magDepth", "start": 0, "type": "Identifier" @@ -4375,6 +4895,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4386,9 +4907,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4399,6 +4922,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4407,12 +4931,14 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4429,11 +4955,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4446,6 +4974,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binSides", "start": 0, "type": "Identifier" @@ -4459,6 +4988,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4469,6 +4999,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4481,6 +5012,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4493,6 +5025,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4504,6 +5037,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4514,6 +5048,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4522,9 +5057,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -4540,6 +5077,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4551,9 +5089,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4563,6 +5103,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4571,9 +5112,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -4583,10 +5126,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4610,9 +5155,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -4623,6 +5170,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4630,9 +5178,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sides", "start": 0, "type": "Identifier" @@ -4650,6 +5200,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4660,6 +5211,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4672,6 +5224,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4684,6 +5237,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4695,6 +5249,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4705,6 +5260,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4713,9 +5269,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -4731,6 +5289,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4742,9 +5301,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4754,6 +5315,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4762,9 +5324,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -4774,10 +5338,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4801,9 +5367,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -4814,6 +5382,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4822,12 +5391,14 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4844,11 +5415,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4861,6 +5434,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binCorners", "start": 0, "type": "Identifier" @@ -4874,6 +5448,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4884,6 +5459,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4896,6 +5472,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4908,6 +5485,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4919,6 +5497,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4929,6 +5508,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4937,9 +5517,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -4955,6 +5537,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4966,9 +5549,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4978,6 +5563,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4986,9 +5572,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -4998,10 +5586,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5025,9 +5615,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -5038,6 +5630,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5045,9 +5638,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corners", "start": 0, "type": "Identifier" @@ -5065,6 +5660,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5075,6 +5671,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5087,6 +5684,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -5099,6 +5697,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5110,6 +5709,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5120,6 +5720,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -5128,9 +5729,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -5146,6 +5749,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -5157,9 +5761,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5169,6 +5775,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5177,9 +5784,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -5189,10 +5798,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5216,9 +5827,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -5229,6 +5842,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5237,12 +5851,14 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5259,11 +5875,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5276,6 +5894,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binFill", "start": 0, "type": "Identifier" @@ -5289,6 +5908,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5299,6 +5919,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -5311,6 +5932,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5323,6 +5945,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5334,6 +5957,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5344,6 +5968,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -5352,9 +5977,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -5370,6 +5997,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -5381,9 +6009,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5393,6 +6023,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5401,9 +6032,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -5413,10 +6046,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5440,9 +6075,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -5453,6 +6090,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5460,9 +6098,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleBinFill", "start": 0, "type": "Identifier" @@ -5480,6 +6120,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5490,6 +6131,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5502,6 +6144,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -5514,6 +6157,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5525,6 +6169,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5535,6 +6180,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -5543,9 +6189,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -5561,6 +6209,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -5572,9 +6221,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5584,6 +6235,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5592,9 +6244,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -5604,10 +6258,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5631,9 +6287,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -5644,6 +6302,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5652,15 +6311,18 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5673,6 +6335,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTop", "start": 0, "type": "Identifier" @@ -5680,13 +6343,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5697,6 +6363,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5707,6 +6374,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5715,9 +6383,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -5733,9 +6403,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5746,6 +6418,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5753,9 +6426,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -5774,6 +6449,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5784,6 +6460,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5796,6 +6473,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5807,6 +6485,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5817,9 +6496,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5830,6 +6511,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5842,6 +6524,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5856,9 +6539,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5868,6 +6553,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5875,6 +6561,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5884,14 +6571,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -5909,14 +6599,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -5936,6 +6629,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5943,6 +6637,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5954,9 +6649,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5967,6 +6664,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5979,6 +6677,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5993,9 +6692,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -6005,6 +6706,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -6012,6 +6714,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6021,14 +6724,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -6046,14 +6752,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -6073,6 +6782,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -6080,6 +6790,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -6091,9 +6802,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6104,6 +6817,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6116,18 +6830,22 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -6138,12 +6856,14 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6155,6 +6875,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -6162,6 +6883,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -6173,9 +6895,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6186,6 +6910,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6198,6 +6923,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -6205,6 +6931,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -6216,9 +6943,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -6229,6 +6958,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6241,6 +6971,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6252,9 +6983,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binHeight", "start": 0, "type": "Identifier" @@ -6264,14 +6997,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinHeight", "start": 0, "type": "Identifier" @@ -6291,9 +7027,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6304,6 +7042,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6316,6 +7055,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6324,9 +7064,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -6342,6 +7084,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -6350,13 +7093,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -6367,6 +7113,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6374,9 +7121,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line010", "start": 0, "type": "Identifier" @@ -6388,13 +7137,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -6405,6 +7157,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6412,9 +7165,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line010", "start": 0, "type": "Identifier" @@ -6426,13 +7181,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -6443,6 +7201,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6450,9 +7209,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line012", "start": 0, "type": "Identifier" @@ -6464,13 +7225,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -6481,6 +7245,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6488,9 +7253,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line012", "start": 0, "type": "Identifier" @@ -6503,6 +7270,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6513,9 +7281,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -6526,6 +7296,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6538,6 +7309,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -6549,9 +7321,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -6563,6 +7337,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6573,6 +7348,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -6581,9 +7357,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binThk", "start": 0, "type": "Identifier" @@ -6599,9 +7377,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shell", "start": 0, "type": "Identifier" @@ -6612,6 +7392,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6620,12 +7401,14 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6642,11 +7425,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6659,6 +7444,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipFace", "start": 0, "type": "Identifier" @@ -6674,6 +7460,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -6681,13 +7468,16 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6698,6 +7488,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6705,9 +7496,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -6725,6 +7518,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6735,6 +7529,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6747,6 +7542,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6758,6 +7554,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6768,9 +7565,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6781,6 +7580,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6793,6 +7593,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6803,6 +7604,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -6815,6 +7617,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.792893", "start": 0, "type": "Literal", @@ -6826,6 +7629,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6836,6 +7640,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -6843,6 +7648,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -6854,9 +7660,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6867,6 +7675,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6879,6 +7688,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -6886,6 +7696,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180.0", "start": 0, "type": "Literal", @@ -6901,6 +7712,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -6908,6 +7720,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45.0", "start": 0, "type": "Literal", @@ -6923,6 +7736,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6930,6 +7744,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.500000", "start": 0, "type": "Literal", @@ -6945,6 +7760,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -6952,6 +7768,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -6963,9 +7780,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -6976,6 +7795,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6988,6 +7808,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6998,6 +7819,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.046447", "start": 0, "type": "Literal", @@ -7011,6 +7833,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.046447", "start": 0, "type": "Literal", @@ -7022,6 +7845,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7029,6 +7853,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7039,6 +7864,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -7046,6 +7872,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -7057,9 +7884,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7070,6 +7899,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7082,6 +7912,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7091,9 +7922,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep4", "start": 0, "type": "Identifier" @@ -7105,6 +7938,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7116,9 +7950,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7129,6 +7965,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7141,6 +7978,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7149,6 +7987,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -7160,6 +7999,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7171,6 +8011,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -7179,9 +8020,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep3", "start": 0, "type": "Identifier" @@ -7197,9 +8040,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -7210,6 +8055,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7222,6 +8068,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7231,9 +8078,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep2", "start": 0, "type": "Identifier" @@ -7245,6 +8094,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7256,9 +8106,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7269,6 +8121,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7281,6 +8134,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7289,6 +8143,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "135", "start": 0, "type": "Literal", @@ -7300,6 +8155,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7311,6 +8167,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -7319,9 +8176,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipStep1", "start": 0, "type": "Identifier" @@ -7337,9 +8196,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -7350,19 +8211,23 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -7373,6 +8238,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7381,12 +8247,14 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7400,6 +8268,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7416,11 +8285,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7430,9 +8301,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -7444,6 +8317,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -7451,16 +8325,19 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -7472,11 +8349,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7489,6 +8368,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane000", "start": 0, "type": "Identifier" @@ -7496,6 +8376,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -7503,10 +8384,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -7516,9 +8399,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -7531,6 +8416,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7547,9 +8433,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -7559,6 +8447,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -7567,9 +8456,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binHeight", "start": 0, "type": "Identifier" @@ -7579,14 +8470,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinHeight", "start": 0, "type": "Identifier" @@ -7606,6 +8500,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7617,10 +8512,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -7629,6 +8526,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7641,6 +8539,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7653,6 +8552,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7664,6 +8564,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7675,10 +8576,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -7687,6 +8590,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7699,6 +8603,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7711,6 +8616,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7722,6 +8628,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7732,11 +8639,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7749,6 +8658,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -7756,6 +8666,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -7763,10 +8674,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -7775,6 +8688,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -7794,9 +8708,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -7806,6 +8722,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -7814,9 +8731,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -7826,6 +8745,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -7833,6 +8753,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7842,14 +8763,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -7871,14 +8795,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -7899,9 +8826,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -7911,6 +8840,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -7919,9 +8849,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binHeight", "start": 0, "type": "Identifier" @@ -7931,14 +8863,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinHeight", "start": 0, "type": "Identifier" @@ -7958,6 +8893,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7969,10 +8905,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -7981,6 +8919,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7993,6 +8932,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8005,6 +8945,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8016,6 +8957,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8027,10 +8969,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8039,6 +8983,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8051,6 +8996,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8063,6 +9009,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -8074,6 +9021,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8084,11 +9032,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8101,6 +9051,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane002", "start": 0, "type": "Identifier" @@ -8108,6 +9059,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -8115,10 +9067,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8134,9 +9088,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -8146,6 +9102,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -8154,9 +9111,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -8166,6 +9125,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -8173,6 +9133,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8182,14 +9143,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -8211,14 +9175,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -8235,6 +9202,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8251,9 +9219,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -8263,6 +9233,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -8271,9 +9242,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binHeight", "start": 0, "type": "Identifier" @@ -8283,14 +9256,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinHeight", "start": 0, "type": "Identifier" @@ -8310,6 +9286,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8321,10 +9298,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8333,6 +9312,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8345,6 +9325,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -8357,6 +9338,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8368,6 +9350,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8379,10 +9362,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8391,6 +9376,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8403,6 +9389,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8415,6 +9402,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -8426,6 +9414,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8436,11 +9425,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8453,6 +9444,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipSingleLength", "start": 0, "type": "Identifier" @@ -8464,6 +9456,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8481,9 +9474,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -8493,14 +9488,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -8514,6 +9512,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -8521,6 +9520,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8530,14 +9530,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -8555,6 +9558,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -8565,6 +9569,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8574,14 +9579,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -8595,14 +9603,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -8626,9 +9637,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -8639,17 +9652,21 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipFace", "start": 0, "type": "Identifier" @@ -8660,6 +9677,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8667,9 +9685,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane000", "start": 0, "type": "Identifier" @@ -8681,11 +9701,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -8703,6 +9725,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipSingleWidth", "start": 0, "type": "Identifier" @@ -8714,6 +9737,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8731,9 +9755,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -8743,14 +9769,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -8764,6 +9793,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -8771,6 +9801,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8780,14 +9811,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -8805,6 +9839,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -8815,6 +9850,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8824,14 +9860,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -8845,14 +9884,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -8876,9 +9918,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -8889,17 +9933,21 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipFace", "start": 0, "type": "Identifier" @@ -8910,6 +9958,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8917,9 +9966,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -8931,11 +9982,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -8953,6 +10006,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipLengths", "start": 0, "type": "Identifier" @@ -8964,6 +10018,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -8971,6 +10026,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -8986,6 +10042,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8996,6 +10053,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9008,6 +10066,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9020,6 +10079,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9031,6 +10091,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9041,6 +10102,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -9061,9 +10123,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -9073,6 +10137,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -9080,6 +10145,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9089,14 +10155,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -9114,10 +10183,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9131,14 +10202,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -9165,9 +10239,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -9177,6 +10253,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -9184,6 +10261,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9193,14 +10271,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -9218,10 +10299,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9235,14 +10318,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -9259,6 +10345,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9270,6 +10357,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9280,6 +10368,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -9287,6 +10376,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9302,6 +10392,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -9309,6 +10400,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -9321,9 +10413,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -9334,6 +10428,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9341,9 +10436,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipSingleLength", "start": 0, "type": "Identifier" @@ -9354,11 +10451,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -9376,6 +10475,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipWidths", "start": 0, "type": "Identifier" @@ -9387,6 +10487,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -9394,6 +10495,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -9409,6 +10511,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -9419,6 +10522,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9431,6 +10535,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9443,6 +10548,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9454,6 +10560,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9464,6 +10571,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -9484,9 +10592,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -9496,6 +10606,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -9503,6 +10614,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9512,14 +10624,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -9537,10 +10652,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9554,14 +10671,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -9588,9 +10708,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -9600,6 +10722,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -9607,6 +10730,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9616,14 +10740,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -9641,10 +10768,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9658,14 +10787,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -9682,6 +10814,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9693,6 +10826,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9703,6 +10837,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -9710,6 +10845,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9725,6 +10861,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -9732,6 +10869,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -9744,9 +10882,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -9757,6 +10897,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9764,9 +10905,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipSingleWidth", "start": 0, "type": "Identifier" @@ -9777,11 +10920,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -9799,6 +10944,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis001", "start": 0, "type": "Identifier" @@ -9806,6 +10952,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -9813,10 +10960,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -9825,6 +10974,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -9837,6 +10987,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -9848,6 +10999,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9859,10 +11011,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -9872,9 +11026,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -9888,9 +11044,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -9902,6 +11060,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9912,11 +11071,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -9934,6 +11095,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipSingleLengthCorner", "start": 0, "type": "Identifier" @@ -9945,6 +11107,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -9953,6 +11116,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -9964,6 +11128,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9975,6 +11140,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -9983,9 +11149,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis001", "start": 0, "type": "Identifier" @@ -10001,9 +11169,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -10014,17 +11184,21 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipFace", "start": 0, "type": "Identifier" @@ -10035,6 +11209,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10042,9 +11217,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane000", "start": 0, "type": "Identifier" @@ -10056,11 +11233,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -10078,6 +11257,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipSingleWidthCorner", "start": 0, "type": "Identifier" @@ -10089,6 +11269,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -10096,6 +11277,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -10111,6 +11293,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -10119,9 +11302,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis001", "start": 0, "type": "Identifier" @@ -10137,9 +11322,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -10150,17 +11337,21 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipFace", "start": 0, "type": "Identifier" @@ -10171,6 +11362,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10178,9 +11370,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane002", "start": 0, "type": "Identifier" @@ -10192,11 +11386,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -10214,6 +11410,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipCorners000", "start": 0, "type": "Identifier" @@ -10225,6 +11422,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -10232,6 +11430,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -10247,6 +11446,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -10257,6 +11457,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10269,6 +11470,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10281,6 +11483,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -10292,6 +11495,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10302,6 +11506,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -10322,9 +11527,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -10334,6 +11541,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -10341,6 +11549,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10350,14 +11559,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -10375,10 +11587,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10392,14 +11606,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -10426,9 +11643,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -10438,6 +11657,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -10445,6 +11665,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10454,14 +11675,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -10479,10 +11703,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10496,14 +11722,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -10520,6 +11749,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10531,6 +11761,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10541,6 +11772,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -10548,6 +11780,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10563,6 +11796,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -10570,6 +11804,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -10582,9 +11817,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -10595,6 +11832,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10602,9 +11840,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipSingleLengthCorner", "start": 0, "type": "Identifier" @@ -10615,11 +11855,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -10637,6 +11879,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipCorners001", "start": 0, "type": "Identifier" @@ -10648,6 +11891,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -10655,6 +11899,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -10670,6 +11915,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -10680,6 +11926,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10692,6 +11939,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10704,6 +11952,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -10715,6 +11964,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10725,6 +11975,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -10745,9 +11996,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -10757,6 +12010,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -10764,6 +12018,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10773,14 +12028,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -10798,10 +12056,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10815,14 +12075,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -10849,9 +12112,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -10861,6 +12126,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -10868,6 +12134,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10877,14 +12144,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -10902,10 +12172,12 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10919,14 +12191,17 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -10943,6 +12218,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10954,6 +12230,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10964,6 +12241,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -10971,6 +12249,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10986,6 +12265,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -10993,6 +12273,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -11005,9 +12286,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -11018,6 +12301,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11025,9 +12309,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lipSingleWidthCorner", "start": 0, "type": "Identifier" @@ -11038,11 +12324,13 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -11059,9 +12347,11 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -11080,19 +12370,23 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -11109,15 +12403,18 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -11133,12 +12430,14 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "28": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -11150,6 +12449,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -11161,6 +12461,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -11172,6 +12473,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -11183,6 +12485,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -11194,6 +12497,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -11206,6 +12510,7 @@ description: Result of parsing gridfinity-bins-stacking-lip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/program_memory.snap index 7e5bb8914..8dacd0a50 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins-stacking-lip/program_memory.snap @@ -5577,6 +5577,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -5590,6 +5591,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -5603,6 +5605,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -5616,6 +5619,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -5639,6 +5643,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -5664,6 +5669,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -5689,6 +5695,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -5714,6 +5721,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -5897,6 +5905,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -5910,6 +5919,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -5923,6 +5933,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -5936,6 +5947,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -5959,6 +5971,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -5984,6 +5997,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -6009,6 +6023,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -6034,6 +6049,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -6217,6 +6233,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -6230,6 +6247,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -6243,6 +6261,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -6256,6 +6275,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -6279,6 +6299,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -6304,6 +6325,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -6329,6 +6351,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -6354,6 +6377,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -6537,6 +6561,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -6550,6 +6575,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -6563,6 +6589,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -6576,6 +6603,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -6599,6 +6627,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -6624,6 +6653,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -6649,6 +6679,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -6674,6 +6705,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -6857,6 +6889,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -6870,6 +6903,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -6883,6 +6917,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -6896,6 +6931,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -6919,6 +6955,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -6944,6 +6981,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -6969,6 +7007,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -6994,6 +7033,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -7177,6 +7217,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -7190,6 +7231,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -7203,6 +7245,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -7216,6 +7259,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -7239,6 +7283,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -7264,6 +7309,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -7289,6 +7335,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -7314,6 +7361,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -12956,6 +13004,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 4704, "end": 4712, + "moduleId": 0, "start": 4704, "type": "TagDeclarator", "value": "line010" @@ -12969,6 +13018,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 4783, "end": 4791, + "moduleId": 0, "start": 4783, "type": "TagDeclarator", "value": "line011" @@ -12982,6 +13032,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 4842, "end": 4850, + "moduleId": 0, "start": 4842, "type": "TagDeclarator", "value": "line012" @@ -12995,6 +13046,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 4869, "end": 4877, + "moduleId": 0, "start": 4869, "type": "TagDeclarator", "value": "line013" @@ -13018,6 +13070,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 4704, "end": 4712, + "moduleId": 0, "start": 4704, "type": "TagDeclarator", "value": "line010" @@ -13043,6 +13096,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 4783, "end": 4791, + "moduleId": 0, "start": 4783, "type": "TagDeclarator", "value": "line011" @@ -13068,6 +13122,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 4842, "end": 4850, + "moduleId": 0, "start": 4842, "type": "TagDeclarator", "value": "line012" @@ -13093,6 +13148,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 4869, "end": 4877, + "moduleId": 0, "start": 4869, "type": "TagDeclarator", "value": "line013" @@ -14306,6 +14362,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -14319,6 +14376,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -14332,6 +14390,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -14390,6 +14449,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -14421,6 +14481,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -14446,6 +14507,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -14646,6 +14708,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -14659,6 +14722,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -14672,6 +14736,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -14730,6 +14795,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -14761,6 +14827,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -14786,6 +14853,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -14991,6 +15059,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -15004,6 +15073,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -15017,6 +15087,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -15075,6 +15146,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -15106,6 +15178,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -15131,6 +15204,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -15331,6 +15405,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -15344,6 +15419,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -15357,6 +15433,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -15415,6 +15492,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -15446,6 +15524,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -15471,6 +15550,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -15693,6 +15773,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -15706,6 +15787,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -15719,6 +15801,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -15777,6 +15860,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -15808,6 +15892,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -15833,6 +15918,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -16033,6 +16119,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -16046,6 +16133,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -16059,6 +16147,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -16117,6 +16206,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -16148,6 +16238,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -16173,6 +16264,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -16388,6 +16480,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -16401,6 +16494,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -16414,6 +16508,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -16472,6 +16567,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -16503,6 +16599,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -16528,6 +16625,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -16728,6 +16826,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -16741,6 +16840,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -16754,6 +16854,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -16812,6 +16913,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -16843,6 +16945,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -16868,6 +16971,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -17068,6 +17172,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -17081,6 +17186,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -17094,6 +17200,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -17152,6 +17259,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -17183,6 +17291,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -17208,6 +17317,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -17408,6 +17518,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -17421,6 +17532,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -17434,6 +17546,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -17492,6 +17605,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -17523,6 +17637,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -17548,6 +17663,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -17816,6 +17932,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -17829,6 +17946,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -17842,6 +17960,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -17900,6 +18019,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -17931,6 +18051,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -17956,6 +18077,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -18156,6 +18278,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -18169,6 +18292,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -18182,6 +18306,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -18240,6 +18365,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5465, "end": 5473, + "moduleId": 0, "start": 5465, "type": "TagDeclarator", "value": "line000" @@ -18271,6 +18397,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5585, "end": 5592, + "moduleId": 0, "start": 5585, "type": "TagDeclarator", "value": "arc000" @@ -18296,6 +18423,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 5705, "end": 5713, + "moduleId": 0, "start": 5705, "type": "TagDeclarator", "value": "line001" @@ -18565,6 +18693,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -18578,6 +18707,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -18591,6 +18721,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -18604,6 +18735,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -18627,6 +18759,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -18652,6 +18785,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -18677,6 +18811,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -18702,6 +18837,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -18985,6 +19121,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -18998,6 +19135,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -19011,6 +19149,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -19024,6 +19163,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -19047,6 +19187,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -19072,6 +19213,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -19097,6 +19239,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -19122,6 +19265,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -19405,6 +19549,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -19418,6 +19563,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -19431,6 +19577,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -19444,6 +19591,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -19467,6 +19615,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -19492,6 +19641,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -19517,6 +19667,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -19542,6 +19693,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -19825,6 +19977,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -19838,6 +19991,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -19851,6 +20005,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -19864,6 +20019,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -19887,6 +20043,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -19912,6 +20069,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -19937,6 +20095,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -19962,6 +20121,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -21551,6 +21711,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -21564,6 +21725,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -21577,6 +21739,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -21590,6 +21753,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" @@ -21613,6 +21777,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2664, "end": 2672, + "moduleId": 0, "start": 2664, "type": "TagDeclarator", "value": "line000" @@ -21638,6 +21803,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2734, "end": 2742, + "moduleId": 0, "start": 2734, "type": "TagDeclarator", "value": "line001" @@ -21663,6 +21829,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2793, "end": 2801, + "moduleId": 0, "start": 2793, "type": "TagDeclarator", "value": "line002" @@ -21688,6 +21855,7 @@ description: Variables in memory after executing gridfinity-bins-stacking-lip.kc "tag": { "commentStart": 2820, "end": 2828, + "moduleId": 0, "start": 2820, "type": "TagDeclarator", "value": "line003" diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/ast.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/ast.snap index 4c99656ef..c8cc367bd 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41.5", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binHeight", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.0", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.95", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binThk", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.75", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.15", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +349,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -320,6 +357,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.5", "start": 0, "type": "Literal", @@ -329,11 +367,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -346,6 +386,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOffset", "start": 0, "type": "Identifier" @@ -353,6 +394,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.8", "start": 0, "type": "Literal", @@ -362,11 +404,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -379,6 +423,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magDepth", "start": 0, "type": "Identifier" @@ -386,6 +431,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.4", "start": 0, "type": "Literal", @@ -395,11 +441,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -412,6 +460,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -419,6 +468,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -428,11 +478,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -450,6 +502,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -457,6 +510,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -466,11 +520,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -483,6 +539,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinHeight", "start": 0, "type": "Identifier" @@ -490,6 +547,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -499,11 +557,13 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -516,6 +576,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -530,9 +591,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -542,14 +605,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -563,14 +629,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -584,11 +653,13 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -606,6 +677,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -621,6 +693,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -628,13 +701,16 @@ description: Result of parsing gridfinity-bins.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -645,6 +721,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -652,9 +729,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -672,6 +751,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -686,9 +766,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -698,14 +780,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -722,6 +807,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -733,6 +819,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -743,9 +830,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -756,6 +845,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -768,6 +858,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -776,9 +867,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -794,9 +887,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -807,6 +902,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -819,6 +915,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -828,9 +925,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -842,6 +941,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -853,9 +953,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -866,6 +968,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -878,6 +981,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -886,6 +990,7 @@ description: Result of parsing gridfinity-bins.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -897,6 +1002,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -908,6 +1014,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -916,9 +1023,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdStep", "start": 0, "type": "Identifier" @@ -934,9 +1043,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -947,6 +1058,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -959,6 +1071,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -968,9 +1081,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondStep", "start": 0, "type": "Identifier" @@ -982,6 +1097,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -993,9 +1109,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1006,6 +1124,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1018,6 +1137,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1026,6 +1146,7 @@ description: Result of parsing gridfinity-bins.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -1037,6 +1158,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1048,6 +1170,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lengthY", "start": 0, "type": "Identifier" @@ -1056,9 +1179,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -1074,9 +1199,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1087,19 +1214,23 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1110,6 +1241,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1118,15 +1250,18 @@ description: Result of parsing gridfinity-bins.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1136,9 +1271,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceSketch", "start": 0, "type": "Identifier" @@ -1150,6 +1287,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1157,16 +1295,19 @@ description: Result of parsing gridfinity-bins.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -1178,11 +1319,13 @@ description: Result of parsing gridfinity-bins.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1200,6 +1343,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleSide", "start": 0, "type": "Identifier" @@ -1211,6 +1355,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1222,9 +1367,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1234,6 +1381,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1242,9 +1390,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1254,10 +1404,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1281,9 +1433,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1294,17 +1448,21 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1315,6 +1473,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1325,6 +1484,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1336,9 +1496,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1348,14 +1510,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -1375,9 +1540,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1388,6 +1555,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1395,9 +1563,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1410,11 +1580,13 @@ description: Result of parsing gridfinity-bins.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1432,6 +1604,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sides", "start": 0, "type": "Identifier" @@ -1443,6 +1616,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1450,6 +1624,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1465,6 +1640,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1475,6 +1651,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1487,6 +1664,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1499,6 +1677,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1510,6 +1689,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1520,6 +1700,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1537,9 +1718,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1549,6 +1732,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1556,6 +1740,7 @@ description: Result of parsing gridfinity-bins.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1565,14 +1750,17 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -1590,10 +1778,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1617,9 +1807,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -1629,6 +1821,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1636,6 +1829,7 @@ description: Result of parsing gridfinity-bins.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1645,14 +1839,17 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -1670,10 +1867,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1690,6 +1889,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1701,6 +1901,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1711,6 +1912,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1718,6 +1920,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1733,6 +1936,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1740,6 +1944,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1752,9 +1957,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -1765,6 +1972,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1772,9 +1980,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleSide", "start": 0, "type": "Identifier" @@ -1785,11 +1995,13 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1807,6 +2019,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis000", "start": 0, "type": "Identifier" @@ -1814,6 +2027,7 @@ description: Result of parsing gridfinity-bins.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1821,10 +2035,12 @@ description: Result of parsing gridfinity-bins.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1833,6 +2049,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1845,6 +2062,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1856,6 +2074,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1867,10 +2086,12 @@ description: Result of parsing gridfinity-bins.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1883,9 +2104,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1895,14 +2118,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -1923,9 +2149,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -1935,14 +2163,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -1958,6 +2189,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1968,11 +2200,13 @@ description: Result of parsing gridfinity-bins.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1990,6 +2224,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleCorner", "start": 0, "type": "Identifier" @@ -2001,6 +2236,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2009,6 +2245,7 @@ description: Result of parsing gridfinity-bins.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2020,6 +2257,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2031,6 +2269,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2039,9 +2278,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis000", "start": 0, "type": "Identifier" @@ -2057,9 +2298,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -2070,17 +2313,21 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2091,6 +2338,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2101,6 +2349,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2112,9 +2361,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -2124,14 +2375,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2151,9 +2405,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2164,6 +2420,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2171,9 +2428,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -2186,11 +2445,13 @@ description: Result of parsing gridfinity-bins.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2208,6 +2469,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corners", "start": 0, "type": "Identifier" @@ -2219,6 +2481,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2226,6 +2489,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2241,6 +2505,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2251,6 +2516,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2263,6 +2529,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2275,6 +2542,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2286,6 +2554,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2296,6 +2565,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2313,9 +2583,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2325,6 +2597,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2332,6 +2605,7 @@ description: Result of parsing gridfinity-bins.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2341,14 +2615,17 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2366,10 +2643,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2393,9 +2672,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2405,6 +2686,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2412,6 +2694,7 @@ description: Result of parsing gridfinity-bins.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2421,14 +2704,17 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2446,10 +2732,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2466,6 +2754,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2477,6 +2766,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2487,6 +2777,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2494,6 +2785,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2509,6 +2801,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2516,6 +2809,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2528,9 +2822,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -2541,6 +2837,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2548,9 +2845,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleCorner", "start": 0, "type": "Identifier" @@ -2561,11 +2860,13 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2583,6 +2884,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleBinFill", "start": 0, "type": "Identifier" @@ -2590,13 +2892,16 @@ description: Result of parsing gridfinity-bins.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2607,6 +2912,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2614,9 +2920,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2634,6 +2942,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2648,9 +2957,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -2660,14 +2971,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2688,9 +3002,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -2700,14 +3016,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -2723,6 +3042,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2733,9 +3053,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2746,6 +3068,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2758,6 +3081,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2772,9 +3096,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2784,6 +3110,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2792,9 +3119,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -2804,10 +3133,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2828,6 +3159,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2839,6 +3171,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2849,6 +3182,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2856,6 +3190,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2867,9 +3202,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2880,6 +3217,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2892,6 +3230,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2902,6 +3241,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2918,9 +3258,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -2930,6 +3272,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2938,9 +3281,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -2950,10 +3295,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2973,6 +3320,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2983,6 +3331,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2990,6 +3339,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3001,9 +3351,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3014,6 +3366,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3026,18 +3379,22 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3048,12 +3405,14 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3065,6 +3424,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3072,6 +3432,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3083,9 +3444,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3096,6 +3459,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3108,6 +3472,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3115,6 +3480,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3126,9 +3492,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3139,6 +3507,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3151,6 +3520,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3159,9 +3529,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3177,9 +3549,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3190,6 +3564,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3202,6 +3577,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3210,9 +3586,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstStep", "start": 0, "type": "Identifier" @@ -3228,6 +3606,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -3236,13 +3615,16 @@ description: Result of parsing gridfinity-bins.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -3253,6 +3635,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3260,9 +3643,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line000", "start": 0, "type": "Identifier" @@ -3274,13 +3659,16 @@ description: Result of parsing gridfinity-bins.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -3291,6 +3679,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3298,9 +3687,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line000", "start": 0, "type": "Identifier" @@ -3312,13 +3703,16 @@ description: Result of parsing gridfinity-bins.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -3329,6 +3723,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3336,9 +3731,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line002", "start": 0, "type": "Identifier" @@ -3350,13 +3747,16 @@ description: Result of parsing gridfinity-bins.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -3367,6 +3767,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3374,9 +3775,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line002", "start": 0, "type": "Identifier" @@ -3389,6 +3792,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3399,9 +3803,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -3412,6 +3818,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3420,15 +3827,18 @@ description: Result of parsing gridfinity-bins.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3441,6 +3851,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magCutout000", "start": 0, "type": "Identifier" @@ -3454,6 +3865,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3462,9 +3874,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -3480,9 +3894,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3493,6 +3909,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3500,9 +3917,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleBinFill", "start": 0, "type": "Identifier" @@ -3520,6 +3939,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3538,9 +3958,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOffset", "start": 0, "type": "Identifier" @@ -3552,19 +3974,23 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -3578,14 +4004,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -3609,9 +4038,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOffset", "start": 0, "type": "Identifier" @@ -3621,14 +4052,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binBaseLength", "start": 0, "type": "Identifier" @@ -3642,14 +4076,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -3665,6 +4102,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3675,6 +4113,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3686,9 +4125,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magOuterDiam", "start": 0, "type": "Identifier" @@ -3698,10 +4139,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3721,9 +4164,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3734,6 +4179,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3746,6 +4192,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -3753,6 +4200,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -3768,6 +4216,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3786,9 +4235,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -3800,11 +4251,13 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3812,6 +4265,7 @@ description: Result of parsing gridfinity-bins.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3821,14 +4275,17 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -3846,10 +4303,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3873,9 +4332,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -3885,6 +4346,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3892,6 +4354,7 @@ description: Result of parsing gridfinity-bins.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3901,14 +4364,17 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -3926,10 +4392,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3945,6 +4413,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3955,6 +4424,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3962,6 +4432,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3977,6 +4448,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -3984,6 +4456,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -3996,9 +4469,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -4009,6 +4484,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4021,6 +4497,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4030,9 +4507,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "magDepth", "start": 0, "type": "Identifier" @@ -4044,6 +4523,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4055,9 +4535,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4068,6 +4550,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4076,12 +4559,14 @@ description: Result of parsing gridfinity-bins.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4098,11 +4583,13 @@ description: Result of parsing gridfinity-bins.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4115,6 +4602,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binSides", "start": 0, "type": "Identifier" @@ -4128,6 +4616,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4138,6 +4627,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4150,6 +4640,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4162,6 +4653,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4173,6 +4665,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4183,6 +4676,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4191,9 +4685,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -4209,6 +4705,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4220,9 +4717,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4232,6 +4731,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4240,9 +4740,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -4252,10 +4754,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4279,9 +4783,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -4292,6 +4798,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4299,9 +4806,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sides", "start": 0, "type": "Identifier" @@ -4319,6 +4828,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4329,6 +4839,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4341,6 +4852,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4353,6 +4865,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4364,6 +4877,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4374,6 +4888,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4382,9 +4897,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -4400,6 +4917,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4411,9 +4929,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4423,6 +4943,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4431,9 +4952,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -4443,10 +4966,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4470,9 +4995,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -4483,6 +5010,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4491,12 +5019,14 @@ description: Result of parsing gridfinity-bins.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4513,11 +5043,13 @@ description: Result of parsing gridfinity-bins.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4530,6 +5062,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binCorners", "start": 0, "type": "Identifier" @@ -4543,6 +5076,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4553,6 +5087,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4565,6 +5100,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4577,6 +5113,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4588,6 +5125,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4598,6 +5136,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4606,9 +5145,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -4624,6 +5165,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4635,9 +5177,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4647,6 +5191,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4655,9 +5200,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -4667,10 +5214,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4694,9 +5243,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -4707,6 +5258,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4714,9 +5266,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "corners", "start": 0, "type": "Identifier" @@ -4734,6 +5288,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4744,6 +5299,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4756,6 +5312,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4768,6 +5325,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4779,6 +5337,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4789,6 +5348,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4797,9 +5357,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -4815,6 +5377,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4826,9 +5389,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -4838,6 +5403,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4846,9 +5412,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -4858,10 +5426,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4885,9 +5455,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -4898,6 +5470,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4906,12 +5479,14 @@ description: Result of parsing gridfinity-bins.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4928,11 +5503,13 @@ description: Result of parsing gridfinity-bins.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4945,6 +5522,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binFill", "start": 0, "type": "Identifier" @@ -4958,6 +5536,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4968,6 +5547,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4980,6 +5560,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -4992,6 +5573,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5003,6 +5585,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5013,6 +5596,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -5021,9 +5605,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -5039,6 +5625,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -5050,9 +5637,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5062,6 +5651,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5070,9 +5660,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -5082,10 +5674,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5109,9 +5703,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -5122,6 +5718,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5129,9 +5726,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "singleBinFill", "start": 0, "type": "Identifier" @@ -5149,6 +5748,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5159,6 +5759,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5171,6 +5772,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -5183,6 +5785,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -5194,6 +5797,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5204,6 +5808,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -5212,9 +5817,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -5230,6 +5837,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -5241,9 +5849,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5253,6 +5863,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5261,9 +5872,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -5273,10 +5886,12 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5300,9 +5915,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -5313,6 +5930,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5321,12 +5939,14 @@ description: Result of parsing gridfinity-bins.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5343,11 +5963,13 @@ description: Result of parsing gridfinity-bins.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5360,6 +5982,7 @@ description: Result of parsing gridfinity-bins.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTop", "start": 0, "type": "Identifier" @@ -5367,13 +5990,16 @@ description: Result of parsing gridfinity-bins.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5384,6 +6010,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5394,6 +6021,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5402,9 +6030,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -5420,9 +6050,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5433,6 +6065,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5440,9 +6073,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -5461,6 +6096,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5471,6 +6107,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5483,6 +6120,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5494,6 +6132,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5504,9 +6143,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5517,6 +6158,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5529,6 +6171,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5543,9 +6186,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5555,6 +6200,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5562,6 +6208,7 @@ description: Result of parsing gridfinity-bins.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5571,14 +6218,17 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -5596,14 +6246,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinWidth", "start": 0, "type": "Identifier" @@ -5623,6 +6276,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5630,6 +6284,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5641,9 +6296,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5654,6 +6311,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5666,6 +6324,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5680,9 +6339,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binLength", "start": 0, "type": "Identifier" @@ -5692,6 +6353,7 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5699,6 +6361,7 @@ description: Result of parsing gridfinity-bins.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5708,14 +6371,17 @@ description: Result of parsing gridfinity-bins.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binTol", "start": 0, "type": "Identifier" @@ -5733,14 +6399,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinLength", "start": 0, "type": "Identifier" @@ -5760,6 +6429,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5767,6 +6437,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5778,9 +6449,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5791,6 +6464,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5803,18 +6477,22 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5825,12 +6503,14 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5842,6 +6522,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5849,6 +6530,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5860,9 +6542,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5873,6 +6557,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5885,6 +6570,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5892,6 +6578,7 @@ description: Result of parsing gridfinity-bins.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5903,9 +6590,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5916,6 +6605,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5928,6 +6618,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5939,9 +6630,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binHeight", "start": 0, "type": "Identifier" @@ -5951,14 +6644,17 @@ description: Result of parsing gridfinity-bins.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countBinHeight", "start": 0, "type": "Identifier" @@ -5978,9 +6674,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5991,6 +6689,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6003,6 +6702,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6011,9 +6711,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cornerRadius", "start": 0, "type": "Identifier" @@ -6029,6 +6731,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -6037,13 +6740,16 @@ description: Result of parsing gridfinity-bins.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -6054,6 +6760,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6061,9 +6768,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line010", "start": 0, "type": "Identifier" @@ -6075,13 +6784,16 @@ description: Result of parsing gridfinity-bins.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -6092,6 +6804,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6099,9 +6812,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line010", "start": 0, "type": "Identifier" @@ -6113,13 +6828,16 @@ description: Result of parsing gridfinity-bins.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -6130,6 +6848,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6137,9 +6856,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line012", "start": 0, "type": "Identifier" @@ -6151,13 +6872,16 @@ description: Result of parsing gridfinity-bins.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getPreviousAdjacentEdge", "start": 0, "type": "Identifier" @@ -6168,6 +6892,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6175,9 +6900,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line012", "start": 0, "type": "Identifier" @@ -6190,6 +6917,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6200,9 +6928,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -6213,6 +6943,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6225,6 +6956,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -6236,9 +6968,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -6250,6 +6984,7 @@ description: Result of parsing gridfinity-bins.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6260,6 +6995,7 @@ description: Result of parsing gridfinity-bins.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -6268,9 +7004,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "binThk", "start": 0, "type": "Identifier" @@ -6286,9 +7024,11 @@ description: Result of parsing gridfinity-bins.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shell", "start": 0, "type": "Identifier" @@ -6299,6 +7039,7 @@ description: Result of parsing gridfinity-bins.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6307,15 +7048,18 @@ description: Result of parsing gridfinity-bins.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6327,9 +7071,11 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -6348,19 +7094,23 @@ description: Result of parsing gridfinity-bins.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -6377,15 +7127,18 @@ description: Result of parsing gridfinity-bins.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -6401,12 +7154,14 @@ description: Result of parsing gridfinity-bins.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "21": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6418,6 +7173,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6430,6 +7186,7 @@ description: Result of parsing gridfinity-bins.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/program_memory.snap index 4a4d3a99a..5f45adb85 100644 --- a/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/gridfinity-bins/program_memory.snap @@ -5505,6 +5505,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -5518,6 +5519,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -5531,6 +5533,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -5544,6 +5547,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -5567,6 +5571,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -5592,6 +5597,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -5617,6 +5623,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -5642,6 +5649,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -5825,6 +5833,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -5838,6 +5847,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -5851,6 +5861,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -5864,6 +5875,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -5887,6 +5899,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -5912,6 +5925,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -5937,6 +5951,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -5962,6 +5977,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -6145,6 +6161,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -6158,6 +6175,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -6171,6 +6189,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -6184,6 +6203,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -6207,6 +6227,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -6232,6 +6253,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -6257,6 +6279,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -6282,6 +6305,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -6465,6 +6489,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -6478,6 +6503,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -6491,6 +6517,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -6504,6 +6531,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -6527,6 +6555,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -6552,6 +6581,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -6577,6 +6607,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -6602,6 +6633,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -6785,6 +6817,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -6798,6 +6831,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -6811,6 +6845,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -6824,6 +6859,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -6847,6 +6883,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -6872,6 +6909,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -6897,6 +6935,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -6922,6 +6961,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -7105,6 +7145,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -7118,6 +7159,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -7131,6 +7173,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -7144,6 +7187,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -7167,6 +7211,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -7192,6 +7237,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -7217,6 +7263,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -7242,6 +7289,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -12884,6 +12932,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 4474, "end": 4482, + "moduleId": 0, "start": 4474, "type": "TagDeclarator", "value": "line010" @@ -12897,6 +12946,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 4553, "end": 4561, + "moduleId": 0, "start": 4553, "type": "TagDeclarator", "value": "line011" @@ -12910,6 +12960,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 4612, "end": 4620, + "moduleId": 0, "start": 4612, "type": "TagDeclarator", "value": "line012" @@ -12923,6 +12974,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 4639, "end": 4647, + "moduleId": 0, "start": 4639, "type": "TagDeclarator", "value": "line013" @@ -12946,6 +12998,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 4474, "end": 4482, + "moduleId": 0, "start": 4474, "type": "TagDeclarator", "value": "line010" @@ -12971,6 +13024,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 4553, "end": 4561, + "moduleId": 0, "start": 4553, "type": "TagDeclarator", "value": "line011" @@ -12996,6 +13050,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 4612, "end": 4620, + "moduleId": 0, "start": 4612, "type": "TagDeclarator", "value": "line012" @@ -13021,6 +13076,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 4639, "end": 4647, + "moduleId": 0, "start": 4639, "type": "TagDeclarator", "value": "line013" @@ -14298,6 +14354,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -14311,6 +14368,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -14324,6 +14382,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -14337,6 +14396,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -14360,6 +14420,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -14385,6 +14446,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -14410,6 +14472,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -14435,6 +14498,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -14718,6 +14782,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -14731,6 +14796,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -14744,6 +14810,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -14757,6 +14824,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -14780,6 +14848,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -14805,6 +14874,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -14830,6 +14900,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -14855,6 +14926,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -15138,6 +15210,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -15151,6 +15224,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -15164,6 +15238,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -15177,6 +15252,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -15200,6 +15276,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -15225,6 +15302,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -15250,6 +15328,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -15275,6 +15354,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -15558,6 +15638,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -15571,6 +15652,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -15584,6 +15666,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -15597,6 +15680,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -15620,6 +15704,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -15645,6 +15730,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -15670,6 +15756,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -15695,6 +15782,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -16873,6 +16961,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -16886,6 +16975,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -16899,6 +16989,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -16912,6 +17003,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" @@ -16935,6 +17027,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2405, "end": 2413, + "moduleId": 0, "start": 2405, "type": "TagDeclarator", "value": "line000" @@ -16960,6 +17053,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2475, "end": 2483, + "moduleId": 0, "start": 2475, "type": "TagDeclarator", "value": "line001" @@ -16985,6 +17079,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2534, "end": 2542, + "moduleId": 0, "start": 2534, "type": "TagDeclarator", "value": "line002" @@ -17010,6 +17105,7 @@ description: Variables in memory after executing gridfinity-bins.kcl "tag": { "commentStart": 2561, "end": 2569, + "moduleId": 0, "start": 2561, "type": "TagDeclarator", "value": "line003" diff --git a/rust/kcl-lib/tests/kcl_samples/hammer/ast.snap b/rust/kcl-lib/tests/kcl_samples/hammer/ast.snap index 350babdae..5c5447eaf 100644 --- a/rust/kcl-lib/tests/kcl_samples/hammer/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/hammer/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "headSideProfile", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing hammer.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.33", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.26", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -154,9 +170,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -167,6 +185,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -179,6 +198,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -189,6 +209,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.95", "start": 0, "type": "Literal", @@ -201,6 +222,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.92", "start": 0, "type": "Literal", @@ -212,6 +234,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -222,9 +245,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -235,6 +260,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -247,6 +273,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -257,6 +284,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.72", "start": 0, "type": "Literal", @@ -269,6 +297,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.26", "start": 0, "type": "Literal", @@ -280,6 +309,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -290,6 +320,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -297,6 +328,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -308,9 +340,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -321,6 +355,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -333,6 +368,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -341,13 +377,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -358,6 +397,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -365,9 +405,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -378,10 +420,12 @@ description: Result of parsing hammer.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -401,6 +445,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -408,6 +453,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".2", "start": 0, "type": "Literal", @@ -423,9 +469,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -436,6 +484,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -448,6 +497,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -456,13 +506,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -473,6 +526,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -480,9 +534,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -493,10 +549,12 @@ description: Result of parsing hammer.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -516,6 +574,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -524,6 +583,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -535,6 +595,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -546,9 +607,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -559,6 +622,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -571,6 +635,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -582,6 +647,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.91", "start": 0, "type": "Literal", @@ -593,6 +659,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -601,6 +668,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.78", "start": 0, "type": "Literal", @@ -612,6 +680,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -622,6 +691,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -629,6 +699,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -640,9 +711,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -653,6 +726,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -665,6 +739,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -676,6 +751,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.67", "start": 0, "type": "Literal", @@ -687,6 +763,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -695,6 +772,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.85", "start": 0, "type": "Literal", @@ -706,6 +784,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -716,9 +795,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -729,6 +810,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -741,6 +823,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -749,6 +832,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".25", "start": 0, "type": "Literal", @@ -760,6 +844,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -771,9 +856,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -784,6 +871,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -796,6 +884,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -803,6 +892,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -818,6 +908,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -825,6 +916,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".05", "start": 0, "type": "Literal", @@ -840,9 +932,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -853,6 +947,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -865,6 +960,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -873,6 +969,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.125", "start": 0, "type": "Literal", @@ -884,6 +981,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -895,6 +993,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -902,6 +1001,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -913,9 +1013,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -926,6 +1028,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -938,6 +1041,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -945,6 +1049,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -960,6 +1065,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -967,6 +1073,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".05", "start": 0, "type": "Literal", @@ -982,9 +1089,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -995,6 +1104,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1007,6 +1117,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1014,6 +1125,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".25", "start": 0, "type": "Literal", @@ -1029,6 +1141,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1036,6 +1149,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1047,9 +1161,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1060,6 +1176,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1072,6 +1189,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1079,6 +1197,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23", "start": 0, "type": "Literal", @@ -1094,6 +1213,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1101,6 +1221,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -1116,9 +1237,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1129,6 +1252,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1141,6 +1265,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1152,6 +1277,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.33", "start": 0, "type": "Literal", @@ -1163,19 +1289,23 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1186,12 +1316,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1199,6 +1331,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1209,9 +1342,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1222,6 +1357,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1234,18 +1370,22 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1256,12 +1396,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1273,9 +1415,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1286,19 +1430,23 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1309,6 +1457,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1321,6 +1470,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1328,6 +1478,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1343,6 +1494,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -1350,6 +1502,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1362,9 +1515,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1375,6 +1530,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1383,12 +1539,14 @@ description: Result of parsing hammer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "18": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1405,11 +1563,13 @@ description: Result of parsing hammer.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Sketch the side profile of the hammer head" ], @@ -1425,18 +1585,22 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "headTopProfile", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1447,6 +1611,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1457,6 +1622,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1464,6 +1630,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13", "start": 0, "type": "Literal", @@ -1479,9 +1646,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1492,6 +1661,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1499,9 +1669,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1513,11 +1685,13 @@ description: Result of parsing hammer.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1530,6 +1704,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSideCut", "start": 0, "type": "Identifier" @@ -1543,6 +1718,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1554,6 +1730,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1565,6 +1742,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1574,6 +1752,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.6", "start": 0, "type": "Literal", @@ -1585,6 +1764,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1592,6 +1772,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1602,9 +1783,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1615,6 +1798,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1622,9 +1806,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "headTopProfile", "start": 0, "type": "Identifier" @@ -1642,6 +1828,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1650,13 +1837,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -1667,6 +1857,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1674,9 +1865,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1692,13 +1885,16 @@ description: Result of parsing hammer.kcl "end": 0, "left": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1709,6 +1905,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1716,9 +1913,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1731,15 +1930,18 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1755,6 +1957,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1765,9 +1968,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1778,6 +1983,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1790,6 +1996,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1797,6 +2004,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1812,6 +2020,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1819,6 +2028,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -1834,6 +2044,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1841,6 +2052,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".05", "start": 0, "type": "Literal", @@ -1856,9 +2068,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1869,12 +2083,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1887,18 +2103,22 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -1909,6 +2129,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1916,9 +2137,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -1935,9 +2158,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1948,6 +2173,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1960,6 +2186,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -1971,13 +2198,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -1988,6 +2218,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1995,9 +2226,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2008,10 +2241,12 @@ description: Result of parsing hammer.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -2029,13 +2264,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegY", "start": 0, "type": "Identifier" @@ -2046,21 +2284,25 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".03", "start": 0, "type": "Literal", @@ -2076,6 +2318,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2086,6 +2329,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2094,13 +2338,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -2111,6 +2358,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2118,9 +2366,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2132,13 +2382,16 @@ description: Result of parsing hammer.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegY", "start": 0, "type": "Identifier" @@ -2149,12 +2402,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2162,6 +2417,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2172,9 +2428,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2185,6 +2443,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2197,6 +2456,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2207,6 +2467,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.39", "start": 0, "type": "Literal", @@ -2220,6 +2481,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.15", "start": 0, "type": "Literal", @@ -2231,6 +2493,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2238,6 +2501,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2248,9 +2512,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2261,6 +2527,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2273,18 +2540,22 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2295,12 +2566,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2312,9 +2585,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2325,6 +2600,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2337,6 +2613,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2345,13 +2622,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2362,25 +2642,30 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2391,12 +2676,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2404,6 +2691,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2414,9 +2702,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2427,19 +2717,23 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2450,6 +2744,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2462,6 +2757,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2470,6 +2766,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -2481,6 +2778,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2492,9 +2790,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2505,6 +2805,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2513,15 +2814,18 @@ description: Result of parsing hammer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2534,6 +2838,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rearCut", "start": 0, "type": "Identifier" @@ -2547,6 +2852,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2557,6 +2863,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.39", "start": 0, "type": "Literal", @@ -2570,6 +2877,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.56", "start": 0, "type": "Literal", @@ -2581,6 +2889,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2588,6 +2897,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2598,9 +2908,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2611,6 +2923,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2618,9 +2931,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "headTopProfile", "start": 0, "type": "Identifier" @@ -2638,6 +2953,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2645,6 +2961,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "177", "start": 0, "type": "Literal", @@ -2660,6 +2977,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2667,6 +2985,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -2682,9 +3001,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2695,6 +3016,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2707,6 +3029,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2717,6 +3040,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.86", "start": 0, "type": "Literal", @@ -2730,6 +3054,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37", "start": 0, "type": "Literal", @@ -2741,6 +3066,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2748,6 +3074,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2758,9 +3085,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2771,6 +3100,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2783,6 +3113,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2791,13 +3122,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegX", "start": 0, "type": "Identifier" @@ -2808,12 +3142,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2821,13 +3157,16 @@ description: Result of parsing hammer.kcl }, { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegY", "start": 0, "type": "Identifier" @@ -2838,12 +3177,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2851,6 +3192,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2858,6 +3200,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2868,9 +3211,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2881,6 +3226,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2893,6 +3239,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2901,13 +3248,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2918,12 +3268,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2931,13 +3283,16 @@ description: Result of parsing hammer.kcl }, { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2948,12 +3303,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2961,6 +3318,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2968,6 +3326,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2978,9 +3337,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2991,6 +3352,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3003,6 +3365,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3011,13 +3374,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3028,25 +3394,30 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3057,12 +3428,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3070,6 +3443,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3080,9 +3454,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3093,19 +3469,23 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3116,6 +3496,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3128,6 +3509,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3136,6 +3518,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -3147,6 +3530,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3158,9 +3542,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3171,6 +3557,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3179,15 +3566,18 @@ description: Result of parsing hammer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3200,6 +3590,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rightSideCut", "start": 0, "type": "Identifier" @@ -3213,6 +3604,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3224,6 +3616,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3235,6 +3628,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3243,6 +3637,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.6", "start": 0, "type": "Literal", @@ -3254,6 +3649,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3264,9 +3660,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3277,6 +3675,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3284,9 +3683,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "headTopProfile", "start": 0, "type": "Identifier" @@ -3304,6 +3705,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3312,13 +3714,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -3329,6 +3734,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3336,9 +3742,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -3353,13 +3761,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3370,6 +3781,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3377,9 +3789,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -3390,10 +3804,12 @@ description: Result of parsing hammer.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3409,6 +3825,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3419,9 +3836,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3432,6 +3851,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3444,6 +3864,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -3452,6 +3873,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -3463,6 +3885,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3474,6 +3897,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -3482,6 +3906,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -3493,6 +3918,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3504,6 +3930,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3511,6 +3938,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".05", "start": 0, "type": "Literal", @@ -3526,9 +3954,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3539,12 +3969,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3557,18 +3989,22 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -3579,6 +4015,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3586,9 +4023,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -3605,9 +4044,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3618,6 +4059,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3630,6 +4072,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -3641,13 +4084,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -3658,6 +4104,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3665,9 +4112,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -3678,10 +4127,12 @@ description: Result of parsing hammer.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -3699,13 +4150,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegY", "start": 0, "type": "Identifier" @@ -3716,21 +4170,25 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".03", "start": 0, "type": "Literal", @@ -3746,6 +4204,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3756,6 +4215,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3764,13 +4224,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -3781,6 +4244,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3788,9 +4252,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -3802,13 +4268,16 @@ description: Result of parsing hammer.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegY", "start": 0, "type": "Identifier" @@ -3819,12 +4288,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3832,6 +4303,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3842,9 +4314,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3855,6 +4329,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3867,6 +4342,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3877,6 +4353,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.39", "start": 0, "type": "Literal", @@ -3889,6 +4366,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.15", "start": 0, "type": "Literal", @@ -3900,6 +4378,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3910,9 +4389,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3923,6 +4404,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3935,18 +4417,22 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3957,12 +4443,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3974,9 +4462,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3987,6 +4477,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3999,6 +4490,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4007,13 +4499,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4024,25 +4519,30 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4053,12 +4553,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4066,6 +4568,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4076,9 +4579,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4089,19 +4594,23 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4112,6 +4621,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4124,6 +4634,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4132,6 +4643,7 @@ description: Result of parsing hammer.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -4143,6 +4655,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4154,9 +4667,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4167,6 +4682,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4175,12 +4691,14 @@ description: Result of parsing hammer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4197,11 +4715,13 @@ description: Result of parsing hammer.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4214,6 +4734,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstProfiles", "start": 0, "type": "Identifier" @@ -4225,6 +4746,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -4233,13 +4755,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -4250,6 +4775,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4260,9 +4786,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSideCut", "start": 0, "type": "Identifier" @@ -4273,13 +4801,16 @@ description: Result of parsing hammer.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -4290,6 +4821,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4300,9 +4832,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rearCut", "start": 0, "type": "Identifier" @@ -4316,9 +4850,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rightSideCut", "start": 0, "type": "Identifier" @@ -4330,6 +4866,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4337,6 +4874,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4344,6 +4882,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4354,9 +4893,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -4367,6 +4908,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4377,9 +4919,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "headSideProfile", "start": 0, "type": "Identifier" @@ -4391,16 +4935,19 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4413,6 +4960,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleHole", "start": 0, "type": "Identifier" @@ -4420,13 +4968,16 @@ description: Result of parsing hammer.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4437,6 +4988,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4444,9 +4996,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4464,6 +5018,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4471,6 +5026,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".28", "start": 0, "type": "Literal", @@ -4486,6 +5042,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numSides", "start": 0, "type": "Identifier" @@ -4493,6 +5050,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -4508,6 +5066,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4518,6 +5077,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4530,6 +5090,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4541,6 +5102,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4551,9 +5113,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polygon", "start": 0, "type": "Identifier" @@ -4564,12 +5128,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4582,6 +5148,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4589,6 +5156,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -4604,9 +5172,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4617,6 +5187,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4625,12 +5196,14 @@ description: Result of parsing hammer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4647,11 +5220,13 @@ description: Result of parsing hammer.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4669,6 +5244,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseSupport", "start": 0, "type": "Identifier" @@ -4676,13 +5252,16 @@ description: Result of parsing hammer.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4693,6 +5272,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4703,6 +5283,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -4710,6 +5291,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.5", "start": 0, "type": "Literal", @@ -4725,9 +5307,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -4738,6 +5322,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4745,9 +5330,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4766,6 +5353,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4776,6 +5364,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4788,6 +5377,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4799,6 +5389,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4809,6 +5400,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4816,6 +5408,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".45", "start": 0, "type": "Literal", @@ -4831,6 +5424,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4838,6 +5432,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4849,9 +5444,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4862,6 +5459,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4874,6 +5472,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4881,6 +5480,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4896,6 +5496,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagStart", "start": 0, "type": "Identifier" @@ -4903,6 +5504,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4914,9 +5516,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4927,6 +5531,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4939,6 +5544,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4946,6 +5552,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".05", "start": 0, "type": "Literal", @@ -4961,6 +5568,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -4975,6 +5583,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -4986,9 +5595,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -5002,9 +5613,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capStart001", "start": 0, "type": "Identifier" @@ -5016,6 +5629,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5026,9 +5640,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -5039,6 +5655,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5046,6 +5663,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5056,9 +5674,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -5069,6 +5689,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5077,12 +5698,14 @@ description: Result of parsing hammer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5099,11 +5722,13 @@ description: Result of parsing hammer.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5116,6 +5741,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hammerHead", "start": 0, "type": "Identifier" @@ -5123,13 +5749,16 @@ description: Result of parsing hammer.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -5140,6 +5769,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5150,9 +5780,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstProfiles", "start": 0, "type": "Identifier" @@ -5166,9 +5798,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseSupport", "start": 0, "type": "Identifier" @@ -5180,6 +5814,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5192,6 +5827,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -5203,9 +5839,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleHole", "start": 0, "type": "Identifier" @@ -5217,6 +5855,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5227,9 +5866,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -5240,6 +5881,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5248,12 +5890,14 @@ description: Result of parsing hammer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5270,11 +5914,13 @@ description: Result of parsing hammer.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5287,6 +5933,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleSketch", "start": 0, "type": "Identifier" @@ -5294,13 +5941,16 @@ description: Result of parsing hammer.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5311,6 +5961,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5318,9 +5969,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -5338,6 +5991,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5348,6 +6002,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -5360,6 +6015,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5371,6 +6027,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5381,9 +6038,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5394,6 +6053,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5406,6 +6066,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5416,6 +6077,7 @@ description: Result of parsing hammer.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.125", "start": 0, "type": "Literal", @@ -5425,10 +6087,12 @@ description: Result of parsing hammer.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5448,9 +6112,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5461,6 +6127,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5473,6 +6140,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5480,6 +6148,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5495,6 +6164,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5502,6 +6172,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05", "start": 0, "type": "Literal", @@ -5517,9 +6188,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5530,6 +6203,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5542,6 +6216,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5552,6 +6227,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.38", "start": 0, "type": "Literal", @@ -5567,6 +6243,7 @@ description: Result of parsing hammer.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.8", "start": 0, "type": "Literal", @@ -5576,10 +6253,12 @@ description: Result of parsing hammer.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.612", "start": 0, "type": "Literal", @@ -5595,6 +6274,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5605,9 +6285,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5618,6 +6300,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5630,6 +6313,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5640,6 +6324,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.28", "start": 0, "type": "Literal", @@ -5652,6 +6337,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.8", "start": 0, "type": "Literal", @@ -5663,6 +6349,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5673,9 +6360,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5686,6 +6375,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5698,18 +6388,22 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5720,12 +6414,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5737,9 +6433,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5750,6 +6448,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5762,6 +6461,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5770,13 +6470,16 @@ description: Result of parsing hammer.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5787,25 +6490,30 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5816,12 +6524,14 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5829,6 +6539,7 @@ description: Result of parsing hammer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5839,9 +6550,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5852,19 +6565,23 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5875,6 +6592,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5883,15 +6601,18 @@ description: Result of parsing hammer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5904,6 +6625,7 @@ description: Result of parsing hammer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handle", "start": 0, "type": "Identifier" @@ -5917,6 +6639,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5924,6 +6647,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -5939,6 +6663,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5947,9 +6672,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -5965,9 +6692,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -5978,6 +6707,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5985,9 +6715,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleSketch", "start": 0, "type": "Identifier" @@ -6005,6 +6737,7 @@ description: Result of parsing hammer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -6012,6 +6745,7 @@ description: Result of parsing hammer.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#f14f04\"", "start": 0, "type": "Literal", @@ -6024,9 +6758,11 @@ description: Result of parsing hammer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -6037,6 +6773,7 @@ description: Result of parsing hammer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6045,15 +6782,18 @@ description: Result of parsing hammer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6065,9 +6805,11 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -6086,19 +6828,23 @@ description: Result of parsing hammer.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -6114,12 +6860,14 @@ description: Result of parsing hammer.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6131,6 +6879,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6143,6 +6892,7 @@ description: Result of parsing hammer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/hammer/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/hammer/program_memory.snap index 7e630a600..49818db79 100644 --- a/rust/kcl-lib/tests/kcl_samples/hammer/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/hammer/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 3375, "end": 3381, + "moduleId": 0, "start": 3375, "type": "TagDeclarator", "value": "seg05" @@ -30,6 +31,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 3419, "end": 3431, + "moduleId": 0, "start": 3419, "type": "TagDeclarator", "value": "capStart001" @@ -59,6 +61,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 3375, "end": 3381, + "moduleId": 0, "start": 3375, "type": "TagDeclarator", "value": "seg05" @@ -199,6 +202,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 426, "end": 432, + "moduleId": 0, "start": 426, "type": "TagDeclarator", "value": "seg01" @@ -226,6 +230,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 617, "end": 623, + "moduleId": 0, "start": 617, "type": "TagDeclarator", "value": "seg03" @@ -260,6 +265,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 779, "end": 785, + "moduleId": 0, "start": 779, "type": "TagDeclarator", "value": "seg02" @@ -280,6 +286,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 863, "end": 869, + "moduleId": 0, "start": 863, "type": "TagDeclarator", "value": "seg04" @@ -372,6 +379,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 426, "end": 432, + "moduleId": 0, "start": 426, "type": "TagDeclarator", "value": "seg01" @@ -440,6 +448,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 617, "end": 623, + "moduleId": 0, "start": 617, "type": "TagDeclarator", "value": "seg03" @@ -532,6 +541,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 779, "end": 785, + "moduleId": 0, "start": 779, "type": "TagDeclarator", "value": "seg02" @@ -581,6 +591,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 863, "end": 869, + "moduleId": 0, "start": 863, "type": "TagDeclarator", "value": "seg04" @@ -785,6 +796,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 426, "end": 432, + "moduleId": 0, "start": 426, "type": "TagDeclarator", "value": "seg01" @@ -812,6 +824,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 617, "end": 623, + "moduleId": 0, "start": 617, "type": "TagDeclarator", "value": "seg03" @@ -846,6 +859,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 779, "end": 785, + "moduleId": 0, "start": 779, "type": "TagDeclarator", "value": "seg02" @@ -866,6 +880,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 863, "end": 869, + "moduleId": 0, "start": 863, "type": "TagDeclarator", "value": "seg04" @@ -958,6 +973,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 426, "end": 432, + "moduleId": 0, "start": 426, "type": "TagDeclarator", "value": "seg01" @@ -1026,6 +1042,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 617, "end": 623, + "moduleId": 0, "start": 617, "type": "TagDeclarator", "value": "seg03" @@ -1118,6 +1135,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 779, "end": 785, + "moduleId": 0, "start": 779, "type": "TagDeclarator", "value": "seg02" @@ -1167,6 +1185,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 863, "end": 869, + "moduleId": 0, "start": 863, "type": "TagDeclarator", "value": "seg04" @@ -2183,6 +2202,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 426, "end": 432, + "moduleId": 0, "start": 426, "type": "TagDeclarator", "value": "seg01" @@ -2210,6 +2230,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 617, "end": 623, + "moduleId": 0, "start": 617, "type": "TagDeclarator", "value": "seg03" @@ -2244,6 +2265,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 779, "end": 785, + "moduleId": 0, "start": 779, "type": "TagDeclarator", "value": "seg02" @@ -2264,6 +2286,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 863, "end": 869, + "moduleId": 0, "start": 863, "type": "TagDeclarator", "value": "seg04" @@ -2356,6 +2379,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 426, "end": 432, + "moduleId": 0, "start": 426, "type": "TagDeclarator", "value": "seg01" @@ -2424,6 +2448,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 617, "end": 623, + "moduleId": 0, "start": 617, "type": "TagDeclarator", "value": "seg03" @@ -2516,6 +2541,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 779, "end": 785, + "moduleId": 0, "start": 779, "type": "TagDeclarator", "value": "seg02" @@ -2565,6 +2591,7 @@ description: Variables in memory after executing hammer.kcl "tag": { "commentStart": 863, "end": 869, + "moduleId": 0, "start": 863, "type": "TagDeclarator", "value": "seg04" diff --git a/rust/kcl-lib/tests/kcl_samples/helical-gear/ast.snap b/rust/kcl-lib/tests/kcl_samples/helical-gear/ast.snap index 651b628cb..9c3cf590d 100644 --- a/rust/kcl-lib/tests/kcl_samples/helical-gear/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/helical-gear/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -39,9 +41,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -51,14 +55,17 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -72,11 +79,13 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate gear parameters" ], @@ -92,6 +101,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -100,9 +110,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -112,11 +124,13 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -129,6 +143,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing helical-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -148,14 +164,17 @@ description: Result of parsing helical-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -169,11 +188,13 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -186,6 +207,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -197,9 +219,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -209,15 +233,19 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -228,6 +256,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -235,9 +264,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -252,11 +283,13 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -269,6 +302,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -280,9 +314,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -292,6 +328,7 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -299,6 +336,7 @@ description: Result of parsing helical-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -308,14 +346,17 @@ description: Result of parsing helical-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -333,11 +374,13 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -350,6 +393,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -357,6 +401,7 @@ description: Result of parsing helical-gear.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -366,11 +411,13 @@ description: Result of parsing helical-gear.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -388,6 +435,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -399,9 +447,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -411,10 +461,12 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -428,11 +480,13 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -445,6 +499,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -452,6 +507,7 @@ description: Result of parsing helical-gear.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -461,11 +517,13 @@ description: Result of parsing helical-gear.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -478,6 +536,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -489,9 +548,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -501,10 +562,12 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -518,11 +581,13 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -535,18 +600,22 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "asin", "start": 0, "type": "Identifier" @@ -557,6 +626,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -570,9 +640,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -582,10 +654,12 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -599,14 +673,17 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -621,11 +698,13 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -638,6 +717,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWithKeyway", "start": 0, "type": "Identifier" @@ -645,13 +725,16 @@ description: Result of parsing helical-gear.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -662,6 +745,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -669,9 +753,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -689,6 +775,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -703,9 +790,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -715,15 +804,19 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -734,6 +827,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -741,9 +835,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -765,9 +861,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -777,15 +875,19 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -796,6 +898,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -803,9 +906,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -822,6 +927,7 @@ description: Result of parsing helical-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -832,9 +938,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -845,6 +953,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -857,6 +966,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -865,9 +975,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -883,9 +995,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -896,6 +1010,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -908,6 +1023,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -917,9 +1033,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -931,6 +1049,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -942,9 +1061,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -955,6 +1076,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -967,6 +1089,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -976,9 +1099,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -990,6 +1115,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1001,9 +1127,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1014,6 +1142,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1026,6 +1155,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1040,6 +1170,7 @@ description: Result of parsing helical-gear.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1051,19 +1182,23 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -1077,10 +1212,12 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1100,6 +1237,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1107,6 +1245,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1122,6 +1261,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1130,9 +1270,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1148,9 +1290,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1161,6 +1305,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1173,6 +1318,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1180,6 +1326,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1195,6 +1342,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1203,9 +1351,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -1221,6 +1371,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1229,9 +1380,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1247,9 +1400,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1260,19 +1415,23 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1283,6 +1442,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1291,12 +1451,14 @@ description: Result of parsing helical-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1313,11 +1475,13 @@ description: Result of parsing helical-gear.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1335,6 +1499,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -1350,18 +1515,22 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "acos", "start": 0, "type": "Identifier" @@ -1372,6 +1541,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1385,9 +1555,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -1397,15 +1569,19 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -1416,6 +1592,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1423,9 +1600,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -1440,6 +1619,7 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -1448,9 +1628,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1460,10 +1642,12 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1482,11 +1666,13 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate the amount to rotate each planar sketch of the gear given the gear helix angle and total gear height" ], @@ -1502,6 +1688,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -1509,13 +1696,16 @@ description: Result of parsing helical-gear.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1526,6 +1716,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1536,6 +1727,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1544,9 +1736,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -1562,9 +1756,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1575,6 +1771,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1582,9 +1779,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1603,6 +1802,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1614,6 +1814,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1622,9 +1823,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1640,6 +1843,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1651,9 +1855,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1663,10 +1869,12 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1686,9 +1894,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1699,6 +1909,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1710,9 +1921,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1723,6 +1936,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1735,6 +1949,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startDiameter", "start": 0, "type": "Identifier" @@ -1743,9 +1958,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1761,6 +1978,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endDiameter", "start": 0, "type": "Identifier" @@ -1769,9 +1987,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1787,6 +2007,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1795,9 +2016,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1813,6 +2036,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1820,6 +2044,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1831,9 +2056,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -1844,6 +2071,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1856,6 +2084,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1867,6 +2096,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1880,6 +2110,7 @@ description: Result of parsing helical-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "160", "start": 0, "type": "Literal", @@ -1889,14 +2120,17 @@ description: Result of parsing helical-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1910,14 +2144,17 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1937,6 +2174,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1948,9 +2186,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1960,10 +2200,12 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1983,9 +2225,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1996,6 +2240,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2007,9 +2252,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2020,6 +2267,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2032,6 +2280,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startDiameter", "start": 0, "type": "Identifier" @@ -2040,9 +2289,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -2058,6 +2309,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endDiameter", "start": 0, "type": "Identifier" @@ -2066,9 +2318,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -2084,6 +2338,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2098,6 +2353,7 @@ description: Result of parsing helical-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2107,15 +2363,19 @@ description: Result of parsing helical-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -2126,6 +2386,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2133,13 +2394,16 @@ description: Result of parsing helical-gear.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -2150,6 +2414,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2157,9 +2422,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2170,15 +2437,19 @@ description: Result of parsing helical-gear.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -2189,6 +2460,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2196,9 +2468,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2218,6 +2492,7 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2225,6 +2500,7 @@ description: Result of parsing helical-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2234,14 +2510,17 @@ description: Result of parsing helical-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -2261,6 +2540,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2272,6 +2552,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -2279,6 +2560,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2291,9 +2573,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -2304,6 +2588,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2316,6 +2601,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2327,6 +2613,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2340,6 +2627,7 @@ description: Result of parsing helical-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2349,14 +2637,17 @@ description: Result of parsing helical-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2370,14 +2661,17 @@ description: Result of parsing helical-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -2397,6 +2691,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2408,9 +2703,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -2420,10 +2717,12 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2443,9 +2742,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -2456,6 +2757,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2467,9 +2769,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2480,6 +2784,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2492,6 +2797,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2500,9 +2806,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2518,6 +2826,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2528,6 +2837,7 @@ description: Result of parsing helical-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2540,6 +2850,7 @@ description: Result of parsing helical-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2551,6 +2862,7 @@ description: Result of parsing helical-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2561,6 +2873,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2568,6 +2881,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2583,6 +2897,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2590,6 +2905,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2602,9 +2918,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -2615,25 +2933,30 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2644,6 +2967,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2656,6 +2980,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -2664,9 +2989,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWithKeyway", "start": 0, "type": "Identifier" @@ -2682,9 +3009,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2695,6 +3024,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2703,12 +3033,14 @@ description: Result of parsing helical-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2722,6 +3054,7 @@ description: Result of parsing helical-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2738,11 +3071,13 @@ description: Result of parsing helical-gear.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2757,9 +3092,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -2771,6 +3108,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2778,16 +3116,19 @@ description: Result of parsing helical-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2798,11 +3139,13 @@ description: Result of parsing helical-gear.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2815,6 +3158,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -2826,6 +3170,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2833,6 +3178,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2848,9 +3194,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -2861,16 +3209,19 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2888,6 +3239,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -2899,6 +3251,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2910,9 +3263,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2922,10 +3277,12 @@ description: Result of parsing helical-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2945,9 +3302,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -2958,16 +3317,19 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2985,6 +3347,7 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -2996,6 +3359,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -3004,9 +3368,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3022,9 +3388,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -3035,16 +3403,19 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3062,18 +3433,22 @@ description: Result of parsing helical-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -3084,6 +3459,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3094,9 +3470,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -3110,9 +3488,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -3126,9 +3506,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -3140,16 +3522,19 @@ description: Result of parsing helical-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3164,9 +3549,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -3178,6 +3565,7 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -3185,12 +3573,14 @@ description: Result of parsing helical-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "15": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3205,12 +3595,14 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -3221,6 +3613,7 @@ description: Result of parsing helical-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -3231,6 +3624,7 @@ description: Result of parsing helical-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -3241,6 +3635,7 @@ description: Result of parsing helical-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -3251,6 +3646,7 @@ description: Result of parsing helical-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3261,11 +3657,13 @@ description: Result of parsing helical-gear.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Define a function to create a helical gear" ], @@ -3283,6 +3681,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -3290,6 +3689,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21", "start": 0, "type": "Literal", @@ -3305,6 +3705,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -3312,6 +3713,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3327,6 +3729,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -3334,6 +3737,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -3349,6 +3753,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -3356,6 +3761,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -3371,6 +3777,7 @@ description: Result of parsing helical-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3378,6 +3785,7 @@ description: Result of parsing helical-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -3393,9 +3801,11 @@ description: Result of parsing helical-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -3406,11 +3816,13 @@ description: Result of parsing helical-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3422,9 +3834,11 @@ description: Result of parsing helical-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3443,19 +3857,23 @@ description: Result of parsing helical-gear.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -3471,12 +3889,14 @@ description: Result of parsing helical-gear.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3489,6 +3909,7 @@ description: Result of parsing helical-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/ast.snap b/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/ast.snap index d869f4c1d..a5833cd1e 100644 --- a/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -39,9 +41,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -51,14 +55,17 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -72,11 +79,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate gear parameters" ], @@ -92,6 +101,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -100,9 +110,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -112,11 +124,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -129,6 +143,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -148,14 +164,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -169,11 +188,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -186,6 +207,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -197,9 +219,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -209,15 +233,19 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -228,6 +256,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -235,9 +264,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -252,11 +283,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -269,6 +302,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -280,9 +314,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -292,6 +328,7 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -299,6 +336,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -308,14 +346,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -333,11 +374,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -350,6 +393,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -357,6 +401,7 @@ description: Result of parsing helical-planetary-gearset.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -366,11 +411,13 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -388,6 +435,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -399,9 +447,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -411,10 +461,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -428,11 +480,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -445,6 +499,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -452,6 +507,7 @@ description: Result of parsing helical-planetary-gearset.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -461,11 +517,13 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -478,6 +536,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -489,9 +548,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -501,10 +562,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -518,11 +581,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -535,18 +600,22 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "asin", "start": 0, "type": "Identifier" @@ -557,6 +626,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -570,9 +640,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -582,10 +654,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -599,14 +673,17 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -621,11 +698,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -638,6 +717,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWithKeyway", "start": 0, "type": "Identifier" @@ -645,13 +725,16 @@ description: Result of parsing helical-planetary-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -662,6 +745,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -669,9 +753,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -689,6 +775,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -703,9 +790,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -715,15 +804,19 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -734,6 +827,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -741,9 +835,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -765,9 +861,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -777,15 +875,19 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -796,6 +898,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -803,9 +906,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -822,6 +927,7 @@ description: Result of parsing helical-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -832,9 +938,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -845,6 +953,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -857,6 +966,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -865,9 +975,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -883,9 +995,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -896,6 +1010,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -908,6 +1023,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -917,9 +1033,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -931,6 +1049,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -942,9 +1061,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -955,6 +1076,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -967,6 +1089,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -976,9 +1099,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -990,6 +1115,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1001,9 +1127,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1014,6 +1142,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1026,6 +1155,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1040,6 +1170,7 @@ description: Result of parsing helical-planetary-gearset.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1051,19 +1182,23 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -1077,10 +1212,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1100,6 +1237,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1107,6 +1245,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1122,6 +1261,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1130,9 +1270,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1148,9 +1290,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1161,6 +1305,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1173,6 +1318,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1180,6 +1326,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1195,6 +1342,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1203,9 +1351,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -1221,6 +1371,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1229,9 +1380,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1247,9 +1400,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1260,19 +1415,23 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1283,6 +1442,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1291,12 +1451,14 @@ description: Result of parsing helical-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1313,11 +1475,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1335,6 +1499,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -1350,18 +1515,22 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "acos", "start": 0, "type": "Identifier" @@ -1372,6 +1541,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1385,9 +1555,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -1397,15 +1569,19 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -1416,6 +1592,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1423,9 +1600,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -1440,6 +1619,7 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -1448,9 +1628,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1460,10 +1642,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1482,11 +1666,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate the amount to rotate each planar sketch of the gear given the gear helix angle and total gear height" ], @@ -1502,6 +1688,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -1509,13 +1696,16 @@ description: Result of parsing helical-planetary-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1526,6 +1716,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1536,6 +1727,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1544,9 +1736,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -1562,9 +1756,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1575,6 +1771,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1582,9 +1779,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1603,6 +1802,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1614,6 +1814,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1622,9 +1823,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1640,6 +1843,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1651,9 +1855,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1663,10 +1869,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1686,9 +1894,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1699,6 +1909,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1710,9 +1921,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1723,6 +1936,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1735,6 +1949,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -1746,9 +1961,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1758,10 +1975,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1781,6 +2000,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -1792,9 +2012,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1804,10 +2026,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1827,6 +2051,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1835,9 +2060,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1853,6 +2080,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1860,6 +2088,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1871,9 +2100,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -1884,6 +2115,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1896,6 +2128,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1907,6 +2140,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1920,6 +2154,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "160", "start": 0, "type": "Literal", @@ -1929,14 +2164,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1950,14 +2188,17 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1977,6 +2218,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1988,9 +2230,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -2000,10 +2244,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2023,9 +2269,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -2036,6 +2284,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2047,9 +2296,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2060,6 +2311,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2072,6 +2324,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -2083,9 +2336,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -2095,10 +2350,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2118,6 +2375,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -2129,9 +2387,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -2141,10 +2401,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2164,6 +2426,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2178,6 +2441,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2187,15 +2451,19 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -2206,6 +2474,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2213,13 +2482,16 @@ description: Result of parsing helical-planetary-gearset.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -2230,6 +2502,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2237,9 +2510,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2250,15 +2525,19 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -2269,6 +2548,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2276,9 +2556,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2298,6 +2580,7 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2305,6 +2588,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2314,14 +2598,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -2341,6 +2628,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2352,6 +2640,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -2359,6 +2648,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2371,9 +2661,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -2384,6 +2676,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2396,6 +2689,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2407,6 +2701,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2420,6 +2715,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2429,14 +2725,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2450,14 +2749,17 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -2477,6 +2779,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2488,9 +2791,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -2500,10 +2805,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2523,9 +2830,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -2536,6 +2845,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2547,9 +2857,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2560,6 +2872,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2572,6 +2885,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2580,9 +2894,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2598,6 +2914,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2608,6 +2925,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2620,6 +2938,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2631,6 +2950,7 @@ description: Result of parsing helical-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2641,6 +2961,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2648,6 +2969,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2663,6 +2985,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2670,6 +2993,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2682,9 +3006,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -2695,25 +3021,30 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2724,6 +3055,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2736,6 +3068,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -2744,9 +3077,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWithKeyway", "start": 0, "type": "Identifier" @@ -2762,9 +3097,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2775,6 +3112,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2783,12 +3121,14 @@ description: Result of parsing helical-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2802,6 +3142,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2818,11 +3159,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2837,9 +3180,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -2851,6 +3196,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2858,16 +3204,19 @@ description: Result of parsing helical-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2878,11 +3227,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2895,6 +3246,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -2906,6 +3258,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2913,6 +3266,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2928,9 +3282,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -2941,16 +3297,19 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2968,6 +3327,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -2979,6 +3339,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2990,9 +3351,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3002,10 +3365,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3025,9 +3390,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -3038,16 +3405,19 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3065,6 +3435,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -3076,6 +3447,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -3084,9 +3456,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3102,9 +3476,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGearSketch", "start": 0, "type": "Identifier" @@ -3115,16 +3491,19 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3142,18 +3521,22 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -3164,6 +3547,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3174,9 +3558,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -3190,9 +3576,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -3206,9 +3594,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -3220,16 +3610,19 @@ description: Result of parsing helical-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3244,9 +3637,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -3258,6 +3653,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -3265,12 +3661,14 @@ description: Result of parsing helical-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "15": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3285,12 +3683,14 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -3301,6 +3701,7 @@ description: Result of parsing helical-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -3311,6 +3712,7 @@ description: Result of parsing helical-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -3321,6 +3723,7 @@ description: Result of parsing helical-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -3331,6 +3734,7 @@ description: Result of parsing helical-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -3341,11 +3745,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Define a function to create a helical gear" ], @@ -3361,6 +3767,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGear", "start": 0, "type": "Identifier" @@ -3376,6 +3783,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -3387,9 +3795,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -3399,14 +3809,17 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -3420,11 +3833,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate gear parameters" ], @@ -3440,6 +3855,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -3448,9 +3864,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -3460,11 +3878,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3477,6 +3897,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -3487,6 +3908,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -3496,14 +3918,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -3517,11 +3942,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3534,6 +3961,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -3545,9 +3973,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -3557,15 +3987,19 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -3576,6 +4010,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3583,9 +4018,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -3600,11 +4037,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3617,6 +4056,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -3628,9 +4068,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -3640,6 +4082,7 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3647,6 +4090,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3656,14 +4100,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -3681,11 +4128,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3698,6 +4147,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -3713,18 +4163,22 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "acos", "start": 0, "type": "Identifier" @@ -3735,6 +4189,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3748,9 +4203,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -3760,15 +4217,19 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -3779,6 +4240,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3786,9 +4248,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -3803,6 +4267,7 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -3811,9 +4276,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -3823,10 +4290,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3845,11 +4314,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate the amount to rotate each planar sketch of the gear given the gear helix angle and total gear height" ], @@ -3865,6 +4336,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringTeeth", "start": 0, "type": "Identifier" @@ -3872,13 +4344,16 @@ description: Result of parsing helical-planetary-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3889,6 +4364,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3899,6 +4375,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3907,9 +4384,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -3925,9 +4404,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3938,6 +4419,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3945,9 +4427,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3966,6 +4450,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3977,6 +4462,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3985,9 +4471,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -4003,6 +4491,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4014,9 +4503,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -4026,10 +4517,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4049,9 +4542,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -4062,6 +4557,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4073,9 +4569,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4086,6 +4584,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4098,6 +4597,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -4109,9 +4609,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -4121,10 +4623,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4144,6 +4648,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -4155,9 +4660,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -4167,10 +4674,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4190,6 +4699,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4198,9 +4708,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -4216,6 +4728,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4223,6 +4736,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4234,9 +4748,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -4247,6 +4763,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4259,6 +4776,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4270,6 +4788,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4283,6 +4802,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -4292,14 +4812,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -4313,14 +4836,17 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -4340,6 +4866,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4351,9 +4878,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -4363,10 +4892,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4386,9 +4917,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -4399,6 +4932,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4410,9 +4944,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4423,6 +4959,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4435,6 +4972,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -4446,9 +4984,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -4458,10 +4998,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4481,6 +5023,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -4492,9 +5035,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -4504,10 +5049,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4527,6 +5074,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4541,6 +5089,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4550,15 +5099,19 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -4569,6 +5122,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4576,13 +5130,16 @@ description: Result of parsing helical-planetary-gearset.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -4593,6 +5150,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4600,9 +5158,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -4613,15 +5173,19 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -4632,6 +5196,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4639,9 +5204,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -4661,6 +5228,7 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4668,6 +5236,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4677,14 +5246,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -4704,6 +5276,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4715,6 +5288,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -4722,6 +5296,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -4734,9 +5309,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -4747,6 +5324,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4759,6 +5337,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4770,6 +5349,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4783,6 +5363,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -4792,14 +5373,17 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -4813,14 +5397,17 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -4840,6 +5427,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4851,9 +5439,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -4863,10 +5453,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4886,9 +5478,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -4899,6 +5493,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4910,9 +5505,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4923,6 +5520,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4935,6 +5533,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4943,9 +5542,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -4961,6 +5562,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4971,6 +5573,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4983,6 +5586,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4994,6 +5598,7 @@ description: Result of parsing helical-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5004,6 +5609,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -5011,6 +5617,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -5026,6 +5633,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -5033,6 +5641,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -5045,9 +5654,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -5058,25 +5669,30 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5087,6 +5703,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5095,12 +5712,14 @@ description: Result of parsing helical-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5114,6 +5733,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5127,6 +5747,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5143,11 +5764,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5165,6 +5788,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -5172,13 +5796,16 @@ description: Result of parsing helical-planetary-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5189,6 +5816,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5199,6 +5827,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5207,9 +5836,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -5225,9 +5856,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5238,6 +5871,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5245,9 +5879,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -5266,6 +5902,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5276,6 +5913,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5288,6 +5926,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5299,6 +5938,7 @@ description: Result of parsing helical-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5309,6 +5949,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5320,9 +5961,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -5332,10 +5975,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.85", "start": 0, "type": "Literal", @@ -5355,9 +6000,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5368,6 +6015,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5380,6 +6028,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -5388,9 +6037,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringTeeth", "start": 0, "type": "Identifier" @@ -5406,9 +6057,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -5419,6 +6072,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5427,15 +6081,18 @@ description: Result of parsing helical-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5445,9 +6102,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -5459,6 +6118,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -5466,16 +6126,19 @@ description: Result of parsing helical-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -5486,11 +6149,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -5508,6 +6173,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -5519,6 +6185,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -5526,6 +6193,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5541,9 +6209,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -5554,16 +6224,19 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5581,6 +6254,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -5592,6 +6266,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -5603,9 +6278,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -5615,10 +6292,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5638,9 +6317,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -5651,16 +6332,19 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5678,6 +6362,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -5689,6 +6374,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -5697,9 +6383,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -5715,9 +6403,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -5728,16 +6418,19 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5755,18 +6448,22 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGear", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -5777,6 +6474,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5787,9 +6485,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -5803,9 +6503,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -5819,9 +6521,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -5833,16 +6537,19 @@ description: Result of parsing helical-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5857,9 +6564,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGear", "start": 0, "type": "Identifier" @@ -5871,6 +6580,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -5878,12 +6588,14 @@ description: Result of parsing helical-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5898,12 +6610,14 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -5914,6 +6628,7 @@ description: Result of parsing helical-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -5924,6 +6639,7 @@ description: Result of parsing helical-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -5934,6 +6650,7 @@ description: Result of parsing helical-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -5944,6 +6661,7 @@ description: Result of parsing helical-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -5954,11 +6672,13 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -5978,6 +6698,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -5985,6 +6706,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "42", "start": 0, "type": "Literal", @@ -6000,6 +6722,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -6007,6 +6730,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -6022,6 +6746,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -6029,6 +6754,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -6044,6 +6770,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -6052,6 +6779,7 @@ description: Result of parsing helical-planetary-gearset.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -6063,6 +6791,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6074,6 +6803,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -6081,6 +6811,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -6096,9 +6827,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGear", "start": 0, "type": "Identifier" @@ -6109,11 +6842,13 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -6133,6 +6868,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -6140,6 +6876,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -6155,6 +6892,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -6162,6 +6900,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -6177,6 +6916,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -6184,6 +6924,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -6199,6 +6940,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -6206,6 +6948,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -6221,6 +6964,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -6228,6 +6972,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -6243,9 +6988,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -6256,11 +7003,13 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -6278,6 +7027,7 @@ description: Result of parsing helical-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numPlanetGears", "start": 0, "type": "Identifier" @@ -6285,6 +7035,7 @@ description: Result of parsing helical-planetary-gearset.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6294,11 +7045,13 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6320,6 +7073,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -6327,6 +7081,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -6342,6 +7097,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -6349,6 +7105,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -6364,6 +7121,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -6371,6 +7129,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -6386,6 +7145,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -6394,6 +7154,7 @@ description: Result of parsing helical-planetary-gearset.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -6405,6 +7166,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6416,6 +7178,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -6423,6 +7186,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -6438,9 +7202,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helicalGear", "start": 0, "type": "Identifier" @@ -6451,6 +7217,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6463,6 +7230,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -6482,6 +7250,7 @@ description: Result of parsing helical-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -6491,10 +7260,12 @@ description: Result of parsing helical-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -6508,10 +7279,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6525,10 +7298,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -6542,10 +7317,12 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.7", "start": 0, "type": "Literal", @@ -6565,9 +7342,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -6578,6 +7357,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6590,6 +7370,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6598,9 +7379,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numPlanetGears", "start": 0, "type": "Identifier" @@ -6616,6 +7399,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -6626,6 +7410,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6638,6 +7423,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6650,6 +7436,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6661,6 +7448,7 @@ description: Result of parsing helical-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6671,6 +7459,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6681,6 +7470,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6693,6 +7483,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6705,6 +7496,7 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6716,6 +7508,7 @@ description: Result of parsing helical-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6726,6 +7519,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -6733,6 +7527,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -6748,6 +7543,7 @@ description: Result of parsing helical-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -6755,6 +7551,7 @@ description: Result of parsing helical-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -6767,9 +7564,11 @@ description: Result of parsing helical-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -6780,6 +7579,7 @@ description: Result of parsing helical-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6788,10 +7588,12 @@ description: Result of parsing helical-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -6803,9 +7605,11 @@ description: Result of parsing helical-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -6824,19 +7628,23 @@ description: Result of parsing helical-planetary-gearset.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -6852,12 +7660,14 @@ description: Result of parsing helical-planetary-gearset.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/helium-tank/ast.snap b/rust/kcl-lib/tests/kcl_samples/helium-tank/ast.snap index 91e8dcc95..818d7de8c 100644 --- a/rust/kcl-lib/tests/kcl_samples/helium-tank/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/helium-tank/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing helium-tank.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5ft", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing helium-tank.kcl "suffix": "Ft" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing helium-tank.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing helium-tank.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "portDiameter", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing helium-tank.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketThickness", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing helium-tank.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.090", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSize", "start": 0, "type": "Identifier" @@ -191,6 +212,7 @@ description: Result of parsing helium-tank.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -200,10 +222,12 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -217,11 +241,13 @@ description: Result of parsing helium-tank.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -234,6 +260,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankSketch", "start": 0, "type": "Identifier" @@ -241,13 +268,16 @@ description: Result of parsing helium-tank.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -258,6 +288,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -265,9 +296,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -285,6 +318,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -299,9 +333,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "portDiameter", "start": 0, "type": "Identifier" @@ -311,10 +347,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -332,9 +370,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -346,6 +386,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -356,9 +397,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -369,6 +412,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -381,6 +425,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -389,6 +434,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -400,6 +446,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -411,9 +458,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -424,6 +473,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -436,6 +486,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -443,6 +494,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -458,9 +510,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -471,6 +525,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -483,6 +538,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -491,6 +547,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "110", "start": 0, "type": "Literal", @@ -502,6 +559,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -513,6 +571,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -520,6 +579,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -535,9 +595,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -548,6 +610,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -560,6 +623,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -567,6 +631,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -582,6 +647,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -589,6 +655,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -604,9 +671,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -617,6 +686,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -629,6 +699,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -637,6 +708,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "110", "start": 0, "type": "Literal", @@ -648,6 +720,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -659,6 +732,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -666,6 +740,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -681,9 +756,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -694,6 +771,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -706,6 +784,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -713,6 +792,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -728,6 +808,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -735,6 +816,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -750,9 +832,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -763,6 +847,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -775,6 +860,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -783,6 +869,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -794,6 +881,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -805,6 +893,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -819,9 +908,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -831,10 +922,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -848,15 +941,19 @@ description: Result of parsing helium-tank.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegX", "start": 0, "type": "Identifier" @@ -867,12 +964,14 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -888,6 +987,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -895,6 +995,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -906,9 +1007,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -919,6 +1022,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -931,18 +1035,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -953,6 +1061,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -960,9 +1069,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -979,6 +1090,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -986,6 +1098,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -1001,6 +1114,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1008,6 +1122,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1019,9 +1134,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1032,6 +1149,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1044,6 +1162,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1052,6 +1171,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1063,6 +1183,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1074,6 +1195,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1081,6 +1203,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1096,6 +1219,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1103,6 +1227,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1114,9 +1239,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1127,6 +1254,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1139,18 +1267,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -1161,6 +1293,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1168,9 +1301,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1187,6 +1322,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -1194,6 +1330,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.001", "start": 0, "type": "Literal", @@ -1209,6 +1346,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1216,6 +1354,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1227,9 +1366,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1240,6 +1381,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1252,6 +1394,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1260,9 +1403,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1278,9 +1423,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1291,6 +1438,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1303,18 +1451,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1325,6 +1477,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1332,9 +1485,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg08", "start": 0, "type": "Identifier" @@ -1351,9 +1506,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1364,6 +1521,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1376,6 +1534,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1383,6 +1542,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1398,6 +1558,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1408,6 +1569,7 @@ description: Result of parsing helium-tank.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1417,14 +1579,17 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1444,9 +1609,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1457,6 +1624,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1469,18 +1637,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1491,6 +1663,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1498,9 +1671,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg09", "start": 0, "type": "Identifier" @@ -1517,9 +1692,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1530,6 +1707,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1542,6 +1720,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1549,6 +1728,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1564,6 +1744,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1581,9 +1762,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -1593,10 +1776,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1610,14 +1795,17 @@ description: Result of parsing helium-tank.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1631,10 +1819,12 @@ description: Result of parsing helium-tank.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.3", "start": 0, "type": "Literal", @@ -1654,9 +1844,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1667,6 +1859,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1679,6 +1872,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1687,13 +1881,16 @@ description: Result of parsing helium-tank.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1704,21 +1901,25 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -1738,9 +1939,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1751,6 +1954,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1763,18 +1967,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1785,12 +1993,14 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1802,9 +2012,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1815,6 +2027,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1827,6 +2040,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1835,13 +2049,16 @@ description: Result of parsing helium-tank.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1852,25 +2069,30 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1881,12 +2103,14 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1894,6 +2118,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1904,9 +2129,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1917,19 +2144,23 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1940,6 +2171,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1948,12 +2180,14 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "20": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1970,11 +2204,13 @@ description: Result of parsing helium-tank.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1992,6 +2228,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankRevolve", "start": 0, "type": "Identifier" @@ -2003,6 +2240,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2010,6 +2248,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "220", "start": 0, "type": "Literal", @@ -2025,6 +2264,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2033,9 +2273,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -2051,9 +2293,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -2064,6 +2308,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2071,9 +2316,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankSketch", "start": 0, "type": "Identifier" @@ -2084,11 +2331,13 @@ description: Result of parsing helium-tank.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2101,6 +2350,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveBody", "start": 0, "type": "Identifier" @@ -2108,13 +2358,16 @@ description: Result of parsing helium-tank.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2125,6 +2378,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2135,6 +2389,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2146,9 +2401,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -2158,10 +2415,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2181,9 +2440,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2194,6 +2455,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2201,9 +2463,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2222,6 +2486,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2232,6 +2497,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2244,6 +2510,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2255,6 +2522,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2265,6 +2533,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2276,9 +2545,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "portDiameter", "start": 0, "type": "Identifier" @@ -2288,10 +2559,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -2311,6 +2584,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2318,6 +2592,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2329,9 +2604,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2342,6 +2619,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2354,6 +2632,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2361,6 +2640,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -2376,6 +2656,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -2383,6 +2664,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2394,9 +2676,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2407,6 +2691,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2419,6 +2704,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2426,6 +2712,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -2441,6 +2728,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2455,6 +2743,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -2466,9 +2755,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2482,9 +2773,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capEnd001", "start": 0, "type": "Identifier" @@ -2496,6 +2789,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2506,9 +2800,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -2519,6 +2815,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2526,6 +2823,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2536,9 +2834,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -2549,6 +2849,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2557,12 +2858,14 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2579,11 +2882,13 @@ description: Result of parsing helium-tank.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2601,6 +2906,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valvePort", "start": 0, "type": "Identifier" @@ -2608,13 +2914,16 @@ description: Result of parsing helium-tank.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2625,6 +2934,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2632,9 +2942,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -2652,6 +2964,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2662,6 +2975,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2678,9 +2992,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -2690,10 +3006,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -2709,6 +3027,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2719,6 +3038,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2730,9 +3050,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "portDiameter", "start": 0, "type": "Identifier" @@ -2742,10 +3064,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2765,9 +3089,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2778,6 +3104,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2790,6 +3117,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -2801,6 +3129,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2811,6 +3140,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2827,9 +3157,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -2839,10 +3171,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -2858,6 +3192,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2868,6 +3203,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2879,9 +3215,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "portDiameter", "start": 0, "type": "Identifier" @@ -2891,10 +3229,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.25", "start": 0, "type": "Literal", @@ -2914,9 +3254,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2927,6 +3269,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2938,9 +3281,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2951,6 +3296,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2963,6 +3309,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2970,6 +3317,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.3", "start": 0, "type": "Literal", @@ -2985,9 +3333,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2998,6 +3348,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3006,15 +3357,18 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3027,6 +3381,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valve", "start": 0, "type": "Identifier" @@ -3034,13 +3389,16 @@ description: Result of parsing helium-tank.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -3051,6 +3409,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3061,9 +3420,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valveBody", "start": 0, "type": "Identifier" @@ -3077,9 +3438,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "valvePort", "start": 0, "type": "Identifier" @@ -3091,6 +3454,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3103,6 +3467,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -3110,6 +3475,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#9a4618\"", "start": 0, "type": "Literal", @@ -3122,9 +3488,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -3135,6 +3503,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3143,12 +3512,14 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3165,11 +3536,13 @@ description: Result of parsing helium-tank.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3182,6 +3555,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketOffsetProfile", "start": 0, "type": "Identifier" @@ -3189,13 +3563,16 @@ description: Result of parsing helium-tank.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3206,6 +3583,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3216,6 +3594,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3227,9 +3606,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -3239,10 +3620,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.67", "start": 0, "type": "Literal", @@ -3262,9 +3645,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3275,6 +3660,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3282,9 +3668,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3303,6 +3691,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3313,6 +3702,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3332,9 +3722,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -3344,10 +3736,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3361,14 +3755,17 @@ description: Result of parsing helium-tank.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3384,6 +3781,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3394,9 +3792,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3407,6 +3807,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3419,6 +3820,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3427,6 +3829,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -3438,6 +3841,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3449,9 +3853,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3462,6 +3868,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3474,6 +3881,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3481,6 +3889,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -3496,6 +3905,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3510,9 +3920,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -3522,10 +3934,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3539,14 +3953,17 @@ description: Result of parsing helium-tank.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3566,9 +3983,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3579,6 +3998,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3591,6 +4011,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3599,6 +4020,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "135", "start": 0, "type": "Literal", @@ -3610,6 +4032,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3621,6 +4044,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3631,6 +4055,7 @@ description: Result of parsing helium-tank.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -3640,14 +4065,17 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3667,6 +4095,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3674,6 +4103,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3685,9 +4115,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3698,6 +4130,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3710,18 +4143,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -3732,6 +4169,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3739,9 +4177,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg06", "start": 0, "type": "Identifier" @@ -3758,6 +4198,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3769,9 +4210,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -3781,10 +4224,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -3804,9 +4249,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3817,6 +4264,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3829,6 +4277,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3837,6 +4286,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -3848,6 +4298,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3859,6 +4310,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3869,6 +4321,7 @@ description: Result of parsing helium-tank.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -3878,14 +4331,17 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3905,6 +4361,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3912,6 +4369,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3923,9 +4381,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3936,6 +4396,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3948,18 +4409,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -3970,6 +4435,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3977,9 +4443,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg07", "start": 0, "type": "Identifier" @@ -3996,6 +4464,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -4003,6 +4472,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4018,9 +4488,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4031,6 +4503,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4043,6 +4516,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4051,9 +4525,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -4069,9 +4545,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -4082,19 +4560,23 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4105,6 +4587,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4113,12 +4596,14 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4135,11 +4620,13 @@ description: Result of parsing helium-tank.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4152,6 +4639,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketProfile", "start": 0, "type": "Identifier" @@ -4159,13 +4647,16 @@ description: Result of parsing helium-tank.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4176,6 +4667,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4186,6 +4678,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -4197,9 +4690,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -4209,10 +4704,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.67", "start": 0, "type": "Literal", @@ -4232,9 +4729,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -4245,6 +4744,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4252,9 +4752,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4273,6 +4775,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4283,6 +4786,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4299,9 +4803,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -4311,10 +4817,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4330,6 +4838,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4340,9 +4849,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4353,6 +4864,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4365,6 +4877,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4373,6 +4886,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -4384,6 +4898,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4395,9 +4910,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4408,6 +4925,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4420,6 +4938,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4427,6 +4946,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -4442,6 +4962,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4453,9 +4974,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -4465,10 +4988,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4488,9 +5013,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4501,6 +5028,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4513,6 +5041,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4521,6 +5050,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "135", "start": 0, "type": "Literal", @@ -4532,6 +5062,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4543,6 +5074,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4550,6 +5082,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -4565,6 +5098,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4572,6 +5106,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4583,9 +5118,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4596,6 +5133,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4608,18 +5146,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -4630,6 +5172,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4637,9 +5180,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -4656,6 +5201,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4667,9 +5213,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -4679,10 +5227,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -4702,9 +5252,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4715,6 +5267,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4727,6 +5280,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4735,6 +5289,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -4746,6 +5301,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4757,6 +5313,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4764,6 +5321,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -4779,6 +5337,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4786,6 +5345,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4797,9 +5357,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4810,6 +5372,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4822,18 +5385,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -4844,6 +5411,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4851,9 +5419,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -4870,6 +5440,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -4877,6 +5448,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4892,9 +5464,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4905,6 +5479,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4917,6 +5492,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4925,9 +5501,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -4943,9 +5521,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -4956,19 +5536,23 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4979,6 +5563,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4991,6 +5576,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -4999,9 +5585,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketOffsetProfile", "start": 0, "type": "Identifier" @@ -5017,9 +5605,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -5030,6 +5620,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5042,6 +5633,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5049,6 +5641,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5064,6 +5657,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -5071,6 +5665,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -5083,9 +5678,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5096,6 +5693,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5104,12 +5702,14 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "11": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5126,11 +5726,13 @@ description: Result of parsing helium-tank.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5143,6 +5745,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "strapSleeve", "start": 0, "type": "Identifier" @@ -5150,13 +5753,16 @@ description: Result of parsing helium-tank.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5167,6 +5773,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5177,6 +5784,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5188,9 +5796,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -5200,10 +5810,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.67", "start": 0, "type": "Literal", @@ -5223,9 +5835,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5236,6 +5850,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5243,9 +5858,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -5264,6 +5881,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5274,6 +5892,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5289,6 +5908,7 @@ description: Result of parsing helium-tank.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".125", "start": 0, "type": "Literal", @@ -5298,10 +5918,12 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5317,6 +5939,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5327,6 +5950,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5334,6 +5958,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.75", "start": 0, "type": "Literal", @@ -5349,9 +5974,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5362,6 +5989,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5374,6 +6002,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -5385,6 +6014,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5395,6 +6025,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5410,6 +6041,7 @@ description: Result of parsing helium-tank.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".125", "start": 0, "type": "Literal", @@ -5419,10 +6051,12 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5438,6 +6072,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5448,6 +6083,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5455,6 +6091,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.65", "start": 0, "type": "Literal", @@ -5470,9 +6107,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5483,6 +6122,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5494,9 +6134,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -5507,6 +6149,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5519,6 +6162,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5526,6 +6170,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".8", "start": 0, "type": "Literal", @@ -5541,6 +6186,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -5548,6 +6194,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -5560,9 +6207,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5573,6 +6222,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5581,15 +6231,18 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5602,6 +6255,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketSleeve", "start": 0, "type": "Identifier" @@ -5613,6 +6267,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -5624,9 +6279,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "strapSleeve", "start": 0, "type": "Identifier" @@ -5638,6 +6295,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5648,9 +6306,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -5661,6 +6321,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5671,9 +6332,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketProfile", "start": 0, "type": "Identifier" @@ -5685,16 +6348,19 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5707,6 +6373,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingHoles", "start": 0, "type": "Identifier" @@ -5714,13 +6381,16 @@ description: Result of parsing helium-tank.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5731,6 +6401,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5741,6 +6412,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5753,9 +6425,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -5767,15 +6441,18 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -5795,9 +6472,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5808,6 +6487,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5815,9 +6495,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -5836,6 +6518,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5850,9 +6533,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -5862,10 +6547,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.5", "start": 0, "type": "Literal", @@ -5886,9 +6573,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -5898,10 +6587,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.67", "start": 0, "type": "Literal", @@ -5917,6 +6608,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5927,6 +6619,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5938,9 +6631,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltSize", "start": 0, "type": "Identifier" @@ -5950,10 +6645,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5973,9 +6670,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5986,6 +6685,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5998,6 +6698,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6006,6 +6707,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -6017,6 +6719,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6028,9 +6731,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6041,6 +6746,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6049,15 +6755,18 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6075,6 +6784,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracket", "start": 0, "type": "Identifier" @@ -6088,18 +6798,22 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -6110,6 +6824,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6120,6 +6835,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6127,6 +6843,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6142,6 +6859,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -6153,9 +6871,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -6165,10 +6885,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.25", "start": 0, "type": "Literal", @@ -6188,6 +6910,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -6199,6 +6922,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6210,6 +6934,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6218,6 +6943,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6230,6 +6956,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6241,6 +6968,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6251,9 +6979,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -6264,6 +6994,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6271,9 +7002,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingHoles", "start": 0, "type": "Identifier" @@ -6291,9 +7024,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -6304,6 +7039,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6314,9 +7050,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketSleeve", "start": 0, "type": "Identifier" @@ -6328,6 +7066,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6340,6 +7079,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -6347,6 +7087,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#cd0404\"", "start": 0, "type": "Literal", @@ -6359,9 +7100,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -6372,6 +7115,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6380,12 +7124,14 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6402,11 +7148,13 @@ description: Result of parsing helium-tank.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6419,6 +7167,7 @@ description: Result of parsing helium-tank.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingStrap", "start": 0, "type": "Identifier" @@ -6426,13 +7175,16 @@ description: Result of parsing helium-tank.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6443,6 +7195,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6453,6 +7206,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -6464,9 +7218,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -6476,10 +7232,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.67", "start": 0, "type": "Literal", @@ -6499,9 +7257,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -6512,6 +7272,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6519,9 +7280,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -6540,6 +7303,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6550,6 +7314,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6565,6 +7330,7 @@ description: Result of parsing helium-tank.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".155", "start": 0, "type": "Literal", @@ -6574,10 +7340,12 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6593,6 +7361,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6603,6 +7372,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6614,9 +7384,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -6626,10 +7398,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -6649,9 +7423,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6662,6 +7438,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6674,6 +7451,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -6685,6 +7463,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6695,6 +7474,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6710,6 +7490,7 @@ description: Result of parsing helium-tank.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".155", "start": 0, "type": "Literal", @@ -6719,10 +7500,12 @@ description: Result of parsing helium-tank.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6738,6 +7521,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6748,6 +7532,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6762,9 +7547,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankDiameter", "start": 0, "type": "Identifier" @@ -6774,10 +7561,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -6791,10 +7580,12 @@ description: Result of parsing helium-tank.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -6814,9 +7605,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6827,6 +7620,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6838,9 +7632,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -6851,6 +7647,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6863,6 +7660,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6870,6 +7668,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".75", "start": 0, "type": "Literal", @@ -6885,6 +7684,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -6892,6 +7692,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -6904,9 +7705,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6917,6 +7720,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6929,6 +7733,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -6936,6 +7741,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#210d03\"", "start": 0, "type": "Literal", @@ -6948,9 +7754,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -6961,6 +7769,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6969,12 +7778,14 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6991,11 +7802,13 @@ description: Result of parsing helium-tank.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7012,9 +7825,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracket", "start": 0, "type": "Identifier" @@ -7028,9 +7843,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingStrap", "start": 0, "type": "Identifier" @@ -7042,6 +7859,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7053,6 +7871,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -7060,6 +7879,7 @@ description: Result of parsing helium-tank.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7075,6 +7895,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -7086,9 +7907,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tankHeight", "start": 0, "type": "Identifier" @@ -7098,10 +7921,12 @@ description: Result of parsing helium-tank.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.33", "start": 0, "type": "Literal", @@ -7121,6 +7946,7 @@ description: Result of parsing helium-tank.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -7131,6 +7957,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7143,6 +7970,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7156,6 +7984,7 @@ description: Result of parsing helium-tank.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7167,6 +7996,7 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7174,6 +8004,7 @@ description: Result of parsing helium-tank.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7184,9 +8015,11 @@ description: Result of parsing helium-tank.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -7197,12 +8030,14 @@ description: Result of parsing helium-tank.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7211,10 +8046,12 @@ description: Result of parsing helium-tank.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -7226,9 +8063,11 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -7247,19 +8086,23 @@ description: Result of parsing helium-tank.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -7275,12 +8118,14 @@ description: Result of parsing helium-tank.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "15": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7293,6 +8138,7 @@ description: Result of parsing helium-tank.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/helium-tank/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/helium-tank/program_memory.snap index 9c3e6edbe..8a9e1ef16 100644 --- a/rust/kcl-lib/tests/kcl_samples/helium-tank/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/helium-tank/program_memory.snap @@ -87,6 +87,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 3388, "end": 3394, + "moduleId": 0, "start": 3388, "type": "TagDeclarator", "value": "seg04" @@ -136,6 +137,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 3521, "end": 3527, + "moduleId": 0, "start": 3521, "type": "TagDeclarator", "value": "seg05" @@ -327,6 +329,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 2738, "end": 2744, + "moduleId": 0, "start": 2738, "type": "TagDeclarator", "value": "seg06" @@ -376,6 +379,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 2887, "end": 2893, + "moduleId": 0, "start": 2887, "type": "TagDeclarator", "value": "seg07" @@ -564,6 +568,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 3388, "end": 3394, + "moduleId": 0, "start": 3388, "type": "TagDeclarator", "value": "seg04" @@ -613,6 +618,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 3521, "end": 3527, + "moduleId": 0, "start": 3521, "type": "TagDeclarator", "value": "seg05" @@ -809,6 +815,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 3388, "end": 3394, + "moduleId": 0, "start": 3388, "type": "TagDeclarator", "value": "seg04" @@ -858,6 +865,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 3521, "end": 3527, + "moduleId": 0, "start": 3521, "type": "TagDeclarator", "value": "seg05" @@ -1461,6 +1469,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg01" @@ -1474,6 +1483,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 922, "end": 928, + "moduleId": 0, "start": 922, "type": "TagDeclarator", "value": "seg09" @@ -1487,6 +1497,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 980, "end": 986, + "moduleId": 0, "start": 980, "type": "TagDeclarator", "value": "seg02" @@ -1500,6 +1511,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg08" @@ -1718,6 +1730,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg01" @@ -1743,6 +1756,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 922, "end": 928, + "moduleId": 0, "start": 922, "type": "TagDeclarator", "value": "seg09" @@ -1773,6 +1787,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 980, "end": 986, + "moduleId": 0, "start": 980, "type": "TagDeclarator", "value": "seg02" @@ -1798,6 +1813,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg08" @@ -2231,6 +2247,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg01" @@ -2256,6 +2273,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 922, "end": 928, + "moduleId": 0, "start": 922, "type": "TagDeclarator", "value": "seg09" @@ -2286,6 +2304,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 980, "end": 986, + "moduleId": 0, "start": 980, "type": "TagDeclarator", "value": "seg02" @@ -2311,6 +2330,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg08" @@ -2593,6 +2613,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 1835, "end": 1841, + "moduleId": 0, "start": 1835, "type": "TagDeclarator", "value": "seg03" @@ -2606,6 +2627,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 1879, "end": 1889, + "moduleId": 0, "start": 1879, "type": "TagDeclarator", "value": "capEnd001" @@ -2635,6 +2657,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 1835, "end": 1841, + "moduleId": 0, "start": 1835, "type": "TagDeclarator", "value": "seg03" @@ -2756,6 +2779,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 1835, "end": 1841, + "moduleId": 0, "start": 1835, "type": "TagDeclarator", "value": "seg03" @@ -2769,6 +2793,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 1879, "end": 1889, + "moduleId": 0, "start": 1879, "type": "TagDeclarator", "value": "capEnd001" @@ -2798,6 +2823,7 @@ description: Variables in memory after executing helium-tank.kcl "tag": { "commentStart": 1835, "end": 1841, + "moduleId": 0, "start": 1835, "type": "TagDeclarator", "value": "seg03" diff --git a/rust/kcl-lib/tests/kcl_samples/herringbone-gear/ast.snap b/rust/kcl-lib/tests/kcl_samples/herringbone-gear/ast.snap index d201a6625..00df77a9d 100644 --- a/rust/kcl-lib/tests/kcl_samples/herringbone-gear/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/herringbone-gear/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGear", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -39,9 +41,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -51,14 +55,17 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -72,11 +79,13 @@ description: Result of parsing herringbone-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate gear parameters" ], @@ -92,6 +101,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -100,9 +110,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -112,11 +124,13 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -129,6 +143,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing herringbone-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -148,14 +164,17 @@ description: Result of parsing herringbone-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -169,11 +188,13 @@ description: Result of parsing herringbone-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -186,6 +207,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -197,9 +219,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -209,15 +233,19 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -228,6 +256,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -235,9 +264,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -252,11 +283,13 @@ description: Result of parsing herringbone-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -269,6 +302,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -280,9 +314,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -292,6 +328,7 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -299,6 +336,7 @@ description: Result of parsing herringbone-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -308,14 +346,17 @@ description: Result of parsing herringbone-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -333,11 +374,13 @@ description: Result of parsing herringbone-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -350,6 +393,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -365,18 +409,22 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "acos", "start": 0, "type": "Identifier" @@ -387,6 +435,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -400,9 +449,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -412,15 +463,19 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -431,6 +486,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -438,9 +494,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -455,6 +513,7 @@ description: Result of parsing herringbone-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -463,9 +522,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -475,10 +536,12 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -497,11 +560,13 @@ description: Result of parsing herringbone-gear.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate the amount to rotate each planar sketch of the gear given the gear helix angle and total gear height" ], @@ -517,6 +582,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -524,13 +590,16 @@ description: Result of parsing herringbone-gear.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -541,6 +610,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -551,6 +621,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -559,9 +630,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -577,9 +650,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -590,6 +665,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -597,9 +673,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -618,6 +696,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -629,6 +708,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -637,9 +717,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -655,6 +737,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -666,9 +749,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -678,10 +763,12 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -701,9 +788,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -714,6 +803,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -725,9 +815,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -738,6 +830,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -750,6 +843,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -761,9 +855,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -773,10 +869,12 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -796,6 +894,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -807,9 +906,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -819,10 +920,12 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -842,6 +945,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -850,9 +954,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -868,6 +974,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -875,6 +982,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -886,9 +994,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -899,6 +1009,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -911,6 +1022,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -922,6 +1034,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -935,6 +1048,7 @@ description: Result of parsing herringbone-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "160", "start": 0, "type": "Literal", @@ -944,14 +1058,17 @@ description: Result of parsing herringbone-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -965,14 +1082,17 @@ description: Result of parsing herringbone-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -992,6 +1112,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1003,9 +1124,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1015,10 +1138,12 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1038,9 +1163,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1051,6 +1178,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1062,9 +1190,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1075,6 +1205,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1087,6 +1218,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -1098,9 +1230,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1110,10 +1244,12 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1133,6 +1269,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -1144,9 +1281,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1156,10 +1295,12 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1179,6 +1320,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1193,6 +1335,7 @@ description: Result of parsing herringbone-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1202,15 +1345,19 @@ description: Result of parsing herringbone-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -1221,6 +1368,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1228,13 +1376,16 @@ description: Result of parsing herringbone-gear.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1245,6 +1396,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1252,9 +1404,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1265,15 +1419,19 @@ description: Result of parsing herringbone-gear.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -1284,6 +1442,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1291,9 +1450,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1313,6 +1474,7 @@ description: Result of parsing herringbone-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1320,6 +1482,7 @@ description: Result of parsing herringbone-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1329,14 +1492,17 @@ description: Result of parsing herringbone-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1356,6 +1522,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1367,6 +1534,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -1374,6 +1542,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1386,9 +1555,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -1399,6 +1570,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1411,6 +1583,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1422,6 +1595,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1435,6 +1609,7 @@ description: Result of parsing herringbone-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1444,14 +1619,17 @@ description: Result of parsing herringbone-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1465,14 +1643,17 @@ description: Result of parsing herringbone-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1492,6 +1673,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1503,9 +1685,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1515,10 +1699,12 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1538,9 +1724,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1551,6 +1739,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1562,9 +1751,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1575,6 +1766,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1587,6 +1779,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1595,9 +1788,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1613,6 +1808,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1623,6 +1819,7 @@ description: Result of parsing herringbone-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1635,6 +1832,7 @@ description: Result of parsing herringbone-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1646,6 +1844,7 @@ description: Result of parsing herringbone-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1656,6 +1855,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1663,6 +1863,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1678,6 +1879,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1685,6 +1887,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1697,9 +1900,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -1710,25 +1915,30 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1739,6 +1949,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1751,6 +1962,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1762,6 +1974,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1772,6 +1985,7 @@ description: Result of parsing herringbone-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1784,6 +1998,7 @@ description: Result of parsing herringbone-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1795,6 +2010,7 @@ description: Result of parsing herringbone-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1805,6 +2021,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1812,6 +2029,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1827,9 +2045,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1840,6 +2060,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1851,9 +2072,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1864,6 +2087,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1872,12 +2096,14 @@ description: Result of parsing herringbone-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1891,6 +2117,7 @@ description: Result of parsing herringbone-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1904,6 +2131,7 @@ description: Result of parsing herringbone-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1920,11 +2148,13 @@ description: Result of parsing herringbone-gear.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1939,9 +2169,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -1953,6 +2185,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1960,16 +2193,19 @@ description: Result of parsing herringbone-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -1980,11 +2216,13 @@ description: Result of parsing herringbone-gear.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -2002,6 +2240,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -2013,6 +2252,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2020,6 +2260,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2035,9 +2276,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -2048,16 +2291,19 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2075,6 +2321,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -2086,6 +2333,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2097,9 +2345,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2109,10 +2359,12 @@ description: Result of parsing herringbone-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2132,9 +2384,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -2145,16 +2399,19 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2172,6 +2429,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -2179,13 +2437,16 @@ description: Result of parsing herringbone-gear.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -2196,6 +2457,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2203,9 +2465,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -2223,6 +2487,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -2231,9 +2496,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2249,9 +2516,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -2262,6 +2531,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2270,12 +2540,14 @@ description: Result of parsing herringbone-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2292,11 +2564,13 @@ description: Result of parsing herringbone-gear.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2314,6 +2588,7 @@ description: Result of parsing herringbone-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGear", "start": 0, "type": "Identifier" @@ -2325,6 +2600,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vDegree", "start": 0, "type": "Identifier" @@ -2332,6 +2608,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2347,9 +2624,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -2360,6 +2639,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2370,9 +2650,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -2386,9 +2668,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -2402,9 +2686,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -2416,16 +2702,19 @@ description: Result of parsing herringbone-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2435,9 +2724,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGear", "start": 0, "type": "Identifier" @@ -2449,6 +2740,7 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2456,12 +2748,14 @@ description: Result of parsing herringbone-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2476,12 +2770,14 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2492,6 +2788,7 @@ description: Result of parsing herringbone-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -2502,6 +2799,7 @@ description: Result of parsing herringbone-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -2512,6 +2810,7 @@ description: Result of parsing herringbone-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -2522,6 +2821,7 @@ description: Result of parsing herringbone-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2532,11 +2832,13 @@ description: Result of parsing herringbone-gear.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Define a function to create a herringbone gear" ], @@ -2554,6 +2856,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2561,6 +2864,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -2576,6 +2880,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -2583,6 +2888,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2598,6 +2904,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -2605,6 +2912,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -2620,6 +2928,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -2627,6 +2936,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -2642,6 +2952,7 @@ description: Result of parsing herringbone-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2649,6 +2960,7 @@ description: Result of parsing herringbone-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -2664,9 +2976,11 @@ description: Result of parsing herringbone-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGear", "start": 0, "type": "Identifier" @@ -2677,11 +2991,13 @@ description: Result of parsing herringbone-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2693,9 +3009,11 @@ description: Result of parsing herringbone-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2714,19 +3032,23 @@ description: Result of parsing herringbone-gear.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -2742,12 +3064,14 @@ description: Result of parsing herringbone-gear.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2760,6 +3084,7 @@ description: Result of parsing herringbone-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/ast.snap b/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/ast.snap index 63325ef01..a947a6c08 100644 --- a/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGear", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -39,9 +41,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -51,14 +55,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -72,11 +79,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate gear parameters" ], @@ -92,6 +101,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -100,9 +110,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -112,11 +124,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -129,6 +143,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -148,14 +164,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -169,11 +188,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -186,6 +207,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -197,9 +219,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -209,15 +233,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -228,6 +256,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -235,9 +264,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -252,11 +283,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -269,6 +302,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -280,9 +314,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -292,6 +328,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -299,6 +336,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -308,14 +346,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -333,11 +374,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -350,6 +393,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -365,18 +409,22 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "acos", "start": 0, "type": "Identifier" @@ -387,6 +435,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -400,9 +449,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -412,15 +463,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -431,6 +486,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -438,9 +494,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -455,6 +513,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -463,9 +522,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -475,10 +536,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -497,11 +560,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate the amount to rotate each planar sketch of the gear given the gear helix angle and total gear height" ], @@ -517,6 +582,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -524,13 +590,16 @@ description: Result of parsing herringbone-planetary-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -541,6 +610,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -551,6 +621,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -559,9 +630,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -577,9 +650,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -590,6 +665,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -597,9 +673,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -618,6 +696,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -629,6 +708,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -637,9 +717,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -655,6 +737,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -666,9 +749,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -678,10 +763,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -701,9 +788,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -714,6 +803,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -725,9 +815,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -738,6 +830,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -750,6 +843,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -761,9 +855,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -773,10 +869,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -796,6 +894,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -807,9 +906,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -819,10 +920,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -842,6 +945,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -850,9 +954,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -868,6 +974,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -875,6 +982,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -886,9 +994,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -899,6 +1009,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -911,6 +1022,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -922,6 +1034,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -935,6 +1048,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "160", "start": 0, "type": "Literal", @@ -944,14 +1058,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -965,14 +1082,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -992,6 +1112,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1003,9 +1124,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1015,10 +1138,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1038,9 +1163,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1051,6 +1178,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1062,9 +1190,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1075,6 +1205,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1087,6 +1218,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -1098,9 +1230,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1110,10 +1244,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1133,6 +1269,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -1144,9 +1281,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1156,10 +1295,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1179,6 +1320,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1193,6 +1335,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1202,15 +1345,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -1221,6 +1368,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1228,13 +1376,16 @@ description: Result of parsing herringbone-planetary-gearset.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1245,6 +1396,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1252,9 +1404,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1265,15 +1419,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -1284,6 +1442,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1291,9 +1450,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1313,6 +1474,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1320,6 +1482,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1329,14 +1492,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1356,6 +1522,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1367,6 +1534,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -1374,6 +1542,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1386,9 +1555,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -1399,6 +1570,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1411,6 +1583,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1422,6 +1595,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1435,6 +1609,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1444,14 +1619,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1465,14 +1643,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -1492,6 +1673,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1503,9 +1685,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1515,10 +1699,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1538,9 +1724,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1551,6 +1739,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1562,9 +1751,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1575,6 +1766,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1587,6 +1779,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1595,9 +1788,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1613,6 +1808,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1623,6 +1819,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1635,6 +1832,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1646,6 +1844,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1656,6 +1855,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1663,6 +1863,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1678,6 +1879,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1685,6 +1887,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1697,9 +1900,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -1710,25 +1915,30 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1739,6 +1949,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1751,6 +1962,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1762,6 +1974,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1772,6 +1985,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1784,6 +1998,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1795,6 +2010,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1805,6 +2021,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1812,6 +2029,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1827,9 +2045,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1840,6 +2060,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1851,9 +2072,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1864,6 +2087,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1872,12 +2096,14 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1891,6 +2117,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1904,6 +2131,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1920,11 +2148,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1939,9 +2169,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -1953,6 +2185,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1960,16 +2193,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -1980,11 +2216,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -2002,6 +2240,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -2013,6 +2252,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2020,6 +2260,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2035,9 +2276,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -2048,16 +2291,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2075,6 +2321,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -2086,6 +2333,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2097,9 +2345,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2109,10 +2359,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2132,9 +2384,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGearSketch", "start": 0, "type": "Identifier" @@ -2145,16 +2399,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2172,6 +2429,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -2179,13 +2437,16 @@ description: Result of parsing herringbone-planetary-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -2196,6 +2457,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2203,9 +2465,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -2223,6 +2487,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -2231,9 +2496,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2249,9 +2516,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -2262,6 +2531,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2270,12 +2540,14 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2292,11 +2564,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2314,6 +2588,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGear", "start": 0, "type": "Identifier" @@ -2325,6 +2600,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vDegree", "start": 0, "type": "Identifier" @@ -2332,6 +2608,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2347,9 +2624,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -2360,6 +2639,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2370,9 +2650,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -2386,9 +2668,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -2402,9 +2686,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -2416,16 +2702,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2435,9 +2724,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGear", "start": 0, "type": "Identifier" @@ -2449,6 +2740,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2456,12 +2748,14 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2476,12 +2770,14 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2492,6 +2788,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -2502,6 +2799,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -2512,6 +2810,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -2522,6 +2821,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2532,11 +2832,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Define a function to create a herringbone gear" ], @@ -2552,6 +2854,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGear", "start": 0, "type": "Identifier" @@ -2567,6 +2870,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -2578,9 +2882,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -2590,14 +2896,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2611,11 +2920,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate gear parameters" ], @@ -2631,6 +2942,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -2639,9 +2951,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -2651,11 +2965,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2668,6 +2984,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -2678,6 +2995,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -2687,14 +3005,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -2708,11 +3029,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2725,6 +3048,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -2736,9 +3060,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -2748,15 +3074,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -2767,6 +3097,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2774,9 +3105,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -2791,11 +3124,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2808,6 +3143,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -2819,9 +3155,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -2831,6 +3169,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2838,6 +3177,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2847,14 +3187,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -2872,11 +3215,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2889,6 +3234,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -2904,18 +3250,22 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "acos", "start": 0, "type": "Identifier" @@ -2926,6 +3276,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2939,9 +3290,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -2951,15 +3304,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tan", "start": 0, "type": "Identifier" @@ -2970,6 +3327,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2977,9 +3335,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -2994,6 +3354,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -3002,9 +3363,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -3014,10 +3377,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3036,11 +3401,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate the amount to rotate each planar sketch of the gear given the gear helix angle and total gear height" ], @@ -3056,6 +3423,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringTeeth", "start": 0, "type": "Identifier" @@ -3063,13 +3431,16 @@ description: Result of parsing herringbone-planetary-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3080,6 +3451,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3090,6 +3462,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3098,9 +3471,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -3116,9 +3491,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3129,6 +3506,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3136,9 +3514,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3157,6 +3537,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3168,6 +3549,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3176,9 +3558,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -3194,6 +3578,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3205,9 +3590,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -3217,10 +3604,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3240,9 +3629,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -3253,6 +3644,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3264,9 +3656,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3277,6 +3671,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3289,6 +3684,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -3300,9 +3696,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -3312,10 +3710,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3335,6 +3735,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -3346,9 +3747,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -3358,10 +3761,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3381,6 +3786,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3389,9 +3795,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -3407,6 +3815,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3414,6 +3823,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3425,9 +3835,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -3438,6 +3850,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3450,6 +3863,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3461,6 +3875,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3474,6 +3889,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "220", "start": 0, "type": "Literal", @@ -3483,14 +3899,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -3504,14 +3923,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -3531,6 +3953,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3542,9 +3965,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -3554,10 +3979,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3577,9 +4004,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -3590,6 +4019,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3601,9 +4031,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3614,6 +4046,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3626,6 +4059,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -3637,9 +4071,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -3649,10 +4085,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3672,6 +4110,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -3683,9 +4122,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -3695,10 +4136,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3718,6 +4161,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3732,6 +4176,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3741,15 +4186,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -3760,6 +4209,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3767,13 +4217,16 @@ description: Result of parsing herringbone-planetary-gearset.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -3784,6 +4237,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3791,9 +4245,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -3804,15 +4260,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -3823,6 +4283,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3830,9 +4291,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -3852,6 +4315,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3859,6 +4323,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3868,14 +4333,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -3895,6 +4363,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3906,6 +4375,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -3913,6 +4383,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -3925,9 +4396,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -3938,6 +4411,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3950,6 +4424,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3961,6 +4436,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3974,6 +4450,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -3983,14 +4460,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -4004,14 +4484,17 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixCalc", "start": 0, "type": "Identifier" @@ -4031,6 +4514,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4042,9 +4526,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -4054,10 +4540,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4077,9 +4565,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -4090,6 +4580,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4101,9 +4592,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4114,6 +4607,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4126,6 +4620,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4134,9 +4629,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -4152,6 +4649,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4162,6 +4660,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4174,6 +4673,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4185,6 +4685,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4195,6 +4696,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -4202,6 +4704,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -4217,6 +4720,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -4224,6 +4728,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -4236,9 +4741,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -4249,25 +4756,30 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4278,6 +4790,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4286,12 +4799,14 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4305,6 +4820,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4318,6 +4834,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4334,11 +4851,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4356,6 +4875,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -4363,13 +4883,16 @@ description: Result of parsing herringbone-planetary-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4380,6 +4903,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4390,6 +4914,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -4398,9 +4923,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -4416,9 +4943,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -4429,6 +4958,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4436,9 +4966,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4457,6 +4989,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4467,6 +5000,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4479,6 +5013,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4490,6 +5025,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4500,6 +5036,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4511,9 +5048,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -4523,10 +5062,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -4546,9 +5087,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4559,6 +5102,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4571,6 +5115,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -4579,9 +5124,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringTeeth", "start": 0, "type": "Identifier" @@ -4597,9 +5144,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -4610,6 +5159,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4618,15 +5168,18 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4636,9 +5189,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -4650,6 +5205,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -4657,16 +5213,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -4677,11 +5236,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -4699,6 +5260,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -4710,6 +5272,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -4717,6 +5280,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4732,9 +5296,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -4745,16 +5311,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4772,6 +5341,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -4783,6 +5353,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetHeight", "start": 0, "type": "Identifier" @@ -4794,9 +5365,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -4806,10 +5379,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4829,9 +5404,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGearSketch", "start": 0, "type": "Identifier" @@ -4842,16 +5419,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4869,6 +5449,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -4876,13 +5457,16 @@ description: Result of parsing herringbone-planetary-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -4893,6 +5477,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4900,9 +5485,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -4920,6 +5507,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -4928,9 +5516,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -4946,9 +5536,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -4959,6 +5551,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4967,12 +5560,14 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4989,11 +5584,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5011,6 +5608,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGear", "start": 0, "type": "Identifier" @@ -5022,6 +5620,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "vDegree", "start": 0, "type": "Identifier" @@ -5029,6 +5628,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5044,9 +5644,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -5057,6 +5659,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5067,9 +5670,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch001", "start": 0, "type": "Identifier" @@ -5083,9 +5688,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch002", "start": 0, "type": "Identifier" @@ -5099,9 +5706,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch003", "start": 0, "type": "Identifier" @@ -5113,16 +5722,19 @@ description: Result of parsing herringbone-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5132,9 +5744,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGear", "start": 0, "type": "Identifier" @@ -5146,6 +5760,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -5153,12 +5768,14 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5173,12 +5790,14 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -5189,6 +5808,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -5199,6 +5819,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -5209,6 +5830,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -5219,6 +5841,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -5229,11 +5852,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -5253,6 +5878,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -5260,6 +5886,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "58", "start": 0, "type": "Literal", @@ -5275,6 +5902,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -5282,6 +5910,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -5297,6 +5926,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -5304,6 +5934,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -5319,6 +5950,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -5327,6 +5959,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -5338,6 +5971,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5349,6 +5983,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -5356,6 +5991,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -5371,9 +6007,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ringGear", "start": 0, "type": "Identifier" @@ -5384,11 +6022,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -5408,6 +6048,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -5415,6 +6056,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -5430,6 +6072,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -5437,6 +6080,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -5452,6 +6096,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -5459,6 +6104,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -5474,6 +6120,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -5481,6 +6128,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -5496,6 +6144,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -5503,6 +6152,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -5518,9 +6168,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGear", "start": 0, "type": "Identifier" @@ -5531,11 +6183,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -5553,6 +6207,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numPlanetGears", "start": 0, "type": "Identifier" @@ -5560,6 +6215,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5569,11 +6225,13 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -5595,6 +6253,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -5602,6 +6261,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -5617,6 +6277,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -5624,6 +6285,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -5639,6 +6301,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -5646,6 +6309,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -5661,6 +6325,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helixAngle", "start": 0, "type": "Identifier" @@ -5669,6 +6334,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -5680,6 +6346,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5691,6 +6358,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -5698,6 +6366,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -5713,9 +6382,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "herringboneGear", "start": 0, "type": "Identifier" @@ -5726,6 +6397,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5738,6 +6410,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -5751,6 +6424,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -5760,10 +6434,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -5777,10 +6453,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.95", "start": 0, "type": "Literal", @@ -5800,9 +6478,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5813,6 +6493,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5825,6 +6506,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -5833,9 +6515,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numPlanetGears", "start": 0, "type": "Identifier" @@ -5851,6 +6535,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5861,6 +6546,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5873,6 +6559,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5885,6 +6572,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5896,6 +6584,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5906,6 +6595,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5916,6 +6606,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5928,6 +6619,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5940,6 +6632,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5951,6 +6644,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5961,6 +6655,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -5968,6 +6663,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -5983,6 +6679,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -5990,6 +6687,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -6002,9 +6700,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -6015,6 +6715,7 @@ description: Result of parsing herringbone-planetary-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6023,10 +6724,12 @@ description: Result of parsing herringbone-planetary-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -6038,9 +6741,11 @@ description: Result of parsing herringbone-planetary-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -6059,19 +6764,23 @@ description: Result of parsing herringbone-planetary-gearset.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -6087,12 +6796,14 @@ description: Result of parsing herringbone-planetary-gearset.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/hex-nut/ast.snap b/rust/kcl-lib/tests/kcl_samples/hex-nut/ast.snap index 3df976e21..800f150b7 100644 --- a/rust/kcl-lib/tests/kcl_samples/hex-nut/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/hex-nut/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing hex-nut.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallToWallLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing hex-nut.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing hex-nut.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters (5/16\" - 24 thread size)" ], @@ -49,6 +53,7 @@ description: Result of parsing hex-nut.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing hex-nut.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.266", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing hex-nut.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing hex-nut.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing hex-nut.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3125", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing hex-nut.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing hex-nut.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexNut", "start": 0, "type": "Identifier" @@ -130,6 +143,7 @@ description: Result of parsing hex-nut.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexNutSketch", "start": 0, "type": "Identifier" @@ -137,13 +151,16 @@ description: Result of parsing hex-nut.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -154,6 +171,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -162,9 +180,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -189,6 +210,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -203,13 +225,16 @@ description: Result of parsing hex-nut.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -222,6 +247,7 @@ description: Result of parsing hex-nut.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -235,14 +261,17 @@ description: Result of parsing hex-nut.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDia", "start": 0, "type": "Identifier" @@ -260,13 +289,16 @@ description: Result of parsing hex-nut.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -279,6 +311,7 @@ description: Result of parsing hex-nut.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -294,6 +327,7 @@ description: Result of parsing hex-nut.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -304,9 +338,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -317,6 +353,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -329,6 +366,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -336,6 +374,7 @@ description: Result of parsing hex-nut.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "240", "start": 0, "type": "Literal", @@ -351,6 +390,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -359,9 +399,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDia", "start": 0, "type": "Identifier" @@ -377,9 +419,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -390,6 +434,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -402,6 +447,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -409,6 +455,7 @@ description: Result of parsing hex-nut.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -424,6 +471,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -432,9 +480,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDia", "start": 0, "type": "Identifier" @@ -450,9 +500,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -463,6 +515,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -475,6 +528,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -482,6 +536,7 @@ description: Result of parsing hex-nut.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -497,6 +552,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -505,9 +561,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDia", "start": 0, "type": "Identifier" @@ -523,9 +581,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -536,6 +596,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -548,6 +609,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -555,6 +617,7 @@ description: Result of parsing hex-nut.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -570,6 +633,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -578,9 +642,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDia", "start": 0, "type": "Identifier" @@ -596,9 +662,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -609,6 +677,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -621,6 +690,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -628,6 +698,7 @@ description: Result of parsing hex-nut.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -643,6 +714,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -654,9 +726,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDia", "start": 0, "type": "Identifier" @@ -666,10 +740,12 @@ description: Result of parsing hex-nut.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".90", "start": 0, "type": "Literal", @@ -689,9 +765,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -702,19 +780,23 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -725,6 +807,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -737,6 +820,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -748,6 +832,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -759,13 +844,16 @@ description: Result of parsing hex-nut.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -778,6 +866,7 @@ description: Result of parsing hex-nut.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -795,13 +884,16 @@ description: Result of parsing hex-nut.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -814,6 +906,7 @@ description: Result of parsing hex-nut.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -829,6 +922,7 @@ description: Result of parsing hex-nut.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -839,6 +933,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -850,9 +945,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDia", "start": 0, "type": "Identifier" @@ -862,10 +959,12 @@ description: Result of parsing hex-nut.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -885,9 +984,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -898,6 +999,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -909,9 +1011,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -922,6 +1026,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -934,6 +1039,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -942,9 +1048,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -960,9 +1068,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -973,6 +1083,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -981,15 +1092,18 @@ description: Result of parsing hex-nut.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -999,9 +1113,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexNutSketch", "start": 0, "type": "Identifier" @@ -1013,6 +1129,7 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1020,16 +1137,19 @@ description: Result of parsing hex-nut.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -1040,6 +1160,7 @@ description: Result of parsing hex-nut.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -1050,6 +1171,7 @@ description: Result of parsing hex-nut.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDia", "start": 0, "type": "Identifier" @@ -1060,11 +1182,13 @@ description: Result of parsing hex-nut.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1084,6 +1208,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "start", "start": 0, "type": "Identifier" @@ -1094,6 +1219,7 @@ description: Result of parsing hex-nut.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1106,6 +1232,7 @@ description: Result of parsing hex-nut.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1117,6 +1244,7 @@ description: Result of parsing hex-nut.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1127,6 +1255,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thk", "start": 0, "type": "Identifier" @@ -1135,9 +1264,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1153,6 +1284,7 @@ description: Result of parsing hex-nut.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDia", "start": 0, "type": "Identifier" @@ -1161,9 +1293,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -1179,9 +1313,11 @@ description: Result of parsing hex-nut.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexNut", "start": 0, "type": "Identifier" @@ -1192,11 +1328,13 @@ description: Result of parsing hex-nut.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -1213,9 +1351,11 @@ description: Result of parsing hex-nut.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1234,19 +1374,23 @@ description: Result of parsing hex-nut.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1263,15 +1407,18 @@ description: Result of parsing hex-nut.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1287,12 +1434,14 @@ description: Result of parsing hex-nut.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/i-beam/ast.snap b/rust/kcl-lib/tests/kcl_samples/i-beam/ast.snap index 9b7e9e326..b2e0a6daf 100644 --- a/rust/kcl-lib/tests/kcl_samples/i-beam/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/i-beam/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing i-beam.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing i-beam.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6ft", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing i-beam.kcl "suffix": "Ft" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing i-beam.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamHeight", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing i-beam.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing i-beam.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing i-beam.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeWidth", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing i-beam.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.663", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing i-beam.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing i-beam.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeThickness", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing i-beam.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.293", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing i-beam.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing i-beam.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "webThickness", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing i-beam.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.193", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing i-beam.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing i-beam.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rootRadius", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing i-beam.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.457", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing i-beam.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing i-beam.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "iBeam", "start": 0, "type": "Identifier" @@ -221,13 +246,16 @@ description: Result of parsing i-beam.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -238,6 +266,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -246,9 +275,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -260,6 +291,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -273,6 +305,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -283,6 +316,7 @@ description: Result of parsing i-beam.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -299,9 +333,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamHeight", "start": 0, "type": "Identifier" @@ -311,10 +347,12 @@ description: Result of parsing i-beam.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -330,6 +368,7 @@ description: Result of parsing i-beam.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -340,9 +379,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -353,6 +394,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -365,6 +407,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -376,9 +419,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeWidth", "start": 0, "type": "Identifier" @@ -388,10 +433,12 @@ description: Result of parsing i-beam.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -411,9 +458,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -424,6 +473,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -436,6 +486,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -445,9 +496,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeThickness", "start": 0, "type": "Identifier" @@ -459,6 +512,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -470,9 +524,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -483,6 +539,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -495,6 +552,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -509,9 +567,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "webThickness", "start": 0, "type": "Identifier" @@ -521,10 +581,12 @@ description: Result of parsing i-beam.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -538,14 +600,17 @@ description: Result of parsing i-beam.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rootRadius", "start": 0, "type": "Identifier" @@ -565,9 +630,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -578,6 +645,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -590,6 +658,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -598,9 +667,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rootRadius", "start": 0, "type": "Identifier" @@ -616,6 +687,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -623,6 +695,7 @@ description: Result of parsing i-beam.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -638,9 +711,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -651,6 +726,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -663,6 +739,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -670,6 +747,7 @@ description: Result of parsing i-beam.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -685,9 +763,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -698,6 +778,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -710,6 +791,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -718,9 +800,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -736,9 +820,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -749,6 +835,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -761,6 +848,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -769,9 +857,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -787,9 +877,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -800,6 +892,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -812,6 +905,7 @@ description: Result of parsing i-beam.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -820,9 +914,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -838,9 +934,11 @@ description: Result of parsing i-beam.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -851,6 +949,7 @@ description: Result of parsing i-beam.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -859,15 +958,18 @@ description: Result of parsing i-beam.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -884,9 +986,11 @@ description: Result of parsing i-beam.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -905,19 +1009,23 @@ description: Result of parsing i-beam.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -934,15 +1042,18 @@ description: Result of parsing i-beam.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -958,12 +1069,14 @@ description: Result of parsing i-beam.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/keyboard/ast.snap b/rust/kcl-lib/tests/kcl_samples/keyboard/ast.snap index f576aae37..5c6e885f0 100644 --- a/rust/kcl-lib/tests/kcl_samples/keyboard/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/keyboard/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseColor", "start": 0, "type": "Identifier" @@ -20,17 +21,20 @@ description: Result of parsing keyboard.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#0f0f0f\"", "start": 0, "type": "Literal", "type": "Literal", "value": "#0f0f0f" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -46,6 +50,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -53,17 +58,20 @@ description: Result of parsing keyboard.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#b0b0b0\"", "start": 0, "type": "Literal", "type": "Literal", "value": "#b0b0b0" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -76,6 +84,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -83,17 +92,20 @@ description: Result of parsing keyboard.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#23af93\"", "start": 0, "type": "Literal", "type": "Literal", "value": "#23af93" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -106,6 +118,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -113,6 +126,7 @@ description: Result of parsing keyboard.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -122,11 +136,13 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -139,6 +155,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyDepth", "start": 0, "type": "Identifier" @@ -146,6 +163,7 @@ description: Result of parsing keyboard.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -155,11 +173,13 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -172,6 +192,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -179,6 +200,7 @@ description: Result of parsing keyboard.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -188,11 +210,13 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -205,6 +229,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row1", "start": 0, "type": "Identifier" @@ -216,9 +241,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -228,10 +255,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -245,11 +274,13 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -262,6 +293,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row2", "start": 0, "type": "Identifier" @@ -276,9 +308,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row1", "start": 0, "type": "Identifier" @@ -288,14 +322,17 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -309,14 +346,17 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -330,11 +370,13 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -347,6 +389,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row3", "start": 0, "type": "Identifier" @@ -361,9 +404,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row2", "start": 0, "type": "Identifier" @@ -373,14 +418,17 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -394,14 +442,17 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -415,11 +466,13 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -432,6 +485,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row4", "start": 0, "type": "Identifier" @@ -446,9 +500,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row3", "start": 0, "type": "Identifier" @@ -458,14 +514,17 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -479,14 +538,17 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -500,11 +562,13 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -517,6 +581,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row5", "start": 0, "type": "Identifier" @@ -531,9 +596,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row4", "start": 0, "type": "Identifier" @@ -543,14 +610,17 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -564,14 +634,17 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -585,11 +658,13 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -602,6 +677,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row6", "start": 0, "type": "Identifier" @@ -616,9 +692,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row5", "start": 0, "type": "Identifier" @@ -628,14 +706,17 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -649,14 +730,17 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -670,11 +754,13 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -687,6 +773,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -694,13 +781,16 @@ description: Result of parsing keyboard.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -711,6 +801,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -718,9 +809,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -738,6 +831,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -748,6 +842,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -760,6 +855,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -771,6 +867,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -781,9 +878,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -794,6 +893,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -806,6 +906,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -817,6 +918,7 @@ description: Result of parsing keyboard.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14", "start": 0, "type": "Literal", @@ -828,6 +930,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -836,6 +939,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.68", "start": 0, "type": "Literal", @@ -847,6 +951,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -857,6 +962,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -864,6 +970,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -875,9 +982,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -888,6 +997,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -900,6 +1010,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -907,6 +1018,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -922,6 +1034,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -936,9 +1049,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row6", "start": 0, "type": "Identifier" @@ -948,6 +1063,7 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -955,6 +1071,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -964,14 +1081,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -989,14 +1109,17 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -1016,6 +1139,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1023,6 +1147,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1034,9 +1159,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1047,6 +1174,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1059,6 +1187,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1069,6 +1198,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.13", "start": 0, "type": "Literal", @@ -1081,6 +1211,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1092,6 +1223,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1102,6 +1234,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1109,6 +1242,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1120,9 +1254,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1133,6 +1269,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1145,6 +1282,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1153,13 +1291,16 @@ description: Result of parsing keyboard.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1170,25 +1311,30 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1199,12 +1345,14 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1212,6 +1360,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1222,6 +1371,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1229,6 +1379,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1240,9 +1391,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1253,19 +1406,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1276,6 +1433,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1288,6 +1446,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1295,6 +1454,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.6", "start": 0, "type": "Literal", @@ -1310,9 +1470,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1323,6 +1485,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1335,6 +1498,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1343,9 +1507,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseColor", "start": 0, "type": "Identifier" @@ -1361,9 +1527,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -1374,6 +1542,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1386,6 +1555,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1393,6 +1563,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -1408,6 +1579,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1416,13 +1588,16 @@ description: Result of parsing keyboard.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -1433,6 +1608,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1440,9 +1616,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1454,13 +1632,16 @@ description: Result of parsing keyboard.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -1471,6 +1652,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1478,9 +1660,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1495,9 +1679,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1511,9 +1697,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1525,6 +1713,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1535,9 +1724,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1548,6 +1739,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1556,12 +1748,14 @@ description: Result of parsing keyboard.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1578,11 +1772,13 @@ description: Result of parsing keyboard.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1600,6 +1796,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1611,6 +1808,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1619,9 +1817,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -1637,9 +1837,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1650,6 +1852,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1657,9 +1860,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -1670,11 +1875,13 @@ description: Result of parsing keyboard.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1687,6 +1894,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -1698,6 +1906,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1708,6 +1917,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -1720,6 +1930,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -1731,6 +1942,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1741,6 +1953,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1748,6 +1961,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -1763,9 +1977,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1776,6 +1992,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1783,9 +2000,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1796,11 +2015,13 @@ description: Result of parsing keyboard.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1813,6 +2034,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile003", "start": 0, "type": "Identifier" @@ -1824,6 +2046,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1834,6 +2057,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.4", "start": 0, "type": "Literal", @@ -1846,6 +2070,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -1857,6 +2082,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1867,6 +2093,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1874,6 +2101,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -1889,9 +2117,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1902,6 +2132,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1909,9 +2140,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1922,11 +2155,13 @@ description: Result of parsing keyboard.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1939,6 +2174,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile004", "start": 0, "type": "Identifier" @@ -1950,6 +2186,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1960,6 +2197,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.73", "start": 0, "type": "Literal", @@ -1975,6 +2213,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.6", "start": 0, "type": "Literal", @@ -1984,10 +2223,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".75", "start": 0, "type": "Literal", @@ -2003,6 +2244,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2013,6 +2255,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2020,6 +2263,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -2035,9 +2279,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2048,6 +2294,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2055,9 +2302,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -2068,11 +2317,13 @@ description: Result of parsing keyboard.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2085,6 +2336,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile005", "start": 0, "type": "Identifier" @@ -2096,6 +2348,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2106,6 +2359,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.4", "start": 0, "type": "Literal", @@ -2121,6 +2375,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.6", "start": 0, "type": "Literal", @@ -2130,10 +2385,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".75", "start": 0, "type": "Literal", @@ -2149,6 +2406,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2159,6 +2417,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2166,6 +2425,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -2181,9 +2441,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2194,6 +2456,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2201,9 +2464,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -2214,11 +2479,13 @@ description: Result of parsing keyboard.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2233,6 +2500,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2240,6 +2508,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".15", "start": 0, "type": "Literal", @@ -2255,9 +2524,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2268,6 +2539,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2278,9 +2550,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -2294,9 +2568,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile003", "start": 0, "type": "Identifier" @@ -2310,9 +2586,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile004", "start": 0, "type": "Identifier" @@ -2326,9 +2604,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile005", "start": 0, "type": "Identifier" @@ -2340,11 +2620,13 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2357,6 +2639,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -2364,6 +2647,7 @@ description: Result of parsing keyboard.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2371,10 +2655,12 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2383,6 +2669,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2395,6 +2682,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2407,6 +2695,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -2418,6 +2707,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2429,10 +2719,12 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2441,6 +2733,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2453,6 +2746,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2465,6 +2759,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2476,6 +2771,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2487,10 +2783,12 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2499,6 +2797,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2511,6 +2810,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2521,13 +2821,16 @@ description: Result of parsing keyboard.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -2538,12 +2841,14 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7deg", "start": 0, "type": "Literal", @@ -2556,6 +2861,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2567,10 +2873,12 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2579,6 +2887,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2591,6 +2900,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -2603,6 +2913,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2614,6 +2925,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2624,11 +2936,13 @@ description: Result of parsing keyboard.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2646,6 +2960,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -2661,18 +2976,22 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2683,6 +3002,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2690,9 +3010,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -2703,11 +3025,13 @@ description: Result of parsing keyboard.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2720,6 +3044,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -2733,6 +3058,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2744,13 +3070,16 @@ description: Result of parsing keyboard.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -2763,6 +3092,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2780,13 +3110,16 @@ description: Result of parsing keyboard.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -2799,6 +3132,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2814,6 +3148,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2824,9 +3159,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2837,6 +3174,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2844,9 +3182,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2864,6 +3204,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -2871,6 +3212,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2886,6 +3228,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -2893,6 +3236,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -2908,6 +3252,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2915,6 +3260,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -2930,9 +3276,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2943,6 +3291,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2955,6 +3304,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2962,6 +3312,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2977,6 +3328,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2988,9 +3340,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -3000,10 +3354,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".2", "start": 0, "type": "Literal", @@ -3023,6 +3379,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3030,6 +3387,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3041,9 +3399,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3054,6 +3414,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3066,6 +3427,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3073,6 +3435,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -3088,6 +3451,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3095,6 +3459,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3110,9 +3475,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3123,6 +3490,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3135,6 +3503,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3143,13 +3512,16 @@ description: Result of parsing keyboard.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3160,6 +3532,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3167,9 +3540,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3180,10 +3555,12 @@ description: Result of parsing keyboard.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3203,6 +3580,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3214,9 +3592,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -3226,10 +3606,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".2", "start": 0, "type": "Literal", @@ -3249,6 +3631,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3256,6 +3639,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3267,9 +3651,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3280,6 +3666,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3292,6 +3679,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3299,6 +3687,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -3314,6 +3703,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3321,6 +3711,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3336,9 +3727,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3349,6 +3742,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3361,18 +3755,22 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3383,6 +3781,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3390,9 +3789,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3409,19 +3810,23 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3432,6 +3837,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3439,9 +3845,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3454,6 +3862,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3465,6 +3874,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3472,6 +3882,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3483,9 +3894,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3496,6 +3909,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3508,6 +3922,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3515,6 +3930,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -3530,6 +3946,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3537,6 +3954,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3552,9 +3970,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3565,6 +3985,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3577,6 +3998,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3585,13 +4007,16 @@ description: Result of parsing keyboard.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3602,25 +4027,30 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3631,12 +4061,14 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3644,6 +4076,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3654,6 +4087,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3661,6 +4095,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3672,9 +4107,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3685,19 +4122,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3708,6 +4149,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3720,6 +4162,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3728,9 +4171,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyDepth", "start": 0, "type": "Identifier" @@ -3746,9 +4191,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3759,6 +4206,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3771,6 +4219,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -3779,9 +4228,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -3797,9 +4248,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -3810,6 +4263,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3822,6 +4276,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3833,9 +4288,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -3845,10 +4302,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3868,6 +4327,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -3879,9 +4339,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -3891,14 +4353,17 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -3918,6 +4383,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3928,6 +4394,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3940,6 +4407,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3952,6 +4420,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3963,6 +4432,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3973,9 +4443,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -3986,12 +4458,14 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4000,12 +4474,14 @@ description: Result of parsing keyboard.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "11": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4022,11 +4498,13 @@ description: Result of parsing keyboard.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4036,9 +4514,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -4050,6 +4530,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -4057,16 +4538,19 @@ description: Result of parsing keyboard.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -4077,6 +4561,7 @@ description: Result of parsing keyboard.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -4087,6 +4572,7 @@ description: Result of parsing keyboard.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -4097,6 +4583,7 @@ description: Result of parsing keyboard.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -4107,6 +4594,7 @@ description: Result of parsing keyboard.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4117,11 +4605,13 @@ description: Result of parsing keyboard.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -4141,6 +4631,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -4151,6 +4642,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -4164,9 +4656,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row1", "start": 0, "type": "Identifier" @@ -4178,6 +4672,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4188,6 +4683,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -4195,6 +4691,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -4210,6 +4707,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -4218,9 +4716,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -4236,6 +4736,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -4243,6 +4744,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4258,6 +4760,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4266,9 +4769,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -4284,9 +4789,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -4297,11 +4804,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -4321,6 +4830,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -4331,6 +4841,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -4344,9 +4855,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row1", "start": 0, "type": "Identifier" @@ -4358,6 +4871,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4368,6 +4882,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -4375,6 +4890,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -4390,6 +4906,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -4398,9 +4915,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -4416,6 +4935,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -4423,6 +4943,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4438,6 +4959,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4446,9 +4968,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -4464,9 +4988,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -4477,11 +5003,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -4496,6 +5024,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -4513,9 +5042,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -4525,10 +5056,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -4542,10 +5075,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.5", "start": 0, "type": "Literal", @@ -4563,9 +5098,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row1", "start": 0, "type": "Identifier" @@ -4577,6 +5114,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4587,6 +5125,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -4594,6 +5133,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.2", "start": 0, "type": "Literal", @@ -4609,6 +5149,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -4617,9 +5158,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -4635,6 +5178,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -4642,6 +5186,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4657,6 +5202,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4665,9 +5211,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -4683,9 +5231,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -4696,11 +5246,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -4715,6 +5267,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -4732,9 +5285,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -4744,10 +5299,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -4761,10 +5318,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.7", "start": 0, "type": "Literal", @@ -4782,9 +5341,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row1", "start": 0, "type": "Identifier" @@ -4796,6 +5357,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4806,6 +5368,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -4813,6 +5376,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -4828,6 +5392,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -4836,9 +5401,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -4854,6 +5421,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -4861,6 +5429,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4876,6 +5445,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4884,9 +5454,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -4902,9 +5474,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -4915,11 +5489,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -4934,6 +5510,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -4951,9 +5528,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -4963,10 +5542,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -4980,10 +5561,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.6", "start": 0, "type": "Literal", @@ -5001,9 +5584,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row1", "start": 0, "type": "Identifier" @@ -5015,6 +5600,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5025,6 +5611,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -5032,6 +5619,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -5047,6 +5635,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5055,9 +5644,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5073,6 +5664,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -5080,6 +5672,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5095,6 +5688,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -5103,9 +5697,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -5121,9 +5717,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -5134,11 +5732,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -5153,6 +5753,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -5170,9 +5771,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -5182,10 +5785,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -5199,10 +5804,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.3", "start": 0, "type": "Literal", @@ -5220,9 +5827,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row1", "start": 0, "type": "Identifier" @@ -5234,6 +5843,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5244,6 +5854,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -5251,6 +5862,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -5266,6 +5878,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5274,9 +5887,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5292,6 +5907,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -5299,6 +5915,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5314,6 +5931,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -5322,9 +5940,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -5340,9 +5960,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -5353,11 +5975,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -5372,6 +5996,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -5392,9 +6017,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -5404,10 +6031,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -5421,10 +6050,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.3", "start": 0, "type": "Literal", @@ -5438,10 +6069,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5459,9 +6092,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row1", "start": 0, "type": "Identifier" @@ -5473,6 +6108,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5483,6 +6119,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -5490,6 +6127,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -5505,6 +6143,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5513,9 +6152,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5531,6 +6172,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -5538,6 +6180,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5553,6 +6196,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -5561,9 +6205,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -5579,9 +6225,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -5592,11 +6240,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -5611,6 +6261,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -5625,9 +6276,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -5637,10 +6290,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5658,9 +6313,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row2", "start": 0, "type": "Identifier" @@ -5672,6 +6329,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5682,6 +6340,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -5689,6 +6348,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.7", "start": 0, "type": "Literal", @@ -5704,6 +6364,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5712,9 +6373,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5730,6 +6393,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -5737,6 +6401,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5752,6 +6417,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -5760,9 +6426,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -5778,9 +6446,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -5791,11 +6461,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -5815,6 +6487,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -5832,9 +6505,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -5844,10 +6519,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5861,10 +6538,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.7", "start": 0, "type": "Literal", @@ -5882,9 +6561,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row2", "start": 0, "type": "Identifier" @@ -5896,6 +6577,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5906,6 +6588,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -5913,6 +6596,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -5928,6 +6612,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5936,9 +6621,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -5954,6 +6641,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -5961,6 +6649,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -5976,6 +6665,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -5984,9 +6674,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -6002,9 +6694,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -6015,11 +6709,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -6034,6 +6730,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -6054,9 +6751,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -6066,10 +6765,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -6083,10 +6784,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.7", "start": 0, "type": "Literal", @@ -6100,6 +6803,7 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -6107,6 +6811,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -6116,10 +6821,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -6141,9 +6848,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row2", "start": 0, "type": "Identifier" @@ -6155,6 +6864,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6165,6 +6875,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -6172,6 +6883,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.2", "start": 0, "type": "Literal", @@ -6187,6 +6899,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -6195,9 +6908,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -6213,6 +6928,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -6220,6 +6936,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6235,6 +6952,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -6243,9 +6961,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -6261,9 +6981,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -6274,11 +6996,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -6293,6 +7017,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -6307,9 +7032,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -6319,10 +7046,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6340,9 +7069,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row3", "start": 0, "type": "Identifier" @@ -6354,6 +7085,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6364,6 +7096,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -6374,6 +7107,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -6383,10 +7117,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -6406,6 +7142,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -6414,9 +7151,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -6432,6 +7171,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -6439,6 +7179,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6454,6 +7195,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -6462,9 +7204,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -6480,9 +7224,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -6493,11 +7239,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -6517,6 +7265,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -6537,9 +7286,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -6549,10 +7300,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6566,10 +7319,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -6583,10 +7338,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -6604,9 +7361,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row3", "start": 0, "type": "Identifier" @@ -6618,6 +7377,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6628,6 +7388,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -6635,6 +7396,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -6650,6 +7412,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -6658,9 +7421,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -6676,6 +7441,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -6683,6 +7449,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -6698,6 +7465,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -6706,9 +7474,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -6724,9 +7494,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -6737,11 +7509,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -6756,6 +7530,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -6776,9 +7551,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -6788,10 +7565,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6805,10 +7584,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.1", "start": 0, "type": "Literal", @@ -6822,10 +7603,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -6843,9 +7626,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row3", "start": 0, "type": "Identifier" @@ -6857,6 +7642,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6867,6 +7653,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -6877,6 +7664,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.4", "start": 0, "type": "Literal", @@ -6886,10 +7674,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".4", "start": 0, "type": "Literal", @@ -6909,6 +7699,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -6917,9 +7708,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -6935,6 +7728,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -6942,6 +7736,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6957,6 +7752,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -6965,9 +7761,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -6983,9 +7781,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -6996,11 +7796,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -7015,6 +7817,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -7029,9 +7832,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -7041,10 +7846,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7062,9 +7869,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row4", "start": 0, "type": "Identifier" @@ -7076,6 +7885,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7086,6 +7896,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -7093,6 +7904,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -7108,6 +7920,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -7116,9 +7929,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -7134,6 +7949,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -7141,6 +7957,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7156,6 +7973,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -7164,9 +7982,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -7182,9 +8002,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -7195,11 +8017,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -7219,6 +8043,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -7236,9 +8061,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -7248,10 +8075,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -7265,10 +8094,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -7286,9 +8117,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row4", "start": 0, "type": "Identifier" @@ -7300,6 +8133,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7310,6 +8144,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -7317,6 +8152,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -7332,6 +8168,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -7340,9 +8177,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -7358,6 +8197,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -7365,6 +8205,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -7380,6 +8221,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -7388,9 +8230,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -7406,9 +8250,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -7419,11 +8265,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -7438,6 +8286,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -7455,9 +8304,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -7467,10 +8318,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7484,10 +8337,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.8", "start": 0, "type": "Literal", @@ -7505,9 +8360,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row4", "start": 0, "type": "Identifier" @@ -7519,6 +8376,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7529,6 +8387,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -7536,6 +8395,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -7551,6 +8411,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -7559,9 +8420,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -7577,6 +8440,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -7584,6 +8448,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7599,6 +8464,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -7607,9 +8473,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -7625,9 +8493,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -7638,11 +8508,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -7657,6 +8529,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -7671,9 +8544,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -7683,10 +8558,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7704,9 +8581,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row5", "start": 0, "type": "Identifier" @@ -7718,6 +8597,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7728,6 +8608,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -7735,6 +8616,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -7750,6 +8632,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -7758,9 +8641,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -7776,6 +8661,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -7783,6 +8669,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -7798,6 +8685,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -7806,9 +8694,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -7824,9 +8714,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -7837,11 +8729,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -7861,6 +8755,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -7878,9 +8773,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -7890,10 +8787,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7907,10 +8806,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.7", "start": 0, "type": "Literal", @@ -7928,9 +8829,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row5", "start": 0, "type": "Identifier" @@ -7942,6 +8845,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7952,6 +8856,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -7959,6 +8864,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.3", "start": 0, "type": "Literal", @@ -7974,6 +8880,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -7982,9 +8889,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -8000,6 +8909,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -8007,6 +8917,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8022,6 +8933,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -8030,9 +8942,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -8048,9 +8962,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -8061,11 +8977,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -8080,6 +8998,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -8094,9 +9013,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -8106,10 +9027,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8127,9 +9050,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row6", "start": 0, "type": "Identifier" @@ -8141,6 +9066,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8151,6 +9077,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -8158,6 +9085,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -8173,6 +9101,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -8184,9 +9113,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -8196,10 +9127,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -8219,6 +9152,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -8226,6 +9160,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8241,6 +9176,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -8249,9 +9185,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -8267,9 +9205,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -8280,11 +9220,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -8304,6 +9246,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -8321,9 +9264,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -8333,10 +9278,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -8350,10 +9297,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -8371,9 +9320,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row6", "start": 0, "type": "Identifier" @@ -8385,6 +9336,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8395,6 +9347,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -8402,6 +9355,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -8417,6 +9371,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -8428,9 +9383,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -8440,10 +9397,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -8463,6 +9422,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -8470,6 +9430,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -8485,6 +9446,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -8493,9 +9455,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor1", "start": 0, "type": "Identifier" @@ -8511,9 +9475,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -8524,11 +9490,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -8543,6 +9511,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "originStart", "start": 0, "type": "Identifier" @@ -8560,9 +9529,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spacing", "start": 0, "type": "Identifier" @@ -8572,10 +9543,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8589,10 +9562,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -8610,9 +9585,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row6", "start": 0, "type": "Identifier" @@ -8624,6 +9601,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8634,6 +9612,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyWidth", "start": 0, "type": "Identifier" @@ -8641,6 +9620,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -8656,6 +9636,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -8667,9 +9648,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyHeight", "start": 0, "type": "Identifier" @@ -8679,10 +9662,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".6", "start": 0, "type": "Literal", @@ -8702,6 +9687,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "repeats", "start": 0, "type": "Identifier" @@ -8709,6 +9695,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8724,6 +9711,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -8732,9 +9720,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "highlightColor2", "start": 0, "type": "Identifier" @@ -8750,9 +9740,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keyFn", "start": 0, "type": "Identifier" @@ -8763,11 +9755,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -8780,6 +9774,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane002", "start": 0, "type": "Identifier" @@ -8787,6 +9782,7 @@ description: Result of parsing keyboard.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -8794,10 +9790,12 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8806,6 +9804,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8818,6 +9817,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8830,6 +9830,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".81", "start": 0, "type": "Literal", @@ -8841,6 +9842,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8852,10 +9854,12 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8864,6 +9868,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -8876,6 +9881,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8888,6 +9894,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8899,6 +9906,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8910,10 +9918,12 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8922,6 +9932,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8934,6 +9945,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -8944,13 +9956,16 @@ description: Result of parsing keyboard.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -8961,12 +9976,14 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7deg", "start": 0, "type": "Literal", @@ -8979,6 +9996,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8990,10 +10008,12 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -9002,6 +10022,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -9014,6 +10035,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -9026,6 +10048,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -9037,6 +10060,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9047,11 +10071,13 @@ description: Result of parsing keyboard.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -9069,6 +10095,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -9084,6 +10111,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -9091,13 +10119,16 @@ description: Result of parsing keyboard.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -9108,6 +10139,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9115,9 +10147,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane002", "start": 0, "type": "Identifier" @@ -9135,6 +10169,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -9148,6 +10183,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9157,18 +10193,22 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -9181,6 +10221,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9207,6 +10248,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -9216,14 +10258,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -9237,18 +10282,22 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -9261,6 +10310,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9280,6 +10330,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9290,9 +10341,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -9303,6 +10356,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9315,6 +10369,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9326,6 +10381,7 @@ description: Result of parsing keyboard.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -9337,19 +10393,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -9369,9 +10429,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -9382,6 +10444,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9394,6 +10457,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9404,6 +10468,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -9413,14 +10478,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -9440,9 +10508,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -9453,6 +10523,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9465,6 +10536,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -9472,6 +10544,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -9487,6 +10560,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -9500,6 +10574,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -9509,14 +10584,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -9530,18 +10608,22 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -9554,6 +10636,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9577,6 +10660,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -9584,6 +10668,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -9595,9 +10680,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -9608,6 +10695,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9620,6 +10708,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9630,6 +10719,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9639,18 +10729,22 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -9663,6 +10757,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9686,6 +10781,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -9693,6 +10789,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -9704,9 +10801,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -9717,6 +10816,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9729,6 +10829,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9739,6 +10840,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.63", "start": 0, "type": "Literal", @@ -9748,14 +10850,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -9775,9 +10880,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -9788,6 +10895,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9800,6 +10908,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9810,6 +10919,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.225", "start": 0, "type": "Literal", @@ -9819,14 +10929,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -9846,9 +10959,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -9859,6 +10974,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9871,6 +10987,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9882,6 +10999,7 @@ description: Result of parsing keyboard.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.57", "start": 0, "type": "Literal", @@ -9893,19 +11011,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -9925,9 +11047,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -9938,6 +11062,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9950,6 +11075,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -9957,6 +11083,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -9972,6 +11099,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -9985,6 +11113,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.93", "start": 0, "type": "Literal", @@ -9994,14 +11123,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -10015,18 +11147,22 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -10039,6 +11175,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10062,9 +11199,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -10075,6 +11214,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10087,6 +11227,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10097,6 +11238,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -10106,14 +11248,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -10133,9 +11278,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -10146,6 +11293,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10158,6 +11306,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10169,6 +11318,7 @@ description: Result of parsing keyboard.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -10180,19 +11330,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -10212,9 +11366,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -10225,6 +11381,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10237,6 +11394,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -10244,6 +11402,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -10259,19 +11418,23 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -10282,6 +11445,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10289,9 +11453,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg1", "start": 0, "type": "Identifier" @@ -10304,6 +11470,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10315,6 +11482,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -10322,6 +11490,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -10333,9 +11502,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -10346,6 +11517,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10358,18 +11530,22 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -10380,6 +11556,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10387,9 +11564,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg3", "start": 0, "type": "Identifier" @@ -10406,9 +11585,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -10419,6 +11600,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10431,6 +11613,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10441,6 +11624,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10450,18 +11634,22 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -10474,6 +11662,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10497,9 +11686,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -10510,6 +11701,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10522,6 +11714,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10533,6 +11726,7 @@ description: Result of parsing keyboard.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.225", "start": 0, "type": "Literal", @@ -10544,19 +11738,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -10576,9 +11774,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -10589,6 +11789,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10601,6 +11802,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -10608,6 +11810,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10623,6 +11826,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectTag", "start": 0, "type": "Identifier" @@ -10631,9 +11835,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg2", "start": 0, "type": "Identifier" @@ -10649,6 +11855,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -10656,6 +11863,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10671,9 +11879,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLineThatIntersects", "start": 0, "type": "Identifier" @@ -10684,19 +11894,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -10707,6 +11921,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10719,6 +11934,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10728,9 +11944,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -10742,6 +11960,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10753,9 +11972,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -10766,6 +11987,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10778,6 +12000,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -10786,9 +12009,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseColor", "start": 0, "type": "Identifier" @@ -10804,9 +12029,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -10817,6 +12044,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10825,15 +12053,18 @@ description: Result of parsing keyboard.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10843,9 +12074,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -10857,6 +12090,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -10864,16 +12098,19 @@ description: Result of parsing keyboard.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -10884,6 +12121,7 @@ description: Result of parsing keyboard.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -10894,6 +12132,7 @@ description: Result of parsing keyboard.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -10904,11 +12143,13 @@ description: Result of parsing keyboard.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -10926,6 +12167,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "o", "start": 0, "type": "Identifier" @@ -10941,6 +12183,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "oSketch001", "start": 0, "type": "Identifier" @@ -10948,13 +12191,16 @@ description: Result of parsing keyboard.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -10965,6 +12211,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10972,9 +12219,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane002", "start": 0, "type": "Identifier" @@ -10992,6 +12241,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -11008,6 +12258,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".788", "start": 0, "type": "Literal", @@ -11017,14 +12268,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -11038,18 +12292,22 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -11062,6 +12320,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11088,6 +12347,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".921", "start": 0, "type": "Literal", @@ -11097,14 +12357,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -11118,18 +12381,22 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -11142,6 +12409,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11161,6 +12429,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11171,9 +12440,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -11184,6 +12455,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11196,6 +12468,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -11206,6 +12479,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -11215,10 +12489,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -11238,6 +12514,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -11251,6 +12528,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -11260,10 +12538,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -11277,10 +12557,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -11300,6 +12582,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -11310,6 +12593,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".525", "start": 0, "type": "Literal", @@ -11319,14 +12603,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -11346,9 +12633,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -11359,6 +12648,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11371,6 +12661,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -11378,6 +12669,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -11393,6 +12685,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11403,6 +12696,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".24", "start": 0, "type": "Literal", @@ -11412,14 +12706,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -11439,9 +12736,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -11452,6 +12751,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11464,6 +12764,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -11477,6 +12778,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -11486,10 +12788,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -11503,10 +12807,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -11526,6 +12832,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -11536,6 +12843,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -11545,10 +12853,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -11568,6 +12878,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -11578,6 +12889,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".288", "start": 0, "type": "Literal", @@ -11587,14 +12899,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -11614,9 +12929,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -11627,19 +12944,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -11650,6 +12971,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11662,6 +12984,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11671,9 +12994,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -11685,6 +13010,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11696,9 +13022,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -11709,6 +13037,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11721,6 +13050,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -11729,9 +13059,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseColor", "start": 0, "type": "Identifier" @@ -11747,9 +13079,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -11760,6 +13094,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11768,15 +13103,18 @@ description: Result of parsing keyboard.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11789,6 +13127,7 @@ description: Result of parsing keyboard.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "o", "start": 0, "type": "Identifier" @@ -11796,13 +13135,16 @@ description: Result of parsing keyboard.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -11813,6 +13155,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11820,9 +13163,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane002", "start": 0, "type": "Identifier" @@ -11840,6 +13185,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -11856,6 +13202,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".16", "start": 0, "type": "Literal", @@ -11865,14 +13212,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -11886,18 +13236,22 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -11910,6 +13264,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11936,6 +13291,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".079", "start": 0, "type": "Literal", @@ -11945,14 +13301,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -11966,18 +13325,22 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -11990,6 +13353,7 @@ description: Result of parsing keyboard.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -12009,6 +13373,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12019,9 +13384,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -12032,6 +13399,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12044,6 +13412,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -12057,6 +13426,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -12066,10 +13436,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -12083,10 +13455,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -12106,6 +13480,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -12116,6 +13491,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -12125,10 +13501,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -12148,6 +13526,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -12158,6 +13537,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".525", "start": 0, "type": "Literal", @@ -12167,14 +13547,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -12194,9 +13577,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -12207,6 +13592,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12219,6 +13605,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -12226,6 +13613,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -12241,6 +13629,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -12252,6 +13641,7 @@ description: Result of parsing keyboard.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".24", "start": 0, "type": "Literal", @@ -12263,19 +13653,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -12295,9 +13689,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -12308,6 +13704,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12320,6 +13717,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -12330,6 +13728,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -12339,10 +13738,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -12362,6 +13763,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -12375,6 +13777,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.15", "start": 0, "type": "Literal", @@ -12384,10 +13787,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -12401,10 +13806,12 @@ description: Result of parsing keyboard.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -12424,6 +13831,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -12434,6 +13842,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".288", "start": 0, "type": "Literal", @@ -12443,14 +13852,17 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -12470,9 +13882,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -12483,19 +13897,23 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -12506,6 +13924,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12518,6 +13937,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -12527,9 +13947,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -12541,6 +13963,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12552,9 +13975,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -12565,6 +13990,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12577,6 +14003,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -12585,9 +14012,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseColor", "start": 0, "type": "Identifier" @@ -12603,9 +14032,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -12616,6 +14047,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12624,15 +14056,18 @@ description: Result of parsing keyboard.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12642,9 +14077,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "o", "start": 0, "type": "Identifier" @@ -12656,6 +14093,7 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -12663,12 +14101,14 @@ description: Result of parsing keyboard.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -12683,12 +14123,14 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -12699,6 +14141,7 @@ description: Result of parsing keyboard.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -12709,6 +14152,7 @@ description: Result of parsing keyboard.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -12719,11 +14163,13 @@ description: Result of parsing keyboard.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -12743,6 +14189,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -12753,6 +14200,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.3", "start": 0, "type": "Literal", @@ -12765,6 +14213,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.3", "start": 0, "type": "Literal", @@ -12776,6 +14225,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12786,6 +14236,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -12793,6 +14244,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".4", "start": 0, "type": "Literal", @@ -12808,6 +14260,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -12815,6 +14268,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03", "start": 0, "type": "Literal", @@ -12830,9 +14284,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -12843,11 +14299,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -12867,6 +14325,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -12877,6 +14336,7 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.71", "start": 0, "type": "Literal", @@ -12893,9 +14353,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row4", "start": 0, "type": "Identifier" @@ -12905,10 +14367,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".08", "start": 0, "type": "Literal", @@ -12924,6 +14388,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12934,6 +14399,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -12941,6 +14407,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -12956,6 +14423,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -12963,6 +14431,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03", "start": 0, "type": "Literal", @@ -12978,9 +14447,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "o", "start": 0, "type": "Identifier" @@ -12991,11 +14462,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -13010,6 +14483,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" @@ -13023,6 +14497,7 @@ description: Result of parsing keyboard.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.71", "start": 0, "type": "Literal", @@ -13032,10 +14507,12 @@ description: Result of parsing keyboard.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -13056,9 +14533,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "row4", "start": 0, "type": "Identifier" @@ -13068,10 +14547,12 @@ description: Result of parsing keyboard.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".08", "start": 0, "type": "Literal", @@ -13087,6 +14568,7 @@ description: Result of parsing keyboard.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13097,6 +14579,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -13104,6 +14587,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -13119,6 +14603,7 @@ description: Result of parsing keyboard.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -13126,6 +14611,7 @@ description: Result of parsing keyboard.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03", "start": 0, "type": "Literal", @@ -13141,9 +14627,11 @@ description: Result of parsing keyboard.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "o", "start": 0, "type": "Identifier" @@ -13154,11 +14642,13 @@ description: Result of parsing keyboard.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -13170,9 +14660,11 @@ description: Result of parsing keyboard.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -13191,19 +14683,23 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -13220,15 +14716,18 @@ description: Result of parsing keyboard.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -13244,12 +14743,14 @@ description: Result of parsing keyboard.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/keyboard/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/keyboard/program_memory.snap index e26b24956..42ad7ba44 100644 --- a/rust/kcl-lib/tests/kcl_samples/keyboard/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/keyboard/program_memory.snap @@ -476,6 +476,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -489,6 +490,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -502,6 +504,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -515,6 +518,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -538,6 +542,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -563,6 +568,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -588,6 +594,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -613,6 +620,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -894,6 +902,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -907,6 +916,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -920,6 +930,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -933,6 +944,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -956,6 +968,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -981,6 +994,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -1006,6 +1020,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -1031,6 +1046,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -1312,6 +1328,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -1325,6 +1342,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -1338,6 +1356,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -1351,6 +1370,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -1374,6 +1394,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -1399,6 +1420,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -1424,6 +1446,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -1449,6 +1472,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -1730,6 +1754,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -1743,6 +1768,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -1756,6 +1782,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -1769,6 +1796,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -1792,6 +1820,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -1817,6 +1846,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -1842,6 +1872,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -1867,6 +1898,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -2195,6 +2227,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -2208,6 +2241,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -2221,6 +2255,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -2234,6 +2269,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -2257,6 +2293,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -2282,6 +2319,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -2307,6 +2345,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -2332,6 +2371,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -2554,6 +2594,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -2567,6 +2608,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -2580,6 +2622,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -2593,6 +2636,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" @@ -2616,6 +2660,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 636, "end": 642, + "moduleId": 0, "start": 636, "type": "TagDeclarator", "value": "seg01" @@ -2641,6 +2686,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 718, "end": 724, + "moduleId": 0, "start": 718, "type": "TagDeclarator", "value": "seg02" @@ -2666,6 +2712,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 767, "end": 773, + "moduleId": 0, "start": 767, "type": "TagDeclarator", "value": "seg03" @@ -2691,6 +2738,7 @@ description: Variables in memory after executing keyboard.kcl "tag": { "commentStart": 843, "end": 849, + "moduleId": 0, "start": 843, "type": "TagDeclarator", "value": "seg04" diff --git a/rust/kcl-lib/tests/kcl_samples/kitt/ast.snap b/rust/kcl-lib/tests/kcl_samples/kitt/ast.snap index 197c27087..d393c1cc7 100644 --- a/rust/kcl-lib/tests/kcl_samples/kitt/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/kitt/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBoxBody", "start": 0, "type": "Identifier" @@ -41,6 +43,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -49,9 +52,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -67,9 +72,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -80,6 +87,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -87,9 +95,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -107,6 +117,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -118,9 +129,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -134,9 +147,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -148,6 +163,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -158,9 +174,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -171,6 +189,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -183,6 +202,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -193,6 +213,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -206,9 +227,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -220,6 +243,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -230,9 +254,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -243,6 +269,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -255,6 +282,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -266,9 +294,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -281,6 +311,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -292,6 +323,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -302,9 +334,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -315,6 +349,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -327,6 +362,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -337,6 +373,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -351,9 +388,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -365,6 +404,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -372,6 +412,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -382,9 +423,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -395,6 +438,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -407,6 +451,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -415,13 +460,16 @@ description: Result of parsing kitt.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -432,25 +480,30 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -461,12 +514,14 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -474,6 +529,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -484,9 +540,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -497,19 +555,23 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -520,6 +582,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -532,6 +595,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -540,9 +604,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -558,9 +624,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -571,6 +639,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -579,15 +648,18 @@ description: Result of parsing kitt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -597,9 +669,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBoxBody", "start": 0, "type": "Identifier" @@ -611,6 +685,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -618,16 +693,19 @@ description: Result of parsing kitt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -638,6 +716,7 @@ description: Result of parsing kitt.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -648,6 +727,7 @@ description: Result of parsing kitt.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -658,6 +738,7 @@ description: Result of parsing kitt.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -668,6 +749,7 @@ description: Result of parsing kitt.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -678,6 +760,7 @@ description: Result of parsing kitt.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -688,6 +771,7 @@ description: Result of parsing kitt.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -698,11 +782,13 @@ description: Result of parsing kitt.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Kitt", "// The beloved KittyCAD mascot in a voxelized style.", @@ -722,6 +808,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyElevation", "start": 0, "type": "Identifier" @@ -729,6 +816,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -738,11 +826,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -760,6 +850,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyWidth", "start": 0, "type": "Identifier" @@ -767,6 +858,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26", "start": 0, "type": "Literal", @@ -776,11 +868,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -793,6 +887,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyHeight", "start": 0, "type": "Identifier" @@ -800,6 +895,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -809,11 +905,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -826,6 +924,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyDepth", "start": 0, "type": "Identifier" @@ -833,6 +932,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -842,11 +942,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -859,6 +961,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -866,13 +969,16 @@ description: Result of parsing kitt.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -883,6 +989,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -890,9 +997,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -910,6 +1019,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -925,9 +1035,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyWidth", "start": 0, "type": "Identifier" @@ -939,15 +1051,18 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -965,9 +1080,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyElevation", "start": 0, "type": "Identifier" @@ -979,6 +1096,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -989,9 +1107,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1002,6 +1122,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1014,6 +1135,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1024,6 +1146,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1037,9 +1160,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyHeight", "start": 0, "type": "Identifier" @@ -1051,6 +1176,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1061,9 +1187,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1074,6 +1202,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1086,6 +1215,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1097,9 +1227,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyWidth", "start": 0, "type": "Identifier" @@ -1112,6 +1244,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1123,6 +1256,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1133,6 +1267,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1140,6 +1275,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1151,9 +1287,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1164,6 +1302,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1176,6 +1315,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1186,6 +1326,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1200,9 +1341,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyHeight", "start": 0, "type": "Identifier" @@ -1214,6 +1357,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1221,6 +1365,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1231,6 +1376,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1238,6 +1384,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1249,9 +1396,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1262,6 +1411,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1274,6 +1424,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1282,13 +1433,16 @@ description: Result of parsing kitt.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1299,25 +1453,30 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1328,12 +1487,14 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1341,6 +1502,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1351,9 +1513,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1364,19 +1528,23 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1387,6 +1555,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1399,6 +1568,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1407,9 +1577,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyDepth", "start": 0, "type": "Identifier" @@ -1425,9 +1597,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1438,6 +1612,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1446,12 +1621,14 @@ description: Result of parsing kitt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1468,11 +1645,13 @@ description: Result of parsing kitt.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1485,6 +1664,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadOffset", "start": 0, "type": "Identifier" @@ -1492,6 +1672,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1501,11 +1682,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1518,6 +1701,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadHeight", "start": 0, "type": "Identifier" @@ -1525,6 +1709,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -1534,11 +1719,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1551,6 +1738,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadElevation", "start": 0, "type": "Identifier" @@ -1568,9 +1756,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyElevation", "start": 0, "type": "Identifier" @@ -1580,14 +1770,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyHeight", "start": 0, "type": "Identifier" @@ -1601,14 +1794,17 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadOffset", "start": 0, "type": "Identifier" @@ -1622,14 +1818,17 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadHeight", "start": 0, "type": "Identifier" @@ -1643,11 +1842,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1660,6 +1861,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadWidth", "start": 0, "type": "Identifier" @@ -1671,9 +1873,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyWidth", "start": 0, "type": "Identifier" @@ -1683,6 +1887,7 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1691,9 +1896,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadOffset", "start": 0, "type": "Identifier" @@ -1703,10 +1910,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1724,11 +1933,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1741,6 +1952,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadDepth", "start": 0, "type": "Identifier" @@ -1748,6 +1960,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1757,11 +1970,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1774,6 +1989,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHead", "start": 0, "type": "Identifier" @@ -1785,6 +2001,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -1793,9 +2010,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -1811,6 +2030,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -1819,9 +2039,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1837,6 +2059,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -1849,9 +2072,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadWidth", "start": 0, "type": "Identifier" @@ -1863,15 +2088,18 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1891,6 +2119,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -1899,9 +2128,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadElevation", "start": 0, "type": "Identifier" @@ -1917,6 +2148,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1925,9 +2157,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadWidth", "start": 0, "type": "Identifier" @@ -1943,6 +2177,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1951,9 +2186,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadHeight", "start": 0, "type": "Identifier" @@ -1969,6 +2206,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -1977,9 +2215,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadDepth", "start": 0, "type": "Identifier" @@ -1995,9 +2235,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -2008,16 +2250,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2030,6 +2275,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceElevation", "start": 0, "type": "Identifier" @@ -2041,9 +2287,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadElevation", "start": 0, "type": "Identifier" @@ -2053,10 +2301,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2070,11 +2320,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2087,6 +2339,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceWidth", "start": 0, "type": "Identifier" @@ -2098,9 +2351,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadWidth", "start": 0, "type": "Identifier" @@ -2110,10 +2365,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2127,11 +2384,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2149,6 +2408,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceHeight", "start": 0, "type": "Identifier" @@ -2166,9 +2426,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadElevation", "start": 0, "type": "Identifier" @@ -2178,14 +2440,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadHeight", "start": 0, "type": "Identifier" @@ -2199,14 +2464,17 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceElevation", "start": 0, "type": "Identifier" @@ -2220,10 +2488,12 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2237,11 +2507,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2254,6 +2526,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceDepth", "start": 0, "type": "Identifier" @@ -2261,6 +2534,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2270,11 +2544,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2287,6 +2563,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -2300,6 +2577,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2308,9 +2586,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -2326,9 +2606,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2339,6 +2621,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2346,9 +2629,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHead", "start": 0, "type": "Identifier" @@ -2366,6 +2651,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2381,9 +2667,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceWidth", "start": 0, "type": "Identifier" @@ -2395,15 +2683,18 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2421,9 +2712,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceElevation", "start": 0, "type": "Identifier" @@ -2435,6 +2728,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2445,9 +2739,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2458,6 +2754,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2470,6 +2767,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2480,6 +2778,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2492,6 +2791,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2503,6 +2803,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2513,9 +2814,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2526,6 +2829,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2538,6 +2842,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2549,6 +2854,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2560,6 +2866,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2568,6 +2875,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2579,6 +2887,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2589,9 +2898,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2602,6 +2913,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2614,6 +2926,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2624,6 +2937,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2637,9 +2951,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceHeight", "start": 0, "type": "Identifier" @@ -2651,6 +2967,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2661,9 +2978,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2674,6 +2993,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2686,6 +3006,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2696,6 +3017,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2708,6 +3030,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2719,6 +3042,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2729,9 +3053,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2742,6 +3068,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2754,6 +3081,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2764,6 +3092,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2776,6 +3105,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2787,6 +3117,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2797,9 +3128,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2810,6 +3143,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2822,6 +3156,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2833,9 +3168,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceWidth", "start": 0, "type": "Identifier" @@ -2848,6 +3185,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2859,6 +3197,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2869,9 +3208,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2882,6 +3223,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2894,6 +3236,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2904,6 +3247,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2917,6 +3261,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2928,6 +3273,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2935,6 +3281,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2945,9 +3292,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2958,6 +3307,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2970,6 +3320,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2980,6 +3331,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2992,6 +3344,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3003,6 +3356,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3013,9 +3367,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3026,6 +3382,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3038,6 +3395,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3048,6 +3406,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3062,9 +3421,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceHeight", "start": 0, "type": "Identifier" @@ -3076,6 +3437,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3083,6 +3445,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3093,9 +3456,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3106,6 +3471,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3118,6 +3484,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3129,6 +3496,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3140,6 +3508,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3148,6 +3517,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3159,6 +3529,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3169,9 +3540,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3182,6 +3555,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3194,6 +3568,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3204,6 +3579,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3217,6 +3593,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3228,6 +3605,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3235,6 +3613,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3245,9 +3624,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3258,6 +3639,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3270,6 +3652,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3278,13 +3661,16 @@ description: Result of parsing kitt.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3295,25 +3681,30 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3324,12 +3715,14 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3337,6 +3730,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3347,9 +3741,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3360,19 +3756,23 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3383,6 +3783,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3395,6 +3796,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3404,9 +3806,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceDepth", "start": 0, "type": "Identifier" @@ -3418,6 +3822,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3429,9 +3834,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3442,6 +3849,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3450,12 +3858,14 @@ description: Result of parsing kitt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3469,6 +3879,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3482,6 +3893,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3495,6 +3907,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3508,6 +3921,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3521,6 +3935,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3534,6 +3949,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3547,6 +3963,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3560,6 +3977,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3573,6 +3991,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3586,6 +4005,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3599,6 +4019,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3610,6 +4031,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3621,6 +4043,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3637,11 +4060,13 @@ description: Result of parsing kitt.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3654,6 +4079,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -3661,6 +4087,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -3670,11 +4097,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3687,6 +4116,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeHeight", "start": 0, "type": "Identifier" @@ -3698,9 +4128,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFaceElevation", "start": 0, "type": "Identifier" @@ -3710,10 +4142,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -3727,11 +4161,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3744,6 +4180,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeOffset", "start": 0, "type": "Identifier" @@ -3751,6 +4188,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -3760,11 +4198,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3777,6 +4217,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLeftEye1", "start": 0, "type": "Identifier" @@ -3788,6 +4229,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -3796,9 +4238,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -3814,6 +4258,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -3822,9 +4267,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -3840,6 +4287,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -3849,9 +4297,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeOffset", "start": 0, "type": "Identifier" @@ -3863,6 +4313,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3874,6 +4325,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -3882,9 +4334,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeHeight", "start": 0, "type": "Identifier" @@ -3900,6 +4354,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3907,6 +4362,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3922,6 +4378,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3929,6 +4386,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3944,6 +4402,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -3952,9 +4411,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -3970,9 +4431,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -3983,16 +4446,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4010,6 +4476,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLeftEye2", "start": 0, "type": "Identifier" @@ -4021,6 +4488,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -4029,9 +4497,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -4047,6 +4517,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -4055,9 +4526,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -4073,6 +4546,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -4085,9 +4559,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeOffset", "start": 0, "type": "Identifier" @@ -4099,15 +4575,18 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4127,6 +4606,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -4138,9 +4618,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeHeight", "start": 0, "type": "Identifier" @@ -4150,10 +4632,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4173,6 +4657,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -4180,6 +4665,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4195,6 +4681,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -4202,6 +4689,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4217,6 +4705,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -4225,9 +4714,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -4243,9 +4734,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -4256,16 +4749,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4283,6 +4779,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLeftEye3", "start": 0, "type": "Identifier" @@ -4294,6 +4791,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -4302,9 +4800,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -4320,6 +4820,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -4328,9 +4829,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -4346,6 +4849,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -4358,9 +4862,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeOffset", "start": 0, "type": "Identifier" @@ -4372,15 +4878,18 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4400,6 +4909,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -4408,9 +4918,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeHeight", "start": 0, "type": "Identifier" @@ -4426,6 +4938,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -4433,6 +4946,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4448,6 +4962,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -4455,6 +4970,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4470,6 +4986,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -4478,9 +4995,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -4496,9 +5015,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -4509,16 +5030,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4531,6 +5055,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitRightEye", "start": 0, "type": "Identifier" @@ -4542,6 +5067,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -4550,9 +5076,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -4568,6 +5096,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -4576,9 +5105,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -4594,6 +5125,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -4605,9 +5137,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeOffset", "start": 0, "type": "Identifier" @@ -4617,10 +5151,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4640,6 +5176,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -4651,9 +5188,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeHeight", "start": 0, "type": "Identifier" @@ -4663,10 +5202,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4686,6 +5227,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -4693,6 +5235,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4708,6 +5251,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -4715,6 +5259,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4730,6 +5275,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -4738,9 +5284,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -4756,9 +5304,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -4769,16 +5319,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4791,6 +5344,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNoseElevation", "start": 0, "type": "Identifier" @@ -4802,9 +5356,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeHeight", "start": 0, "type": "Identifier" @@ -4814,10 +5370,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -4831,11 +5389,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4848,6 +5408,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNose", "start": 0, "type": "Identifier" @@ -4861,6 +5422,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -4869,9 +5431,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -4887,9 +5451,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4900,6 +5466,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4907,9 +5474,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -4927,6 +5496,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4938,6 +5508,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4949,6 +5520,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4958,9 +5530,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNoseElevation", "start": 0, "type": "Identifier" @@ -4972,6 +5546,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4982,9 +5557,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4995,6 +5572,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5007,6 +5585,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5017,6 +5596,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5029,6 +5609,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5040,6 +5621,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5050,9 +5632,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5063,6 +5647,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5075,6 +5660,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5085,6 +5671,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5097,6 +5684,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5108,6 +5696,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5118,9 +5707,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5131,6 +5722,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5143,6 +5735,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5153,6 +5746,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5165,6 +5759,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5176,6 +5771,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5186,9 +5782,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5199,6 +5797,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5211,6 +5810,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5222,6 +5822,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5233,6 +5834,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5241,6 +5843,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5252,6 +5855,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5262,9 +5866,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5275,6 +5881,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5287,6 +5894,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5297,6 +5905,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5309,6 +5918,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5320,6 +5930,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5330,9 +5941,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5343,6 +5956,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5355,6 +5969,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5365,6 +5980,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5377,6 +5993,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5388,6 +6005,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5398,9 +6016,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5411,6 +6031,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5423,6 +6044,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5433,6 +6055,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5446,6 +6069,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5457,6 +6081,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5464,6 +6089,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5474,9 +6100,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5487,6 +6115,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5499,6 +6128,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5510,6 +6140,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5521,6 +6152,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5529,6 +6161,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5540,6 +6173,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5550,9 +6184,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5563,6 +6199,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5575,6 +6212,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5585,6 +6223,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5598,6 +6237,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5609,6 +6249,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5616,6 +6257,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5626,9 +6268,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5639,6 +6283,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5651,6 +6296,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5661,6 +6307,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5673,6 +6320,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5684,6 +6332,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5694,9 +6343,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5707,6 +6358,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5719,6 +6371,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5729,6 +6382,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5742,6 +6396,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5753,6 +6408,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5760,6 +6416,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5770,9 +6427,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5783,6 +6442,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5795,6 +6455,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5803,13 +6464,16 @@ description: Result of parsing kitt.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5820,25 +6484,30 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5849,12 +6518,14 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5862,6 +6533,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5872,9 +6544,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5885,19 +6559,23 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5908,6 +6586,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5920,6 +6599,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5928,9 +6608,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -5946,9 +6628,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5959,6 +6643,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5967,12 +6652,14 @@ description: Result of parsing kitt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5986,6 +6673,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5999,6 +6687,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6012,6 +6701,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6025,6 +6715,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6038,6 +6729,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6051,6 +6743,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6064,6 +6757,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6077,6 +6771,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6090,6 +6785,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6103,6 +6799,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6116,6 +6813,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6129,6 +6827,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6145,11 +6844,13 @@ description: Result of parsing kitt.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6162,6 +6863,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthOffset", "start": 0, "type": "Identifier" @@ -6169,6 +6871,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6178,11 +6881,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6195,6 +6900,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthHeight", "start": 0, "type": "Identifier" @@ -6206,9 +6912,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeHeight", "start": 0, "type": "Identifier" @@ -6218,10 +6926,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6235,11 +6945,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6252,6 +6964,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthUpLeft", "start": 0, "type": "Identifier" @@ -6263,6 +6976,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -6271,9 +6985,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -6289,6 +7005,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -6297,9 +7014,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -6315,6 +7034,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -6324,9 +7044,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthOffset", "start": 0, "type": "Identifier" @@ -6338,6 +7060,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6349,6 +7072,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -6357,9 +7081,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthHeight", "start": 0, "type": "Identifier" @@ -6375,6 +7101,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6382,6 +7109,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6397,6 +7125,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -6404,6 +7133,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6419,6 +7149,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -6427,9 +7158,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -6445,9 +7178,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -6458,16 +7193,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6480,6 +7218,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthDownLeft", "start": 0, "type": "Identifier" @@ -6491,6 +7230,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -6499,9 +7239,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -6517,6 +7259,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -6525,9 +7268,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -6543,6 +7288,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -6555,9 +7301,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthOffset", "start": 0, "type": "Identifier" @@ -6569,15 +7317,18 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6597,6 +7348,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -6608,9 +7360,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthHeight", "start": 0, "type": "Identifier" @@ -6620,10 +7374,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6643,6 +7399,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6650,6 +7407,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6665,6 +7423,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -6672,6 +7431,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6687,6 +7447,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -6695,9 +7456,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -6713,9 +7476,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -6726,16 +7491,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -6753,6 +7521,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthUpRight", "start": 0, "type": "Identifier" @@ -6764,6 +7533,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -6772,9 +7542,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -6790,6 +7562,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -6798,9 +7571,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -6816,6 +7591,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -6824,9 +7600,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthOffset", "start": 0, "type": "Identifier" @@ -6842,6 +7620,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -6850,9 +7629,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthHeight", "start": 0, "type": "Identifier" @@ -6868,6 +7649,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6875,6 +7657,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6890,6 +7673,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -6897,6 +7681,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6912,6 +7697,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -6920,9 +7706,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -6938,9 +7726,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -6951,16 +7741,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6973,6 +7766,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthDownRight", "start": 0, "type": "Identifier" @@ -6984,6 +7778,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -6992,9 +7787,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFace", "start": 0, "type": "Identifier" @@ -7010,6 +7807,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -7018,9 +7816,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -7036,6 +7836,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -7047,9 +7848,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthOffset", "start": 0, "type": "Identifier" @@ -7059,10 +7862,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7082,6 +7887,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -7093,9 +7899,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitMouthHeight", "start": 0, "type": "Identifier" @@ -7105,10 +7913,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7128,6 +7938,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -7135,6 +7946,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7150,6 +7962,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -7157,6 +7970,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7172,6 +7986,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -7180,9 +7995,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEyeDepth", "start": 0, "type": "Identifier" @@ -7198,9 +8015,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -7211,16 +8030,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7233,6 +8055,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyElevation", "start": 0, "type": "Identifier" @@ -7244,9 +8067,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyElevation", "start": 0, "type": "Identifier" @@ -7256,10 +8081,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7273,11 +8100,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7290,6 +8119,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyHeight", "start": 0, "type": "Identifier" @@ -7304,9 +8134,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadElevation", "start": 0, "type": "Identifier" @@ -7316,14 +8148,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyElevation", "start": 0, "type": "Identifier" @@ -7337,10 +8172,12 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7354,11 +8191,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7371,6 +8210,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyWidth", "start": 0, "type": "Identifier" @@ -7379,9 +8219,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadWidth", "start": 0, "type": "Identifier" @@ -7391,11 +8233,13 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -7413,6 +8257,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyDepth", "start": 0, "type": "Identifier" @@ -7421,9 +8266,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadDepth", "start": 0, "type": "Identifier" @@ -7433,11 +8280,13 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7450,6 +8299,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBelly", "start": 0, "type": "Identifier" @@ -7461,6 +8311,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -7469,9 +8320,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -7487,6 +8340,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -7495,9 +8349,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -7513,6 +8369,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -7525,9 +8382,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyWidth", "start": 0, "type": "Identifier" @@ -7539,15 +8398,18 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7567,6 +8429,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -7575,9 +8438,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyElevation", "start": 0, "type": "Identifier" @@ -7593,6 +8458,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -7601,9 +8467,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyWidth", "start": 0, "type": "Identifier" @@ -7619,6 +8487,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -7627,9 +8496,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyHeight", "start": 0, "type": "Identifier" @@ -7645,6 +8516,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -7653,9 +8525,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyDepth", "start": 0, "type": "Identifier" @@ -7671,9 +8545,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -7684,16 +8560,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7706,6 +8585,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHSelevation", "start": 0, "type": "Identifier" @@ -7717,9 +8597,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyElevation", "start": 0, "type": "Identifier" @@ -7729,10 +8611,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7746,11 +8630,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7763,6 +8649,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHSheight", "start": 0, "type": "Identifier" @@ -7770,6 +8657,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7779,11 +8667,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7796,6 +8686,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHSwidth", "start": 0, "type": "Identifier" @@ -7803,6 +8694,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -7812,11 +8704,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -7834,6 +8728,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHSdepth", "start": 0, "type": "Identifier" @@ -7841,6 +8736,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7850,11 +8746,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7867,6 +8765,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHS", "start": 0, "type": "Identifier" @@ -7878,6 +8777,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -7886,9 +8786,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBelly", "start": 0, "type": "Identifier" @@ -7904,6 +8806,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -7912,9 +8815,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -7930,6 +8835,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -7942,9 +8848,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHSwidth", "start": 0, "type": "Identifier" @@ -7956,15 +8864,18 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7984,6 +8895,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -7992,9 +8904,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHSelevation", "start": 0, "type": "Identifier" @@ -8010,6 +8924,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -8018,9 +8933,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHSwidth", "start": 0, "type": "Identifier" @@ -8036,6 +8953,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -8044,9 +8962,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHSheight", "start": 0, "type": "Identifier" @@ -8062,6 +8982,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -8070,9 +8991,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVHSdepth", "start": 0, "type": "Identifier" @@ -8088,9 +9011,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -8101,16 +9026,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8123,6 +9051,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyElevation", "start": 0, "type": "Identifier" @@ -8134,9 +9063,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyElevation", "start": 0, "type": "Identifier" @@ -8146,10 +9077,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -8163,11 +9096,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8180,6 +9115,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyHeight", "start": 0, "type": "Identifier" @@ -8187,6 +9123,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -8196,11 +9133,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8213,6 +9152,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyWidth", "start": 0, "type": "Identifier" @@ -8220,6 +9160,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -8229,11 +9170,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8246,6 +9189,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyOffset", "start": 0, "type": "Identifier" @@ -8260,9 +9204,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyWidth", "start": 0, "type": "Identifier" @@ -8272,10 +9218,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8289,10 +9237,12 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -8306,11 +9256,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8323,6 +9275,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyDepth", "start": 0, "type": "Identifier" @@ -8330,6 +9283,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8339,11 +9293,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8356,6 +9312,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppy1", "start": 0, "type": "Identifier" @@ -8367,6 +9324,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -8375,9 +9333,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBelly", "start": 0, "type": "Identifier" @@ -8393,6 +9353,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -8401,9 +9362,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -8419,6 +9382,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -8428,9 +9392,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyOffset", "start": 0, "type": "Identifier" @@ -8442,6 +9408,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8453,6 +9420,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -8461,9 +9429,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyElevation", "start": 0, "type": "Identifier" @@ -8479,6 +9449,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -8487,9 +9458,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyWidth", "start": 0, "type": "Identifier" @@ -8505,6 +9478,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -8513,9 +9487,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyHeight", "start": 0, "type": "Identifier" @@ -8531,6 +9507,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -8540,9 +9517,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyDepth", "start": 0, "type": "Identifier" @@ -8554,6 +9533,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8565,9 +9545,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -8578,16 +9560,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -8605,6 +9590,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppy2", "start": 0, "type": "Identifier" @@ -8616,6 +9602,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -8624,9 +9611,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBelly", "start": 0, "type": "Identifier" @@ -8642,6 +9631,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -8650,9 +9640,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -8668,6 +9660,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -8677,9 +9670,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyOffset", "start": 0, "type": "Identifier" @@ -8691,6 +9686,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8702,6 +9698,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -8713,9 +9710,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyElevation", "start": 0, "type": "Identifier" @@ -8725,10 +9724,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8748,6 +9749,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -8756,9 +9758,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyWidth", "start": 0, "type": "Identifier" @@ -8774,6 +9778,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -8782,9 +9787,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyHeight", "start": 0, "type": "Identifier" @@ -8800,6 +9807,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -8809,9 +9817,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyDepth", "start": 0, "type": "Identifier" @@ -8823,6 +9833,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8834,9 +9845,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -8847,16 +9860,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8869,6 +9885,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppy3", "start": 0, "type": "Identifier" @@ -8880,6 +9897,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -8888,9 +9906,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBelly", "start": 0, "type": "Identifier" @@ -8906,6 +9926,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -8914,9 +9935,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -8932,6 +9955,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -8940,9 +9964,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyOffset", "start": 0, "type": "Identifier" @@ -8958,6 +9984,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -8966,9 +9993,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyElevation", "start": 0, "type": "Identifier" @@ -8984,6 +10013,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -8993,9 +10023,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyWidth", "start": 0, "type": "Identifier" @@ -9007,6 +10039,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9018,6 +10051,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -9026,9 +10060,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyHeight", "start": 0, "type": "Identifier" @@ -9044,6 +10080,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -9053,9 +10090,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyDepth", "start": 0, "type": "Identifier" @@ -9067,6 +10106,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9078,9 +10118,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -9091,16 +10133,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9113,6 +10158,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonOffset", "start": 0, "type": "Identifier" @@ -9127,9 +10173,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadWidth", "start": 0, "type": "Identifier" @@ -9139,10 +10187,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9156,10 +10206,12 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -9173,11 +10225,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9190,6 +10244,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonElevation", "start": 0, "type": "Identifier" @@ -9201,9 +10256,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadElevation", "start": 0, "type": "Identifier" @@ -9213,10 +10270,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9230,11 +10289,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9247,6 +10308,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonWidth", "start": 0, "type": "Identifier" @@ -9254,6 +10316,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9263,11 +10326,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9280,6 +10345,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonHeight", "start": 0, "type": "Identifier" @@ -9287,6 +10353,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9296,11 +10363,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -9318,6 +10387,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonDepth", "start": 0, "type": "Identifier" @@ -9329,9 +10399,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitHeadDepth", "start": 0, "type": "Identifier" @@ -9341,10 +10413,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9358,11 +10432,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9375,6 +10451,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButton", "start": 0, "type": "Identifier" @@ -9386,6 +10463,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -9394,9 +10472,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -9412,6 +10492,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -9420,9 +10501,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -9438,6 +10521,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -9447,9 +10531,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonOffset", "start": 0, "type": "Identifier" @@ -9461,6 +10547,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9472,6 +10559,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -9480,9 +10568,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonElevation", "start": 0, "type": "Identifier" @@ -9498,6 +10588,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -9506,9 +10597,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonWidth", "start": 0, "type": "Identifier" @@ -9524,6 +10617,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -9532,9 +10626,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonHeight", "start": 0, "type": "Identifier" @@ -9550,6 +10646,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -9558,9 +10655,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBellyButtonDepth", "start": 0, "type": "Identifier" @@ -9576,9 +10675,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -9589,16 +10690,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9611,6 +10715,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonWidth", "start": 0, "type": "Identifier" @@ -9618,6 +10723,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9627,11 +10733,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9644,6 +10752,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonHeight", "start": 0, "type": "Identifier" @@ -9651,6 +10760,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9660,11 +10770,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9677,6 +10789,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonDepth", "start": 0, "type": "Identifier" @@ -9685,9 +10798,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyDepth", "start": 0, "type": "Identifier" @@ -9697,11 +10812,13 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9714,6 +10831,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonElevation", "start": 0, "type": "Identifier" @@ -9725,9 +10843,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyElevation", "start": 0, "type": "Identifier" @@ -9737,10 +10857,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9754,11 +10876,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9771,6 +10895,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButton1", "start": 0, "type": "Identifier" @@ -9782,6 +10907,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -9790,9 +10916,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBelly", "start": 0, "type": "Identifier" @@ -9808,6 +10936,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -9816,9 +10945,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -9834,6 +10965,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -9842,9 +10974,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyOffset", "start": 0, "type": "Identifier" @@ -9860,6 +10994,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -9871,9 +11006,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyElevation", "start": 0, "type": "Identifier" @@ -9883,10 +11020,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9906,6 +11045,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -9915,9 +11055,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonWidth", "start": 0, "type": "Identifier" @@ -9929,6 +11071,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9940,6 +11083,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -9948,9 +11092,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonHeight", "start": 0, "type": "Identifier" @@ -9966,6 +11112,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -9975,9 +11122,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonDepth", "start": 0, "type": "Identifier" @@ -9989,6 +11138,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10000,9 +11150,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -10013,16 +11165,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10035,6 +11190,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButton2", "start": 0, "type": "Identifier" @@ -10046,6 +11202,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -10054,9 +11211,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBelly", "start": 0, "type": "Identifier" @@ -10072,6 +11231,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -10080,9 +11240,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -10098,6 +11260,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -10112,9 +11275,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyOffset", "start": 0, "type": "Identifier" @@ -10124,14 +11289,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonWidth", "start": 0, "type": "Identifier" @@ -10145,10 +11313,12 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -10168,6 +11338,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -10179,9 +11350,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyElevation", "start": 0, "type": "Identifier" @@ -10191,10 +11364,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10214,6 +11389,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -10223,9 +11399,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonWidth", "start": 0, "type": "Identifier" @@ -10237,6 +11415,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10248,6 +11427,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -10256,9 +11436,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonHeight", "start": 0, "type": "Identifier" @@ -10274,6 +11456,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -10283,9 +11466,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonDepth", "start": 0, "type": "Identifier" @@ -10297,6 +11482,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10308,9 +11494,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -10321,16 +11509,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -10348,6 +11539,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButton3", "start": 0, "type": "Identifier" @@ -10359,6 +11551,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -10367,9 +11560,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBelly", "start": 0, "type": "Identifier" @@ -10385,6 +11580,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -10393,9 +11589,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -10411,6 +11609,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -10422,9 +11621,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyOffset", "start": 0, "type": "Identifier" @@ -10434,6 +11635,7 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -10441,6 +11643,7 @@ description: Result of parsing kitt.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10450,6 +11653,7 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -10458,9 +11662,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonWidth", "start": 0, "type": "Identifier" @@ -10470,10 +11676,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -10501,6 +11709,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -10512,9 +11721,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFloppyElevation", "start": 0, "type": "Identifier" @@ -10524,10 +11735,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10547,6 +11760,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -10556,9 +11770,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonWidth", "start": 0, "type": "Identifier" @@ -10570,6 +11786,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10581,6 +11798,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -10589,9 +11807,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonHeight", "start": 0, "type": "Identifier" @@ -10607,6 +11827,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -10616,9 +11837,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitButtonDepth", "start": 0, "type": "Identifier" @@ -10630,6 +11853,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10641,9 +11865,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -10654,16 +11880,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10676,6 +11905,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeWidth", "start": 0, "type": "Identifier" @@ -10683,6 +11913,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -10692,11 +11923,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10709,6 +11942,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeLength", "start": 0, "type": "Identifier" @@ -10716,6 +11950,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -10725,11 +11960,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10742,6 +11979,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeHeight", "start": 0, "type": "Identifier" @@ -10749,6 +11987,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -10758,11 +11997,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10775,6 +12016,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLeg", "start": 0, "type": "Identifier" @@ -10790,6 +12032,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeOffsetFront", "start": 0, "type": "Identifier" @@ -10807,9 +12050,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeLength", "start": 0, "type": "Identifier" @@ -10819,10 +12064,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10836,6 +12083,7 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -10844,9 +12092,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyDepth", "start": 0, "type": "Identifier" @@ -10856,10 +12106,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10877,14 +12129,17 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetFront", "start": 0, "type": "Identifier" @@ -10898,11 +12153,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10915,6 +12172,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFootPrint", "start": 0, "type": "Identifier" @@ -10922,13 +12180,16 @@ description: Result of parsing kitt.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -10939,6 +12200,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10946,9 +12208,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -10966,6 +12230,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -10977,9 +12242,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetSide", "start": 0, "type": "Identifier" @@ -10993,9 +12260,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeOffsetFront", "start": 0, "type": "Identifier" @@ -11007,6 +12276,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11017,9 +12287,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -11030,6 +12302,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11042,6 +12315,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11053,9 +12327,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeWidth", "start": 0, "type": "Identifier" @@ -11068,6 +12344,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11079,6 +12356,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11089,9 +12367,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11102,6 +12382,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11114,6 +12395,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11124,6 +12406,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11138,9 +12421,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeLength", "start": 0, "type": "Identifier" @@ -11152,6 +12437,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11159,6 +12445,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11169,9 +12456,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11182,6 +12471,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11194,6 +12484,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11206,9 +12497,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeWidth", "start": 0, "type": "Identifier" @@ -11220,6 +12513,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11228,6 +12522,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11239,6 +12534,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11249,9 +12545,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11262,6 +12560,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11274,6 +12573,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11282,13 +12582,16 @@ description: Result of parsing kitt.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -11299,25 +12602,30 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -11328,12 +12636,14 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11341,6 +12651,7 @@ description: Result of parsing kitt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11351,9 +12662,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11364,19 +12677,23 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -11387,6 +12704,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11395,15 +12713,18 @@ description: Result of parsing kitt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11416,6 +12737,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoe", "start": 0, "type": "Identifier" @@ -11427,6 +12749,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11435,9 +12758,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeHeight", "start": 0, "type": "Identifier" @@ -11453,9 +12778,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -11466,6 +12793,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11473,9 +12801,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitFootPrint", "start": 0, "type": "Identifier" @@ -11486,11 +12816,13 @@ description: Result of parsing kitt.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11503,6 +12835,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsOffsetSide", "start": 0, "type": "Identifier" @@ -11514,9 +12847,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetSide", "start": 0, "type": "Identifier" @@ -11526,10 +12861,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11543,11 +12880,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11560,6 +12899,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsOffsetFront", "start": 0, "type": "Identifier" @@ -11573,6 +12913,7 @@ description: Result of parsing kitt.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11582,14 +12923,17 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeOffsetFront", "start": 0, "type": "Identifier" @@ -11603,10 +12947,12 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11620,11 +12966,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11637,6 +12985,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsWidth", "start": 0, "type": "Identifier" @@ -11648,9 +12997,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeWidth", "start": 0, "type": "Identifier" @@ -11660,10 +13011,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11677,11 +13030,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11694,6 +13049,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsFrontWidth", "start": 0, "type": "Identifier" @@ -11702,9 +13058,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsWidth", "start": 0, "type": "Identifier" @@ -11714,11 +13072,13 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11731,6 +13091,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsHeight", "start": 0, "type": "Identifier" @@ -11742,9 +13103,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyElevation", "start": 0, "type": "Identifier" @@ -11754,14 +13117,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeHeight", "start": 0, "type": "Identifier" @@ -11775,11 +13141,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11792,6 +13160,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPants", "start": 0, "type": "Identifier" @@ -11803,6 +13172,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -11811,9 +13181,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoe", "start": 0, "type": "Identifier" @@ -11829,6 +13201,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -11837,9 +13210,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -11855,6 +13230,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -11863,9 +13239,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsOffsetSide", "start": 0, "type": "Identifier" @@ -11881,6 +13259,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -11889,9 +13268,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsOffsetFront", "start": 0, "type": "Identifier" @@ -11907,6 +13288,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -11915,9 +13297,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsFrontWidth", "start": 0, "type": "Identifier" @@ -11933,6 +13317,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -11941,9 +13326,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsWidth", "start": 0, "type": "Identifier" @@ -11959,6 +13346,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -11967,9 +13355,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitPantsHeight", "start": 0, "type": "Identifier" @@ -11985,9 +13375,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -11998,16 +13390,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12017,9 +13412,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoe", "start": 0, "type": "Identifier" @@ -12031,6 +13428,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -12038,12 +13436,14 @@ description: Result of parsing kitt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -12055,6 +13455,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -12066,6 +13467,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -12077,6 +13479,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -12088,6 +13491,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -12102,12 +13506,14 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetFront", "start": 0, "type": "Identifier" @@ -12118,6 +13524,7 @@ description: Result of parsing kitt.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetSide", "start": 0, "type": "Identifier" @@ -12128,11 +13535,13 @@ description: Result of parsing kitt.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12145,6 +13554,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLegOffset", "start": 0, "type": "Identifier" @@ -12152,6 +13562,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -12161,11 +13572,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12178,6 +13591,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitRightLeg", "start": 0, "type": "Identifier" @@ -12189,6 +13603,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetFront", "start": 0, "type": "Identifier" @@ -12196,6 +13611,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -12211,6 +13627,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetSide", "start": 0, "type": "Identifier" @@ -12219,9 +13636,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLegOffset", "start": 0, "type": "Identifier" @@ -12237,9 +13656,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLeg", "start": 0, "type": "Identifier" @@ -12250,16 +13671,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12272,6 +13696,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLeftLeg", "start": 0, "type": "Identifier" @@ -12283,6 +13708,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetFront", "start": 0, "type": "Identifier" @@ -12290,6 +13716,7 @@ description: Result of parsing kitt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -12305,6 +13732,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetSide", "start": 0, "type": "Identifier" @@ -12317,9 +13745,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLegOffset", "start": 0, "type": "Identifier" @@ -12331,19 +13761,23 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitShoeWidth", "start": 0, "type": "Identifier" @@ -12363,9 +13797,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLeg", "start": 0, "type": "Identifier" @@ -12376,16 +13812,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12398,6 +13837,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarWidth", "start": 0, "type": "Identifier" @@ -12405,6 +13845,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -12414,11 +13855,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -12436,6 +13879,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarDepth", "start": 0, "type": "Identifier" @@ -12443,6 +13887,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -12452,11 +13897,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12469,6 +13916,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarHeight", "start": 0, "type": "Identifier" @@ -12476,6 +13924,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -12485,11 +13934,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12502,6 +13953,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEar", "start": 0, "type": "Identifier" @@ -12517,6 +13969,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetFront", "start": 0, "type": "Identifier" @@ -12528,9 +13981,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyDepth", "start": 0, "type": "Identifier" @@ -12540,14 +13995,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "earOffsetFront", "start": 0, "type": "Identifier" @@ -12561,11 +14019,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12578,6 +14038,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetSide", "start": 0, "type": "Identifier" @@ -12593,9 +14054,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyWidth", "start": 0, "type": "Identifier" @@ -12605,10 +14068,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -12622,14 +14087,17 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "earOffsetSide", "start": 0, "type": "Identifier" @@ -12645,16 +14113,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12667,6 +14138,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseVolume", "start": 0, "type": "Identifier" @@ -12678,6 +14150,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -12686,9 +14159,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -12704,6 +14179,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -12712,9 +14188,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -12730,6 +14208,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -12738,9 +14217,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetSide", "start": 0, "type": "Identifier" @@ -12756,6 +14237,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -12764,9 +14246,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetFront", "start": 0, "type": "Identifier" @@ -12782,6 +14266,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -12790,9 +14275,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarWidth", "start": 0, "type": "Identifier" @@ -12808,6 +14295,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -12817,9 +14305,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarDepth", "start": 0, "type": "Identifier" @@ -12831,6 +14321,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12842,6 +14333,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -12850,9 +14342,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarHeight", "start": 0, "type": "Identifier" @@ -12868,9 +14362,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -12881,16 +14377,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12903,6 +14402,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondOffset", "start": 0, "type": "Identifier" @@ -12910,6 +14410,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -12919,11 +14420,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12936,6 +14439,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondLevel", "start": 0, "type": "Identifier" @@ -12947,6 +14451,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -12955,9 +14460,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseVolume", "start": 0, "type": "Identifier" @@ -12973,6 +14480,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -12981,9 +14489,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -12999,6 +14509,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -13010,9 +14521,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetSide", "start": 0, "type": "Identifier" @@ -13022,14 +14535,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondOffset", "start": 0, "type": "Identifier" @@ -13049,6 +14565,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -13060,9 +14577,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetFront", "start": 0, "type": "Identifier" @@ -13072,10 +14591,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -13095,6 +14616,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -13106,9 +14628,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarWidth", "start": 0, "type": "Identifier" @@ -13118,6 +14642,7 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -13126,9 +14651,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondOffset", "start": 0, "type": "Identifier" @@ -13138,10 +14665,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -13165,6 +14694,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -13177,9 +14707,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarDepth", "start": 0, "type": "Identifier" @@ -13191,11 +14723,13 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -13204,9 +14738,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondOffset", "start": 0, "type": "Identifier" @@ -13216,10 +14752,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -13243,6 +14781,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -13251,9 +14790,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarHeight", "start": 0, "type": "Identifier" @@ -13269,9 +14810,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -13282,16 +14825,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -13304,6 +14850,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdOffset", "start": 0, "type": "Identifier" @@ -13311,6 +14858,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -13320,11 +14868,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -13337,6 +14887,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdLevel", "start": 0, "type": "Identifier" @@ -13348,6 +14899,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -13356,9 +14908,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondLevel", "start": 0, "type": "Identifier" @@ -13374,6 +14928,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -13382,9 +14937,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -13400,6 +14957,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -13411,9 +14969,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetSide", "start": 0, "type": "Identifier" @@ -13423,14 +14983,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdOffset", "start": 0, "type": "Identifier" @@ -13450,6 +15013,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -13461,9 +15025,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetFront", "start": 0, "type": "Identifier" @@ -13473,10 +15039,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02", "start": 0, "type": "Literal", @@ -13496,6 +15064,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -13507,9 +15076,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarWidth", "start": 0, "type": "Identifier" @@ -13519,6 +15090,7 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -13527,9 +15099,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdOffset", "start": 0, "type": "Identifier" @@ -13539,10 +15113,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -13566,6 +15142,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -13578,9 +15155,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarDepth", "start": 0, "type": "Identifier" @@ -13592,11 +15171,13 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -13605,9 +15186,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdOffset", "start": 0, "type": "Identifier" @@ -13617,10 +15200,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -13644,6 +15229,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -13652,9 +15238,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarHeight", "start": 0, "type": "Identifier" @@ -13670,9 +15258,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -13683,16 +15273,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -13705,6 +15298,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fourthOffset", "start": 0, "type": "Identifier" @@ -13712,6 +15306,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -13721,11 +15316,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -13738,6 +15335,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fourthLevel", "start": 0, "type": "Identifier" @@ -13749,6 +15347,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -13757,9 +15356,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thirdLevel", "start": 0, "type": "Identifier" @@ -13775,6 +15376,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -13783,9 +15385,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -13801,6 +15405,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -13812,9 +15417,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetSide", "start": 0, "type": "Identifier" @@ -13824,14 +15431,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fourthOffset", "start": 0, "type": "Identifier" @@ -13851,6 +15461,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -13862,9 +15473,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitNewEarOffsetFront", "start": 0, "type": "Identifier" @@ -13874,10 +15487,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03", "start": 0, "type": "Literal", @@ -13897,6 +15512,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -13908,9 +15524,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarWidth", "start": 0, "type": "Identifier" @@ -13920,6 +15538,7 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -13928,9 +15547,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fourthOffset", "start": 0, "type": "Identifier" @@ -13940,10 +15561,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -13967,6 +15590,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -13979,9 +15603,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarDepth", "start": 0, "type": "Identifier" @@ -13993,11 +15619,13 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -14006,9 +15634,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fourthOffset", "start": 0, "type": "Identifier" @@ -14018,10 +15648,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -14045,6 +15677,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -14053,9 +15686,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarHeight", "start": 0, "type": "Identifier" @@ -14071,9 +15706,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -14084,16 +15721,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14103,9 +15743,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseVolume", "start": 0, "type": "Identifier" @@ -14117,6 +15759,7 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -14124,12 +15767,14 @@ description: Result of parsing kitt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -14141,6 +15786,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -14152,6 +15798,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -14163,6 +15810,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -14177,12 +15825,14 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "earOffsetFront", "start": 0, "type": "Identifier" @@ -14193,6 +15843,7 @@ description: Result of parsing kitt.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "earOffsetSide", "start": 0, "type": "Identifier" @@ -14203,11 +15854,13 @@ description: Result of parsing kitt.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14220,6 +15873,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarOffsetFront", "start": 0, "type": "Identifier" @@ -14227,6 +15881,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -14236,11 +15891,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14253,6 +15910,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarOffsetSide", "start": 0, "type": "Identifier" @@ -14260,6 +15918,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -14269,11 +15928,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14286,6 +15947,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitRightEar", "start": 0, "type": "Identifier" @@ -14297,6 +15959,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "earOffsetFront", "start": 0, "type": "Identifier" @@ -14305,9 +15968,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarOffsetFront", "start": 0, "type": "Identifier" @@ -14323,6 +15988,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "earOffsetSide", "start": 0, "type": "Identifier" @@ -14331,9 +15997,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarOffsetSide", "start": 0, "type": "Identifier" @@ -14349,9 +16017,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEar", "start": 0, "type": "Identifier" @@ -14362,16 +16032,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14384,6 +16057,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitLeftEar", "start": 0, "type": "Identifier" @@ -14395,6 +16069,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "earOffsetFront", "start": 0, "type": "Identifier" @@ -14403,9 +16078,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarOffsetFront", "start": 0, "type": "Identifier" @@ -14421,6 +16098,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "earOffsetSide", "start": 0, "type": "Identifier" @@ -14435,9 +16113,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyWidth", "start": 0, "type": "Identifier" @@ -14447,14 +16127,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarWidth", "start": 0, "type": "Identifier" @@ -14468,14 +16151,17 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEarOffsetSide", "start": 0, "type": "Identifier" @@ -14495,9 +16181,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitEar", "start": 0, "type": "Identifier" @@ -14508,16 +16196,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14530,6 +16221,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillOffset", "start": 0, "type": "Identifier" @@ -14537,6 +16229,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -14546,11 +16239,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -14569,6 +16264,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowA", "start": 0, "type": "Identifier" @@ -14583,9 +16279,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyElevation", "start": 0, "type": "Identifier" @@ -14595,14 +16293,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyHeight", "start": 0, "type": "Identifier" @@ -14616,14 +16317,17 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillOffset", "start": 0, "type": "Identifier" @@ -14637,11 +16341,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14654,6 +16360,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowB", "start": 0, "type": "Identifier" @@ -14665,9 +16372,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowA", "start": 0, "type": "Identifier" @@ -14677,10 +16386,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -14694,11 +16405,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14711,6 +16424,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowC", "start": 0, "type": "Identifier" @@ -14722,9 +16436,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowA", "start": 0, "type": "Identifier" @@ -14734,10 +16450,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -14751,11 +16469,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14768,6 +16488,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnA", "start": 0, "type": "Identifier" @@ -14779,9 +16500,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyDepth", "start": 0, "type": "Identifier" @@ -14791,14 +16514,17 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillOffset", "start": 0, "type": "Identifier" @@ -14812,11 +16538,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14829,6 +16557,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnB", "start": 0, "type": "Identifier" @@ -14840,9 +16569,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnA", "start": 0, "type": "Identifier" @@ -14852,10 +16583,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -14869,11 +16602,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14886,6 +16621,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnC", "start": 0, "type": "Identifier" @@ -14897,9 +16633,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnA", "start": 0, "type": "Identifier" @@ -14909,10 +16647,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -14926,11 +16666,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -14943,6 +16685,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnD", "start": 0, "type": "Identifier" @@ -14954,9 +16697,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnA", "start": 0, "type": "Identifier" @@ -14966,10 +16711,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -14983,11 +16730,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -15000,6 +16749,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnE", "start": 0, "type": "Identifier" @@ -15011,9 +16761,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnA", "start": 0, "type": "Identifier" @@ -15023,10 +16775,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -15040,11 +16794,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -15057,6 +16813,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -15064,6 +16821,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -15073,11 +16831,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -15090,6 +16850,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleDepth", "start": 0, "type": "Identifier" @@ -15098,6 +16859,7 @@ description: Result of parsing kitt.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -15109,16 +16871,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -15131,6 +16896,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleAB", "start": 0, "type": "Identifier" @@ -15142,6 +16908,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -15150,9 +16917,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -15168,6 +16937,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -15176,9 +16946,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -15194,6 +16966,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -15202,9 +16975,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowA", "start": 0, "type": "Identifier" @@ -15220,6 +16995,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -15228,9 +17004,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnB", "start": 0, "type": "Identifier" @@ -15246,6 +17024,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -15254,9 +17033,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -15272,6 +17053,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -15280,9 +17062,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -15298,6 +17082,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -15306,9 +17091,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleDepth", "start": 0, "type": "Identifier" @@ -15324,9 +17111,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -15337,16 +17126,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -15359,6 +17151,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleAD", "start": 0, "type": "Identifier" @@ -15370,6 +17163,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -15378,9 +17172,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -15396,6 +17192,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -15404,9 +17201,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -15422,6 +17221,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -15430,9 +17230,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowA", "start": 0, "type": "Identifier" @@ -15448,6 +17250,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -15456,9 +17259,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnD", "start": 0, "type": "Identifier" @@ -15474,6 +17279,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -15482,9 +17288,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -15500,6 +17308,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -15508,9 +17317,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -15526,6 +17337,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -15534,9 +17346,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleDepth", "start": 0, "type": "Identifier" @@ -15552,9 +17366,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -15565,16 +17381,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -15587,6 +17406,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleBA", "start": 0, "type": "Identifier" @@ -15598,6 +17418,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -15606,9 +17427,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -15624,6 +17447,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -15632,9 +17456,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -15650,6 +17476,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -15658,9 +17485,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowB", "start": 0, "type": "Identifier" @@ -15676,6 +17505,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -15684,9 +17514,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnA", "start": 0, "type": "Identifier" @@ -15702,6 +17534,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -15710,9 +17543,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -15728,6 +17563,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -15736,9 +17572,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -15754,6 +17592,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -15762,9 +17601,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleDepth", "start": 0, "type": "Identifier" @@ -15780,9 +17621,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -15793,16 +17636,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -15815,6 +17661,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleBC", "start": 0, "type": "Identifier" @@ -15826,6 +17673,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -15834,9 +17682,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -15852,6 +17702,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -15860,9 +17711,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -15878,6 +17731,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -15886,9 +17740,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowB", "start": 0, "type": "Identifier" @@ -15904,6 +17760,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -15912,9 +17769,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnC", "start": 0, "type": "Identifier" @@ -15930,6 +17789,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -15938,9 +17798,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -15956,6 +17818,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -15964,9 +17827,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -15982,6 +17847,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -15990,9 +17856,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleDepth", "start": 0, "type": "Identifier" @@ -16008,9 +17876,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -16021,16 +17891,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -16043,6 +17916,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleBE", "start": 0, "type": "Identifier" @@ -16054,6 +17928,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -16062,9 +17937,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -16080,6 +17957,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -16088,9 +17966,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -16106,6 +17986,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -16114,9 +17995,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowB", "start": 0, "type": "Identifier" @@ -16132,6 +18015,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -16140,9 +18024,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnE", "start": 0, "type": "Identifier" @@ -16158,6 +18044,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -16166,9 +18053,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -16184,6 +18073,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -16192,9 +18082,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -16210,6 +18102,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -16218,9 +18111,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleDepth", "start": 0, "type": "Identifier" @@ -16236,9 +18131,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -16249,16 +18146,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -16271,6 +18171,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleCB", "start": 0, "type": "Identifier" @@ -16282,6 +18183,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -16290,9 +18192,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -16308,6 +18212,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -16316,9 +18221,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -16334,6 +18241,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -16342,9 +18250,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowC", "start": 0, "type": "Identifier" @@ -16360,6 +18270,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -16368,9 +18279,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnB", "start": 0, "type": "Identifier" @@ -16386,6 +18299,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -16394,9 +18308,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -16412,6 +18328,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -16420,9 +18337,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -16438,6 +18357,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -16446,9 +18366,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleDepth", "start": 0, "type": "Identifier" @@ -16464,9 +18386,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -16477,16 +18401,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -16499,6 +18426,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleCD", "start": 0, "type": "Identifier" @@ -16510,6 +18438,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -16518,9 +18447,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -16536,6 +18467,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -16544,9 +18476,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -16562,6 +18496,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -16570,9 +18505,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillRowC", "start": 0, "type": "Identifier" @@ -16588,6 +18525,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -16596,9 +18534,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillColumnD", "start": 0, "type": "Identifier" @@ -16614,6 +18554,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -16622,9 +18563,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -16640,6 +18583,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -16648,9 +18592,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleSize", "start": 0, "type": "Identifier" @@ -16666,6 +18612,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -16674,9 +18621,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleDepth", "start": 0, "type": "Identifier" @@ -16692,9 +18641,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -16705,16 +18656,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -16727,6 +18681,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentElevation", "start": 0, "type": "Identifier" @@ -16738,9 +18693,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBodyElevation", "start": 0, "type": "Identifier" @@ -16750,10 +18707,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -16767,11 +18726,13 @@ description: Result of parsing kitt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -16789,6 +18750,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentOffset", "start": 0, "type": "Identifier" @@ -16796,6 +18758,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -16805,11 +18768,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -16822,6 +18787,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleWidth", "start": 0, "type": "Identifier" @@ -16829,6 +18795,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -16838,11 +18805,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -16855,6 +18824,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleHeight", "start": 0, "type": "Identifier" @@ -16862,6 +18832,7 @@ description: Result of parsing kitt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -16871,11 +18842,13 @@ description: Result of parsing kitt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -16888,6 +18861,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleDepth", "start": 0, "type": "Identifier" @@ -16896,9 +18870,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grillHoleDepth", "start": 0, "type": "Identifier" @@ -16908,11 +18884,13 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -16925,6 +18903,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentA", "start": 0, "type": "Identifier" @@ -16936,6 +18915,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -16944,9 +18924,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -16962,6 +18944,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -16970,9 +18953,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -16988,6 +18973,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -16996,9 +18982,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentElevation", "start": 0, "type": "Identifier" @@ -17014,6 +19002,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -17022,9 +19011,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentOffset", "start": 0, "type": "Identifier" @@ -17040,6 +19031,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -17048,9 +19040,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleHeight", "start": 0, "type": "Identifier" @@ -17066,6 +19060,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -17074,9 +19069,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleWidth", "start": 0, "type": "Identifier" @@ -17092,6 +19089,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -17100,9 +19098,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleDepth", "start": 0, "type": "Identifier" @@ -17118,9 +19118,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -17131,16 +19133,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -17153,6 +19158,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentB", "start": 0, "type": "Identifier" @@ -17164,6 +19170,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -17172,9 +19179,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -17190,6 +19199,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -17198,9 +19208,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -17216,6 +19228,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -17224,9 +19237,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentElevation", "start": 0, "type": "Identifier" @@ -17242,6 +19257,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -17253,9 +19269,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentOffset", "start": 0, "type": "Identifier" @@ -17265,10 +19283,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -17288,6 +19308,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -17296,9 +19317,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleHeight", "start": 0, "type": "Identifier" @@ -17314,6 +19337,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -17322,9 +19346,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleWidth", "start": 0, "type": "Identifier" @@ -17340,6 +19366,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -17348,9 +19375,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleDepth", "start": 0, "type": "Identifier" @@ -17366,9 +19395,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -17379,16 +19410,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -17401,6 +19435,7 @@ description: Result of parsing kitt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentC", "start": 0, "type": "Identifier" @@ -17412,6 +19447,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitExtrude", "start": 0, "type": "Identifier" @@ -17420,9 +19456,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitBody", "start": 0, "type": "Identifier" @@ -17438,6 +19476,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrudeTag", "start": 0, "type": "Identifier" @@ -17446,9 +19485,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -17464,6 +19505,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionY", "start": 0, "type": "Identifier" @@ -17472,9 +19514,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentElevation", "start": 0, "type": "Identifier" @@ -17490,6 +19534,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "positionZ", "start": 0, "type": "Identifier" @@ -17501,9 +19546,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentOffset", "start": 0, "type": "Identifier" @@ -17513,10 +19560,12 @@ description: Result of parsing kitt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -17536,6 +19585,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -17544,9 +19594,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleHeight", "start": 0, "type": "Identifier" @@ -17562,6 +19614,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -17570,9 +19623,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleWidth", "start": 0, "type": "Identifier" @@ -17588,6 +19643,7 @@ description: Result of parsing kitt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -17596,9 +19652,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kitVentHoleDepth", "start": 0, "type": "Identifier" @@ -17614,9 +19672,11 @@ description: Result of parsing kitt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pixelBox", "start": 0, "type": "Identifier" @@ -17627,16 +19687,19 @@ description: Result of parsing kitt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -17644,12 +19707,14 @@ description: Result of parsing kitt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17661,6 +19726,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17672,6 +19738,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17683,6 +19750,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17694,6 +19762,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17705,6 +19774,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17716,6 +19786,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17727,6 +19798,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17738,6 +19810,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17749,6 +19822,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17760,6 +19834,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17771,6 +19846,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17782,6 +19858,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17793,6 +19870,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17804,6 +19882,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17815,6 +19894,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17826,6 +19906,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17837,6 +19918,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17848,6 +19930,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17859,6 +19942,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17870,6 +19954,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17881,6 +19966,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17892,6 +19978,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17903,6 +19990,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17914,6 +20002,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17925,6 +20014,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17936,6 +20026,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -17947,6 +20038,7 @@ description: Result of parsing kitt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/kitt/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/kitt/program_memory.snap index 683ffa83f..69484a403 100644 --- a/rust/kcl-lib/tests/kcl_samples/kitt/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/kitt/program_memory.snap @@ -244,6 +244,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -257,6 +258,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -306,6 +308,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -331,6 +334,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -668,6 +672,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -681,6 +686,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -730,6 +736,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -755,6 +762,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -1092,6 +1100,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -1105,6 +1114,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -1154,6 +1164,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -1179,6 +1190,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -1516,6 +1528,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -1529,6 +1542,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -1578,6 +1592,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -1603,6 +1618,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -1940,6 +1956,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -1953,6 +1970,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -2002,6 +2020,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -2027,6 +2046,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -2364,6 +2384,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -2377,6 +2398,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -2426,6 +2448,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -2451,6 +2474,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -2788,6 +2812,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -2801,6 +2826,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -2850,6 +2876,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -2875,6 +2902,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -3290,6 +3318,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -3303,6 +3332,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -3352,6 +3382,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -3377,6 +3408,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -3714,6 +3746,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -3727,6 +3760,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -3776,6 +3810,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -3801,6 +3836,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -4100,6 +4136,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -4113,6 +4150,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -4162,6 +4200,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -4187,6 +4226,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -4695,6 +4735,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -4708,6 +4749,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -4757,6 +4799,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -4782,6 +4825,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -5310,6 +5354,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -5323,6 +5368,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -5372,6 +5418,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -5397,6 +5444,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -5925,6 +5973,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -5938,6 +5987,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -5987,6 +6037,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -6012,6 +6063,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -6908,6 +6960,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -6921,6 +6974,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -6970,6 +7024,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -6995,6 +7050,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -7575,6 +7631,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -7588,6 +7645,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -7637,6 +7695,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -7662,6 +7721,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -8190,6 +8250,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -8203,6 +8264,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -8252,6 +8314,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -8277,6 +8340,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -8805,6 +8869,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -8818,6 +8883,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -8867,6 +8933,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -8892,6 +8959,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -9330,6 +9398,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -9343,6 +9412,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -9392,6 +9462,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -9417,6 +9488,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -9819,6 +9891,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -9832,6 +9905,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -9881,6 +9955,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -9906,6 +9981,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -10761,6 +10837,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -10774,6 +10851,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -10823,6 +10901,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -10848,6 +10927,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -11775,6 +11855,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -11788,6 +11869,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -11837,6 +11919,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -11862,6 +11945,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -12789,6 +12873,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -12802,6 +12887,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -12851,6 +12937,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -12876,6 +12963,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -14019,6 +14107,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -14032,6 +14121,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -14081,6 +14171,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -14106,6 +14197,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -15033,6 +15125,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -15046,6 +15139,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -15095,6 +15189,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -15120,6 +15215,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -16073,6 +16169,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -16086,6 +16183,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -16135,6 +16233,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -16160,6 +16259,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -17087,6 +17187,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -17100,6 +17201,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -17149,6 +17251,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -17174,6 +17277,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -18309,6 +18413,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -18322,6 +18427,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -18371,6 +18477,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -18396,6 +18503,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -18818,6 +18926,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -18831,6 +18940,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -18880,6 +18990,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -18905,6 +19016,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -19760,6 +19872,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -19773,6 +19886,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -19822,6 +19936,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -19847,6 +19962,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -20649,6 +20765,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -20662,6 +20779,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -20711,6 +20829,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -20736,6 +20855,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -21161,6 +21281,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -21174,6 +21295,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -21223,6 +21345,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -21248,6 +21371,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -21585,6 +21709,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -21598,6 +21723,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -21647,6 +21773,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -21672,6 +21799,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -22009,6 +22137,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -22022,6 +22151,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" @@ -22071,6 +22201,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 766, "end": 772, + "moduleId": 0, "start": 766, "type": "TagDeclarator", "value": "seg01" @@ -22096,6 +22227,7 @@ description: Variables in memory after executing kitt.kcl "tag": { "commentStart": 817, "end": 823, + "moduleId": 0, "start": 817, "type": "TagDeclarator", "value": "seg02" diff --git a/rust/kcl-lib/tests/kcl_samples/lego/ast.snap b/rust/kcl-lib/tests/kcl_samples/lego/ast.snap index 8f2e6a9eb..aa599a96d 100644 --- a/rust/kcl-lib/tests/kcl_samples/lego/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/lego/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lbumps", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing lego.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wbumps", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing lego.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing lego.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.0", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clearance", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing lego.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bumpDiam", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing lego.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.8", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bumpHeight", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing lego.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing lego.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.2", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -264,9 +293,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -276,6 +307,7 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -283,6 +315,7 @@ description: Result of parsing lego.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -292,14 +325,17 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clearance", "start": 0, "type": "Identifier" @@ -317,14 +353,17 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bumpDiam", "start": 0, "type": "Identifier" @@ -338,10 +377,12 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.0", "start": 0, "type": "Literal", @@ -355,11 +396,13 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -372,6 +415,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "postDiam", "start": 0, "type": "Identifier" @@ -383,9 +427,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -395,14 +441,17 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -416,11 +465,13 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -433,6 +484,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalLength", "start": 0, "type": "Identifier" @@ -447,9 +499,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lbumps", "start": 0, "type": "Identifier" @@ -459,14 +513,17 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -480,6 +537,7 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -487,6 +545,7 @@ description: Result of parsing lego.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.0", "start": 0, "type": "Literal", @@ -496,14 +555,17 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clearance", "start": 0, "type": "Identifier" @@ -521,11 +583,13 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -538,6 +602,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -552,9 +617,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wbumps", "start": 0, "type": "Identifier" @@ -564,14 +631,17 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -585,6 +655,7 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -592,6 +663,7 @@ description: Result of parsing lego.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.0", "start": 0, "type": "Literal", @@ -601,14 +673,17 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clearance", "start": 0, "type": "Identifier" @@ -626,11 +701,13 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -643,6 +720,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lSegments", "start": 0, "type": "Identifier" @@ -654,9 +732,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalLength", "start": 0, "type": "Identifier" @@ -666,14 +746,17 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lbumps", "start": 0, "type": "Identifier" @@ -687,11 +770,13 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -709,6 +794,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wSegments", "start": 0, "type": "Identifier" @@ -720,9 +806,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -732,14 +820,17 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wbumps", "start": 0, "type": "Identifier" @@ -753,11 +844,13 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -772,6 +865,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThan", "start": 0, "type": "Identifier" @@ -779,6 +873,7 @@ description: Result of parsing lego.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -794,6 +889,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -801,6 +897,7 @@ description: Result of parsing lego.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"lbumps must be greater than 1\"", "start": 0, "type": "Literal", @@ -813,9 +910,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -826,6 +925,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -833,9 +933,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lbumps", "start": 0, "type": "Identifier" @@ -846,6 +948,7 @@ description: Result of parsing lego.kcl "type": "Name" } }, + "moduleId": 0, "preComments": [ "", "", @@ -865,6 +968,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isGreaterThan", "start": 0, "type": "Identifier" @@ -872,6 +976,7 @@ description: Result of parsing lego.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -887,6 +992,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "error", "start": 0, "type": "Identifier" @@ -894,6 +1000,7 @@ description: Result of parsing lego.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"wbumps must be greater than 1\"", "start": 0, "type": "Literal", @@ -906,9 +1013,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -919,6 +1028,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -926,9 +1036,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wbumps", "start": 0, "type": "Identifier" @@ -939,6 +1051,7 @@ description: Result of parsing lego.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -951,6 +1064,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "base", "start": 0, "type": "Identifier" @@ -958,13 +1072,16 @@ description: Result of parsing lego.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -975,6 +1092,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -982,9 +1100,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1002,6 +1122,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1017,9 +1138,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -1031,15 +1154,18 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1061,9 +1187,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalLength", "start": 0, "type": "Identifier" @@ -1075,15 +1203,18 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1099,6 +1230,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1109,9 +1241,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1122,6 +1256,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1134,6 +1269,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1145,9 +1281,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -1160,6 +1298,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1171,6 +1310,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1181,9 +1321,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1194,6 +1336,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1206,6 +1349,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1216,6 +1360,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1229,9 +1374,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalLength", "start": 0, "type": "Identifier" @@ -1243,6 +1390,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1253,9 +1401,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1266,6 +1416,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1278,6 +1429,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1290,9 +1442,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -1304,6 +1458,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1312,6 +1467,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1323,6 +1479,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1333,9 +1490,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1346,19 +1505,23 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1369,6 +1532,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1381,6 +1545,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1389,9 +1554,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1407,9 +1574,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1420,6 +1589,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1428,12 +1598,14 @@ description: Result of parsing lego.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1450,11 +1622,13 @@ description: Result of parsing lego.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1472,6 +1646,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shellExtrude", "start": 0, "type": "Identifier" @@ -1485,6 +1660,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1493,9 +1669,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -1511,9 +1689,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1524,6 +1704,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1531,9 +1712,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "base", "start": 0, "type": "Identifier" @@ -1551,6 +1734,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1569,9 +1753,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -1581,10 +1767,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1598,14 +1786,17 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1621,6 +1812,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1637,9 +1829,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalLength", "start": 0, "type": "Identifier" @@ -1649,10 +1843,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1666,14 +1862,17 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1689,6 +1888,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1696,6 +1896,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1706,9 +1907,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1719,6 +1922,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1731,6 +1935,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1745,9 +1950,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -1757,6 +1964,7 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1764,6 +1972,7 @@ description: Result of parsing lego.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1773,14 +1982,17 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1801,6 +2013,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1812,6 +2025,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1822,9 +2036,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1835,6 +2051,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1847,6 +2064,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1857,6 +2075,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1873,9 +2092,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalLength", "start": 0, "type": "Identifier" @@ -1885,6 +2106,7 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1892,6 +2114,7 @@ description: Result of parsing lego.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1901,14 +2124,17 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -1928,6 +2154,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1938,9 +2165,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1951,6 +2180,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1963,6 +2193,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1978,9 +2209,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -1990,6 +2223,7 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1997,6 +2231,7 @@ description: Result of parsing lego.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2006,14 +2241,17 @@ description: Result of parsing lego.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -2033,6 +2271,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2041,6 +2280,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2052,6 +2292,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2062,9 +2303,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2075,19 +2318,23 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2098,6 +2345,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2110,6 +2358,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2122,9 +2371,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2134,14 +2385,17 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -2157,6 +2411,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2168,9 +2423,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2181,6 +2438,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2189,12 +2447,14 @@ description: Result of parsing lego.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2211,11 +2471,13 @@ description: Result of parsing lego.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2228,6 +2490,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "peg", "start": 0, "type": "Identifier" @@ -2241,6 +2504,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2249,9 +2513,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -2267,9 +2533,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2280,6 +2548,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2287,9 +2556,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "base", "start": 0, "type": "Identifier" @@ -2307,6 +2578,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2325,9 +2597,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2337,6 +2611,7 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -2345,9 +2620,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wbumps", "start": 0, "type": "Identifier" @@ -2357,10 +2634,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2378,10 +2657,12 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2397,6 +2678,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2413,9 +2695,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2425,6 +2709,7 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -2433,9 +2718,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lbumps", "start": 0, "type": "Identifier" @@ -2445,10 +2732,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2466,10 +2755,12 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2485,6 +2776,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2492,6 +2784,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2502,6 +2795,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2513,9 +2807,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bumpDiam", "start": 0, "type": "Identifier" @@ -2525,10 +2821,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2548,9 +2846,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2561,6 +2861,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2573,6 +2874,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2583,6 +2885,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2595,6 +2898,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2606,6 +2910,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2616,6 +2921,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2624,9 +2930,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wbumps", "start": 0, "type": "Identifier" @@ -2642,6 +2950,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2650,9 +2959,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2668,9 +2979,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -2681,6 +2994,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2693,6 +3007,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2703,6 +3018,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2715,6 +3031,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2726,6 +3043,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2736,6 +3054,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2744,9 +3063,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lbumps", "start": 0, "type": "Identifier" @@ -2762,6 +3083,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2770,9 +3092,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2788,9 +3112,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -2801,6 +3127,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2813,6 +3140,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2821,9 +3149,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bumpHeight", "start": 0, "type": "Identifier" @@ -2839,9 +3169,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2852,6 +3184,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2860,12 +3193,14 @@ description: Result of parsing lego.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2882,11 +3217,13 @@ description: Result of parsing lego.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2899,6 +3236,7 @@ description: Result of parsing lego.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tubePattern", "start": 0, "type": "Identifier" @@ -2912,6 +3250,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2920,9 +3259,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -2938,9 +3279,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2951,6 +3294,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2958,9 +3302,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shellExtrude", "start": 0, "type": "Identifier" @@ -2978,6 +3324,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2999,9 +3346,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -3011,6 +3360,7 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -3019,9 +3369,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wbumps", "start": 0, "type": "Identifier" @@ -3031,10 +3383,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3052,10 +3406,12 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3069,6 +3425,7 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3077,9 +3434,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -3089,10 +3448,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3112,6 +3473,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3131,9 +3493,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -3143,6 +3507,7 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -3151,9 +3516,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lbumps", "start": 0, "type": "Identifier" @@ -3163,10 +3530,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3184,10 +3553,12 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3201,6 +3572,7 @@ description: Result of parsing lego.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3209,9 +3581,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -3221,10 +3595,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3244,6 +3620,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3251,6 +3628,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3261,6 +3639,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3272,9 +3651,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bumpDiam", "start": 0, "type": "Identifier" @@ -3284,10 +3665,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3307,9 +3690,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3320,6 +3705,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3332,6 +3718,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3342,6 +3729,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3354,6 +3742,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3365,6 +3754,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3375,6 +3765,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3386,9 +3777,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wbumps", "start": 0, "type": "Identifier" @@ -3398,10 +3791,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3421,6 +3816,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -3429,9 +3825,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -3447,9 +3845,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -3460,6 +3860,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3472,6 +3873,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3482,6 +3884,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3494,6 +3897,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3505,6 +3909,7 @@ description: Result of parsing lego.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3515,6 +3920,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3526,9 +3932,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lbumps", "start": 0, "type": "Identifier" @@ -3538,10 +3946,12 @@ description: Result of parsing lego.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3561,6 +3971,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -3569,9 +3980,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -3587,9 +4000,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -3600,6 +4015,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3612,6 +4028,7 @@ description: Result of parsing lego.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3620,9 +4037,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bumpHeight", "start": 0, "type": "Identifier" @@ -3638,9 +4057,11 @@ description: Result of parsing lego.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3651,6 +4072,7 @@ description: Result of parsing lego.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3659,15 +4081,18 @@ description: Result of parsing lego.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3679,9 +4104,11 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3700,19 +4127,23 @@ description: Result of parsing lego.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -3729,15 +4160,18 @@ description: Result of parsing lego.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3753,12 +4187,14 @@ description: Result of parsing lego.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3772,6 +4208,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3785,6 +4222,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3799,6 +4237,7 @@ description: Result of parsing lego.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/makeup-mirror/ast.snap b/rust/kcl-lib/tests/kcl_samples/makeup-mirror/ast.snap index d0022fb5e..aebea199a 100644 --- a/rust/kcl-lib/tests/kcl_samples/makeup-mirror/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/makeup-mirror/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeRadius", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing makeup-mirror.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing makeup-mirror.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Hinge parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -60,9 +65,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeRadius", "start": 0, "type": "Identifier" @@ -72,10 +79,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -89,11 +98,13 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -106,6 +117,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -113,6 +125,7 @@ description: Result of parsing makeup-mirror.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -122,11 +135,13 @@ description: Result of parsing makeup-mirror.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -139,6 +154,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -146,6 +162,7 @@ description: Result of parsing makeup-mirror.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "170", "start": 0, "type": "Literal", @@ -155,11 +172,13 @@ description: Result of parsing makeup-mirror.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -177,6 +196,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armRadius", "start": 0, "type": "Identifier" @@ -184,6 +204,7 @@ description: Result of parsing makeup-mirror.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -193,11 +214,13 @@ description: Result of parsing makeup-mirror.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -210,6 +233,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirrorRadius", "start": 0, "type": "Identifier" @@ -220,6 +244,7 @@ description: Result of parsing makeup-mirror.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "170", "start": 0, "type": "Literal", @@ -229,10 +254,12 @@ description: Result of parsing makeup-mirror.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -246,11 +273,13 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -268,6 +297,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirrorThickness", "start": 0, "type": "Identifier" @@ -275,6 +305,7 @@ description: Result of parsing makeup-mirror.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -284,11 +315,13 @@ description: Result of parsing makeup-mirror.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -301,6 +334,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "archToMirrorGap", "start": 0, "type": "Identifier" @@ -308,6 +342,7 @@ description: Result of parsing makeup-mirror.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -317,11 +352,13 @@ description: Result of parsing makeup-mirror.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -334,6 +371,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "archThickness", "start": 0, "type": "Identifier" @@ -341,6 +379,7 @@ description: Result of parsing makeup-mirror.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -350,11 +389,13 @@ description: Result of parsing makeup-mirror.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -367,6 +408,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "archRadius", "start": 0, "type": "Identifier" @@ -378,9 +420,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirrorRadius", "start": 0, "type": "Identifier" @@ -390,14 +434,17 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "archToMirrorGap", "start": 0, "type": "Identifier" @@ -411,11 +458,13 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -428,6 +477,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeFn", "start": 0, "type": "Identifier" @@ -443,6 +493,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeBody", "start": 0, "type": "Identifier" @@ -450,13 +501,16 @@ description: Result of parsing makeup-mirror.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -467,6 +521,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -477,6 +532,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -485,9 +541,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -503,9 +561,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -516,6 +576,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -523,9 +584,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -544,6 +607,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -555,9 +619,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -571,9 +637,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -585,6 +653,7 @@ description: Result of parsing makeup-mirror.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -595,6 +664,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -603,9 +673,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeRadius", "start": 0, "type": "Identifier" @@ -621,9 +693,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -634,6 +708,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -646,6 +721,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -654,9 +730,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -672,9 +750,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -685,6 +765,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -693,15 +774,18 @@ description: Result of parsing makeup-mirror.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -711,9 +795,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeBody", "start": 0, "type": "Identifier" @@ -725,6 +811,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -732,16 +819,19 @@ description: Result of parsing makeup-mirror.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -752,6 +842,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -762,6 +853,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -772,11 +864,13 @@ description: Result of parsing makeup-mirror.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -795,6 +889,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingePartA1", "start": 0, "type": "Identifier" @@ -806,6 +901,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -813,6 +909,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -828,6 +925,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -835,6 +933,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -850,6 +949,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -857,6 +957,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -872,9 +973,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeFn", "start": 0, "type": "Identifier" @@ -885,16 +988,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -907,6 +1013,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingePartA2", "start": 0, "type": "Identifier" @@ -918,6 +1025,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -925,6 +1033,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -940,6 +1049,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -947,6 +1057,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -962,6 +1073,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -973,9 +1085,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -985,14 +1099,17 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -1012,9 +1129,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeFn", "start": 0, "type": "Identifier" @@ -1025,16 +1144,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1047,6 +1169,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingePartA3", "start": 0, "type": "Identifier" @@ -1058,6 +1181,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1065,6 +1189,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1080,6 +1205,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1087,6 +1213,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1102,6 +1229,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1116,9 +1244,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -1128,10 +1258,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1145,6 +1277,7 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1153,9 +1286,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -1165,10 +1300,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1192,9 +1329,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeFn", "start": 0, "type": "Identifier" @@ -1205,16 +1344,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1227,6 +1369,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingePartB2", "start": 0, "type": "Identifier" @@ -1238,6 +1381,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1246,9 +1390,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -1264,6 +1410,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1271,6 +1418,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1286,6 +1434,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1297,9 +1446,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -1309,14 +1460,17 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -1336,9 +1490,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeFn", "start": 0, "type": "Identifier" @@ -1349,16 +1505,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1371,6 +1530,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingePartB3", "start": 0, "type": "Identifier" @@ -1382,6 +1542,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1390,9 +1551,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -1408,6 +1571,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1415,6 +1579,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1430,6 +1595,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1444,9 +1610,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -1456,10 +1624,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1473,6 +1643,7 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1481,9 +1652,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -1493,10 +1666,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1520,9 +1695,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeFn", "start": 0, "type": "Identifier" @@ -1533,16 +1710,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1555,6 +1735,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingePartC2", "start": 0, "type": "Identifier" @@ -1566,6 +1747,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1574,9 +1756,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -1592,6 +1776,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1601,9 +1786,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -1615,6 +1802,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1626,6 +1814,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1640,9 +1829,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -1652,10 +1843,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1669,6 +1862,7 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1677,9 +1871,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -1689,10 +1885,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1716,9 +1914,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeFn", "start": 0, "type": "Identifier" @@ -1729,16 +1929,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1751,6 +1954,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingePartC3", "start": 0, "type": "Identifier" @@ -1762,6 +1966,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1770,9 +1975,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -1788,6 +1995,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1797,9 +2005,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -1811,6 +2021,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1822,6 +2033,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1836,9 +2048,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -1848,10 +2062,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1865,6 +2081,7 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1873,9 +2090,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -1885,10 +2104,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1912,9 +2133,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeFn", "start": 0, "type": "Identifier" @@ -1925,16 +2148,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1947,6 +2173,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armFn", "start": 0, "type": "Identifier" @@ -1962,6 +2189,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armBody", "start": 0, "type": "Identifier" @@ -1969,13 +2197,16 @@ description: Result of parsing makeup-mirror.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1986,6 +2217,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1993,9 +2225,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2013,6 +2247,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2024,9 +2259,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2040,9 +2277,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -2054,6 +2293,7 @@ description: Result of parsing makeup-mirror.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2064,6 +2304,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2072,9 +2313,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armRadius", "start": 0, "type": "Identifier" @@ -2090,9 +2333,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2103,6 +2348,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2115,6 +2361,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2123,9 +2370,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -2141,9 +2390,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2154,6 +2405,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2162,15 +2414,18 @@ description: Result of parsing makeup-mirror.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2180,9 +2435,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armBody", "start": 0, "type": "Identifier" @@ -2194,6 +2451,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2201,16 +2459,19 @@ description: Result of parsing makeup-mirror.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2221,6 +2482,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2231,6 +2493,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -2241,11 +2504,13 @@ description: Result of parsing makeup-mirror.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -2263,6 +2528,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armPartA", "start": 0, "type": "Identifier" @@ -2274,6 +2540,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2282,9 +2549,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -2300,6 +2569,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2307,6 +2577,7 @@ description: Result of parsing makeup-mirror.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2322,6 +2593,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -2336,9 +2608,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -2348,10 +2622,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -2365,14 +2641,17 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -2392,9 +2671,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armFn", "start": 0, "type": "Identifier" @@ -2405,16 +2686,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2427,6 +2711,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armPartB", "start": 0, "type": "Identifier" @@ -2438,6 +2723,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2446,9 +2732,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2464,6 +2752,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2472,9 +2761,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -2490,6 +2781,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -2504,9 +2796,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -2516,10 +2810,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -2533,6 +2829,7 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2541,9 +2838,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -2553,10 +2852,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2580,9 +2881,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armFn", "start": 0, "type": "Identifier" @@ -2593,16 +2896,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2615,6 +2921,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirrorFn", "start": 0, "type": "Identifier" @@ -2630,18 +2937,22 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2652,6 +2963,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2662,6 +2974,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2673,9 +2986,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetY", "start": 0, "type": "Identifier" @@ -2685,6 +3000,7 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2693,9 +3009,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tiefe", "start": 0, "type": "Identifier" @@ -2705,10 +3023,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2732,9 +3052,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2745,6 +3067,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2752,9 +3075,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2766,11 +3091,13 @@ description: Result of parsing makeup-mirror.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2783,6 +3110,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armBody", "start": 0, "type": "Identifier" @@ -2796,6 +3124,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2807,9 +3136,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetX", "start": 0, "type": "Identifier" @@ -2823,9 +3154,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -2837,6 +3170,7 @@ description: Result of parsing makeup-mirror.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2847,6 +3181,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2855,9 +3190,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2873,9 +3210,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2886,6 +3225,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2893,9 +3233,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armPlane", "start": 0, "type": "Identifier" @@ -2913,6 +3255,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2921,9 +3264,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tiefe", "start": 0, "type": "Identifier" @@ -2939,9 +3284,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2952,6 +3299,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2960,15 +3308,18 @@ description: Result of parsing makeup-mirror.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2981,6 +3332,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "archBody", "start": 0, "type": "Identifier" @@ -2994,6 +3346,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3008,9 +3361,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetX", "start": 0, "type": "Identifier" @@ -3020,14 +3375,17 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellR", "start": 0, "type": "Identifier" @@ -3045,9 +3403,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -3059,6 +3419,7 @@ description: Result of parsing makeup-mirror.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3069,9 +3430,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3082,6 +3445,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3089,9 +3453,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armPlane", "start": 0, "type": "Identifier" @@ -3109,6 +3475,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3117,9 +3484,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellD", "start": 0, "type": "Identifier" @@ -3135,9 +3504,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3148,6 +3519,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3160,6 +3532,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -3171,9 +3544,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetX", "start": 0, "type": "Identifier" @@ -3190,9 +3565,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -3202,14 +3579,17 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellR", "start": 0, "type": "Identifier" @@ -3225,6 +3605,7 @@ description: Result of parsing makeup-mirror.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3235,6 +3616,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3249,9 +3631,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetX", "start": 0, "type": "Identifier" @@ -3261,14 +3645,17 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellR", "start": 0, "type": "Identifier" @@ -3286,9 +3673,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -3300,6 +3689,7 @@ description: Result of parsing makeup-mirror.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3310,9 +3700,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3323,6 +3715,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3335,6 +3728,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3343,9 +3737,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellD", "start": 0, "type": "Identifier" @@ -3361,9 +3757,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3374,6 +3772,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3386,6 +3785,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -3397,9 +3797,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetX", "start": 0, "type": "Identifier" @@ -3419,9 +3821,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -3431,14 +3835,17 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellR", "start": 0, "type": "Identifier" @@ -3452,14 +3859,17 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellD", "start": 0, "type": "Identifier" @@ -3475,6 +3885,7 @@ description: Result of parsing makeup-mirror.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3485,6 +3896,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3493,13 +3905,16 @@ description: Result of parsing makeup-mirror.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3510,25 +3925,30 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3539,12 +3959,14 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3552,6 +3974,7 @@ description: Result of parsing makeup-mirror.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3562,9 +3985,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3575,19 +4000,23 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3598,6 +4027,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3610,6 +4040,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3618,9 +4049,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tiefe", "start": 0, "type": "Identifier" @@ -3636,9 +4069,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3649,6 +4084,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3657,15 +4093,18 @@ description: Result of parsing makeup-mirror.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3675,9 +4114,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armBody", "start": 0, "type": "Identifier" @@ -3689,6 +4130,7 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -3696,12 +4138,14 @@ description: Result of parsing makeup-mirror.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3716,12 +4160,14 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -3732,6 +4178,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetX", "start": 0, "type": "Identifier" @@ -3742,6 +4189,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetY", "start": 0, "type": "Identifier" @@ -3752,6 +4200,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -3762,6 +4211,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3772,6 +4222,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tiefe", "start": 0, "type": "Identifier" @@ -3782,6 +4233,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellR", "start": 0, "type": "Identifier" @@ -3792,6 +4244,7 @@ description: Result of parsing makeup-mirror.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellD", "start": 0, "type": "Identifier" @@ -3802,11 +4255,13 @@ description: Result of parsing makeup-mirror.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -3824,6 +4279,7 @@ description: Result of parsing makeup-mirror.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror", "start": 0, "type": "Identifier" @@ -3835,6 +4291,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -3843,9 +4300,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -3861,6 +4320,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetX", "start": 0, "type": "Identifier" @@ -3869,9 +4329,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -3887,6 +4349,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetY", "start": 0, "type": "Identifier" @@ -3895,9 +4358,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "armLength", "start": 0, "type": "Identifier" @@ -3913,6 +4378,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "altitude", "start": 0, "type": "Identifier" @@ -3936,9 +4402,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeHeight", "start": 0, "type": "Identifier" @@ -3948,10 +4416,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3965,6 +4435,7 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3973,9 +4444,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hingeGap", "start": 0, "type": "Identifier" @@ -3985,10 +4458,12 @@ description: Result of parsing makeup-mirror.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4006,14 +4481,17 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirrorRadius", "start": 0, "type": "Identifier" @@ -4027,14 +4505,17 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "archToMirrorGap", "start": 0, "type": "Identifier" @@ -4048,14 +4529,17 @@ description: Result of parsing makeup-mirror.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "archThickness", "start": 0, "type": "Identifier" @@ -4075,6 +4559,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4083,9 +4568,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirrorRadius", "start": 0, "type": "Identifier" @@ -4101,6 +4588,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tiefe", "start": 0, "type": "Identifier" @@ -4109,9 +4597,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirrorThickness", "start": 0, "type": "Identifier" @@ -4127,6 +4617,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellR", "start": 0, "type": "Identifier" @@ -4135,9 +4626,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "archRadius", "start": 0, "type": "Identifier" @@ -4153,6 +4646,7 @@ description: Result of parsing makeup-mirror.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gestellD", "start": 0, "type": "Identifier" @@ -4161,9 +4655,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "archThickness", "start": 0, "type": "Identifier" @@ -4179,9 +4675,11 @@ description: Result of parsing makeup-mirror.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirrorFn", "start": 0, "type": "Identifier" @@ -4192,16 +4690,19 @@ description: Result of parsing makeup-mirror.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4213,9 +4714,11 @@ description: Result of parsing makeup-mirror.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -4234,19 +4737,23 @@ description: Result of parsing makeup-mirror.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -4263,15 +4770,18 @@ description: Result of parsing makeup-mirror.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4287,12 +4797,14 @@ description: Result of parsing makeup-mirror.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "10": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4304,6 +4816,7 @@ description: Result of parsing makeup-mirror.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4315,6 +4828,7 @@ description: Result of parsing makeup-mirror.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4326,6 +4840,7 @@ description: Result of parsing makeup-mirror.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4337,6 +4852,7 @@ description: Result of parsing makeup-mirror.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4349,6 +4865,7 @@ description: Result of parsing makeup-mirror.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/mounting-plate/ast.snap b/rust/kcl-lib/tests/kcl_samples/mounting-plate/ast.snap index 9d4aebb3f..3b3e4a65b 100644 --- a/rust/kcl-lib/tests/kcl_samples/mounting-plate/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/mounting-plate/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing mounting-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing mounting-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateWidth", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing mounting-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing mounting-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing mounting-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing mounting-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateThickness", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing mounting-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".5", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing mounting-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centerHoleDiameter", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing mounting-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing mounting-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing mounting-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".25", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing mounting-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -219,6 +243,7 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeIndex", "start": 0, "type": "Identifier" @@ -226,6 +251,7 @@ description: Result of parsing mounting-plate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".75", "start": 0, "type": "Literal", @@ -235,11 +261,13 @@ description: Result of parsing mounting-plate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -252,18 +280,22 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -274,6 +306,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -281,9 +314,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -294,11 +329,13 @@ description: Result of parsing mounting-plate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -311,6 +348,7 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectShape", "start": 0, "type": "Identifier" @@ -324,6 +362,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -339,9 +378,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateWidth", "start": 0, "type": "Identifier" @@ -353,15 +394,18 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -382,9 +426,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateLength", "start": 0, "type": "Identifier" @@ -394,10 +440,12 @@ description: Result of parsing mounting-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -413,6 +461,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -423,9 +472,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -436,6 +487,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -443,9 +495,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -463,6 +517,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -470,6 +525,7 @@ description: Result of parsing mounting-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -485,6 +541,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -493,9 +550,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateWidth", "start": 0, "type": "Identifier" @@ -511,6 +570,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -518,6 +578,7 @@ description: Result of parsing mounting-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -529,9 +590,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -542,6 +605,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -554,6 +618,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -562,13 +627,16 @@ description: Result of parsing mounting-plate.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -579,6 +647,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -586,9 +655,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge1", "start": 0, "type": "Identifier" @@ -599,10 +670,12 @@ description: Result of parsing mounting-plate.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -622,6 +695,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -630,9 +704,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateLength", "start": 0, "type": "Identifier" @@ -648,6 +724,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -655,6 +732,7 @@ description: Result of parsing mounting-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -666,9 +744,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -679,6 +759,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -691,18 +772,22 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -713,6 +798,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -720,9 +806,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge1", "start": 0, "type": "Identifier" @@ -739,19 +827,23 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -762,6 +854,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -769,9 +862,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge1", "start": 0, "type": "Identifier" @@ -784,6 +879,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -795,6 +891,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -802,6 +899,7 @@ description: Result of parsing mounting-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -813,9 +911,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -826,6 +926,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -838,6 +939,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -846,13 +948,16 @@ description: Result of parsing mounting-plate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -863,25 +968,30 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -892,12 +1002,14 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -905,6 +1017,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -915,6 +1028,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -922,6 +1036,7 @@ description: Result of parsing mounting-plate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -933,9 +1048,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -946,19 +1063,23 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -969,6 +1090,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -977,12 +1099,14 @@ description: Result of parsing mounting-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -999,11 +1123,13 @@ description: Result of parsing mounting-plate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1016,6 +1142,7 @@ description: Result of parsing mounting-plate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part", "start": 0, "type": "Identifier" @@ -1026,9 +1153,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectShape", "start": 0, "type": "Identifier" @@ -1045,6 +1174,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1056,6 +1186,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1074,9 +1205,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateWidth", "start": 0, "type": "Identifier" @@ -1088,15 +1221,18 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1110,14 +1246,17 @@ description: Result of parsing mounting-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeIndex", "start": 0, "type": "Identifier" @@ -1141,9 +1280,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateLength", "start": 0, "type": "Identifier" @@ -1153,10 +1294,12 @@ description: Result of parsing mounting-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1170,14 +1313,17 @@ description: Result of parsing mounting-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeIndex", "start": 0, "type": "Identifier" @@ -1193,6 +1339,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1203,6 +1350,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1211,9 +1359,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1229,9 +1379,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1242,6 +1394,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1253,9 +1406,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1266,6 +1421,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1278,6 +1434,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1289,6 +1446,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1306,9 +1464,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateWidth", "start": 0, "type": "Identifier" @@ -1318,10 +1478,12 @@ description: Result of parsing mounting-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1335,14 +1497,17 @@ description: Result of parsing mounting-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeIndex", "start": 0, "type": "Identifier" @@ -1366,9 +1531,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateLength", "start": 0, "type": "Identifier" @@ -1378,10 +1545,12 @@ description: Result of parsing mounting-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1395,14 +1564,17 @@ description: Result of parsing mounting-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeIndex", "start": 0, "type": "Identifier" @@ -1418,6 +1590,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1428,6 +1601,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1436,9 +1610,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1454,9 +1630,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1467,6 +1645,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1478,9 +1657,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1491,6 +1672,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1503,6 +1685,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1514,6 +1697,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1532,9 +1716,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateWidth", "start": 0, "type": "Identifier" @@ -1546,15 +1732,18 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1568,14 +1757,17 @@ description: Result of parsing mounting-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeIndex", "start": 0, "type": "Identifier" @@ -1600,9 +1792,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateLength", "start": 0, "type": "Identifier" @@ -1614,15 +1808,18 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1636,14 +1833,17 @@ description: Result of parsing mounting-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeIndex", "start": 0, "type": "Identifier" @@ -1659,6 +1859,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1669,6 +1870,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1677,9 +1879,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1695,9 +1899,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1708,6 +1914,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1719,9 +1926,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1732,6 +1941,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1744,6 +1954,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1755,6 +1966,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1772,9 +1984,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateWidth", "start": 0, "type": "Identifier" @@ -1784,10 +1998,12 @@ description: Result of parsing mounting-plate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1801,14 +2017,17 @@ description: Result of parsing mounting-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeIndex", "start": 0, "type": "Identifier" @@ -1833,9 +2052,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateLength", "start": 0, "type": "Identifier" @@ -1847,15 +2068,18 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1869,14 +2093,17 @@ description: Result of parsing mounting-plate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeIndex", "start": 0, "type": "Identifier" @@ -1892,6 +2119,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1902,6 +2130,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1910,9 +2139,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1928,9 +2159,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1941,6 +2174,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1952,9 +2186,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1965,6 +2201,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1977,6 +2214,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1988,6 +2226,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1998,6 +2237,7 @@ description: Result of parsing mounting-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2010,6 +2250,7 @@ description: Result of parsing mounting-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2021,6 +2262,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2031,6 +2273,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2039,9 +2282,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centerHoleDiameter", "start": 0, "type": "Identifier" @@ -2057,9 +2302,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2070,6 +2317,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2081,9 +2329,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2094,6 +2344,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2106,6 +2357,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2114,9 +2366,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateThickness", "start": 0, "type": "Identifier" @@ -2132,9 +2386,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2145,6 +2401,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2157,6 +2414,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2165,9 +2423,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -2183,6 +2443,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2197,6 +2458,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -2208,9 +2470,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge3", "start": 0, "type": "Identifier" @@ -2224,9 +2488,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge2", "start": 0, "type": "Identifier" @@ -2238,6 +2504,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2248,9 +2515,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -2261,6 +2530,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2273,6 +2543,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -2284,9 +2555,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge4", "start": 0, "type": "Identifier" @@ -2300,9 +2573,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge3", "start": 0, "type": "Identifier" @@ -2314,6 +2589,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2324,9 +2600,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -2337,6 +2615,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2349,6 +2628,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -2360,9 +2640,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge4", "start": 0, "type": "Identifier" @@ -2376,9 +2658,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge1", "start": 0, "type": "Identifier" @@ -2390,6 +2674,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2400,9 +2685,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -2413,6 +2700,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2425,6 +2713,7 @@ description: Result of parsing mounting-plate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -2436,9 +2725,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge2", "start": 0, "type": "Identifier" @@ -2452,9 +2743,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "basePlateEdge1", "start": 0, "type": "Identifier" @@ -2466,6 +2759,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2476,9 +2770,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -2489,6 +2785,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2496,6 +2793,7 @@ description: Result of parsing mounting-plate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2506,9 +2804,11 @@ description: Result of parsing mounting-plate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -2519,6 +2819,7 @@ description: Result of parsing mounting-plate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2527,15 +2828,18 @@ description: Result of parsing mounting-plate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2547,9 +2851,11 @@ description: Result of parsing mounting-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2568,19 +2874,23 @@ description: Result of parsing mounting-plate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -2597,15 +2907,18 @@ description: Result of parsing mounting-plate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2621,12 +2934,14 @@ description: Result of parsing mounting-plate.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2639,6 +2954,7 @@ description: Result of parsing mounting-plate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/mounting-plate/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/mounting-plate/program_memory.snap index e1e82bfaa..162dfdb6c 100644 --- a/rust/kcl-lib/tests/kcl_samples/mounting-plate/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/mounting-plate/program_memory.snap @@ -89,6 +89,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 625, "end": 640, + "moduleId": 0, "start": 625, "type": "TagDeclarator", "value": "basePlateEdge1" @@ -102,6 +103,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 723, "end": 738, + "moduleId": 0, "start": 723, "type": "TagDeclarator", "value": "basePlateEdge2" @@ -115,6 +117,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 828, "end": 843, + "moduleId": 0, "start": 828, "type": "TagDeclarator", "value": "basePlateEdge3" @@ -128,6 +131,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 913, "end": 928, + "moduleId": 0, "start": 913, "type": "TagDeclarator", "value": "basePlateEdge4" @@ -151,6 +155,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 625, "end": 640, + "moduleId": 0, "start": 625, "type": "TagDeclarator", "value": "basePlateEdge1" @@ -176,6 +181,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 723, "end": 738, + "moduleId": 0, "start": 723, "type": "TagDeclarator", "value": "basePlateEdge2" @@ -201,6 +207,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 828, "end": 843, + "moduleId": 0, "start": 828, "type": "TagDeclarator", "value": "basePlateEdge3" @@ -226,6 +233,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 913, "end": 928, + "moduleId": 0, "start": 913, "type": "TagDeclarator", "value": "basePlateEdge4" @@ -471,6 +479,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 625, "end": 640, + "moduleId": 0, "start": 625, "type": "TagDeclarator", "value": "basePlateEdge1" @@ -496,6 +505,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 723, "end": 738, + "moduleId": 0, "start": 723, "type": "TagDeclarator", "value": "basePlateEdge2" @@ -521,6 +531,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 828, "end": 843, + "moduleId": 0, "start": 828, "type": "TagDeclarator", "value": "basePlateEdge3" @@ -546,6 +557,7 @@ description: Variables in memory after executing mounting-plate.kcl "tag": { "commentStart": 913, "end": 928, + "moduleId": 0, "start": 913, "type": "TagDeclarator", "value": "basePlateEdge4" diff --git a/rust/kcl-lib/tests/kcl_samples/mug/ast.snap b/rust/kcl-lib/tests/kcl_samples/mug/ast.snap index c48250c96..f8b1b0ccf 100644 --- a/rust/kcl-lib/tests/kcl_samples/mug/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/mug/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing mug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing mug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing mug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing mug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugHeight", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing mug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "95", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing mug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing mug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing mug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing mug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing mug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing mug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing mug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing mug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleThickness", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing mug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing mug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing mug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -188,13 +209,16 @@ description: Result of parsing mug.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -205,6 +229,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -212,9 +237,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -232,6 +259,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -242,6 +270,7 @@ description: Result of parsing mug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -258,9 +287,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -270,10 +301,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.04", "start": 0, "type": "Literal", @@ -289,6 +322,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -299,9 +333,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -312,6 +348,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -324,6 +361,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -335,9 +373,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -347,10 +387,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -370,9 +412,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -383,6 +427,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -395,6 +440,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -409,9 +455,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -421,10 +469,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -445,9 +495,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -457,10 +509,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -476,6 +530,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -486,9 +541,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -499,6 +556,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -511,6 +569,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -519,6 +578,7 @@ description: Result of parsing mug.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -530,6 +590,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -541,6 +602,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -549,6 +611,7 @@ description: Result of parsing mug.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -560,6 +623,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -571,6 +635,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -582,9 +647,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -594,10 +661,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -617,9 +686,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -630,6 +701,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -642,6 +714,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -653,9 +726,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -665,10 +740,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -688,9 +765,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -701,6 +780,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -713,6 +793,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -721,6 +802,7 @@ description: Result of parsing mug.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -732,6 +814,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -743,6 +826,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -750,6 +834,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -765,6 +850,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -776,9 +862,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -788,10 +876,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -811,9 +901,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -824,6 +916,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -836,6 +929,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -847,9 +941,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -859,10 +955,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.35", "start": 0, "type": "Literal", @@ -882,9 +980,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -895,6 +995,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -907,6 +1008,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -914,6 +1016,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -929,6 +1032,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -940,9 +1044,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -952,10 +1058,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -975,9 +1083,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -988,6 +1098,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1000,6 +1111,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1011,9 +1123,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugHeight", "start": 0, "type": "Identifier" @@ -1023,6 +1137,7 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1031,9 +1146,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1043,10 +1160,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1070,9 +1189,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1083,6 +1204,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1095,6 +1217,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1102,6 +1225,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1117,6 +1241,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -1125,9 +1250,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1143,9 +1270,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1156,6 +1285,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1168,18 +1298,22 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1190,6 +1324,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1201,9 +1336,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1214,6 +1351,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1226,18 +1364,22 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1248,6 +1390,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1259,9 +1402,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1272,19 +1417,23 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1295,6 +1444,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1307,6 +1457,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1315,9 +1466,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -1333,9 +1486,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1346,6 +1501,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1354,12 +1510,14 @@ description: Result of parsing mug.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "14": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1376,11 +1534,13 @@ description: Result of parsing mug.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1398,6 +1558,7 @@ description: Result of parsing mug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handlePath", "start": 0, "type": "Identifier" @@ -1405,13 +1566,16 @@ description: Result of parsing mug.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1422,6 +1586,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1429,9 +1594,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -1449,6 +1616,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1463,9 +1631,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -1475,10 +1645,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1499,9 +1671,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugHeight", "start": 0, "type": "Identifier" @@ -1511,10 +1685,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -1530,6 +1706,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1540,9 +1717,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1553,6 +1732,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1565,6 +1745,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1573,6 +1754,7 @@ description: Result of parsing mug.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1584,6 +1766,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1595,6 +1778,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1606,9 +1790,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -1618,10 +1804,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1641,9 +1829,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1654,6 +1844,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1666,6 +1857,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1673,6 +1865,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1688,6 +1881,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1699,9 +1893,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugHeight", "start": 0, "type": "Identifier" @@ -1711,10 +1907,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -1734,9 +1932,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1747,6 +1947,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1759,6 +1960,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1769,6 +1971,7 @@ description: Result of parsing mug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1785,9 +1988,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugHeight", "start": 0, "type": "Identifier" @@ -1797,10 +2002,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.425", "start": 0, "type": "Literal", @@ -1816,6 +2023,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1826,9 +2034,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1839,6 +2049,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1851,6 +2062,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1858,6 +2070,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1873,6 +2086,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1884,9 +2098,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugHeight", "start": 0, "type": "Identifier" @@ -1896,10 +2112,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -1919,6 +2137,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1926,6 +2145,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1937,9 +2157,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1950,6 +2172,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1962,18 +2185,22 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -1984,6 +2211,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1991,9 +2219,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -2010,18 +2240,22 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2032,6 +2266,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2043,9 +2278,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2056,6 +2293,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2064,12 +2302,14 @@ description: Result of parsing mug.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2086,11 +2326,13 @@ description: Result of parsing mug.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2103,6 +2345,7 @@ description: Result of parsing mug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handle", "start": 0, "type": "Identifier" @@ -2110,13 +2353,16 @@ description: Result of parsing mug.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2127,6 +2373,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2137,6 +2384,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2148,9 +2396,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -2160,10 +2410,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2183,9 +2435,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2196,6 +2450,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2203,9 +2458,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -2224,6 +2481,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2239,9 +2497,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -2253,15 +2513,18 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2285,9 +2548,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugHeight", "start": 0, "type": "Identifier" @@ -2297,10 +2562,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -2314,6 +2581,7 @@ description: Result of parsing mug.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2322,9 +2590,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleThickness", "start": 0, "type": "Identifier" @@ -2334,10 +2604,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2357,6 +2629,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2367,9 +2640,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2380,6 +2655,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2392,6 +2668,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -2402,6 +2679,7 @@ description: Result of parsing mug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2415,13 +2693,16 @@ description: Result of parsing mug.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2432,11 +2713,13 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2445,9 +2728,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleThickness", "start": 0, "type": "Identifier" @@ -2457,10 +2742,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2480,6 +2767,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2490,6 +2778,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2504,9 +2793,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -2516,10 +2807,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2534,13 +2827,16 @@ description: Result of parsing mug.kcl "type": "BinaryExpression" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2551,6 +2847,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2558,6 +2855,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2568,9 +2866,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2581,6 +2881,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2593,6 +2894,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2603,6 +2905,7 @@ description: Result of parsing mug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2617,9 +2920,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleThickness", "start": 0, "type": "Identifier" @@ -2631,6 +2936,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2638,6 +2944,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2648,9 +2955,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2661,6 +2970,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2673,6 +2983,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2685,9 +2996,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -2699,6 +3012,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2707,6 +3021,7 @@ description: Result of parsing mug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2718,6 +3033,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2728,9 +3044,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2741,6 +3059,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2753,18 +3072,22 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStart", "start": 0, "type": "Identifier" @@ -2775,6 +3098,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2786,9 +3110,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2799,19 +3125,23 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2822,6 +3152,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2834,6 +3165,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -2842,9 +3174,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handlePath", "start": 0, "type": "Identifier" @@ -2860,9 +3194,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -2873,19 +3209,23 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -2896,6 +3236,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2903,9 +3244,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -2919,12 +3262,14 @@ description: Result of parsing mug.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2941,11 +3286,13 @@ description: Result of parsing mug.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2958,6 +3305,7 @@ description: Result of parsing mug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mug", "start": 0, "type": "Identifier" @@ -2965,13 +3313,16 @@ description: Result of parsing mug.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2982,6 +3333,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2989,9 +3341,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -3009,6 +3363,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3019,6 +3374,7 @@ description: Result of parsing mug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3035,9 +3391,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3047,10 +3405,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.04", "start": 0, "type": "Literal", @@ -3066,6 +3426,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3076,9 +3437,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3089,6 +3452,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3101,6 +3465,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3112,9 +3477,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3124,10 +3491,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -3147,9 +3516,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3160,6 +3531,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3172,6 +3544,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3186,9 +3559,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3198,10 +3573,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -3222,9 +3599,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3234,10 +3613,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -3253,6 +3634,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3263,9 +3645,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3276,6 +3660,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3288,6 +3673,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -3296,6 +3682,7 @@ description: Result of parsing mug.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -3307,6 +3694,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3318,6 +3706,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -3326,6 +3715,7 @@ description: Result of parsing mug.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3337,6 +3727,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3348,6 +3739,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3359,9 +3751,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3371,10 +3765,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -3394,9 +3790,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3407,6 +3805,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3419,6 +3818,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3430,9 +3830,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3442,10 +3844,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -3465,9 +3869,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3478,6 +3884,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3490,6 +3897,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -3498,6 +3906,7 @@ description: Result of parsing mug.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3509,6 +3918,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3520,6 +3930,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -3527,6 +3938,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3542,6 +3954,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3553,9 +3966,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3565,10 +3980,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -3588,9 +4005,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -3601,6 +4020,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3613,6 +4033,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3624,9 +4045,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3636,10 +4059,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.35", "start": 0, "type": "Literal", @@ -3659,9 +4084,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3672,6 +4099,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3684,6 +4112,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3691,6 +4120,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3706,6 +4136,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3717,9 +4148,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3729,10 +4162,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -3752,9 +4187,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3765,6 +4202,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3777,6 +4215,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3788,9 +4227,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugHeight", "start": 0, "type": "Identifier" @@ -3800,6 +4241,7 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3808,9 +4250,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3820,10 +4264,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3847,9 +4293,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3860,6 +4308,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3872,6 +4321,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3879,6 +4329,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -3894,6 +4345,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -3902,9 +4354,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3920,9 +4374,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3933,6 +4389,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3945,6 +4402,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3956,9 +4414,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mugDiameter", "start": 0, "type": "Identifier" @@ -3968,10 +4428,12 @@ description: Result of parsing mug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -3991,9 +4453,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4004,6 +4468,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4016,6 +4481,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4024,6 +4490,7 @@ description: Result of parsing mug.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4035,6 +4502,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4046,6 +4514,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4054,13 +4523,16 @@ description: Result of parsing mug.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegX", "start": 0, "type": "Identifier" @@ -4071,15 +4543,18 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -4099,9 +4574,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4112,6 +4589,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4124,18 +4602,22 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4146,6 +4628,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4157,9 +4640,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4170,6 +4655,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4182,18 +4668,22 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4204,6 +4694,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4215,9 +4706,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4228,19 +4721,23 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4251,6 +4748,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4263,6 +4761,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4271,9 +4770,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -4289,9 +4790,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -4302,6 +4805,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4310,12 +4814,14 @@ description: Result of parsing mug.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "16": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4332,11 +4838,13 @@ description: Result of parsing mug.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4353,9 +4861,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handle", "start": 0, "type": "Identifier" @@ -4369,9 +4879,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mug", "start": 0, "type": "Identifier" @@ -4383,6 +4895,7 @@ description: Result of parsing mug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4394,6 +4907,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4401,6 +4915,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#9b1212\"", "start": 0, "type": "Literal", @@ -4413,6 +4928,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -4420,6 +4936,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -4435,6 +4952,7 @@ description: Result of parsing mug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -4442,6 +4960,7 @@ description: Result of parsing mug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4457,9 +4976,11 @@ description: Result of parsing mug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -4470,6 +4991,7 @@ description: Result of parsing mug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4478,10 +5000,12 @@ description: Result of parsing mug.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -4493,9 +5017,11 @@ description: Result of parsing mug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -4514,19 +5040,23 @@ description: Result of parsing mug.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -4542,12 +5072,14 @@ description: Result of parsing mug.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/mug/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/mug/program_memory.snap index 4cf88221e..aaa265331 100644 --- a/rust/kcl-lib/tests/kcl_samples/mug/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/mug/program_memory.snap @@ -319,6 +319,7 @@ description: Variables in memory after executing mug.kcl "tag": { "commentStart": 1438, "end": 1444, + "moduleId": 0, "start": 1438, "type": "TagDeclarator", "value": "seg02" diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ast.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ast.snap index f2d33948c..a768e9e45 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing multi-axis-robot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "robot-arm-base.kcl" @@ -20,6 +21,7 @@ description: Result of parsing multi-axis-robot.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "robotArmBase", "start": 0, "type": "Identifier" @@ -32,6 +34,7 @@ description: Result of parsing multi-axis-robot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "robot-rotating-base.kcl" @@ -41,6 +44,7 @@ description: Result of parsing multi-axis-robot.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotatingBase", "start": 0, "type": "Identifier" @@ -53,6 +57,7 @@ description: Result of parsing multi-axis-robot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "robot-arm-j2.kcl" @@ -62,6 +67,7 @@ description: Result of parsing multi-axis-robot.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "j2RobotArm", "start": 0, "type": "Identifier" @@ -74,6 +80,7 @@ description: Result of parsing multi-axis-robot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "robot-arm-j3.kcl" @@ -83,6 +90,7 @@ description: Result of parsing multi-axis-robot.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "j3RobotArm", "start": 0, "type": "Identifier" @@ -99,9 +107,11 @@ description: Result of parsing multi-axis-robot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "robotArmBase", "start": 0, "type": "Identifier" @@ -111,6 +121,7 @@ description: Result of parsing multi-axis-robot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -122,9 +133,11 @@ description: Result of parsing multi-axis-robot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotatingBase", "start": 0, "type": "Identifier" @@ -134,6 +147,7 @@ description: Result of parsing multi-axis-robot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -145,9 +159,11 @@ description: Result of parsing multi-axis-robot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "j2RobotArm", "start": 0, "type": "Identifier" @@ -157,6 +173,7 @@ description: Result of parsing multi-axis-robot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -168,9 +185,11 @@ description: Result of parsing multi-axis-robot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "j3RobotArm", "start": 0, "type": "Identifier" @@ -180,6 +199,7 @@ description: Result of parsing multi-axis-robot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -191,9 +211,11 @@ description: Result of parsing multi-axis-robot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -212,19 +234,23 @@ description: Result of parsing multi-axis-robot.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -241,15 +267,18 @@ description: Result of parsing multi-axis-robot.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -265,12 +294,14 @@ description: Result of parsing multi-axis-robot.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -283,6 +314,7 @@ description: Result of parsing multi-axis-robot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/ast.snap b/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/ast.snap index 00fc02f83..177d7dc20 100644 --- a/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateWidth", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "482.6", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define the dimensions", "// Width fits standard 19” rack, height is 1U, depth is variable" @@ -50,6 +54,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateHeight", "start": 0, "type": "Identifier" @@ -57,6 +62,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "44.45", "start": 0, "type": "Literal", @@ -66,11 +72,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -83,6 +91,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateDepth", "start": 0, "type": "Identifier" @@ -90,6 +99,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -99,11 +109,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -116,6 +128,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportWidth", "start": 0, "type": "Identifier" @@ -123,6 +136,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -132,11 +146,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define dimensions of side supports (width and thickness)" ], @@ -152,6 +168,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportThickness", "start": 0, "type": "Identifier" @@ -159,6 +176,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -168,11 +186,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -185,6 +205,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateShape", "start": 0, "type": "Identifier" @@ -192,13 +213,16 @@ description: Result of parsing pdu-faceplate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -209,6 +233,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -219,6 +244,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -231,9 +257,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateHeight", "start": 0, "type": "Identifier" @@ -245,15 +273,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -273,9 +304,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -286,6 +319,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -293,9 +327,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -314,6 +350,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -332,9 +369,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateWidth", "start": 0, "type": "Identifier" @@ -346,15 +385,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -368,14 +410,17 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportWidth", "start": 0, "type": "Identifier" @@ -392,6 +437,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -403,6 +449,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -413,9 +460,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -426,12 +475,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -444,6 +495,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -452,9 +504,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportThickness", "start": 0, "type": "Identifier" @@ -470,9 +524,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -483,6 +539,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -495,6 +552,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -503,9 +561,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportWidth", "start": 0, "type": "Identifier" @@ -521,9 +581,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -534,6 +596,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -546,6 +609,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -557,9 +621,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateDepth", "start": 0, "type": "Identifier" @@ -569,14 +635,17 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportThickness", "start": 0, "type": "Identifier" @@ -596,9 +665,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -609,6 +680,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -621,6 +693,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -629,9 +702,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateWidth", "start": 0, "type": "Identifier" @@ -647,9 +722,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -660,6 +737,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -672,6 +750,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -683,9 +762,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportThickness", "start": 0, "type": "Identifier" @@ -695,14 +776,17 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateDepth", "start": 0, "type": "Identifier" @@ -722,9 +806,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -735,6 +821,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -747,6 +834,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -755,9 +843,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportWidth", "start": 0, "type": "Identifier" @@ -773,9 +863,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -786,6 +878,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -798,6 +891,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -807,9 +901,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportThickness", "start": 0, "type": "Identifier" @@ -821,6 +917,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -832,9 +929,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -845,6 +944,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -857,6 +957,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -865,13 +966,16 @@ description: Result of parsing pdu-faceplate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -882,25 +986,30 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -911,12 +1020,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -924,6 +1035,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -934,6 +1046,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -941,6 +1054,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -952,9 +1066,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -965,19 +1081,23 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -988,6 +1108,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -996,15 +1117,18 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1022,6 +1146,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateBody", "start": 0, "type": "Identifier" @@ -1033,6 +1158,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1041,9 +1167,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateHeight", "start": 0, "type": "Identifier" @@ -1059,9 +1187,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1072,6 +1202,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1079,9 +1210,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateShape", "start": 0, "type": "Identifier" @@ -1092,11 +1225,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1109,6 +1244,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateFrontFace", "start": 0, "type": "Identifier" @@ -1120,6 +1256,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1128,9 +1265,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1146,9 +1285,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1159,6 +1300,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1166,9 +1308,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateBody", "start": 0, "type": "Identifier" @@ -1179,11 +1323,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1196,6 +1342,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWall", "start": 0, "type": "Identifier" @@ -1203,6 +1350,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1212,11 +1360,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1234,6 +1384,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWidth", "start": 0, "type": "Identifier" @@ -1245,9 +1396,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateWidth", "start": 0, "type": "Identifier" @@ -1257,6 +1410,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1265,9 +1419,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWall", "start": 0, "type": "Identifier" @@ -1277,10 +1433,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1298,11 +1456,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1315,6 +1475,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestHeight", "start": 0, "type": "Identifier" @@ -1326,9 +1487,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateHeight", "start": 0, "type": "Identifier" @@ -1338,6 +1501,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1346,9 +1510,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWall", "start": 0, "type": "Identifier" @@ -1358,10 +1524,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1379,11 +1547,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1396,6 +1566,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestDepth", "start": 0, "type": "Identifier" @@ -1407,9 +1578,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateDepth", "start": 0, "type": "Identifier" @@ -1419,14 +1592,17 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWall", "start": 0, "type": "Identifier" @@ -1440,11 +1616,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1457,6 +1635,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestShape", "start": 0, "type": "Identifier" @@ -1470,6 +1649,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1485,9 +1665,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWidth", "start": 0, "type": "Identifier" @@ -1499,15 +1681,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1528,9 +1713,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestHeight", "start": 0, "type": "Identifier" @@ -1540,10 +1727,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1559,6 +1748,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1569,9 +1759,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1582,6 +1774,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1589,9 +1782,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateFrontFace", "start": 0, "type": "Identifier" @@ -1609,6 +1804,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1617,9 +1813,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWidth", "start": 0, "type": "Identifier" @@ -1635,9 +1833,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1648,6 +1848,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1660,6 +1861,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1669,9 +1871,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestHeight", "start": 0, "type": "Identifier" @@ -1683,6 +1887,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1694,9 +1899,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1707,6 +1914,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1719,6 +1927,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1728,9 +1937,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWidth", "start": 0, "type": "Identifier" @@ -1742,6 +1953,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1753,9 +1965,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1766,6 +1980,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1778,6 +1993,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1786,13 +2002,16 @@ description: Result of parsing pdu-faceplate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1803,25 +2022,30 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1832,12 +2056,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1845,6 +2071,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1855,9 +2082,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1868,19 +2097,23 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1891,6 +2124,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1899,15 +2133,18 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1920,6 +2157,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestVoid", "start": 0, "type": "Identifier" @@ -1931,6 +2169,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1940,9 +2179,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestDepth", "start": 0, "type": "Identifier" @@ -1954,6 +2195,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1965,9 +2207,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1978,6 +2222,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1985,9 +2230,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestShape", "start": 0, "type": "Identifier" @@ -1998,11 +2245,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2015,6 +2264,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleHeight", "start": 0, "type": "Identifier" @@ -2023,9 +2273,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestHeight", "start": 0, "type": "Identifier" @@ -2035,11 +2287,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2057,6 +2311,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleWidth", "start": 0, "type": "Identifier" @@ -2065,9 +2320,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestHeight", "start": 0, "type": "Identifier" @@ -2077,11 +2334,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2094,6 +2353,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleDepth", "start": 0, "type": "Identifier" @@ -2102,9 +2362,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestHeight", "start": 0, "type": "Identifier" @@ -2114,11 +2376,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2131,6 +2395,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSpacerWidth", "start": 0, "type": "Identifier" @@ -2142,9 +2407,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleWidth", "start": 0, "type": "Identifier" @@ -2154,10 +2421,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -2171,11 +2440,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2188,6 +2459,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSpacerPosition", "start": 0, "type": "Identifier" @@ -2202,9 +2474,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSpacerWidth", "start": 0, "type": "Identifier" @@ -2214,10 +2488,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2231,6 +2507,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2239,9 +2516,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWidth", "start": 0, "type": "Identifier" @@ -2251,10 +2530,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2272,11 +2553,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2289,6 +2572,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxModuleFn", "start": 0, "type": "Identifier" @@ -2304,6 +2588,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shape", "start": 0, "type": "Identifier" @@ -2311,13 +2596,16 @@ description: Result of parsing pdu-faceplate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2328,6 +2616,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2335,9 +2624,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2355,6 +2646,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2370,9 +2662,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2384,15 +2678,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2413,9 +2710,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleHeight", "start": 0, "type": "Identifier" @@ -2425,10 +2724,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2444,6 +2745,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2454,9 +2756,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2467,12 +2771,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2485,6 +2791,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2493,9 +2800,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2511,9 +2820,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2524,6 +2835,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2536,6 +2848,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2545,9 +2858,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleHeight", "start": 0, "type": "Identifier" @@ -2559,6 +2874,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2570,9 +2886,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2583,6 +2901,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2595,6 +2914,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2604,9 +2924,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2618,6 +2940,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2629,9 +2952,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2642,6 +2967,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2654,6 +2980,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2662,13 +2989,16 @@ description: Result of parsing pdu-faceplate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2679,25 +3009,30 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2708,12 +3043,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2721,6 +3058,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2731,9 +3069,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2744,19 +3084,23 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2767,6 +3111,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2775,15 +3120,18 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2796,6 +3144,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body", "start": 0, "type": "Identifier" @@ -2807,6 +3156,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2816,9 +3166,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleDepth", "start": 0, "type": "Identifier" @@ -2830,6 +3182,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2841,9 +3194,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2854,6 +3209,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2861,9 +3217,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shape", "start": 0, "type": "Identifier" @@ -2874,11 +3232,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2888,9 +3248,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body", "start": 0, "type": "Identifier" @@ -2902,6 +3264,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2909,16 +3272,19 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2929,11 +3295,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2946,6 +3314,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSpacerShape", "start": 0, "type": "Identifier" @@ -2959,6 +3328,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2967,9 +3337,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSpacerWidth", "start": 0, "type": "Identifier" @@ -2985,9 +3357,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxModuleFn", "start": 0, "type": "Identifier" @@ -2998,6 +3372,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3010,6 +3385,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -3018,9 +3394,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSpacerPosition", "start": 0, "type": "Identifier" @@ -3036,6 +3414,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -3043,6 +3422,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3058,6 +3438,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -3065,6 +3446,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3080,9 +3462,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -3093,12 +3477,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3107,12 +3493,14 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3129,11 +3517,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3146,6 +3536,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPosition", "start": 0, "type": "Identifier" @@ -3160,9 +3551,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSpacerPosition", "start": 0, "type": "Identifier" @@ -3172,6 +3565,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3180,9 +3574,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftSpacerWidth", "start": 0, "type": "Identifier" @@ -3192,10 +3588,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3213,6 +3611,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3221,9 +3620,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleWidth", "start": 0, "type": "Identifier" @@ -3233,10 +3634,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3254,11 +3657,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3271,6 +3676,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchWidth", "start": 0, "type": "Identifier" @@ -3279,9 +3685,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleWidth", "start": 0, "type": "Identifier" @@ -3291,11 +3699,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3308,6 +3718,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchBody", "start": 0, "type": "Identifier" @@ -3319,6 +3730,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3327,9 +3739,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleWidth", "start": 0, "type": "Identifier" @@ -3345,9 +3759,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxModuleFn", "start": 0, "type": "Identifier" @@ -3358,16 +3774,19 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3385,6 +3804,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateWidth", "start": 0, "type": "Identifier" @@ -3392,6 +3812,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -3401,11 +3822,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3423,6 +3846,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateHeight", "start": 0, "type": "Identifier" @@ -3430,6 +3854,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -3439,11 +3864,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3456,6 +3883,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateThickness", "start": 0, "type": "Identifier" @@ -3463,6 +3891,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3472,11 +3901,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3489,6 +3920,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateShape", "start": 0, "type": "Identifier" @@ -3502,6 +3934,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3510,9 +3943,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -3528,9 +3963,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3541,6 +3978,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3548,9 +3986,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchBody", "start": 0, "type": "Identifier" @@ -3568,6 +4008,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3583,9 +4024,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateWidth", "start": 0, "type": "Identifier" @@ -3597,15 +4040,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3627,9 +4073,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateHeight", "start": 0, "type": "Identifier" @@ -3641,15 +4089,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3665,6 +4116,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3675,9 +4127,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3688,12 +4142,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3706,6 +4162,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3714,9 +4171,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateHeight", "start": 0, "type": "Identifier" @@ -3732,9 +4191,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3745,6 +4206,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3757,6 +4219,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3765,9 +4228,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateWidth", "start": 0, "type": "Identifier" @@ -3783,9 +4248,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3796,6 +4263,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3808,6 +4276,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3817,9 +4286,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateHeight", "start": 0, "type": "Identifier" @@ -3831,6 +4302,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3842,9 +4314,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3855,6 +4329,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3867,6 +4342,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3875,13 +4351,16 @@ description: Result of parsing pdu-faceplate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3892,25 +4371,30 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3921,12 +4405,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3934,6 +4420,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3944,9 +4431,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3957,19 +4446,23 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3980,6 +4473,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3988,15 +4482,18 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4009,6 +4506,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateBody", "start": 0, "type": "Identifier" @@ -4022,6 +4520,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4030,9 +4529,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateThickness", "start": 0, "type": "Identifier" @@ -4048,9 +4549,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4061,6 +4564,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4068,9 +4572,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateShape", "start": 0, "type": "Identifier" @@ -4088,6 +4594,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -4096,9 +4603,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPosition", "start": 0, "type": "Identifier" @@ -4114,6 +4623,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -4121,6 +4631,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4136,6 +4647,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -4143,6 +4655,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4158,9 +4671,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -4171,12 +4686,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4185,12 +4702,14 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4207,11 +4726,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4224,6 +4745,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchButtonHeight", "start": 0, "type": "Identifier" @@ -4231,6 +4753,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26", "start": 0, "type": "Literal", @@ -4240,11 +4763,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4257,6 +4782,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchButtonWidth", "start": 0, "type": "Identifier" @@ -4264,6 +4790,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -4273,11 +4800,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4290,6 +4819,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchButtonShape", "start": 0, "type": "Identifier" @@ -4297,13 +4827,16 @@ description: Result of parsing pdu-faceplate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4314,6 +4847,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4324,6 +4858,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -4336,9 +4871,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchButtonWidth", "start": 0, "type": "Identifier" @@ -4350,15 +4887,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4378,9 +4918,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -4391,6 +4933,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4399,9 +4942,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -4413,6 +4958,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4427,6 +4973,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4438,9 +4985,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateThickness", "start": 0, "type": "Identifier" @@ -4457,9 +5006,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchButtonHeight", "start": 0, "type": "Identifier" @@ -4469,10 +5020,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4488,6 +5041,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4498,9 +5052,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4511,12 +5067,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4529,6 +5087,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4539,6 +5098,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4552,6 +5112,7 @@ description: Result of parsing pdu-faceplate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4563,6 +5124,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4570,6 +5132,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4580,9 +5143,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4593,6 +5158,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4605,6 +5171,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -4615,6 +5182,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -4627,6 +5195,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4638,6 +5207,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4648,6 +5218,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4658,6 +5229,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -4671,6 +5243,7 @@ description: Result of parsing pdu-faceplate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -4682,6 +5255,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4689,6 +5263,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4699,9 +5274,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -4712,6 +5289,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4724,6 +5302,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4735,9 +5314,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPlateThickness", "start": 0, "type": "Identifier" @@ -4755,9 +5336,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchButtonHeight", "start": 0, "type": "Identifier" @@ -4769,15 +5352,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4793,6 +5379,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4803,9 +5390,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4816,6 +5405,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4828,6 +5418,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4836,13 +5427,16 @@ description: Result of parsing pdu-faceplate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4853,25 +5447,30 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4882,12 +5481,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4895,6 +5496,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4905,9 +5507,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4918,19 +5522,23 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4941,6 +5549,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4949,15 +5558,18 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4970,6 +5582,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchButtonBody", "start": 0, "type": "Identifier" @@ -4983,6 +5596,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4991,9 +5605,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchButtonWidth", "start": 0, "type": "Identifier" @@ -5009,9 +5625,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5022,6 +5640,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5029,9 +5648,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchButtonShape", "start": 0, "type": "Identifier" @@ -5049,6 +5670,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -5057,9 +5679,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPosition", "start": 0, "type": "Identifier" @@ -5075,6 +5699,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -5082,6 +5707,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5097,6 +5723,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -5104,6 +5731,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5119,9 +5747,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5132,12 +5762,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5150,6 +5782,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -5157,6 +5790,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#ff0000\"", "start": 0, "type": "Literal", @@ -5169,9 +5803,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -5182,12 +5818,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5196,12 +5834,14 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5218,11 +5858,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5235,6 +5877,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondSpacerWidth", "start": 0, "type": "Identifier" @@ -5246,9 +5889,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleWidth", "start": 0, "type": "Identifier" @@ -5258,10 +5903,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5275,11 +5922,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5292,6 +5941,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondSpacerPosition", "start": 0, "type": "Identifier" @@ -5306,9 +5956,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchPosition", "start": 0, "type": "Identifier" @@ -5318,6 +5970,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5326,9 +5979,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "switchWidth", "start": 0, "type": "Identifier" @@ -5338,10 +5993,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5359,6 +6016,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5367,9 +6025,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondSpacerWidth", "start": 0, "type": "Identifier" @@ -5379,10 +6039,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5400,11 +6062,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5417,6 +6081,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondSpacerBody", "start": 0, "type": "Identifier" @@ -5430,6 +6095,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -5438,9 +6104,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondSpacerWidth", "start": 0, "type": "Identifier" @@ -5456,9 +6124,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxModuleFn", "start": 0, "type": "Identifier" @@ -5469,6 +6139,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5481,6 +6152,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -5489,9 +6161,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondSpacerPosition", "start": 0, "type": "Identifier" @@ -5507,6 +6181,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -5514,6 +6189,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5529,6 +6205,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -5536,6 +6213,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5551,9 +6229,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5564,12 +6244,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5578,12 +6260,14 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5595,6 +6279,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5611,11 +6296,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5628,6 +6315,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugWidth", "start": 0, "type": "Identifier" @@ -5636,9 +6324,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "moduleWidth", "start": 0, "type": "Identifier" @@ -5648,11 +6338,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5665,6 +6357,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugCount", "start": 0, "type": "Identifier" @@ -5672,6 +6365,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -5681,11 +6375,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5698,6 +6394,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugOveralWidth", "start": 0, "type": "Identifier" @@ -5709,9 +6406,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugWidth", "start": 0, "type": "Identifier" @@ -5721,14 +6420,17 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugCount", "start": 0, "type": "Identifier" @@ -5742,11 +6444,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5759,6 +6463,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstPowerPlugPosition", "start": 0, "type": "Identifier" @@ -5773,9 +6478,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondSpacerPosition", "start": 0, "type": "Identifier" @@ -5785,6 +6492,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5793,9 +6501,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "secondSpacerWidth", "start": 0, "type": "Identifier" @@ -5805,10 +6515,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5826,6 +6538,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5834,9 +6547,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugWidth", "start": 0, "type": "Identifier" @@ -5846,10 +6561,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5867,11 +6584,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5884,6 +6603,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastPowerPlugPosition", "start": 0, "type": "Identifier" @@ -5895,9 +6615,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstPowerPlugPosition", "start": 0, "type": "Identifier" @@ -5907,6 +6629,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -5915,9 +6638,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugWidth", "start": 0, "type": "Identifier" @@ -5927,6 +6652,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -5935,9 +6661,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugCount", "start": 0, "type": "Identifier" @@ -5947,10 +6675,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5972,11 +6702,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5989,6 +6721,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugBody", "start": 0, "type": "Identifier" @@ -6002,6 +6735,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6010,9 +6744,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugWidth", "start": 0, "type": "Identifier" @@ -6028,9 +6764,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxModuleFn", "start": 0, "type": "Identifier" @@ -6041,6 +6779,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6053,6 +6792,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -6061,9 +6801,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstPowerPlugPosition", "start": 0, "type": "Identifier" @@ -6079,6 +6821,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -6086,6 +6829,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6101,6 +6845,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -6108,6 +6853,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6123,9 +6869,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -6136,12 +6884,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6150,15 +6900,18 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6171,6 +6924,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugShape", "start": 0, "type": "Identifier" @@ -6184,6 +6938,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6192,9 +6947,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -6210,9 +6967,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6223,6 +6982,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6230,9 +6990,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugBody", "start": 0, "type": "Identifier" @@ -6250,6 +7012,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6260,6 +7023,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6272,6 +7036,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6283,6 +7048,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6293,6 +7059,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6300,6 +7067,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17", "start": 0, "type": "Literal", @@ -6315,9 +7083,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6328,12 +7098,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6346,6 +7118,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -6354,9 +7127,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstPowerPlugPosition", "start": 0, "type": "Identifier" @@ -6372,6 +7147,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -6379,6 +7155,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6394,6 +7171,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -6401,6 +7179,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6416,9 +7195,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -6429,12 +7210,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6443,15 +7226,18 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6464,6 +7250,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugBody", "start": 0, "type": "Identifier" @@ -6475,6 +7262,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6483,6 +7271,7 @@ description: Result of parsing pdu-faceplate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -6494,6 +7283,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6505,9 +7295,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6518,6 +7310,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6525,9 +7318,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugShape", "start": 0, "type": "Identifier" @@ -6538,11 +7333,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6555,6 +7352,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugHoleDistance", "start": 0, "type": "Identifier" @@ -6562,6 +7360,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -6571,11 +7370,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6588,6 +7389,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugHoleShape", "start": 0, "type": "Identifier" @@ -6601,6 +7403,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6609,9 +7412,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -6627,9 +7432,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6640,6 +7447,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6647,9 +7455,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugBody", "start": 0, "type": "Identifier" @@ -6667,6 +7477,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -6682,9 +7493,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugHoleDistance", "start": 0, "type": "Identifier" @@ -6696,15 +7509,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6721,6 +7537,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6732,6 +7549,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6742,6 +7560,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6749,6 +7568,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6764,9 +7584,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -6777,12 +7599,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6795,6 +7619,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -6803,9 +7628,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "firstPowerPlugPosition", "start": 0, "type": "Identifier" @@ -6821,6 +7648,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -6828,6 +7656,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6843,6 +7672,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -6850,6 +7680,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6865,9 +7696,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -6878,12 +7711,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6896,6 +7731,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6903,6 +7739,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6918,6 +7755,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -6926,9 +7764,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugHoleDistance", "start": 0, "type": "Identifier" @@ -6944,6 +7784,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -6954,6 +7795,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6966,6 +7808,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6977,6 +7820,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6987,9 +7831,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -7000,12 +7846,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7014,15 +7862,18 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7035,6 +7886,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugHoleBody", "start": 0, "type": "Identifier" @@ -7048,6 +7900,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7056,6 +7909,7 @@ description: Result of parsing pdu-faceplate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -7067,6 +7921,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7078,9 +7933,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7091,6 +7948,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7098,9 +7956,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plugHoleShape", "start": 0, "type": "Identifier" @@ -7118,6 +7978,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -7126,9 +7987,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugCount", "start": 0, "type": "Identifier" @@ -7144,6 +8007,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -7152,9 +8016,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugWidth", "start": 0, "type": "Identifier" @@ -7170,6 +8036,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -7180,6 +8047,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7192,6 +8060,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7204,6 +8073,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7215,6 +8085,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7225,9 +8096,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -7238,12 +8111,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7252,12 +8127,14 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7274,11 +8151,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7291,6 +8170,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rightSpacerWidth", "start": 0, "type": "Identifier" @@ -7308,9 +8188,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestWidth", "start": 0, "type": "Identifier" @@ -7320,10 +8202,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7337,14 +8221,17 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastPowerPlugPosition", "start": 0, "type": "Identifier" @@ -7358,6 +8245,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -7366,9 +8254,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugWidth", "start": 0, "type": "Identifier" @@ -7378,10 +8268,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7399,11 +8291,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7416,6 +8310,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rightSpacerPosition", "start": 0, "type": "Identifier" @@ -7430,9 +8325,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastPowerPlugPosition", "start": 0, "type": "Identifier" @@ -7442,6 +8339,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -7450,9 +8348,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "powerPlugWidth", "start": 0, "type": "Identifier" @@ -7462,10 +8362,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7483,6 +8385,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -7491,9 +8394,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rightSpacerWidth", "start": 0, "type": "Identifier" @@ -7503,10 +8408,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7524,11 +8431,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7541,6 +8450,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rightSpacerBody", "start": 0, "type": "Identifier" @@ -7554,6 +8464,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -7562,9 +8473,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rightSpacerWidth", "start": 0, "type": "Identifier" @@ -7580,9 +8493,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxModuleFn", "start": 0, "type": "Identifier" @@ -7593,6 +8508,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7605,6 +8521,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -7613,9 +8530,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rightSpacerPosition", "start": 0, "type": "Identifier" @@ -7631,6 +8550,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -7638,6 +8558,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7653,6 +8574,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -7660,6 +8582,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7675,9 +8598,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -7688,12 +8613,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7702,12 +8629,14 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7724,11 +8653,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7741,6 +8672,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWidth", "start": 0, "type": "Identifier" @@ -7748,6 +8680,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -7757,11 +8690,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7774,6 +8709,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiameter", "start": 0, "type": "Identifier" @@ -7781,6 +8717,7 @@ description: Result of parsing pdu-faceplate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -7790,11 +8727,13 @@ description: Result of parsing pdu-faceplate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7807,6 +8746,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeStraightSegment", "start": 0, "type": "Identifier" @@ -7818,9 +8758,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWidth", "start": 0, "type": "Identifier" @@ -7830,14 +8772,17 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiameter", "start": 0, "type": "Identifier" @@ -7851,11 +8796,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7868,6 +8815,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeVerticalDistance", "start": 0, "type": "Identifier" @@ -7879,9 +8827,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateHeight", "start": 0, "type": "Identifier" @@ -7891,10 +8841,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -7908,11 +8860,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7925,6 +8879,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeShapes", "start": 0, "type": "Identifier" @@ -7938,6 +8893,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -7953,9 +8909,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeStraightSegment", "start": 0, "type": "Identifier" @@ -7967,15 +8925,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7996,9 +8957,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiameter", "start": 0, "type": "Identifier" @@ -8008,10 +8971,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8027,6 +8992,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8037,9 +9003,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -8050,6 +9018,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8057,9 +9026,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateFrontFace", "start": 0, "type": "Identifier" @@ -8077,6 +9048,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8085,9 +9057,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeStraightSegment", "start": 0, "type": "Identifier" @@ -8103,9 +9077,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -8116,6 +9092,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8128,6 +9105,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8142,9 +9120,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeStraightSegment", "start": 0, "type": "Identifier" @@ -8154,10 +9134,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8179,9 +9161,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiameter", "start": 0, "type": "Identifier" @@ -8193,15 +9177,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8217,6 +9204,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8227,9 +9215,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -8240,6 +9230,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8252,6 +9243,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8261,9 +9253,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeStraightSegment", "start": 0, "type": "Identifier" @@ -8275,6 +9269,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8286,9 +9281,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -8299,6 +9296,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8311,6 +9309,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8319,13 +9318,16 @@ description: Result of parsing pdu-faceplate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -8336,25 +9338,30 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -8365,12 +9372,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8378,6 +9387,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8388,9 +9398,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -8401,19 +9413,23 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -8424,6 +9440,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8436,6 +9453,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -8451,9 +9469,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateWidth", "start": 0, "type": "Identifier" @@ -8465,15 +9485,18 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8487,6 +9510,7 @@ description: Result of parsing pdu-faceplate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -8495,9 +9519,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportWidth", "start": 0, "type": "Identifier" @@ -8507,10 +9533,12 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8534,6 +9562,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -8541,6 +9570,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8556,6 +9586,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -8565,9 +9596,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeVerticalDistance", "start": 0, "type": "Identifier" @@ -8579,6 +9612,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8590,9 +9624,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -8603,12 +9639,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8621,6 +9659,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -8628,6 +9667,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8643,6 +9683,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -8651,9 +9692,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeVerticalDistance", "start": 0, "type": "Identifier" @@ -8669,6 +9712,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8679,6 +9723,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8691,6 +9736,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -8702,6 +9748,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8712,9 +9759,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -8725,12 +9774,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8743,6 +9794,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -8750,6 +9802,7 @@ description: Result of parsing pdu-faceplate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8765,6 +9818,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -8776,9 +9830,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faceplateWidth", "start": 0, "type": "Identifier" @@ -8788,14 +9844,17 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportWidth", "start": 0, "type": "Identifier" @@ -8815,6 +9874,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8825,6 +9885,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -8837,6 +9898,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8848,6 +9910,7 @@ description: Result of parsing pdu-faceplate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8858,9 +9921,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -8871,12 +9936,14 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8885,15 +9952,18 @@ description: Result of parsing pdu-faceplate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8906,6 +9976,7 @@ description: Result of parsing pdu-faceplate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeVoid", "start": 0, "type": "Identifier" @@ -8917,6 +9988,7 @@ description: Result of parsing pdu-faceplate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8926,9 +9998,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "supportThickness", "start": 0, "type": "Identifier" @@ -8940,6 +10014,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8951,9 +10026,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -8964,6 +10041,7 @@ description: Result of parsing pdu-faceplate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8971,9 +10049,11 @@ description: Result of parsing pdu-faceplate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeShapes", "start": 0, "type": "Identifier" @@ -8984,11 +10064,13 @@ description: Result of parsing pdu-faceplate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9000,9 +10082,11 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -9021,19 +10105,23 @@ description: Result of parsing pdu-faceplate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -9050,15 +10138,18 @@ description: Result of parsing pdu-faceplate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -9074,12 +10165,14 @@ description: Result of parsing pdu-faceplate.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9093,6 +10186,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9106,6 +10200,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9117,6 +10212,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9128,6 +10224,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9139,6 +10236,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9150,6 +10248,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9162,6 +10261,7 @@ description: Result of parsing pdu-faceplate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/program_memory.snap index 34c2e47aa..1143fca57 100644 --- a/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/program_memory.snap @@ -70,6 +70,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -226,6 +227,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -424,6 +426,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -580,6 +583,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -850,6 +854,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -1180,6 +1185,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -1336,6 +1342,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -1660,6 +1667,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -1816,6 +1824,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -2140,6 +2149,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -2296,6 +2306,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -2620,6 +2631,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -2776,6 +2788,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -3100,6 +3113,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -3256,6 +3270,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -3580,6 +3595,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -3736,6 +3752,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -4125,6 +4142,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -4281,6 +4299,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -4647,6 +4666,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -4803,6 +4823,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -5169,6 +5190,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -5325,6 +5347,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -5691,6 +5714,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -5847,6 +5871,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -6213,6 +6238,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -6369,6 +6395,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -6735,6 +6762,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -6891,6 +6919,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -7531,6 +7560,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -7687,6 +7717,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -8035,6 +8066,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" @@ -8191,6 +8223,7 @@ description: Variables in memory after executing pdu-faceplate.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ast.snap b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ast.snap index 04a9a90b9..dd69c2bb9 100644 --- a/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/pillow-block-bearing/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing pillow-block-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "parameters.kcl" @@ -18,6 +19,7 @@ description: Result of parsing pillow-block-bearing.kcl "selector": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "Glob" }, @@ -28,6 +30,7 @@ description: Result of parsing pillow-block-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "ball-bearing.kcl" @@ -37,6 +40,7 @@ description: Result of parsing pillow-block-bearing.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballBearing", "start": 0, "type": "Identifier" @@ -49,6 +53,7 @@ description: Result of parsing pillow-block-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "block.kcl" @@ -58,6 +63,7 @@ description: Result of parsing pillow-block-bearing.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "block", "start": 0, "type": "Identifier" @@ -74,9 +80,11 @@ description: Result of parsing pillow-block-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ballBearing", "start": 0, "type": "Identifier" @@ -86,6 +94,7 @@ description: Result of parsing pillow-block-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "preComments": [ "", "", @@ -102,9 +111,11 @@ description: Result of parsing pillow-block-bearing.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "block", "start": 0, "type": "Identifier" @@ -114,6 +125,7 @@ description: Result of parsing pillow-block-bearing.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -125,9 +137,11 @@ description: Result of parsing pillow-block-bearing.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -146,19 +160,23 @@ description: Result of parsing pillow-block-bearing.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -174,12 +192,14 @@ description: Result of parsing pillow-block-bearing.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/ast.snap b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/ast.snap index 3d8633cab..51280a92f 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "parameters.kcl" @@ -18,6 +19,7 @@ description: Result of parsing pipe-flange-assembly.kcl "selector": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "Glob" }, @@ -28,6 +30,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "9472k188-gasket.kcl" @@ -42,6 +45,7 @@ description: Result of parsing pipe-flange-assembly.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gasket", "start": 0, "type": "Identifier" @@ -54,6 +58,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "68095k348-flange.kcl" @@ -65,9 +70,11 @@ description: Result of parsing pipe-flange-assembly.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flange", "start": 0, "type": "Identifier" @@ -84,6 +91,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "98017a257-washer.kcl" @@ -95,9 +103,11 @@ description: Result of parsing pipe-flange-assembly.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "washer", "start": 0, "type": "Identifier" @@ -114,6 +124,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "91251a404-bolt.kcl" @@ -125,9 +136,11 @@ description: Result of parsing pipe-flange-assembly.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bolt", "start": 0, "type": "Identifier" @@ -144,6 +157,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "95479a127-hex-nut.kcl" @@ -155,9 +169,11 @@ description: Result of parsing pipe-flange-assembly.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexNut", "start": 0, "type": "Identifier" @@ -174,6 +190,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "1120t74-pipe.kcl" @@ -185,9 +202,11 @@ description: Result of parsing pipe-flange-assembly.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipe", "start": 0, "type": "Identifier" @@ -205,13 +224,16 @@ description: Result of parsing pipe-flange-assembly.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flange", "start": 0, "type": "Identifier" @@ -222,11 +244,13 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -242,13 +266,16 @@ description: Result of parsing pipe-flange-assembly.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flange", "start": 0, "type": "Identifier" @@ -259,6 +286,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -271,6 +299,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -281,6 +310,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -293,6 +323,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -305,6 +336,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -316,6 +348,7 @@ description: Result of parsing pipe-flange-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -326,6 +359,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -333,6 +367,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -348,9 +383,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -361,6 +398,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -373,6 +411,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -380,6 +419,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -395,6 +435,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -402,6 +443,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -417,6 +459,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -431,9 +474,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBackHeight", "start": 0, "type": "Identifier" @@ -443,10 +488,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -460,14 +507,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gasketThickness", "start": 0, "type": "Identifier" @@ -487,9 +537,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -500,6 +552,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -508,12 +561,14 @@ description: Result of parsing pipe-flange-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -530,6 +585,7 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -543,9 +599,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gasket", "start": 0, "type": "Identifier" @@ -562,6 +620,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -569,6 +628,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -584,6 +644,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -591,6 +652,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -606,6 +668,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -618,9 +681,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBackHeight", "start": 0, "type": "Identifier" @@ -632,19 +697,23 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gasketThickness", "start": 0, "type": "Identifier" @@ -664,9 +733,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -677,6 +748,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -685,12 +757,14 @@ description: Result of parsing pipe-flange-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -707,6 +781,7 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -717,13 +792,16 @@ description: Result of parsing pipe-flange-assembly.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "washer", "start": 0, "type": "Identifier" @@ -734,6 +812,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -746,6 +825,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -757,9 +837,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingHolePlacementDiameter", "start": 0, "type": "Identifier" @@ -769,10 +851,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -792,6 +876,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -799,6 +884,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -814,6 +900,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -822,9 +909,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBaseThickness", "start": 0, "type": "Identifier" @@ -840,9 +929,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -853,6 +944,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -865,6 +957,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -872,6 +965,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -887,6 +981,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -897,6 +992,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -909,6 +1005,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -921,6 +1018,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -932,6 +1030,7 @@ description: Result of parsing pipe-flange-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -942,6 +1041,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -952,6 +1052,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -964,6 +1065,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -976,6 +1078,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -987,6 +1090,7 @@ description: Result of parsing pipe-flange-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -997,6 +1101,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1004,6 +1109,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1019,6 +1125,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1026,6 +1133,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -1038,9 +1146,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -1051,12 +1161,14 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1069,6 +1181,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1076,6 +1189,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1091,6 +1205,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -1112,9 +1227,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBaseThickness", "start": 0, "type": "Identifier" @@ -1124,10 +1241,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1141,6 +1260,7 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1149,9 +1269,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBackHeight", "start": 0, "type": "Identifier" @@ -1161,10 +1283,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1182,14 +1306,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gasketThickness", "start": 0, "type": "Identifier" @@ -1203,14 +1330,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "washerThickness", "start": 0, "type": "Identifier" @@ -1226,6 +1356,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1237,6 +1368,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1247,6 +1379,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1259,6 +1392,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1271,6 +1405,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1282,6 +1417,7 @@ description: Result of parsing pipe-flange-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1292,9 +1428,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -1305,12 +1443,14 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1319,12 +1459,14 @@ description: Result of parsing pipe-flange-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1341,6 +1483,7 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1351,13 +1494,16 @@ description: Result of parsing pipe-flange-assembly.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bolt", "start": 0, "type": "Identifier" @@ -1368,6 +1514,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1380,6 +1527,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1391,9 +1539,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingHolePlacementDiameter", "start": 0, "type": "Identifier" @@ -1403,10 +1553,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1426,6 +1578,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1433,6 +1586,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1448,6 +1602,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1459,9 +1614,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBaseThickness", "start": 0, "type": "Identifier" @@ -1471,14 +1628,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "washerThickness", "start": 0, "type": "Identifier" @@ -1498,9 +1658,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1511,6 +1673,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1523,6 +1686,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -1530,6 +1694,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1545,6 +1710,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -1552,6 +1718,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1567,6 +1734,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -1574,6 +1742,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1589,9 +1758,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -1602,6 +1773,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1614,6 +1786,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1621,6 +1794,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1636,6 +1810,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1646,6 +1821,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1658,6 +1834,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1670,6 +1847,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1681,6 +1859,7 @@ description: Result of parsing pipe-flange-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1691,6 +1870,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1701,6 +1881,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1713,6 +1894,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1725,6 +1907,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1736,6 +1919,7 @@ description: Result of parsing pipe-flange-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1746,6 +1930,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1753,6 +1938,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1768,6 +1954,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1775,6 +1962,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -1787,9 +1975,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -1800,12 +1990,14 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1814,12 +2006,14 @@ description: Result of parsing pipe-flange-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1836,6 +2030,7 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1846,13 +2041,16 @@ description: Result of parsing pipe-flange-assembly.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexNut", "start": 0, "type": "Identifier" @@ -1863,6 +2061,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1875,6 +2074,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1886,9 +2086,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingHolePlacementDiameter", "start": 0, "type": "Identifier" @@ -1898,10 +2100,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1921,6 +2125,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1928,6 +2133,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1943,6 +2149,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1967,9 +2174,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBackHeight", "start": 0, "type": "Identifier" @@ -1979,10 +2188,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1996,14 +2207,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gasketThickness", "start": 0, "type": "Identifier" @@ -2017,14 +2231,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBaseThickness", "start": 0, "type": "Identifier" @@ -2038,14 +2255,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "washerThickness", "start": 0, "type": "Identifier" @@ -2059,14 +2279,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexNutThickness", "start": 0, "type": "Identifier" @@ -2082,6 +2305,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2093,9 +2317,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -2106,6 +2332,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2118,6 +2345,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2125,6 +2353,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2140,6 +2369,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2150,6 +2380,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2162,6 +2393,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2174,6 +2406,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2185,6 +2418,7 @@ description: Result of parsing pipe-flange-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2195,6 +2429,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2205,6 +2440,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2217,6 +2453,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2229,6 +2466,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2240,6 +2478,7 @@ description: Result of parsing pipe-flange-assembly.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2250,6 +2489,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2257,6 +2497,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2272,6 +2513,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2279,6 +2521,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -2291,9 +2534,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -2304,12 +2549,14 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2318,12 +2565,14 @@ description: Result of parsing pipe-flange-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2340,6 +2589,7 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2350,13 +2600,16 @@ description: Result of parsing pipe-flange-assembly.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipe", "start": 0, "type": "Identifier" @@ -2367,6 +2620,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2379,6 +2633,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -2387,6 +2642,7 @@ description: Result of parsing pipe-flange-assembly.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2398,6 +2654,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2409,6 +2666,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2416,6 +2674,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2431,6 +2690,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -2438,6 +2698,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2453,9 +2714,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -2466,12 +2729,14 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2484,6 +2749,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -2491,6 +2757,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2506,6 +2773,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2513,6 +2781,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2528,6 +2797,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -2542,9 +2812,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBaseThickness", "start": 0, "type": "Identifier" @@ -2554,14 +2826,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeFrontHeight", "start": 0, "type": "Identifier" @@ -2575,10 +2850,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2598,6 +2875,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "global", "start": 0, "type": "Identifier" @@ -2605,6 +2883,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2617,9 +2896,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -2630,12 +2911,14 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2644,10 +2927,12 @@ description: Result of parsing pipe-flange-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2658,13 +2943,16 @@ description: Result of parsing pipe-flange-assembly.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipe", "start": 0, "type": "Identifier" @@ -2675,6 +2963,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2687,6 +2976,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -2694,6 +2984,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2709,6 +3000,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2716,6 +3008,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2731,6 +3024,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -2738,6 +3032,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2753,9 +3048,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -2766,12 +3063,14 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2784,6 +3083,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -2791,6 +3091,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2806,6 +3107,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2813,6 +3115,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2828,6 +3131,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -2852,9 +3156,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBackHeight", "start": 0, "type": "Identifier" @@ -2864,10 +3170,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2881,14 +3189,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gasketThickness", "start": 0, "type": "Identifier" @@ -2902,14 +3213,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeBaseThickness", "start": 0, "type": "Identifier" @@ -2923,14 +3237,17 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeFrontHeight", "start": 0, "type": "Identifier" @@ -2944,10 +3261,12 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2963,6 +3282,7 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2974,6 +3294,7 @@ description: Result of parsing pipe-flange-assembly.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "global", "start": 0, "type": "Identifier" @@ -2981,6 +3302,7 @@ description: Result of parsing pipe-flange-assembly.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2993,9 +3315,11 @@ description: Result of parsing pipe-flange-assembly.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -3006,12 +3330,14 @@ description: Result of parsing pipe-flange-assembly.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3020,10 +3346,12 @@ description: Result of parsing pipe-flange-assembly.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3035,9 +3363,11 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3056,19 +3386,23 @@ description: Result of parsing pipe-flange-assembly.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -3085,15 +3419,18 @@ description: Result of parsing pipe-flange-assembly.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3109,12 +3446,14 @@ description: Result of parsing pipe-flange-assembly.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "13": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3127,6 +3466,7 @@ description: Result of parsing pipe-flange-assembly.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/pipe-with-bend/ast.snap b/rust/kcl-lib/tests/kcl_samples/pipe-with-bend/ast.snap index 41dfd09dd..2000e2028 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe-with-bend/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe-with-bend/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing pipe-with-bend.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing pipe-with-bend.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing pipe-with-bend.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing pipe-with-bend.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerDiameter", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing pipe-with-bend.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing pipe-with-bend.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing pipe-with-bend.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing pipe-with-bend.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing pipe-with-bend.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing pipe-with-bend.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing pipe-with-bend.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing pipe-with-bend.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,18 +164,22 @@ description: Result of parsing pipe-with-bend.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -170,6 +190,7 @@ description: Result of parsing pipe-with-bend.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -177,9 +198,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -190,11 +213,13 @@ description: Result of parsing pipe-with-bend.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -212,6 +237,7 @@ description: Result of parsing pipe-with-bend.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerProfile", "start": 0, "type": "Identifier" @@ -223,6 +249,7 @@ description: Result of parsing pipe-with-bend.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -234,9 +261,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -249,6 +278,7 @@ description: Result of parsing pipe-with-bend.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -260,6 +290,7 @@ description: Result of parsing pipe-with-bend.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -270,6 +301,7 @@ description: Result of parsing pipe-with-bend.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -281,9 +313,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerDiameter", "start": 0, "type": "Identifier" @@ -293,10 +327,12 @@ description: Result of parsing pipe-with-bend.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -316,9 +352,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -329,6 +367,7 @@ description: Result of parsing pipe-with-bend.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -336,9 +375,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -349,11 +390,13 @@ description: Result of parsing pipe-with-bend.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -371,6 +414,7 @@ description: Result of parsing pipe-with-bend.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerProfile", "start": 0, "type": "Identifier" @@ -382,6 +426,7 @@ description: Result of parsing pipe-with-bend.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -393,9 +438,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -408,6 +455,7 @@ description: Result of parsing pipe-with-bend.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -419,6 +467,7 @@ description: Result of parsing pipe-with-bend.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -429,6 +478,7 @@ description: Result of parsing pipe-with-bend.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -440,9 +490,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDiameter", "start": 0, "type": "Identifier" @@ -452,10 +504,12 @@ description: Result of parsing pipe-with-bend.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -475,9 +529,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -488,6 +544,7 @@ description: Result of parsing pipe-with-bend.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -495,9 +552,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -508,11 +567,13 @@ description: Result of parsing pipe-with-bend.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -530,6 +591,7 @@ description: Result of parsing pipe-with-bend.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeProfile", "start": 0, "type": "Identifier" @@ -540,9 +602,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerProfile", "start": 0, "type": "Identifier" @@ -559,6 +623,7 @@ description: Result of parsing pipe-with-bend.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -567,9 +632,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerProfile", "start": 0, "type": "Identifier" @@ -585,9 +652,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -598,6 +667,7 @@ description: Result of parsing pipe-with-bend.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -606,12 +676,14 @@ description: Result of parsing pipe-with-bend.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -628,11 +700,13 @@ description: Result of parsing pipe-with-bend.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -650,6 +724,7 @@ description: Result of parsing pipe-with-bend.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipe", "start": 0, "type": "Identifier" @@ -661,6 +736,7 @@ description: Result of parsing pipe-with-bend.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -669,9 +745,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -687,6 +765,7 @@ description: Result of parsing pipe-with-bend.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -695,9 +774,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -713,9 +794,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -726,6 +809,7 @@ description: Result of parsing pipe-with-bend.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -733,9 +817,11 @@ description: Result of parsing pipe-with-bend.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeProfile", "start": 0, "type": "Identifier" @@ -746,11 +832,13 @@ description: Result of parsing pipe-with-bend.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -762,9 +850,11 @@ description: Result of parsing pipe-with-bend.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -783,19 +873,23 @@ description: Result of parsing pipe-with-bend.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -812,15 +906,18 @@ description: Result of parsing pipe-with-bend.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -836,12 +933,14 @@ description: Result of parsing pipe-with-bend.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/pipe/ast.snap b/rust/kcl-lib/tests/kcl_samples/pipe/ast.snap index 2cfd4ff4c..ff4455e6d 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing pipe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeInnerDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing pipe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.0", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing pipe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing pipe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeOuterDiameter", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing pipe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.375", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing pipe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing pipe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeLength", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing pipe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing pipe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing pipe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeBase", "start": 0, "type": "Identifier" @@ -122,13 +135,16 @@ description: Result of parsing pipe.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -139,6 +155,7 @@ description: Result of parsing pipe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -146,9 +163,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -166,6 +185,7 @@ description: Result of parsing pipe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing pipe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -188,6 +209,7 @@ description: Result of parsing pipe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -199,6 +221,7 @@ description: Result of parsing pipe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -209,6 +232,7 @@ description: Result of parsing pipe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -220,9 +244,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeOuterDiameter", "start": 0, "type": "Identifier" @@ -232,10 +258,12 @@ description: Result of parsing pipe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -255,9 +283,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -268,12 +298,14 @@ description: Result of parsing pipe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -286,6 +318,7 @@ description: Result of parsing pipe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -294,9 +327,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeLength", "start": 0, "type": "Identifier" @@ -312,9 +347,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -325,12 +362,14 @@ description: Result of parsing pipe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -339,12 +378,14 @@ description: Result of parsing pipe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -361,11 +402,13 @@ description: Result of parsing pipe.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -383,6 +426,7 @@ description: Result of parsing pipe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipe", "start": 0, "type": "Identifier" @@ -396,6 +440,7 @@ description: Result of parsing pipe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -404,9 +449,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -422,9 +469,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -435,6 +484,7 @@ description: Result of parsing pipe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -442,9 +492,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeBase", "start": 0, "type": "Identifier" @@ -462,6 +514,7 @@ description: Result of parsing pipe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -472,6 +525,7 @@ description: Result of parsing pipe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -484,6 +538,7 @@ description: Result of parsing pipe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -495,6 +550,7 @@ description: Result of parsing pipe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -505,6 +561,7 @@ description: Result of parsing pipe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -516,9 +573,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeInnerDiameter", "start": 0, "type": "Identifier" @@ -528,10 +587,12 @@ description: Result of parsing pipe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -551,9 +612,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -564,6 +627,7 @@ description: Result of parsing pipe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -576,6 +640,7 @@ description: Result of parsing pipe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -585,9 +650,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pipeLength", "start": 0, "type": "Identifier" @@ -599,6 +666,7 @@ description: Result of parsing pipe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -610,9 +678,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -623,12 +693,14 @@ description: Result of parsing pipe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -641,6 +713,7 @@ description: Result of parsing pipe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -648,6 +721,7 @@ description: Result of parsing pipe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#a24ed0\"", "start": 0, "type": "Literal", @@ -660,9 +734,11 @@ description: Result of parsing pipe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -673,6 +749,7 @@ description: Result of parsing pipe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -681,15 +758,18 @@ description: Result of parsing pipe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -701,9 +781,11 @@ description: Result of parsing pipe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -722,19 +804,23 @@ description: Result of parsing pipe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -751,15 +837,18 @@ description: Result of parsing pipe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -775,12 +864,14 @@ description: Result of parsing pipe.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/poopy-shoe/ast.snap b/rust/kcl-lib/tests/kcl_samples/poopy-shoe/ast.snap index 373b4e736..2c0223a6c 100644 --- a/rust/kcl-lib/tests/kcl_samples/poopy-shoe/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/poopy-shoe/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.125", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.050", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "backLength", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exitHeight", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontLength", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -254,13 +283,16 @@ description: Result of parsing poopy-shoe.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -271,6 +303,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -279,9 +312,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -293,6 +328,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -306,6 +342,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -320,9 +357,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -332,10 +371,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -352,6 +393,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -363,6 +405,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -373,9 +416,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -386,6 +431,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -398,6 +444,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -409,9 +456,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -421,10 +470,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -444,9 +495,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -457,6 +510,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -469,6 +523,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -476,6 +531,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -491,6 +547,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -499,9 +556,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -517,6 +576,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -524,6 +584,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -535,9 +596,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -548,6 +611,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -560,6 +624,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -568,9 +633,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -586,9 +653,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -599,6 +668,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -611,6 +681,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -620,9 +691,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -634,6 +707,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -645,9 +719,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -658,6 +734,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -670,18 +747,22 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -692,6 +773,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -699,9 +781,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -718,9 +802,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -731,6 +817,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -743,6 +830,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -750,6 +838,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -765,6 +854,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -779,9 +869,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -791,10 +883,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -808,6 +902,7 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -816,9 +911,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -828,10 +925,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -855,9 +954,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -868,6 +969,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -880,6 +982,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -889,9 +992,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -903,6 +1008,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -914,9 +1020,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -927,6 +1035,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -939,6 +1048,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -949,6 +1059,7 @@ description: Result of parsing poopy-shoe.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -958,10 +1069,12 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -981,6 +1094,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -989,9 +1103,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1007,9 +1123,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1020,6 +1138,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1032,6 +1151,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1040,9 +1160,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1058,9 +1180,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1071,6 +1195,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1083,6 +1208,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1090,6 +1216,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1105,9 +1232,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1118,6 +1247,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1130,18 +1260,22 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1152,6 +1286,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1159,9 +1294,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1178,9 +1315,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1191,6 +1330,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1203,6 +1343,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1213,6 +1354,7 @@ description: Result of parsing poopy-shoe.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1222,10 +1364,12 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -1245,6 +1389,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -1252,6 +1397,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1267,9 +1413,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1280,19 +1428,23 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1303,6 +1455,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1311,15 +1464,18 @@ description: Result of parsing poopy-shoe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1337,6 +1493,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -1348,6 +1505,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1355,6 +1513,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1370,6 +1529,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1377,6 +1537,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1384,10 +1545,12 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1396,6 +1559,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1408,6 +1572,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1419,6 +1584,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1430,10 +1596,12 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1442,6 +1610,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1458,9 +1627,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1470,10 +1641,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".0001", "start": 0, "type": "Literal", @@ -1489,6 +1662,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1505,9 +1679,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1518,6 +1694,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1525,9 +1702,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -1538,11 +1717,13 @@ description: Result of parsing poopy-shoe.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1555,6 +1736,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1562,13 +1744,16 @@ description: Result of parsing poopy-shoe.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1579,6 +1764,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1587,9 +1773,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1601,6 +1789,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1614,6 +1803,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1628,9 +1818,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -1640,10 +1832,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1660,6 +1854,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1671,6 +1866,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1681,9 +1877,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1694,6 +1892,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1706,6 +1905,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1717,9 +1917,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1729,10 +1931,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1752,9 +1956,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1765,6 +1971,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1777,6 +1984,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1784,6 +1992,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -1799,6 +2008,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -1807,9 +2017,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -1825,6 +2037,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1832,6 +2045,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1843,9 +2057,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1856,6 +2072,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1868,6 +2085,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1876,9 +2094,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1894,9 +2114,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1907,6 +2129,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1919,6 +2142,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1928,9 +2152,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -1942,6 +2168,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1953,9 +2180,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1966,6 +2195,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1978,18 +2208,22 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -2000,6 +2234,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2007,9 +2242,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2026,9 +2263,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2039,6 +2278,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2051,6 +2291,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2058,6 +2299,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -2073,6 +2315,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -2087,9 +2330,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -2099,10 +2344,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2116,6 +2363,7 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2124,9 +2372,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2136,10 +2386,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2163,9 +2415,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2176,6 +2430,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2188,6 +2443,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2197,9 +2453,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2211,6 +2469,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2222,9 +2481,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2235,6 +2496,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2247,6 +2509,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2257,6 +2520,7 @@ description: Result of parsing poopy-shoe.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2266,10 +2530,12 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -2289,6 +2555,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -2297,9 +2564,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2315,9 +2584,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2328,6 +2599,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2340,6 +2612,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2348,9 +2621,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2366,9 +2641,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2379,6 +2656,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2391,6 +2669,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2398,6 +2677,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2413,9 +2693,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2426,6 +2708,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2438,18 +2721,22 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -2460,6 +2747,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2467,9 +2755,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -2486,9 +2776,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2499,6 +2791,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2511,6 +2804,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2521,6 +2815,7 @@ description: Result of parsing poopy-shoe.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2530,10 +2825,12 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -2553,6 +2850,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -2560,6 +2858,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2575,9 +2874,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2588,19 +2889,23 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2611,6 +2916,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2623,6 +2929,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2634,9 +2941,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "backLength", "start": 0, "type": "Identifier" @@ -2646,14 +2955,17 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2673,9 +2985,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2686,6 +3000,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2694,15 +3009,18 @@ description: Result of parsing poopy-shoe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2715,6 +3033,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "customPlane", "start": 0, "type": "Identifier" @@ -2722,6 +3041,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2729,15 +3049,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2745,15 +3068,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2770,10 +3096,12 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2787,9 +3115,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -2799,10 +3129,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2816,6 +3148,7 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2824,9 +3157,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -2836,10 +3171,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2859,6 +3196,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2871,15 +3209,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2902,15 +3243,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2918,15 +3262,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2943,15 +3290,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2968,15 +3318,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2999,15 +3352,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -3015,15 +3371,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3040,15 +3399,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3065,15 +3427,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3095,11 +3460,13 @@ description: Result of parsing poopy-shoe.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3112,6 +3479,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -3119,13 +3487,16 @@ description: Result of parsing poopy-shoe.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3136,6 +3507,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3143,9 +3515,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "customPlane", "start": 0, "type": "Identifier" @@ -3163,6 +3537,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3173,6 +3548,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3185,6 +3561,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3196,6 +3573,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3206,9 +3584,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3219,6 +3599,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3231,6 +3612,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3238,6 +3620,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -3253,6 +3636,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3261,9 +3645,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3279,9 +3665,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3292,6 +3680,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3304,6 +3693,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3311,6 +3701,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -3326,6 +3717,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -3333,6 +3725,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3348,9 +3741,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3361,19 +3756,23 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3384,6 +3783,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3396,6 +3796,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3404,9 +3805,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3422,9 +3825,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3435,6 +3840,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3443,12 +3849,14 @@ description: Result of parsing poopy-shoe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3465,11 +3873,13 @@ description: Result of parsing poopy-shoe.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3482,6 +3892,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -3495,6 +3906,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3503,9 +3915,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -3521,9 +3935,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3534,6 +3950,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3541,9 +3958,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -3561,6 +3980,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3571,6 +3991,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3583,6 +4004,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3594,6 +4016,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3604,9 +4027,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3617,6 +4042,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3629,6 +4055,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3637,9 +4064,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3655,9 +4084,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3668,6 +4099,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3680,6 +4112,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3688,9 +4121,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3706,9 +4141,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3719,6 +4156,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3731,18 +4169,22 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -3753,6 +4195,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3760,9 +4203,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -3779,9 +4224,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3792,6 +4239,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3804,6 +4252,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3814,6 +4263,7 @@ description: Result of parsing poopy-shoe.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -3823,10 +4273,12 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -3846,6 +4298,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -3860,9 +4313,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -3872,10 +4327,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3889,6 +4346,7 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3897,9 +4355,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3909,10 +4369,12 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3936,9 +4398,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3949,6 +4413,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3961,6 +4426,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3969,9 +4435,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -3987,9 +4455,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4000,6 +4470,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4012,6 +4483,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4019,6 +4491,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -4034,18 +4507,22 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -4056,6 +4533,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4063,9 +4541,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -4082,9 +4562,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4095,6 +4577,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4107,6 +4590,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4115,9 +4599,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -4133,9 +4619,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4146,6 +4634,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4158,6 +4647,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4166,9 +4656,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4184,9 +4676,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4197,6 +4691,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4209,6 +4704,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4229,9 +4725,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontLength", "start": 0, "type": "Identifier" @@ -4241,14 +4739,17 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -4262,10 +4763,12 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4279,14 +4782,17 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -4307,9 +4813,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -4319,6 +4827,7 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4330,9 +4839,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -4342,14 +4853,17 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exitHeight", "start": 0, "type": "Identifier" @@ -4363,10 +4877,12 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4386,6 +4902,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4396,9 +4913,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4409,6 +4928,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4421,6 +4941,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4432,9 +4953,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontLength", "start": 0, "type": "Identifier" @@ -4448,9 +4971,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exitHeight", "start": 0, "type": "Identifier" @@ -4462,6 +4987,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4472,9 +4998,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4485,6 +5013,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4497,6 +5026,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4504,6 +5034,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4519,9 +5050,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4532,6 +5065,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4544,6 +5078,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4551,6 +5086,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4562,9 +5098,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4575,6 +5113,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4587,6 +5126,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4595,9 +5135,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4613,9 +5155,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4626,6 +5170,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4634,15 +5179,18 @@ description: Result of parsing poopy-shoe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4655,6 +5203,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "customPlane2", "start": 0, "type": "Identifier" @@ -4662,6 +5211,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -4669,15 +5219,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -4685,10 +5238,12 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -4698,6 +5253,7 @@ description: Result of parsing poopy-shoe.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4709,11 +5265,13 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -4725,9 +5283,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "backLength", "start": 0, "type": "Identifier" @@ -4737,14 +5297,17 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -4758,14 +5321,17 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -4790,15 +5356,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4815,15 +5384,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4846,15 +5418,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -4862,15 +5437,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4887,15 +5465,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4912,15 +5493,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4943,15 +5527,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -4959,15 +5546,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4984,15 +5574,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5009,15 +5602,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5039,11 +5635,13 @@ description: Result of parsing poopy-shoe.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5056,6 +5654,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" @@ -5063,13 +5662,16 @@ description: Result of parsing poopy-shoe.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5080,6 +5682,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5087,9 +5690,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "customPlane2", "start": 0, "type": "Identifier" @@ -5107,6 +5712,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5117,6 +5723,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5129,6 +5736,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5140,6 +5748,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5150,9 +5759,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5163,6 +5774,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5175,6 +5787,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5183,9 +5796,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -5201,9 +5816,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5214,6 +5831,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5226,6 +5844,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5235,9 +5854,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -5249,6 +5870,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5260,9 +5882,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5273,6 +5897,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5285,6 +5910,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5299,6 +5925,7 @@ description: Result of parsing poopy-shoe.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5310,11 +5937,13 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -5329,9 +5958,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontLength", "start": 0, "type": "Identifier" @@ -5341,14 +5972,17 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -5362,10 +5996,12 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5379,14 +6015,17 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -5411,9 +6050,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -5423,6 +6064,7 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5434,9 +6076,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -5446,14 +6090,17 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exitHeight", "start": 0, "type": "Identifier" @@ -5467,10 +6114,12 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5490,6 +6139,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5500,9 +6150,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5513,6 +6165,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5525,6 +6178,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5537,9 +6191,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontLength", "start": 0, "type": "Identifier" @@ -5551,6 +6207,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5560,9 +6217,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exitHeight", "start": 0, "type": "Identifier" @@ -5574,6 +6233,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5584,9 +6244,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5597,6 +6259,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5609,6 +6272,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5616,6 +6280,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5631,6 +6296,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5638,6 +6304,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5649,9 +6316,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5662,19 +6331,23 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5685,6 +6358,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5697,6 +6371,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5705,9 +6380,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -5723,9 +6400,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5736,6 +6415,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5744,15 +6424,18 @@ description: Result of parsing poopy-shoe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5765,6 +6448,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch006", "start": 0, "type": "Identifier" @@ -5778,6 +6462,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -5786,9 +6471,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -5804,9 +6491,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5817,6 +6506,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5824,9 +6514,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" @@ -5844,6 +6536,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5854,6 +6547,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5870,6 +6564,7 @@ description: Result of parsing poopy-shoe.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5881,11 +6576,13 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -5894,9 +6591,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "backLength", "start": 0, "type": "Identifier" @@ -5906,14 +6605,17 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -5933,6 +6635,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5943,9 +6646,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5956,6 +6661,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5968,6 +6674,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5977,9 +6684,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exitHeight", "start": 0, "type": "Identifier" @@ -5991,6 +6700,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6002,9 +6712,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6015,6 +6727,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6027,6 +6740,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6036,9 +6750,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -6050,6 +6766,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6061,9 +6778,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6074,6 +6793,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6086,6 +6806,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6093,6 +6814,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6108,9 +6830,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6121,19 +6845,23 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -6144,6 +6872,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6156,6 +6885,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6164,9 +6894,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6182,9 +6914,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6195,6 +6929,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6203,15 +6938,18 @@ description: Result of parsing poopy-shoe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6224,6 +6962,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch007", "start": 0, "type": "Identifier" @@ -6237,6 +6976,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6245,9 +6985,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -6263,9 +7005,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6276,6 +7020,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6283,9 +7028,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -6303,6 +7050,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6313,6 +7061,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6325,6 +7074,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6336,6 +7086,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6346,9 +7097,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6359,6 +7112,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6371,6 +7125,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6379,9 +7134,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6397,9 +7154,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6410,6 +7169,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6422,6 +7182,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6430,9 +7191,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -6448,9 +7211,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6461,6 +7226,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6473,6 +7239,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6480,6 +7247,7 @@ description: Result of parsing poopy-shoe.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6495,9 +7263,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6508,19 +7278,23 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -6531,6 +7305,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6543,6 +7318,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6554,9 +7330,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -6566,6 +7344,7 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6573,6 +7352,7 @@ description: Result of parsing poopy-shoe.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6582,14 +7362,17 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6613,9 +7396,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6626,6 +7411,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6634,15 +7420,18 @@ description: Result of parsing poopy-shoe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6655,6 +7444,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "customPlane3", "start": 0, "type": "Identifier" @@ -6662,6 +7452,7 @@ description: Result of parsing poopy-shoe.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6669,15 +7460,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6685,10 +7479,12 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -6698,6 +7494,7 @@ description: Result of parsing poopy-shoe.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6709,11 +7506,13 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -6725,9 +7524,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "backLength", "start": 0, "type": "Identifier" @@ -6737,14 +7538,17 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -6758,14 +7562,17 @@ description: Result of parsing poopy-shoe.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -6790,15 +7597,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6815,19 +7625,23 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -6850,15 +7664,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6866,15 +7683,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6891,16 +7711,19 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6912,6 +7735,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6924,15 +7748,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6955,15 +7782,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -6971,15 +7801,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6996,15 +7829,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7021,15 +7857,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7051,11 +7890,13 @@ description: Result of parsing poopy-shoe.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7068,6 +7909,7 @@ description: Result of parsing poopy-shoe.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch008", "start": 0, "type": "Identifier" @@ -7075,13 +7917,16 @@ description: Result of parsing poopy-shoe.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -7092,6 +7937,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7099,9 +7945,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "customPlane3", "start": 0, "type": "Identifier" @@ -7119,6 +7967,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -7130,9 +7979,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -7146,9 +7997,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -7160,6 +8013,7 @@ description: Result of parsing poopy-shoe.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7170,9 +8024,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -7183,6 +8039,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7195,6 +8052,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7203,9 +8061,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontLength", "start": 0, "type": "Identifier" @@ -7221,9 +8081,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7234,6 +8096,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7246,6 +8109,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7257,9 +8121,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallsWidth", "start": 0, "type": "Identifier" @@ -7269,6 +8135,7 @@ description: Result of parsing poopy-shoe.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -7276,6 +8143,7 @@ description: Result of parsing poopy-shoe.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7285,14 +8153,17 @@ description: Result of parsing poopy-shoe.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -7316,9 +8187,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7329,6 +8202,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7341,6 +8215,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7349,9 +8224,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -7367,9 +8244,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7380,19 +8259,23 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -7403,6 +8286,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7415,6 +8299,7 @@ description: Result of parsing poopy-shoe.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7424,9 +8309,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -7438,6 +8325,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7449,9 +8337,11 @@ description: Result of parsing poopy-shoe.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7462,6 +8352,7 @@ description: Result of parsing poopy-shoe.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7470,15 +8361,18 @@ description: Result of parsing poopy-shoe.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7490,9 +8384,11 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -7511,19 +8407,23 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -7540,15 +8440,18 @@ description: Result of parsing poopy-shoe.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7564,12 +8467,14 @@ description: Result of parsing poopy-shoe.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7581,6 +8486,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7592,6 +8498,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7603,6 +8510,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7614,6 +8522,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7625,6 +8534,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7636,6 +8546,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7648,6 +8559,7 @@ description: Result of parsing poopy-shoe.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/poopy-shoe/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/poopy-shoe/program_memory.snap index cf0ca4a81..98b673d08 100644 --- a/rust/kcl-lib/tests/kcl_samples/poopy-shoe/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/poopy-shoe/program_memory.snap @@ -500,6 +500,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 519, "end": 525, + "moduleId": 0, "start": 519, "type": "TagDeclarator", "value": "seg01" @@ -619,6 +620,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 519, "end": 525, + "moduleId": 0, "start": 519, "type": "TagDeclarator", "value": "seg01" @@ -968,6 +970,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 519, "end": 525, + "moduleId": 0, "start": 519, "type": "TagDeclarator", "value": "seg01" @@ -1273,6 +1276,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 1286, "end": 1292, + "moduleId": 0, "start": 1286, "type": "TagDeclarator", "value": "seg02" @@ -1392,6 +1396,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 1286, "end": 1292, + "moduleId": 0, "start": 1286, "type": "TagDeclarator", "value": "seg02" @@ -1934,6 +1939,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 2912, "end": 2918, + "moduleId": 0, "start": 2912, "type": "TagDeclarator", "value": "seg04" @@ -2176,6 +2182,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 2912, "end": 2918, + "moduleId": 0, "start": 2912, "type": "TagDeclarator", "value": "seg04" @@ -2230,6 +2237,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 1286, "end": 1292, + "moduleId": 0, "start": 1286, "type": "TagDeclarator", "value": "seg02" @@ -2349,6 +2357,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 1286, "end": 1292, + "moduleId": 0, "start": 1286, "type": "TagDeclarator", "value": "seg02" @@ -2725,6 +2734,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 3517, "end": 3523, + "moduleId": 0, "start": 3517, "type": "TagDeclarator", "value": "seg03" @@ -2841,6 +2851,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 3517, "end": 3523, + "moduleId": 0, "start": 3517, "type": "TagDeclarator", "value": "seg03" @@ -3121,6 +3132,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 3517, "end": 3523, + "moduleId": 0, "start": 3517, "type": "TagDeclarator", "value": "seg03" @@ -3237,6 +3249,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 3517, "end": 3523, + "moduleId": 0, "start": 3517, "type": "TagDeclarator", "value": "seg03" @@ -3602,6 +3615,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 2912, "end": 2918, + "moduleId": 0, "start": 2912, "type": "TagDeclarator", "value": "seg04" @@ -3844,6 +3858,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 2912, "end": 2918, + "moduleId": 0, "start": 2912, "type": "TagDeclarator", "value": "seg04" @@ -3898,6 +3913,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 1286, "end": 1292, + "moduleId": 0, "start": 1286, "type": "TagDeclarator", "value": "seg02" @@ -4017,6 +4033,7 @@ description: Variables in memory after executing poopy-shoe.kcl "tag": { "commentStart": 1286, "end": 1292, + "moduleId": 0, "start": 1286, "type": "TagDeclarator", "value": "seg02" diff --git a/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/ast.snap b/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/ast.snap index 68df04fe9..96a2c634d 100644 --- a/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l1", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Create the femur using a series of lofts. Draw the profile for the first loft on the XY plane." ], @@ -49,6 +53,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile1", "start": 0, "type": "Identifier" @@ -89,13 +98,16 @@ description: Result of parsing prosthetic-hip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -106,6 +118,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -113,9 +126,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -133,6 +148,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -144,6 +160,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -155,6 +172,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -168,9 +186,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l1", "start": 0, "type": "Identifier" @@ -182,15 +202,18 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -206,6 +229,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -216,9 +240,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -229,6 +255,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -241,6 +268,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -249,9 +277,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l1", "start": 0, "type": "Identifier" @@ -267,6 +297,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -274,6 +305,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -285,9 +317,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -298,6 +332,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -310,6 +345,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -318,6 +354,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -329,6 +366,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -340,6 +378,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -348,9 +387,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -366,9 +407,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -379,6 +422,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -391,6 +435,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -399,6 +444,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -410,6 +456,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -421,18 +468,22 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -443,6 +494,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -450,9 +502,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -469,9 +523,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -482,6 +538,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -494,6 +551,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -502,6 +560,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -513,6 +572,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -524,6 +584,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -532,9 +593,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r1", "start": 0, "type": "Identifier" @@ -550,9 +613,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -563,6 +628,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -575,6 +641,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -582,6 +649,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -597,19 +665,23 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -620,6 +692,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -627,9 +700,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -642,6 +717,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -653,9 +729,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -666,6 +744,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -678,6 +757,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -686,13 +766,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -703,25 +786,30 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -732,12 +820,14 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -745,6 +835,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -755,9 +846,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -768,19 +861,23 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -791,6 +888,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -799,12 +897,14 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -821,11 +921,13 @@ description: Result of parsing prosthetic-hip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -838,6 +940,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l2", "start": 0, "type": "Identifier" @@ -845,6 +948,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19", "start": 0, "type": "Literal", @@ -854,11 +958,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -871,6 +977,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -878,6 +985,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -887,11 +995,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -904,6 +1014,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile2", "start": 0, "type": "Identifier" @@ -911,13 +1022,16 @@ description: Result of parsing prosthetic-hip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -928,6 +1042,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -938,6 +1053,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -945,6 +1061,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "75", "start": 0, "type": "Literal", @@ -960,9 +1077,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -973,6 +1092,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -980,9 +1100,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1001,6 +1123,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1012,6 +1135,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -1023,6 +1147,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1036,9 +1161,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l2", "start": 0, "type": "Identifier" @@ -1050,15 +1177,18 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1074,6 +1204,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1084,9 +1215,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1097,6 +1230,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1109,6 +1243,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1117,9 +1252,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l2", "start": 0, "type": "Identifier" @@ -1135,6 +1272,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1142,6 +1280,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1153,9 +1292,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1166,6 +1307,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1178,6 +1320,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1186,6 +1329,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -1197,6 +1341,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1208,6 +1353,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1216,9 +1362,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -1234,9 +1382,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1247,6 +1397,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1259,6 +1410,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1267,6 +1419,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -1278,6 +1431,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1289,18 +1443,22 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1311,6 +1469,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1318,9 +1477,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1337,9 +1498,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1350,6 +1513,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1362,6 +1526,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1370,6 +1535,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -1381,6 +1547,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1392,6 +1559,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1400,9 +1568,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r2", "start": 0, "type": "Identifier" @@ -1418,9 +1588,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1431,6 +1603,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1443,6 +1616,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1450,6 +1624,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -1465,19 +1640,23 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1488,6 +1667,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1495,9 +1675,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1510,6 +1692,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1521,9 +1704,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1534,6 +1719,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1546,6 +1732,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1554,13 +1741,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1571,25 +1761,30 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1600,12 +1795,14 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1613,6 +1810,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1623,9 +1821,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1636,19 +1836,23 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1659,6 +1863,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1667,12 +1872,14 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1689,11 +1896,13 @@ description: Result of parsing prosthetic-hip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1706,6 +1915,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p3Z", "start": 0, "type": "Identifier" @@ -1713,6 +1923,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "110", "start": 0, "type": "Literal", @@ -1722,11 +1933,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1739,6 +1952,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p3A", "start": 0, "type": "Identifier" @@ -1746,6 +1960,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -1755,11 +1970,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1772,6 +1989,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l3", "start": 0, "type": "Identifier" @@ -1779,6 +1997,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "32", "start": 0, "type": "Literal", @@ -1788,11 +2007,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1805,6 +2026,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r3", "start": 0, "type": "Identifier" @@ -1812,6 +2034,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1821,11 +2044,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1838,6 +2063,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile3", "start": 0, "type": "Identifier" @@ -1845,13 +2071,16 @@ description: Result of parsing prosthetic-hip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1862,6 +2091,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1869,9 +2099,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1889,6 +2121,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1900,6 +2133,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.5", "start": 0, "type": "Literal", @@ -1911,6 +2145,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1924,9 +2159,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l3", "start": 0, "type": "Identifier" @@ -1938,15 +2175,18 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1962,6 +2202,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1972,9 +2213,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1985,6 +2228,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1997,6 +2241,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2005,9 +2250,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l3", "start": 0, "type": "Identifier" @@ -2023,6 +2270,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2030,6 +2278,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2041,9 +2290,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2054,6 +2305,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2066,6 +2318,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2074,6 +2327,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -2085,6 +2339,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2096,6 +2351,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2104,9 +2360,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r3", "start": 0, "type": "Identifier" @@ -2122,9 +2380,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2135,6 +2395,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2147,6 +2408,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2155,6 +2417,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -2166,6 +2429,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2177,18 +2441,22 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2199,6 +2467,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2206,9 +2475,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2225,9 +2496,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2238,6 +2511,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2250,6 +2524,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2258,6 +2533,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -2269,6 +2545,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2280,6 +2557,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2288,9 +2566,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r3", "start": 0, "type": "Identifier" @@ -2306,9 +2586,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2319,6 +2601,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2331,6 +2614,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2338,6 +2622,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -2353,19 +2638,23 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2376,6 +2665,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2383,9 +2673,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2398,6 +2690,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2409,9 +2702,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2422,6 +2717,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2434,6 +2730,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2442,13 +2739,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2459,25 +2759,30 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2488,12 +2793,14 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2501,6 +2808,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2511,9 +2819,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2524,19 +2834,23 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2547,6 +2861,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2559,6 +2874,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -2567,9 +2883,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p3Z", "start": 0, "type": "Identifier" @@ -2585,9 +2903,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -2598,6 +2918,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2610,6 +2931,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2619,9 +2941,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p3A", "start": 0, "type": "Identifier" @@ -2633,6 +2957,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2644,9 +2969,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -2657,6 +2984,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2665,12 +2993,14 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "10": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2687,11 +3017,13 @@ description: Result of parsing prosthetic-hip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2704,6 +3036,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p4Z", "start": 0, "type": "Identifier" @@ -2711,6 +3044,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "130", "start": 0, "type": "Literal", @@ -2720,11 +3054,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2737,6 +3073,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p4A", "start": 0, "type": "Identifier" @@ -2744,6 +3081,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36.5", "start": 0, "type": "Literal", @@ -2753,11 +3091,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2770,6 +3110,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l4", "start": 0, "type": "Identifier" @@ -2777,6 +3118,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -2786,11 +3128,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2803,6 +3147,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r4", "start": 0, "type": "Identifier" @@ -2810,6 +3155,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2819,11 +3165,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2836,6 +3184,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile4", "start": 0, "type": "Identifier" @@ -2843,13 +3192,16 @@ description: Result of parsing prosthetic-hip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2860,6 +3212,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2867,9 +3220,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2887,6 +3242,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2898,6 +3254,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23", "start": 0, "type": "Literal", @@ -2909,6 +3266,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2922,9 +3280,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l4", "start": 0, "type": "Identifier" @@ -2936,15 +3296,18 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2960,6 +3323,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2970,9 +3334,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2983,6 +3349,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2995,6 +3362,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3003,9 +3371,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l4", "start": 0, "type": "Identifier" @@ -3021,6 +3391,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3028,6 +3399,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3039,9 +3411,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3052,6 +3426,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3064,6 +3439,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3072,6 +3448,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -3083,6 +3460,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3094,6 +3472,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3102,9 +3481,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r4", "start": 0, "type": "Identifier" @@ -3120,9 +3501,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3133,6 +3516,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3145,6 +3529,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3153,6 +3538,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -3164,6 +3550,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3175,18 +3562,22 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3197,6 +3588,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3204,9 +3596,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -3223,9 +3617,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3236,6 +3632,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3248,6 +3645,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3256,6 +3654,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -3267,6 +3666,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3278,6 +3678,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3286,9 +3687,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r4", "start": 0, "type": "Identifier" @@ -3304,9 +3707,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3317,6 +3722,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3329,6 +3735,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3336,6 +3743,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -3351,19 +3759,23 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3374,6 +3786,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3381,9 +3794,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -3396,6 +3811,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3407,9 +3823,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3420,6 +3838,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3432,6 +3851,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3440,13 +3860,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3457,25 +3880,30 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3486,12 +3914,14 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3499,6 +3929,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3509,9 +3940,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3522,19 +3955,23 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3545,6 +3982,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3557,6 +3995,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -3565,9 +4004,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p4Z", "start": 0, "type": "Identifier" @@ -3583,9 +4024,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -3596,6 +4039,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3608,6 +4052,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -3617,9 +4062,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p4A", "start": 0, "type": "Identifier" @@ -3631,6 +4078,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3642,9 +4090,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -3655,6 +4105,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3663,12 +4114,14 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "10": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3685,11 +4138,13 @@ description: Result of parsing prosthetic-hip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3702,6 +4157,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p5Z", "start": 0, "type": "Identifier" @@ -3709,6 +4165,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "140", "start": 0, "type": "Literal", @@ -3718,11 +4175,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3735,6 +4194,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p5A", "start": 0, "type": "Identifier" @@ -3742,6 +4202,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36.5", "start": 0, "type": "Literal", @@ -3751,11 +4212,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3768,6 +4231,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l5", "start": 0, "type": "Identifier" @@ -3775,6 +4239,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.6", "start": 0, "type": "Literal", @@ -3784,11 +4249,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3801,6 +4268,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r5", "start": 0, "type": "Identifier" @@ -3808,6 +4276,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.6", "start": 0, "type": "Literal", @@ -3817,11 +4286,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3834,6 +4305,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile5", "start": 0, "type": "Identifier" @@ -3841,13 +4313,16 @@ description: Result of parsing prosthetic-hip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3858,6 +4333,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3865,9 +4341,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3885,6 +4363,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3896,6 +4375,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19.5", "start": 0, "type": "Literal", @@ -3907,6 +4387,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3920,9 +4401,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l5", "start": 0, "type": "Identifier" @@ -3934,15 +4417,18 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3958,6 +4444,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3968,9 +4455,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3981,6 +4470,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3993,6 +4483,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4001,9 +4492,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l5", "start": 0, "type": "Identifier" @@ -4019,6 +4512,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4026,6 +4520,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4037,9 +4532,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4050,6 +4547,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4062,6 +4560,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4070,6 +4569,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -4081,6 +4581,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4092,6 +4593,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4100,9 +4602,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r5", "start": 0, "type": "Identifier" @@ -4118,9 +4622,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4131,6 +4637,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4143,6 +4650,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4151,6 +4659,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4162,6 +4671,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4173,18 +4683,22 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4195,6 +4709,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4202,9 +4717,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -4221,9 +4738,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4234,6 +4753,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4246,6 +4766,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4254,6 +4775,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -4265,6 +4787,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4276,6 +4799,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4284,9 +4808,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r5", "start": 0, "type": "Identifier" @@ -4302,9 +4828,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4315,6 +4843,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4327,6 +4856,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4334,6 +4864,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4349,19 +4880,23 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4372,6 +4907,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4379,9 +4915,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -4394,6 +4932,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4405,9 +4944,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4418,6 +4959,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4430,6 +4972,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4438,13 +4981,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4455,25 +5001,30 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4484,12 +5035,14 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4497,6 +5050,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4507,9 +5061,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4520,19 +5076,23 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4543,6 +5103,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4555,6 +5116,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -4563,9 +5125,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p5Z", "start": 0, "type": "Identifier" @@ -4581,9 +5145,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -4594,6 +5160,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4606,6 +5173,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -4615,9 +5183,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p5A", "start": 0, "type": "Identifier" @@ -4629,6 +5199,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4640,9 +5211,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -4653,6 +5226,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4661,12 +5235,14 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "10": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4683,11 +5259,13 @@ description: Result of parsing prosthetic-hip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4700,6 +5278,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p6Z", "start": 0, "type": "Identifier" @@ -4707,6 +5286,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "145", "start": 0, "type": "Literal", @@ -4716,11 +5296,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4733,6 +5315,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p6A", "start": 0, "type": "Identifier" @@ -4740,6 +5323,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36.5", "start": 0, "type": "Literal", @@ -4749,11 +5333,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4766,6 +5352,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l6", "start": 0, "type": "Identifier" @@ -4773,6 +5360,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4782,11 +5370,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4799,6 +5389,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r6", "start": 0, "type": "Identifier" @@ -4806,6 +5397,7 @@ description: Result of parsing prosthetic-hip.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4815,11 +5407,13 @@ description: Result of parsing prosthetic-hip.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4832,6 +5426,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile6", "start": 0, "type": "Identifier" @@ -4839,13 +5434,16 @@ description: Result of parsing prosthetic-hip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4856,6 +5454,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4863,9 +5462,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4883,6 +5484,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4894,6 +5496,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.4", "start": 0, "type": "Literal", @@ -4905,6 +5508,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4918,9 +5522,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l6", "start": 0, "type": "Identifier" @@ -4932,15 +5538,18 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4956,6 +5565,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4966,9 +5576,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4979,6 +5591,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4991,6 +5604,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4999,9 +5613,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "l6", "start": 0, "type": "Identifier" @@ -5017,6 +5633,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5024,6 +5641,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5035,9 +5653,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5048,6 +5668,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5060,6 +5681,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5068,6 +5690,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -5079,6 +5702,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5090,6 +5714,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5098,9 +5723,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r6", "start": 0, "type": "Identifier" @@ -5116,9 +5743,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5129,6 +5758,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5141,6 +5771,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5149,6 +5780,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -5160,6 +5792,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5171,18 +5804,22 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -5193,6 +5830,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5200,9 +5838,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg06", "start": 0, "type": "Identifier" @@ -5219,9 +5859,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -5232,6 +5874,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5244,6 +5887,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5252,6 +5896,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -5263,6 +5908,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5274,6 +5920,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5282,9 +5929,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r6", "start": 0, "type": "Identifier" @@ -5300,9 +5949,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5313,6 +5964,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5325,6 +5977,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5332,6 +5985,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -5347,19 +6001,23 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -5370,6 +6028,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5377,9 +6036,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg06", "start": 0, "type": "Identifier" @@ -5392,6 +6053,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5403,9 +6065,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -5416,6 +6080,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5428,6 +6093,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5436,13 +6102,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5453,25 +6122,30 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5482,12 +6156,14 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5495,6 +6171,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5505,9 +6182,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5518,19 +6197,23 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5541,6 +6224,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5553,6 +6237,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -5561,9 +6246,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p6Z", "start": 0, "type": "Identifier" @@ -5579,9 +6266,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5592,6 +6281,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5604,6 +6294,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -5613,9 +6304,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p6A", "start": 0, "type": "Identifier" @@ -5627,6 +6320,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5638,9 +6332,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -5651,6 +6347,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5659,12 +6356,14 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "10": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5681,11 +6380,13 @@ description: Result of parsing prosthetic-hip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5698,18 +6399,22 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "femur", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -5720,6 +6425,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5730,9 +6436,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile1", "start": 0, "type": "Identifier" @@ -5746,9 +6454,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile2", "start": 0, "type": "Identifier" @@ -5762,9 +6472,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile3", "start": 0, "type": "Identifier" @@ -5778,9 +6490,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile4", "start": 0, "type": "Identifier" @@ -5792,16 +6506,19 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5814,18 +6531,22 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "femoralStem", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -5836,6 +6557,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5843,13 +6565,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -5860,6 +6585,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5867,9 +6593,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile4", "start": 0, "type": "Identifier" @@ -5884,9 +6612,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile5", "start": 0, "type": "Identifier" @@ -5897,13 +6627,16 @@ description: Result of parsing prosthetic-hip.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "clone", "start": 0, "type": "Identifier" @@ -5914,6 +6647,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5921,9 +6655,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile6", "start": 0, "type": "Identifier" @@ -5936,16 +6672,19 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Loft the femoral stem" ], @@ -5961,6 +6700,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemTab", "start": 0, "type": "Identifier" @@ -5971,9 +6711,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stemLoftProfile6", "start": 0, "type": "Identifier" @@ -5990,6 +6732,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5997,6 +6740,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -6012,9 +6756,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6025,6 +6771,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6033,12 +6780,14 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6055,11 +6804,13 @@ description: Result of parsing prosthetic-hip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Draw the third profile for the femoral stem" ], @@ -6075,6 +6826,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "femoralHead", "start": 0, "type": "Identifier" @@ -6082,13 +6834,16 @@ description: Result of parsing prosthetic-hip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6099,6 +6854,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6106,9 +6862,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -6126,6 +6884,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6136,6 +6895,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6148,6 +6908,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6159,6 +6920,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6169,9 +6931,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6182,6 +6946,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6194,6 +6959,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6201,6 +6967,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -6216,9 +6983,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6229,6 +6998,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6241,6 +7011,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6248,6 +7019,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -6263,6 +7035,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6270,6 +7043,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6285,9 +7059,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -6298,6 +7074,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6310,6 +7087,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6317,6 +7095,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -6332,6 +7111,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6339,6 +7119,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -6354,9 +7135,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -6367,6 +7150,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6379,6 +7163,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6387,6 +7172,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6398,6 +7184,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6409,9 +7196,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6422,6 +7211,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6434,6 +7224,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6441,6 +7232,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -6456,6 +7248,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6463,6 +7256,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -6478,9 +7272,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -6491,6 +7287,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6503,6 +7300,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6511,13 +7309,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -6528,25 +7329,30 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -6557,12 +7363,14 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6570,6 +7378,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6580,9 +7389,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -6593,19 +7404,23 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -6616,6 +7431,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6628,6 +7444,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6635,6 +7452,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -6650,6 +7468,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -6658,9 +7477,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -6676,9 +7497,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -6689,6 +7512,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6701,6 +7525,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -6709,6 +7534,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.1", "start": 0, "type": "Literal", @@ -6720,6 +7546,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6731,6 +7558,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -6738,6 +7566,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "133", "start": 0, "type": "Literal", @@ -6753,9 +7582,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -6766,6 +7597,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6778,6 +7610,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -6786,6 +7619,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36.5", "start": 0, "type": "Literal", @@ -6797,6 +7631,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6808,9 +7643,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -6821,6 +7658,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6833,6 +7671,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -6840,6 +7679,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#d64398\"", "start": 0, "type": "Literal", @@ -6852,9 +7692,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -6865,6 +7707,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6873,12 +7716,14 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "12": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6895,11 +7740,13 @@ description: Result of parsing prosthetic-hip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6912,6 +7759,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polyethyleneInsert", "start": 0, "type": "Identifier" @@ -6919,13 +7767,16 @@ description: Result of parsing prosthetic-hip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6936,6 +7787,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6943,9 +7795,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -6963,6 +7817,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6973,6 +7828,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.36", "start": 0, "type": "Literal", @@ -6985,6 +7841,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6996,6 +7853,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7006,9 +7864,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -7019,6 +7879,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7031,6 +7892,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7038,6 +7900,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -7053,9 +7916,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7066,6 +7931,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7078,6 +7944,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7085,6 +7952,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -7100,9 +7968,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7113,6 +7983,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7125,6 +7996,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7135,6 +8007,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -7147,6 +8020,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.55", "start": 0, "type": "Literal", @@ -7158,6 +8032,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7168,9 +8043,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7181,6 +8058,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7193,6 +8071,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7201,6 +8080,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.85", "start": 0, "type": "Literal", @@ -7212,6 +8092,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7223,9 +8104,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7236,6 +8119,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7248,6 +8132,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7255,6 +8140,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.58", "start": 0, "type": "Literal", @@ -7270,9 +8156,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7283,6 +8171,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7295,6 +8184,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7303,13 +8193,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -7320,25 +8213,30 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -7349,12 +8247,14 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7362,6 +8262,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7372,9 +8273,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7385,19 +8288,23 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -7408,6 +8315,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7420,6 +8328,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7427,6 +8336,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -7442,6 +8352,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -7450,9 +8361,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -7468,9 +8381,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -7481,6 +8396,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7493,6 +8409,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -7501,6 +8418,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.1", "start": 0, "type": "Literal", @@ -7512,6 +8430,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7523,6 +8442,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -7530,6 +8450,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "133", "start": 0, "type": "Literal", @@ -7545,9 +8466,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -7558,6 +8481,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7570,6 +8494,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -7578,6 +8503,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36.5", "start": 0, "type": "Literal", @@ -7589,6 +8515,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7600,9 +8527,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -7613,6 +8542,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7625,6 +8555,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -7632,6 +8563,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#3cadd3\"", "start": 0, "type": "Literal", @@ -7644,9 +8576,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -7657,6 +8591,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7665,12 +8600,14 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "12": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7687,11 +8624,13 @@ description: Result of parsing prosthetic-hip.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7704,6 +8643,7 @@ description: Result of parsing prosthetic-hip.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "acetabularShell", "start": 0, "type": "Identifier" @@ -7711,13 +8651,16 @@ description: Result of parsing prosthetic-hip.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -7728,6 +8671,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7735,9 +8679,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -7755,6 +8701,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -7765,6 +8712,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.84", "start": 0, "type": "Literal", @@ -7777,6 +8725,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.7", "start": 0, "type": "Literal", @@ -7788,6 +8737,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7798,9 +8748,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -7811,6 +8763,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7823,6 +8776,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7830,6 +8784,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7845,9 +8800,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7858,6 +8815,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7870,6 +8828,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7877,6 +8836,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".5", "start": 0, "type": "Literal", @@ -7892,9 +8852,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7905,6 +8867,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7917,6 +8880,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7927,6 +8891,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -7939,6 +8904,7 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -7950,6 +8916,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7960,9 +8927,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7973,6 +8942,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7985,6 +8955,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7992,6 +8963,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.56", "start": 0, "type": "Literal", @@ -8007,9 +8979,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -8020,6 +8994,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8032,6 +9007,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8039,6 +9015,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -8054,9 +9031,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -8067,6 +9046,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8079,6 +9059,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8087,13 +9068,16 @@ description: Result of parsing prosthetic-hip.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -8104,25 +9088,30 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -8133,12 +9122,14 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8146,6 +9137,7 @@ description: Result of parsing prosthetic-hip.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8156,9 +9148,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -8169,19 +9163,23 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -8192,6 +9190,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8204,6 +9203,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -8211,6 +9211,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -8226,6 +9227,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8234,9 +9236,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -8252,9 +9256,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -8265,6 +9271,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8277,6 +9284,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -8285,6 +9293,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.1", "start": 0, "type": "Literal", @@ -8296,6 +9305,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8307,6 +9317,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -8314,6 +9325,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "133", "start": 0, "type": "Literal", @@ -8329,9 +9341,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -8342,6 +9356,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8354,6 +9369,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -8362,6 +9378,7 @@ description: Result of parsing prosthetic-hip.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36.5", "start": 0, "type": "Literal", @@ -8373,6 +9390,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8384,9 +9402,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -8397,6 +9417,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8409,6 +9430,7 @@ description: Result of parsing prosthetic-hip.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -8416,6 +9438,7 @@ description: Result of parsing prosthetic-hip.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#a55e2c\"", "start": 0, "type": "Literal", @@ -8428,9 +9451,11 @@ description: Result of parsing prosthetic-hip.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -8441,6 +9466,7 @@ description: Result of parsing prosthetic-hip.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8449,15 +9475,18 @@ description: Result of parsing prosthetic-hip.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8469,9 +9498,11 @@ description: Result of parsing prosthetic-hip.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -8490,19 +9521,23 @@ description: Result of parsing prosthetic-hip.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -8518,12 +9553,14 @@ description: Result of parsing prosthetic-hip.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/program_memory.snap index 080dfcf40..09d1bae56 100644 --- a/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/program_memory.snap @@ -558,6 +558,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 1889, "end": 1895, + "moduleId": 0, "start": 1889, "type": "TagDeclarator", "value": "seg04" @@ -784,6 +785,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 394, "end": 400, + "moduleId": 0, "start": 394, "type": "TagDeclarator", "value": "seg01" @@ -842,6 +844,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 394, "end": 400, + "moduleId": 0, "start": 394, "type": "TagDeclarator", "value": "seg01" @@ -1623,6 +1626,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 394, "end": 400, + "moduleId": 0, "start": 394, "type": "TagDeclarator", "value": "seg01" @@ -1845,6 +1849,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 879, "end": 885, + "moduleId": 0, "start": 879, "type": "TagDeclarator", "value": "seg02" @@ -2067,6 +2072,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 1359, "end": 1365, + "moduleId": 0, "start": 1359, "type": "TagDeclarator", "value": "seg03" @@ -2289,6 +2295,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 1889, "end": 1895, + "moduleId": 0, "start": 1889, "type": "TagDeclarator", "value": "seg04" @@ -2511,6 +2518,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 2423, "end": 2429, + "moduleId": 0, "start": 2423, "type": "TagDeclarator", "value": "seg05" @@ -2733,6 +2741,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 2954, "end": 2960, + "moduleId": 0, "start": 2954, "type": "TagDeclarator", "value": "seg06" @@ -2951,6 +2960,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 2954, "end": 2960, + "moduleId": 0, "start": 2954, "type": "TagDeclarator", "value": "seg06" @@ -3009,6 +3019,7 @@ description: Variables in memory after executing prosthetic-hip.kcl "tag": { "commentStart": 2954, "end": 2960, + "moduleId": 0, "start": 2954, "type": "TagDeclarator", "value": "seg06" diff --git a/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/ast.snap b/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/ast.snap index f0b14065e..542dffe2a 100644 --- a/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "routerDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing router-template-cross-bar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.7", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing router-template-cross-bar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateDiameter", "start": 0, "type": "Identifier" @@ -62,6 +67,7 @@ description: Result of parsing router-template-cross-bar.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -71,10 +77,12 @@ description: Result of parsing router-template-cross-bar.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -88,11 +96,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "ty": { "Inch": null, "commentStart": 0, "end": 0, + "moduleId": 0, "p_type": "Number", "start": 0, "type": "Primitive" @@ -100,11 +110,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "AscribedExpression", "type": "AscribedExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -117,6 +129,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slateWidthHalf", "start": 0, "type": "Identifier" @@ -127,6 +140,7 @@ description: Result of parsing router-template-cross-bar.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41.5", "start": 0, "type": "Literal", @@ -136,10 +150,12 @@ description: Result of parsing router-template-cross-bar.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -153,11 +169,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -170,6 +188,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minClampingDistance", "start": 0, "type": "Identifier" @@ -180,6 +199,7 @@ description: Result of parsing router-template-cross-bar.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -189,10 +209,12 @@ description: Result of parsing router-template-cross-bar.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -206,11 +228,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -223,6 +247,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -230,6 +255,7 @@ description: Result of parsing router-template-cross-bar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -239,11 +265,13 @@ description: Result of parsing router-template-cross-bar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -256,6 +284,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -263,6 +292,7 @@ description: Result of parsing router-template-cross-bar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -272,11 +302,13 @@ description: Result of parsing router-template-cross-bar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -289,6 +321,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -296,6 +329,7 @@ description: Result of parsing router-template-cross-bar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -305,11 +339,13 @@ description: Result of parsing router-template-cross-bar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -322,6 +358,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -339,9 +376,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateDiameter", "start": 0, "type": "Identifier" @@ -351,14 +390,17 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "routerDiameter", "start": 0, "type": "Identifier" @@ -372,10 +414,12 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -389,10 +433,12 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -406,11 +452,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -428,6 +476,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distanceToInsideEdge", "start": 0, "type": "Identifier" @@ -442,9 +491,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slateWidthHalf", "start": 0, "type": "Identifier" @@ -454,14 +505,17 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -475,14 +529,17 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -496,11 +553,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -513,6 +572,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -520,13 +580,16 @@ description: Result of parsing router-template-cross-bar.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -537,6 +600,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -544,9 +608,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -564,6 +630,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -574,6 +641,7 @@ description: Result of parsing router-template-cross-bar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -590,9 +658,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -602,14 +672,17 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -625,6 +698,7 @@ description: Result of parsing router-template-cross-bar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -635,9 +709,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -648,6 +724,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -660,6 +737,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -671,9 +749,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slateWidthHalf", "start": 0, "type": "Identifier" @@ -683,14 +763,17 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -710,6 +793,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -717,6 +801,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -728,9 +813,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -741,6 +828,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -753,6 +841,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -760,6 +849,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -775,6 +865,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -782,6 +873,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -797,6 +889,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -807,6 +900,7 @@ description: Result of parsing router-template-cross-bar.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -816,14 +910,17 @@ description: Result of parsing router-template-cross-bar.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -843,6 +940,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -850,6 +948,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -861,9 +960,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -874,6 +975,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -886,6 +988,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -895,9 +998,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -909,6 +1014,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -920,6 +1026,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -927,6 +1034,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -938,9 +1046,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -951,6 +1061,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -963,6 +1074,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -971,9 +1083,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -989,6 +1103,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -996,6 +1111,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1007,9 +1123,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1020,6 +1138,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1032,6 +1151,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1046,13 +1166,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1063,6 +1186,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1070,9 +1194,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1083,14 +1209,17 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -1104,10 +1233,12 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2_", "start": 0, "type": "Literal", @@ -1121,14 +1252,17 @@ description: Result of parsing router-template-cross-bar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -1148,6 +1282,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1155,6 +1290,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1166,9 +1302,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1179,6 +1317,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1191,6 +1330,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1199,13 +1339,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -1216,6 +1359,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1223,9 +1367,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1236,14 +1382,17 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minClampingDistance", "start": 0, "type": "Identifier" @@ -1263,6 +1412,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1270,6 +1420,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1281,9 +1432,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1294,6 +1447,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1306,6 +1460,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1317,9 +1472,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -1329,10 +1486,12 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1352,6 +1511,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1359,6 +1519,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1370,9 +1531,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1383,6 +1546,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1395,6 +1559,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1403,13 +1568,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -1420,6 +1588,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1427,9 +1596,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1440,10 +1611,12 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1463,6 +1636,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1470,6 +1644,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1481,9 +1656,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1494,6 +1671,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1506,6 +1684,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1514,13 +1693,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1531,6 +1713,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1538,9 +1721,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1551,14 +1736,17 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -1578,6 +1766,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1585,6 +1774,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1596,9 +1786,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1609,6 +1801,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1621,6 +1814,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1628,6 +1822,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1643,6 +1838,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1650,6 +1846,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1661,9 +1858,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1674,6 +1873,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1686,19 +1886,23 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1709,6 +1913,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1716,9 +1921,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -1731,6 +1938,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1742,9 +1950,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1755,6 +1965,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1767,19 +1978,23 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1790,6 +2005,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1797,9 +2013,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg10", "start": 0, "type": "Identifier" @@ -1812,6 +2030,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1823,9 +2042,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1836,6 +2057,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1848,19 +2070,23 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1871,6 +2097,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1878,9 +2105,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -1893,6 +2122,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1904,9 +2134,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1917,6 +2149,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1929,19 +2162,23 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1952,6 +2189,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1959,9 +2197,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg08", "start": 0, "type": "Identifier" @@ -1974,6 +2214,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1985,9 +2226,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1998,6 +2241,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2010,18 +2254,22 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2032,6 +2280,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2039,9 +2288,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg06", "start": 0, "type": "Identifier" @@ -2058,9 +2309,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2071,6 +2324,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2083,19 +2337,23 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2106,6 +2364,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2113,9 +2372,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -2128,6 +2389,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2139,9 +2401,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2152,6 +2416,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2164,18 +2429,22 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2186,6 +2455,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2193,9 +2463,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg07", "start": 0, "type": "Identifier" @@ -2212,9 +2484,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2225,6 +2499,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2237,18 +2512,22 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2259,6 +2538,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2266,9 +2546,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2285,9 +2567,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2298,6 +2582,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2310,6 +2595,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -2317,6 +2603,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2332,6 +2619,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -2339,6 +2627,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2354,6 +2643,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2364,6 +2654,7 @@ description: Result of parsing router-template-cross-bar.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -2373,14 +2664,17 @@ description: Result of parsing router-template-cross-bar.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -2400,9 +2694,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2413,6 +2709,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2425,6 +2722,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2433,13 +2731,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2450,25 +2751,30 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2479,12 +2785,14 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2492,6 +2800,7 @@ description: Result of parsing router-template-cross-bar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2502,9 +2811,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2515,19 +2826,23 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2538,6 +2853,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2546,12 +2862,14 @@ description: Result of parsing router-template-cross-bar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "22": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2568,11 +2886,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2590,6 +2910,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -2601,6 +2922,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2608,6 +2930,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2623,9 +2946,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2636,6 +2961,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2643,9 +2969,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -2656,11 +2984,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2673,6 +3003,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2686,6 +3017,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2694,9 +3026,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -2712,9 +3046,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2725,6 +3061,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2732,9 +3069,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -2752,6 +3091,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2763,9 +3103,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distanceToInsideEdge", "start": 0, "type": "Identifier" @@ -2778,6 +3120,7 @@ description: Result of parsing router-template-cross-bar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2789,6 +3132,7 @@ description: Result of parsing router-template-cross-bar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2799,9 +3143,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2812,6 +3158,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2824,6 +3171,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2831,6 +3179,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2846,6 +3195,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2854,9 +3204,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -2872,6 +3224,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2879,6 +3232,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2890,9 +3244,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2903,6 +3259,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2915,6 +3272,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2923,13 +3281,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -2940,6 +3301,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2947,9 +3309,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -2960,10 +3324,12 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2983,6 +3349,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2991,9 +3358,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -3009,6 +3378,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3016,6 +3386,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3027,9 +3398,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3040,6 +3413,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3052,18 +3426,22 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3074,6 +3452,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3081,9 +3460,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -3100,19 +3481,23 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3123,6 +3508,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3130,9 +3516,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -3145,6 +3533,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3156,6 +3545,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3163,6 +3553,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3174,9 +3565,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3187,6 +3580,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3199,6 +3593,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3207,13 +3602,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3224,25 +3622,30 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3253,12 +3656,14 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3266,6 +3671,7 @@ description: Result of parsing router-template-cross-bar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3276,9 +3682,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3289,19 +3697,23 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3312,6 +3724,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3320,12 +3733,14 @@ description: Result of parsing router-template-cross-bar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3342,11 +3757,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3364,6 +3781,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -3375,6 +3793,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3382,6 +3801,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13", "start": 0, "type": "Literal", @@ -3397,9 +3817,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3410,6 +3832,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3417,9 +3840,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -3430,11 +3855,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3447,6 +3874,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -3460,6 +3888,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3468,9 +3897,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -3486,9 +3917,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3499,6 +3932,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3506,9 +3940,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -3526,6 +3962,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3538,9 +3975,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distanceToInsideEdge", "start": 0, "type": "Identifier" @@ -3552,6 +3991,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3560,6 +4000,7 @@ description: Result of parsing router-template-cross-bar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3571,6 +4012,7 @@ description: Result of parsing router-template-cross-bar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3581,9 +4023,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3594,6 +4038,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3606,6 +4051,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3613,6 +4059,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3628,6 +4075,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3636,9 +4084,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -3654,6 +4104,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3661,6 +4112,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3672,9 +4124,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3685,6 +4139,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3697,6 +4152,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3705,13 +4161,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3722,6 +4181,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3729,9 +4189,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3742,10 +4204,12 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3765,6 +4229,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3773,9 +4238,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -3791,6 +4258,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3798,6 +4266,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3809,9 +4278,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3822,6 +4293,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3834,18 +4306,22 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3856,6 +4332,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3863,9 +4340,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3882,19 +4361,23 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3905,6 +4388,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3912,9 +4396,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -3927,6 +4413,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3938,6 +4425,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3945,6 +4433,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3956,9 +4445,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3969,6 +4460,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3981,6 +4473,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3989,13 +4482,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4006,25 +4502,30 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4035,12 +4536,14 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4048,6 +4551,7 @@ description: Result of parsing router-template-cross-bar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4058,9 +4562,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4071,19 +4577,23 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4094,6 +4604,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4102,12 +4613,14 @@ description: Result of parsing router-template-cross-bar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4124,11 +4637,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4146,6 +4661,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -4157,6 +4673,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4164,6 +4681,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13", "start": 0, "type": "Literal", @@ -4179,9 +4697,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4192,6 +4712,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4199,9 +4720,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -4212,11 +4735,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4229,6 +4754,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -4242,6 +4768,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -4250,9 +4777,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -4268,9 +4797,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4281,6 +4812,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4288,9 +4820,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -4308,6 +4842,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4320,9 +4855,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distanceToInsideEdge", "start": 0, "type": "Identifier" @@ -4334,6 +4871,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4342,6 +4880,7 @@ description: Result of parsing router-template-cross-bar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4353,6 +4892,7 @@ description: Result of parsing router-template-cross-bar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4363,9 +4903,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4376,6 +4918,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4388,6 +4931,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4395,6 +4939,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4410,6 +4955,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4421,9 +4967,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distanceToInsideEdge", "start": 0, "type": "Identifier" @@ -4433,10 +4981,12 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4456,6 +5006,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4463,6 +5014,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4474,9 +5026,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4487,6 +5041,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4499,6 +5054,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4507,13 +5063,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -4524,6 +5083,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4531,9 +5091,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -4544,10 +5106,12 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4567,6 +5131,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4575,9 +5140,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -4593,6 +5160,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4600,6 +5168,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4611,9 +5180,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4624,6 +5195,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4636,18 +5208,22 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -4658,6 +5234,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4665,9 +5242,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -4684,19 +5263,23 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4707,6 +5290,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4714,9 +5298,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -4729,6 +5315,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4740,6 +5327,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4747,6 +5335,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4758,9 +5347,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -4771,6 +5362,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4783,6 +5375,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4791,13 +5384,16 @@ description: Result of parsing router-template-cross-bar.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4808,25 +5404,30 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4837,12 +5438,14 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4850,6 +5453,7 @@ description: Result of parsing router-template-cross-bar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4860,9 +5464,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4873,19 +5479,23 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4896,6 +5506,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4904,12 +5515,14 @@ description: Result of parsing router-template-cross-bar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4926,11 +5539,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4948,6 +5563,7 @@ description: Result of parsing router-template-cross-bar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude004", "start": 0, "type": "Identifier" @@ -4959,6 +5575,7 @@ description: Result of parsing router-template-cross-bar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4966,6 +5583,7 @@ description: Result of parsing router-template-cross-bar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4981,9 +5599,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4994,6 +5614,7 @@ description: Result of parsing router-template-cross-bar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5001,9 +5622,11 @@ description: Result of parsing router-template-cross-bar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -5014,11 +5637,13 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5030,9 +5655,11 @@ description: Result of parsing router-template-cross-bar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -5051,19 +5678,23 @@ description: Result of parsing router-template-cross-bar.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -5080,15 +5711,18 @@ description: Result of parsing router-template-cross-bar.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -5104,12 +5738,14 @@ description: Result of parsing router-template-cross-bar.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/program_memory.snap index 63c92e0d6..5c2fc8b5c 100644 --- a/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/router-template-cross-bar/program_memory.snap @@ -39,6 +39,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -52,6 +53,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -65,6 +67,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -78,6 +81,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -91,6 +95,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -104,6 +109,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -117,6 +123,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -130,6 +137,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -143,6 +151,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -156,6 +165,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -242,6 +252,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -273,6 +284,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -298,6 +310,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -323,6 +336,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -348,6 +362,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -373,6 +388,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -398,6 +414,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -423,6 +440,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -448,6 +466,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -473,6 +492,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -821,6 +841,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1998, "end": 2019, + "moduleId": 0, "start": 1998, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -834,6 +855,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2114, "end": 2135, + "moduleId": 0, "start": 2114, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -847,6 +869,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2237, "end": 2258, + "moduleId": 0, "start": 2237, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -877,6 +900,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1998, "end": 2019, + "moduleId": 0, "start": 1998, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -902,6 +926,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2114, "end": 2135, + "moduleId": 0, "start": 2114, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -927,6 +952,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2237, "end": 2258, + "moduleId": 0, "start": 2237, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -1012,6 +1038,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -1025,6 +1052,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -1038,6 +1066,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -1051,6 +1080,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -1064,6 +1094,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -1077,6 +1108,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -1090,6 +1122,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -1103,6 +1136,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -1116,6 +1150,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -1129,6 +1164,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -1215,6 +1251,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -1246,6 +1283,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -1271,6 +1309,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -1296,6 +1335,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -1321,6 +1361,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -1346,6 +1387,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -1371,6 +1413,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -1396,6 +1439,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -1421,6 +1465,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -1446,6 +1491,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -1844,6 +1890,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2602, "end": 2623, + "moduleId": 0, "start": 2602, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1857,6 +1904,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2718, "end": 2739, + "moduleId": 0, "start": 2718, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -1870,6 +1918,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2841, "end": 2862, + "moduleId": 0, "start": 2841, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -1900,6 +1949,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2602, "end": 2623, + "moduleId": 0, "start": 2602, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1925,6 +1975,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2718, "end": 2739, + "moduleId": 0, "start": 2718, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -1950,6 +2001,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2841, "end": 2862, + "moduleId": 0, "start": 2841, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -2035,6 +2087,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -2048,6 +2101,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -2061,6 +2115,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -2074,6 +2129,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -2087,6 +2143,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -2100,6 +2157,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -2113,6 +2171,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -2126,6 +2185,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -2139,6 +2199,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -2152,6 +2213,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -2238,6 +2300,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -2269,6 +2332,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -2294,6 +2358,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -2319,6 +2384,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -2344,6 +2410,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -2369,6 +2436,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -2394,6 +2462,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -2419,6 +2488,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -2444,6 +2514,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -2469,6 +2540,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -2867,6 +2939,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 3211, "end": 3232, + "moduleId": 0, "start": 3211, "type": "TagDeclarator", "value": "rectangleSegmentA003" @@ -2880,6 +2953,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 3327, "end": 3348, + "moduleId": 0, "start": 3327, "type": "TagDeclarator", "value": "rectangleSegmentB003" @@ -2893,6 +2967,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 3450, "end": 3471, + "moduleId": 0, "start": 3450, "type": "TagDeclarator", "value": "rectangleSegmentC003" @@ -2923,6 +2998,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 3211, "end": 3232, + "moduleId": 0, "start": 3211, "type": "TagDeclarator", "value": "rectangleSegmentA003" @@ -2948,6 +3024,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 3327, "end": 3348, + "moduleId": 0, "start": 3327, "type": "TagDeclarator", "value": "rectangleSegmentB003" @@ -2973,6 +3050,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 3450, "end": 3471, + "moduleId": 0, "start": 3450, "type": "TagDeclarator", "value": "rectangleSegmentC003" @@ -3058,6 +3136,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1998, "end": 2019, + "moduleId": 0, "start": 1998, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -3071,6 +3150,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2114, "end": 2135, + "moduleId": 0, "start": 2114, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -3084,6 +3164,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2237, "end": 2258, + "moduleId": 0, "start": 2237, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -3114,6 +3195,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1998, "end": 2019, + "moduleId": 0, "start": 1998, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -3139,6 +3221,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2114, "end": 2135, + "moduleId": 0, "start": 2114, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -3164,6 +3247,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2237, "end": 2258, + "moduleId": 0, "start": 2237, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -3249,6 +3333,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -3262,6 +3347,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -3275,6 +3361,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -3288,6 +3375,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -3301,6 +3389,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -3314,6 +3403,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -3327,6 +3417,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -3340,6 +3431,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -3353,6 +3445,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -3366,6 +3459,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -3452,6 +3546,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -3483,6 +3578,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -3508,6 +3604,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -3533,6 +3630,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -3558,6 +3656,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -3583,6 +3682,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -3608,6 +3708,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -3633,6 +3734,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -3658,6 +3760,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -3683,6 +3786,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -4269,6 +4373,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -4300,6 +4405,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -4325,6 +4431,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -4350,6 +4457,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -4375,6 +4483,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -4400,6 +4509,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -4425,6 +4535,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -4450,6 +4561,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -4475,6 +4587,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -4500,6 +4613,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -4844,6 +4958,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1998, "end": 2019, + "moduleId": 0, "start": 1998, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -4869,6 +4984,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2114, "end": 2135, + "moduleId": 0, "start": 2114, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -4894,6 +5010,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2237, "end": 2258, + "moduleId": 0, "start": 2237, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -4979,6 +5096,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -4992,6 +5110,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -5005,6 +5124,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -5018,6 +5138,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -5031,6 +5152,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -5044,6 +5166,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -5057,6 +5180,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -5070,6 +5194,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -5083,6 +5208,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -5096,6 +5222,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -5182,6 +5309,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -5213,6 +5341,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -5238,6 +5367,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -5263,6 +5393,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -5288,6 +5419,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -5313,6 +5445,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -5338,6 +5471,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -5363,6 +5497,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -5388,6 +5523,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -5413,6 +5549,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -5807,6 +5944,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2602, "end": 2623, + "moduleId": 0, "start": 2602, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -5832,6 +5970,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2718, "end": 2739, + "moduleId": 0, "start": 2718, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -5857,6 +5996,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2841, "end": 2862, + "moduleId": 0, "start": 2841, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -5942,6 +6082,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -5955,6 +6096,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -5968,6 +6110,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -5981,6 +6124,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -5994,6 +6138,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -6007,6 +6152,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -6020,6 +6166,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -6033,6 +6180,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -6046,6 +6194,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -6059,6 +6208,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -6145,6 +6295,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -6176,6 +6327,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -6201,6 +6353,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -6226,6 +6379,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -6251,6 +6405,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -6276,6 +6431,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -6301,6 +6457,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -6326,6 +6483,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -6351,6 +6509,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -6376,6 +6535,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -6770,6 +6930,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 3211, "end": 3232, + "moduleId": 0, "start": 3211, "type": "TagDeclarator", "value": "rectangleSegmentA003" @@ -6795,6 +6956,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 3327, "end": 3348, + "moduleId": 0, "start": 3327, "type": "TagDeclarator", "value": "rectangleSegmentB003" @@ -6820,6 +6982,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 3450, "end": 3471, + "moduleId": 0, "start": 3450, "type": "TagDeclarator", "value": "rectangleSegmentC003" @@ -6905,6 +7068,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1998, "end": 2019, + "moduleId": 0, "start": 1998, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -6918,6 +7082,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2114, "end": 2135, + "moduleId": 0, "start": 2114, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -6931,6 +7096,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2237, "end": 2258, + "moduleId": 0, "start": 2237, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -6961,6 +7127,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1998, "end": 2019, + "moduleId": 0, "start": 1998, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -6986,6 +7153,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2114, "end": 2135, + "moduleId": 0, "start": 2114, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -7011,6 +7179,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 2237, "end": 2258, + "moduleId": 0, "start": 2237, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -7096,6 +7265,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -7109,6 +7279,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -7122,6 +7293,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -7135,6 +7307,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -7148,6 +7321,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -7161,6 +7335,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -7174,6 +7349,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -7187,6 +7363,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -7200,6 +7377,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -7213,6 +7391,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" @@ -7299,6 +7478,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg01" @@ -7330,6 +7510,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 763, "end": 769, + "moduleId": 0, "start": 763, "type": "TagDeclarator", "value": "seg09" @@ -7355,6 +7536,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 829, "end": 835, + "moduleId": 0, "start": 829, "type": "TagDeclarator", "value": "seg03" @@ -7380,6 +7562,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 882, "end": 888, + "moduleId": 0, "start": 882, "type": "TagDeclarator", "value": "seg07" @@ -7405,6 +7588,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 984, "end": 990, + "moduleId": 0, "start": 984, "type": "TagDeclarator", "value": "seg02" @@ -7430,6 +7614,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1061, "end": 1067, + "moduleId": 0, "start": 1061, "type": "TagDeclarator", "value": "seg06" @@ -7455,6 +7640,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1118, "end": 1124, + "moduleId": 0, "start": 1118, "type": "TagDeclarator", "value": "seg08" @@ -7480,6 +7666,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1177, "end": 1183, + "moduleId": 0, "start": 1177, "type": "TagDeclarator", "value": "seg05" @@ -7505,6 +7692,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1252, "end": 1258, + "moduleId": 0, "start": 1252, "type": "TagDeclarator", "value": "seg10" @@ -7530,6 +7718,7 @@ description: Variables in memory after executing router-template-cross-bar.kcl "tag": { "commentStart": 1294, "end": 1300, + "moduleId": 0, "start": 1294, "type": "TagDeclarator", "value": "seg04" diff --git a/rust/kcl-lib/tests/kcl_samples/router-template-slate/ast.snap b/rust/kcl-lib/tests/kcl_samples/router-template-slate/ast.snap index 25ab1d865..b54ae9034 100644 --- a/rust/kcl-lib/tests/kcl_samples/router-template-slate/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/router-template-slate/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "routerDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing router-template-slate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.7", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing router-template-slate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateDiameter", "start": 0, "type": "Identifier" @@ -62,6 +67,7 @@ description: Result of parsing router-template-slate.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -71,10 +77,12 @@ description: Result of parsing router-template-slate.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -88,11 +96,13 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "ty": { "Inch": null, "commentStart": 0, "end": 0, + "moduleId": 0, "p_type": "Number", "start": 0, "type": "Primitive" @@ -100,11 +110,13 @@ description: Result of parsing router-template-slate.kcl "type": "AscribedExpression", "type": "AscribedExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -117,6 +129,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slateWidthHalf", "start": 0, "type": "Identifier" @@ -127,6 +140,7 @@ description: Result of parsing router-template-slate.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41.5", "start": 0, "type": "Literal", @@ -136,10 +150,12 @@ description: Result of parsing router-template-slate.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -153,11 +169,13 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -170,6 +188,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minClampingDistance", "start": 0, "type": "Identifier" @@ -180,6 +199,7 @@ description: Result of parsing router-template-slate.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -189,10 +209,12 @@ description: Result of parsing router-template-slate.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -206,11 +228,13 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -223,6 +247,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -230,6 +255,7 @@ description: Result of parsing router-template-slate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -239,11 +265,13 @@ description: Result of parsing router-template-slate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -256,6 +284,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -263,6 +292,7 @@ description: Result of parsing router-template-slate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -272,11 +302,13 @@ description: Result of parsing router-template-slate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -289,6 +321,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -296,6 +329,7 @@ description: Result of parsing router-template-slate.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -305,11 +339,13 @@ description: Result of parsing router-template-slate.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -322,6 +358,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -339,9 +376,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateDiameter", "start": 0, "type": "Identifier" @@ -351,14 +390,17 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "routerDiameter", "start": 0, "type": "Identifier" @@ -372,10 +414,12 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -389,10 +433,12 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -406,11 +452,13 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -428,6 +476,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length001", "start": 0, "type": "Identifier" @@ -439,9 +488,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slateWidthHalf", "start": 0, "type": "Identifier" @@ -451,14 +502,17 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -472,11 +526,13 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -489,6 +545,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length002", "start": 0, "type": "Identifier" @@ -500,9 +557,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -512,14 +571,17 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minClampingDistance", "start": 0, "type": "Identifier" @@ -533,11 +595,13 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -550,6 +614,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -557,13 +622,16 @@ description: Result of parsing router-template-slate.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -574,6 +642,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -581,9 +650,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -601,6 +672,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -611,6 +683,7 @@ description: Result of parsing router-template-slate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -627,9 +700,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -639,14 +714,17 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -662,6 +740,7 @@ description: Result of parsing router-template-slate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -672,9 +751,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -685,6 +766,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -697,6 +779,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -705,9 +788,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length001", "start": 0, "type": "Identifier" @@ -723,6 +808,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -730,6 +816,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -741,9 +828,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -754,6 +843,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -766,6 +856,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -773,6 +864,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -788,6 +880,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -795,6 +888,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -810,6 +904,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -821,9 +916,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -833,14 +930,17 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -860,9 +960,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -873,6 +975,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -885,6 +988,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -900,9 +1004,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -914,15 +1020,18 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -936,6 +1045,7 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -944,9 +1054,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateDiameter", "start": 0, "type": "Identifier" @@ -956,10 +1068,12 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -983,6 +1097,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -990,6 +1105,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1001,9 +1117,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1014,6 +1132,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1026,6 +1145,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1037,9 +1157,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slateWidthHalf", "start": 0, "type": "Identifier" @@ -1049,14 +1171,17 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateThickness", "start": 0, "type": "Identifier" @@ -1076,6 +1201,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1083,6 +1209,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1094,9 +1221,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1107,6 +1236,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1119,6 +1249,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1128,9 +1259,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length002", "start": 0, "type": "Identifier" @@ -1142,6 +1275,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1153,6 +1287,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1160,6 +1295,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1171,9 +1307,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1184,6 +1322,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1196,6 +1335,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1203,6 +1343,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1218,6 +1359,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1225,6 +1367,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1236,9 +1379,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1249,6 +1394,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1261,19 +1407,23 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1284,6 +1434,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1291,9 +1442,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1306,6 +1459,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1317,9 +1471,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1330,6 +1486,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1342,18 +1499,22 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1364,6 +1525,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1371,9 +1533,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1390,9 +1554,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1403,6 +1569,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1415,18 +1582,22 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1437,6 +1608,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1444,9 +1616,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -1463,9 +1637,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1476,6 +1652,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1488,18 +1665,22 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1510,6 +1691,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1517,9 +1699,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -1536,9 +1720,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1549,6 +1735,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1561,6 +1748,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1568,6 +1756,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1583,6 +1772,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1590,6 +1780,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1605,6 +1796,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1616,9 +1808,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1628,14 +1822,17 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -1655,9 +1852,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1668,6 +1867,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1680,6 +1880,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1688,13 +1889,16 @@ description: Result of parsing router-template-slate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1705,25 +1909,30 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1734,12 +1943,14 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1747,6 +1958,7 @@ description: Result of parsing router-template-slate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1757,9 +1969,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1770,19 +1984,23 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1793,6 +2011,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1801,12 +2020,14 @@ description: Result of parsing router-template-slate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1820,6 +2041,7 @@ description: Result of parsing router-template-slate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1836,11 +2058,13 @@ description: Result of parsing router-template-slate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1858,6 +2082,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -1869,6 +2094,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1876,6 +2102,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1891,9 +2118,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1904,6 +2133,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1911,9 +2141,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -1924,11 +2156,13 @@ description: Result of parsing router-template-slate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1941,6 +2175,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1954,6 +2189,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1962,9 +2198,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -1980,9 +2218,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1993,6 +2233,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2000,9 +2241,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -2020,6 +2263,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2032,9 +2276,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slateWidthHalf", "start": 0, "type": "Identifier" @@ -2046,6 +2292,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2062,9 +2309,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -2076,15 +2325,18 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2098,6 +2350,7 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2106,9 +2359,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateDiameter", "start": 0, "type": "Identifier" @@ -2118,10 +2373,12 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2141,6 +2398,7 @@ description: Result of parsing router-template-slate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2151,9 +2409,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2164,6 +2424,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2176,6 +2437,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2184,6 +2446,7 @@ description: Result of parsing router-template-slate.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -2195,6 +2458,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2206,6 +2470,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2213,6 +2478,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2224,9 +2490,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2237,6 +2505,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2249,6 +2518,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2257,13 +2527,16 @@ description: Result of parsing router-template-slate.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -2274,6 +2547,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2281,9 +2555,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -2294,10 +2570,12 @@ description: Result of parsing router-template-slate.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2317,6 +2595,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2325,9 +2604,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minClampingDistance", "start": 0, "type": "Identifier" @@ -2343,6 +2624,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2350,6 +2632,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2361,9 +2644,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2374,6 +2659,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2386,18 +2672,22 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -2408,6 +2698,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2415,9 +2706,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -2434,19 +2727,23 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2457,6 +2754,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2464,9 +2762,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -2479,6 +2779,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2490,6 +2791,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2497,6 +2799,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2508,9 +2811,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2521,6 +2826,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2533,6 +2839,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2541,13 +2848,16 @@ description: Result of parsing router-template-slate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2558,25 +2868,30 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2587,12 +2902,14 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2600,6 +2917,7 @@ description: Result of parsing router-template-slate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2610,9 +2928,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2623,19 +2943,23 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2646,6 +2970,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2654,12 +2979,14 @@ description: Result of parsing router-template-slate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2676,11 +3003,13 @@ description: Result of parsing router-template-slate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2698,6 +3027,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -2709,6 +3039,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2716,6 +3047,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.5", "start": 0, "type": "Literal", @@ -2731,9 +3063,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2744,6 +3078,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2751,9 +3086,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2764,11 +3101,13 @@ description: Result of parsing router-template-slate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2781,6 +3120,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -2794,6 +3134,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2802,9 +3143,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -2820,9 +3163,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2833,6 +3178,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2840,9 +3186,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -2860,6 +3208,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2871,9 +3220,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slateWidthHalf", "start": 0, "type": "Identifier" @@ -2894,9 +3245,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateGap", "start": 0, "type": "Identifier" @@ -2908,15 +3261,18 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2930,6 +3286,7 @@ description: Result of parsing router-template-slate.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2938,9 +3295,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "templateDiameter", "start": 0, "type": "Identifier" @@ -2950,10 +3309,12 @@ description: Result of parsing router-template-slate.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2973,6 +3334,7 @@ description: Result of parsing router-template-slate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2983,9 +3345,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2996,6 +3360,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3008,6 +3373,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3015,6 +3381,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -3030,6 +3397,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3037,6 +3405,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3048,9 +3417,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3061,6 +3432,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3073,6 +3445,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3081,13 +3454,16 @@ description: Result of parsing router-template-slate.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3098,6 +3474,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3105,9 +3482,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -3118,10 +3497,12 @@ description: Result of parsing router-template-slate.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3141,6 +3522,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3149,9 +3531,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "minClampingDistance", "start": 0, "type": "Identifier" @@ -3167,9 +3551,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3180,6 +3566,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3192,18 +3579,22 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -3214,6 +3605,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3221,9 +3613,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -3240,19 +3634,23 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3263,6 +3661,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3270,9 +3669,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -3285,6 +3686,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3296,9 +3698,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3309,6 +3713,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3321,6 +3726,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3329,13 +3735,16 @@ description: Result of parsing router-template-slate.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3346,25 +3755,30 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3375,12 +3789,14 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3388,6 +3804,7 @@ description: Result of parsing router-template-slate.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3398,9 +3815,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3411,19 +3830,23 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3434,6 +3857,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3442,12 +3866,14 @@ description: Result of parsing router-template-slate.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3464,11 +3890,13 @@ description: Result of parsing router-template-slate.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3486,6 +3914,7 @@ description: Result of parsing router-template-slate.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude003", "start": 0, "type": "Identifier" @@ -3497,6 +3926,7 @@ description: Result of parsing router-template-slate.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3504,6 +3934,7 @@ description: Result of parsing router-template-slate.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.5", "start": 0, "type": "Literal", @@ -3519,9 +3950,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3532,6 +3965,7 @@ description: Result of parsing router-template-slate.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3539,9 +3973,11 @@ description: Result of parsing router-template-slate.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -3552,11 +3988,13 @@ description: Result of parsing router-template-slate.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3568,9 +4006,11 @@ description: Result of parsing router-template-slate.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3589,19 +4029,23 @@ description: Result of parsing router-template-slate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -3618,15 +4062,18 @@ description: Result of parsing router-template-slate.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3642,12 +4089,14 @@ description: Result of parsing router-template-slate.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/router-template-slate/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/router-template-slate/program_memory.snap index 502e823ab..419de7eef 100644 --- a/rust/kcl-lib/tests/kcl_samples/router-template-slate/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/router-template-slate/program_memory.snap @@ -30,6 +30,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -50,6 +51,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -63,6 +65,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -76,6 +79,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -141,6 +145,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -191,6 +196,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -216,6 +222,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -241,6 +248,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -266,6 +274,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 954, "end": 960, + "moduleId": 0, "start": 954, "type": "TagDeclarator", "value": "seg02" @@ -518,6 +527,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 1575, "end": 1596, + "moduleId": 0, "start": 1575, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -531,6 +541,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 1693, "end": 1714, + "moduleId": 0, "start": 1693, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -544,6 +555,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 1816, "end": 1837, + "moduleId": 0, "start": 1816, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -574,6 +586,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 1575, "end": 1596, + "moduleId": 0, "start": 1575, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -599,6 +612,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 1693, "end": 1714, + "moduleId": 0, "start": 1693, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -624,6 +638,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 1816, "end": 1837, + "moduleId": 0, "start": 1816, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -709,6 +724,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -729,6 +745,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -742,6 +759,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -755,6 +773,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -820,6 +839,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -870,6 +890,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -895,6 +916,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -920,6 +942,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -945,6 +968,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 954, "end": 960, + "moduleId": 0, "start": 954, "type": "TagDeclarator", "value": "seg02" @@ -1247,6 +1271,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 2204, "end": 2225, + "moduleId": 0, "start": 2204, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -1291,6 +1316,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 2204, "end": 2225, + "moduleId": 0, "start": 2204, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -1414,6 +1440,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -1434,6 +1461,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -1447,6 +1475,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -1460,6 +1489,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -1525,6 +1555,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -1575,6 +1606,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -1600,6 +1632,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -1625,6 +1658,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -1650,6 +1684,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 954, "end": 960, + "moduleId": 0, "start": 954, "type": "TagDeclarator", "value": "seg02" @@ -2058,6 +2093,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -2108,6 +2144,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -2133,6 +2170,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -2158,6 +2196,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -2183,6 +2222,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 954, "end": 960, + "moduleId": 0, "start": 954, "type": "TagDeclarator", "value": "seg02" @@ -2431,6 +2471,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 1575, "end": 1596, + "moduleId": 0, "start": 1575, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -2456,6 +2497,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 1693, "end": 1714, + "moduleId": 0, "start": 1693, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -2481,6 +2523,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 1816, "end": 1837, + "moduleId": 0, "start": 1816, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -2566,6 +2609,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -2586,6 +2630,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -2599,6 +2644,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -2612,6 +2658,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -2677,6 +2724,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -2727,6 +2775,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -2752,6 +2801,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -2777,6 +2827,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -2802,6 +2853,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 954, "end": 960, + "moduleId": 0, "start": 954, "type": "TagDeclarator", "value": "seg02" @@ -3100,6 +3152,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 2204, "end": 2225, + "moduleId": 0, "start": 2204, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -3223,6 +3276,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -3243,6 +3297,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -3256,6 +3311,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -3269,6 +3325,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -3334,6 +3391,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 638, "end": 644, + "moduleId": 0, "start": 638, "type": "TagDeclarator", "value": "seg01" @@ -3384,6 +3442,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 791, "end": 797, + "moduleId": 0, "start": 791, "type": "TagDeclarator", "value": "seg05" @@ -3409,6 +3468,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 866, "end": 872, + "moduleId": 0, "start": 866, "type": "TagDeclarator", "value": "seg04" @@ -3434,6 +3494,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 912, "end": 918, + "moduleId": 0, "start": 912, "type": "TagDeclarator", "value": "seg03" @@ -3459,6 +3520,7 @@ description: Variables in memory after executing router-template-slate.kcl "tag": { "commentStart": 954, "end": 960, + "moduleId": 0, "start": 954, "type": "TagDeclarator", "value": "seg02" diff --git a/rust/kcl-lib/tests/kcl_samples/sash-window/ast.snap b/rust/kcl-lib/tests/kcl_samples/sash-window/ast.snap index 983cafbef..17f8b7544 100644 --- a/rust/kcl-lib/tests/kcl_samples/sash-window/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/sash-window/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowState", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Window state: 0 for closed, 1 for open" ], @@ -49,6 +53,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowWidth", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "500", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -87,6 +95,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowHeight", "start": 0, "type": "Identifier" @@ -94,6 +103,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1000", "start": 0, "type": "Literal", @@ -103,11 +113,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -120,6 +132,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -127,6 +140,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -136,11 +150,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -158,6 +174,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameDepth", "start": 0, "type": "Identifier" @@ -165,6 +182,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -174,11 +192,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -191,6 +211,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashOpeningCountHorizontal", "start": 0, "type": "Identifier" @@ -198,6 +219,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -207,11 +229,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -229,6 +253,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashOpeningCountVertical", "start": 0, "type": "Identifier" @@ -236,6 +261,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -245,11 +271,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -262,6 +290,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashWidth", "start": 0, "type": "Identifier" @@ -273,9 +302,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowWidth", "start": 0, "type": "Identifier" @@ -285,6 +316,7 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -293,9 +325,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -305,10 +339,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -326,11 +362,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -348,6 +386,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashHeight", "start": 0, "type": "Identifier" @@ -365,9 +404,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowHeight", "start": 0, "type": "Identifier" @@ -377,6 +418,7 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -385,9 +427,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -397,10 +441,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -418,10 +464,12 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -435,6 +483,7 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -443,9 +492,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -455,10 +506,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -476,11 +529,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -493,6 +548,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashDepth", "start": 0, "type": "Identifier" @@ -507,9 +563,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameDepth", "start": 0, "type": "Identifier" @@ -519,10 +577,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -536,10 +596,12 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -553,11 +615,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -570,6 +634,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashTravelDistance", "start": 0, "type": "Identifier" @@ -584,9 +649,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashHeight", "start": 0, "type": "Identifier" @@ -596,14 +663,17 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowState", "start": 0, "type": "Identifier" @@ -617,10 +687,12 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -634,11 +706,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -651,6 +725,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelFn", "start": 0, "type": "Identifier" @@ -666,18 +741,22 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -688,6 +767,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -698,6 +778,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -706,9 +787,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -724,9 +807,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -737,6 +822,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -744,9 +830,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -758,11 +846,13 @@ description: Result of parsing sash-window.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Create panel base shape" ], @@ -778,6 +868,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelShape", "start": 0, "type": "Identifier" @@ -791,6 +882,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -806,9 +898,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -820,15 +914,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -850,9 +947,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -864,15 +963,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -888,6 +990,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -898,9 +1001,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -911,6 +1016,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -918,9 +1024,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelPlane", "start": 0, "type": "Identifier" @@ -938,6 +1046,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -946,9 +1055,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -964,9 +1075,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -977,6 +1090,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -989,6 +1103,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -997,9 +1112,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1015,9 +1132,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1028,6 +1147,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1040,6 +1160,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1049,9 +1170,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1063,6 +1186,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1074,9 +1198,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1087,6 +1213,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1099,6 +1226,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1107,13 +1235,16 @@ description: Result of parsing sash-window.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1124,25 +1255,30 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1153,12 +1289,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1166,6 +1304,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1176,9 +1315,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1189,19 +1330,23 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1212,6 +1357,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1220,15 +1366,18 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1241,6 +1390,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelBody", "start": 0, "type": "Identifier" @@ -1252,6 +1402,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1260,9 +1411,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -1278,9 +1431,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1291,6 +1446,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1298,9 +1454,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelShape", "start": 0, "type": "Identifier" @@ -1311,11 +1469,13 @@ description: Result of parsing sash-window.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1328,6 +1488,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidAreaWidth", "start": 0, "type": "Identifier" @@ -1339,9 +1500,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1351,6 +1514,7 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1359,9 +1523,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "perimeter", "start": 0, "type": "Identifier" @@ -1371,10 +1537,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1392,11 +1560,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1414,6 +1584,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidAreaHeight", "start": 0, "type": "Identifier" @@ -1425,9 +1596,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1437,6 +1610,7 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1445,9 +1619,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "perimeter", "start": 0, "type": "Identifier" @@ -1457,10 +1633,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1478,11 +1656,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1495,6 +1675,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionTotalThicknessHorizontal", "start": 0, "type": "Identifier" @@ -1509,9 +1690,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -1521,14 +1704,17 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountHorizontal", "start": 0, "type": "Identifier" @@ -1542,14 +1728,17 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -1563,11 +1752,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1580,6 +1771,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionTotalThicknessVertical", "start": 0, "type": "Identifier" @@ -1594,9 +1786,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -1606,14 +1800,17 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountVertical", "start": 0, "type": "Identifier" @@ -1627,14 +1824,17 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -1648,11 +1848,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1665,6 +1867,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidWidth", "start": 0, "type": "Identifier" @@ -1679,9 +1882,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidAreaWidth", "start": 0, "type": "Identifier" @@ -1691,14 +1896,17 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionTotalThicknessHorizontal", "start": 0, "type": "Identifier" @@ -1712,14 +1920,17 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountHorizontal", "start": 0, "type": "Identifier" @@ -1733,11 +1944,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1750,6 +1963,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidHeight", "start": 0, "type": "Identifier" @@ -1764,9 +1978,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidAreaHeight", "start": 0, "type": "Identifier" @@ -1776,14 +1992,17 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionTotalThicknessVertical", "start": 0, "type": "Identifier" @@ -1797,14 +2016,17 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountVertical", "start": 0, "type": "Identifier" @@ -1818,11 +2040,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1835,6 +2059,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidStepHorizontal", "start": 0, "type": "Identifier" @@ -1846,9 +2071,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidWidth", "start": 0, "type": "Identifier" @@ -1858,14 +2085,17 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -1879,11 +2109,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1896,6 +2128,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidStepVertical", "start": 0, "type": "Identifier" @@ -1907,9 +2140,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidHeight", "start": 0, "type": "Identifier" @@ -1919,14 +2154,17 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -1940,11 +2178,13 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1957,6 +2197,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidPlane", "start": 0, "type": "Identifier" @@ -1968,6 +2209,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1976,9 +2218,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1994,9 +2238,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2007,6 +2253,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2014,9 +2261,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelBody", "start": 0, "type": "Identifier" @@ -2027,11 +2276,13 @@ description: Result of parsing sash-window.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2044,6 +2295,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidShape", "start": 0, "type": "Identifier" @@ -2057,6 +2309,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2072,9 +2325,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidAreaWidth", "start": 0, "type": "Identifier" @@ -2086,15 +2341,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2116,9 +2374,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidAreaHeight", "start": 0, "type": "Identifier" @@ -2130,15 +2390,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2154,6 +2417,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2164,9 +2428,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2177,6 +2443,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2184,9 +2451,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidPlane", "start": 0, "type": "Identifier" @@ -2204,6 +2473,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2212,9 +2482,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidHeight", "start": 0, "type": "Identifier" @@ -2230,9 +2502,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2243,6 +2517,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2255,6 +2530,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2263,9 +2539,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidWidth", "start": 0, "type": "Identifier" @@ -2281,9 +2559,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2294,6 +2574,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2306,6 +2587,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2315,9 +2597,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidHeight", "start": 0, "type": "Identifier" @@ -2329,6 +2613,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2340,9 +2625,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2353,6 +2640,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2365,6 +2653,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2373,13 +2662,16 @@ description: Result of parsing sash-window.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2390,25 +2682,30 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2419,12 +2716,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2432,6 +2731,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2442,9 +2742,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2455,19 +2757,23 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2478,6 +2784,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2490,6 +2797,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2498,9 +2806,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountHorizontal", "start": 0, "type": "Identifier" @@ -2516,6 +2826,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2524,9 +2835,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidStepHorizontal", "start": 0, "type": "Identifier" @@ -2542,6 +2855,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2552,6 +2866,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2564,6 +2879,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2575,6 +2891,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2585,9 +2902,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -2598,12 +2917,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2616,6 +2937,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2624,9 +2946,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountVertical", "start": 0, "type": "Identifier" @@ -2642,6 +2966,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2650,9 +2975,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidStepVertical", "start": 0, "type": "Identifier" @@ -2668,6 +2995,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2678,6 +3006,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2690,6 +3019,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2701,6 +3031,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2711,9 +3042,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -2724,12 +3057,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2738,15 +3073,18 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2759,6 +3097,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidBody", "start": 0, "type": "Identifier" @@ -2772,6 +3111,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2781,9 +3121,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -2795,6 +3137,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2806,9 +3149,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2819,6 +3164,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2826,9 +3172,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "voidShape", "start": 0, "type": "Identifier" @@ -2846,6 +3194,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -2853,6 +3202,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#a55e2c\"", "start": 0, "type": "Literal", @@ -2865,9 +3215,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -2878,6 +3230,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2886,15 +3239,18 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2904,9 +3260,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelBody", "start": 0, "type": "Identifier" @@ -2918,6 +3276,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2925,12 +3284,14 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2942,6 +3303,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2956,12 +3318,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2972,6 +3336,7 @@ description: Result of parsing sash-window.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2982,6 +3347,7 @@ description: Result of parsing sash-window.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2992,6 +3358,7 @@ description: Result of parsing sash-window.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3002,6 +3369,7 @@ description: Result of parsing sash-window.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -3012,6 +3380,7 @@ description: Result of parsing sash-window.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "perimeter", "start": 0, "type": "Identifier" @@ -3022,6 +3391,7 @@ description: Result of parsing sash-window.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -3032,6 +3402,7 @@ description: Result of parsing sash-window.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountHorizontal", "start": 0, "type": "Identifier" @@ -3042,6 +3413,7 @@ description: Result of parsing sash-window.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountVertical", "start": 0, "type": "Identifier" @@ -3052,11 +3424,13 @@ description: Result of parsing sash-window.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -3074,6 +3448,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frame", "start": 0, "type": "Identifier" @@ -3085,6 +3460,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -3093,9 +3469,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -3111,6 +3489,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3123,9 +3502,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameDepth", "start": 0, "type": "Identifier" @@ -3137,15 +3518,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3165,6 +3549,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3173,9 +3558,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowWidth", "start": 0, "type": "Identifier" @@ -3191,6 +3578,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3199,9 +3587,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowHeight", "start": 0, "type": "Identifier" @@ -3217,6 +3607,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -3225,9 +3616,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameDepth", "start": 0, "type": "Identifier" @@ -3243,6 +3636,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "perimeter", "start": 0, "type": "Identifier" @@ -3251,9 +3645,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -3269,6 +3665,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -3276,6 +3673,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -3291,6 +3689,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountHorizontal", "start": 0, "type": "Identifier" @@ -3298,6 +3697,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3313,6 +3713,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountVertical", "start": 0, "type": "Identifier" @@ -3320,6 +3721,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3335,9 +3737,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelFn", "start": 0, "type": "Identifier" @@ -3348,16 +3752,19 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3375,6 +3782,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottomSash", "start": 0, "type": "Identifier" @@ -3388,6 +3796,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -3396,9 +3805,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -3414,6 +3825,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3431,9 +3843,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameDepth", "start": 0, "type": "Identifier" @@ -3443,10 +3857,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3460,14 +3876,17 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashDepth", "start": 0, "type": "Identifier" @@ -3481,10 +3900,12 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3504,6 +3925,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -3512,9 +3934,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashWidth", "start": 0, "type": "Identifier" @@ -3530,6 +3954,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -3538,9 +3963,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashHeight", "start": 0, "type": "Identifier" @@ -3556,6 +3983,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -3564,9 +3992,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashDepth", "start": 0, "type": "Identifier" @@ -3582,6 +4012,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "perimeter", "start": 0, "type": "Identifier" @@ -3590,9 +4021,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -3608,6 +4041,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -3615,6 +4049,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -3630,6 +4065,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountHorizontal", "start": 0, "type": "Identifier" @@ -3638,9 +4074,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashOpeningCountHorizontal", "start": 0, "type": "Identifier" @@ -3656,6 +4094,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountVertical", "start": 0, "type": "Identifier" @@ -3664,9 +4103,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashOpeningCountVertical", "start": 0, "type": "Identifier" @@ -3682,9 +4123,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelFn", "start": 0, "type": "Identifier" @@ -3695,6 +4138,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3707,6 +4151,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -3714,6 +4159,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3729,6 +4175,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -3736,6 +4183,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3751,6 +4199,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -3765,9 +4214,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -3777,10 +4228,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3794,6 +4247,7 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3802,9 +4256,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashHeight", "start": 0, "type": "Identifier" @@ -3814,10 +4270,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3841,9 +4299,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -3854,12 +4314,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3872,6 +4334,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -3879,6 +4342,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3894,6 +4358,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -3901,6 +4366,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3916,6 +4382,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -3924,9 +4391,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashTravelDistance", "start": 0, "type": "Identifier" @@ -3942,9 +4411,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -3955,12 +4426,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3969,12 +4442,14 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3986,6 +4461,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3997,6 +4473,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4013,11 +4490,13 @@ description: Result of parsing sash-window.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4035,6 +4514,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateWidth", "start": 0, "type": "Identifier" @@ -4042,6 +4522,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13", "start": 0, "type": "Literal", @@ -4051,11 +4532,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4068,6 +4551,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateLength", "start": 0, "type": "Identifier" @@ -4075,6 +4559,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4084,11 +4569,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4101,6 +4588,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateThickness", "start": 0, "type": "Identifier" @@ -4108,6 +4596,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4117,11 +4606,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4134,18 +4625,22 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlatePlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4156,6 +4651,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4166,6 +4662,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -4177,9 +4674,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -4189,10 +4688,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4212,9 +4713,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -4225,6 +4728,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4232,9 +4736,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4246,11 +4752,13 @@ description: Result of parsing sash-window.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4263,6 +4771,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateShape", "start": 0, "type": "Identifier" @@ -4276,6 +4785,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4291,9 +4801,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateLength", "start": 0, "type": "Identifier" @@ -4305,15 +4817,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4335,9 +4850,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateWidth", "start": 0, "type": "Identifier" @@ -4349,15 +4866,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4373,6 +4893,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4383,9 +4904,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4396,6 +4919,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4403,9 +4927,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlatePlane", "start": 0, "type": "Identifier" @@ -4423,6 +4949,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4431,9 +4958,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateWidth", "start": 0, "type": "Identifier" @@ -4449,9 +4978,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4462,6 +4993,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4474,6 +5006,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4482,9 +5015,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateLength", "start": 0, "type": "Identifier" @@ -4500,9 +5035,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4513,6 +5050,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4525,6 +5063,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4534,9 +5073,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateWidth", "start": 0, "type": "Identifier" @@ -4548,6 +5089,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4559,9 +5101,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4572,6 +5116,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4584,6 +5129,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4592,13 +5138,16 @@ description: Result of parsing sash-window.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4609,25 +5158,30 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4638,12 +5192,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4651,6 +5207,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4661,9 +5218,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4674,19 +5233,23 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4697,6 +5260,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4705,15 +5269,18 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4726,6 +5293,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateBody", "start": 0, "type": "Identifier" @@ -4739,6 +5307,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4747,9 +5316,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateThickness", "start": 0, "type": "Identifier" @@ -4765,9 +5336,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4778,6 +5351,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4785,9 +5359,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateShape", "start": 0, "type": "Identifier" @@ -4805,6 +5381,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -4812,6 +5389,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4827,6 +5405,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -4839,9 +5418,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameDepth", "start": 0, "type": "Identifier" @@ -4853,15 +5434,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4881,6 +5465,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -4888,6 +5473,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4903,9 +5489,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -4916,12 +5504,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4934,6 +5524,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -4941,6 +5532,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4956,6 +5548,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -4963,6 +5556,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4978,6 +5572,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -4986,9 +5581,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashTravelDistance", "start": 0, "type": "Identifier" @@ -5004,9 +5601,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5017,12 +5616,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5031,12 +5632,14 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5048,6 +5651,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5064,11 +5668,13 @@ description: Result of parsing sash-window.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5081,6 +5687,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchCylinderHeight", "start": 0, "type": "Identifier" @@ -5088,6 +5695,7 @@ description: Result of parsing sash-window.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -5097,11 +5705,13 @@ description: Result of parsing sash-window.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5114,18 +5724,22 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchCylinderPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5136,6 +5750,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5146,6 +5761,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5154,9 +5770,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateThickness", "start": 0, "type": "Identifier" @@ -5172,9 +5790,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5185,6 +5805,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5192,9 +5813,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlatePlane", "start": 0, "type": "Identifier" @@ -5206,11 +5829,13 @@ description: Result of parsing sash-window.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5223,6 +5848,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchCylinderShape", "start": 0, "type": "Identifier" @@ -5236,6 +5862,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5246,6 +5873,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -5259,6 +5887,7 @@ description: Result of parsing sash-window.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5270,6 +5899,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5277,6 +5907,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5287,9 +5918,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5300,6 +5933,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5307,9 +5941,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchCylinderPlane", "start": 0, "type": "Identifier" @@ -5327,6 +5963,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5335,6 +5972,7 @@ description: Result of parsing sash-window.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -5346,6 +5984,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5357,9 +5996,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5370,6 +6011,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5382,6 +6024,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -5393,6 +6036,7 @@ description: Result of parsing sash-window.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -5404,6 +6048,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5412,6 +6057,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5423,6 +6069,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5433,6 +6080,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5443,6 +6091,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -5455,6 +6104,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5466,6 +6116,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5476,9 +6127,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -5489,6 +6142,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5501,6 +6155,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5508,6 +6163,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -5523,9 +6179,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5536,6 +6194,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5548,6 +6207,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5556,13 +6216,16 @@ description: Result of parsing sash-window.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5573,25 +6236,30 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5602,12 +6270,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5615,6 +6285,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5625,9 +6296,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5638,19 +6311,23 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5661,6 +6338,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5669,15 +6347,18 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5690,6 +6371,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchCylinderBody", "start": 0, "type": "Identifier" @@ -5703,6 +6385,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5711,9 +6394,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchCylinderHeight", "start": 0, "type": "Identifier" @@ -5729,9 +6414,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5742,6 +6429,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5749,9 +6437,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchCylinderShape", "start": 0, "type": "Identifier" @@ -5769,6 +6459,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -5776,6 +6467,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5791,6 +6483,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -5803,9 +6496,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameDepth", "start": 0, "type": "Identifier" @@ -5817,15 +6512,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5845,6 +6543,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -5852,6 +6551,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5867,9 +6567,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5880,12 +6582,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5898,6 +6602,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -5905,6 +6610,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5920,6 +6626,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -5927,6 +6634,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5942,6 +6650,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -5950,9 +6659,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashTravelDistance", "start": 0, "type": "Identifier" @@ -5968,9 +6679,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -5981,12 +6694,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5999,6 +6714,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -6006,6 +6722,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6021,6 +6738,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -6028,6 +6746,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6043,6 +6762,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -6054,6 +6774,7 @@ description: Result of parsing sash-window.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -6065,19 +6786,23 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowState", "start": 0, "type": "Identifier" @@ -6097,9 +6822,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -6110,12 +6837,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6124,12 +6853,14 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6143,6 +6874,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6159,11 +6891,13 @@ description: Result of parsing sash-window.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6176,6 +6910,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topSash", "start": 0, "type": "Identifier" @@ -6189,6 +6924,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -6197,9 +6933,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -6215,6 +6953,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -6236,9 +6975,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameDepth", "start": 0, "type": "Identifier" @@ -6248,10 +6989,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6265,14 +7008,17 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashDepth", "start": 0, "type": "Identifier" @@ -6288,15 +7034,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6310,14 +7059,17 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashDepth", "start": 0, "type": "Identifier" @@ -6337,6 +7089,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -6345,9 +7098,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashWidth", "start": 0, "type": "Identifier" @@ -6363,6 +7118,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -6371,9 +7127,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashHeight", "start": 0, "type": "Identifier" @@ -6389,6 +7147,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -6397,9 +7156,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashDepth", "start": 0, "type": "Identifier" @@ -6415,6 +7176,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "perimeter", "start": 0, "type": "Identifier" @@ -6423,9 +7185,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -6441,6 +7205,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divisionThickness", "start": 0, "type": "Identifier" @@ -6448,6 +7213,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -6463,6 +7229,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountHorizontal", "start": 0, "type": "Identifier" @@ -6471,9 +7238,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashOpeningCountHorizontal", "start": 0, "type": "Identifier" @@ -6489,6 +7258,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "openingCountVertical", "start": 0, "type": "Identifier" @@ -6497,9 +7267,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashOpeningCountVertical", "start": 0, "type": "Identifier" @@ -6515,9 +7287,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelFn", "start": 0, "type": "Identifier" @@ -6528,6 +7302,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6540,6 +7315,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -6547,6 +7323,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6562,6 +7339,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -6569,6 +7347,7 @@ description: Result of parsing sash-window.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6584,6 +7363,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -6598,9 +7378,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sashHeight", "start": 0, "type": "Identifier" @@ -6610,10 +7392,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6627,6 +7411,7 @@ description: Result of parsing sash-window.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6635,9 +7420,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameWidth", "start": 0, "type": "Identifier" @@ -6647,10 +7434,12 @@ description: Result of parsing sash-window.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6674,9 +7463,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -6687,12 +7478,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6701,12 +7494,14 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6723,11 +7518,13 @@ description: Result of parsing sash-window.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6740,18 +7537,22 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchNutPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6762,6 +7563,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6769,9 +7571,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -6782,11 +7586,13 @@ description: Result of parsing sash-window.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6799,6 +7605,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchNutShape", "start": 0, "type": "Identifier" @@ -6812,6 +7619,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6827,9 +7635,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateLength", "start": 0, "type": "Identifier" @@ -6841,15 +7651,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6871,9 +7684,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateWidth", "start": 0, "type": "Identifier" @@ -6885,15 +7700,18 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6909,6 +7727,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6919,9 +7738,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6932,6 +7753,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6939,9 +7761,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchNutPlane", "start": 0, "type": "Identifier" @@ -6959,6 +7783,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6967,9 +7792,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateWidth", "start": 0, "type": "Identifier" @@ -6985,9 +7812,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6998,6 +7827,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7010,6 +7840,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7018,9 +7849,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateLength", "start": 0, "type": "Identifier" @@ -7036,9 +7869,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7049,6 +7884,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7061,6 +7897,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7070,9 +7907,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateWidth", "start": 0, "type": "Identifier" @@ -7084,6 +7923,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7095,9 +7935,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7108,6 +7950,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7120,6 +7963,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7128,13 +7972,16 @@ description: Result of parsing sash-window.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -7145,25 +7992,30 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -7174,12 +8026,14 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7187,6 +8041,7 @@ description: Result of parsing sash-window.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7197,9 +8052,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7210,19 +8067,23 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -7233,6 +8094,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7241,15 +8103,18 @@ description: Result of parsing sash-window.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7262,6 +8127,7 @@ description: Result of parsing sash-window.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchNutPlateBody", "start": 0, "type": "Identifier" @@ -7273,6 +8139,7 @@ description: Result of parsing sash-window.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7281,9 +8148,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchPlateThickness", "start": 0, "type": "Identifier" @@ -7299,9 +8168,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7312,6 +8183,7 @@ description: Result of parsing sash-window.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7319,9 +8191,11 @@ description: Result of parsing sash-window.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "latchNutShape", "start": 0, "type": "Identifier" @@ -7332,11 +8206,13 @@ description: Result of parsing sash-window.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7348,9 +8224,11 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -7369,19 +8247,23 @@ description: Result of parsing sash-window.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -7398,15 +8280,18 @@ description: Result of parsing sash-window.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -7422,12 +8307,14 @@ description: Result of parsing sash-window.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "16": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7440,6 +8327,7 @@ description: Result of parsing sash-window.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/ast.snap b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/ast.snap index 99fd3b8f9..52ccec2be 100644 --- a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltDiameter", "start": 0, "type": "Identifier" @@ -23,6 +24,7 @@ description: Result of parsing sheet-metal-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -32,10 +34,12 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -49,11 +53,13 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Input bolt pattern dimensions to mount the bracket" ], @@ -69,6 +75,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltPatternX", "start": 0, "type": "Identifier" @@ -76,6 +83,7 @@ description: Result of parsing sheet-metal-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -85,11 +93,13 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -102,6 +112,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltPatternY", "start": 0, "type": "Identifier" @@ -109,6 +120,7 @@ description: Result of parsing sheet-metal-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -118,11 +130,13 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -135,6 +149,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltDiameter", "start": 0, "type": "Identifier" @@ -145,6 +160,7 @@ description: Result of parsing sheet-metal-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -154,10 +170,12 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -171,11 +189,13 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -193,6 +213,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltPatternX", "start": 0, "type": "Identifier" @@ -200,6 +221,7 @@ description: Result of parsing sheet-metal-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -209,11 +231,13 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -226,6 +250,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltPatternY", "start": 0, "type": "Identifier" @@ -233,6 +258,7 @@ description: Result of parsing sheet-metal-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -242,11 +268,13 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -259,6 +287,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hatHeight", "start": 0, "type": "Identifier" @@ -266,6 +295,7 @@ description: Result of parsing sheet-metal-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -275,11 +305,13 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -297,6 +329,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -304,6 +337,7 @@ description: Result of parsing sheet-metal-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "75", "start": 0, "type": "Literal", @@ -313,11 +347,13 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -330,6 +366,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -337,6 +374,7 @@ description: Result of parsing sheet-metal-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -346,11 +384,13 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -363,6 +403,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorBendRadius", "start": 0, "type": "Identifier" @@ -370,6 +411,7 @@ description: Result of parsing sheet-metal-bracket.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -379,11 +421,13 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -396,6 +440,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exteriorBendRadius", "start": 0, "type": "Identifier" @@ -407,9 +452,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorBendRadius", "start": 0, "type": "Identifier" @@ -419,14 +466,17 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -440,11 +490,13 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -462,6 +514,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overhang", "start": 0, "type": "Identifier" @@ -472,6 +525,7 @@ description: Result of parsing sheet-metal-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -481,14 +535,17 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltDiameter", "start": 0, "type": "Identifier" @@ -502,11 +559,13 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -519,6 +578,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeLength", "start": 0, "type": "Identifier" @@ -529,6 +589,7 @@ description: Result of parsing sheet-metal-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -538,14 +599,17 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltDiameter", "start": 0, "type": "Identifier" @@ -559,11 +623,13 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -576,6 +642,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeExtrusion", "start": 0, "type": "Identifier" @@ -589,9 +656,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltPatternY", "start": 0, "type": "Identifier" @@ -601,14 +670,17 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": ">", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltPatternY", "start": 0, "type": "Identifier" @@ -637,9 +709,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltPatternY", "start": 0, "type": "Identifier" @@ -649,6 +723,7 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -657,9 +732,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overhang", "start": 0, "type": "Identifier" @@ -669,10 +746,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -690,6 +769,7 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -697,8 +777,10 @@ description: Result of parsing sheet-metal-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, + "moduleId": 0, "start": 0, "then_val": { "body": [ @@ -712,9 +794,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltPatternY", "start": 0, "type": "Identifier" @@ -724,6 +808,7 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -732,9 +817,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overhang", "start": 0, "type": "Identifier" @@ -744,10 +831,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -765,6 +854,7 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -772,16 +862,19 @@ description: Result of parsing sheet-metal-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "type": "IfExpression", "type": "IfExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -794,6 +887,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketProfile", "start": 0, "type": "Identifier" @@ -801,13 +895,16 @@ description: Result of parsing sheet-metal-bracket.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -818,6 +915,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -825,9 +923,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -845,6 +945,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -863,9 +964,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltPatternX", "start": 0, "type": "Identifier" @@ -877,15 +980,18 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -899,14 +1005,17 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overhang", "start": 0, "type": "Identifier" @@ -923,6 +1032,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -934,6 +1044,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -944,9 +1055,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -957,6 +1070,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -969,6 +1083,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -977,9 +1092,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeLength", "start": 0, "type": "Identifier" @@ -995,9 +1112,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1008,6 +1127,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1020,6 +1140,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1028,9 +1149,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exteriorBendRadius", "start": 0, "type": "Identifier" @@ -1046,6 +1169,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1054,9 +1178,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -1072,9 +1198,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1085,6 +1213,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1097,6 +1226,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1105,9 +1235,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -1123,6 +1255,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -1134,9 +1267,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hatHeight", "start": 0, "type": "Identifier" @@ -1146,14 +1281,17 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1173,6 +1311,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1180,6 +1319,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1191,9 +1331,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1204,6 +1346,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1216,6 +1359,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1224,9 +1368,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorBendRadius", "start": 0, "type": "Identifier" @@ -1242,6 +1388,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1251,9 +1398,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -1265,6 +1414,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1276,9 +1426,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1289,6 +1441,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1301,6 +1454,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1308,6 +1462,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1323,6 +1478,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1330,6 +1486,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1341,9 +1498,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1354,6 +1513,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1366,18 +1526,22 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1388,6 +1552,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1395,9 +1560,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1414,9 +1581,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1427,6 +1596,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1439,6 +1609,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1447,9 +1618,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorBendRadius", "start": 0, "type": "Identifier" @@ -1465,6 +1638,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1474,9 +1648,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -1488,6 +1664,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1499,9 +1676,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1512,6 +1691,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1524,6 +1704,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1533,9 +1714,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -1547,6 +1730,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1558,18 +1742,22 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1580,6 +1768,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1587,9 +1776,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1606,9 +1797,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1619,6 +1812,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1631,6 +1825,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1639,9 +1834,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exteriorBendRadius", "start": 0, "type": "Identifier" @@ -1657,6 +1854,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1665,9 +1863,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -1683,9 +1883,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1696,6 +1898,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1708,6 +1911,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1716,9 +1920,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeLength", "start": 0, "type": "Identifier" @@ -1734,9 +1940,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1747,6 +1955,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1759,6 +1968,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1767,9 +1977,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1785,6 +1997,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1792,6 +2005,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1803,9 +2017,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1816,6 +2032,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1828,6 +2045,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1837,9 +2055,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeLength", "start": 0, "type": "Identifier" @@ -1851,6 +2071,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1862,6 +2083,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1869,6 +2091,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1880,9 +2103,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1893,6 +2118,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1905,6 +2131,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1913,9 +2140,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorBendRadius", "start": 0, "type": "Identifier" @@ -1931,6 +2160,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1940,9 +2170,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -1954,6 +2186,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1965,9 +2198,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1978,6 +2213,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1990,6 +2226,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2000,6 +2237,7 @@ description: Result of parsing sheet-metal-bracket.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2009,14 +2247,17 @@ description: Result of parsing sheet-metal-bracket.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -2036,18 +2277,22 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2058,6 +2303,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2065,9 +2311,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2084,9 +2332,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2097,6 +2347,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2109,6 +2360,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2117,9 +2369,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exteriorBendRadius", "start": 0, "type": "Identifier" @@ -2135,6 +2389,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2143,9 +2398,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -2161,9 +2418,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2174,6 +2433,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2186,6 +2446,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2193,6 +2454,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2208,6 +2470,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2215,6 +2478,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2226,9 +2490,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2239,6 +2505,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2251,19 +2518,23 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2274,6 +2545,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2281,9 +2553,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -2296,6 +2570,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2307,9 +2582,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2320,6 +2597,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2332,6 +2610,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2340,9 +2619,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exteriorBendRadius", "start": 0, "type": "Identifier" @@ -2358,6 +2639,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2366,9 +2648,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -2384,9 +2668,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2397,6 +2683,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2409,6 +2696,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2420,9 +2708,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -2432,10 +2722,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2455,18 +2747,22 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2477,6 +2773,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2484,9 +2781,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2503,9 +2802,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2516,6 +2817,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2528,6 +2830,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2536,9 +2839,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorBendRadius", "start": 0, "type": "Identifier" @@ -2554,6 +2859,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2563,9 +2869,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendAngle", "start": 0, "type": "Identifier" @@ -2577,6 +2885,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2588,9 +2897,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2601,6 +2912,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2613,6 +2925,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2622,9 +2935,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeLength", "start": 0, "type": "Identifier" @@ -2636,6 +2951,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2647,6 +2963,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2654,6 +2971,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2665,9 +2983,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2678,6 +2998,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2690,6 +3011,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2698,13 +3020,16 @@ description: Result of parsing sheet-metal-bracket.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2715,25 +3040,30 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2744,12 +3074,14 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2757,6 +3089,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2767,6 +3100,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2774,6 +3108,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2785,9 +3120,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2798,19 +3135,23 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2821,6 +3162,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2833,6 +3175,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2841,9 +3184,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeExtrusion", "start": 0, "type": "Identifier" @@ -2859,9 +3204,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2872,6 +3219,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2884,6 +3232,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2895,9 +3244,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeLength", "start": 0, "type": "Identifier" @@ -2907,10 +3258,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2930,6 +3283,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2941,9 +3295,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2954,13 +3310,16 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -2971,6 +3330,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2978,9 +3338,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2995,9 +3357,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg07", "start": 0, "type": "Identifier" @@ -3008,13 +3372,16 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -3025,6 +3392,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3032,9 +3400,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg07", "start": 0, "type": "Identifier" @@ -3047,6 +3417,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3057,9 +3428,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -3070,6 +3443,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3078,12 +3452,14 @@ description: Result of parsing sheet-metal-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "26": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3100,11 +3476,13 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3122,6 +3500,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leftFlangeBoltPattern", "start": 0, "type": "Identifier" @@ -3135,6 +3514,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3143,9 +3523,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -3161,9 +3543,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3174,6 +3558,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3181,9 +3566,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketProfile", "start": 0, "type": "Identifier" @@ -3201,6 +3588,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3216,9 +3604,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltPatternX", "start": 0, "type": "Identifier" @@ -3230,15 +3620,18 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3256,9 +3649,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overhang", "start": 0, "type": "Identifier" @@ -3270,6 +3665,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3280,6 +3676,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3291,9 +3688,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltDiameter", "start": 0, "type": "Identifier" @@ -3303,10 +3702,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3326,9 +3727,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3339,6 +3742,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3351,6 +3755,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3358,6 +3763,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3373,6 +3779,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -3381,9 +3788,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltPatternY", "start": 0, "type": "Identifier" @@ -3399,6 +3808,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3409,6 +3819,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3421,6 +3832,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3432,6 +3844,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3442,9 +3855,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -3455,12 +3870,14 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3473,6 +3890,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3482,9 +3900,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -3496,6 +3916,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3507,9 +3928,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3520,6 +3943,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3528,12 +3952,14 @@ description: Result of parsing sheet-metal-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3550,11 +3976,13 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3567,6 +3995,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rightFlangeBoltPattern", "start": 0, "type": "Identifier" @@ -3580,6 +4009,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3588,9 +4018,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg06", "start": 0, "type": "Identifier" @@ -3606,9 +4038,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3619,6 +4053,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3626,9 +4061,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketProfile", "start": 0, "type": "Identifier" @@ -3646,6 +4083,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3660,9 +4098,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltPatternX", "start": 0, "type": "Identifier" @@ -3672,10 +4112,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3693,9 +4135,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "overhang", "start": 0, "type": "Identifier" @@ -3707,6 +4151,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3717,6 +4162,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3728,9 +4174,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltDiameter", "start": 0, "type": "Identifier" @@ -3740,10 +4188,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3763,9 +4213,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3776,6 +4228,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3788,6 +4241,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3795,6 +4249,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3810,6 +4265,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -3818,9 +4274,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mountingBoltPatternY", "start": 0, "type": "Identifier" @@ -3836,6 +4294,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3846,6 +4305,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3858,6 +4318,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3869,6 +4330,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3879,9 +4341,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -3892,12 +4356,14 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3910,6 +4376,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3919,9 +4386,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -3933,6 +4402,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3944,9 +4414,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3957,6 +4429,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3965,12 +4438,14 @@ description: Result of parsing sheet-metal-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3987,11 +4462,13 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4004,6 +4481,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topFlangeBoltPattern", "start": 0, "type": "Identifier" @@ -4017,6 +4495,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -4025,9 +4504,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -4043,9 +4524,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4056,6 +4539,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4063,9 +4547,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketProfile", "start": 0, "type": "Identifier" @@ -4083,6 +4569,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4098,9 +4585,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltPatternX", "start": 0, "type": "Identifier" @@ -4112,15 +4601,18 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4145,9 +4637,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltPatternY", "start": 0, "type": "Identifier" @@ -4159,15 +4653,18 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4181,6 +4678,7 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -4189,9 +4687,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeExtrusion", "start": 0, "type": "Identifier" @@ -4201,10 +4701,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4224,6 +4726,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4234,6 +4737,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4245,9 +4749,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltDiameter", "start": 0, "type": "Identifier" @@ -4257,10 +4763,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4280,9 +4788,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4293,6 +4803,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4305,6 +4816,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4312,6 +4824,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4327,6 +4840,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4335,9 +4849,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltPatternX", "start": 0, "type": "Identifier" @@ -4353,6 +4869,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4363,6 +4880,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4375,6 +4893,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4386,6 +4905,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4396,9 +4916,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -4409,12 +4931,14 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4427,6 +4951,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4434,6 +4959,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4449,6 +4975,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4457,9 +4984,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "componentBoltPatternY", "start": 0, "type": "Identifier" @@ -4475,6 +5004,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4485,6 +5015,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4497,6 +5028,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4508,6 +5040,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4518,9 +5051,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -4531,12 +5066,14 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4549,6 +5086,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4558,9 +5096,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -4572,6 +5112,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4583,9 +5124,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4596,6 +5139,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4604,12 +5148,14 @@ description: Result of parsing sheet-metal-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4626,11 +5172,13 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4643,6 +5191,7 @@ description: Result of parsing sheet-metal-bracket.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centeredHole", "start": 0, "type": "Identifier" @@ -4656,6 +5205,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -4664,9 +5214,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -4682,9 +5234,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4695,6 +5249,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4702,9 +5257,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracketProfile", "start": 0, "type": "Identifier" @@ -4722,6 +5279,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4732,6 +5290,7 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4748,9 +5307,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "flangeExtrusion", "start": 0, "type": "Identifier" @@ -4760,10 +5321,12 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4779,6 +5342,7 @@ description: Result of parsing sheet-metal-bracket.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4789,6 +5353,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4796,6 +5361,7 @@ description: Result of parsing sheet-metal-bracket.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -4811,9 +5377,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4824,6 +5392,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4836,6 +5405,7 @@ description: Result of parsing sheet-metal-bracket.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4845,9 +5415,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -4859,6 +5431,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4870,9 +5443,11 @@ description: Result of parsing sheet-metal-bracket.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4883,6 +5458,7 @@ description: Result of parsing sheet-metal-bracket.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4891,15 +5467,18 @@ description: Result of parsing sheet-metal-bracket.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4911,9 +5490,11 @@ description: Result of parsing sheet-metal-bracket.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -4932,19 +5513,23 @@ description: Result of parsing sheet-metal-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -4961,15 +5546,18 @@ description: Result of parsing sheet-metal-bracket.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4985,12 +5573,14 @@ description: Result of parsing sheet-metal-bracket.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/program_memory.snap index 82bfcfc42..b4c662d0b 100644 --- a/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/sheet-metal-bracket/program_memory.snap @@ -44,6 +44,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -64,6 +65,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -105,6 +107,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -118,6 +121,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -152,6 +156,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -186,6 +191,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -199,6 +205,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -265,6 +272,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -314,6 +322,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -444,6 +453,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -469,6 +479,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -561,6 +572,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -672,6 +684,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -697,6 +710,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -989,6 +1003,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -1009,6 +1024,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -1050,6 +1066,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -1063,6 +1080,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -1097,6 +1115,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -1131,6 +1150,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -1144,6 +1164,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -1210,6 +1231,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -1259,6 +1281,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -1389,6 +1412,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -1414,6 +1438,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -1506,6 +1531,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -1617,6 +1643,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -1642,6 +1669,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -2077,6 +2105,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -2097,6 +2126,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -2138,6 +2168,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -2151,6 +2182,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -2185,6 +2217,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -2219,6 +2252,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -2232,6 +2266,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -2298,6 +2333,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -2347,6 +2383,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -2477,6 +2514,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -2502,6 +2540,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -2594,6 +2633,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -2705,6 +2745,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -2730,6 +2771,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -3058,6 +3100,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -3078,6 +3121,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -3119,6 +3163,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -3132,6 +3177,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -3166,6 +3212,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -3200,6 +3247,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -3213,6 +3261,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -3279,6 +3328,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -3328,6 +3378,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -3458,6 +3509,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -3483,6 +3535,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -3575,6 +3628,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -3686,6 +3740,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -3711,6 +3766,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -4096,6 +4152,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -4116,6 +4173,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -4157,6 +4215,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -4170,6 +4229,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -4204,6 +4264,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -4238,6 +4299,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -4251,6 +4313,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -4317,6 +4380,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -4366,6 +4430,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -4496,6 +4561,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -4521,6 +4587,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -4613,6 +4680,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -4724,6 +4792,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -4749,6 +4818,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -5077,6 +5147,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -5097,6 +5168,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -5138,6 +5210,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -5151,6 +5224,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -5185,6 +5259,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -5219,6 +5294,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -5232,6 +5308,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -5298,6 +5375,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -5347,6 +5425,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -5477,6 +5556,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -5502,6 +5582,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -5594,6 +5675,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -5705,6 +5787,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -5730,6 +5813,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -6111,6 +6195,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -6131,6 +6216,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -6172,6 +6258,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -6185,6 +6272,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -6219,6 +6307,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -6253,6 +6342,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -6266,6 +6356,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -6332,6 +6423,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -6381,6 +6473,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -6511,6 +6604,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -6536,6 +6630,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -6628,6 +6723,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -6739,6 +6835,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -6764,6 +6861,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -7092,6 +7190,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -7112,6 +7211,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -7153,6 +7253,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -7166,6 +7267,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -7200,6 +7302,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -7234,6 +7337,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -7247,6 +7351,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -7313,6 +7418,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -7362,6 +7468,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -7492,6 +7599,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -7517,6 +7625,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -7609,6 +7718,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -7720,6 +7830,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -7745,6 +7856,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -8073,6 +8185,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -8093,6 +8206,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -8134,6 +8248,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -8147,6 +8262,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -8181,6 +8297,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -8215,6 +8332,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -8228,6 +8346,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -8294,6 +8413,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -8343,6 +8463,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -8473,6 +8594,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -8498,6 +8620,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -8590,6 +8713,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -8701,6 +8825,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -8726,6 +8851,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -9054,6 +9180,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -9074,6 +9201,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -9115,6 +9243,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -9128,6 +9257,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -9162,6 +9292,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -9196,6 +9327,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -9209,6 +9341,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" @@ -9275,6 +9408,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1508, "end": 1514, + "moduleId": 0, "start": 1508, "type": "TagDeclarator", "value": "seg01" @@ -9324,6 +9458,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1618, "end": 1624, + "moduleId": 0, "start": 1618, "type": "TagDeclarator", "value": "seg02" @@ -9454,6 +9589,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1927, "end": 1933, + "moduleId": 0, "start": 1927, "type": "TagDeclarator", "value": "seg03" @@ -9479,6 +9615,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 1976, "end": 1982, + "moduleId": 0, "start": 1976, "type": "TagDeclarator", "value": "seg04" @@ -9571,6 +9708,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2218, "end": 2224, + "moduleId": 0, "start": 2218, "type": "TagDeclarator", "value": "seg05" @@ -9682,6 +9820,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2503, "end": 2509, + "moduleId": 0, "start": 2503, "type": "TagDeclarator", "value": "seg06" @@ -9707,6 +9846,7 @@ description: Variables in memory after executing sheet-metal-bracket.kcl "tag": { "commentStart": 2579, "end": 2585, + "moduleId": 0, "start": 2579, "type": "TagDeclarator", "value": "seg07" diff --git a/rust/kcl-lib/tests/kcl_samples/shepherds-hook-bolt/ast.snap b/rust/kcl-lib/tests/kcl_samples/shepherds-hook-bolt/ast.snap index 1641fc4ec..56e52e4be 100644 --- a/rust/kcl-lib/tests/kcl_samples/shepherds-hook-bolt/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/shepherds-hook-bolt/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define bolt geometry parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookRadius", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shankLength", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedEndLength", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nutDistance", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookStartAngle", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "290", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookEndAngle", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "approximatePitch", "start": 0, "type": "Identifier" @@ -258,9 +287,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -270,10 +301,12 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -287,11 +320,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -304,6 +339,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadDepth", "start": 0, "type": "Identifier" @@ -314,6 +350,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6134", "start": 0, "type": "Literal", @@ -323,14 +360,17 @@ description: Result of parsing shepherds-hook-bolt.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "approximatePitch", "start": 0, "type": "Identifier" @@ -344,11 +384,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -361,6 +403,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerRadius", "start": 0, "type": "Identifier" @@ -375,9 +418,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -387,10 +432,12 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -404,14 +451,17 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadDepth", "start": 0, "type": "Identifier" @@ -425,11 +475,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -442,6 +494,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltNumberOfRevolutions", "start": 0, "type": "Identifier" @@ -453,9 +506,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedEndLength", "start": 0, "type": "Identifier" @@ -465,14 +520,17 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "approximatePitch", "start": 0, "type": "Identifier" @@ -486,11 +544,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -503,6 +563,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hypotenuse", "start": 0, "type": "Identifier" @@ -514,9 +575,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookRadius", "start": 0, "type": "Identifier" @@ -526,15 +589,19 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -545,6 +612,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -555,9 +623,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookStartAngle", "start": 0, "type": "Identifier" @@ -567,10 +637,12 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -589,11 +661,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -611,18 +685,22 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "side", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -633,6 +711,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -646,6 +725,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exp", "start": 0, "type": "Identifier" @@ -653,6 +733,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -668,9 +749,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pow", "start": 0, "type": "Identifier" @@ -681,6 +764,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -688,9 +772,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hypotenuse", "start": 0, "type": "Identifier" @@ -701,6 +787,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "arguments": [ @@ -709,6 +796,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exp", "start": 0, "type": "Identifier" @@ -716,6 +804,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -731,9 +820,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pow", "start": 0, "type": "Identifier" @@ -744,6 +835,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -751,9 +843,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookRadius", "start": 0, "type": "Identifier" @@ -769,11 +863,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -786,6 +882,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shankOffset", "start": 0, "type": "Identifier" @@ -797,9 +894,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hypotenuse", "start": 0, "type": "Identifier" @@ -809,14 +908,17 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "side", "start": 0, "type": "Identifier" @@ -830,11 +932,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -847,6 +951,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polarToCartesian", "start": 0, "type": "Identifier" @@ -862,6 +967,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -873,9 +979,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -885,15 +993,19 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -904,6 +1016,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -911,9 +1024,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -928,11 +1043,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -945,6 +1062,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -956,9 +1074,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -968,15 +1088,19 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -987,6 +1111,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -994,9 +1119,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1011,11 +1138,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1028,9 +1157,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1044,9 +1175,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1058,12 +1191,14 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1071,16 +1206,19 @@ description: Result of parsing shepherds-hook-bolt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1091,6 +1229,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1101,11 +1240,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1123,18 +1264,22 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookProfilePlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1145,6 +1290,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1152,9 +1298,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -1165,11 +1313,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1188,6 +1338,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookProfileShape", "start": 0, "type": "Identifier" @@ -1201,6 +1352,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1211,6 +1363,7 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1228,9 +1381,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shankOffset", "start": 0, "type": "Identifier" @@ -1242,19 +1397,23 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shankLength", "start": 0, "type": "Identifier" @@ -1270,6 +1429,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1280,9 +1440,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1293,6 +1455,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1300,9 +1463,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookProfilePlane", "start": 0, "type": "Identifier" @@ -1320,6 +1485,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1330,6 +1496,7 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1344,9 +1511,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shankOffset", "start": 0, "type": "Identifier" @@ -1358,6 +1527,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1365,6 +1535,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1375,9 +1546,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1388,6 +1561,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1400,6 +1574,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1411,6 +1586,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1419,9 +1595,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookRadius", "start": 0, "type": "Identifier" @@ -1437,6 +1615,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1445,9 +1624,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookStartAngle", "start": 0, "type": "Identifier" @@ -1463,9 +1644,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polarToCartesian", "start": 0, "type": "Identifier" @@ -1476,6 +1659,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1487,9 +1671,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1500,6 +1686,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1512,6 +1699,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1523,6 +1711,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1531,9 +1720,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookRadius", "start": 0, "type": "Identifier" @@ -1549,6 +1740,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1557,9 +1749,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookEndAngle", "start": 0, "type": "Identifier" @@ -1575,9 +1769,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polarToCartesian", "start": 0, "type": "Identifier" @@ -1588,6 +1784,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1599,6 +1796,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1606,6 +1804,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1617,9 +1816,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1630,6 +1831,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1638,12 +1840,14 @@ description: Result of parsing shepherds-hook-bolt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1660,11 +1864,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1677,6 +1883,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookSectionPlane", "start": 0, "type": "Identifier" @@ -1688,6 +1895,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1700,9 +1908,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shankOffset", "start": 0, "type": "Identifier" @@ -1714,19 +1924,23 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shankLength", "start": 0, "type": "Identifier" @@ -1746,9 +1960,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1759,6 +1975,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1766,9 +1983,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1779,11 +1998,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1796,6 +2017,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookSectionShape", "start": 0, "type": "Identifier" @@ -1807,6 +2029,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1817,6 +2040,7 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1829,6 +2053,7 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1840,6 +2065,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1850,6 +2076,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1861,9 +2088,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -1873,10 +2102,12 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1896,9 +2127,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1909,6 +2142,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1916,9 +2150,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookSectionPlane", "start": 0, "type": "Identifier" @@ -1929,11 +2165,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1946,6 +2184,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookBody", "start": 0, "type": "Identifier" @@ -1957,6 +2196,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -1965,9 +2205,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookProfileShape", "start": 0, "type": "Identifier" @@ -1983,6 +2225,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sectional", "start": 0, "type": "Identifier" @@ -1990,6 +2233,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2002,9 +2246,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -2015,6 +2261,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2022,9 +2269,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookSectionShape", "start": 0, "type": "Identifier" @@ -2035,11 +2284,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2057,6 +2308,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipPlane", "start": 0, "type": "Identifier" @@ -2068,6 +2320,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2076,9 +2329,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -2094,9 +2349,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2107,6 +2364,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2114,9 +2372,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookBody", "start": 0, "type": "Identifier" @@ -2127,11 +2387,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2149,6 +2411,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipShape", "start": 0, "type": "Identifier" @@ -2160,6 +2423,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2171,9 +2435,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookRadius", "start": 0, "type": "Identifier" @@ -2186,6 +2452,7 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2197,6 +2464,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2207,6 +2475,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2218,9 +2487,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -2230,10 +2501,12 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2253,6 +2526,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2260,6 +2534,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2271,9 +2546,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2284,6 +2561,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2291,9 +2569,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipPlane", "start": 0, "type": "Identifier" @@ -2304,11 +2584,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2321,6 +2603,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipBody", "start": 0, "type": "Identifier" @@ -2334,6 +2617,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2345,9 +2629,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hookRadius", "start": 0, "type": "Identifier" @@ -2357,10 +2643,12 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2380,6 +2668,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagStart", "start": 0, "type": "Identifier" @@ -2387,6 +2676,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2398,6 +2688,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -2405,6 +2696,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2416,9 +2708,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2429,6 +2723,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2436,9 +2731,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipShape", "start": 0, "type": "Identifier" @@ -2456,6 +2753,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2467,9 +2765,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -2479,10 +2779,12 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2502,6 +2804,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2516,6 +2819,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -2527,9 +2831,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2543,9 +2849,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capEnd001", "start": 0, "type": "Identifier" @@ -2557,6 +2865,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2567,9 +2876,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -2580,6 +2891,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2587,6 +2899,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2597,9 +2910,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -2610,6 +2925,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2618,12 +2934,14 @@ description: Result of parsing shepherds-hook-bolt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2635,6 +2953,7 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2651,11 +2970,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2668,18 +2989,22 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltThreadSectionPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2690,6 +3015,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2697,9 +3023,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2710,11 +3038,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2727,6 +3057,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltThreadSectionShapeForRevolve", "start": 0, "type": "Identifier" @@ -2740,6 +3071,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2751,9 +3083,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerRadius", "start": 0, "type": "Identifier" @@ -2774,9 +3108,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shankOffset", "start": 0, "type": "Identifier" @@ -2788,19 +3124,23 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shankLength", "start": 0, "type": "Identifier" @@ -2814,14 +3154,17 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedEndLength", "start": 0, "type": "Identifier" @@ -2837,6 +3180,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2847,9 +3191,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2860,6 +3206,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2867,9 +3214,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltThreadSectionPlane", "start": 0, "type": "Identifier" @@ -2887,6 +3236,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2898,9 +3248,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadDepth", "start": 0, "type": "Identifier" @@ -2917,9 +3269,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "approximatePitch", "start": 0, "type": "Identifier" @@ -2929,10 +3283,12 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2948,6 +3304,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2958,9 +3315,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2971,6 +3330,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2983,6 +3343,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2995,9 +3356,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadDepth", "start": 0, "type": "Identifier" @@ -3009,6 +3372,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3021,9 +3385,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "approximatePitch", "start": 0, "type": "Identifier" @@ -3033,10 +3399,12 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3052,6 +3420,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3062,9 +3431,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3075,6 +3446,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3087,6 +3459,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3097,6 +3470,7 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3109,6 +3483,7 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3120,6 +3495,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3130,6 +3506,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3138,9 +3515,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltNumberOfRevolutions", "start": 0, "type": "Identifier" @@ -3156,6 +3535,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -3164,9 +3544,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "approximatePitch", "start": 0, "type": "Identifier" @@ -3182,9 +3564,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -3195,6 +3579,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3207,6 +3592,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3219,9 +3605,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerRadius", "start": 0, "type": "Identifier" @@ -3233,15 +3621,18 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -3261,9 +3652,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3274,6 +3667,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3286,6 +3680,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3295,9 +3690,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "threadedEndLength", "start": 0, "type": "Identifier" @@ -3309,6 +3706,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3320,9 +3718,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3333,6 +3733,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3345,6 +3746,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3353,13 +3755,16 @@ description: Result of parsing shepherds-hook-bolt.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3370,25 +3775,30 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3399,12 +3809,14 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3412,6 +3824,7 @@ description: Result of parsing shepherds-hook-bolt.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3422,9 +3835,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3435,19 +3850,23 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3458,6 +3877,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3466,12 +3886,14 @@ description: Result of parsing shepherds-hook-bolt.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3488,11 +3910,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3505,6 +3929,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltThreadRevolve", "start": 0, "type": "Identifier" @@ -3516,6 +3941,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3523,6 +3949,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -3538,6 +3965,7 @@ description: Result of parsing shepherds-hook-bolt.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3546,9 +3974,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -3564,9 +3994,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -3577,6 +4009,7 @@ description: Result of parsing shepherds-hook-bolt.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3584,9 +4017,11 @@ description: Result of parsing shepherds-hook-bolt.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltThreadSectionShapeForRevolve", "start": 0, "type": "Identifier" @@ -3597,11 +4032,13 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3613,9 +4050,11 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3634,19 +4073,23 @@ description: Result of parsing shepherds-hook-bolt.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -3663,15 +4106,18 @@ description: Result of parsing shepherds-hook-bolt.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3687,12 +4133,14 @@ description: Result of parsing shepherds-hook-bolt.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3705,6 +4153,7 @@ description: Result of parsing shepherds-hook-bolt.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/shepherds-hook-bolt/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/shepherds-hook-bolt/program_memory.snap index 529480d31..7c45f319c 100644 --- a/rust/kcl-lib/tests/kcl_samples/shepherds-hook-bolt/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/shepherds-hook-bolt/program_memory.snap @@ -704,6 +704,7 @@ description: Variables in memory after executing shepherds-hook-bolt.kcl "tag": { "commentStart": 1558, "end": 1563, + "moduleId": 0, "start": 1558, "type": "TagDeclarator", "value": "hook" @@ -1056,6 +1057,7 @@ description: Variables in memory after executing shepherds-hook-bolt.kcl "tag": { "commentStart": 2148, "end": 2154, + "moduleId": 0, "start": 2148, "type": "TagDeclarator", "value": "seg01" @@ -1069,6 +1071,7 @@ description: Variables in memory after executing shepherds-hook-bolt.kcl "tag": { "commentStart": 2246, "end": 2255, + "moduleId": 0, "start": 2246, "type": "TagDeclarator", "value": "startTag" @@ -1082,6 +1085,7 @@ description: Variables in memory after executing shepherds-hook-bolt.kcl "tag": { "commentStart": 2273, "end": 2283, + "moduleId": 0, "start": 2273, "type": "TagDeclarator", "value": "capEnd001" @@ -1111,6 +1115,7 @@ description: Variables in memory after executing shepherds-hook-bolt.kcl "tag": { "commentStart": 2148, "end": 2154, + "moduleId": 0, "start": 2148, "type": "TagDeclarator", "value": "seg01" @@ -1478,6 +1483,7 @@ description: Variables in memory after executing shepherds-hook-bolt.kcl "tag": { "commentStart": 2148, "end": 2154, + "moduleId": 0, "start": 2148, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/ast.snap b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/ast.snap index b9876054b..4684bb147 100644 --- a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing socket-head-cap-screw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing socket-head-cap-screw.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.190", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing socket-head-cap-screw.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing socket-head-cap-screw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltLength", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing socket-head-cap-screw.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing socket-head-cap-screw.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing socket-head-cap-screw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -90,9 +99,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -102,11 +113,13 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -119,6 +132,7 @@ description: Result of parsing socket-head-cap-screw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadDiameter", "start": 0, "type": "Identifier" @@ -126,6 +140,7 @@ description: Result of parsing socket-head-cap-screw.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.313", "start": 0, "type": "Literal", @@ -135,11 +150,13 @@ description: Result of parsing socket-head-cap-screw.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -152,6 +169,7 @@ description: Result of parsing socket-head-cap-screw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -162,6 +180,7 @@ description: Result of parsing socket-head-cap-screw.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -171,10 +190,12 @@ description: Result of parsing socket-head-cap-screw.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "32", "start": 0, "type": "Literal", @@ -188,11 +209,13 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -205,6 +228,7 @@ description: Result of parsing socket-head-cap-screw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -216,9 +240,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -228,6 +254,7 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -235,6 +262,7 @@ description: Result of parsing socket-head-cap-screw.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -244,15 +272,19 @@ description: Result of parsing socket-head-cap-screw.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -263,12 +295,14 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30deg", "start": 0, "type": "Literal", @@ -287,11 +321,13 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -304,6 +340,7 @@ description: Result of parsing socket-head-cap-screw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -311,13 +348,16 @@ description: Result of parsing socket-head-cap-screw.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -328,6 +368,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -335,9 +376,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -355,6 +398,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -365,6 +409,7 @@ description: Result of parsing socket-head-cap-screw.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -377,6 +422,7 @@ description: Result of parsing socket-head-cap-screw.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -388,6 +434,7 @@ description: Result of parsing socket-head-cap-screw.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -398,6 +445,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -409,9 +457,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadDiameter", "start": 0, "type": "Identifier" @@ -421,10 +471,12 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -444,6 +496,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -451,6 +504,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -462,9 +516,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -475,6 +531,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -487,6 +544,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -496,9 +554,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -510,6 +570,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -521,9 +582,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -534,6 +597,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -546,6 +610,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -553,6 +618,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020", "start": 0, "type": "Literal", @@ -568,6 +634,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -579,9 +646,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topEdge", "start": 0, "type": "Identifier" @@ -592,13 +661,16 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -609,6 +681,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -616,9 +689,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topEdge", "start": 0, "type": "Identifier" @@ -631,6 +706,7 @@ description: Result of parsing socket-head-cap-screw.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -641,9 +717,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -654,6 +732,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -662,12 +741,14 @@ description: Result of parsing socket-head-cap-screw.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -684,11 +765,13 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -706,6 +789,7 @@ description: Result of parsing socket-head-cap-screw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexPatternSketch", "start": 0, "type": "Identifier" @@ -719,6 +803,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -727,9 +812,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -745,9 +832,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -758,6 +847,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -765,9 +855,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -785,6 +877,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -799,9 +892,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -811,10 +906,12 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -835,9 +932,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -847,10 +946,12 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -866,6 +967,7 @@ description: Result of parsing socket-head-cap-screw.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -876,9 +978,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -889,6 +993,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -901,6 +1006,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -908,6 +1014,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -923,6 +1030,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -931,9 +1039,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -949,9 +1059,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -962,6 +1074,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -974,6 +1087,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -981,6 +1095,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "210", "start": 0, "type": "Literal", @@ -996,6 +1111,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1004,9 +1120,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1022,9 +1140,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1035,6 +1155,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1047,6 +1168,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1054,6 +1176,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -1069,6 +1192,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1077,9 +1201,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1095,9 +1221,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1108,6 +1236,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1120,6 +1249,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1127,6 +1257,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1142,6 +1273,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1150,9 +1282,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1168,9 +1302,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1181,6 +1317,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1193,6 +1330,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1200,6 +1338,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -1215,6 +1354,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1223,9 +1363,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1241,9 +1383,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1254,19 +1398,23 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1277,6 +1425,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1289,6 +1438,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1301,9 +1451,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -1315,15 +1467,18 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -1343,9 +1498,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1356,6 +1513,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1364,15 +1522,18 @@ description: Result of parsing socket-head-cap-screw.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1385,6 +1546,7 @@ description: Result of parsing socket-head-cap-screw.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -1398,6 +1560,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1406,9 +1569,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1424,9 +1589,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1437,6 +1604,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1444,9 +1612,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -1464,6 +1634,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1474,6 +1645,7 @@ description: Result of parsing socket-head-cap-screw.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1486,6 +1658,7 @@ description: Result of parsing socket-head-cap-screw.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1497,6 +1670,7 @@ description: Result of parsing socket-head-cap-screw.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1507,6 +1681,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1518,9 +1693,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -1530,10 +1707,12 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1553,6 +1732,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1560,6 +1740,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1571,9 +1752,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1584,6 +1767,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1596,6 +1780,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1604,9 +1789,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltLength", "start": 0, "type": "Identifier" @@ -1622,9 +1809,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1635,6 +1824,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1647,6 +1837,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1654,6 +1845,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".020", "start": 0, "type": "Literal", @@ -1669,6 +1861,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1677,13 +1870,16 @@ description: Result of parsing socket-head-cap-screw.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -1694,6 +1890,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1701,9 +1898,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletEdge", "start": 0, "type": "Identifier" @@ -1716,6 +1915,7 @@ description: Result of parsing socket-head-cap-screw.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1726,9 +1926,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1739,6 +1941,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1751,6 +1954,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1758,6 +1962,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#4dd043\"", "start": 0, "type": "Literal", @@ -1770,6 +1975,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -1777,6 +1983,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1792,6 +1999,7 @@ description: Result of parsing socket-head-cap-screw.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -1799,6 +2007,7 @@ description: Result of parsing socket-head-cap-screw.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1814,9 +2023,11 @@ description: Result of parsing socket-head-cap-screw.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -1827,6 +2038,7 @@ description: Result of parsing socket-head-cap-screw.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1835,15 +2047,18 @@ description: Result of parsing socket-head-cap-screw.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1855,9 +2070,11 @@ description: Result of parsing socket-head-cap-screw.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1876,19 +2093,23 @@ description: Result of parsing socket-head-cap-screw.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1905,15 +2126,18 @@ description: Result of parsing socket-head-cap-screw.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1929,12 +2153,14 @@ description: Result of parsing socket-head-cap-screw.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/program_memory.snap index d8a5c2bed..f46b31fda 100644 --- a/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/socket-head-cap-screw/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing socket-head-cap-screw.kcl "tag": { "commentStart": 1519, "end": 1530, + "moduleId": 0, "start": 1519, "type": "TagDeclarator", "value": "filletEdge" @@ -46,6 +47,7 @@ description: Variables in memory after executing socket-head-cap-screw.kcl "tag": { "commentStart": 1519, "end": 1530, + "moduleId": 0, "start": 1519, "type": "TagDeclarator", "value": "filletEdge" @@ -93,6 +95,7 @@ description: Variables in memory after executing socket-head-cap-screw.kcl "tag": { "commentStart": 744, "end": 752, + "moduleId": 0, "start": 744, "type": "TagDeclarator", "value": "topEdge" @@ -122,6 +125,7 @@ description: Variables in memory after executing socket-head-cap-screw.kcl "tag": { "commentStart": 744, "end": 752, + "moduleId": 0, "start": 744, "type": "TagDeclarator", "value": "topEdge" @@ -332,6 +336,7 @@ description: Variables in memory after executing socket-head-cap-screw.kcl "tag": { "commentStart": 744, "end": 752, + "moduleId": 0, "start": 744, "type": "TagDeclarator", "value": "topEdge" @@ -361,6 +366,7 @@ description: Variables in memory after executing socket-head-cap-screw.kcl "tag": { "commentStart": 744, "end": 752, + "moduleId": 0, "start": 744, "type": "TagDeclarator", "value": "topEdge" @@ -754,6 +760,7 @@ description: Variables in memory after executing socket-head-cap-screw.kcl "tag": { "commentStart": 744, "end": 752, + "moduleId": 0, "start": 744, "type": "TagDeclarator", "value": "topEdge" @@ -783,6 +790,7 @@ description: Variables in memory after executing socket-head-cap-screw.kcl "tag": { "commentStart": 744, "end": 752, + "moduleId": 0, "start": 744, "type": "TagDeclarator", "value": "topEdge" diff --git a/rust/kcl-lib/tests/kcl_samples/spinning-highrise-tower/ast.snap b/rust/kcl-lib/tests/kcl_samples/spinning-highrise-tower/ast.snap index 90290b4ae..d58eb03c3 100644 --- a/rust/kcl-lib/tests/kcl_samples/spinning-highrise-tower/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/spinning-highrise-tower/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorCount", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define global parameters for floor geometry and building layout" ], @@ -49,6 +53,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorHeight", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabWidth", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabThickness", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotationAngleStep", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handrailHeight", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.2", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handrailThickness", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "balconyDepth", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "facadeWidth", "start": 0, "type": "Identifier" @@ -291,9 +324,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabWidth", "start": 0, "type": "Identifier" @@ -303,6 +338,7 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -311,9 +347,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "balconyDepth", "start": 0, "type": "Identifier" @@ -323,10 +361,12 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -344,11 +384,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -366,6 +408,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "facadeHeight", "start": 0, "type": "Identifier" @@ -377,9 +420,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorHeight", "start": 0, "type": "Identifier" @@ -389,14 +434,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabThickness", "start": 0, "type": "Identifier" @@ -410,11 +458,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -427,6 +477,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreHeight", "start": 0, "type": "Identifier" @@ -441,9 +492,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorCount", "start": 0, "type": "Identifier" @@ -453,14 +506,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorHeight", "start": 0, "type": "Identifier" @@ -474,14 +530,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabThickness", "start": 0, "type": "Identifier" @@ -495,11 +554,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -512,6 +573,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frameSide", "start": 0, "type": "Identifier" @@ -519,6 +581,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -528,11 +591,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -545,6 +610,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowTargetWidth", "start": 0, "type": "Identifier" @@ -552,6 +618,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -561,11 +628,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -578,6 +647,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowTargetCount", "start": 0, "type": "Identifier" @@ -589,9 +659,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "facadeWidth", "start": 0, "type": "Identifier" @@ -601,14 +673,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowTargetWidth", "start": 0, "type": "Identifier" @@ -622,11 +697,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -639,18 +716,22 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowCount", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "round", "start": 0, "type": "Identifier" @@ -661,6 +742,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -668,9 +750,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowTargetCount", "start": 0, "type": "Identifier" @@ -681,11 +765,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -698,6 +784,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowWidth", "start": 0, "type": "Identifier" @@ -709,9 +796,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "facadeWidth", "start": 0, "type": "Identifier" @@ -721,14 +810,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "windowCount", "start": 0, "type": "Identifier" @@ -742,11 +834,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -759,6 +853,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxFn", "start": 0, "type": "Identifier" @@ -774,6 +869,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shape", "start": 0, "type": "Identifier" @@ -781,13 +877,16 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -798,6 +897,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -805,9 +905,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -825,6 +927,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -840,9 +943,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -854,15 +959,18 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -884,9 +992,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -898,15 +1008,18 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -922,6 +1035,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -932,9 +1046,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -945,12 +1061,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -963,6 +1081,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -973,6 +1092,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -986,9 +1106,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1000,6 +1122,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1010,9 +1133,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1023,12 +1148,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1041,6 +1168,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1052,9 +1180,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1067,6 +1197,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1078,6 +1209,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1088,9 +1220,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1101,12 +1235,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1119,6 +1255,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1129,6 +1266,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1143,9 +1281,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1157,6 +1297,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1164,6 +1305,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1174,9 +1316,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1187,12 +1331,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1205,6 +1351,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1213,13 +1360,16 @@ description: Result of parsing spinning-highrise-tower.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1230,25 +1380,30 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1259,12 +1414,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1272,6 +1429,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1282,9 +1440,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1295,19 +1455,23 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1318,12 +1482,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1332,15 +1498,18 @@ description: Result of parsing spinning-highrise-tower.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1353,6 +1522,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body", "start": 0, "type": "Identifier" @@ -1364,6 +1534,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1372,9 +1543,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1390,9 +1563,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1403,6 +1578,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1410,9 +1586,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shape", "start": 0, "type": "Identifier" @@ -1423,11 +1601,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1437,9 +1617,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body", "start": 0, "type": "Identifier" @@ -1451,6 +1633,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1458,16 +1641,19 @@ description: Result of parsing spinning-highrise-tower.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -1478,6 +1664,7 @@ description: Result of parsing spinning-highrise-tower.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1488,6 +1675,7 @@ description: Result of parsing spinning-highrise-tower.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1498,11 +1686,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1520,6 +1710,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "transformFn", "start": 0, "type": "Identifier" @@ -1531,6 +1722,7 @@ description: Result of parsing spinning-highrise-tower.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1538,10 +1730,12 @@ description: Result of parsing spinning-highrise-tower.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1550,6 +1744,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1562,6 +1757,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1578,9 +1774,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -1590,14 +1788,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorHeight", "start": 0, "type": "Identifier" @@ -1613,6 +1814,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1624,15 +1826,18 @@ description: Result of parsing spinning-highrise-tower.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotation", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1640,10 +1845,12 @@ description: Result of parsing spinning-highrise-tower.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1653,9 +1860,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotationAngleStep", "start": 0, "type": "Identifier" @@ -1665,14 +1874,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -1700,6 +1912,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1707,16 +1920,19 @@ description: Result of parsing spinning-highrise-tower.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -1728,11 +1944,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1750,6 +1968,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseThickness", "start": 0, "type": "Identifier" @@ -1757,6 +1976,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -1766,11 +1986,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1788,6 +2010,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseSlab", "start": 0, "type": "Identifier" @@ -1801,6 +2024,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -1809,9 +2033,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1827,6 +2053,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1835,9 +2062,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabWidth", "start": 0, "type": "Identifier" @@ -1853,6 +2082,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1862,9 +2092,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseThickness", "start": 0, "type": "Identifier" @@ -1876,6 +2108,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1887,9 +2120,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxFn", "start": 0, "type": "Identifier" @@ -1900,6 +2135,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1912,6 +2148,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1919,6 +2156,7 @@ description: Result of parsing spinning-highrise-tower.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#dbd7d2\"", "start": 0, "type": "Literal", @@ -1931,9 +2169,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -1944,12 +2184,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1958,12 +2200,14 @@ description: Result of parsing spinning-highrise-tower.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1980,11 +2224,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1997,6 +2243,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "groundSize", "start": 0, "type": "Identifier" @@ -2004,6 +2251,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -2013,11 +2261,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2030,6 +2280,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "groundBody", "start": 0, "type": "Identifier" @@ -2043,6 +2294,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2054,6 +2306,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2063,9 +2316,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseThickness", "start": 0, "type": "Identifier" @@ -2077,6 +2332,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2088,9 +2344,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2101,6 +2359,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2108,9 +2367,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2127,6 +2388,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2135,9 +2397,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "groundSize", "start": 0, "type": "Identifier" @@ -2153,6 +2417,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2161,6 +2426,7 @@ description: Result of parsing spinning-highrise-tower.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2172,6 +2438,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2183,9 +2450,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxFn", "start": 0, "type": "Identifier" @@ -2196,6 +2465,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2208,6 +2478,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -2215,6 +2486,7 @@ description: Result of parsing spinning-highrise-tower.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#3a3631\"", "start": 0, "type": "Literal", @@ -2227,9 +2499,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -2240,12 +2514,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2254,12 +2530,14 @@ description: Result of parsing spinning-highrise-tower.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2276,11 +2554,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2293,6 +2573,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabAndHandrailGeometry", "start": 0, "type": "Identifier" @@ -2304,6 +2585,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -2315,6 +2597,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2326,9 +2609,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorHeight", "start": 0, "type": "Identifier" @@ -2338,14 +2623,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabThickness", "start": 0, "type": "Identifier" @@ -2365,9 +2653,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2378,6 +2668,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2385,9 +2676,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -2404,6 +2697,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2412,9 +2706,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabWidth", "start": 0, "type": "Identifier" @@ -2430,6 +2726,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2441,9 +2738,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabThickness", "start": 0, "type": "Identifier" @@ -2453,14 +2752,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handrailHeight", "start": 0, "type": "Identifier" @@ -2480,9 +2782,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxFn", "start": 0, "type": "Identifier" @@ -2493,16 +2797,19 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2515,6 +2822,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabVoidStart", "start": 0, "type": "Identifier" @@ -2530,9 +2838,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabWidth", "start": 0, "type": "Identifier" @@ -2544,15 +2854,18 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2566,14 +2879,17 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handrailThickness", "start": 0, "type": "Identifier" @@ -2587,11 +2903,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2604,6 +2922,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabVoidWidth", "start": 0, "type": "Identifier" @@ -2615,9 +2934,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabWidth", "start": 0, "type": "Identifier" @@ -2627,6 +2948,7 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2635,9 +2957,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handrailThickness", "start": 0, "type": "Identifier" @@ -2647,10 +2971,12 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2668,11 +2994,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2685,6 +3013,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabVoidShape", "start": 0, "type": "Identifier" @@ -2698,6 +3027,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2706,9 +3036,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -2724,9 +3056,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2737,6 +3071,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2744,9 +3079,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabAndHandrailGeometry", "start": 0, "type": "Identifier" @@ -2764,6 +3101,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2775,9 +3113,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabVoidStart", "start": 0, "type": "Identifier" @@ -2791,9 +3131,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabVoidStart", "start": 0, "type": "Identifier" @@ -2805,6 +3147,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2815,9 +3158,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2828,12 +3173,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2846,6 +3193,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2856,6 +3204,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2869,9 +3218,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabVoidWidth", "start": 0, "type": "Identifier" @@ -2883,6 +3234,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2893,9 +3245,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2906,12 +3260,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2924,6 +3280,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2935,9 +3292,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabVoidWidth", "start": 0, "type": "Identifier" @@ -2950,6 +3309,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2961,6 +3321,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2971,9 +3332,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2984,12 +3347,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3002,6 +3367,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3012,6 +3378,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3026,9 +3393,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabVoidWidth", "start": 0, "type": "Identifier" @@ -3040,6 +3409,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3047,6 +3417,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3057,9 +3428,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3070,12 +3443,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3088,6 +3463,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3096,13 +3472,16 @@ description: Result of parsing spinning-highrise-tower.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3113,25 +3492,30 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3142,12 +3526,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3155,6 +3541,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3165,9 +3552,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3178,19 +3567,23 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3201,12 +3594,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3215,12 +3610,14 @@ description: Result of parsing spinning-highrise-tower.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3237,11 +3634,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3254,6 +3653,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabBody", "start": 0, "type": "Identifier" @@ -3267,6 +3667,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3276,9 +3677,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handrailHeight", "start": 0, "type": "Identifier" @@ -3290,6 +3693,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3301,9 +3705,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3314,6 +3720,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3321,9 +3728,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "slabVoidShape", "start": 0, "type": "Identifier" @@ -3341,6 +3750,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3349,9 +3759,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorCount", "start": 0, "type": "Identifier" @@ -3367,6 +3779,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "transform", "start": 0, "type": "Identifier" @@ -3375,9 +3788,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "transformFn", "start": 0, "type": "Identifier" @@ -3393,9 +3808,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternTransform", "start": 0, "type": "Identifier" @@ -3406,6 +3823,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3418,6 +3836,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -3425,6 +3844,7 @@ description: Result of parsing spinning-highrise-tower.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#dbd7d2\"", "start": 0, "type": "Literal", @@ -3437,9 +3857,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -3450,12 +3872,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3464,12 +3888,14 @@ description: Result of parsing spinning-highrise-tower.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3486,11 +3912,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3503,6 +3931,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreLength", "start": 0, "type": "Identifier" @@ -3510,6 +3939,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -3519,11 +3949,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3536,6 +3968,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreWidth", "start": 0, "type": "Identifier" @@ -3543,6 +3976,7 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -3552,11 +3986,13 @@ description: Result of parsing spinning-highrise-tower.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3569,6 +4005,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "core", "start": 0, "type": "Identifier" @@ -3576,13 +4013,16 @@ description: Result of parsing spinning-highrise-tower.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3593,6 +4033,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3600,9 +4041,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3620,6 +4063,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3635,9 +4079,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreLength", "start": 0, "type": "Identifier" @@ -3649,15 +4095,18 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3679,9 +4128,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreWidth", "start": 0, "type": "Identifier" @@ -3693,15 +4144,18 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3717,6 +4171,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3727,9 +4182,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3740,12 +4197,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3758,6 +4217,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3768,6 +4228,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3781,9 +4242,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreWidth", "start": 0, "type": "Identifier" @@ -3795,6 +4258,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3805,9 +4269,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3818,12 +4284,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3836,6 +4304,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3847,9 +4316,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreLength", "start": 0, "type": "Identifier" @@ -3862,6 +4333,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3873,6 +4345,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3883,9 +4356,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3896,12 +4371,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3914,6 +4391,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3925,6 +4403,7 @@ description: Result of parsing spinning-highrise-tower.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22", "start": 0, "type": "Literal", @@ -3936,6 +4415,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3946,9 +4426,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreWidth", "start": 0, "type": "Identifier" @@ -3960,6 +4442,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3967,6 +4450,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3977,9 +4461,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3990,12 +4476,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4008,6 +4496,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4016,13 +4505,16 @@ description: Result of parsing spinning-highrise-tower.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4033,25 +4525,30 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4062,12 +4559,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4075,6 +4574,7 @@ description: Result of parsing spinning-highrise-tower.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4085,9 +4585,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4098,19 +4600,23 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4121,12 +4627,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4139,6 +4647,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4147,9 +4656,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreHeight", "start": 0, "type": "Identifier" @@ -4165,9 +4676,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4178,12 +4691,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4192,12 +4707,14 @@ description: Result of parsing spinning-highrise-tower.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4214,11 +4731,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4231,6 +4750,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "facadeStart", "start": 0, "type": "Identifier" @@ -4242,9 +4762,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "facadeWidth", "start": 0, "type": "Identifier" @@ -4254,10 +4776,12 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4271,11 +4795,13 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4288,6 +4814,7 @@ description: Result of parsing spinning-highrise-tower.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "facadeGeometry", "start": 0, "type": "Identifier" @@ -4301,6 +4828,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane", "start": 0, "type": "Identifier" @@ -4309,9 +4837,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4327,6 +4857,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -4335,9 +4866,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "facadeWidth", "start": 0, "type": "Identifier" @@ -4353,6 +4886,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -4361,9 +4895,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "facadeHeight", "start": 0, "type": "Identifier" @@ -4379,9 +4915,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxFn", "start": 0, "type": "Identifier" @@ -4392,6 +4930,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4404,6 +4943,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4412,9 +4952,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorCount", "start": 0, "type": "Identifier" @@ -4430,6 +4972,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "transform", "start": 0, "type": "Identifier" @@ -4438,9 +4981,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "transformFn", "start": 0, "type": "Identifier" @@ -4456,9 +5001,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternTransform", "start": 0, "type": "Identifier" @@ -4469,6 +5016,7 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4481,6 +5029,7 @@ description: Result of parsing spinning-highrise-tower.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4488,6 +5037,7 @@ description: Result of parsing spinning-highrise-tower.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#151819\"", "start": 0, "type": "Literal", @@ -4500,9 +5050,11 @@ description: Result of parsing spinning-highrise-tower.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -4513,12 +5065,14 @@ description: Result of parsing spinning-highrise-tower.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4527,15 +5081,18 @@ description: Result of parsing spinning-highrise-tower.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4547,9 +5104,11 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -4561,19 +5120,23 @@ description: Result of parsing spinning-highrise-tower.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "m", "start": 0, "type": "Identifier" @@ -4590,15 +5153,18 @@ description: Result of parsing spinning-highrise-tower.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -4614,12 +5180,14 @@ description: Result of parsing spinning-highrise-tower.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4631,6 +5199,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4642,6 +5211,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4651,6 +5221,7 @@ description: Result of parsing spinning-highrise-tower.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/spool/ast.snap b/rust/kcl-lib/tests/kcl_samples/spool/ast.snap index 8c1749372..5ac013cc7 100644 --- a/rust/kcl-lib/tests/kcl_samples/spool/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/spool/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hubDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing spool.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2in", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing spool.kcl "suffix": "Inch" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define shaft parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolDiameter", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing spool.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "305", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing spool.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolThickness", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing spool.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "267", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing spool.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreDiameter", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing spool.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing spool.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "webThickness", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing spool.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing spool.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockDiameter", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing spool.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing spool.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolBase", "start": 0, "type": "Identifier" @@ -221,13 +246,16 @@ description: Result of parsing spool.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -238,6 +266,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -245,9 +274,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -265,6 +296,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -275,6 +307,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -291,9 +324,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreDiameter", "start": 0, "type": "Identifier" @@ -303,10 +338,12 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -322,6 +359,7 @@ description: Result of parsing spool.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -332,9 +370,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -345,6 +385,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -357,6 +398,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -368,9 +410,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolThickness", "start": 0, "type": "Identifier" @@ -380,10 +424,12 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -403,9 +449,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -416,6 +464,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -428,6 +477,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -442,9 +492,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolDiameter", "start": 0, "type": "Identifier" @@ -454,10 +506,12 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -471,14 +525,17 @@ description: Result of parsing spool.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "webThickness", "start": 0, "type": "Identifier" @@ -498,9 +555,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -511,6 +570,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -523,6 +583,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -531,6 +592,7 @@ description: Result of parsing spool.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -542,6 +604,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -553,6 +616,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -561,9 +625,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "webThickness", "start": 0, "type": "Identifier" @@ -579,9 +645,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -592,6 +660,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -604,6 +673,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -615,9 +685,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hubDiameter", "start": 0, "type": "Identifier" @@ -627,10 +699,12 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -650,6 +724,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -657,6 +732,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -668,9 +744,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -681,6 +759,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -693,18 +772,22 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -715,6 +798,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -726,9 +810,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -739,6 +825,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -751,18 +838,22 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -773,6 +864,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -784,9 +876,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -797,19 +891,23 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -820,6 +918,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -832,6 +931,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -840,9 +940,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -858,9 +960,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -871,6 +975,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -883,6 +988,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -890,6 +996,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#010101\"", "start": 0, "type": "Literal", @@ -902,6 +1009,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -909,6 +1017,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -924,6 +1033,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -931,6 +1041,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -946,9 +1057,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -959,6 +1072,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -967,12 +1081,14 @@ description: Result of parsing spool.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "10": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -989,11 +1105,13 @@ description: Result of parsing spool.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1011,6 +1129,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "score", "start": 0, "type": "Identifier" @@ -1026,6 +1145,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scoreFn", "start": 0, "type": "Identifier" @@ -1039,6 +1159,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1047,9 +1168,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1065,9 +1188,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1078,6 +1203,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1085,9 +1211,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolBase", "start": 0, "type": "Identifier" @@ -1105,6 +1233,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1115,6 +1244,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1128,9 +1258,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1142,6 +1274,7 @@ description: Result of parsing spool.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1152,9 +1285,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1165,6 +1300,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1177,6 +1313,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1184,6 +1321,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1199,6 +1337,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1206,6 +1345,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -1221,18 +1361,22 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1243,12 +1387,14 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1260,9 +1406,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1273,6 +1421,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1285,6 +1434,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1292,6 +1442,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -1307,6 +1458,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1315,9 +1467,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1333,9 +1487,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1346,6 +1502,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1358,6 +1515,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1365,6 +1523,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -1380,6 +1539,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1387,6 +1547,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1402,6 +1563,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1410,13 +1572,16 @@ description: Result of parsing spool.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1427,25 +1592,30 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1465,9 +1635,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1478,12 +1650,14 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1496,6 +1670,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1504,13 +1679,16 @@ description: Result of parsing spool.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1521,25 +1699,30 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1550,12 +1733,14 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1563,6 +1748,7 @@ description: Result of parsing spool.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1573,9 +1759,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1586,19 +1774,23 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1609,6 +1801,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1621,6 +1814,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1628,6 +1822,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -1643,6 +1838,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1653,6 +1849,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1665,6 +1862,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1676,6 +1874,7 @@ description: Result of parsing spool.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1686,9 +1885,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -1699,6 +1900,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1711,6 +1913,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1720,9 +1923,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -1734,6 +1939,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1745,9 +1951,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1758,6 +1966,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1766,15 +1975,18 @@ description: Result of parsing spool.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1784,9 +1996,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scoreFn", "start": 0, "type": "Identifier" @@ -1798,6 +2012,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1805,12 +2020,14 @@ description: Result of parsing spool.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1825,12 +2042,14 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1841,6 +2060,7 @@ description: Result of parsing spool.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1851,6 +2071,7 @@ description: Result of parsing spool.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -1861,11 +2082,13 @@ description: Result of parsing spool.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1878,6 +2101,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scoreSketch01", "start": 0, "type": "Identifier" @@ -1889,6 +2113,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1903,9 +2128,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hubDiameter", "start": 0, "type": "Identifier" @@ -1915,10 +2142,12 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1932,14 +2161,17 @@ description: Result of parsing spool.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "webThickness", "start": 0, "type": "Identifier" @@ -1959,6 +2191,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1976,9 +2209,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreDiameter", "start": 0, "type": "Identifier" @@ -1988,14 +2223,17 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hubDiameter", "start": 0, "type": "Identifier" @@ -2009,10 +2247,12 @@ description: Result of parsing spool.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2026,6 +2266,7 @@ description: Result of parsing spool.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2033,6 +2274,7 @@ description: Result of parsing spool.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2042,14 +2284,17 @@ description: Result of parsing spool.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "webThickness", "start": 0, "type": "Identifier" @@ -2073,6 +2318,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -2084,9 +2330,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolThickness", "start": 0, "type": "Identifier" @@ -2096,10 +2344,12 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2119,9 +2369,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "score", "start": 0, "type": "Identifier" @@ -2132,16 +2384,19 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2159,6 +2414,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scoreSketch02", "start": 0, "type": "Identifier" @@ -2172,6 +2428,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2183,9 +2440,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreDiameter", "start": 0, "type": "Identifier" @@ -2195,10 +2454,12 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2218,6 +2479,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2235,9 +2497,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolDiameter", "start": 0, "type": "Identifier" @@ -2247,14 +2511,17 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreDiameter", "start": 0, "type": "Identifier" @@ -2268,10 +2535,12 @@ description: Result of parsing spool.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2285,6 +2554,7 @@ description: Result of parsing spool.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2293,9 +2563,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "webThickness", "start": 0, "type": "Identifier" @@ -2305,10 +2577,12 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2332,6 +2606,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -2343,9 +2618,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "webThickness", "start": 0, "type": "Identifier" @@ -2355,10 +2632,12 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2378,9 +2657,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "score", "start": 0, "type": "Identifier" @@ -2391,6 +2672,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2403,6 +2685,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2410,6 +2693,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2425,6 +2709,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2435,6 +2720,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2447,6 +2733,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2459,6 +2746,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2470,6 +2758,7 @@ description: Result of parsing spool.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2480,6 +2769,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2490,6 +2780,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2502,6 +2793,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2514,6 +2806,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2525,6 +2818,7 @@ description: Result of parsing spool.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2535,9 +2829,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -2548,6 +2844,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2556,12 +2853,14 @@ description: Result of parsing spool.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2575,6 +2874,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2591,11 +2891,13 @@ description: Result of parsing spool.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2608,6 +2910,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hel01", "start": 0, "type": "Identifier" @@ -2619,6 +2922,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolutions", "start": 0, "type": "Identifier" @@ -2633,9 +2937,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolThickness", "start": 0, "type": "Identifier" @@ -2645,14 +2951,17 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockDiameter", "start": 0, "type": "Identifier" @@ -2666,10 +2975,12 @@ description: Result of parsing spool.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -2689,6 +3000,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -2696,6 +3008,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2711,6 +3024,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2725,9 +3039,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreDiameter", "start": 0, "type": "Identifier" @@ -2737,14 +3053,17 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockDiameter", "start": 0, "type": "Identifier" @@ -2758,10 +3077,12 @@ description: Result of parsing spool.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2781,6 +3102,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2789,9 +3111,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -2807,6 +3131,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2815,9 +3140,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolThickness", "start": 0, "type": "Identifier" @@ -2833,9 +3160,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "helix", "start": 0, "type": "Identifier" @@ -2846,16 +3175,19 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2868,6 +3200,7 @@ description: Result of parsing spool.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stock", "start": 0, "type": "Identifier" @@ -2875,13 +3208,16 @@ description: Result of parsing spool.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2892,6 +3228,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2899,9 +3236,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2919,6 +3258,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2929,6 +3269,7 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2949,9 +3290,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "coreDiameter", "start": 0, "type": "Identifier" @@ -2961,14 +3304,17 @@ description: Result of parsing spool.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockDiameter", "start": 0, "type": "Identifier" @@ -2984,15 +3330,18 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3008,6 +3357,7 @@ description: Result of parsing spool.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3018,6 +3368,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -3026,9 +3377,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockDiameter", "start": 0, "type": "Identifier" @@ -3044,9 +3397,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3057,6 +3412,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3069,6 +3425,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -3077,9 +3434,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hel01", "start": 0, "type": "Identifier" @@ -3095,9 +3454,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -3108,6 +3469,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3120,6 +3482,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -3132,9 +3495,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoolThickness", "start": 0, "type": "Identifier" @@ -3146,15 +3511,18 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3174,9 +3542,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -3187,6 +3557,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3199,6 +3570,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -3206,6 +3578,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#f2471c\"", "start": 0, "type": "Literal", @@ -3218,6 +3591,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -3225,6 +3599,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -3240,6 +3615,7 @@ description: Result of parsing spool.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -3247,6 +3623,7 @@ description: Result of parsing spool.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -3262,9 +3639,11 @@ description: Result of parsing spool.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -3275,6 +3654,7 @@ description: Result of parsing spool.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3283,15 +3663,18 @@ description: Result of parsing spool.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3308,9 +3691,11 @@ description: Result of parsing spool.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3329,19 +3714,23 @@ description: Result of parsing spool.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -3357,12 +3746,14 @@ description: Result of parsing spool.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/spool/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/spool/program_memory.snap index 866596288..6693d46a3 100644 --- a/rust/kcl-lib/tests/kcl_samples/spool/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/spool/program_memory.snap @@ -248,6 +248,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -347,6 +348,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -725,6 +727,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -824,6 +827,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -1202,6 +1206,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -1301,6 +1306,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -1679,6 +1685,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -1778,6 +1785,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -2156,6 +2164,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -2255,6 +2264,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -2633,6 +2643,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -2732,6 +2743,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -3110,6 +3122,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -3209,6 +3222,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -3587,6 +3601,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -3686,6 +3701,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -4069,6 +4085,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -4168,6 +4185,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -4546,6 +4564,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -4645,6 +4664,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -5023,6 +5043,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -5122,6 +5143,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -5500,6 +5522,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -5599,6 +5622,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -5977,6 +6001,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -6076,6 +6101,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -6454,6 +6480,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -6553,6 +6580,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -6931,6 +6959,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -7030,6 +7059,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -7408,6 +7438,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -7507,6 +7538,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -7885,6 +7917,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -7984,6 +8017,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -8362,6 +8396,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -8461,6 +8496,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -8839,6 +8875,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -8938,6 +8975,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -9316,6 +9354,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -9415,6 +9454,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -9793,6 +9833,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -9892,6 +9933,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -10270,6 +10312,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -10369,6 +10412,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -10747,6 +10791,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -10846,6 +10891,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -11224,6 +11270,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -11323,6 +11370,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -11541,6 +11589,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" @@ -11640,6 +11689,7 @@ description: Variables in memory after executing spool.kcl "tag": { "commentStart": 621, "end": 627, + "moduleId": 0, "start": 621, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/kcl_samples/spur-gear/ast.snap b/rust/kcl-lib/tests/kcl_samples/spur-gear/ast.snap index d7e0a46a9..d09d24630 100644 --- a/rust/kcl-lib/tests/kcl_samples/spur-gear/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/spur-gear/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spurGear", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -39,9 +41,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -51,14 +55,17 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -72,11 +79,13 @@ description: Result of parsing spur-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define gear parameters" ], @@ -92,6 +101,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -100,9 +110,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -112,11 +124,13 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -129,6 +143,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing spur-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -148,14 +164,17 @@ description: Result of parsing spur-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -169,11 +188,13 @@ description: Result of parsing spur-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -186,6 +207,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -197,9 +219,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -209,15 +233,19 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -228,6 +256,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -235,9 +264,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -252,11 +283,13 @@ description: Result of parsing spur-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -269,6 +302,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -280,9 +314,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -292,6 +328,7 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -299,6 +336,7 @@ description: Result of parsing spur-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -308,14 +346,17 @@ description: Result of parsing spur-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -333,11 +374,13 @@ description: Result of parsing spur-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -350,6 +393,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -357,6 +401,7 @@ description: Result of parsing spur-gear.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -366,11 +411,13 @@ description: Result of parsing spur-gear.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -388,6 +435,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -399,9 +447,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -411,10 +461,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -428,11 +480,13 @@ description: Result of parsing spur-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -445,6 +499,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -452,6 +507,7 @@ description: Result of parsing spur-gear.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -461,11 +517,13 @@ description: Result of parsing spur-gear.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -478,6 +536,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -489,9 +548,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiam", "start": 0, "type": "Identifier" @@ -501,10 +562,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -518,11 +581,13 @@ description: Result of parsing spur-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -535,18 +600,22 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "asin", "start": 0, "type": "Identifier" @@ -557,6 +626,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -570,9 +640,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -582,10 +654,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -599,14 +673,17 @@ description: Result of parsing spur-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -621,11 +698,13 @@ description: Result of parsing spur-gear.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -638,6 +717,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWithKeyway", "start": 0, "type": "Identifier" @@ -645,13 +725,16 @@ description: Result of parsing spur-gear.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -662,6 +745,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -669,9 +753,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -689,6 +775,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -703,9 +790,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -715,15 +804,19 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -734,6 +827,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -741,9 +835,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -765,9 +861,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -777,15 +875,19 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -796,6 +898,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -803,9 +906,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -822,6 +927,7 @@ description: Result of parsing spur-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -832,9 +938,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -845,6 +953,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -857,6 +966,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -865,9 +975,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -883,9 +995,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -896,6 +1010,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -908,6 +1023,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -917,9 +1033,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayWidth", "start": 0, "type": "Identifier" @@ -931,6 +1049,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -942,9 +1061,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -955,6 +1076,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -967,6 +1089,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -976,9 +1099,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "keywayDepth", "start": 0, "type": "Identifier" @@ -990,6 +1115,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1001,9 +1127,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1014,6 +1142,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1026,6 +1155,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1040,6 +1170,7 @@ description: Result of parsing spur-gear.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1051,19 +1182,23 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -1077,10 +1212,12 @@ description: Result of parsing spur-gear.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1100,6 +1237,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1107,6 +1245,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1122,6 +1261,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1130,9 +1270,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1148,9 +1290,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1161,6 +1305,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1173,6 +1318,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1180,6 +1326,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1195,6 +1342,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1203,9 +1351,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startAngle", "start": 0, "type": "Identifier" @@ -1221,6 +1371,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1229,9 +1380,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeRadius", "start": 0, "type": "Identifier" @@ -1247,9 +1400,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1260,19 +1415,23 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1283,6 +1442,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1291,12 +1451,14 @@ description: Result of parsing spur-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1313,11 +1475,13 @@ description: Result of parsing spur-gear.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1335,6 +1499,7 @@ description: Result of parsing spur-gear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch", "start": 0, "type": "Identifier" @@ -1342,13 +1507,16 @@ description: Result of parsing spur-gear.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1359,6 +1527,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1366,9 +1535,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1386,6 +1557,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1397,6 +1569,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1404,6 +1577,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1419,6 +1593,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1430,9 +1605,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1442,10 +1619,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1465,9 +1644,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1478,6 +1659,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1489,9 +1671,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1502,6 +1686,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1514,6 +1699,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -1525,9 +1711,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1537,10 +1725,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1560,6 +1750,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -1571,9 +1762,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1583,10 +1776,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1606,6 +1801,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1613,6 +1809,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1628,6 +1825,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1635,6 +1833,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1646,9 +1845,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -1659,6 +1860,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1671,6 +1873,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1682,6 +1885,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1692,6 +1896,7 @@ description: Result of parsing spur-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "160", "start": 0, "type": "Literal", @@ -1701,14 +1906,17 @@ description: Result of parsing spur-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1728,6 +1936,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1739,9 +1948,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1751,10 +1962,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1774,9 +1987,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1787,6 +2002,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1798,9 +2014,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1811,6 +2029,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1823,6 +2042,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -1834,9 +2054,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1846,10 +2068,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1869,6 +2093,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -1880,9 +2105,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -1892,10 +2119,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1915,6 +2144,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1924,13 +2154,16 @@ description: Result of parsing spur-gear.kcl "end": 0, "left": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -1941,6 +2174,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1948,13 +2182,16 @@ description: Result of parsing spur-gear.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1965,6 +2202,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1972,9 +2210,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1985,15 +2225,19 @@ description: Result of parsing spur-gear.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -2004,6 +2248,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2011,9 +2256,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2031,11 +2278,13 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2043,6 +2292,7 @@ description: Result of parsing spur-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2052,14 +2302,17 @@ description: Result of parsing spur-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2083,6 +2336,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -2090,6 +2344,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2102,9 +2357,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -2115,6 +2372,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2127,6 +2385,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2138,6 +2397,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2148,6 +2408,7 @@ description: Result of parsing spur-gear.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2157,14 +2418,17 @@ description: Result of parsing spur-gear.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2184,6 +2448,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2195,9 +2460,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -2207,10 +2474,12 @@ description: Result of parsing spur-gear.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2230,9 +2499,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -2243,6 +2514,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2254,9 +2526,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2267,6 +2541,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2279,6 +2554,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2287,9 +2563,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2305,6 +2583,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2315,6 +2594,7 @@ description: Result of parsing spur-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2327,6 +2607,7 @@ description: Result of parsing spur-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2338,6 +2619,7 @@ description: Result of parsing spur-gear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2348,6 +2630,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -2355,6 +2638,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2370,6 +2654,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -2377,6 +2662,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2389,9 +2675,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -2402,25 +2690,30 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2431,6 +2724,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2443,6 +2737,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -2451,9 +2746,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeWithKeyway", "start": 0, "type": "Identifier" @@ -2469,9 +2766,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2482,6 +2781,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2494,6 +2794,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2502,9 +2803,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2520,9 +2823,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2533,6 +2838,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2541,12 +2847,14 @@ description: Result of parsing spur-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2560,6 +2868,7 @@ description: Result of parsing spur-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2573,6 +2882,7 @@ description: Result of parsing spur-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2586,6 +2896,7 @@ description: Result of parsing spur-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2602,11 +2913,13 @@ description: Result of parsing spur-gear.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2616,9 +2929,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch", "start": 0, "type": "Identifier" @@ -2630,6 +2945,7 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2637,12 +2953,14 @@ description: Result of parsing spur-gear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "11": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2657,12 +2975,14 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2673,6 +2993,7 @@ description: Result of parsing spur-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -2683,6 +3004,7 @@ description: Result of parsing spur-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -2693,6 +3015,7 @@ description: Result of parsing spur-gear.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2703,11 +3026,13 @@ description: Result of parsing spur-gear.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Define a function to create a spur gear" ], @@ -2725,6 +3050,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -2732,6 +3058,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21", "start": 0, "type": "Literal", @@ -2747,6 +3074,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -2754,6 +3082,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -2769,6 +3098,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -2776,6 +3106,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -2791,6 +3122,7 @@ description: Result of parsing spur-gear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2798,6 +3130,7 @@ description: Result of parsing spur-gear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -2813,9 +3146,11 @@ description: Result of parsing spur-gear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spurGear", "start": 0, "type": "Identifier" @@ -2826,11 +3161,13 @@ description: Result of parsing spur-gear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2842,9 +3179,11 @@ description: Result of parsing spur-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2863,19 +3202,23 @@ description: Result of parsing spur-gear.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -2891,12 +3234,14 @@ description: Result of parsing spur-gear.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2909,6 +3254,7 @@ description: Result of parsing spur-gear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/ast.snap b/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/ast.snap index ffd8365a1..7694851d6 100644 --- a/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing spur-reduction-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spurGear", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing spur-reduction-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -39,9 +41,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -51,14 +55,17 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -72,11 +79,13 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate gear parameters" ], @@ -92,6 +101,7 @@ description: Result of parsing spur-reduction-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "addendum", "start": 0, "type": "Identifier" @@ -100,9 +110,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -112,11 +124,13 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -129,6 +143,7 @@ description: Result of parsing spur-reduction-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "deddendum", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing spur-reduction-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -148,14 +164,17 @@ description: Result of parsing spur-reduction-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -169,11 +188,13 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -186,6 +207,7 @@ description: Result of parsing spur-reduction-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -197,9 +219,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -209,15 +233,19 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -228,6 +256,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -235,9 +264,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -252,11 +283,13 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -269,6 +302,7 @@ description: Result of parsing spur-reduction-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -280,9 +314,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitchDiameter", "start": 0, "type": "Identifier" @@ -292,6 +328,7 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -299,6 +336,7 @@ description: Result of parsing spur-reduction-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -308,14 +346,17 @@ description: Result of parsing spur-reduction-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -333,11 +374,13 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -350,6 +393,7 @@ description: Result of parsing spur-reduction-gearset.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch", "start": 0, "type": "Identifier" @@ -357,13 +401,16 @@ description: Result of parsing spur-reduction-gearset.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -374,6 +421,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -381,9 +429,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -401,6 +451,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -412,6 +463,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -419,6 +471,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -434,6 +487,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -445,9 +499,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -457,10 +513,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -480,9 +538,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -493,6 +553,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -504,9 +565,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -517,6 +580,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -529,6 +593,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -540,9 +605,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -552,10 +619,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -575,6 +644,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -586,9 +656,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -598,10 +670,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -621,6 +695,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -628,6 +703,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -643,6 +719,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -650,6 +727,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -661,9 +739,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -674,6 +754,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -686,6 +767,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -697,6 +779,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -707,6 +790,7 @@ description: Result of parsing spur-reduction-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "160", "start": 0, "type": "Literal", @@ -716,14 +800,17 @@ description: Result of parsing spur-reduction-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -743,6 +830,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -754,9 +842,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -766,10 +856,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -789,9 +881,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -802,6 +896,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -813,9 +908,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -826,6 +923,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -838,6 +936,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startRadius", "start": 0, "type": "Identifier" @@ -849,9 +948,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -861,10 +962,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -884,6 +987,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endRadius", "start": 0, "type": "Identifier" @@ -895,9 +999,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tipDiameter", "start": 0, "type": "Identifier" @@ -907,10 +1013,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -930,6 +1038,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -939,13 +1048,16 @@ description: Result of parsing spur-reduction-gearset.kcl "end": 0, "left": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "atan", "start": 0, "type": "Identifier" @@ -956,6 +1068,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -963,13 +1076,16 @@ description: Result of parsing spur-reduction-gearset.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -980,6 +1096,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -987,9 +1104,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1000,15 +1119,19 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name" } }, + "moduleId": 0, "operator": "/", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -1019,6 +1142,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1026,9 +1150,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1046,11 +1172,13 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1058,6 +1186,7 @@ description: Result of parsing spur-reduction-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1067,14 +1196,17 @@ description: Result of parsing spur-reduction-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1098,6 +1230,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reverse", "start": 0, "type": "Identifier" @@ -1105,6 +1238,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1117,9 +1251,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "involuteCircular", "start": 0, "type": "Identifier" @@ -1130,6 +1266,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1142,6 +1279,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1153,6 +1291,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1163,6 +1302,7 @@ description: Result of parsing spur-reduction-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1172,14 +1312,17 @@ description: Result of parsing spur-reduction-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1199,6 +1342,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1210,9 +1354,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseDiameter", "start": 0, "type": "Identifier" @@ -1222,10 +1368,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1245,9 +1393,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -1258,6 +1408,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1269,9 +1420,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1282,6 +1435,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1294,6 +1448,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1302,9 +1457,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1320,6 +1477,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1330,6 +1488,7 @@ description: Result of parsing spur-reduction-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1342,6 +1501,7 @@ description: Result of parsing spur-reduction-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1353,6 +1513,7 @@ description: Result of parsing spur-reduction-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1363,6 +1524,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -1370,6 +1532,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1385,6 +1548,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -1392,6 +1556,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1404,9 +1569,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -1417,25 +1584,30 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1446,6 +1618,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1458,6 +1631,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1469,6 +1643,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1479,6 +1654,7 @@ description: Result of parsing spur-reduction-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1491,6 +1667,7 @@ description: Result of parsing spur-reduction-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1502,6 +1679,7 @@ description: Result of parsing spur-reduction-gearset.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1512,6 +1690,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1519,6 +1698,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1534,9 +1714,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1547,6 +1729,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1558,9 +1741,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1571,6 +1756,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1583,6 +1769,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1591,9 +1778,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -1609,9 +1798,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1622,6 +1813,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1630,12 +1822,14 @@ description: Result of parsing spur-reduction-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1649,6 +1843,7 @@ description: Result of parsing spur-reduction-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1662,6 +1857,7 @@ description: Result of parsing spur-reduction-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1675,6 +1871,7 @@ description: Result of parsing spur-reduction-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1691,11 +1888,13 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1710,9 +1909,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearSketch", "start": 0, "type": "Identifier" @@ -1724,6 +1925,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1731,12 +1933,14 @@ description: Result of parsing spur-reduction-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1751,12 +1955,14 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1767,6 +1973,7 @@ description: Result of parsing spur-reduction-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -1777,6 +1984,7 @@ description: Result of parsing spur-reduction-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -1787,6 +1995,7 @@ description: Result of parsing spur-reduction-gearset.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -1797,11 +2006,13 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Define a function to create a spur gear" ], @@ -1819,6 +2030,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1826,6 +2038,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17", "start": 0, "type": "Literal", @@ -1841,6 +2054,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -1848,6 +2062,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -1863,6 +2078,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -1870,6 +2086,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -1885,6 +2102,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -1892,6 +2110,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -1907,9 +2126,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spurGear", "start": 0, "type": "Identifier" @@ -1920,11 +2141,13 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -1946,6 +2169,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nTeeth", "start": 0, "type": "Identifier" @@ -1953,6 +2177,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "51", "start": 0, "type": "Literal", @@ -1968,6 +2193,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "module", "start": 0, "type": "Identifier" @@ -1975,6 +2201,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -1990,6 +2217,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pressureAngle", "start": 0, "type": "Identifier" @@ -1997,6 +2225,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -2012,6 +2241,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "gearHeight", "start": 0, "type": "Identifier" @@ -2019,6 +2249,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -2034,9 +2265,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spurGear", "start": 0, "type": "Identifier" @@ -2047,6 +2280,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2059,6 +2293,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -2078,6 +2313,7 @@ description: Result of parsing spur-reduction-gearset.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "51", "start": 0, "type": "Literal", @@ -2087,10 +2323,12 @@ description: Result of parsing spur-reduction-gearset.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17", "start": 0, "type": "Literal", @@ -2104,10 +2342,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2121,10 +2361,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -2138,10 +2380,12 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.3", "start": 0, "type": "Literal", @@ -2161,9 +2405,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -2174,6 +2420,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2186,6 +2433,7 @@ description: Result of parsing spur-reduction-gearset.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -2193,6 +2441,7 @@ description: Result of parsing spur-reduction-gearset.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2208,9 +2457,11 @@ description: Result of parsing spur-reduction-gearset.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -2221,6 +2472,7 @@ description: Result of parsing spur-reduction-gearset.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2229,12 +2481,14 @@ description: Result of parsing spur-reduction-gearset.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2248,6 +2502,7 @@ description: Result of parsing spur-reduction-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2264,6 +2519,7 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "preComments": [ "", "", @@ -2280,9 +2536,11 @@ description: Result of parsing spur-reduction-gearset.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2301,19 +2559,23 @@ description: Result of parsing spur-reduction-gearset.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -2329,12 +2591,14 @@ description: Result of parsing spur-reduction-gearset.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/surgical-drill-guide/ast.snap b/rust/kcl-lib/tests/kcl_samples/surgical-drill-guide/ast.snap index 5e99870e0..ae64626ae 100644 --- a/rust/kcl-lib/tests/kcl_samples/surgical-drill-guide/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/surgical-drill-guide/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing surgical-drill-guide.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing surgical-drill-guide.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing surgical-drill-guide.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -126,9 +139,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -138,10 +153,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -155,11 +172,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -172,6 +191,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize01", "start": 0, "type": "Identifier" @@ -179,6 +199,7 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -188,11 +209,13 @@ description: Result of parsing surgical-drill-guide.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -205,6 +228,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize02", "start": 0, "type": "Identifier" @@ -212,6 +236,7 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.2", "start": 0, "type": "Literal", @@ -221,11 +246,13 @@ description: Result of parsing surgical-drill-guide.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -238,6 +265,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitLength", "start": 0, "type": "Identifier" @@ -245,6 +273,7 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -254,11 +283,13 @@ description: Result of parsing surgical-drill-guide.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -271,6 +302,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracket", "start": 0, "type": "Identifier" @@ -278,13 +310,16 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -295,6 +330,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -302,9 +338,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -322,6 +360,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -332,6 +371,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -344,6 +384,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -355,6 +396,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -365,9 +407,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -378,6 +422,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -390,6 +435,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -398,9 +444,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleLength", "start": 0, "type": "Identifier" @@ -416,6 +464,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -423,6 +472,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -434,9 +484,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -447,6 +499,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -459,6 +512,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -467,9 +521,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -485,6 +541,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -492,6 +549,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -503,9 +561,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -516,6 +576,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -528,19 +589,23 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -551,6 +616,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -558,9 +624,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -573,6 +641,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -584,6 +653,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -591,6 +661,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -602,9 +673,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -615,6 +688,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -627,6 +701,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -635,6 +710,7 @@ description: Result of parsing surgical-drill-guide.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -646,6 +722,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -657,6 +734,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -665,9 +743,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bendRadius", "start": 0, "type": "Identifier" @@ -683,6 +763,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -690,6 +771,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -701,9 +783,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -714,6 +798,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -726,18 +811,22 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -748,6 +837,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -755,9 +845,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -774,6 +866,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -785,9 +878,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleLength", "start": 0, "type": "Identifier" @@ -797,10 +892,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -820,6 +917,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -827,6 +925,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -838,9 +937,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -851,6 +952,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -863,6 +965,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -871,13 +974,16 @@ description: Result of parsing surgical-drill-guide.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -888,6 +994,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -895,9 +1002,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -908,10 +1017,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -931,6 +1042,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -939,9 +1051,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stockThickness", "start": 0, "type": "Identifier" @@ -957,6 +1071,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -964,6 +1079,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -975,9 +1091,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -988,6 +1106,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1000,6 +1119,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1008,13 +1128,16 @@ description: Result of parsing surgical-drill-guide.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1025,6 +1148,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1032,9 +1156,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1045,10 +1171,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1068,18 +1196,22 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1090,6 +1222,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1097,9 +1230,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1116,6 +1251,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1123,6 +1259,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1134,9 +1271,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1147,6 +1286,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1159,6 +1299,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1167,13 +1308,16 @@ description: Result of parsing surgical-drill-guide.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1184,25 +1328,30 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1213,12 +1362,14 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1226,6 +1377,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1236,9 +1388,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1249,19 +1403,23 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1272,6 +1430,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1284,6 +1443,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1292,9 +1452,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -1310,6 +1472,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -1317,6 +1480,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1329,6 +1493,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -1336,6 +1501,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1347,6 +1513,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagStart", "start": 0, "type": "Identifier" @@ -1354,6 +1521,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1365,9 +1533,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1378,6 +1548,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1386,12 +1557,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "11": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1408,11 +1581,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1430,6 +1605,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitCut01", "start": 0, "type": "Identifier" @@ -1437,13 +1613,16 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1454,6 +1633,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1461,9 +1641,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -1481,6 +1663,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1491,6 +1674,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1504,13 +1688,16 @@ description: Result of parsing surgical-drill-guide.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1521,6 +1708,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1528,9 +1716,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1541,10 +1731,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -1560,6 +1752,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1570,6 +1763,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1581,9 +1775,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -1593,10 +1789,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -1616,9 +1814,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1629,6 +1829,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1641,6 +1842,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1648,6 +1850,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -1663,9 +1866,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1676,6 +1881,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1684,12 +1890,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1706,11 +1914,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1723,6 +1933,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitCut02", "start": 0, "type": "Identifier" @@ -1730,13 +1941,16 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1747,6 +1961,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1757,6 +1972,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1764,6 +1980,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -1779,9 +1996,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1792,6 +2011,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1799,9 +2019,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1820,6 +2042,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1830,6 +2053,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1840,13 +2064,16 @@ description: Result of parsing surgical-drill-guide.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -1857,6 +2084,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1864,9 +2092,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1879,6 +2109,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1889,6 +2120,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1900,9 +2132,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -1912,10 +2146,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -1935,9 +2171,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1948,6 +2186,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1960,6 +2199,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1968,6 +2208,7 @@ description: Result of parsing surgical-drill-guide.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -1979,6 +2220,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1990,9 +2232,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2003,6 +2247,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2011,12 +2256,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2033,11 +2280,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2050,6 +2299,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handle", "start": 0, "type": "Identifier" @@ -2061,18 +2311,22 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -2083,6 +2337,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2093,9 +2348,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitCut01", "start": 0, "type": "Identifier" @@ -2109,9 +2366,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitCut02", "start": 0, "type": "Identifier" @@ -2123,6 +2382,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2134,9 +2394,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -2147,6 +2409,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2157,9 +2420,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracket", "start": 0, "type": "Identifier" @@ -2171,16 +2436,19 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2193,6 +2461,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSupport01", "start": 0, "type": "Identifier" @@ -2200,13 +2469,16 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2217,6 +2489,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2227,6 +2500,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2236,13 +2510,16 @@ description: Result of parsing surgical-drill-guide.kcl "end": 0, "left": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -2253,6 +2530,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2260,9 +2538,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2275,15 +2555,18 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2303,9 +2586,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2316,6 +2601,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2323,9 +2609,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2344,6 +2632,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2354,6 +2643,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2367,13 +2657,16 @@ description: Result of parsing surgical-drill-guide.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -2384,6 +2677,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2391,9 +2685,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2404,10 +2700,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -2423,6 +2721,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2433,6 +2732,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2444,9 +2744,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -2456,10 +2758,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -2479,9 +2783,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2492,6 +2798,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2504,6 +2811,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2512,6 +2820,7 @@ description: Result of parsing surgical-drill-guide.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -2523,6 +2832,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2534,6 +2844,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -2541,6 +2852,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2553,9 +2865,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2566,6 +2880,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2574,12 +2889,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2596,11 +2913,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2618,6 +2937,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stem01", "start": 0, "type": "Identifier" @@ -2631,6 +2951,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2639,9 +2960,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -2657,9 +2980,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2670,6 +2995,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2677,9 +3003,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSupport01", "start": 0, "type": "Identifier" @@ -2697,6 +3025,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2707,6 +3036,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2720,13 +3050,16 @@ description: Result of parsing surgical-drill-guide.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -2737,6 +3070,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2744,9 +3078,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -2757,10 +3093,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -2776,6 +3114,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2786,6 +3125,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2794,9 +3134,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize01", "start": 0, "type": "Identifier" @@ -2812,6 +3154,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2819,6 +3162,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2830,9 +3174,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2843,6 +3189,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2855,6 +3202,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2863,9 +3211,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitLength", "start": 0, "type": "Identifier" @@ -2881,6 +3231,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -2888,6 +3239,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2899,9 +3251,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2912,6 +3266,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2924,6 +3279,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2935,9 +3291,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize01", "start": 0, "type": "Identifier" @@ -2947,10 +3305,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2970,6 +3330,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2984,6 +3345,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -2995,9 +3357,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg10", "start": 0, "type": "Identifier" @@ -3011,9 +3375,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capEnd004", "start": 0, "type": "Identifier" @@ -3025,6 +3391,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3035,9 +3402,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -3048,6 +3417,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3055,6 +3425,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3065,9 +3436,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -3078,6 +3451,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3086,12 +3460,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3108,11 +3484,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3125,6 +3503,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitClearance01", "start": 0, "type": "Identifier" @@ -3138,6 +3517,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -3146,9 +3526,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -3164,9 +3546,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3177,6 +3561,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3184,9 +3569,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stem01", "start": 0, "type": "Identifier" @@ -3204,6 +3591,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3214,6 +3602,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3227,13 +3616,16 @@ description: Result of parsing surgical-drill-guide.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -3244,6 +3636,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3251,9 +3644,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -3264,10 +3659,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -3283,6 +3680,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3293,6 +3691,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3304,9 +3703,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize01", "start": 0, "type": "Identifier" @@ -3316,10 +3717,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3339,9 +3742,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3352,6 +3757,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3364,6 +3770,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3375,6 +3782,7 @@ description: Result of parsing surgical-drill-guide.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -3386,19 +3794,23 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitLength", "start": 0, "type": "Identifier" @@ -3418,9 +3830,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3431,6 +3845,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3439,12 +3854,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3461,11 +3878,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3478,6 +3897,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grip01", "start": 0, "type": "Identifier" @@ -3485,13 +3905,16 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3502,6 +3925,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3512,6 +3936,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3521,13 +3946,16 @@ description: Result of parsing surgical-drill-guide.kcl "end": 0, "left": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -3538,6 +3966,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3545,9 +3974,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -3560,15 +3991,18 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16", "start": 0, "type": "Literal", @@ -3588,9 +4022,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3601,6 +4037,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3608,9 +4045,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -3629,6 +4068,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3639,6 +4079,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3652,13 +4093,16 @@ description: Result of parsing surgical-drill-guide.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -3669,6 +4113,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3676,9 +4121,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -3689,10 +4136,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -3708,6 +4157,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3718,6 +4168,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3729,9 +4180,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -3741,10 +4194,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.85", "start": 0, "type": "Literal", @@ -3764,6 +4219,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3771,6 +4227,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3782,9 +4239,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3795,6 +4254,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3807,6 +4267,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -3818,6 +4279,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3828,6 +4290,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3841,13 +4304,16 @@ description: Result of parsing surgical-drill-guide.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -3858,6 +4324,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3865,9 +4332,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -3878,10 +4347,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -3897,6 +4368,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3907,6 +4379,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3915,9 +4388,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize01", "start": 0, "type": "Identifier" @@ -3933,9 +4408,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3946,6 +4423,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3957,9 +4435,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -3970,6 +4450,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3982,6 +4463,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3990,6 +4472,7 @@ description: Result of parsing surgical-drill-guide.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -4001,6 +4484,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4012,6 +4496,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -4019,6 +4504,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4030,6 +4516,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagStart", "start": 0, "type": "Identifier" @@ -4037,6 +4524,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4048,9 +4536,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4061,6 +4551,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4073,6 +4564,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4080,6 +4572,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4095,6 +4588,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -4109,6 +4603,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -4120,9 +4615,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg11", "start": 0, "type": "Identifier" @@ -4136,9 +4633,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capEnd005", "start": 0, "type": "Identifier" @@ -4150,6 +4649,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4160,9 +4660,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -4173,6 +4675,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4185,6 +4688,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -4196,9 +4700,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg11", "start": 0, "type": "Identifier" @@ -4212,9 +4718,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capStart003", "start": 0, "type": "Identifier" @@ -4226,6 +4734,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4236,9 +4745,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -4249,6 +4760,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4256,6 +4768,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4266,9 +4779,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -4279,6 +4794,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4291,6 +4807,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4298,6 +4815,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#af7b23\"", "start": 0, "type": "Literal", @@ -4310,9 +4828,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -4323,6 +4843,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4331,12 +4852,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4353,11 +4876,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4370,6 +4895,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSupport02", "start": 0, "type": "Identifier" @@ -4377,13 +4903,16 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4394,6 +4923,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4404,6 +4934,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -4412,6 +4943,7 @@ description: Result of parsing surgical-drill-guide.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4423,6 +4955,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4434,9 +4967,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -4447,6 +4982,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4454,9 +4990,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4475,6 +5013,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4485,6 +5024,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4495,13 +5035,16 @@ description: Result of parsing surgical-drill-guide.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -4512,6 +5055,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4519,9 +5063,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -4534,6 +5080,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4544,6 +5091,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4555,9 +5103,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -4567,10 +5117,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.9", "start": 0, "type": "Literal", @@ -4590,9 +5142,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4603,6 +5157,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4615,6 +5170,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4622,6 +5178,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -4637,9 +5194,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4650,6 +5209,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4658,12 +5218,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4680,11 +5242,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4697,6 +5261,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stem02", "start": 0, "type": "Identifier" @@ -4710,6 +5275,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -4718,9 +5284,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -4736,9 +5304,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4749,6 +5319,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4756,9 +5327,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSupport02", "start": 0, "type": "Identifier" @@ -4776,6 +5349,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4786,6 +5360,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4796,13 +5371,16 @@ description: Result of parsing surgical-drill-guide.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -4813,6 +5391,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4820,9 +5399,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -4835,6 +5416,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4845,6 +5427,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4853,9 +5436,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize02", "start": 0, "type": "Identifier" @@ -4871,6 +5456,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4878,6 +5464,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4889,9 +5476,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4902,6 +5491,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4914,6 +5504,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4922,9 +5513,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitLength", "start": 0, "type": "Identifier" @@ -4940,6 +5533,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -4947,6 +5541,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4958,9 +5553,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4971,6 +5568,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4983,6 +5581,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4994,9 +5593,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize02", "start": 0, "type": "Identifier" @@ -5006,10 +5607,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5029,6 +5632,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -5043,6 +5647,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -5054,9 +5659,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg09", "start": 0, "type": "Identifier" @@ -5070,9 +5677,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capEnd003", "start": 0, "type": "Identifier" @@ -5084,6 +5693,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5094,9 +5704,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -5107,6 +5719,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5114,6 +5727,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5124,9 +5738,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -5137,6 +5753,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5145,12 +5762,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5167,11 +5786,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5184,6 +5805,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitClearance02", "start": 0, "type": "Identifier" @@ -5197,6 +5819,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -5205,9 +5828,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -5223,9 +5848,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5236,6 +5863,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5243,9 +5871,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stem02", "start": 0, "type": "Identifier" @@ -5263,6 +5893,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5273,6 +5904,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5283,13 +5915,16 @@ description: Result of parsing surgical-drill-guide.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -5300,6 +5935,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5307,9 +5943,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -5322,6 +5960,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5332,6 +5971,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5343,9 +5983,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize02", "start": 0, "type": "Identifier" @@ -5355,10 +5997,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5378,9 +6022,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5391,6 +6037,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5403,6 +6050,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5414,6 +6062,7 @@ description: Result of parsing surgical-drill-guide.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -5425,19 +6074,23 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitLength", "start": 0, "type": "Identifier" @@ -5457,9 +6110,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5470,6 +6125,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5478,12 +6134,14 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5500,11 +6158,13 @@ description: Result of parsing surgical-drill-guide.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5517,6 +6177,7 @@ description: Result of parsing surgical-drill-guide.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grip02", "start": 0, "type": "Identifier" @@ -5524,13 +6185,16 @@ description: Result of parsing surgical-drill-guide.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5541,6 +6205,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5551,6 +6216,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5559,6 +6225,7 @@ description: Result of parsing surgical-drill-guide.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5570,6 +6237,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5581,9 +6249,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5594,6 +6264,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5601,9 +6272,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -5622,6 +6295,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5632,6 +6306,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5642,13 +6317,16 @@ description: Result of parsing surgical-drill-guide.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -5659,6 +6337,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5666,9 +6345,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -5681,6 +6362,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5691,6 +6373,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5702,9 +6385,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -5714,10 +6399,12 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.85", "start": 0, "type": "Literal", @@ -5737,6 +6424,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5744,6 +6432,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5755,9 +6444,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5768,6 +6459,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5780,6 +6472,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -5791,6 +6484,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -5801,6 +6495,7 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5811,13 +6506,16 @@ description: Result of parsing surgical-drill-guide.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -5828,6 +6526,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5835,9 +6534,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -5850,6 +6551,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5860,6 +6562,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5868,9 +6571,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bitSize02", "start": 0, "type": "Identifier" @@ -5886,9 +6591,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -5899,6 +6606,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5910,9 +6618,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -5923,6 +6633,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5935,6 +6646,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5943,6 +6655,7 @@ description: Result of parsing surgical-drill-guide.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -5954,6 +6667,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5965,6 +6679,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagStart", "start": 0, "type": "Identifier" @@ -5972,6 +6687,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5983,6 +6699,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -5990,6 +6707,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -6001,9 +6719,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6014,6 +6734,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6026,6 +6747,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6033,6 +6755,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6048,6 +6771,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -6062,6 +6786,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -6073,9 +6798,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg08", "start": 0, "type": "Identifier" @@ -6089,9 +6816,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capStart002", "start": 0, "type": "Identifier" @@ -6103,6 +6832,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6113,9 +6843,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -6126,6 +6858,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6138,6 +6871,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -6149,9 +6883,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg08", "start": 0, "type": "Identifier" @@ -6165,9 +6901,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capEnd002", "start": 0, "type": "Identifier" @@ -6179,6 +6917,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6189,9 +6928,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -6202,6 +6943,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6209,6 +6951,7 @@ description: Result of parsing surgical-drill-guide.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6219,9 +6962,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -6232,6 +6977,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6244,6 +6990,7 @@ description: Result of parsing surgical-drill-guide.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -6251,6 +6998,7 @@ description: Result of parsing surgical-drill-guide.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#23af93\"", "start": 0, "type": "Literal", @@ -6263,9 +7011,11 @@ description: Result of parsing surgical-drill-guide.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -6276,6 +7026,7 @@ description: Result of parsing surgical-drill-guide.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6284,15 +7035,18 @@ description: Result of parsing surgical-drill-guide.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6304,9 +7058,11 @@ description: Result of parsing surgical-drill-guide.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -6325,19 +7081,23 @@ description: Result of parsing surgical-drill-guide.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -6353,12 +7113,14 @@ description: Result of parsing surgical-drill-guide.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/surgical-drill-guide/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/surgical-drill-guide/program_memory.snap index 71f93a5ef..69fed0070 100644 --- a/rust/kcl-lib/tests/kcl_samples/surgical-drill-guide/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/surgical-drill-guide/program_memory.snap @@ -94,6 +94,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2124, "end": 2130, + "moduleId": 0, "start": 2124, "type": "TagDeclarator", "value": "seg10" @@ -107,6 +108,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2174, "end": 2184, + "moduleId": 0, "start": 2174, "type": "TagDeclarator", "value": "capEnd004" @@ -136,6 +138,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2124, "end": 2130, + "moduleId": 0, "start": 2124, "type": "TagDeclarator", "value": "seg10" @@ -457,6 +460,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 3480, "end": 3486, + "moduleId": 0, "start": 3480, "type": "TagDeclarator", "value": "seg09" @@ -470,6 +474,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 3530, "end": 3540, + "moduleId": 0, "start": 3530, "type": "TagDeclarator", "value": "capEnd003" @@ -499,6 +504,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 3480, "end": 3486, + "moduleId": 0, "start": 3480, "type": "TagDeclarator", "value": "seg09" @@ -1227,6 +1233,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 584, "end": 590, + "moduleId": 0, "start": 584, "type": "TagDeclarator", "value": "seg02" @@ -1240,6 +1247,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 634, "end": 640, + "moduleId": 0, "start": 634, "type": "TagDeclarator", "value": "seg06" @@ -1253,6 +1261,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 684, "end": 690, + "moduleId": 0, "start": 684, "type": "TagDeclarator", "value": "seg04" @@ -1266,6 +1275,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 751, "end": 757, + "moduleId": 0, "start": 751, "type": "TagDeclarator", "value": "seg01" @@ -1279,6 +1289,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 837, "end": 843, + "moduleId": 0, "start": 837, "type": "TagDeclarator", "value": "seg03" @@ -1292,6 +1303,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 926, "end": 932, + "moduleId": 0, "start": 926, "type": "TagDeclarator", "value": "seg05" @@ -1305,6 +1317,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 1009, "end": 1015, + "moduleId": 0, "start": 1009, "type": "TagDeclarator", "value": "seg07" @@ -1325,6 +1338,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 1215, "end": 1227, + "moduleId": 0, "start": 1215, "type": "TagDeclarator", "value": "capStart001" @@ -1338,6 +1352,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 1185, "end": 1195, + "moduleId": 0, "start": 1185, "type": "TagDeclarator", "value": "capEnd001" @@ -1361,6 +1376,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 584, "end": 590, + "moduleId": 0, "start": 584, "type": "TagDeclarator", "value": "seg02" @@ -1386,6 +1402,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 634, "end": 640, + "moduleId": 0, "start": 634, "type": "TagDeclarator", "value": "seg06" @@ -1411,6 +1428,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 684, "end": 690, + "moduleId": 0, "start": 684, "type": "TagDeclarator", "value": "seg04" @@ -1441,6 +1459,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 751, "end": 757, + "moduleId": 0, "start": 751, "type": "TagDeclarator", "value": "seg01" @@ -1466,6 +1485,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 837, "end": 843, + "moduleId": 0, "start": 837, "type": "TagDeclarator", "value": "seg03" @@ -1491,6 +1511,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 926, "end": 932, + "moduleId": 0, "start": 926, "type": "TagDeclarator", "value": "seg05" @@ -1516,6 +1537,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 1009, "end": 1015, + "moduleId": 0, "start": 1009, "type": "TagDeclarator", "value": "seg07" @@ -1728,6 +1750,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2743, "end": 2749, + "moduleId": 0, "start": 2743, "type": "TagDeclarator", "value": "seg11" @@ -1741,6 +1764,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2896, "end": 2908, + "moduleId": 0, "start": 2896, "type": "TagDeclarator", "value": "capStart003" @@ -1754,6 +1778,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2873, "end": 2883, + "moduleId": 0, "start": 2873, "type": "TagDeclarator", "value": "capEnd005" @@ -1783,6 +1808,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2743, "end": 2749, + "moduleId": 0, "start": 2743, "type": "TagDeclarator", "value": "seg11" @@ -1926,6 +1952,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 4073, "end": 4079, + "moduleId": 0, "start": 4073, "type": "TagDeclarator", "value": "seg08" @@ -1939,6 +1966,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 4200, "end": 4212, + "moduleId": 0, "start": 4200, "type": "TagDeclarator", "value": "capStart002" @@ -1952,6 +1980,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 4223, "end": 4233, + "moduleId": 0, "start": 4223, "type": "TagDeclarator", "value": "capEnd002" @@ -1981,6 +2010,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 4073, "end": 4079, + "moduleId": 0, "start": 4073, "type": "TagDeclarator", "value": "seg08" @@ -2124,6 +2154,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 584, "end": 590, + "moduleId": 0, "start": 584, "type": "TagDeclarator", "value": "seg02" @@ -2137,6 +2168,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 634, "end": 640, + "moduleId": 0, "start": 634, "type": "TagDeclarator", "value": "seg06" @@ -2150,6 +2182,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 684, "end": 690, + "moduleId": 0, "start": 684, "type": "TagDeclarator", "value": "seg04" @@ -2163,6 +2196,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 751, "end": 757, + "moduleId": 0, "start": 751, "type": "TagDeclarator", "value": "seg01" @@ -2176,6 +2210,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 837, "end": 843, + "moduleId": 0, "start": 837, "type": "TagDeclarator", "value": "seg03" @@ -2189,6 +2224,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 926, "end": 932, + "moduleId": 0, "start": 926, "type": "TagDeclarator", "value": "seg05" @@ -2202,6 +2238,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 1009, "end": 1015, + "moduleId": 0, "start": 1009, "type": "TagDeclarator", "value": "seg07" @@ -2222,6 +2259,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 1215, "end": 1227, + "moduleId": 0, "start": 1215, "type": "TagDeclarator", "value": "capStart001" @@ -2235,6 +2273,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 1185, "end": 1195, + "moduleId": 0, "start": 1185, "type": "TagDeclarator", "value": "capEnd001" @@ -2258,6 +2297,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 584, "end": 590, + "moduleId": 0, "start": 584, "type": "TagDeclarator", "value": "seg02" @@ -2283,6 +2323,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 634, "end": 640, + "moduleId": 0, "start": 634, "type": "TagDeclarator", "value": "seg06" @@ -2308,6 +2349,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 684, "end": 690, + "moduleId": 0, "start": 684, "type": "TagDeclarator", "value": "seg04" @@ -2338,6 +2380,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 751, "end": 757, + "moduleId": 0, "start": 751, "type": "TagDeclarator", "value": "seg01" @@ -2363,6 +2406,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 837, "end": 843, + "moduleId": 0, "start": 837, "type": "TagDeclarator", "value": "seg03" @@ -2388,6 +2432,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 926, "end": 932, + "moduleId": 0, "start": 926, "type": "TagDeclarator", "value": "seg05" @@ -2413,6 +2458,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 1009, "end": 1015, + "moduleId": 0, "start": 1009, "type": "TagDeclarator", "value": "seg07" @@ -2666,6 +2712,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2124, "end": 2130, + "moduleId": 0, "start": 2124, "type": "TagDeclarator", "value": "seg10" @@ -2679,6 +2726,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2174, "end": 2184, + "moduleId": 0, "start": 2174, "type": "TagDeclarator", "value": "capEnd004" @@ -2708,6 +2756,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 2124, "end": 2130, + "moduleId": 0, "start": 2124, "type": "TagDeclarator", "value": "seg10" @@ -2929,6 +2978,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 3480, "end": 3486, + "moduleId": 0, "start": 3480, "type": "TagDeclarator", "value": "seg09" @@ -2942,6 +2992,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 3530, "end": 3540, + "moduleId": 0, "start": 3530, "type": "TagDeclarator", "value": "capEnd003" @@ -2971,6 +3022,7 @@ description: Variables in memory after executing surgical-drill-guide.kcl "tag": { "commentStart": 3480, "end": 3486, + "moduleId": 0, "start": 3480, "type": "TagDeclarator", "value": "seg09" diff --git a/rust/kcl-lib/tests/kcl_samples/t-slot-rail/ast.snap b/rust/kcl-lib/tests/kcl_samples/t-slot-rail/ast.snap index 07f303da7..8c398abbb 100644 --- a/rust/kcl-lib/tests/kcl_samples/t-slot-rail/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/t-slot-rail/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing t-slot-rail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorRadius", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing t-slot-rail.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing t-slot-rail.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing t-slot-rail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scoreDepth", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing t-slot-rail.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.018", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing t-slot-rail.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing t-slot-rail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcEnd", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing t-slot-rail.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0275", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing t-slot-rail.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing t-slot-rail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiameter", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing t-slot-rail.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.262", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing t-slot-rail.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing t-slot-rail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railTslot", "start": 0, "type": "Identifier" @@ -163,6 +180,7 @@ description: Result of parsing t-slot-rail.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railProfile", "start": 0, "type": "Identifier" @@ -170,13 +188,16 @@ description: Result of parsing t-slot-rail.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -187,6 +208,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -194,9 +216,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -214,6 +238,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -224,6 +249,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -242,6 +268,7 @@ description: Result of parsing t-slot-rail.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -251,10 +278,12 @@ description: Result of parsing t-slot-rail.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.356", "start": 0, "type": "Literal", @@ -268,10 +297,12 @@ description: Result of parsing t-slot-rail.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -287,6 +318,7 @@ description: Result of parsing t-slot-rail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -297,9 +329,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -310,6 +344,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -322,6 +357,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -330,6 +366,7 @@ description: Result of parsing t-slot-rail.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08", "start": 0, "type": "Literal", @@ -341,6 +378,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -352,9 +390,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -365,6 +405,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -377,6 +418,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -384,6 +426,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -399,6 +442,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -406,6 +450,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".09", "start": 0, "type": "Literal", @@ -421,9 +466,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -434,6 +481,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -446,6 +494,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -453,6 +502,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -468,6 +518,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -475,6 +526,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.113", "start": 0, "type": "Literal", @@ -490,9 +542,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -503,6 +557,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -515,6 +570,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -522,6 +578,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "135", "start": 0, "type": "Literal", @@ -537,6 +594,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -545,9 +603,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorRadius", "start": 0, "type": "Identifier" @@ -563,9 +623,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -576,6 +638,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -588,6 +651,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -601,6 +665,7 @@ description: Result of parsing t-slot-rail.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".5", "start": 0, "type": "Literal", @@ -610,6 +675,7 @@ description: Result of parsing t-slot-rail.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -617,6 +683,7 @@ description: Result of parsing t-slot-rail.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".320", "start": 0, "type": "Literal", @@ -626,10 +693,12 @@ description: Result of parsing t-slot-rail.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -647,14 +716,17 @@ description: Result of parsing t-slot-rail.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorRadius", "start": 0, "type": "Identifier" @@ -674,9 +746,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -687,6 +761,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -699,6 +774,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -707,6 +783,7 @@ description: Result of parsing t-slot-rail.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -718,6 +795,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -729,6 +807,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -737,9 +816,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorRadius", "start": 0, "type": "Identifier" @@ -755,9 +836,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -768,6 +851,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -780,6 +864,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -788,9 +873,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorRadius", "start": 0, "type": "Identifier" @@ -806,9 +893,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -819,6 +908,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -831,6 +921,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -839,6 +930,7 @@ description: Result of parsing t-slot-rail.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -850,6 +942,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -861,6 +954,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -869,9 +963,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorRadius", "start": 0, "type": "Identifier" @@ -887,9 +983,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -900,6 +998,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -912,6 +1011,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -920,6 +1020,7 @@ description: Result of parsing t-slot-rail.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03", "start": 0, "type": "Literal", @@ -931,6 +1032,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -942,9 +1044,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -955,6 +1059,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -967,6 +1072,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -974,6 +1080,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -989,6 +1096,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -996,6 +1104,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1011,6 +1120,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1019,9 +1129,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scoreDepth", "start": 0, "type": "Identifier" @@ -1037,9 +1149,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1050,6 +1164,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1062,6 +1177,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1070,6 +1186,7 @@ description: Result of parsing t-slot-rail.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -1081,6 +1198,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1092,9 +1210,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1105,6 +1225,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1117,6 +1238,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1124,6 +1246,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1139,6 +1262,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1146,6 +1270,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1161,6 +1286,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1169,9 +1295,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scoreDepth", "start": 0, "type": "Identifier" @@ -1187,9 +1315,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1200,6 +1330,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1212,6 +1343,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1220,6 +1352,7 @@ description: Result of parsing t-slot-rail.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03", "start": 0, "type": "Literal", @@ -1231,6 +1364,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1242,9 +1376,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1255,6 +1391,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1267,6 +1404,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1278,9 +1416,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcEnd", "start": 0, "type": "Identifier" @@ -1294,9 +1434,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcEnd", "start": 0, "type": "Identifier" @@ -1308,6 +1450,7 @@ description: Result of parsing t-slot-rail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1318,9 +1461,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1331,6 +1476,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1343,6 +1489,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1350,6 +1497,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1357,10 +1505,12 @@ description: Result of parsing t-slot-rail.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1369,6 +1519,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1381,6 +1532,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1392,6 +1544,7 @@ description: Result of parsing t-slot-rail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1403,10 +1556,12 @@ description: Result of parsing t-slot-rail.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1415,6 +1570,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1427,6 +1583,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1438,6 +1595,7 @@ description: Result of parsing t-slot-rail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1454,9 +1612,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -1467,6 +1627,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1479,6 +1640,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1486,6 +1648,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1493,10 +1656,12 @@ description: Result of parsing t-slot-rail.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1505,6 +1670,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1517,6 +1683,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1528,6 +1695,7 @@ description: Result of parsing t-slot-rail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1539,10 +1707,12 @@ description: Result of parsing t-slot-rail.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1551,6 +1721,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1563,6 +1734,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1574,6 +1746,7 @@ description: Result of parsing t-slot-rail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1590,9 +1763,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -1603,6 +1778,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1615,6 +1791,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1622,6 +1799,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1629,10 +1807,12 @@ description: Result of parsing t-slot-rail.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1641,6 +1821,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1653,6 +1834,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1664,6 +1846,7 @@ description: Result of parsing t-slot-rail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1675,10 +1858,12 @@ description: Result of parsing t-slot-rail.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1687,6 +1872,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1699,6 +1885,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1710,6 +1897,7 @@ description: Result of parsing t-slot-rail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1726,9 +1914,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -1739,19 +1929,23 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1762,6 +1956,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1774,6 +1969,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1785,6 +1981,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1799,9 +1996,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railHeight", "start": 0, "type": "Identifier" @@ -1811,10 +2010,12 @@ description: Result of parsing t-slot-rail.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1835,9 +2036,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railHeight", "start": 0, "type": "Identifier" @@ -1847,10 +2050,12 @@ description: Result of parsing t-slot-rail.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1866,6 +2071,7 @@ description: Result of parsing t-slot-rail.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1876,6 +2082,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1887,9 +2094,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holeDiameter", "start": 0, "type": "Identifier" @@ -1899,10 +2108,12 @@ description: Result of parsing t-slot-rail.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1922,9 +2133,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1935,6 +2148,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1946,9 +2160,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1959,6 +2175,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1971,6 +2188,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1979,9 +2197,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railHeight", "start": 0, "type": "Identifier" @@ -1997,6 +2217,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -2005,9 +2226,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railHeight", "start": 0, "type": "Identifier" @@ -2023,9 +2246,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -2036,6 +2261,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2048,6 +2274,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2057,9 +2284,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railLength", "start": 0, "type": "Identifier" @@ -2071,6 +2300,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2082,9 +2312,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2095,6 +2327,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2103,12 +2336,14 @@ description: Result of parsing t-slot-rail.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "15": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2122,6 +2357,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2135,6 +2371,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2151,11 +2388,13 @@ description: Result of parsing t-slot-rail.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Sketch one inner leg of the extruded rail" ], @@ -2168,9 +2407,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railProfile", "start": 0, "type": "Identifier" @@ -2182,6 +2423,7 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2189,12 +2431,14 @@ description: Result of parsing t-slot-rail.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2209,12 +2453,14 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railHeight", "start": 0, "type": "Identifier" @@ -2225,6 +2471,7 @@ description: Result of parsing t-slot-rail.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railLength", "start": 0, "type": "Identifier" @@ -2235,11 +2482,13 @@ description: Result of parsing t-slot-rail.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2254,6 +2503,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railHeight", "start": 0, "type": "Identifier" @@ -2261,6 +2511,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -2276,6 +2527,7 @@ description: Result of parsing t-slot-rail.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railLength", "start": 0, "type": "Identifier" @@ -2283,6 +2535,7 @@ description: Result of parsing t-slot-rail.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2ft", "start": 0, "type": "Literal", @@ -2298,9 +2551,11 @@ description: Result of parsing t-slot-rail.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "railTslot", "start": 0, "type": "Identifier" @@ -2311,11 +2566,13 @@ description: Result of parsing t-slot-rail.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -2332,9 +2589,11 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2353,19 +2612,23 @@ description: Result of parsing t-slot-rail.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -2382,15 +2645,18 @@ description: Result of parsing t-slot-rail.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2406,12 +2672,14 @@ description: Result of parsing t-slot-rail.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2424,6 +2692,7 @@ description: Result of parsing t-slot-rail.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/teapot/ast.snap b/rust/kcl-lib/tests/kcl_samples/teapot/ast.snap index dee0b6605..ed82e103a 100644 --- a/rust/kcl-lib/tests/kcl_samples/teapot/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/teapot/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teapotHeight", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing teapot.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "130", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing teapot.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing teapot.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "160", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing teapot.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing teapot.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing teapot.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outletHeight", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing teapot.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing teapot.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoutDiameter", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing teapot.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing teapot.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoutPath", "start": 0, "type": "Identifier" @@ -188,13 +209,16 @@ description: Result of parsing teapot.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -205,6 +229,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -212,9 +237,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -232,6 +259,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -247,9 +275,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -261,15 +291,18 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -287,9 +320,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outletHeight", "start": 0, "type": "Identifier" @@ -301,6 +336,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -311,9 +347,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -324,6 +362,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -336,6 +375,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -344,6 +384,7 @@ description: Result of parsing teapot.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.05", "start": 0, "type": "Literal", @@ -355,6 +396,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -366,9 +408,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -379,6 +423,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -391,6 +436,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -399,6 +445,7 @@ description: Result of parsing teapot.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "110", "start": 0, "type": "Literal", @@ -410,6 +457,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -421,6 +469,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -428,6 +477,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -443,6 +493,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -450,6 +501,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -461,9 +513,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -474,6 +528,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -486,18 +541,22 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -508,6 +567,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -515,9 +575,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -534,6 +596,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -541,6 +604,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.84", "start": 0, "type": "Literal", @@ -556,9 +620,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -569,6 +635,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -581,6 +648,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -588,6 +656,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -603,6 +672,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -610,6 +680,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -625,9 +696,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -638,6 +711,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -646,12 +720,14 @@ description: Result of parsing teapot.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -668,11 +744,13 @@ description: Result of parsing teapot.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -690,6 +768,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spout", "start": 0, "type": "Identifier" @@ -697,13 +776,16 @@ description: Result of parsing teapot.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -714,6 +796,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -724,6 +807,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -736,9 +820,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -750,15 +836,18 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -778,9 +867,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -791,6 +882,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -798,9 +890,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -819,6 +913,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -829,6 +924,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -842,9 +938,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outletHeight", "start": 0, "type": "Identifier" @@ -856,6 +954,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -866,6 +965,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -874,9 +974,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoutDiameter", "start": 0, "type": "Identifier" @@ -892,9 +994,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -905,6 +1009,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -917,6 +1022,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -928,6 +1034,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -938,6 +1045,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -951,9 +1059,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outletHeight", "start": 0, "type": "Identifier" @@ -965,6 +1075,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -975,6 +1086,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -986,9 +1098,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoutDiameter", "start": 0, "type": "Identifier" @@ -998,10 +1112,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -1021,9 +1137,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1034,6 +1152,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1045,9 +1164,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1058,6 +1179,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1070,6 +1192,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -1078,9 +1201,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoutPath", "start": 0, "type": "Identifier" @@ -1096,9 +1221,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -1109,6 +1236,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1117,12 +1245,14 @@ description: Result of parsing teapot.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1139,11 +1269,13 @@ description: Result of parsing teapot.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1156,6 +1288,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1163,13 +1296,16 @@ description: Result of parsing teapot.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1180,6 +1316,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1187,9 +1324,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1207,6 +1346,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1217,6 +1357,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1229,6 +1370,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1240,6 +1382,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1250,9 +1393,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1263,6 +1408,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1275,6 +1421,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1286,9 +1433,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -1298,10 +1447,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1321,9 +1472,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1334,6 +1487,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1346,6 +1500,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1360,9 +1515,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -1372,10 +1529,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.1", "start": 0, "type": "Literal", @@ -1396,9 +1555,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teapotHeight", "start": 0, "type": "Identifier" @@ -1408,10 +1569,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -1427,6 +1590,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1437,9 +1601,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1450,6 +1616,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1462,6 +1629,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1476,9 +1644,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -1488,10 +1658,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1512,9 +1684,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teapotHeight", "start": 0, "type": "Identifier" @@ -1524,10 +1698,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -1543,6 +1719,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1553,9 +1730,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1566,6 +1745,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1578,6 +1758,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1592,9 +1773,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -1604,10 +1787,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1625,9 +1810,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teapotHeight", "start": 0, "type": "Identifier" @@ -1639,6 +1826,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1649,9 +1837,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1662,6 +1852,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1674,18 +1865,22 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1696,12 +1891,14 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1713,9 +1910,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1726,6 +1925,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1738,18 +1938,22 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStart", "start": 0, "type": "Identifier" @@ -1760,12 +1964,14 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1777,9 +1983,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1790,19 +1998,23 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1813,6 +2025,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1825,6 +2038,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1833,9 +2047,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -1851,9 +2067,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1864,6 +2082,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1872,12 +2091,14 @@ description: Result of parsing teapot.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1894,11 +2115,13 @@ description: Result of parsing teapot.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1911,6 +2134,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handlePath", "start": 0, "type": "Identifier" @@ -1918,13 +2142,16 @@ description: Result of parsing teapot.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1935,6 +2162,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1942,9 +2170,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -1962,6 +2192,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1972,6 +2203,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1985,9 +2217,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outletHeight", "start": 0, "type": "Identifier" @@ -1999,6 +2233,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2009,9 +2244,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2022,6 +2259,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2034,6 +2272,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2041,6 +2280,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "76", "start": 0, "type": "Literal", @@ -2056,9 +2296,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2069,6 +2311,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2081,6 +2324,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2091,6 +2335,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.98", "start": 0, "type": "Literal", @@ -2103,6 +2348,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.64", "start": 0, "type": "Literal", @@ -2114,6 +2360,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2124,9 +2371,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2137,6 +2386,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2149,6 +2399,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2159,6 +2410,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "28.39", "start": 0, "type": "Literal", @@ -2171,6 +2423,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "63.11", "start": 0, "type": "Literal", @@ -2182,6 +2435,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2192,9 +2446,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2205,6 +2461,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2217,6 +2474,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2228,6 +2486,7 @@ description: Result of parsing teapot.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.27", "start": 0, "type": "Literal", @@ -2239,6 +2498,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2247,6 +2507,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.8", "start": 0, "type": "Literal", @@ -2258,6 +2519,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2268,9 +2530,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2281,6 +2545,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2293,6 +2558,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2304,6 +2570,7 @@ description: Result of parsing teapot.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "48.01", "start": 0, "type": "Literal", @@ -2315,6 +2582,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2323,6 +2591,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.81", "start": 0, "type": "Literal", @@ -2334,6 +2603,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2344,6 +2614,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2351,6 +2622,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2362,9 +2634,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2375,6 +2649,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2387,18 +2662,22 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -2409,6 +2688,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2416,9 +2696,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -2435,6 +2717,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -2442,6 +2725,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2457,9 +2741,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2470,6 +2756,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2478,12 +2765,14 @@ description: Result of parsing teapot.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2500,11 +2789,13 @@ description: Result of parsing teapot.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2517,6 +2808,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handle", "start": 0, "type": "Identifier" @@ -2524,13 +2816,16 @@ description: Result of parsing teapot.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2541,6 +2836,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2548,9 +2844,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -2568,6 +2866,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2579,6 +2878,7 @@ description: Result of parsing teapot.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -2590,6 +2890,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2602,9 +2903,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outletHeight", "start": 0, "type": "Identifier" @@ -2614,10 +2917,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.5", "start": 0, "type": "Literal", @@ -2633,6 +2938,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2643,9 +2949,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2656,6 +2964,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2668,6 +2977,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -2678,6 +2988,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2694,9 +3005,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outletHeight", "start": 0, "type": "Identifier" @@ -2706,10 +3019,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2725,6 +3040,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2735,6 +3051,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2745,6 +3062,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -2755,13 +3073,16 @@ description: Result of parsing teapot.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2772,12 +3093,14 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2785,6 +3108,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2795,9 +3119,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -2808,6 +3134,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2820,6 +3147,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2830,6 +3158,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2843,6 +3172,7 @@ description: Result of parsing teapot.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -2854,6 +3184,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2861,6 +3192,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2871,9 +3203,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2884,6 +3218,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2896,6 +3231,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2907,6 +3243,7 @@ description: Result of parsing teapot.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -2918,6 +3255,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2926,6 +3264,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2937,6 +3276,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2947,9 +3287,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2960,6 +3302,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2972,18 +3315,22 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStart", "start": 0, "type": "Identifier" @@ -2994,6 +3341,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3005,9 +3353,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3018,19 +3368,23 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3041,6 +3395,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3053,6 +3408,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -3061,9 +3417,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handlePath", "start": 0, "type": "Identifier" @@ -3079,9 +3437,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -3092,19 +3452,23 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -3115,6 +3479,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3122,9 +3487,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -3138,12 +3505,14 @@ description: Result of parsing teapot.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3160,11 +3529,13 @@ description: Result of parsing teapot.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3177,6 +3548,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoutHole", "start": 0, "type": "Identifier" @@ -3184,13 +3556,16 @@ description: Result of parsing teapot.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3201,6 +3576,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3208,9 +3584,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -3228,6 +3606,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3238,6 +3617,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3251,9 +3631,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outletHeight", "start": 0, "type": "Identifier" @@ -3265,6 +3647,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3275,6 +3658,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -3283,9 +3667,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoutDiameter", "start": 0, "type": "Identifier" @@ -3301,9 +3687,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3314,6 +3702,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3326,6 +3715,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3338,9 +3728,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -3352,15 +3744,18 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3380,9 +3775,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3393,6 +3790,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3401,12 +3799,14 @@ description: Result of parsing teapot.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3423,11 +3823,13 @@ description: Result of parsing teapot.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3440,6 +3842,7 @@ description: Result of parsing teapot.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body", "start": 0, "type": "Identifier" @@ -3447,13 +3850,16 @@ description: Result of parsing teapot.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3464,6 +3870,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3471,9 +3878,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -3491,6 +3900,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3501,6 +3911,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3513,6 +3924,7 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3524,6 +3936,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3534,9 +3947,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3547,6 +3962,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3559,6 +3975,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3570,9 +3987,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -3582,10 +4001,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -3605,9 +4026,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3618,6 +4041,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3630,6 +4054,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3644,9 +4069,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -3656,10 +4083,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.1", "start": 0, "type": "Literal", @@ -3680,9 +4109,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teapotHeight", "start": 0, "type": "Identifier" @@ -3692,10 +4123,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -3711,6 +4144,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3721,9 +4155,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3734,6 +4170,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3746,6 +4183,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3760,9 +4198,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -3772,10 +4212,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -3796,9 +4238,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teapotHeight", "start": 0, "type": "Identifier" @@ -3808,10 +4252,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -3827,6 +4273,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3837,9 +4284,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3850,6 +4299,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3862,6 +4312,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3876,9 +4327,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -3888,10 +4341,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3909,9 +4364,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teapotHeight", "start": 0, "type": "Identifier" @@ -3923,6 +4380,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3933,9 +4391,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3946,6 +4406,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3958,6 +4419,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3965,6 +4427,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "190", "start": 0, "type": "Literal", @@ -3980,6 +4443,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -3988,9 +4452,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4006,9 +4472,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4019,6 +4487,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4031,6 +4500,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4048,9 +4518,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -4060,10 +4532,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4077,14 +4551,17 @@ description: Result of parsing teapot.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4105,9 +4582,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teapotHeight", "start": 0, "type": "Identifier" @@ -4117,10 +4596,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -4136,6 +4617,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4146,9 +4628,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4159,6 +4643,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4171,6 +4656,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4188,9 +4674,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -4200,10 +4688,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.1", "start": 0, "type": "Literal", @@ -4217,14 +4707,17 @@ description: Result of parsing teapot.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4245,9 +4738,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "teapotHeight", "start": 0, "type": "Identifier" @@ -4257,10 +4752,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -4276,6 +4773,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4286,9 +4784,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4299,6 +4799,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4311,6 +4812,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4325,9 +4827,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beltlineDiameter", "start": 0, "type": "Identifier" @@ -4337,10 +4841,12 @@ description: Result of parsing teapot.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -4358,13 +4864,16 @@ description: Result of parsing teapot.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4375,19 +4884,23 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallThickness", "start": 0, "type": "Identifier" @@ -4403,6 +4916,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4413,9 +4927,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4426,6 +4942,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4438,18 +4955,22 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4460,12 +4981,14 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4477,9 +5000,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4490,6 +5015,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4502,18 +5028,22 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStart", "start": 0, "type": "Identifier" @@ -4524,12 +5054,14 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4541,9 +5073,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4554,19 +5088,23 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4577,6 +5115,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4589,6 +5128,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4597,9 +5137,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -4615,9 +5157,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -4628,6 +5172,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4640,6 +5185,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -4651,9 +5197,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spoutHole", "start": 0, "type": "Identifier" @@ -4665,6 +5213,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4675,9 +5224,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -4688,6 +5239,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4696,12 +5248,14 @@ description: Result of parsing teapot.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "14": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4718,11 +5272,13 @@ description: Result of parsing teapot.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4739,9 +5295,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body", "start": 0, "type": "Identifier" @@ -4755,9 +5313,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handle", "start": 0, "type": "Identifier" @@ -4771,9 +5331,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spout", "start": 0, "type": "Identifier" @@ -4785,6 +5347,7 @@ description: Result of parsing teapot.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4796,6 +5359,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -4803,6 +5367,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#1f9896\"", "start": 0, "type": "Literal", @@ -4815,6 +5380,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -4822,6 +5388,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -4837,6 +5404,7 @@ description: Result of parsing teapot.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -4844,6 +5412,7 @@ description: Result of parsing teapot.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -4859,9 +5428,11 @@ description: Result of parsing teapot.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -4872,6 +5443,7 @@ description: Result of parsing teapot.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4880,10 +5452,12 @@ description: Result of parsing teapot.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -4895,9 +5469,11 @@ description: Result of parsing teapot.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -4916,19 +5492,23 @@ description: Result of parsing teapot.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -4944,12 +5524,14 @@ description: Result of parsing teapot.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/teapot/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/teapot/program_memory.snap index fd00994b9..bb0896e78 100644 --- a/rust/kcl-lib/tests/kcl_samples/teapot/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/teapot/program_memory.snap @@ -739,6 +739,7 @@ description: Variables in memory after executing teapot.kcl "tag": { "commentStart": 1780, "end": 1786, + "moduleId": 0, "start": 1780, "type": "TagDeclarator", "value": "seg02" @@ -1127,6 +1128,7 @@ description: Variables in memory after executing teapot.kcl "tag": { "commentStart": 482, "end": 488, + "moduleId": 0, "start": 482, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/kcl_samples/telemetry-antenna/ast.snap b/rust/kcl-lib/tests/kcl_samples/telemetry-antenna/ast.snap index 4207f85b0..6965c695b 100644 --- a/rust/kcl-lib/tests/kcl_samples/telemetry-antenna/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/telemetry-antenna/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateThickness", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing telemetry-antenna.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing telemetry-antenna.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateDia", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing telemetry-antenna.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing telemetry-antenna.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaBaseDia", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing telemetry-antenna.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.65", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing telemetry-antenna.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaAngle", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing telemetry-antenna.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "95", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing telemetry-antenna.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaHeight", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing telemetry-antenna.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.36", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing telemetry-antenna.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seatingDia", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing telemetry-antenna.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.625", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing telemetry-antenna.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalHeight", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing telemetry-antenna.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.14", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing telemetry-antenna.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing telemetry-antenna.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".196", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing telemetry-antenna.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltPitchCircleDiameter", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing telemetry-antenna.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing telemetry-antenna.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,18 +349,22 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaCrossSectionSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -335,6 +375,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -342,9 +383,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -355,11 +398,13 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -377,6 +422,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaCrossSectionProfile", "start": 0, "type": "Identifier" @@ -390,6 +436,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -404,9 +451,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateDia", "start": 0, "type": "Identifier" @@ -416,10 +465,12 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -436,6 +487,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -447,6 +499,7 @@ description: Result of parsing telemetry-antenna.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -457,9 +510,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -470,6 +525,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -477,9 +533,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaCrossSectionSketch", "start": 0, "type": "Identifier" @@ -497,6 +555,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -505,9 +564,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateThickness", "start": 0, "type": "Identifier" @@ -523,9 +584,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -536,6 +599,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -548,6 +612,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -563,9 +628,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateDia", "start": 0, "type": "Identifier" @@ -575,14 +642,17 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaBaseDia", "start": 0, "type": "Identifier" @@ -598,15 +668,18 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -626,6 +699,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -633,6 +707,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -644,9 +719,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -657,6 +734,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -669,6 +747,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -677,9 +756,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaAngle", "start": 0, "type": "Identifier" @@ -695,6 +776,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -702,6 +784,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -717,6 +800,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -724,6 +808,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -735,9 +820,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -748,6 +835,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -760,6 +848,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -770,6 +859,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -783,9 +873,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaHeight", "start": 0, "type": "Identifier" @@ -797,6 +889,7 @@ description: Result of parsing telemetry-antenna.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -807,9 +900,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -820,6 +915,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -832,6 +928,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -839,6 +936,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -854,6 +952,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -861,6 +960,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -872,9 +972,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -885,6 +987,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -897,6 +1000,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -906,9 +1010,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalHeight", "start": 0, "type": "Identifier" @@ -920,6 +1026,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -931,9 +1038,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -944,6 +1053,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -956,6 +1066,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -963,6 +1074,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".25", "start": 0, "type": "Literal", @@ -978,9 +1090,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -991,6 +1105,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1003,6 +1118,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1010,6 +1126,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".05", "start": 0, "type": "Literal", @@ -1025,9 +1142,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1038,6 +1157,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1050,6 +1170,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1057,6 +1178,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -1072,6 +1194,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1079,6 +1202,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -1094,9 +1218,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1107,6 +1233,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1119,6 +1246,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1126,6 +1254,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".125", "start": 0, "type": "Literal", @@ -1141,9 +1270,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1154,6 +1285,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1166,6 +1298,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1173,6 +1306,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "135", "start": 0, "type": "Literal", @@ -1188,6 +1322,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1195,6 +1330,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -1210,9 +1346,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1223,6 +1361,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1235,6 +1374,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1242,6 +1382,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".125", "start": 0, "type": "Literal", @@ -1257,9 +1398,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1270,6 +1413,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1282,6 +1426,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1289,6 +1434,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".025", "start": 0, "type": "Literal", @@ -1304,9 +1450,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1317,6 +1465,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1329,6 +1478,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1336,6 +1486,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".025", "start": 0, "type": "Literal", @@ -1351,9 +1502,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1364,6 +1517,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1376,6 +1530,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1387,9 +1542,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seatingDia", "start": 0, "type": "Identifier" @@ -1399,10 +1556,12 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1422,9 +1581,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1435,6 +1596,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1447,6 +1609,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1455,6 +1618,7 @@ description: Result of parsing telemetry-antenna.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -1466,6 +1630,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1477,9 +1642,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1490,6 +1657,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1502,6 +1670,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1509,6 +1678,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -1524,9 +1694,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1537,6 +1709,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1549,6 +1722,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1556,6 +1730,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1571,9 +1746,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1584,19 +1761,23 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1607,6 +1788,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1615,12 +1797,14 @@ description: Result of parsing telemetry-antenna.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "19": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1637,11 +1821,13 @@ description: Result of parsing telemetry-antenna.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1654,6 +1840,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaCrossSectionRevolve", "start": 0, "type": "Identifier" @@ -1665,6 +1852,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1672,6 +1860,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1687,6 +1876,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1695,9 +1885,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -1713,9 +1905,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1726,6 +1920,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1733,9 +1928,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaCrossSectionProfile", "start": 0, "type": "Identifier" @@ -1746,11 +1943,13 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1763,6 +1962,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -1782,6 +1982,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1790,9 +1991,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1808,9 +2011,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1821,6 +2026,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1828,9 +2034,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antennaCrossSectionRevolve", "start": 0, "type": "Identifier" @@ -1848,6 +2056,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1856,9 +2065,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holePosition", "start": 0, "type": "Identifier" @@ -1874,6 +2085,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1885,9 +2097,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -1897,10 +2111,12 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1920,6 +2136,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1927,6 +2144,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1938,9 +2156,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1951,6 +2171,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1963,6 +2184,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1972,9 +2194,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plateThickness", "start": 0, "type": "Identifier" @@ -1986,6 +2210,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1997,9 +2222,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2010,6 +2237,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2022,6 +2250,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2029,6 +2258,7 @@ description: Result of parsing telemetry-antenna.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.04", "start": 0, "type": "Literal", @@ -2044,6 +2274,7 @@ description: Result of parsing telemetry-antenna.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2055,9 +2286,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hole01", "start": 0, "type": "Identifier" @@ -2069,6 +2302,7 @@ description: Result of parsing telemetry-antenna.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2079,9 +2313,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -2092,6 +2328,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2100,10 +2337,12 @@ description: Result of parsing telemetry-antenna.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2112,6 +2351,7 @@ description: Result of parsing telemetry-antenna.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [], "start": 0, "type": "ObjectExpression", @@ -2119,6 +2359,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -2126,16 +2367,19 @@ description: Result of parsing telemetry-antenna.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "holePosition", "start": 0, "type": "Identifier" @@ -2147,11 +2391,13 @@ description: Result of parsing telemetry-antenna.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -2169,6 +2415,7 @@ description: Result of parsing telemetry-antenna.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2180,9 +2427,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltPitchCircleDiameter", "start": 0, "type": "Identifier" @@ -2192,10 +2441,12 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2209,11 +2460,13 @@ description: Result of parsing telemetry-antenna.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2227,13 +2480,16 @@ description: Result of parsing telemetry-antenna.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -2244,6 +2500,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2254,9 +2511,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2269,6 +2528,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2280,11 +2540,13 @@ description: Result of parsing telemetry-antenna.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "preComments": [ "", "", @@ -2298,13 +2560,16 @@ description: Result of parsing telemetry-antenna.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -2315,6 +2580,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2328,9 +2594,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2340,10 +2608,12 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2364,9 +2634,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2376,10 +2648,12 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8660254", "start": 0, "type": "Literal", @@ -2395,11 +2669,13 @@ description: Result of parsing telemetry-antenna.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2408,13 +2684,16 @@ description: Result of parsing telemetry-antenna.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -2425,6 +2704,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2439,9 +2719,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2453,15 +2735,18 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2482,9 +2767,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2494,10 +2781,12 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8660254", "start": 0, "type": "Literal", @@ -2513,11 +2802,13 @@ description: Result of parsing telemetry-antenna.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2526,13 +2817,16 @@ description: Result of parsing telemetry-antenna.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -2543,6 +2837,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2554,9 +2849,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2568,6 +2865,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2576,6 +2874,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2587,11 +2886,13 @@ description: Result of parsing telemetry-antenna.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2600,13 +2901,16 @@ description: Result of parsing telemetry-antenna.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -2617,6 +2921,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2631,9 +2936,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2645,15 +2952,18 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2675,9 +2985,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2689,15 +3001,18 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8660254", "start": 0, "type": "Literal", @@ -2713,11 +3028,13 @@ description: Result of parsing telemetry-antenna.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2726,13 +3043,16 @@ description: Result of parsing telemetry-antenna.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "countersink", "start": 0, "type": "Identifier" @@ -2743,6 +3063,7 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2756,9 +3077,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2768,10 +3091,12 @@ description: Result of parsing telemetry-antenna.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2793,9 +3118,11 @@ description: Result of parsing telemetry-antenna.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -2807,15 +3134,18 @@ description: Result of parsing telemetry-antenna.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8660254", "start": 0, "type": "Literal", @@ -2831,11 +3161,13 @@ description: Result of parsing telemetry-antenna.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2847,9 +3179,11 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2868,19 +3202,23 @@ description: Result of parsing telemetry-antenna.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -2896,12 +3234,14 @@ description: Result of parsing telemetry-antenna.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2913,6 +3253,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2926,6 +3267,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2939,6 +3281,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2952,6 +3295,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2965,6 +3309,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2978,6 +3323,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2992,6 +3338,7 @@ description: Result of parsing telemetry-antenna.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/telemetry-antenna/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/telemetry-antenna/program_memory.snap index f97c8c75d..8dc6a9bd6 100644 --- a/rust/kcl-lib/tests/kcl_samples/telemetry-antenna/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/telemetry-antenna/program_memory.snap @@ -66,6 +66,7 @@ description: Variables in memory after executing telemetry-antenna.kcl "tag": { "commentStart": 942, "end": 948, + "moduleId": 0, "start": 942, "type": "TagDeclarator", "value": "seg03" @@ -91,6 +92,7 @@ description: Variables in memory after executing telemetry-antenna.kcl "tag": { "commentStart": 1008, "end": 1014, + "moduleId": 0, "start": 1008, "type": "TagDeclarator", "value": "seg01" @@ -140,6 +142,7 @@ description: Variables in memory after executing telemetry-antenna.kcl "tag": { "commentStart": 1107, "end": 1113, + "moduleId": 0, "start": 1107, "type": "TagDeclarator", "value": "seg02" @@ -510,6 +513,7 @@ description: Variables in memory after executing telemetry-antenna.kcl "tag": { "commentStart": 942, "end": 948, + "moduleId": 0, "start": 942, "type": "TagDeclarator", "value": "seg03" @@ -523,6 +527,7 @@ description: Variables in memory after executing telemetry-antenna.kcl "tag": { "commentStart": 1008, "end": 1014, + "moduleId": 0, "start": 1008, "type": "TagDeclarator", "value": "seg01" @@ -543,6 +548,7 @@ description: Variables in memory after executing telemetry-antenna.kcl "tag": { "commentStart": 1107, "end": 1113, + "moduleId": 0, "start": 1107, "type": "TagDeclarator", "value": "seg02" @@ -676,6 +682,7 @@ description: Variables in memory after executing telemetry-antenna.kcl "tag": { "commentStart": 942, "end": 948, + "moduleId": 0, "start": 942, "type": "TagDeclarator", "value": "seg03" @@ -701,6 +708,7 @@ description: Variables in memory after executing telemetry-antenna.kcl "tag": { "commentStart": 1008, "end": 1014, + "moduleId": 0, "start": 1008, "type": "TagDeclarator", "value": "seg01" @@ -750,6 +758,7 @@ description: Variables in memory after executing telemetry-antenna.kcl "tag": { "commentStart": 1107, "end": 1113, + "moduleId": 0, "start": 1107, "type": "TagDeclarator", "value": "seg02" diff --git a/rust/kcl-lib/tests/kcl_samples/thermal-block-insert/ast.snap b/rust/kcl-lib/tests/kcl_samples/thermal-block-insert/ast.snap index c0a92b23c..4701e8e6d 100644 --- a/rust/kcl-lib/tests/kcl_samples/thermal-block-insert/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/thermal-block-insert/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing thermal-block-insert.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "400", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing thermal-block-insert.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define overall dimensions of the insert block" ], @@ -49,6 +53,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertHeight", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing thermal-block-insert.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing thermal-block-insert.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertThickness", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing thermal-block-insert.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing thermal-block-insert.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "setbackFactor", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing thermal-block-insert.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing thermal-block-insert.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -153,6 +169,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueTargetCount", "start": 0, "type": "Identifier" @@ -164,9 +181,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertLength", "start": 0, "type": "Identifier" @@ -176,10 +195,12 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -193,11 +214,13 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -210,18 +233,22 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueCount", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "round", "start": 0, "type": "Identifier" @@ -232,6 +259,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -239,9 +267,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueTargetCount", "start": 0, "type": "Identifier" @@ -252,11 +282,13 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -269,6 +301,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueLength", "start": 0, "type": "Identifier" @@ -280,9 +313,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertLength", "start": 0, "type": "Identifier" @@ -292,6 +327,7 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -303,9 +339,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueCount", "start": 0, "type": "Identifier" @@ -315,6 +353,7 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -322,6 +361,7 @@ description: Result of parsing thermal-block-insert.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -331,6 +371,7 @@ description: Result of parsing thermal-block-insert.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -339,9 +380,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "setbackFactor", "start": 0, "type": "Identifier" @@ -351,10 +394,12 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -376,10 +421,12 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -397,11 +444,13 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -414,6 +463,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueGap", "start": 0, "type": "Identifier" @@ -428,9 +478,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueLength", "start": 0, "type": "Identifier" @@ -440,14 +492,17 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "setbackFactor", "start": 0, "type": "Identifier" @@ -461,10 +516,12 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -478,11 +535,13 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -495,6 +554,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueStep", "start": 0, "type": "Identifier" @@ -506,9 +566,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueLength", "start": 0, "type": "Identifier" @@ -518,14 +580,17 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueGap", "start": 0, "type": "Identifier" @@ -539,11 +604,13 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -556,6 +623,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueDepth", "start": 0, "type": "Identifier" @@ -567,9 +635,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueLength", "start": 0, "type": "Identifier" @@ -579,10 +649,12 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -596,11 +668,13 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -613,6 +687,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueSetback", "start": 0, "type": "Identifier" @@ -624,9 +699,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueLength", "start": 0, "type": "Identifier" @@ -636,14 +713,17 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "setbackFactor", "start": 0, "type": "Identifier" @@ -657,11 +737,13 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -674,6 +756,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueBlockFn", "start": 0, "type": "Identifier" @@ -689,6 +772,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueSingleBlock", "start": 0, "type": "Identifier" @@ -702,6 +786,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -710,9 +795,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueLength", "start": 0, "type": "Identifier" @@ -728,9 +815,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -741,6 +830,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -753,6 +843,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -765,9 +856,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueSetback", "start": 0, "type": "Identifier" @@ -779,6 +872,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -788,9 +882,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueDepth", "start": 0, "type": "Identifier" @@ -802,6 +898,7 @@ description: Result of parsing thermal-block-insert.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -812,9 +909,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -825,6 +924,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -837,6 +937,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -845,9 +946,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueLength", "start": 0, "type": "Identifier" @@ -863,9 +966,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -876,6 +981,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -888,6 +994,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -900,9 +1007,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueSetback", "start": 0, "type": "Identifier" @@ -914,6 +1023,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -924,9 +1034,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueDepth", "start": 0, "type": "Identifier" @@ -938,6 +1050,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -945,6 +1058,7 @@ description: Result of parsing thermal-block-insert.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -955,9 +1069,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -968,6 +1084,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -980,6 +1097,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -988,9 +1106,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueCount", "start": 0, "type": "Identifier" @@ -1006,6 +1126,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -1014,9 +1135,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueStep", "start": 0, "type": "Identifier" @@ -1032,6 +1155,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1042,6 +1166,7 @@ description: Result of parsing thermal-block-insert.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1054,6 +1179,7 @@ description: Result of parsing thermal-block-insert.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1065,6 +1191,7 @@ description: Result of parsing thermal-block-insert.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1075,9 +1202,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -1088,12 +1217,14 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1106,6 +1237,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1114,9 +1246,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueLength", "start": 0, "type": "Identifier" @@ -1132,9 +1266,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1145,6 +1281,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1153,15 +1290,18 @@ description: Result of parsing thermal-block-insert.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1171,9 +1311,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueSingleBlock", "start": 0, "type": "Identifier" @@ -1185,6 +1327,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1192,20 +1335,24 @@ description: Result of parsing thermal-block-insert.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1223,6 +1370,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueShape", "start": 0, "type": "Identifier" @@ -1230,13 +1378,16 @@ description: Result of parsing thermal-block-insert.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1247,6 +1398,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1254,9 +1406,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1274,6 +1428,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1289,9 +1444,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertLength", "start": 0, "type": "Identifier" @@ -1303,15 +1460,18 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1332,9 +1492,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertThickness", "start": 0, "type": "Identifier" @@ -1344,10 +1506,12 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1363,6 +1527,7 @@ description: Result of parsing thermal-block-insert.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1373,9 +1538,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1386,25 +1553,30 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueBlockFn", "start": 0, "type": "Identifier" @@ -1415,6 +1587,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1427,6 +1600,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1439,9 +1613,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertThickness", "start": 0, "type": "Identifier" @@ -1453,15 +1629,18 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1481,9 +1660,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1494,6 +1675,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1506,6 +1688,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1515,9 +1698,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertLength", "start": 0, "type": "Identifier" @@ -1529,6 +1714,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1540,9 +1726,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1553,19 +1741,23 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1576,12 +1768,14 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1590,12 +1784,14 @@ description: Result of parsing thermal-block-insert.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1612,11 +1808,13 @@ description: Result of parsing thermal-block-insert.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1634,6 +1832,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grooveShape", "start": 0, "type": "Identifier" @@ -1641,13 +1840,16 @@ description: Result of parsing thermal-block-insert.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1658,6 +1860,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1665,9 +1868,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1685,6 +1890,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1700,9 +1906,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertLength", "start": 0, "type": "Identifier" @@ -1714,15 +1922,18 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1747,9 +1958,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertThickness", "start": 0, "type": "Identifier" @@ -1761,15 +1974,18 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1783,14 +1999,17 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueDepth", "start": 0, "type": "Identifier" @@ -1806,6 +2025,7 @@ description: Result of parsing thermal-block-insert.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1816,9 +2036,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1829,25 +2051,30 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueBlockFn", "start": 0, "type": "Identifier" @@ -1858,6 +2085,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1870,6 +2098,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1884,9 +2113,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertThickness", "start": 0, "type": "Identifier" @@ -1896,10 +2127,12 @@ description: Result of parsing thermal-block-insert.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1913,14 +2146,17 @@ description: Result of parsing thermal-block-insert.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueDepth", "start": 0, "type": "Identifier" @@ -1940,9 +2176,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1953,6 +2191,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1965,6 +2204,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1974,9 +2214,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertLength", "start": 0, "type": "Identifier" @@ -1988,6 +2230,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1999,9 +2242,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2012,19 +2257,23 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2035,12 +2284,14 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2049,12 +2300,14 @@ description: Result of parsing thermal-block-insert.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2071,11 +2324,13 @@ description: Result of parsing thermal-block-insert.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2088,6 +2343,7 @@ description: Result of parsing thermal-block-insert.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertShape", "start": 0, "type": "Identifier" @@ -2099,6 +2355,7 @@ description: Result of parsing thermal-block-insert.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2107,9 +2364,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "insertHeight", "start": 0, "type": "Identifier" @@ -2125,9 +2384,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2138,6 +2399,7 @@ description: Result of parsing thermal-block-insert.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2148,9 +2410,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tongueShape", "start": 0, "type": "Identifier" @@ -2164,9 +2428,11 @@ description: Result of parsing thermal-block-insert.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "grooveShape", "start": 0, "type": "Identifier" @@ -2178,16 +2444,19 @@ description: Result of parsing thermal-block-insert.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2199,9 +2468,11 @@ description: Result of parsing thermal-block-insert.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2220,19 +2491,23 @@ description: Result of parsing thermal-block-insert.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -2249,15 +2524,18 @@ description: Result of parsing thermal-block-insert.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2273,12 +2551,14 @@ description: Result of parsing thermal-block-insert.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2293,6 +2573,7 @@ description: Result of parsing thermal-block-insert.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/tooling-nest-block/ast.snap b/rust/kcl-lib/tests/kcl_samples/tooling-nest-block/ast.snap index 6ebe6a2df..ad6edc396 100644 --- a/rust/kcl-lib/tests/kcl_samples/tooling-nest-block/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/tooling-nest-block/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size01", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size02", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size03", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size04", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.375in", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "Inch" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size05", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25in", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "Inch" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size06", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5in", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "Inch" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size07", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75in", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "Inch" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size08", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +349,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size09", "start": 0, "type": "Identifier" @@ -320,6 +357,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.5", "start": 0, "type": "Literal", @@ -329,11 +367,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -346,6 +386,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size10", "start": 0, "type": "Identifier" @@ -353,6 +394,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -362,11 +404,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -379,6 +423,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size11", "start": 0, "type": "Identifier" @@ -386,6 +431,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.5", "start": 0, "type": "Literal", @@ -395,11 +441,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -412,6 +460,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size12", "start": 0, "type": "Identifier" @@ -419,6 +468,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -428,11 +478,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -445,6 +497,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size13", "start": 0, "type": "Identifier" @@ -452,6 +505,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -461,11 +515,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -478,6 +534,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size14", "start": 0, "type": "Identifier" @@ -485,6 +542,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -494,11 +552,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -511,6 +571,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size15", "start": 0, "type": "Identifier" @@ -518,6 +579,7 @@ description: Result of parsing tooling-nest-block.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -527,11 +589,13 @@ description: Result of parsing tooling-nest-block.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -544,6 +608,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSketch", "start": 0, "type": "Identifier" @@ -551,13 +616,16 @@ description: Result of parsing tooling-nest-block.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -568,6 +636,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -575,9 +644,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -595,6 +666,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -605,6 +677,7 @@ description: Result of parsing tooling-nest-block.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -617,6 +690,7 @@ description: Result of parsing tooling-nest-block.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -628,6 +702,7 @@ description: Result of parsing tooling-nest-block.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -638,9 +713,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -651,6 +728,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -663,6 +741,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -670,6 +749,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -685,6 +765,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -693,9 +774,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -711,6 +794,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -718,6 +802,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -729,9 +814,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -742,6 +829,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -754,6 +842,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -762,13 +851,16 @@ description: Result of parsing tooling-nest-block.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -779,6 +871,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -786,9 +879,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -799,10 +894,12 @@ description: Result of parsing tooling-nest-block.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -822,6 +919,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -830,9 +928,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -848,6 +948,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -855,6 +956,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -866,9 +968,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -879,6 +983,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -891,18 +996,22 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -913,6 +1022,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -920,9 +1030,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -939,19 +1051,23 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -962,6 +1078,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -969,9 +1086,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -984,6 +1103,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -995,6 +1115,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1002,6 +1123,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1013,9 +1135,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1026,6 +1150,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1038,6 +1163,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1046,13 +1172,16 @@ description: Result of parsing tooling-nest-block.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1063,25 +1192,30 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1092,12 +1226,14 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1105,6 +1241,7 @@ description: Result of parsing tooling-nest-block.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1115,6 +1252,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1122,6 +1260,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1133,9 +1272,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1146,19 +1287,23 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1169,6 +1314,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1177,15 +1323,18 @@ description: Result of parsing tooling-nest-block.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1203,6 +1352,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeExtrude", "start": 0, "type": "Identifier" @@ -1214,6 +1364,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1222,9 +1373,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -1240,9 +1393,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1253,6 +1408,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1260,9 +1416,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSketch", "start": 0, "type": "Identifier" @@ -1273,11 +1431,13 @@ description: Result of parsing tooling-nest-block.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1290,6 +1450,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -1305,6 +1466,7 @@ description: Result of parsing tooling-nest-block.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestFn", "start": 0, "type": "Identifier" @@ -1318,6 +1480,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1326,9 +1489,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -1344,9 +1509,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1357,6 +1524,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1364,9 +1532,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeExtrude", "start": 0, "type": "Identifier" @@ -1384,6 +1554,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1398,9 +1569,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -1410,14 +1583,17 @@ description: Result of parsing tooling-nest-block.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -1438,9 +1614,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -1450,14 +1628,17 @@ description: Result of parsing tooling-nest-block.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideLength", "start": 0, "type": "Identifier" @@ -1473,6 +1654,7 @@ description: Result of parsing tooling-nest-block.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1483,6 +1665,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1491,9 +1674,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -1509,6 +1694,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1516,6 +1702,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1527,9 +1714,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1540,6 +1729,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1552,6 +1742,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1561,9 +1752,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -1575,6 +1768,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1586,6 +1780,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagStart", "start": 0, "type": "Identifier" @@ -1593,6 +1788,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1604,9 +1800,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1617,6 +1815,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1629,6 +1828,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1640,9 +1840,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -1652,10 +1854,12 @@ description: Result of parsing tooling-nest-block.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".99", "start": 0, "type": "Literal", @@ -1675,6 +1879,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1689,6 +1894,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -1700,9 +1906,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1716,9 +1924,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "capStart001", "start": 0, "type": "Identifier" @@ -1730,6 +1940,7 @@ description: Result of parsing tooling-nest-block.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1740,9 +1951,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getCommonEdge", "start": 0, "type": "Identifier" @@ -1753,6 +1966,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1760,6 +1974,7 @@ description: Result of parsing tooling-nest-block.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1770,9 +1985,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1783,6 +2000,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1791,15 +2009,18 @@ description: Result of parsing tooling-nest-block.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1808,6 +2029,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [], "start": 0, "type": "ObjectExpression", @@ -1815,6 +2037,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1822,16 +2045,19 @@ description: Result of parsing tooling-nest-block.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -1842,6 +2068,7 @@ description: Result of parsing tooling-nest-block.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -1852,6 +2079,7 @@ description: Result of parsing tooling-nest-block.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -1862,6 +2090,7 @@ description: Result of parsing tooling-nest-block.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -1872,11 +2101,13 @@ description: Result of parsing tooling-nest-block.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1896,6 +2127,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -1904,9 +2136,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -1922,6 +2156,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -1929,6 +2164,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1944,6 +2180,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -1951,6 +2188,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1966,6 +2204,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -1974,9 +2213,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size01", "start": 0, "type": "Identifier" @@ -1992,9 +2233,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -2005,11 +2248,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -2029,6 +2274,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -2037,9 +2283,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -2055,6 +2303,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -2062,6 +2311,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.65", "start": 0, "type": "Literal", @@ -2077,6 +2327,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -2084,6 +2335,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2099,6 +2351,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -2107,9 +2360,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size02", "start": 0, "type": "Identifier" @@ -2125,9 +2380,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -2138,11 +2395,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -2162,6 +2421,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -2170,9 +2430,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -2188,6 +2450,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -2195,6 +2458,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -2210,6 +2474,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -2217,6 +2482,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -2232,6 +2498,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -2240,9 +2507,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size03", "start": 0, "type": "Identifier" @@ -2258,9 +2527,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -2271,11 +2542,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2290,6 +2563,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -2298,9 +2572,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -2316,6 +2592,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -2323,6 +2600,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -2338,6 +2616,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -2345,6 +2624,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -2360,6 +2640,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -2368,9 +2649,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size03", "start": 0, "type": "Identifier" @@ -2386,9 +2669,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -2399,11 +2684,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2418,6 +2705,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -2426,9 +2714,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentB001", "start": 0, "type": "Identifier" @@ -2444,6 +2734,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -2451,6 +2742,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -2466,6 +2758,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -2473,6 +2766,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -2488,6 +2782,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -2496,9 +2791,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size04", "start": 0, "type": "Identifier" @@ -2514,9 +2811,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -2527,11 +2826,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -2551,6 +2852,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -2559,9 +2861,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentB001", "start": 0, "type": "Identifier" @@ -2577,6 +2881,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -2584,6 +2889,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -2599,6 +2905,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -2606,6 +2913,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -2621,6 +2929,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -2629,9 +2938,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size05", "start": 0, "type": "Identifier" @@ -2647,9 +2958,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -2660,11 +2973,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2679,6 +2994,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -2687,9 +3003,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentB001", "start": 0, "type": "Identifier" @@ -2705,6 +3023,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -2712,6 +3031,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -2727,6 +3047,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -2734,6 +3055,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -2749,6 +3071,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -2757,9 +3080,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size05", "start": 0, "type": "Identifier" @@ -2775,9 +3100,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -2788,11 +3115,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2807,6 +3136,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -2815,9 +3145,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentB001", "start": 0, "type": "Identifier" @@ -2833,6 +3165,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -2840,6 +3173,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -2855,6 +3189,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -2862,6 +3197,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -2877,6 +3213,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -2885,9 +3222,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size05", "start": 0, "type": "Identifier" @@ -2903,9 +3242,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -2916,11 +3257,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2935,6 +3278,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -2943,9 +3287,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentC001", "start": 0, "type": "Identifier" @@ -2961,6 +3307,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -2969,6 +3316,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -2980,6 +3328,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2991,6 +3340,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -2998,6 +3348,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -3013,6 +3364,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -3021,9 +3373,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size06", "start": 0, "type": "Identifier" @@ -3039,9 +3393,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -3052,11 +3408,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -3076,6 +3434,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -3084,9 +3443,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -3102,6 +3463,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -3110,6 +3472,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -3121,6 +3484,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3132,6 +3496,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -3139,6 +3504,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -3154,6 +3520,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -3162,9 +3529,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size15", "start": 0, "type": "Identifier" @@ -3180,9 +3549,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -3193,11 +3564,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -3217,6 +3590,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -3225,9 +3599,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -3243,6 +3619,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -3251,6 +3628,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -3262,6 +3640,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3273,6 +3652,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -3280,6 +3660,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -3295,6 +3676,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -3303,9 +3685,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size14", "start": 0, "type": "Identifier" @@ -3321,9 +3705,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -3334,11 +3720,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3353,6 +3741,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -3361,9 +3750,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -3379,6 +3770,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -3387,6 +3779,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -3398,6 +3791,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3409,6 +3803,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -3416,6 +3811,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -3431,6 +3827,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -3439,9 +3836,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size13", "start": 0, "type": "Identifier" @@ -3457,9 +3856,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -3470,11 +3871,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3489,6 +3892,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -3497,9 +3901,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -3515,6 +3921,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -3523,6 +3930,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -3534,6 +3942,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3545,6 +3954,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -3552,6 +3962,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -3567,6 +3978,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -3575,9 +3987,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size12", "start": 0, "type": "Identifier" @@ -3593,9 +4007,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -3606,11 +4022,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3625,6 +4043,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -3633,9 +4052,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -3651,6 +4072,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -3659,6 +4081,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -3670,6 +4093,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3681,6 +4105,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -3688,6 +4113,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -3703,6 +4129,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -3711,9 +4138,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size10", "start": 0, "type": "Identifier" @@ -3729,9 +4158,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -3742,11 +4173,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3761,6 +4194,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -3769,9 +4203,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -3787,6 +4223,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -3795,6 +4232,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -3806,6 +4244,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3817,6 +4256,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -3824,6 +4264,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -3839,6 +4280,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -3847,9 +4289,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size08", "start": 0, "type": "Identifier" @@ -3865,9 +4309,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -3878,11 +4324,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -3897,6 +4345,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -3905,9 +4354,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -3923,6 +4374,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -3931,6 +4383,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -3942,6 +4395,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3953,6 +4407,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -3960,6 +4415,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.33", "start": 0, "type": "Literal", @@ -3975,6 +4431,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -3983,9 +4440,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size09", "start": 0, "type": "Identifier" @@ -4001,9 +4460,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -4014,11 +4475,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -4033,6 +4496,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -4041,9 +4505,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentD001", "start": 0, "type": "Identifier" @@ -4059,6 +4525,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -4067,6 +4534,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -4078,6 +4546,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4089,6 +4558,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -4096,6 +4566,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.67", "start": 0, "type": "Literal", @@ -4111,6 +4582,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -4119,9 +4591,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size11", "start": 0, "type": "Identifier" @@ -4137,9 +4611,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -4150,11 +4626,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -4169,6 +4647,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeFace", "start": 0, "type": "Identifier" @@ -4177,9 +4656,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -4195,6 +4676,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xPos", "start": 0, "type": "Identifier" @@ -4203,6 +4685,7 @@ description: Result of parsing tooling-nest-block.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -4214,6 +4697,7 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4225,6 +4709,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yPos", "start": 0, "type": "Identifier" @@ -4232,6 +4717,7 @@ description: Result of parsing tooling-nest-block.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -4247,6 +4733,7 @@ description: Result of parsing tooling-nest-block.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nestSize", "start": 0, "type": "Identifier" @@ -4255,9 +4742,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "size07", "start": 0, "type": "Identifier" @@ -4273,9 +4762,11 @@ description: Result of parsing tooling-nest-block.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nest", "start": 0, "type": "Identifier" @@ -4286,11 +4777,13 @@ description: Result of parsing tooling-nest-block.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "preComments": [ "", "", @@ -4307,9 +4800,11 @@ description: Result of parsing tooling-nest-block.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -4328,19 +4823,23 @@ description: Result of parsing tooling-nest-block.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -4356,12 +4855,14 @@ description: Result of parsing tooling-nest-block.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/tooling-nest-block/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/tooling-nest-block/program_memory.snap index 96d42624a..f2fcd10f4 100644 --- a/rust/kcl-lib/tests/kcl_samples/tooling-nest-block/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/tooling-nest-block/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 677, "end": 698, + "moduleId": 0, "start": 677, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -30,6 +31,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 786, "end": 807, + "moduleId": 0, "start": 786, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -43,6 +45,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 909, "end": 930, + "moduleId": 0, "start": 909, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -56,6 +59,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 1000, "end": 1021, + "moduleId": 0, "start": 1000, "type": "TagDeclarator", "value": "rectangleSegmentD001" @@ -79,6 +83,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 677, "end": 698, + "moduleId": 0, "start": 677, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -104,6 +109,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 786, "end": 807, + "moduleId": 0, "start": 786, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -129,6 +135,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 909, "end": 930, + "moduleId": 0, "start": 909, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -154,6 +161,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 1000, "end": 1021, + "moduleId": 0, "start": 1000, "type": "TagDeclarator", "value": "rectangleSegmentD001" @@ -286,6 +294,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 677, "end": 698, + "moduleId": 0, "start": 677, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -311,6 +320,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 786, "end": 807, + "moduleId": 0, "start": 786, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -336,6 +346,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 909, "end": 930, + "moduleId": 0, "start": 909, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -361,6 +372,7 @@ description: Variables in memory after executing tooling-nest-block.kcl "tag": { "commentStart": 1000, "end": 1021, + "moduleId": 0, "start": 1000, "type": "TagDeclarator", "value": "rectangleSegmentD001" diff --git a/rust/kcl-lib/tests/kcl_samples/truss-structure/ast.snap b/rust/kcl-lib/tests/kcl_samples/truss-structure/ast.snap index fc588d297..ec469d8e1 100644 --- a/rust/kcl-lib/tests/kcl_samples/truss-structure/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/truss-structure/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalLength", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalHeight", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legHeight", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "48", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparAngle", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +349,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nFrames", "start": 0, "type": "Identifier" @@ -320,6 +357,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -329,11 +367,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -346,6 +386,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crossBeamLength", "start": 0, "type": "Identifier" @@ -353,6 +394,7 @@ description: Result of parsing truss-structure.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "82", "start": 0, "type": "Literal", @@ -362,11 +404,13 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -379,18 +423,22 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topFrameSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -401,6 +449,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -408,9 +457,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -421,11 +472,13 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -443,6 +496,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -456,6 +510,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -470,9 +525,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -482,10 +539,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -502,6 +561,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -513,6 +573,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -523,9 +584,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -536,6 +599,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -543,9 +607,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topFrameSketch", "start": 0, "type": "Identifier" @@ -563,6 +629,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -572,9 +639,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -586,6 +655,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -597,6 +667,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -604,6 +675,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -615,9 +687,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -628,6 +702,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -640,6 +715,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -647,6 +723,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -662,9 +739,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -675,6 +754,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -687,6 +767,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -695,9 +776,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -713,6 +796,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -720,6 +804,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -735,6 +820,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -742,6 +828,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -753,9 +840,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -766,6 +855,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -778,6 +868,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -787,9 +878,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -801,6 +894,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -812,6 +906,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -823,9 +918,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -835,10 +932,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -858,6 +957,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -865,6 +965,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -876,9 +977,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -889,19 +992,23 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -912,6 +1019,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -920,12 +1028,14 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -942,11 +1052,13 @@ description: Result of parsing truss-structure.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -959,6 +1071,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -972,6 +1085,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -989,9 +1103,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -1001,10 +1117,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1018,14 +1136,17 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1043,9 +1164,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1057,6 +1180,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1067,9 +1191,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1080,6 +1206,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1087,9 +1214,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topFrameSketch", "start": 0, "type": "Identifier" @@ -1107,6 +1236,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1118,9 +1248,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1130,10 +1262,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1153,9 +1287,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1166,6 +1302,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1178,6 +1315,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1186,13 +1324,16 @@ description: Result of parsing truss-structure.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1203,6 +1344,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1210,9 +1352,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag001", "start": 0, "type": "Identifier" @@ -1223,14 +1367,17 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1250,9 +1397,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1263,6 +1412,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1275,18 +1425,22 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1297,12 +1451,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1314,6 +1470,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1323,9 +1480,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -1337,6 +1496,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1348,9 +1508,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1361,19 +1523,23 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1384,12 +1550,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1398,15 +1566,18 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1419,6 +1590,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile003", "start": 0, "type": "Identifier" @@ -1432,6 +1604,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1450,9 +1623,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -1464,15 +1639,18 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1486,14 +1664,17 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1511,9 +1692,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1525,6 +1708,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1535,9 +1719,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1548,6 +1734,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1555,9 +1742,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topFrameSketch", "start": 0, "type": "Identifier" @@ -1575,6 +1764,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1587,9 +1777,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1601,15 +1793,18 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1629,9 +1824,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1642,6 +1839,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1654,6 +1852,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1662,13 +1861,16 @@ description: Result of parsing truss-structure.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1679,6 +1881,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1686,9 +1889,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag001", "start": 0, "type": "Identifier" @@ -1699,14 +1904,17 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1726,9 +1934,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1739,6 +1949,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1751,18 +1962,22 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1773,12 +1988,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1790,6 +2007,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1800,6 +2018,7 @@ description: Result of parsing truss-structure.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1809,14 +2028,17 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -1836,9 +2058,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1849,19 +2073,23 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1872,12 +2100,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1886,15 +2116,18 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1907,6 +2140,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile004", "start": 0, "type": "Identifier" @@ -1918,6 +2152,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1926,9 +2161,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -1944,9 +2181,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1957,6 +2196,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1964,9 +2204,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -1977,11 +2219,13 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1996,6 +2240,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -2004,9 +2249,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile003", "start": 0, "type": "Identifier" @@ -2022,9 +2269,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -2035,6 +2284,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2042,9 +2292,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -2055,6 +2307,7 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2067,6 +2320,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topFrame", "start": 0, "type": "Identifier" @@ -2078,6 +2332,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2086,9 +2341,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -2104,9 +2361,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2117,6 +2376,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2124,9 +2384,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -2137,11 +2399,13 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2159,18 +2423,22 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2181,6 +2449,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2191,6 +2460,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2198,6 +2468,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -2213,9 +2484,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2226,6 +2499,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2233,9 +2507,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -2247,11 +2523,13 @@ description: Result of parsing truss-structure.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2269,6 +2547,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile006", "start": 0, "type": "Identifier" @@ -2282,6 +2561,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2299,9 +2579,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -2311,10 +2593,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2328,10 +2612,12 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2348,6 +2634,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -2359,6 +2646,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2369,9 +2657,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2382,6 +2672,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2389,9 +2680,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2409,6 +2702,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2417,9 +2711,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparAngle", "start": 0, "type": "Identifier" @@ -2435,6 +2731,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2442,6 +2739,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -2457,9 +2755,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2470,6 +2770,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2482,6 +2783,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2491,9 +2793,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -2505,6 +2809,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2516,6 +2821,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2523,6 +2829,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2538,9 +2845,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2551,6 +2860,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2563,6 +2873,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2573,6 +2884,7 @@ description: Result of parsing truss-structure.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2582,14 +2894,17 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparAngle", "start": 0, "type": "Identifier" @@ -2609,18 +2924,22 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2631,12 +2950,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2648,9 +2969,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2661,19 +2984,23 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2684,12 +3011,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2698,15 +3027,18 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2719,6 +3051,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spar001", "start": 0, "type": "Identifier" @@ -2730,6 +3063,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2737,6 +3071,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -2752,9 +3087,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2765,6 +3102,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2772,9 +3110,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile006", "start": 0, "type": "Identifier" @@ -2785,11 +3125,13 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2802,6 +3144,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile007", "start": 0, "type": "Identifier" @@ -2815,6 +3158,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2833,9 +3177,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -2847,15 +3193,18 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2869,10 +3218,12 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2889,6 +3240,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -2900,6 +3252,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2910,9 +3263,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2923,6 +3278,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2930,9 +3286,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2950,6 +3308,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2960,6 +3319,7 @@ description: Result of parsing truss-structure.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2969,14 +3329,17 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparAngle", "start": 0, "type": "Identifier" @@ -2996,6 +3359,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3003,6 +3367,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -3018,9 +3383,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3031,6 +3398,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3043,6 +3411,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3053,6 +3422,7 @@ description: Result of parsing truss-structure.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -3062,14 +3432,17 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -3089,6 +3462,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3096,6 +3470,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -3111,9 +3486,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3124,6 +3501,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3136,6 +3514,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3145,9 +3524,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparAngle", "start": 0, "type": "Identifier" @@ -3159,6 +3540,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3170,18 +3552,22 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3192,12 +3578,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3209,9 +3597,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -3222,19 +3612,23 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3245,12 +3639,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3259,15 +3655,18 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3285,6 +3684,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spar002", "start": 0, "type": "Identifier" @@ -3296,6 +3696,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3303,6 +3704,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -3318,9 +3720,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3331,6 +3735,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3338,9 +3743,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile007", "start": 0, "type": "Identifier" @@ -3351,11 +3758,13 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3368,6 +3777,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "newFrame", "start": 0, "type": "Identifier" @@ -3382,9 +3792,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topFrame", "start": 0, "type": "Identifier" @@ -3394,14 +3806,17 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spar001", "start": 0, "type": "Identifier" @@ -3415,14 +3830,17 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "spar002", "start": 0, "type": "Identifier" @@ -3436,11 +3854,13 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3458,18 +3878,22 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg001Sketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3480,6 +3904,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3490,6 +3915,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3497,6 +3923,7 @@ description: Result of parsing truss-structure.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -3512,9 +3939,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3525,6 +3954,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3532,9 +3962,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3546,11 +3978,13 @@ description: Result of parsing truss-structure.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -3568,6 +4002,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legProfile001", "start": 0, "type": "Identifier" @@ -3581,6 +4016,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3591,6 +4027,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3608,9 +4045,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -3622,15 +4061,18 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3646,6 +4088,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3656,9 +4099,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3669,6 +4114,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3676,9 +4122,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg001Sketch", "start": 0, "type": "Identifier" @@ -3696,6 +4144,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3707,9 +4156,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -3719,10 +4170,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -3742,9 +4195,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3755,12 +4210,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3773,6 +4230,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3784,9 +4242,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -3796,10 +4256,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3819,9 +4281,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3832,12 +4296,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3850,18 +4316,22 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3872,12 +4342,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3889,9 +4361,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3902,25 +4376,30 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3931,12 +4410,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3945,15 +4426,18 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3966,6 +4450,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legProfile002", "start": 0, "type": "Identifier" @@ -3979,6 +4464,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3989,6 +4475,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4005,9 +4492,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -4017,10 +4506,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4036,6 +4527,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4046,9 +4538,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4059,6 +4553,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4066,9 +4561,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg001Sketch", "start": 0, "type": "Identifier" @@ -4086,6 +4583,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4097,9 +4595,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -4109,10 +4609,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -4132,9 +4634,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4145,12 +4649,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4163,6 +4669,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4175,9 +4682,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -4187,10 +4696,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4206,6 +4717,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4217,9 +4729,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4230,12 +4744,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4248,18 +4764,22 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4270,12 +4790,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4287,9 +4809,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4300,25 +4824,30 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4329,12 +4858,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4343,15 +4874,18 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4364,6 +4898,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg001", "start": 0, "type": "Identifier" @@ -4375,6 +4910,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4387,9 +4923,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legHeight", "start": 0, "type": "Identifier" @@ -4401,15 +4939,18 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -4429,9 +4970,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4442,6 +4985,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4449,9 +4993,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legProfile001", "start": 0, "type": "Identifier" @@ -4462,11 +5008,13 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4479,6 +5027,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg002", "start": 0, "type": "Identifier" @@ -4490,6 +5039,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4502,9 +5052,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legHeight", "start": 0, "type": "Identifier" @@ -4516,15 +5068,18 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -4544,9 +5099,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4557,6 +5114,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4564,9 +5122,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legProfile002", "start": 0, "type": "Identifier" @@ -4577,11 +5137,13 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4594,6 +5156,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fullFrame", "start": 0, "type": "Identifier" @@ -4610,9 +5173,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "newFrame", "start": 0, "type": "Identifier" @@ -4622,14 +5187,17 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg001", "start": 0, "type": "Identifier" @@ -4643,14 +5211,17 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg002", "start": 0, "type": "Identifier" @@ -4671,6 +5242,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4679,9 +5251,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nFrames", "start": 0, "type": "Identifier" @@ -4697,6 +5271,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4708,9 +5283,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crossBeamLength", "start": 0, "type": "Identifier" @@ -4720,14 +5297,17 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -4747,6 +5327,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4758,6 +5339,7 @@ description: Result of parsing truss-structure.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4769,6 +5351,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4777,6 +5360,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4789,6 +5373,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4800,6 +5385,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4810,9 +5396,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -4823,12 +5411,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4837,12 +5427,14 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4859,11 +5451,13 @@ description: Result of parsing truss-structure.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4881,18 +5475,22 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centerCrossBeamSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4903,6 +5501,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4910,9 +5509,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -4923,11 +5524,13 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4940,6 +5543,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile005", "start": 0, "type": "Identifier" @@ -4953,6 +5557,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4963,6 +5568,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4976,13 +5582,16 @@ description: Result of parsing truss-structure.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -4993,6 +5602,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5000,9 +5610,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag001", "start": 0, "type": "Identifier" @@ -5013,10 +5625,12 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5032,6 +5646,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5042,9 +5657,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5055,6 +5672,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5062,9 +5680,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centerCrossBeamSketch", "start": 0, "type": "Identifier" @@ -5082,6 +5702,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5091,9 +5712,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -5105,6 +5728,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5116,6 +5740,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5130,9 +5755,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -5142,10 +5769,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5159,10 +5788,12 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -5182,9 +5813,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -5195,12 +5828,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5213,6 +5848,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5228,9 +5864,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -5242,15 +5880,18 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5264,10 +5905,12 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -5287,9 +5930,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5300,6 +5945,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5312,6 +5958,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5322,6 +5969,7 @@ description: Result of parsing truss-structure.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -5331,14 +5979,17 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -5358,6 +6009,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5372,9 +6024,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -5384,10 +6038,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5401,10 +6057,12 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -5424,9 +6082,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -5437,12 +6097,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5455,6 +6117,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5465,6 +6128,7 @@ description: Result of parsing truss-structure.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -5474,14 +6138,17 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topTrussAngle", "start": 0, "type": "Identifier" @@ -5501,6 +6168,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5515,9 +6183,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -5527,10 +6197,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5544,10 +6216,12 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -5567,9 +6241,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -5580,12 +6256,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5598,6 +6276,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5612,9 +6291,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -5624,10 +6305,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5641,10 +6324,12 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -5664,9 +6349,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5677,6 +6364,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5689,6 +6377,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5697,13 +6386,16 @@ description: Result of parsing truss-structure.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5714,25 +6406,30 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5743,12 +6440,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5756,6 +6455,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5766,9 +6466,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5779,19 +6481,23 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5802,6 +6508,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5810,12 +6517,14 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5832,11 +6541,13 @@ description: Result of parsing truss-structure.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5849,6 +6560,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "centerCrossBeam", "start": 0, "type": "Identifier" @@ -5862,6 +6574,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5871,9 +6584,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crossBeamLength", "start": 0, "type": "Identifier" @@ -5885,6 +6600,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5896,9 +6612,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5909,6 +6627,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5916,9 +6635,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile005", "start": 0, "type": "Identifier" @@ -5936,6 +6657,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -5947,9 +6669,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nFrames", "start": 0, "type": "Identifier" @@ -5959,10 +6683,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5982,6 +6708,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -5993,9 +6720,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crossBeamLength", "start": 0, "type": "Identifier" @@ -6005,14 +6734,17 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -6032,6 +6764,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -6043,6 +6776,7 @@ description: Result of parsing truss-structure.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6054,6 +6788,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6062,6 +6797,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6074,6 +6810,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6085,6 +6822,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6095,9 +6833,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -6108,12 +6848,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6122,12 +6864,14 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -6144,11 +6888,13 @@ description: Result of parsing truss-structure.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6161,18 +6907,22 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideCrossBeamSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6183,6 +6933,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6191,9 +6942,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -6205,17 +6958,20 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6228,6 +6984,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile008", "start": 0, "type": "Identifier" @@ -6241,6 +6998,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6259,9 +7017,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -6273,15 +7033,18 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6295,10 +7058,12 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -6316,13 +7081,16 @@ description: Result of parsing truss-structure.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -6333,6 +7101,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6340,9 +7109,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag002", "start": 0, "type": "Identifier" @@ -6353,10 +7124,12 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".5", "start": 0, "type": "Literal", @@ -6372,6 +7145,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6382,9 +7156,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6395,6 +7171,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6402,9 +7179,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideCrossBeamSketch", "start": 0, "type": "Identifier" @@ -6422,6 +7201,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6431,9 +7211,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -6445,6 +7227,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6456,9 +7239,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6469,6 +7254,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6481,6 +7267,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6494,6 +7281,7 @@ description: Result of parsing truss-structure.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6503,10 +7291,12 @@ description: Result of parsing truss-structure.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6520,14 +7310,17 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -6547,9 +7340,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6560,6 +7355,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6572,6 +7368,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6580,9 +7377,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -6598,9 +7397,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6611,19 +7412,23 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -6634,6 +7439,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6642,15 +7448,18 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6663,6 +7472,7 @@ description: Result of parsing truss-structure.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile009", "start": 0, "type": "Identifier" @@ -6676,6 +7486,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6690,9 +7501,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "totalWidth", "start": 0, "type": "Identifier" @@ -6702,10 +7515,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6723,13 +7538,16 @@ description: Result of parsing truss-structure.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -6740,6 +7558,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6747,9 +7566,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag002", "start": 0, "type": "Identifier" @@ -6760,10 +7581,12 @@ description: Result of parsing truss-structure.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".5", "start": 0, "type": "Literal", @@ -6779,6 +7602,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6789,9 +7613,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6802,6 +7628,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6809,9 +7636,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sideCrossBeamSketch", "start": 0, "type": "Identifier" @@ -6829,6 +7658,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6838,9 +7668,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -6852,6 +7684,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6863,9 +7696,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6876,6 +7711,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6888,6 +7724,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6902,6 +7739,7 @@ description: Result of parsing truss-structure.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6913,15 +7751,18 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -6935,14 +7776,17 @@ description: Result of parsing truss-structure.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamWidth", "start": 0, "type": "Identifier" @@ -6962,9 +7806,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6975,12 +7821,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6993,6 +7841,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7001,9 +7850,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -7019,9 +7870,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7032,25 +7885,30 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -7061,12 +7919,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7075,12 +7935,14 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7097,11 +7959,13 @@ description: Result of parsing truss-structure.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7118,6 +7982,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7126,9 +7991,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crossBeamLength", "start": 0, "type": "Identifier" @@ -7144,9 +8011,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7157,6 +8026,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7167,9 +8037,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile008", "start": 0, "type": "Identifier" @@ -7183,9 +8055,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile009", "start": 0, "type": "Identifier" @@ -7197,6 +8071,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7209,6 +8084,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -7220,9 +8096,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nFrames", "start": 0, "type": "Identifier" @@ -7232,10 +8110,12 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7255,6 +8135,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -7266,9 +8147,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crossBeamLength", "start": 0, "type": "Identifier" @@ -7278,14 +8161,17 @@ description: Result of parsing truss-structure.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "beamLength", "start": 0, "type": "Identifier" @@ -7305,6 +8191,7 @@ description: Result of parsing truss-structure.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -7316,6 +8203,7 @@ description: Result of parsing truss-structure.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7327,6 +8215,7 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7335,6 +8224,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7347,6 +8237,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7358,6 +8249,7 @@ description: Result of parsing truss-structure.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7368,9 +8260,11 @@ description: Result of parsing truss-structure.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -7381,12 +8275,14 @@ description: Result of parsing truss-structure.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7395,10 +8291,12 @@ description: Result of parsing truss-structure.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -7410,9 +8308,11 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -7424,19 +8324,23 @@ description: Result of parsing truss-structure.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -7452,12 +8356,14 @@ description: Result of parsing truss-structure.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "13": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7469,6 +8375,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7480,6 +8387,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7491,6 +8399,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7503,6 +8412,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7514,6 +8424,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7525,6 +8436,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7534,6 +8446,7 @@ description: Result of parsing truss-structure.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/truss-structure/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/truss-structure/program_memory.snap index 9875c8a80..cdbdea505 100644 --- a/rust/kcl-lib/tests/kcl_samples/truss-structure/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/truss-structure/program_memory.snap @@ -603,6 +603,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -623,6 +624,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -636,6 +638,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -666,6 +669,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -710,6 +714,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -735,6 +740,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -859,6 +865,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -879,6 +886,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -892,6 +900,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -922,6 +931,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -966,6 +976,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -991,6 +1002,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -1115,6 +1127,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -1135,6 +1148,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -1148,6 +1162,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -1178,6 +1193,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -1222,6 +1238,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -1247,6 +1264,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -2067,6 +2085,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -2087,6 +2106,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -2100,6 +2120,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -2130,6 +2151,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -2174,6 +2196,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -2199,6 +2222,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -2327,6 +2351,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -2371,6 +2396,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -2396,6 +2422,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -2792,6 +2819,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -2836,6 +2864,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -2861,6 +2890,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -4184,6 +4214,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -4204,6 +4235,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -4217,6 +4249,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" @@ -4247,6 +4280,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 698, "end": 709, + "moduleId": 0, "start": 698, "type": "TagDeclarator", "value": "bottomFace" @@ -4291,6 +4325,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 798, "end": 805, + "moduleId": 0, "start": 798, "type": "TagDeclarator", "value": "tag001" @@ -4316,6 +4351,7 @@ description: Variables in memory after executing truss-structure.kcl "tag": { "commentStart": 884, "end": 891, + "moduleId": 0, "start": 884, "type": "TagDeclarator", "value": "tag002" diff --git a/rust/kcl-lib/tests/kcl_samples/utility-sink/ast.snap b/rust/kcl-lib/tests/kcl_samples/utility-sink/ast.snap index 964d9de00..c263735f6 100644 --- a/rust/kcl-lib/tests/kcl_samples/utility-sink/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/utility-sink/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableHeight", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "850", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableWidth", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1200", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableDepth", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "600", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalThickness", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockCount", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -228,9 +253,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableWidth", "start": 0, "type": "Identifier" @@ -240,14 +267,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -261,14 +291,17 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockCount", "start": 0, "type": "Identifier" @@ -282,11 +315,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -299,6 +334,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockHeight", "start": 0, "type": "Identifier" @@ -313,9 +349,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableHeight", "start": 0, "type": "Identifier" @@ -325,14 +363,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalThickness", "start": 0, "type": "Identifier" @@ -346,10 +387,12 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -363,11 +406,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -380,6 +425,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockDepth", "start": 0, "type": "Identifier" @@ -391,9 +437,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableDepth", "start": 0, "type": "Identifier" @@ -403,14 +451,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -424,11 +475,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -441,6 +494,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockSubdivisionCount", "start": 0, "type": "Identifier" @@ -448,6 +502,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -457,11 +512,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -474,6 +531,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockSubdivisionWidth", "start": 0, "type": "Identifier" @@ -485,9 +543,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -497,14 +557,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockSubdivisionCount", "start": 0, "type": "Identifier" @@ -518,11 +581,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -535,18 +600,22 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -557,6 +626,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -564,9 +634,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -577,11 +649,13 @@ description: Result of parsing utility-sink.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -599,6 +673,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legHeight", "start": 0, "type": "Identifier" @@ -610,9 +685,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockHeight", "start": 0, "type": "Identifier" @@ -622,14 +699,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -643,11 +723,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -665,6 +747,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legCount", "start": 0, "type": "Identifier" @@ -676,9 +759,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockCount", "start": 0, "type": "Identifier" @@ -688,10 +773,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -705,11 +792,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -722,6 +811,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legBody", "start": 0, "type": "Identifier" @@ -735,6 +825,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -745,6 +836,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -757,6 +849,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -768,6 +861,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -778,9 +872,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -791,6 +887,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -798,9 +895,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "floorPlane", "start": 0, "type": "Identifier" @@ -818,6 +917,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -826,9 +926,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -844,9 +946,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -857,6 +961,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -869,6 +974,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -877,9 +983,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -895,9 +1003,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -908,6 +1018,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -920,6 +1031,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -929,9 +1041,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -943,6 +1057,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -954,9 +1069,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -967,6 +1084,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -979,6 +1097,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -987,13 +1106,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1004,25 +1126,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1033,12 +1160,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1046,6 +1175,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1056,9 +1186,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1069,19 +1201,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1092,6 +1228,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1104,6 +1241,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1114,6 +1252,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1126,6 +1265,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1137,6 +1277,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1147,6 +1288,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1155,9 +1297,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legCount", "start": 0, "type": "Identifier" @@ -1173,6 +1317,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -1181,9 +1326,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -1199,9 +1346,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -1212,6 +1361,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1224,6 +1374,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1234,6 +1385,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1246,6 +1398,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1257,6 +1410,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1267,6 +1421,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1274,6 +1429,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1289,6 +1445,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -1297,9 +1454,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockDepth", "start": 0, "type": "Identifier" @@ -1315,9 +1474,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -1328,6 +1489,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1340,6 +1502,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1348,9 +1511,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legHeight", "start": 0, "type": "Identifier" @@ -1366,9 +1531,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1379,6 +1546,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1387,12 +1555,14 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1409,11 +1579,13 @@ description: Result of parsing utility-sink.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1426,6 +1598,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -1433,6 +1606,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -1442,11 +1616,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1459,6 +1635,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltLengthX", "start": 0, "type": "Identifier" @@ -1470,9 +1647,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -1482,14 +1661,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -1503,11 +1685,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1520,18 +1704,22 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1542,6 +1730,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1552,6 +1741,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1560,9 +1750,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -1578,9 +1770,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1591,6 +1785,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1598,9 +1793,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1612,11 +1809,13 @@ description: Result of parsing utility-sink.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1629,6 +1828,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltBodyX", "start": 0, "type": "Identifier" @@ -1642,6 +1842,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1653,9 +1854,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -1668,6 +1871,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1679,6 +1883,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1689,9 +1894,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1702,6 +1909,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1709,9 +1917,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltPlane", "start": 0, "type": "Identifier" @@ -1729,6 +1939,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1737,9 +1948,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -1755,9 +1968,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1768,6 +1983,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1780,6 +1996,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1788,9 +2005,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltLengthX", "start": 0, "type": "Identifier" @@ -1806,9 +2025,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1819,6 +2040,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1831,6 +2053,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1840,9 +2063,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -1854,6 +2079,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1865,9 +2091,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1878,6 +2106,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1890,6 +2119,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1898,13 +2128,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1915,25 +2148,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1944,12 +2182,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1957,6 +2197,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1967,9 +2208,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1980,19 +2223,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2003,6 +2250,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2015,6 +2263,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2025,6 +2274,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2037,6 +2287,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2048,6 +2299,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2058,6 +2310,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2066,9 +2319,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockCount", "start": 0, "type": "Identifier" @@ -2084,6 +2339,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2092,9 +2348,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -2110,9 +2368,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -2123,6 +2383,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2135,6 +2396,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2145,6 +2407,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2157,6 +2420,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2168,6 +2432,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2178,6 +2443,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2185,6 +2451,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2200,6 +2467,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2208,9 +2476,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockDepth", "start": 0, "type": "Identifier" @@ -2226,9 +2496,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -2239,6 +2511,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2251,6 +2524,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2259,9 +2533,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -2277,9 +2553,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2290,6 +2568,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2298,15 +2577,18 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2319,6 +2601,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltLengthY", "start": 0, "type": "Identifier" @@ -2330,9 +2613,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockDepth", "start": 0, "type": "Identifier" @@ -2342,14 +2627,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -2363,11 +2651,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2380,6 +2670,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltBodyY", "start": 0, "type": "Identifier" @@ -2393,6 +2684,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2403,6 +2695,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2416,9 +2709,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -2430,6 +2725,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2440,9 +2736,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2453,6 +2751,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2460,9 +2759,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltPlane", "start": 0, "type": "Identifier" @@ -2480,6 +2781,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2488,9 +2790,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltLengthY", "start": 0, "type": "Identifier" @@ -2506,9 +2810,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2519,6 +2825,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2531,6 +2838,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2539,9 +2847,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -2557,9 +2867,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2570,6 +2882,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2582,6 +2895,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2591,9 +2905,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltLengthY", "start": 0, "type": "Identifier" @@ -2605,6 +2921,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2616,9 +2933,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2629,6 +2948,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2641,6 +2961,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2649,13 +2970,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2666,25 +2990,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2695,12 +3024,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2708,6 +3039,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2718,9 +3050,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2731,19 +3065,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2754,6 +3092,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2766,6 +3105,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2776,6 +3116,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2788,6 +3129,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2799,6 +3141,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2809,6 +3152,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2816,6 +3160,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2831,6 +3176,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2842,9 +3188,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableWidth", "start": 0, "type": "Identifier" @@ -2854,14 +3202,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -2881,9 +3232,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -2894,6 +3247,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2906,6 +3260,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2914,9 +3269,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -2932,9 +3289,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2945,6 +3304,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2953,12 +3313,14 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2975,11 +3337,13 @@ description: Result of parsing utility-sink.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2992,6 +3356,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pillarHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -3003,9 +3368,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerBeltHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -3015,14 +3382,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -3036,11 +3406,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3053,18 +3425,22 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pillarPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3075,6 +3451,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3085,6 +3462,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3093,9 +3471,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pillarHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -3111,9 +3491,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -3124,6 +3506,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3131,9 +3514,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -3145,11 +3530,13 @@ description: Result of parsing utility-sink.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3162,6 +3549,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pillarTotalHeight", "start": 0, "type": "Identifier" @@ -3176,9 +3564,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockHeight", "start": 0, "type": "Identifier" @@ -3188,14 +3578,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -3209,14 +3602,17 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pillarHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -3230,11 +3626,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3247,6 +3645,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pillarBody", "start": 0, "type": "Identifier" @@ -3260,6 +3659,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3271,9 +3671,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockSubdivisionWidth", "start": 0, "type": "Identifier" @@ -3286,6 +3688,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3297,6 +3700,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3307,9 +3711,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3320,6 +3726,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3327,9 +3734,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pillarPlane", "start": 0, "type": "Identifier" @@ -3347,6 +3756,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3355,9 +3765,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -3373,9 +3785,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3386,6 +3800,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3398,6 +3813,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3406,9 +3822,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -3424,9 +3842,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3437,6 +3857,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3449,6 +3870,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3458,9 +3880,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -3472,6 +3896,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3483,9 +3908,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3496,6 +3923,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3508,6 +3936,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3516,13 +3945,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3533,25 +3965,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3562,12 +3999,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3575,6 +4014,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3585,9 +4025,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3598,19 +4040,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3621,6 +4067,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3633,6 +4080,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3643,6 +4091,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3655,6 +4104,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3666,6 +4116,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3676,6 +4127,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3684,9 +4136,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockCount", "start": 0, "type": "Identifier" @@ -3702,6 +4156,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -3710,9 +4165,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -3728,9 +4185,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -3741,6 +4200,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3753,6 +4213,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3763,6 +4224,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3775,6 +4237,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3786,6 +4249,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3796,6 +4260,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3803,6 +4268,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3818,6 +4284,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -3826,9 +4293,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockDepth", "start": 0, "type": "Identifier" @@ -3844,9 +4313,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -3857,6 +4328,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3869,6 +4341,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3877,9 +4350,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pillarTotalHeight", "start": 0, "type": "Identifier" @@ -3895,9 +4370,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3908,6 +4385,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3916,12 +4394,14 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3938,11 +4418,13 @@ description: Result of parsing utility-sink.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3955,18 +4437,22 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperBeltPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -3977,6 +4463,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3987,6 +4474,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -3995,9 +4483,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockHeight", "start": 0, "type": "Identifier" @@ -4013,9 +4503,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -4026,6 +4518,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4033,9 +4526,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -4047,11 +4542,13 @@ description: Result of parsing utility-sink.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4064,6 +4561,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperBeltBodyX", "start": 0, "type": "Identifier" @@ -4077,6 +4575,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4087,6 +4586,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4099,6 +4599,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4110,6 +4611,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4120,9 +4622,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4133,6 +4637,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4140,9 +4645,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperBeltPlane", "start": 0, "type": "Identifier" @@ -4160,6 +4667,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4168,9 +4676,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -4186,9 +4696,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4199,6 +4711,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4211,6 +4724,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4219,9 +4733,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableWidth", "start": 0, "type": "Identifier" @@ -4237,9 +4753,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4250,6 +4768,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4262,6 +4781,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4271,9 +4791,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -4285,6 +4807,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4296,9 +4819,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4309,6 +4834,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4321,6 +4847,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4329,13 +4856,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4346,25 +4876,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -4375,12 +4910,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -4388,6 +4925,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4398,9 +4936,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4411,19 +4951,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -4434,6 +4978,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4446,6 +4991,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -4456,6 +5002,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4468,6 +5015,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -4479,6 +5027,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4489,6 +5038,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -4496,6 +5046,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4511,6 +5062,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -4519,9 +5071,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockDepth", "start": 0, "type": "Identifier" @@ -4537,9 +5091,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -4550,6 +5106,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4562,6 +5119,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4571,9 +5129,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -4585,6 +5145,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4596,9 +5157,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4609,6 +5172,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4617,15 +5181,18 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4638,6 +5205,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperBeltLengthY", "start": 0, "type": "Identifier" @@ -4649,9 +5217,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockDepth", "start": 0, "type": "Identifier" @@ -4661,14 +5231,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -4682,11 +5255,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -4699,6 +5274,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperBeltBodyY", "start": 0, "type": "Identifier" @@ -4712,6 +5288,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4722,6 +5299,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4735,9 +5313,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -4749,6 +5329,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4759,9 +5340,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -4772,6 +5355,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4779,9 +5363,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperBeltPlane", "start": 0, "type": "Identifier" @@ -4799,6 +5385,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4807,9 +5394,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperBeltLengthY", "start": 0, "type": "Identifier" @@ -4825,9 +5414,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4838,6 +5429,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4850,6 +5442,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4858,9 +5451,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -4876,9 +5471,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4889,6 +5486,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4901,6 +5499,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4910,9 +5509,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperBeltLengthY", "start": 0, "type": "Identifier" @@ -4924,6 +5525,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4935,9 +5537,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4948,6 +5552,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4960,6 +5565,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4968,13 +5574,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -4985,25 +5594,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5014,12 +5628,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5027,6 +5643,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5037,9 +5654,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5050,19 +5669,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5073,6 +5696,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5085,6 +5709,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5095,6 +5720,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5107,6 +5733,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5118,6 +5745,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5128,6 +5756,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -5135,6 +5764,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5150,6 +5780,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -5161,9 +5792,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableWidth", "start": 0, "type": "Identifier" @@ -5173,14 +5806,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -5200,9 +5836,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -5213,6 +5851,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5225,6 +5864,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5234,9 +5874,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -5248,6 +5890,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5259,9 +5902,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5272,6 +5917,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5280,12 +5926,14 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5302,11 +5950,13 @@ description: Result of parsing utility-sink.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5319,18 +5969,22 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableTopPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5341,6 +5995,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5351,6 +6006,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -5359,9 +6015,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableHeight", "start": 0, "type": "Identifier" @@ -5377,9 +6035,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -5390,6 +6050,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5397,9 +6058,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -5411,11 +6074,13 @@ description: Result of parsing utility-sink.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5428,6 +6093,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableTopBody", "start": 0, "type": "Identifier" @@ -5441,6 +6107,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5451,6 +6118,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5463,6 +6131,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5474,6 +6143,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5484,9 +6154,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5497,6 +6169,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5504,9 +6177,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableTopPlane", "start": 0, "type": "Identifier" @@ -5524,6 +6199,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5532,9 +6208,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableDepth", "start": 0, "type": "Identifier" @@ -5550,9 +6228,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5563,6 +6243,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5575,6 +6256,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5583,9 +6265,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableWidth", "start": 0, "type": "Identifier" @@ -5601,9 +6285,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5614,6 +6300,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5626,6 +6313,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5635,9 +6323,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableDepth", "start": 0, "type": "Identifier" @@ -5649,6 +6339,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5660,9 +6351,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5673,6 +6366,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5685,6 +6379,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5693,13 +6388,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5710,25 +6408,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5739,12 +6442,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5752,6 +6457,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5762,9 +6468,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5775,19 +6483,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5798,6 +6510,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5810,6 +6523,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5819,9 +6533,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalThickness", "start": 0, "type": "Identifier" @@ -5833,6 +6549,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5844,9 +6561,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5857,6 +6576,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5865,15 +6585,18 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5886,6 +6609,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkCount", "start": 0, "type": "Identifier" @@ -5894,9 +6618,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockCount", "start": 0, "type": "Identifier" @@ -5906,11 +6632,13 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5923,6 +6651,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkWidth", "start": 0, "type": "Identifier" @@ -5934,9 +6663,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -5946,10 +6677,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5963,11 +6696,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5980,6 +6715,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkLength", "start": 0, "type": "Identifier" @@ -5991,9 +6727,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableDepth", "start": 0, "type": "Identifier" @@ -6003,10 +6741,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -6020,11 +6760,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6037,6 +6779,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkDepth", "start": 0, "type": "Identifier" @@ -6044,6 +6787,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -6053,11 +6797,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6070,6 +6816,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkOffsetFront", "start": 0, "type": "Identifier" @@ -6077,6 +6824,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -6086,11 +6834,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6103,6 +6853,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkOffsetLeft", "start": 0, "type": "Identifier" @@ -6117,9 +6868,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -6129,14 +6882,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkWidth", "start": 0, "type": "Identifier" @@ -6150,10 +6906,12 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6167,11 +6925,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6184,6 +6944,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkSpacing", "start": 0, "type": "Identifier" @@ -6198,9 +6959,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableWidth", "start": 0, "type": "Identifier" @@ -6210,14 +6973,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkWidth", "start": 0, "type": "Identifier" @@ -6231,6 +6997,7 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6239,9 +7006,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkOffsetLeft", "start": 0, "type": "Identifier" @@ -6251,10 +7020,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6272,11 +7043,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6289,6 +7062,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkPlaneOutside", "start": 0, "type": "Identifier" @@ -6300,6 +7074,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6308,9 +7083,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "START", "start": 0, "type": "Identifier" @@ -6326,9 +7103,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6339,6 +7118,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6346,9 +7126,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableTopBody", "start": 0, "type": "Identifier" @@ -6359,11 +7141,13 @@ description: Result of parsing utility-sink.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6376,6 +7160,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkBodyOutside", "start": 0, "type": "Identifier" @@ -6389,6 +7174,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6401,9 +7187,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkOffsetLeft", "start": 0, "type": "Identifier" @@ -6415,6 +7203,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6424,9 +7213,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkOffsetFront", "start": 0, "type": "Identifier" @@ -6438,6 +7229,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6448,9 +7240,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6461,6 +7255,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6468,9 +7263,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkPlaneOutside", "start": 0, "type": "Identifier" @@ -6488,6 +7285,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6496,9 +7294,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkLength", "start": 0, "type": "Identifier" @@ -6514,9 +7314,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6527,6 +7329,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6539,6 +7342,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6548,9 +7352,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkWidth", "start": 0, "type": "Identifier" @@ -6562,6 +7368,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6573,9 +7380,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6586,6 +7395,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6598,6 +7408,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6607,9 +7418,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkLength", "start": 0, "type": "Identifier" @@ -6621,6 +7434,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6632,9 +7446,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6645,6 +7461,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6657,6 +7474,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6665,13 +7483,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -6682,25 +7503,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -6711,12 +7537,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6724,6 +7552,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6734,9 +7563,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6747,19 +7578,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -6770,6 +7605,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6782,6 +7618,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -6793,6 +7630,7 @@ description: Result of parsing utility-sink.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6804,6 +7642,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6812,6 +7651,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6823,6 +7663,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6833,6 +7674,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6841,9 +7683,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkCount", "start": 0, "type": "Identifier" @@ -6859,6 +7703,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -6867,9 +7712,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkSpacing", "start": 0, "type": "Identifier" @@ -6885,9 +7732,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -6898,6 +7747,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6910,6 +7760,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6918,9 +7769,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkDepth", "start": 0, "type": "Identifier" @@ -6936,9 +7789,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6949,6 +7804,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6957,15 +7813,18 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6978,6 +7837,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkPlaneInside", "start": 0, "type": "Identifier" @@ -6989,6 +7849,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6997,9 +7858,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "END", "start": 0, "type": "Identifier" @@ -7015,9 +7878,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -7028,6 +7893,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7035,9 +7901,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableTopBody", "start": 0, "type": "Identifier" @@ -7048,11 +7916,13 @@ description: Result of parsing utility-sink.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7065,6 +7935,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkBodyInside", "start": 0, "type": "Identifier" @@ -7078,6 +7949,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -7092,9 +7964,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkOffsetLeft", "start": 0, "type": "Identifier" @@ -7104,14 +7978,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalThickness", "start": 0, "type": "Identifier" @@ -7132,9 +8009,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkOffsetFront", "start": 0, "type": "Identifier" @@ -7144,14 +8023,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalThickness", "start": 0, "type": "Identifier" @@ -7167,6 +8049,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7177,9 +8060,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -7190,6 +8075,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7197,9 +8083,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkPlaneInside", "start": 0, "type": "Identifier" @@ -7217,6 +8105,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7228,9 +8117,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkLength", "start": 0, "type": "Identifier" @@ -7240,6 +8131,7 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -7248,9 +8140,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalThickness", "start": 0, "type": "Identifier" @@ -7260,10 +8154,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7287,9 +8183,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7300,6 +8198,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7312,6 +8211,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7323,9 +8223,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkWidth", "start": 0, "type": "Identifier" @@ -7335,6 +8237,7 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -7343,9 +8246,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalThickness", "start": 0, "type": "Identifier" @@ -7355,10 +8260,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7382,9 +8289,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7395,6 +8304,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7407,6 +8317,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7419,9 +8330,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkLength", "start": 0, "type": "Identifier" @@ -7433,11 +8346,13 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -7446,9 +8361,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalThickness", "start": 0, "type": "Identifier" @@ -7458,10 +8375,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7485,9 +8404,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7498,6 +8419,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7510,6 +8432,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7518,13 +8441,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -7535,25 +8461,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -7564,12 +8495,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7577,6 +8510,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7587,9 +8521,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7600,19 +8536,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -7623,6 +8563,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7635,6 +8576,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -7645,6 +8587,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7657,6 +8600,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7668,6 +8612,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7678,6 +8623,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -7686,9 +8632,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkCount", "start": 0, "type": "Identifier" @@ -7704,6 +8652,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -7712,9 +8661,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkSpacing", "start": 0, "type": "Identifier" @@ -7730,9 +8681,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -7743,6 +8696,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7755,6 +8709,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7764,9 +8719,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkDepth", "start": 0, "type": "Identifier" @@ -7778,6 +8735,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7789,9 +8747,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7802,6 +8762,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7810,12 +8771,14 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -7832,11 +8795,13 @@ description: Result of parsing utility-sink.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7849,6 +8814,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tapPlate", "start": 0, "type": "Identifier" @@ -7856,13 +8822,16 @@ description: Result of parsing utility-sink.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -7873,6 +8842,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7883,6 +8853,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -7891,9 +8862,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableHeight", "start": 0, "type": "Identifier" @@ -7909,9 +8882,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -7922,6 +8897,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7929,9 +8905,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -7950,6 +8928,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -7964,9 +8943,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -7976,10 +8957,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8000,9 +8983,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableDepth", "start": 0, "type": "Identifier" @@ -8012,10 +8997,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -8031,6 +9018,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8041,6 +9029,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -8048,6 +9037,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -8063,9 +9053,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -8076,12 +9068,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8094,6 +9088,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8104,6 +9099,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -8116,6 +9112,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8127,6 +9124,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8137,6 +9135,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -8145,9 +9144,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkCount", "start": 0, "type": "Identifier" @@ -8163,6 +9164,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -8171,9 +9173,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkSpacing", "start": 0, "type": "Identifier" @@ -8189,9 +9193,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -8202,6 +9208,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8214,6 +9221,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8221,6 +9229,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -8236,9 +9245,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -8249,6 +9260,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8257,15 +9269,18 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8278,6 +9293,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tapPillar", "start": 0, "type": "Identifier" @@ -8285,13 +9301,16 @@ description: Result of parsing utility-sink.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -8302,6 +9321,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8312,6 +9332,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -8320,9 +9341,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableHeight", "start": 0, "type": "Identifier" @@ -8338,9 +9361,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -8351,6 +9376,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8358,9 +9384,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -8379,6 +9407,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -8393,9 +9422,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -8405,10 +9436,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8429,9 +9462,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableDepth", "start": 0, "type": "Identifier" @@ -8441,10 +9476,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -8460,6 +9497,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8470,6 +9508,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -8477,6 +9516,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -8492,9 +9532,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -8505,12 +9547,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8523,6 +9567,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8533,6 +9578,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -8545,6 +9591,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8556,6 +9603,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8566,6 +9614,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -8574,9 +9623,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkCount", "start": 0, "type": "Identifier" @@ -8592,6 +9643,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -8600,9 +9652,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkSpacing", "start": 0, "type": "Identifier" @@ -8618,9 +9672,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -8631,6 +9687,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8643,6 +9700,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8650,6 +9708,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "170", "start": 0, "type": "Literal", @@ -8665,9 +9724,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -8678,6 +9739,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8686,15 +9748,18 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -8707,6 +9772,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tapNose", "start": 0, "type": "Identifier" @@ -8714,13 +9780,16 @@ description: Result of parsing utility-sink.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -8731,6 +9800,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8741,6 +9811,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -8751,6 +9822,7 @@ description: Result of parsing utility-sink.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -8760,14 +9832,17 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableDepth", "start": 0, "type": "Identifier" @@ -8787,9 +9862,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -8800,6 +9877,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8807,9 +9885,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -8828,6 +9908,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -8842,9 +9923,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -8854,10 +9937,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8878,9 +9963,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableHeight", "start": 0, "type": "Identifier" @@ -8890,10 +9977,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -8909,6 +9998,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8919,6 +10009,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -8926,6 +10017,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -8941,9 +10033,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -8954,12 +10048,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8972,6 +10068,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8982,6 +10079,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -8994,6 +10092,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9005,6 +10104,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9015,6 +10115,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -9023,9 +10124,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkCount", "start": 0, "type": "Identifier" @@ -9041,6 +10144,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -9049,9 +10153,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkSpacing", "start": 0, "type": "Identifier" @@ -9067,9 +10173,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -9080,6 +10188,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9092,6 +10201,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9103,9 +10213,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkWidth", "start": 0, "type": "Identifier" @@ -9115,10 +10227,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -9138,9 +10252,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -9151,6 +10267,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9159,15 +10276,18 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9180,6 +10300,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tapHandle", "start": 0, "type": "Identifier" @@ -9187,13 +10308,16 @@ description: Result of parsing utility-sink.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -9204,6 +10328,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9214,6 +10339,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -9224,6 +10350,7 @@ description: Result of parsing utility-sink.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -9233,14 +10360,17 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableDepth", "start": 0, "type": "Identifier" @@ -9260,9 +10390,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -9273,6 +10405,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9280,9 +10413,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -9301,6 +10436,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -9315,9 +10451,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockWidth", "start": 0, "type": "Identifier" @@ -9327,10 +10465,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9351,9 +10491,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableHeight", "start": 0, "type": "Identifier" @@ -9363,10 +10505,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -9382,6 +10526,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9392,6 +10537,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -9399,6 +10545,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -9414,9 +10561,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -9427,12 +10576,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -9445,6 +10596,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -9455,6 +10607,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9467,6 +10620,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9478,6 +10632,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9488,6 +10643,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -9496,9 +10652,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkCount", "start": 0, "type": "Identifier" @@ -9514,6 +10672,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -9522,9 +10681,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sinkSpacing", "start": 0, "type": "Identifier" @@ -9540,9 +10701,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -9553,6 +10716,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9565,6 +10729,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9572,6 +10737,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -9587,9 +10753,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -9600,6 +10768,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9608,12 +10777,14 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -9630,11 +10801,13 @@ description: Result of parsing utility-sink.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9647,6 +10820,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorGap", "start": 0, "type": "Identifier" @@ -9654,6 +10828,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9663,11 +10838,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9680,6 +10857,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorWidth", "start": 0, "type": "Identifier" @@ -9694,9 +10872,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockSubdivisionWidth", "start": 0, "type": "Identifier" @@ -9706,14 +10886,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -9727,6 +10910,7 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -9735,9 +10919,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorGap", "start": 0, "type": "Identifier" @@ -9747,10 +10933,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9768,11 +10956,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9785,6 +10975,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorStart", "start": 0, "type": "Identifier" @@ -9796,9 +10987,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -9808,14 +11001,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorGap", "start": 0, "type": "Identifier" @@ -9829,11 +11025,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9846,6 +11044,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -9857,9 +11056,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pillarHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -9869,14 +11070,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorGap", "start": 0, "type": "Identifier" @@ -9890,11 +11094,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9907,6 +11113,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorHeight", "start": 0, "type": "Identifier" @@ -9924,9 +11131,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockHeight", "start": 0, "type": "Identifier" @@ -9936,14 +11145,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -9957,14 +11169,17 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -9978,14 +11193,17 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorGap", "start": 0, "type": "Identifier" @@ -9999,11 +11217,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10016,6 +11236,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorCount", "start": 0, "type": "Identifier" @@ -10027,9 +11248,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockCount", "start": 0, "type": "Identifier" @@ -10039,14 +11262,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockSubdivisionCount", "start": 0, "type": "Identifier" @@ -10060,11 +11286,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10077,18 +11305,22 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -10099,6 +11331,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10109,6 +11342,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -10117,9 +11351,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -10135,9 +11371,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -10148,6 +11386,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10155,9 +11394,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -10169,11 +11410,13 @@ description: Result of parsing utility-sink.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10186,6 +11429,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorBody", "start": 0, "type": "Identifier" @@ -10199,6 +11443,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -10210,9 +11455,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorStart", "start": 0, "type": "Identifier" @@ -10225,6 +11472,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10236,6 +11484,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10246,9 +11495,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -10259,6 +11510,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10266,9 +11518,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorPlane", "start": 0, "type": "Identifier" @@ -10286,6 +11540,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10294,9 +11549,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -10312,9 +11569,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -10325,6 +11584,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10337,6 +11597,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10345,9 +11606,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorWidth", "start": 0, "type": "Identifier" @@ -10363,9 +11626,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -10376,6 +11641,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10388,6 +11654,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10397,9 +11664,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -10411,6 +11680,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10422,9 +11692,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -10435,6 +11707,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10447,6 +11720,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10455,13 +11729,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -10472,25 +11749,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -10501,12 +11783,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10514,6 +11798,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10524,9 +11809,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10537,19 +11824,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -10560,6 +11851,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10572,6 +11864,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -10582,6 +11875,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -10594,6 +11888,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10605,6 +11900,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10615,6 +11911,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -10623,9 +11920,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorCount", "start": 0, "type": "Identifier" @@ -10641,6 +11940,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -10649,9 +11949,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockSubdivisionWidth", "start": 0, "type": "Identifier" @@ -10667,9 +11969,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -10680,6 +11984,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10692,6 +11997,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10700,9 +12006,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorHeight", "start": 0, "type": "Identifier" @@ -10718,9 +12026,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -10731,6 +12041,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10743,6 +12054,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -10750,6 +12062,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10765,6 +12078,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -10773,9 +12087,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockDepth", "start": 0, "type": "Identifier" @@ -10791,6 +12107,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -10801,6 +12118,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10813,6 +12131,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -10825,6 +12144,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10836,6 +12156,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10846,9 +12167,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -10859,12 +12182,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -10873,12 +12198,14 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -10895,11 +12222,13 @@ description: Result of parsing utility-sink.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10912,6 +12241,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelWidth", "start": 0, "type": "Identifier" @@ -10926,9 +12256,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockDepth", "start": 0, "type": "Identifier" @@ -10938,14 +12270,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -10959,6 +12294,7 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -10967,9 +12303,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorGap", "start": 0, "type": "Identifier" @@ -10979,10 +12317,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11000,11 +12340,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11017,6 +12359,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelCount", "start": 0, "type": "Identifier" @@ -11028,9 +12371,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorCount", "start": 0, "type": "Identifier" @@ -11040,10 +12385,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11057,11 +12404,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11074,6 +12423,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelSpacing", "start": 0, "type": "Identifier" @@ -11085,9 +12435,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tableWidth", "start": 0, "type": "Identifier" @@ -11097,14 +12449,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -11118,11 +12473,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11135,6 +12492,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelBody", "start": 0, "type": "Identifier" @@ -11148,6 +12506,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -11158,6 +12517,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11171,9 +12531,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorStart", "start": 0, "type": "Identifier" @@ -11185,6 +12547,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11195,9 +12558,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -11208,6 +12573,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11215,9 +12581,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorPlane", "start": 0, "type": "Identifier" @@ -11235,6 +12603,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11243,9 +12612,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelWidth", "start": 0, "type": "Identifier" @@ -11261,9 +12632,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -11274,6 +12647,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11286,6 +12660,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11294,9 +12669,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileThickness", "start": 0, "type": "Identifier" @@ -11312,9 +12689,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -11325,6 +12704,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11337,6 +12717,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11346,9 +12727,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelWidth", "start": 0, "type": "Identifier" @@ -11360,6 +12743,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11371,9 +12755,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -11384,6 +12770,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11396,6 +12783,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11404,13 +12792,16 @@ description: Result of parsing utility-sink.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -11421,25 +12812,30 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -11450,12 +12846,14 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -11463,6 +12861,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11473,9 +12872,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11486,19 +12887,23 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -11509,6 +12914,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11521,6 +12927,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -11531,6 +12938,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -11543,6 +12951,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11554,6 +12963,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11564,6 +12974,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -11571,6 +12982,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11586,6 +12998,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -11594,9 +13007,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "panelSpacing", "start": 0, "type": "Identifier" @@ -11612,9 +13027,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -11625,6 +13042,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11637,6 +13055,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11645,9 +13064,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorHeight", "start": 0, "type": "Identifier" @@ -11663,9 +13084,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -11676,6 +13099,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11684,12 +13108,14 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -11706,11 +13132,13 @@ description: Result of parsing utility-sink.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11723,6 +13151,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleDepth", "start": 0, "type": "Identifier" @@ -11730,6 +13159,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -11739,11 +13169,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11756,6 +13188,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -11763,6 +13196,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -11772,11 +13206,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11789,6 +13225,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleFillet", "start": 0, "type": "Identifier" @@ -11796,6 +13233,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -11805,11 +13243,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11822,6 +13262,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -11829,6 +13270,7 @@ description: Result of parsing utility-sink.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "780", "start": 0, "type": "Literal", @@ -11838,11 +13280,13 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11855,6 +13299,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleOffset", "start": 0, "type": "Identifier" @@ -11869,9 +13314,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorStart", "start": 0, "type": "Identifier" @@ -11881,6 +13328,7 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -11889,9 +13337,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorWidth", "start": 0, "type": "Identifier" @@ -11901,10 +13351,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11922,6 +13374,7 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -11930,9 +13383,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -11942,10 +13397,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11963,11 +13420,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11980,6 +13439,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleLengthSegmentA", "start": 0, "type": "Identifier" @@ -11991,9 +13451,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleDepth", "start": 0, "type": "Identifier" @@ -12003,14 +13465,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleFillet", "start": 0, "type": "Identifier" @@ -12024,11 +13489,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12041,6 +13508,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleLengthSegmentB", "start": 0, "type": "Identifier" @@ -12052,9 +13520,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -12064,6 +13534,7 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -12072,9 +13543,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleFillet", "start": 0, "type": "Identifier" @@ -12084,10 +13557,12 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -12105,11 +13580,13 @@ description: Result of parsing utility-sink.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12122,18 +13599,22 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handlePlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -12144,6 +13625,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12154,6 +13636,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -12162,9 +13645,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -12180,9 +13665,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -12193,6 +13680,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12200,9 +13688,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -12214,11 +13704,13 @@ description: Result of parsing utility-sink.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12231,6 +13723,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleProfilePath", "start": 0, "type": "Identifier" @@ -12244,6 +13737,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -12257,6 +13751,7 @@ description: Result of parsing utility-sink.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -12266,14 +13761,17 @@ description: Result of parsing utility-sink.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleOffset", "start": 0, "type": "Identifier" @@ -12290,6 +13788,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -12301,6 +13800,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12311,9 +13811,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -12324,6 +13826,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12331,9 +13834,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handlePlane", "start": 0, "type": "Identifier" @@ -12351,6 +13856,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -12360,9 +13866,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleLengthSegmentA", "start": 0, "type": "Identifier" @@ -12374,6 +13882,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12385,9 +13894,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -12398,6 +13909,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12410,6 +13922,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12424,9 +13937,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleFillet", "start": 0, "type": "Identifier" @@ -12436,14 +13951,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleOffset", "start": 0, "type": "Identifier" @@ -12462,9 +13980,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleDepth", "start": 0, "type": "Identifier" @@ -12476,6 +13996,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12483,6 +14004,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12493,9 +14015,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -12506,6 +14030,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12518,6 +14043,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -12526,9 +14052,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleLengthSegmentB", "start": 0, "type": "Identifier" @@ -12544,9 +14072,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -12557,6 +14087,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12569,6 +14100,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12583,9 +14115,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleOffset", "start": 0, "type": "Identifier" @@ -12595,14 +14129,17 @@ description: Result of parsing utility-sink.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleWidth", "start": 0, "type": "Identifier" @@ -12621,9 +14158,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleLengthSegmentA", "start": 0, "type": "Identifier" @@ -12635,6 +14174,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12642,6 +14182,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12652,9 +14193,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -12665,6 +14208,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12677,6 +14221,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -12685,9 +14230,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleLengthSegmentA", "start": 0, "type": "Identifier" @@ -12703,9 +14250,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -12716,6 +14265,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12724,15 +14274,18 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12745,18 +14298,22 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleSectionPlane", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -12767,6 +14324,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12774,9 +14332,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -12787,11 +14347,13 @@ description: Result of parsing utility-sink.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12804,6 +14366,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleProfileSection", "start": 0, "type": "Identifier" @@ -12815,6 +14378,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -12826,9 +14390,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleOffset", "start": 0, "type": "Identifier" @@ -12842,9 +14408,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleHeightAboveTheFloor", "start": 0, "type": "Identifier" @@ -12856,6 +14424,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12866,6 +14435,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -12873,6 +14443,7 @@ description: Result of parsing utility-sink.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -12888,9 +14459,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -12901,6 +14474,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12908,9 +14482,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleSectionPlane", "start": 0, "type": "Identifier" @@ -12921,11 +14497,13 @@ description: Result of parsing utility-sink.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -12938,6 +14516,7 @@ description: Result of parsing utility-sink.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleBody", "start": 0, "type": "Identifier" @@ -12951,6 +14530,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -12959,9 +14539,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleProfilePath", "start": 0, "type": "Identifier" @@ -12977,9 +14559,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -12990,6 +14574,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12997,9 +14582,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "handleProfileSection", "start": 0, "type": "Identifier" @@ -13017,6 +14604,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -13027,6 +14615,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -13039,6 +14628,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -13051,6 +14641,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -13062,6 +14653,7 @@ description: Result of parsing utility-sink.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13072,6 +14664,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -13080,9 +14673,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "doorCount", "start": 0, "type": "Identifier" @@ -13098,6 +14693,7 @@ description: Result of parsing utility-sink.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -13106,9 +14702,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "blockSubdivisionWidth", "start": 0, "type": "Identifier" @@ -13124,9 +14722,11 @@ description: Result of parsing utility-sink.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -13137,6 +14737,7 @@ description: Result of parsing utility-sink.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13145,15 +14746,18 @@ description: Result of parsing utility-sink.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -13165,9 +14769,11 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -13186,19 +14792,23 @@ description: Result of parsing utility-sink.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -13215,15 +14825,18 @@ description: Result of parsing utility-sink.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -13239,12 +14852,14 @@ description: Result of parsing utility-sink.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13256,6 +14871,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13267,6 +14883,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13278,6 +14895,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13289,6 +14907,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13300,6 +14919,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13311,6 +14931,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13322,6 +14943,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13333,6 +14955,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13344,6 +14967,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13355,6 +14979,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13366,6 +14991,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13377,6 +15003,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13388,6 +15015,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13399,6 +15027,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -13411,6 +15040,7 @@ description: Result of parsing utility-sink.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/ast.snap b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/ast.snap index 6acfbde77..c986e2606 100644 --- a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing walkie-talkie.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "parameters.kcl" @@ -18,6 +19,7 @@ description: Result of parsing walkie-talkie.kcl "selector": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "Glob" }, @@ -28,6 +30,7 @@ description: Result of parsing walkie-talkie.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "body.kcl" @@ -42,6 +45,7 @@ description: Result of parsing walkie-talkie.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body", "start": 0, "type": "Identifier" @@ -54,6 +58,7 @@ description: Result of parsing walkie-talkie.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "case.kcl" @@ -63,6 +68,7 @@ description: Result of parsing walkie-talkie.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "case", "start": 0, "type": "Identifier" @@ -75,6 +81,7 @@ description: Result of parsing walkie-talkie.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "antenna.kcl" @@ -84,6 +91,7 @@ description: Result of parsing walkie-talkie.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antenna", "start": 0, "type": "Identifier" @@ -96,6 +104,7 @@ description: Result of parsing walkie-talkie.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "talk-button.kcl" @@ -105,6 +114,7 @@ description: Result of parsing walkie-talkie.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "talkButton", "start": 0, "type": "Identifier" @@ -117,6 +127,7 @@ description: Result of parsing walkie-talkie.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "knob.kcl" @@ -126,6 +137,7 @@ description: Result of parsing walkie-talkie.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "knob", "start": 0, "type": "Identifier" @@ -138,6 +150,7 @@ description: Result of parsing walkie-talkie.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "button.kcl" @@ -149,9 +162,11 @@ description: Result of parsing walkie-talkie.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "button", "start": 0, "type": "Identifier" @@ -172,9 +187,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body", "start": 0, "type": "Identifier" @@ -184,6 +201,7 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "preComments": [ "", "", @@ -202,9 +220,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "antenna", "start": 0, "type": "Identifier" @@ -221,6 +241,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -236,9 +257,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -250,15 +273,18 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -272,10 +298,12 @@ description: Result of parsing walkie-talkie.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".60", "start": 0, "type": "Literal", @@ -295,6 +323,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -303,6 +332,7 @@ description: Result of parsing walkie-talkie.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20", "start": 0, "type": "Literal", @@ -314,6 +344,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -325,6 +356,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -336,9 +368,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -348,10 +382,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -371,9 +407,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -384,6 +422,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -392,12 +431,14 @@ description: Result of parsing walkie-talkie.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -414,6 +455,7 @@ description: Result of parsing walkie-talkie.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "preComments": [ "", "", @@ -432,9 +474,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "case", "start": 0, "type": "Identifier" @@ -451,6 +495,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -458,6 +503,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -473,6 +519,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -481,6 +528,7 @@ description: Result of parsing walkie-talkie.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -492,6 +540,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -503,6 +552,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -510,6 +560,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -525,9 +576,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -538,6 +591,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -546,12 +600,14 @@ description: Result of parsing walkie-talkie.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -568,6 +624,7 @@ description: Result of parsing walkie-talkie.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -581,9 +638,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "talkButton", "start": 0, "type": "Identifier" @@ -600,6 +659,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -611,9 +671,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -623,10 +685,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -646,6 +710,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -658,9 +723,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -672,15 +739,18 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -700,6 +770,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -707,6 +778,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".5", "start": 0, "type": "Literal", @@ -722,9 +794,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -735,6 +809,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -743,12 +818,14 @@ description: Result of parsing walkie-talkie.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -765,6 +842,7 @@ description: Result of parsing walkie-talkie.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -778,9 +856,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "knob", "start": 0, "type": "Identifier" @@ -797,6 +877,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -811,9 +892,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -823,10 +906,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -840,10 +925,12 @@ description: Result of parsing walkie-talkie.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.70", "start": 0, "type": "Literal", @@ -863,6 +950,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -875,9 +963,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -889,15 +979,18 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -917,6 +1010,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -928,9 +1022,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -940,10 +1036,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -963,9 +1061,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -976,6 +1076,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -984,12 +1085,14 @@ description: Result of parsing walkie-talkie.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1006,6 +1109,7 @@ description: Result of parsing walkie-talkie.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1016,13 +1120,16 @@ description: Result of parsing walkie-talkie.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "button", "start": 0, "type": "Identifier" @@ -1033,6 +1140,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1045,6 +1153,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1060,9 +1169,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screenWidth", "start": 0, "type": "Identifier" @@ -1072,10 +1183,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1089,14 +1202,17 @@ description: Result of parsing walkie-talkie.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -1112,6 +1228,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1123,6 +1240,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1131,6 +1249,7 @@ description: Result of parsing walkie-talkie.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1142,6 +1261,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1153,6 +1273,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1161,9 +1282,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screenYPosition", "start": 0, "type": "Identifier" @@ -1179,9 +1302,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1192,6 +1317,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1200,10 +1326,12 @@ description: Result of parsing walkie-talkie.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1214,13 +1342,16 @@ description: Result of parsing walkie-talkie.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "button", "start": 0, "type": "Identifier" @@ -1231,6 +1362,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1243,6 +1375,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1258,9 +1391,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screenWidth", "start": 0, "type": "Identifier" @@ -1270,10 +1405,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1287,14 +1424,17 @@ description: Result of parsing walkie-talkie.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -1310,6 +1450,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1321,6 +1462,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1329,6 +1471,7 @@ description: Result of parsing walkie-talkie.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1340,6 +1483,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1351,6 +1495,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1365,9 +1510,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screenYPosition", "start": 0, "type": "Identifier" @@ -1377,14 +1524,17 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "buttonHeight", "start": 0, "type": "Identifier" @@ -1398,6 +1548,7 @@ description: Result of parsing walkie-talkie.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1406,9 +1557,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -1418,10 +1571,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1445,9 +1600,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1458,6 +1615,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1466,10 +1624,12 @@ description: Result of parsing walkie-talkie.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1480,13 +1640,16 @@ description: Result of parsing walkie-talkie.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "button", "start": 0, "type": "Identifier" @@ -1497,6 +1660,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1509,6 +1673,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -1516,6 +1681,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1531,6 +1697,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -1538,6 +1705,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1553,6 +1721,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -1560,6 +1729,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1575,9 +1745,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -1588,12 +1760,14 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1606,6 +1780,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1620,9 +1795,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screenWidth", "start": 0, "type": "Identifier" @@ -1632,10 +1809,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1649,14 +1828,17 @@ description: Result of parsing walkie-talkie.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -1676,6 +1858,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1684,6 +1867,7 @@ description: Result of parsing walkie-talkie.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1695,6 +1879,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1706,6 +1891,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1717,9 +1903,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screenYPosition", "start": 0, "type": "Identifier" @@ -1729,14 +1917,17 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "buttonHeight", "start": 0, "type": "Identifier" @@ -1756,6 +1947,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "global", "start": 0, "type": "Identifier" @@ -1763,6 +1955,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1775,9 +1968,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1788,6 +1983,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1796,10 +1992,12 @@ description: Result of parsing walkie-talkie.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1810,13 +2008,16 @@ description: Result of parsing walkie-talkie.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "button", "start": 0, "type": "Identifier" @@ -1827,6 +2028,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1839,6 +2041,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -1846,6 +2049,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1861,6 +2065,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -1868,6 +2073,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1883,6 +2089,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -1890,6 +2097,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1905,9 +2113,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -1918,12 +2128,14 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1936,6 +2148,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1950,9 +2163,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screenWidth", "start": 0, "type": "Identifier" @@ -1962,10 +2177,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1979,14 +2196,17 @@ description: Result of parsing walkie-talkie.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -2006,6 +2226,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2014,6 +2235,7 @@ description: Result of parsing walkie-talkie.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2025,6 +2247,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2036,6 +2259,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -2050,9 +2274,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "screenYPosition", "start": 0, "type": "Identifier" @@ -2062,6 +2288,7 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2070,9 +2297,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "buttonHeight", "start": 0, "type": "Identifier" @@ -2082,10 +2311,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2103,6 +2334,7 @@ description: Result of parsing walkie-talkie.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2111,9 +2343,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tolerance", "start": 0, "type": "Identifier" @@ -2123,10 +2357,12 @@ description: Result of parsing walkie-talkie.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2150,6 +2386,7 @@ description: Result of parsing walkie-talkie.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "global", "start": 0, "type": "Identifier" @@ -2157,6 +2394,7 @@ description: Result of parsing walkie-talkie.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -2169,9 +2407,11 @@ description: Result of parsing walkie-talkie.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -2182,6 +2422,7 @@ description: Result of parsing walkie-talkie.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2190,10 +2431,12 @@ description: Result of parsing walkie-talkie.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2205,9 +2448,11 @@ description: Result of parsing walkie-talkie.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2226,19 +2471,23 @@ description: Result of parsing walkie-talkie.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -2255,15 +2504,18 @@ description: Result of parsing walkie-talkie.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -2279,12 +2531,14 @@ description: Result of parsing walkie-talkie.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/washer/ast.snap b/rust/kcl-lib/tests/kcl_samples/washer/ast.snap index 43a2ebc6f..0458451b1 100644 --- a/rust/kcl-lib/tests/kcl_samples/washer/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/washer/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing washer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing washer.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.203", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing washer.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing washer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerDiameter", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing washer.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.438", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing washer.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing washer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thicknessMax", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing washer.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.038", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing washer.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing washer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thicknessNom", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing washer.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.032", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing washer.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing washer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thicknessMin", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing washer.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.024", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing washer.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing washer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "washerSketch", "start": 0, "type": "Identifier" @@ -188,13 +209,16 @@ description: Result of parsing washer.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -205,6 +229,7 @@ description: Result of parsing washer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -212,9 +237,11 @@ description: Result of parsing washer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -232,6 +259,7 @@ description: Result of parsing washer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -242,6 +270,7 @@ description: Result of parsing washer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -254,6 +283,7 @@ description: Result of parsing washer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -265,6 +295,7 @@ description: Result of parsing washer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -275,6 +306,7 @@ description: Result of parsing washer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -286,9 +318,11 @@ description: Result of parsing washer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerDiameter", "start": 0, "type": "Identifier" @@ -298,10 +332,12 @@ description: Result of parsing washer.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -321,9 +357,11 @@ description: Result of parsing washer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -334,6 +372,7 @@ description: Result of parsing washer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -346,6 +385,7 @@ description: Result of parsing washer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -357,6 +397,7 @@ description: Result of parsing washer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -367,6 +408,7 @@ description: Result of parsing washer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -379,6 +421,7 @@ description: Result of parsing washer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -390,6 +433,7 @@ description: Result of parsing washer.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -400,6 +444,7 @@ description: Result of parsing washer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -411,9 +456,11 @@ description: Result of parsing washer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerDiameter", "start": 0, "type": "Identifier" @@ -423,10 +470,12 @@ description: Result of parsing washer.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -446,9 +495,11 @@ description: Result of parsing washer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -459,6 +510,7 @@ description: Result of parsing washer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -470,9 +522,11 @@ description: Result of parsing washer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -483,6 +537,7 @@ description: Result of parsing washer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -491,15 +546,18 @@ description: Result of parsing washer.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -517,6 +575,7 @@ description: Result of parsing washer.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "washer", "start": 0, "type": "Identifier" @@ -528,6 +587,7 @@ description: Result of parsing washer.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -536,9 +596,11 @@ description: Result of parsing washer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thicknessNom", "start": 0, "type": "Identifier" @@ -554,9 +616,11 @@ description: Result of parsing washer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -567,6 +631,7 @@ description: Result of parsing washer.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -574,9 +639,11 @@ description: Result of parsing washer.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "washerSketch", "start": 0, "type": "Identifier" @@ -587,11 +654,13 @@ description: Result of parsing washer.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -603,9 +672,11 @@ description: Result of parsing washer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -624,19 +695,23 @@ description: Result of parsing washer.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -653,15 +728,18 @@ description: Result of parsing washer.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kclVersion", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -677,12 +755,14 @@ description: Result of parsing washer.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "5": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -695,6 +775,7 @@ description: Result of parsing washer.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/wing-spar/ast.snap b/rust/kcl-lib/tests/kcl_samples/wing-spar/ast.snap index 97b202cc0..bed406532 100644 --- a/rust/kcl-lib/tests/kcl_samples/wing-spar/ast.snap +++ b/rust/kcl-lib/tests/kcl_samples/wing-spar/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chordLength", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "355", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rearSpar", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "205", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontSpar", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "33", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperCamber", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerCamber", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foilThickness", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nSections", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSpan", "start": 0, "type": "Identifier" @@ -254,6 +283,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "700", "start": 0, "type": "Literal", @@ -263,11 +293,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -280,6 +312,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparStockThicknes", "start": 0, "type": "Identifier" @@ -287,6 +320,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.102", "start": 0, "type": "Literal", @@ -296,11 +330,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -313,6 +349,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -320,6 +357,7 @@ description: Result of parsing wing-spar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.102", "start": 0, "type": "Literal", @@ -329,11 +367,13 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -346,6 +386,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ribSketch", "start": 0, "type": "Identifier" @@ -353,13 +394,16 @@ description: Result of parsing wing-spar.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -370,6 +414,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -380,6 +425,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -389,9 +435,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foilThickness", "start": 0, "type": "Identifier" @@ -403,6 +451,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -414,9 +463,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -427,6 +478,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -435,9 +487,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -449,6 +503,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -463,6 +518,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -474,9 +530,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chordLength", "start": 0, "type": "Identifier" @@ -489,6 +547,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -500,6 +559,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -510,9 +570,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -523,6 +585,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -535,6 +598,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -546,9 +610,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rearSpar", "start": 0, "type": "Identifier" @@ -562,9 +628,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperCamber", "start": 0, "type": "Identifier" @@ -576,6 +644,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -586,9 +655,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -599,6 +670,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -611,6 +683,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -622,9 +695,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontSpar", "start": 0, "type": "Identifier" @@ -641,9 +716,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperCamber", "start": 0, "type": "Identifier" @@ -653,10 +730,12 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.3", "start": 0, "type": "Literal", @@ -672,6 +751,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -682,9 +762,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -695,6 +777,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -707,6 +790,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -717,6 +801,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -729,6 +814,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -740,6 +826,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -750,9 +837,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -763,6 +852,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -775,6 +865,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -782,6 +873,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "76", "start": 0, "type": "Literal", @@ -797,6 +889,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -805,9 +898,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerCamber", "start": 0, "type": "Identifier" @@ -823,9 +918,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -836,6 +933,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -848,6 +946,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -859,9 +958,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rearSpar", "start": 0, "type": "Identifier" @@ -876,9 +977,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerCamber", "start": 0, "type": "Identifier" @@ -890,6 +993,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -897,6 +1001,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -907,9 +1012,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -920,6 +1027,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -932,6 +1040,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -940,13 +1049,16 @@ description: Result of parsing wing-spar.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -957,25 +1069,30 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -986,12 +1103,14 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -999,6 +1118,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1009,9 +1129,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1022,19 +1144,23 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1045,6 +1171,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1057,6 +1184,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1068,6 +1196,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1078,6 +1207,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "62", "start": 0, "type": "Literal", @@ -1090,6 +1220,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -1101,6 +1232,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1111,6 +1243,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1118,6 +1251,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17", "start": 0, "type": "Literal", @@ -1133,9 +1267,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1146,6 +1282,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1157,9 +1294,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1170,6 +1309,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1182,6 +1322,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1193,6 +1334,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1203,6 +1345,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "113", "start": 0, "type": "Literal", @@ -1215,6 +1358,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -1226,6 +1370,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1236,6 +1381,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1243,6 +1389,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19", "start": 0, "type": "Literal", @@ -1258,9 +1405,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1271,6 +1420,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1282,9 +1432,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1295,6 +1447,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1307,6 +1460,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1318,6 +1472,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1328,6 +1483,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "164", "start": 0, "type": "Literal", @@ -1340,6 +1496,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -1351,6 +1508,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1361,6 +1519,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1368,6 +1527,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17", "start": 0, "type": "Literal", @@ -1383,9 +1543,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1396,6 +1558,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1407,9 +1570,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1420,6 +1585,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1432,6 +1598,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1443,6 +1610,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1453,6 +1621,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "228", "start": 0, "type": "Literal", @@ -1465,6 +1634,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1476,6 +1646,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1486,6 +1657,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1493,6 +1665,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -1508,9 +1681,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1521,6 +1696,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1532,9 +1708,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1545,6 +1723,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1557,6 +1736,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1568,6 +1748,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1578,6 +1759,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "260", "start": 0, "type": "Literal", @@ -1590,6 +1772,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.5", "start": 0, "type": "Literal", @@ -1601,6 +1784,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1611,6 +1795,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1618,6 +1803,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.5", "start": 0, "type": "Literal", @@ -1633,9 +1819,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1646,6 +1834,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1657,9 +1846,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1670,6 +1861,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1682,6 +1874,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1691,9 +1884,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foilThickness", "start": 0, "type": "Identifier" @@ -1705,6 +1900,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1716,9 +1912,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1729,6 +1927,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1741,6 +1940,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1749,9 +1949,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nSections", "start": 0, "type": "Identifier" @@ -1767,6 +1969,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -1781,9 +1984,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSpan", "start": 0, "type": "Identifier" @@ -1793,6 +1998,7 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1800,6 +2006,7 @@ description: Result of parsing wing-spar.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1809,14 +2016,17 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foilThickness", "start": 0, "type": "Identifier" @@ -1834,6 +2044,7 @@ description: Result of parsing wing-spar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -1842,9 +2053,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nSections", "start": 0, "type": "Identifier" @@ -1854,10 +2067,12 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1881,6 +2096,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1891,6 +2107,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1904,6 +2121,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1915,6 +2133,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1923,6 +2142,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1934,6 +2154,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1944,9 +2165,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -1957,6 +2180,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1965,12 +2189,14 @@ description: Result of parsing wing-spar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1984,6 +2210,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1997,6 +2224,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2013,11 +2241,13 @@ description: Result of parsing wing-spar.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -2035,18 +2265,22 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2057,6 +2291,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2065,9 +2300,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2079,17 +2316,20 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2102,6 +2342,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontSparProfile", "start": 0, "type": "Identifier" @@ -2115,6 +2356,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2126,9 +2368,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontSpar", "start": 0, "type": "Identifier" @@ -2146,9 +2390,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerCamber", "start": 0, "type": "Identifier" @@ -2160,15 +2406,18 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.85", "start": 0, "type": "Literal", @@ -2184,6 +2433,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2194,9 +2444,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2207,6 +2459,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2214,9 +2467,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSketch", "start": 0, "type": "Identifier" @@ -2234,6 +2489,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2242,9 +2498,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperCamber", "start": 0, "type": "Identifier" @@ -2260,6 +2518,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2267,6 +2526,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2278,9 +2538,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2291,6 +2553,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2303,6 +2566,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2311,6 +2575,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2322,6 +2587,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2333,6 +2599,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2344,9 +2611,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -2356,14 +2625,17 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparStockThicknes", "start": 0, "type": "Identifier" @@ -2383,9 +2655,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2396,6 +2670,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2408,6 +2683,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2415,6 +2691,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2430,6 +2707,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2437,6 +2715,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2448,9 +2727,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2461,6 +2742,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2473,6 +2755,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2481,6 +2764,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2492,6 +2776,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2503,6 +2788,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2514,9 +2800,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -2526,14 +2814,17 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparStockThicknes", "start": 0, "type": "Identifier" @@ -2553,9 +2844,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2566,6 +2859,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2578,6 +2872,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2586,6 +2881,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2597,6 +2893,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2608,6 +2905,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2615,6 +2913,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2626,9 +2925,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2639,6 +2940,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2651,6 +2953,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2659,6 +2962,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2670,6 +2974,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2681,6 +2986,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2692,9 +2998,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -2704,14 +3012,17 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparStockThicknes", "start": 0, "type": "Identifier" @@ -2731,9 +3042,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2744,6 +3057,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2756,6 +3070,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2764,6 +3079,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2775,6 +3091,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2786,6 +3103,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2793,6 +3111,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2804,9 +3123,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2817,6 +3138,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2829,6 +3151,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2837,9 +3160,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparStockThicknes", "start": 0, "type": "Identifier" @@ -2855,9 +3180,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2868,6 +3195,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2880,18 +3208,22 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2902,6 +3234,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2909,9 +3242,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -2928,9 +3263,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2941,6 +3278,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2953,6 +3291,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2960,6 +3299,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2975,6 +3315,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2983,9 +3324,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -3001,9 +3344,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3014,6 +3359,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3026,18 +3372,22 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3048,6 +3398,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3055,9 +3406,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -3074,9 +3427,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3087,6 +3442,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3099,6 +3455,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3106,6 +3463,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3121,6 +3479,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3129,9 +3488,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -3147,9 +3508,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3160,6 +3523,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3172,19 +3536,23 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3195,6 +3563,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3202,9 +3571,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -3217,6 +3588,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3228,9 +3600,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3241,6 +3615,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3253,6 +3628,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3260,6 +3636,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3275,6 +3652,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3283,9 +3661,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -3301,9 +3681,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3314,6 +3696,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3326,19 +3709,23 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -3349,6 +3736,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3356,9 +3744,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -3371,6 +3761,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3382,6 +3773,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3389,6 +3781,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3400,9 +3793,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3413,6 +3808,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3425,6 +3821,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3433,13 +3830,16 @@ description: Result of parsing wing-spar.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3450,25 +3850,30 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3479,12 +3884,14 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3492,6 +3899,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3502,9 +3910,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3515,19 +3925,23 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3538,6 +3952,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3550,6 +3965,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3559,9 +3975,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSpan", "start": 0, "type": "Identifier" @@ -3573,6 +3991,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3584,9 +4003,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3597,6 +4018,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3605,12 +4027,14 @@ description: Result of parsing wing-spar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "18": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3627,11 +4051,13 @@ description: Result of parsing wing-spar.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Sketch the sheet metal profile for the front spar, then extrude" ], @@ -3647,6 +4073,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rearSparProfile", "start": 0, "type": "Identifier" @@ -3660,6 +4087,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -3671,9 +4099,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rearSpar", "start": 0, "type": "Identifier" @@ -3691,9 +4121,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerCamber", "start": 0, "type": "Identifier" @@ -3705,15 +4137,18 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -3729,6 +4164,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3739,9 +4175,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3752,6 +4190,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3759,9 +4198,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSketch", "start": 0, "type": "Identifier" @@ -3779,6 +4220,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3790,9 +4232,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperCamber", "start": 0, "type": "Identifier" @@ -3802,10 +4246,12 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7", "start": 0, "type": "Literal", @@ -3825,6 +4271,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -3832,6 +4279,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -3843,9 +4291,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3856,6 +4306,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3868,6 +4319,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3875,6 +4327,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3890,6 +4343,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3901,9 +4355,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -3913,14 +4369,17 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparStockThicknes", "start": 0, "type": "Identifier" @@ -3940,9 +4399,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -3953,6 +4414,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3965,6 +4427,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3973,6 +4436,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3984,6 +4448,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3995,6 +4460,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4002,6 +4468,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4013,9 +4480,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4026,6 +4495,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4038,6 +4508,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4045,6 +4516,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4060,6 +4532,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4071,9 +4544,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -4083,14 +4558,17 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparStockThicknes", "start": 0, "type": "Identifier" @@ -4110,9 +4588,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4123,6 +4603,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4135,6 +4616,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4143,6 +4625,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -4154,6 +4637,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4165,6 +4649,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4172,6 +4657,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4183,9 +4669,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4196,6 +4684,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4208,6 +4697,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4215,6 +4705,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4230,6 +4721,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4241,9 +4733,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -4253,14 +4747,17 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparStockThicknes", "start": 0, "type": "Identifier" @@ -4280,9 +4777,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4293,6 +4792,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4305,6 +4805,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4312,6 +4813,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -4327,6 +4829,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4334,6 +4837,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4345,9 +4849,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4358,6 +4864,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4370,6 +4877,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4378,9 +4886,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparStockThicknes", "start": 0, "type": "Identifier" @@ -4396,9 +4906,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4409,6 +4921,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4421,19 +4934,23 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4444,6 +4961,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4451,9 +4969,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg08", "start": 0, "type": "Identifier" @@ -4466,6 +4986,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4477,9 +4998,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4490,6 +5013,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4502,6 +5026,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4510,6 +5035,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4521,6 +5047,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4532,6 +5059,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4540,9 +5068,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -4558,9 +5088,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4571,6 +5103,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4583,18 +5116,22 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4605,6 +5142,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4612,9 +5150,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg07", "start": 0, "type": "Identifier" @@ -4631,9 +5171,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4644,6 +5186,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4656,6 +5199,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4664,6 +5208,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4675,6 +5220,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4686,6 +5232,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4694,9 +5241,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -4712,9 +5261,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4725,6 +5276,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4737,18 +5289,22 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4759,6 +5315,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4766,9 +5323,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg06", "start": 0, "type": "Identifier" @@ -4785,9 +5344,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -4798,6 +5359,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4810,6 +5372,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -4818,6 +5381,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -4829,6 +5393,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4840,6 +5405,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4848,9 +5414,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparBendRadius", "start": 0, "type": "Identifier" @@ -4866,9 +5434,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -4879,6 +5449,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4891,19 +5462,23 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -4914,6 +5489,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4921,9 +5497,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg05", "start": 0, "type": "Identifier" @@ -4936,6 +5514,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4947,6 +5526,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4954,6 +5534,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4965,9 +5546,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -4978,6 +5561,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4990,6 +5574,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4998,13 +5583,16 @@ description: Result of parsing wing-spar.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -5015,25 +5603,30 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -5044,12 +5637,14 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -5057,6 +5652,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5067,9 +5663,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5080,19 +5678,23 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5103,6 +5705,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5115,6 +5718,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5124,9 +5728,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSpan", "start": 0, "type": "Identifier" @@ -5138,6 +5744,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5149,9 +5756,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5162,6 +5771,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5170,12 +5780,14 @@ description: Result of parsing wing-spar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "18": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5192,11 +5804,13 @@ description: Result of parsing wing-spar.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5209,6 +5823,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontSparHoles", "start": 0, "type": "Identifier" @@ -5222,6 +5837,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -5230,9 +5846,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg10", "start": 0, "type": "Identifier" @@ -5248,9 +5866,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -5261,6 +5881,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5268,9 +5889,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "frontSparProfile", "start": 0, "type": "Identifier" @@ -5288,6 +5911,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -5303,9 +5927,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerCamber", "start": 0, "type": "Identifier" @@ -5317,15 +5943,18 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -5347,9 +5976,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foilThickness", "start": 0, "type": "Identifier" @@ -5361,15 +5992,18 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5385,6 +6019,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5395,9 +6030,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5408,6 +6045,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5420,6 +6058,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5431,9 +6070,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperCamber", "start": 0, "type": "Identifier" @@ -5443,10 +6084,12 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4", "start": 0, "type": "Literal", @@ -5466,6 +6109,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5473,6 +6117,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5484,9 +6129,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5497,6 +6144,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5509,6 +6157,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5517,6 +6166,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5528,6 +6178,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5539,6 +6190,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5546,6 +6198,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -5561,9 +6214,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5574,6 +6229,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5586,6 +6242,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5604,9 +6261,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSpan", "start": 0, "type": "Identifier" @@ -5616,6 +6275,7 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5623,6 +6283,7 @@ description: Result of parsing wing-spar.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5632,14 +6293,17 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foilThickness", "start": 0, "type": "Identifier" @@ -5659,11 +6323,13 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -5672,9 +6338,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nSections", "start": 0, "type": "Identifier" @@ -5684,10 +6352,12 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -5705,10 +6375,12 @@ description: Result of parsing wing-spar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -5728,6 +6400,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -5735,6 +6408,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -5746,9 +6420,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5759,6 +6435,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5771,6 +6448,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5779,6 +6457,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5790,6 +6469,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5801,6 +6481,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5808,6 +6489,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -5823,9 +6505,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5836,6 +6520,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5848,19 +6533,23 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -5871,6 +6560,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5878,9 +6568,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg11", "start": 0, "type": "Identifier" @@ -5893,6 +6585,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5904,9 +6597,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5917,6 +6612,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5929,6 +6625,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -5937,6 +6634,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -5948,6 +6646,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5959,6 +6658,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -5966,6 +6666,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -5981,9 +6682,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5994,6 +6697,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6006,18 +6710,22 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -6028,6 +6736,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6035,9 +6744,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg12", "start": 0, "type": "Identifier" @@ -6054,9 +6765,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6067,6 +6780,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6079,6 +6793,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6087,13 +6802,16 @@ description: Result of parsing wing-spar.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -6104,25 +6822,30 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -6133,12 +6856,14 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6146,6 +6871,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6156,9 +6882,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -6169,19 +6897,23 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -6192,6 +6924,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6204,6 +6937,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -6215,9 +6949,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nSections", "start": 0, "type": "Identifier" @@ -6227,10 +6963,12 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6250,6 +6988,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -6264,9 +7003,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSpan", "start": 0, "type": "Identifier" @@ -6276,6 +7017,7 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6283,6 +7025,7 @@ description: Result of parsing wing-spar.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6292,14 +7035,17 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foilThickness", "start": 0, "type": "Identifier" @@ -6317,6 +7063,7 @@ description: Result of parsing wing-spar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -6325,9 +7072,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nSections", "start": 0, "type": "Identifier" @@ -6337,10 +7086,12 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6364,6 +7115,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -6374,6 +7126,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -6387,6 +7140,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -6398,6 +7152,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6405,6 +7160,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6415,9 +7171,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -6428,12 +7186,14 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -6446,6 +7206,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6454,6 +7215,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -6465,6 +7227,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6476,9 +7239,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -6489,6 +7254,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6497,15 +7263,18 @@ description: Result of parsing wing-spar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -6518,6 +7287,7 @@ description: Result of parsing wing-spar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rearSparHoles", "start": 0, "type": "Identifier" @@ -6531,6 +7301,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -6539,9 +7310,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg09", "start": 0, "type": "Identifier" @@ -6557,9 +7330,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6570,6 +7345,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6577,9 +7353,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rearSparProfile", "start": 0, "type": "Identifier" @@ -6597,6 +7375,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6612,9 +7391,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lowerCamber", "start": 0, "type": "Identifier" @@ -6626,15 +7407,18 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3", "start": 0, "type": "Literal", @@ -6656,9 +7440,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foilThickness", "start": 0, "type": "Identifier" @@ -6670,15 +7456,18 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -6694,6 +7483,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6704,9 +7494,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6717,6 +7509,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6729,6 +7522,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6741,9 +7535,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "upperCamber", "start": 0, "type": "Identifier" @@ -6755,15 +7551,18 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.01", "start": 0, "type": "Literal", @@ -6783,6 +7582,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -6790,6 +7590,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -6801,9 +7602,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -6814,6 +7617,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6826,6 +7630,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6834,6 +7639,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -6845,6 +7651,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6856,6 +7663,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6863,6 +7671,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -6878,9 +7687,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -6891,6 +7702,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6903,19 +7715,23 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -6926,6 +7742,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6933,9 +7750,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg12", "start": 0, "type": "Identifier" @@ -6948,6 +7767,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6959,9 +7779,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -6972,6 +7794,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6984,6 +7807,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6992,6 +7816,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -7003,6 +7828,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7014,6 +7840,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -7021,6 +7848,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -7036,9 +7864,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7049,6 +7879,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7061,19 +7892,23 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -7084,6 +7919,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7091,9 +7927,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg14", "start": 0, "type": "Identifier" @@ -7106,6 +7944,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7117,9 +7956,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -7130,6 +7971,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7142,6 +7984,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7150,6 +7993,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -7161,6 +8005,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7172,6 +8017,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -7179,6 +8025,7 @@ description: Result of parsing wing-spar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -7194,9 +8041,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7207,6 +8056,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7219,18 +8069,22 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -7241,6 +8095,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7248,9 +8103,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg12", "start": 0, "type": "Identifier" @@ -7267,9 +8124,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -7280,6 +8139,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7292,6 +8152,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7300,13 +8161,16 @@ description: Result of parsing wing-spar.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -7317,25 +8181,30 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -7346,12 +8215,14 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7359,6 +8230,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7369,9 +8241,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7382,19 +8256,23 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -7405,6 +8283,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7417,6 +8296,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -7428,9 +8308,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nSections", "start": 0, "type": "Identifier" @@ -7440,10 +8322,12 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7463,6 +8347,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -7477,9 +8362,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sparSpan", "start": 0, "type": "Identifier" @@ -7489,6 +8376,7 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -7496,6 +8384,7 @@ description: Result of parsing wing-spar.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -7505,14 +8394,17 @@ description: Result of parsing wing-spar.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foilThickness", "start": 0, "type": "Identifier" @@ -7530,6 +8422,7 @@ description: Result of parsing wing-spar.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -7538,9 +8431,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nSections", "start": 0, "type": "Identifier" @@ -7550,10 +8445,12 @@ description: Result of parsing wing-spar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7577,6 +8474,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -7587,6 +8485,7 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -7600,6 +8499,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -7611,6 +8511,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7618,6 +8519,7 @@ description: Result of parsing wing-spar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7628,9 +8530,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -7641,12 +8545,14 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -7659,6 +8565,7 @@ description: Result of parsing wing-spar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7667,6 +8574,7 @@ description: Result of parsing wing-spar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -7678,6 +8586,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7689,9 +8598,11 @@ description: Result of parsing wing-spar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -7702,6 +8613,7 @@ description: Result of parsing wing-spar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7710,15 +8622,18 @@ description: Result of parsing wing-spar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -7730,9 +8645,11 @@ description: Result of parsing wing-spar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -7751,19 +8668,23 @@ description: Result of parsing wing-spar.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -7779,12 +8700,14 @@ description: Result of parsing wing-spar.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kcl_samples/wing-spar/program_memory.snap b/rust/kcl-lib/tests/kcl_samples/wing-spar/program_memory.snap index 6907123eb..ec7cda98c 100644 --- a/rust/kcl-lib/tests/kcl_samples/wing-spar/program_memory.snap +++ b/rust/kcl-lib/tests/kcl_samples/wing-spar/program_memory.snap @@ -59,6 +59,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4188, "end": 4194, + "moduleId": 0, "start": 4188, "type": "TagDeclarator", "value": "seg11" @@ -79,6 +80,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4328, "end": 4334, + "moduleId": 0, "start": 4328, "type": "TagDeclarator", "value": "seg12" @@ -137,6 +139,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4188, "end": 4194, + "moduleId": 0, "start": 4188, "type": "TagDeclarator", "value": "seg11" @@ -186,6 +189,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4328, "end": 4334, + "moduleId": 0, "start": 4328, "type": "TagDeclarator", "value": "seg12" @@ -362,6 +366,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -382,6 +387,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -402,6 +408,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -422,6 +429,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -484,6 +492,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -514,6 +523,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -563,6 +573,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -612,6 +623,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -661,6 +673,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -834,6 +847,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -1031,6 +1045,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4188, "end": 4194, + "moduleId": 0, "start": 4188, "type": "TagDeclarator", "value": "seg11" @@ -1051,6 +1066,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4328, "end": 4334, + "moduleId": 0, "start": 4328, "type": "TagDeclarator", "value": "seg12" @@ -1109,6 +1125,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4188, "end": 4194, + "moduleId": 0, "start": 4188, "type": "TagDeclarator", "value": "seg11" @@ -1158,6 +1175,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4328, "end": 4334, + "moduleId": 0, "start": 4328, "type": "TagDeclarator", "value": "seg12" @@ -1334,6 +1352,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -1354,6 +1373,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -1374,6 +1394,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -1394,6 +1415,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -1456,6 +1478,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -1486,6 +1509,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -1535,6 +1559,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -1584,6 +1609,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -1633,6 +1659,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -1806,6 +1833,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -2003,6 +2031,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4188, "end": 4194, + "moduleId": 0, "start": 4188, "type": "TagDeclarator", "value": "seg11" @@ -2023,6 +2052,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4328, "end": 4334, + "moduleId": 0, "start": 4328, "type": "TagDeclarator", "value": "seg12" @@ -2081,6 +2111,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4188, "end": 4194, + "moduleId": 0, "start": 4188, "type": "TagDeclarator", "value": "seg11" @@ -2130,6 +2161,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4328, "end": 4334, + "moduleId": 0, "start": 4328, "type": "TagDeclarator", "value": "seg12" @@ -2306,6 +2338,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -2326,6 +2359,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -2346,6 +2380,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -2366,6 +2401,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -2428,6 +2464,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -2458,6 +2495,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -2507,6 +2545,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -2556,6 +2595,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -2605,6 +2645,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -2778,6 +2819,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -2975,6 +3017,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4188, "end": 4194, + "moduleId": 0, "start": 4188, "type": "TagDeclarator", "value": "seg11" @@ -2995,6 +3038,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4328, "end": 4334, + "moduleId": 0, "start": 4328, "type": "TagDeclarator", "value": "seg12" @@ -3053,6 +3097,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4188, "end": 4194, + "moduleId": 0, "start": 4188, "type": "TagDeclarator", "value": "seg11" @@ -3102,6 +3147,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4328, "end": 4334, + "moduleId": 0, "start": 4328, "type": "TagDeclarator", "value": "seg12" @@ -3278,6 +3324,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -3298,6 +3345,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -3318,6 +3366,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -3338,6 +3387,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -3400,6 +3450,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -3430,6 +3481,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -3479,6 +3531,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -3528,6 +3581,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -3577,6 +3631,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -3750,6 +3805,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -3949,6 +4005,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -3969,6 +4026,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -3989,6 +4047,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -4009,6 +4068,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -4071,6 +4131,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -4101,6 +4162,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2102, "end": 2108, + "moduleId": 0, "start": 2102, "type": "TagDeclarator", "value": "seg01" @@ -4150,6 +4212,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2216, "end": 2222, + "moduleId": 0, "start": 2216, "type": "TagDeclarator", "value": "seg02" @@ -4199,6 +4262,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2331, "end": 2337, + "moduleId": 0, "start": 2331, "type": "TagDeclarator", "value": "seg03" @@ -4248,6 +4312,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2446, "end": 2452, + "moduleId": 0, "start": 2446, "type": "TagDeclarator", "value": "seg04" @@ -4421,6 +4486,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 2809, "end": 2815, + "moduleId": 0, "start": 2809, "type": "TagDeclarator", "value": "seg10" @@ -4614,6 +4680,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4950, "end": 4956, + "moduleId": 0, "start": 4950, "type": "TagDeclarator", "value": "seg14" @@ -4686,6 +4753,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4950, "end": 4956, + "moduleId": 0, "start": 4950, "type": "TagDeclarator", "value": "seg14" @@ -4905,6 +4973,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -4925,6 +4994,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -4945,6 +5015,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -4965,6 +5036,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -5027,6 +5099,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" @@ -5057,6 +5130,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -5106,6 +5180,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -5155,6 +5230,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -5204,6 +5280,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -5377,6 +5454,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" @@ -5570,6 +5648,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4950, "end": 4956, + "moduleId": 0, "start": 4950, "type": "TagDeclarator", "value": "seg14" @@ -5642,6 +5721,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4950, "end": 4956, + "moduleId": 0, "start": 4950, "type": "TagDeclarator", "value": "seg14" @@ -5861,6 +5941,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -5881,6 +5962,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -5901,6 +5983,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -5921,6 +6004,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -5983,6 +6067,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" @@ -6013,6 +6098,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -6062,6 +6148,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -6111,6 +6198,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -6160,6 +6248,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -6333,6 +6422,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" @@ -6526,6 +6616,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4950, "end": 4956, + "moduleId": 0, "start": 4950, "type": "TagDeclarator", "value": "seg14" @@ -6598,6 +6689,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4950, "end": 4956, + "moduleId": 0, "start": 4950, "type": "TagDeclarator", "value": "seg14" @@ -6817,6 +6909,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -6837,6 +6930,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -6857,6 +6951,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -6877,6 +6972,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -6939,6 +7035,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" @@ -6969,6 +7066,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -7018,6 +7116,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -7067,6 +7166,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -7116,6 +7216,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -7289,6 +7390,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" @@ -7482,6 +7584,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4950, "end": 4956, + "moduleId": 0, "start": 4950, "type": "TagDeclarator", "value": "seg14" @@ -7554,6 +7657,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 4950, "end": 4956, + "moduleId": 0, "start": 4950, "type": "TagDeclarator", "value": "seg14" @@ -7773,6 +7877,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -7793,6 +7898,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -7813,6 +7919,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -7833,6 +7940,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -7895,6 +8003,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" @@ -7925,6 +8034,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -7974,6 +8084,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -8023,6 +8134,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -8072,6 +8184,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -8245,6 +8358,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" @@ -8440,6 +8554,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -8460,6 +8575,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -8480,6 +8596,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -8500,6 +8617,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -8562,6 +8680,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" @@ -8592,6 +8711,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3122, "end": 3128, + "moduleId": 0, "start": 3122, "type": "TagDeclarator", "value": "seg05" @@ -8641,6 +8761,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3236, "end": 3242, + "moduleId": 0, "start": 3236, "type": "TagDeclarator", "value": "seg06" @@ -8690,6 +8811,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3350, "end": 3356, + "moduleId": 0, "start": 3350, "type": "TagDeclarator", "value": "seg07" @@ -8739,6 +8861,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3463, "end": 3469, + "moduleId": 0, "start": 3463, "type": "TagDeclarator", "value": "seg08" @@ -8912,6 +9035,7 @@ description: Variables in memory after executing wing-spar.kcl "tag": { "commentStart": 3829, "end": 3835, + "moduleId": 0, "start": 3829, "type": "TagDeclarator", "value": "seg09" diff --git a/rust/kcl-lib/tests/kittycad_svg/ast.snap b/rust/kcl-lib/tests/kittycad_svg/ast.snap index b5516e2ec..804288e32 100644 --- a/rust/kcl-lib/tests/kittycad_svg/ast.snap +++ b/rust/kcl-lib/tests/kittycad_svg/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing kittycad_svg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "svg", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing kittycad_svg.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -155,6 +171,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.04", "start": 0, "type": "Literal", @@ -166,6 +183,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -173,6 +191,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -183,9 +202,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -196,6 +217,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -208,6 +230,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -218,6 +241,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -231,6 +255,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.2", "start": 0, "type": "Literal", @@ -242,6 +267,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -249,6 +275,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -259,9 +286,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -272,6 +301,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -284,6 +314,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -294,6 +325,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.84", "start": 0, "type": "Literal", @@ -307,6 +339,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.2", "start": 0, "type": "Literal", @@ -318,6 +351,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -325,6 +359,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -335,9 +370,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -348,6 +385,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -360,6 +398,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -370,6 +409,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.84", "start": 0, "type": "Literal", @@ -383,6 +423,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -394,6 +435,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -401,6 +443,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -411,9 +454,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -424,6 +469,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -436,6 +482,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -446,6 +493,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -459,6 +507,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -470,6 +519,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -477,6 +527,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -487,9 +538,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -500,6 +553,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -512,6 +566,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -522,6 +577,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -535,6 +591,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -546,6 +603,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -553,6 +611,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -563,9 +622,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -576,6 +637,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -588,6 +650,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -598,6 +661,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.84", "start": 0, "type": "Literal", @@ -611,6 +675,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -622,6 +687,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -629,6 +695,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -639,9 +706,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -652,6 +721,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -664,6 +734,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -674,6 +745,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.84", "start": 0, "type": "Literal", @@ -687,6 +759,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -698,6 +771,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -705,6 +779,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -715,9 +790,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -728,6 +805,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -740,6 +818,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -750,6 +829,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -763,6 +843,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -774,6 +855,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -781,6 +863,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -791,9 +874,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -804,6 +889,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -816,6 +902,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -826,6 +913,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -839,6 +927,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -850,6 +939,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -857,6 +947,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -867,9 +958,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -880,6 +973,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -892,6 +986,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -902,6 +997,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -915,6 +1011,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -926,6 +1023,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -933,6 +1031,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -943,9 +1042,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -956,6 +1057,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -968,6 +1070,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -978,6 +1081,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -991,6 +1095,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -1002,6 +1107,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1009,6 +1115,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1019,9 +1126,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1032,6 +1141,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1044,6 +1154,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1054,6 +1165,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -1067,6 +1179,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -1078,6 +1191,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1085,6 +1199,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1095,9 +1210,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1108,6 +1225,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1120,6 +1238,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1130,6 +1249,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -1143,6 +1263,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -1154,6 +1275,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1161,6 +1283,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1171,9 +1294,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1184,6 +1309,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1196,6 +1322,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1206,6 +1333,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -1219,6 +1347,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -1230,6 +1359,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1237,6 +1367,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1247,9 +1378,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1260,6 +1393,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1272,6 +1406,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1282,6 +1417,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -1295,6 +1431,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -1306,6 +1443,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1313,6 +1451,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1323,9 +1462,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1336,6 +1477,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1348,6 +1490,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1358,6 +1501,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -1371,6 +1515,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -1382,6 +1527,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1389,6 +1535,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1399,9 +1546,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1412,6 +1561,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1424,6 +1574,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1434,6 +1585,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -1447,6 +1599,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -1458,6 +1611,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1465,6 +1619,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1475,9 +1630,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1488,6 +1645,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1500,6 +1658,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1510,6 +1669,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19.32", "start": 0, "type": "Literal", @@ -1523,6 +1683,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -1534,6 +1695,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1541,6 +1703,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1551,9 +1714,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1564,6 +1729,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1576,6 +1742,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1586,6 +1753,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19.32", "start": 0, "type": "Literal", @@ -1599,6 +1767,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -1610,6 +1779,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1617,6 +1787,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1627,9 +1798,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1640,6 +1813,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1652,6 +1826,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1662,6 +1837,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -1675,6 +1851,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -1686,6 +1863,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1693,6 +1871,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1703,9 +1882,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1716,6 +1897,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1728,6 +1910,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1738,6 +1921,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -1751,6 +1935,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -1762,6 +1947,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1769,6 +1955,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1779,9 +1966,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1792,6 +1981,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1804,6 +1994,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1814,6 +2005,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21", "start": 0, "type": "Literal", @@ -1827,6 +2019,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -1838,6 +2031,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1845,6 +2039,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1855,9 +2050,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1868,6 +2065,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1880,6 +2078,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1890,6 +2089,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21", "start": 0, "type": "Literal", @@ -1903,6 +2103,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -1914,6 +2115,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1921,6 +2123,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1931,9 +2134,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1944,6 +2149,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1956,6 +2162,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1966,6 +2173,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -1979,6 +2187,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -1990,6 +2199,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1997,6 +2207,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2007,9 +2218,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2020,6 +2233,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2032,6 +2246,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2042,6 +2257,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -2055,6 +2271,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.2", "start": 0, "type": "Literal", @@ -2066,6 +2283,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2073,6 +2291,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2083,9 +2302,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2096,6 +2317,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2108,6 +2330,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2118,6 +2341,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -2131,6 +2355,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.2", "start": 0, "type": "Literal", @@ -2142,6 +2367,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2149,6 +2375,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2159,9 +2386,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2172,6 +2401,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2184,6 +2414,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2194,6 +2425,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -2207,6 +2439,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.04", "start": 0, "type": "Literal", @@ -2218,6 +2451,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2225,6 +2459,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2235,9 +2470,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2248,6 +2485,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2260,6 +2498,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2270,6 +2509,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.96", "start": 0, "type": "Literal", @@ -2283,6 +2523,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.04", "start": 0, "type": "Literal", @@ -2294,6 +2535,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2301,6 +2543,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2311,9 +2554,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2324,6 +2569,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2336,6 +2582,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2346,6 +2593,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.96", "start": 0, "type": "Literal", @@ -2359,6 +2607,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.88", "start": 0, "type": "Literal", @@ -2370,6 +2619,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2377,6 +2627,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2387,9 +2638,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2400,6 +2653,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2412,6 +2666,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2422,6 +2677,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -2435,6 +2691,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.88", "start": 0, "type": "Literal", @@ -2446,6 +2703,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2453,6 +2711,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2463,9 +2722,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2476,6 +2737,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2488,6 +2750,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2498,6 +2761,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -2511,6 +2775,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "28.56", "start": 0, "type": "Literal", @@ -2522,6 +2787,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2529,6 +2795,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2539,9 +2806,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2552,6 +2821,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2564,6 +2834,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2574,6 +2845,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -2587,6 +2859,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "28.56", "start": 0, "type": "Literal", @@ -2598,6 +2871,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2605,6 +2879,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2615,9 +2890,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2628,6 +2905,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2640,6 +2918,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2650,6 +2929,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -2663,6 +2943,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.88", "start": 0, "type": "Literal", @@ -2674,6 +2955,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2681,6 +2963,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2691,9 +2974,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2704,6 +2989,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2716,6 +3002,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2726,6 +3013,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -2739,6 +3027,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.88", "start": 0, "type": "Literal", @@ -2750,6 +3039,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2757,6 +3047,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2767,9 +3058,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2780,6 +3073,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2792,6 +3086,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2802,6 +3097,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -2815,6 +3111,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.04", "start": 0, "type": "Literal", @@ -2826,6 +3123,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2833,6 +3131,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2843,9 +3142,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2856,6 +3157,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2868,6 +3170,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2878,6 +3181,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -2891,6 +3195,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.04", "start": 0, "type": "Literal", @@ -2902,6 +3207,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2909,6 +3215,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2919,9 +3226,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2932,6 +3241,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2944,6 +3254,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2954,6 +3265,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -2967,6 +3279,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.88", "start": 0, "type": "Literal", @@ -2978,6 +3291,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2985,6 +3299,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2995,9 +3310,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3008,6 +3325,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3020,6 +3338,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3030,6 +3349,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -3043,6 +3363,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.88", "start": 0, "type": "Literal", @@ -3054,6 +3375,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3061,6 +3383,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3071,9 +3394,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3084,6 +3409,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3096,6 +3422,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3106,6 +3433,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -3119,6 +3447,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "28.56", "start": 0, "type": "Literal", @@ -3130,6 +3459,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3137,6 +3467,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3147,9 +3478,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3160,6 +3493,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3172,6 +3506,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3182,6 +3517,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -3195,6 +3531,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "28.56", "start": 0, "type": "Literal", @@ -3206,6 +3543,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3213,6 +3551,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3223,9 +3562,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3236,6 +3577,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3248,6 +3590,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3258,6 +3601,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -3271,6 +3615,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.88", "start": 0, "type": "Literal", @@ -3282,6 +3627,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3289,6 +3635,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3299,9 +3646,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3312,6 +3661,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3324,6 +3674,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3334,6 +3685,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -3347,6 +3699,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.88", "start": 0, "type": "Literal", @@ -3358,6 +3711,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3365,6 +3719,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3375,9 +3730,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3388,6 +3745,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3400,6 +3758,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3410,6 +3769,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -3423,6 +3783,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.04", "start": 0, "type": "Literal", @@ -3434,6 +3795,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3441,6 +3803,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3451,9 +3814,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3464,6 +3829,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3476,6 +3842,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3486,6 +3853,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.839996", "start": 0, "type": "Literal", @@ -3499,6 +3867,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.58", "start": 0, "type": "Literal", @@ -3510,6 +3879,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3517,6 +3887,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3527,9 +3898,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3540,6 +3913,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3552,6 +3926,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3562,6 +3937,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.839996", "start": 0, "type": "Literal", @@ -3575,6 +3951,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -3586,6 +3963,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3593,6 +3971,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3603,9 +3982,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3616,6 +3997,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3628,6 +4010,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3638,6 +4021,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -3651,6 +4035,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -3662,6 +4047,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3669,6 +4055,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3679,9 +4066,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3692,6 +4081,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3704,6 +4094,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3714,6 +4105,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -3727,6 +4119,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.2", "start": 0, "type": "Literal", @@ -3738,6 +4131,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3745,6 +4139,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3755,9 +4150,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3768,6 +4165,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3780,6 +4178,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3790,6 +4189,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -3803,6 +4203,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.2", "start": 0, "type": "Literal", @@ -3814,6 +4215,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3821,6 +4223,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3831,9 +4234,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3844,6 +4249,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3856,6 +4262,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3866,6 +4273,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -3879,6 +4287,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -3890,6 +4299,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3897,6 +4307,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3907,9 +4318,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3920,6 +4333,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3932,6 +4346,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3942,6 +4357,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -3955,6 +4371,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -3966,6 +4383,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3973,6 +4391,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3983,9 +4402,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3996,6 +4417,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4008,6 +4430,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4018,6 +4441,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -4031,6 +4455,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.58", "start": 0, "type": "Literal", @@ -4042,6 +4467,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4049,6 +4475,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4059,9 +4486,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4072,6 +4501,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4084,6 +4514,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4094,6 +4525,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -4107,6 +4539,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -4118,6 +4551,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4125,6 +4559,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4135,9 +4570,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4148,6 +4585,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4160,6 +4598,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4170,6 +4609,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -4183,6 +4623,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -4194,6 +4635,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4201,6 +4643,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4211,9 +4654,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4224,6 +4669,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4236,6 +4682,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4246,6 +4693,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -4259,6 +4707,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -4270,6 +4719,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4277,6 +4727,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4287,9 +4738,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4300,6 +4753,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4312,6 +4766,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4322,6 +4777,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -4335,6 +4791,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -4346,6 +4803,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4353,6 +4811,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4363,9 +4822,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4376,6 +4837,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4388,6 +4850,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4398,6 +4861,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -4411,6 +4875,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -4422,6 +4887,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4429,6 +4895,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4439,9 +4906,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4452,6 +4921,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4464,6 +4934,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4474,6 +4945,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -4487,6 +4959,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21.84", "start": 0, "type": "Literal", @@ -4498,6 +4971,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4505,6 +4979,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4515,9 +4990,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4528,6 +5005,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4540,6 +5018,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4550,6 +5029,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -4563,6 +5043,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21.84", "start": 0, "type": "Literal", @@ -4574,6 +5055,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4581,6 +5063,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4591,9 +5074,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4604,6 +5089,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4616,6 +5102,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4626,6 +5113,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -4639,6 +5127,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -4650,6 +5139,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4657,6 +5147,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4667,9 +5158,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4680,6 +5173,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4692,6 +5186,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4702,6 +5197,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -4715,6 +5211,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -4726,6 +5223,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4733,6 +5231,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4743,9 +5242,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4756,6 +5257,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4768,6 +5270,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4778,6 +5281,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -4791,6 +5295,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.52", "start": 0, "type": "Literal", @@ -4802,6 +5307,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4809,6 +5315,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4819,9 +5326,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4832,6 +5341,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4844,6 +5354,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4854,6 +5365,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -4867,6 +5379,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.52", "start": 0, "type": "Literal", @@ -4878,6 +5391,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4885,6 +5399,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4895,9 +5410,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4908,6 +5425,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4920,6 +5438,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -4930,6 +5449,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -4943,6 +5463,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -4954,6 +5475,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4961,6 +5483,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4971,9 +5494,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4984,6 +5509,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4996,6 +5522,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5006,6 +5533,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -5019,6 +5547,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -5030,6 +5559,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5037,6 +5567,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5047,9 +5578,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5060,6 +5593,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5072,6 +5606,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5082,6 +5617,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -5095,6 +5631,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21.84", "start": 0, "type": "Literal", @@ -5106,6 +5643,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5113,6 +5651,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5123,9 +5662,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5136,6 +5677,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5148,6 +5690,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5158,6 +5701,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -5171,6 +5715,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21.84", "start": 0, "type": "Literal", @@ -5182,6 +5727,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5189,6 +5735,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5199,9 +5746,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5212,6 +5761,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5224,6 +5774,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5234,6 +5785,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -5247,6 +5799,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -5258,6 +5811,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5265,6 +5819,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5275,9 +5830,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5288,6 +5845,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5300,6 +5858,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5310,6 +5869,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -5323,6 +5883,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -5334,6 +5895,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5341,6 +5903,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5351,9 +5914,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5364,6 +5929,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5376,6 +5942,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5386,6 +5953,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -5399,6 +5967,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21.84", "start": 0, "type": "Literal", @@ -5410,6 +5979,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5417,6 +5987,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5427,9 +5998,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5440,6 +6013,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5452,6 +6026,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5462,6 +6037,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -5475,6 +6051,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21.84", "start": 0, "type": "Literal", @@ -5486,6 +6063,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5493,6 +6071,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5503,9 +6082,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5516,6 +6097,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5528,6 +6110,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5538,6 +6121,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -5551,6 +6135,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -5562,6 +6147,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5569,6 +6155,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5579,9 +6166,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5592,6 +6181,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5604,6 +6194,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5614,6 +6205,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -5627,6 +6219,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -5638,6 +6231,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5645,6 +6239,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5655,9 +6250,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5668,6 +6265,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5680,6 +6278,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5690,6 +6289,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -5703,6 +6303,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21.84", "start": 0, "type": "Literal", @@ -5714,6 +6315,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5721,6 +6323,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5731,9 +6334,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5744,6 +6349,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5756,6 +6362,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5766,6 +6373,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19.32", "start": 0, "type": "Literal", @@ -5779,6 +6387,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21.84", "start": 0, "type": "Literal", @@ -5790,6 +6399,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5797,6 +6407,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5807,9 +6418,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5820,6 +6433,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5832,6 +6446,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5842,6 +6457,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19.32", "start": 0, "type": "Literal", @@ -5855,6 +6471,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -5866,6 +6483,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5873,6 +6491,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5883,9 +6502,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5896,6 +6517,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5908,6 +6530,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5918,6 +6541,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -5931,6 +6555,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -5942,6 +6567,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5949,6 +6575,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5959,9 +6586,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5972,6 +6601,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5984,6 +6614,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5994,6 +6625,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -6007,6 +6639,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.52", "start": 0, "type": "Literal", @@ -6018,6 +6651,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6025,6 +6659,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6035,9 +6670,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6048,6 +6685,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6060,6 +6698,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6070,6 +6709,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -6083,6 +6723,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.52", "start": 0, "type": "Literal", @@ -6094,6 +6735,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6101,6 +6743,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6111,9 +6754,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6124,6 +6769,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6136,6 +6782,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6146,6 +6793,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -6159,6 +6807,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.36", "start": 0, "type": "Literal", @@ -6170,6 +6819,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6177,6 +6827,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6187,9 +6838,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6200,6 +6853,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6212,6 +6866,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6222,6 +6877,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -6235,6 +6891,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -6246,6 +6903,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6253,6 +6911,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6263,9 +6922,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6276,6 +6937,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6288,6 +6950,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6298,6 +6961,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -6311,6 +6975,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -6322,6 +6987,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6329,6 +6995,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6339,9 +7006,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6352,6 +7021,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6364,6 +7034,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6374,6 +7045,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -6387,6 +7059,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -6398,6 +7071,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6405,6 +7079,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6415,9 +7090,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6428,6 +7105,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6440,6 +7118,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6450,6 +7129,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -6463,6 +7143,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -6474,6 +7155,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6481,6 +7163,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6491,9 +7174,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6504,6 +7189,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6516,6 +7202,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6526,6 +7213,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -6539,6 +7227,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -6550,6 +7239,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6557,6 +7247,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6567,9 +7258,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6580,6 +7273,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6592,6 +7286,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6602,6 +7297,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -6615,6 +7311,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -6626,6 +7323,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6633,6 +7331,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6643,9 +7342,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6656,6 +7357,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6668,6 +7370,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6678,6 +7381,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -6691,6 +7395,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -6702,6 +7407,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6709,6 +7415,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6719,9 +7426,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6732,6 +7441,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6744,6 +7454,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6754,6 +7465,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -6767,6 +7479,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -6778,6 +7491,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6785,6 +7499,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6795,9 +7510,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6808,6 +7525,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6820,6 +7538,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6830,6 +7549,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -6843,6 +7563,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -6854,6 +7575,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6861,6 +7583,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6871,9 +7594,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6884,6 +7609,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6896,6 +7622,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6906,6 +7633,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -6919,6 +7647,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -6930,6 +7659,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6937,6 +7667,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6947,9 +7678,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6960,6 +7693,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6972,6 +7706,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -6982,6 +7717,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.839996", "start": 0, "type": "Literal", @@ -6995,6 +7731,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -7006,6 +7743,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7013,6 +7751,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7023,9 +7762,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7036,6 +7777,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7048,6 +7790,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7058,6 +7801,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.839996", "start": 0, "type": "Literal", @@ -7071,6 +7815,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -7082,6 +7827,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7089,6 +7835,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7099,9 +7846,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7112,6 +7861,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7124,6 +7874,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7134,6 +7885,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -7147,6 +7899,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -7158,6 +7911,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7165,6 +7919,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7175,9 +7930,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7188,6 +7945,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7200,6 +7958,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7210,6 +7969,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -7223,6 +7983,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -7234,6 +7995,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7241,6 +8003,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7251,9 +8014,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7264,6 +8029,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7276,6 +8042,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7286,6 +8053,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19.32", "start": 0, "type": "Literal", @@ -7299,6 +8067,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -7310,6 +8079,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7317,6 +8087,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7327,9 +8098,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7340,6 +8113,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7352,6 +8126,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7362,6 +8137,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19.32", "start": 0, "type": "Literal", @@ -7375,6 +8151,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -7386,6 +8163,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7393,6 +8171,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7403,9 +8182,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7416,6 +8197,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7428,6 +8210,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7438,6 +8221,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -7451,6 +8235,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -7462,6 +8247,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7469,6 +8255,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7479,9 +8266,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7492,6 +8281,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7504,6 +8294,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7514,6 +8305,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.839996", "start": 0, "type": "Literal", @@ -7527,6 +8319,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -7538,6 +8331,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7545,6 +8339,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7555,9 +8350,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7568,6 +8365,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7580,6 +8378,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7590,6 +8389,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.839996", "start": 0, "type": "Literal", @@ -7603,6 +8403,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19.32", "start": 0, "type": "Literal", @@ -7614,6 +8415,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7621,6 +8423,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7631,9 +8434,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7644,6 +8449,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7656,6 +8462,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7666,6 +8473,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.16", "start": 0, "type": "Literal", @@ -7679,6 +8487,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "19.32", "start": 0, "type": "Literal", @@ -7690,6 +8499,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7697,6 +8507,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7707,9 +8518,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7720,6 +8533,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7732,6 +8546,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7742,6 +8557,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -7755,6 +8571,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.08", "start": 0, "type": "Literal", @@ -7766,6 +8583,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7773,6 +8591,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7783,9 +8602,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7796,6 +8617,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7808,6 +8630,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7818,6 +8641,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -7831,6 +8655,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24001", "start": 0, "type": "Literal", @@ -7842,6 +8667,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7849,6 +8675,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7859,9 +8686,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7872,6 +8701,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7884,6 +8714,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7894,6 +8725,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -7907,6 +8739,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24001", "start": 0, "type": "Literal", @@ -7918,6 +8751,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7925,6 +8759,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7935,9 +8770,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7948,6 +8785,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7960,6 +8798,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -7970,6 +8809,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -7983,6 +8823,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.08", "start": 0, "type": "Literal", @@ -7994,6 +8835,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8001,6 +8843,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8011,9 +8854,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8024,6 +8869,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8036,6 +8882,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8046,6 +8893,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -8059,6 +8907,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.08", "start": 0, "type": "Literal", @@ -8070,6 +8919,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8077,6 +8927,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8087,9 +8938,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8100,6 +8953,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8112,6 +8966,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8122,6 +8977,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -8135,6 +8991,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -8146,6 +9003,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8153,6 +9011,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8163,9 +9022,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8176,6 +9037,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8188,6 +9050,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8198,6 +9061,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -8211,6 +9075,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -8222,6 +9087,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8229,6 +9095,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8239,9 +9106,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8252,6 +9121,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8264,6 +9134,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8274,6 +9145,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -8287,6 +9159,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -8298,6 +9171,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8305,6 +9179,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8315,9 +9190,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8328,6 +9205,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8340,6 +9218,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8350,6 +9229,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -8363,6 +9243,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -8374,6 +9255,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8381,6 +9263,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8391,9 +9274,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8404,6 +9289,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8416,6 +9302,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8426,6 +9313,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -8439,6 +9327,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -8450,6 +9339,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8457,6 +9347,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8467,9 +9358,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8480,6 +9373,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8492,6 +9386,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8502,6 +9397,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -8515,6 +9411,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -8526,6 +9423,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8533,6 +9431,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8543,9 +9442,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8556,6 +9457,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8568,6 +9470,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8578,6 +9481,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -8591,6 +9495,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.080000000000002", "start": 0, "type": "Literal", @@ -8602,6 +9507,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8609,6 +9515,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8619,9 +9526,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8632,6 +9541,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8644,6 +9554,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8654,6 +9565,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -8667,6 +9579,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.92", "start": 0, "type": "Literal", @@ -8678,6 +9591,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8685,6 +9599,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8695,9 +9610,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8708,6 +9625,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8720,6 +9638,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8730,6 +9649,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -8743,6 +9663,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.08", "start": 0, "type": "Literal", @@ -8754,6 +9675,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8761,6 +9683,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8771,9 +9694,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8784,6 +9709,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8796,6 +9722,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8806,6 +9733,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -8819,6 +9747,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.08", "start": 0, "type": "Literal", @@ -8830,6 +9759,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8837,6 +9767,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8847,9 +9778,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8860,6 +9793,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8872,6 +9806,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8882,6 +9817,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -8895,6 +9831,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -8906,6 +9843,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8913,6 +9851,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8923,9 +9862,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8936,6 +9877,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8948,6 +9890,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -8958,6 +9901,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -8971,6 +9915,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -8982,6 +9927,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8989,6 +9935,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8999,9 +9946,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9012,6 +9961,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9024,6 +9974,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9034,6 +9985,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -9047,6 +9999,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -9058,6 +10011,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9065,6 +10019,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9075,9 +10030,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9088,6 +10045,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9100,6 +10058,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9110,6 +10069,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -9123,6 +10083,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -9134,6 +10095,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9141,6 +10103,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9151,9 +10114,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9164,6 +10129,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9176,6 +10142,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9186,6 +10153,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -9199,6 +10167,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -9210,6 +10179,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9217,6 +10187,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9227,9 +10198,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9240,6 +10213,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9252,6 +10226,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9262,6 +10237,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.92", "start": 0, "type": "Literal", @@ -9275,6 +10251,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -9286,6 +10263,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9293,6 +10271,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9303,9 +10282,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9316,6 +10297,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9328,6 +10310,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9338,6 +10321,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.92", "start": 0, "type": "Literal", @@ -9351,6 +10335,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -9362,6 +10347,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9369,6 +10355,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9379,9 +10366,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9392,6 +10381,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9404,6 +10394,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9414,6 +10405,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -9427,6 +10419,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -9438,6 +10431,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9445,6 +10439,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9455,9 +10450,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9468,6 +10465,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9480,6 +10478,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9490,6 +10489,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -9503,6 +10503,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -9514,6 +10515,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9521,6 +10523,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9531,9 +10534,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9544,6 +10549,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9556,6 +10562,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9566,6 +10573,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -9579,6 +10587,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -9590,6 +10599,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9597,6 +10607,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9607,9 +10618,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9620,6 +10633,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9632,6 +10646,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9642,6 +10657,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -9655,6 +10671,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -9666,6 +10683,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9673,6 +10691,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9683,9 +10702,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9696,6 +10717,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9708,6 +10730,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9718,6 +10741,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -9731,6 +10755,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -9742,6 +10767,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9749,6 +10775,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9759,9 +10786,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9772,6 +10801,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9784,6 +10814,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9794,6 +10825,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -9807,6 +10839,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -9818,6 +10851,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9825,6 +10859,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9835,9 +10870,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9848,6 +10885,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9860,6 +10898,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9870,6 +10909,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -9883,6 +10923,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -9894,6 +10935,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9901,6 +10943,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9911,9 +10954,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9924,6 +10969,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9936,6 +10982,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9946,6 +10993,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -9959,6 +11007,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.96", "start": 0, "type": "Literal", @@ -9970,6 +11019,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9977,6 +11027,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9987,9 +11038,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10000,6 +11053,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10012,6 +11066,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10022,6 +11077,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -10035,6 +11091,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.96", "start": 0, "type": "Literal", @@ -10046,6 +11103,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10053,6 +11111,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10063,9 +11122,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10076,6 +11137,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10088,6 +11150,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10098,6 +11161,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -10111,6 +11175,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.120000000000001", "start": 0, "type": "Literal", @@ -10122,6 +11187,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10129,6 +11195,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10139,9 +11206,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10152,6 +11221,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10164,6 +11234,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10174,6 +11245,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -10187,6 +11259,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.120000000000001", "start": 0, "type": "Literal", @@ -10198,6 +11271,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10205,6 +11279,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10215,9 +11290,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10228,6 +11305,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10240,6 +11318,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10250,6 +11329,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -10263,6 +11343,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.96", "start": 0, "type": "Literal", @@ -10274,6 +11355,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10281,6 +11363,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10291,9 +11374,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10304,6 +11389,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10316,6 +11402,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10326,6 +11413,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.08", "start": 0, "type": "Literal", @@ -10339,6 +11427,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.96", "start": 0, "type": "Literal", @@ -10350,6 +11439,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10357,6 +11447,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10367,9 +11458,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10380,6 +11473,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10392,6 +11486,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10402,6 +11497,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.08", "start": 0, "type": "Literal", @@ -10415,6 +11511,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -10426,6 +11523,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10433,6 +11531,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10443,9 +11542,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10456,6 +11557,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10468,6 +11570,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10478,6 +11581,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -10491,6 +11595,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -10502,6 +11607,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10509,6 +11615,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10519,9 +11626,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10532,6 +11641,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10544,6 +11654,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10554,6 +11665,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -10567,6 +11679,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -10578,6 +11691,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10585,6 +11699,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10595,9 +11710,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10608,6 +11725,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10620,6 +11738,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10630,6 +11749,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -10643,6 +11763,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -10654,6 +11775,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10661,6 +11783,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10671,9 +11794,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10684,6 +11809,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10696,6 +11822,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10706,6 +11833,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -10719,6 +11847,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -10730,6 +11859,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10737,6 +11867,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10747,9 +11878,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10760,6 +11893,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10772,6 +11906,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10782,6 +11917,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -10795,6 +11931,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -10806,6 +11943,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10813,6 +11951,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10823,9 +11962,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10836,6 +11977,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10848,6 +11990,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10858,6 +12001,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -10871,6 +12015,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -10882,6 +12027,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10889,6 +12035,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10899,9 +12046,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10912,6 +12061,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10924,6 +12074,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -10934,6 +12085,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -10947,6 +12099,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -10958,6 +12111,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10965,6 +12119,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10975,9 +12130,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10988,6 +12145,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11000,6 +12158,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11010,6 +12169,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -11023,6 +12183,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -11034,6 +12195,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11041,6 +12203,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11051,9 +12214,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11064,6 +12229,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11076,6 +12242,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11086,6 +12253,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -11099,6 +12267,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.92", "start": 0, "type": "Literal", @@ -11110,6 +12279,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11117,6 +12287,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11127,9 +12298,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11140,6 +12313,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11152,6 +12326,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11162,6 +12337,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.5600000000000005", "start": 0, "type": "Literal", @@ -11175,6 +12351,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.92", "start": 0, "type": "Literal", @@ -11186,6 +12363,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11193,6 +12371,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11203,9 +12382,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11216,6 +12397,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11228,6 +12410,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11238,6 +12421,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.5600000000000005", "start": 0, "type": "Literal", @@ -11251,6 +12435,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -11262,6 +12447,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11269,6 +12455,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11279,9 +12466,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11292,6 +12481,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11304,6 +12494,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11314,6 +12505,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -11327,6 +12519,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -11338,6 +12531,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11345,6 +12539,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11355,9 +12550,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11368,6 +12565,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11380,6 +12578,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11390,6 +12589,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -11403,6 +12603,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -11414,6 +12615,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11421,6 +12623,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11431,9 +12634,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11444,6 +12649,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11456,6 +12662,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11466,6 +12673,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -11479,6 +12687,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -11490,6 +12699,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11497,6 +12707,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11507,9 +12718,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11520,6 +12733,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11532,6 +12746,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11542,6 +12757,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -11555,6 +12771,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -11566,6 +12783,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11573,6 +12791,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11583,9 +12802,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11596,6 +12817,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11608,6 +12830,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11618,6 +12841,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -11631,6 +12855,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -11642,6 +12867,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11649,6 +12875,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11659,9 +12886,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11672,6 +12901,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11684,6 +12914,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11694,6 +12925,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -11707,6 +12939,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -11718,6 +12951,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11725,6 +12959,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11735,9 +12970,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11748,6 +12985,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11760,6 +12998,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11770,6 +13009,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -11783,6 +13023,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -11794,6 +13035,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11801,6 +13043,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11811,9 +13054,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11824,6 +13069,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11836,6 +13082,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11846,6 +13093,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -11859,6 +13107,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -11870,6 +13119,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11877,6 +13127,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11887,9 +13138,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11900,6 +13153,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11912,6 +13166,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11922,6 +13177,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -11935,6 +13191,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -11946,6 +13203,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11953,6 +13211,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11963,9 +13222,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11976,6 +13237,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11988,6 +13250,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -11998,6 +13261,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -12011,6 +13275,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.83999599", "start": 0, "type": "Literal", @@ -12022,6 +13287,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12029,6 +13295,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12039,9 +13306,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12052,6 +13321,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12064,6 +13334,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12074,6 +13345,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -12087,6 +13359,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.83999599", "start": 0, "type": "Literal", @@ -12098,6 +13371,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12105,6 +13379,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12115,9 +13390,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12128,6 +13405,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12140,6 +13418,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12150,6 +13429,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -12163,6 +13443,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -12174,6 +13455,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12181,6 +13463,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12191,9 +13474,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12204,6 +13489,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12216,6 +13502,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12226,6 +13513,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -12239,6 +13527,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -12250,6 +13539,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12257,6 +13547,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12267,9 +13558,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12280,6 +13573,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12292,6 +13586,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12302,6 +13597,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -12315,6 +13611,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -12326,6 +13623,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12333,6 +13631,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12343,9 +13642,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12356,6 +13657,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12368,6 +13670,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12378,6 +13681,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -12391,6 +13695,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -12402,6 +13707,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12409,6 +13715,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12419,9 +13726,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12432,6 +13741,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12444,6 +13754,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12454,6 +13765,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -12467,6 +13779,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -12478,6 +13791,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12485,6 +13799,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12495,9 +13810,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12508,6 +13825,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12520,6 +13838,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12530,6 +13849,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -12543,6 +13863,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -12554,6 +13875,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12561,6 +13883,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12571,9 +13894,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12584,6 +13909,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12596,6 +13922,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12606,6 +13933,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -12619,6 +13947,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -12630,6 +13959,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12637,6 +13967,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12647,9 +13978,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12660,6 +13993,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12672,6 +14006,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12682,6 +14017,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -12695,6 +14031,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -12706,6 +14043,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12713,6 +14051,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12723,9 +14062,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12736,6 +14077,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12748,6 +14090,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12758,6 +14101,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -12771,6 +14115,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -12782,6 +14127,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12789,6 +14135,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12799,9 +14146,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12812,6 +14161,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12824,6 +14174,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12834,6 +14185,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -12847,6 +14199,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -12858,6 +14211,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12865,6 +14219,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12875,9 +14230,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12888,6 +14245,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12900,6 +14258,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12910,6 +14269,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -12923,6 +14283,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -12934,6 +14295,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12941,6 +14303,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12951,9 +14314,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12964,6 +14329,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12976,6 +14342,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -12986,6 +14353,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -12999,6 +14367,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -13010,6 +14379,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13017,6 +14387,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13027,9 +14398,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13040,6 +14413,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13052,6 +14426,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13062,6 +14437,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -13075,6 +14451,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -13086,6 +14463,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13093,6 +14471,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13103,9 +14482,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13116,6 +14497,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13128,6 +14510,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13138,6 +14521,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -13151,6 +14535,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -13162,6 +14547,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13169,6 +14555,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13179,9 +14566,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13192,6 +14581,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13204,6 +14594,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13214,6 +14605,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -13227,6 +14619,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -13238,6 +14631,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13245,6 +14639,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13255,9 +14650,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13268,6 +14665,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13280,6 +14678,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13290,6 +14689,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -13303,6 +14703,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -13314,6 +14715,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13321,6 +14723,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13331,9 +14734,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13344,6 +14749,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13356,6 +14762,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13366,6 +14773,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -13379,6 +14787,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.83999599", "start": 0, "type": "Literal", @@ -13390,6 +14799,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13397,6 +14807,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13407,9 +14818,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13420,6 +14833,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13432,6 +14846,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13442,6 +14857,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -13455,6 +14871,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.83999599", "start": 0, "type": "Literal", @@ -13466,6 +14883,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13473,6 +14891,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13483,9 +14902,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13496,6 +14917,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13508,6 +14930,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13518,6 +14941,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -13531,6 +14955,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -13542,6 +14967,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13549,6 +14975,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13559,9 +14986,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13572,6 +15001,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13584,6 +15014,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13594,6 +15025,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -13607,6 +15039,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -13618,6 +15051,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13625,6 +15059,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13635,9 +15070,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13648,6 +15085,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13660,6 +15098,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13670,6 +15109,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -13683,6 +15123,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -13694,6 +15135,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13701,6 +15143,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13711,9 +15154,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13724,6 +15169,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13736,6 +15182,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13746,6 +15193,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -13759,6 +15207,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -13770,6 +15219,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13777,6 +15227,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13787,9 +15238,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13800,6 +15253,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13812,6 +15266,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13822,6 +15277,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -13835,6 +15291,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -13846,6 +15303,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13853,6 +15311,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13863,9 +15322,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13876,6 +15337,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13888,6 +15350,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13898,6 +15361,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -13911,6 +15375,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -13922,6 +15387,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13929,6 +15395,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13939,9 +15406,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13952,6 +15421,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13964,6 +15434,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -13974,6 +15445,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -13987,6 +15459,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -13998,6 +15471,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14005,6 +15479,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14015,9 +15490,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14028,6 +15505,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14040,6 +15518,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14050,6 +15529,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -14063,6 +15543,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -14074,6 +15555,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14081,6 +15563,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14091,9 +15574,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14104,6 +15589,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14116,6 +15602,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14126,6 +15613,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -14139,6 +15627,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -14150,6 +15639,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14157,6 +15647,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14167,9 +15658,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14180,6 +15673,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14192,6 +15686,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14202,6 +15697,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -14215,6 +15711,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -14226,6 +15723,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14233,6 +15731,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14243,9 +15742,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14256,6 +15757,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14268,6 +15770,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14278,6 +15781,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -14291,6 +15795,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -14302,6 +15807,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14309,6 +15815,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14319,9 +15826,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14332,6 +15841,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14344,6 +15854,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14354,6 +15865,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -14367,6 +15879,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -14378,6 +15891,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14385,6 +15899,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14395,9 +15910,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14408,6 +15925,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14420,6 +15938,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14430,6 +15949,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -14443,6 +15963,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.62", "start": 0, "type": "Literal", @@ -14454,6 +15975,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14461,6 +15983,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14471,9 +15994,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14484,6 +16009,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14496,6 +16022,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14506,6 +16033,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -14519,6 +16047,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.62", "start": 0, "type": "Literal", @@ -14530,6 +16059,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14537,6 +16067,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14547,9 +16078,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14560,6 +16093,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14572,6 +16106,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14582,6 +16117,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -14595,6 +16131,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -14606,6 +16143,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14613,6 +16151,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14623,9 +16162,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14636,6 +16177,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14648,6 +16190,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14658,6 +16201,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.96", "start": 0, "type": "Literal", @@ -14671,6 +16215,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -14682,6 +16227,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14689,6 +16235,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14699,9 +16246,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14712,6 +16261,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14724,6 +16274,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14734,6 +16285,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.96", "start": 0, "type": "Literal", @@ -14747,6 +16299,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -14758,6 +16311,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14765,6 +16319,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14775,9 +16330,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14788,6 +16345,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14800,6 +16358,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14810,6 +16369,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -14823,6 +16383,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -14834,6 +16395,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14841,6 +16403,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14851,9 +16414,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14864,6 +16429,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14876,6 +16442,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14886,6 +16453,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -14899,6 +16467,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.83999999", "start": 0, "type": "Literal", @@ -14910,6 +16479,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14917,6 +16487,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14927,9 +16498,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14940,6 +16513,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14952,6 +16526,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -14962,6 +16537,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -14975,6 +16551,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.83999999", "start": 0, "type": "Literal", @@ -14986,6 +16563,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14993,6 +16571,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15003,9 +16582,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15016,6 +16597,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15028,6 +16610,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15038,6 +16621,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -15051,6 +16635,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -15062,6 +16647,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15069,6 +16655,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15079,9 +16666,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15092,6 +16681,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15104,6 +16694,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15114,6 +16705,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -15127,6 +16719,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -15138,6 +16731,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15145,6 +16739,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15155,9 +16750,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15168,6 +16765,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15180,6 +16778,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15190,6 +16789,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -15203,6 +16803,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -15214,6 +16815,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15221,6 +16823,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15231,9 +16834,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15244,6 +16849,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15256,6 +16862,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15266,6 +16873,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -15279,6 +16887,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -15290,6 +16899,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15297,6 +16907,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15307,9 +16918,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15320,6 +16933,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15332,6 +16946,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15342,6 +16957,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -15355,6 +16971,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.62", "start": 0, "type": "Literal", @@ -15366,6 +16983,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15373,6 +16991,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15383,9 +17002,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15396,6 +17017,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15408,6 +17030,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15418,6 +17041,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -15431,6 +17055,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.62", "start": 0, "type": "Literal", @@ -15442,6 +17067,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15449,6 +17075,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15459,9 +17086,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15472,6 +17101,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15484,6 +17114,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15494,6 +17125,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -15507,6 +17139,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -15518,6 +17151,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15525,6 +17159,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15535,9 +17170,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15548,6 +17185,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15560,6 +17198,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15570,6 +17209,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -15583,6 +17223,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -15594,6 +17235,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15601,6 +17243,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15611,9 +17254,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15624,6 +17269,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15636,6 +17282,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15646,6 +17293,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -15659,6 +17307,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -15670,6 +17319,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15677,6 +17327,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15687,9 +17338,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15700,6 +17353,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15712,6 +17366,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15722,6 +17377,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -15735,6 +17391,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -15746,6 +17403,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15753,6 +17411,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15763,9 +17422,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15776,6 +17437,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15788,6 +17450,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15798,6 +17461,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -15811,6 +17475,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -15822,6 +17487,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15829,6 +17495,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15839,9 +17506,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15852,6 +17521,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15864,6 +17534,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15874,6 +17545,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -15887,6 +17559,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -15898,6 +17571,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15905,6 +17579,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15915,9 +17590,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15928,6 +17605,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15940,6 +17618,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -15950,6 +17629,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -15963,6 +17643,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -15974,6 +17655,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15981,6 +17663,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15991,9 +17674,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16004,6 +17689,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16016,6 +17702,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16026,6 +17713,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -16039,6 +17727,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -16050,6 +17739,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16057,6 +17747,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16067,9 +17758,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16080,6 +17773,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16092,6 +17786,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16102,6 +17797,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -16115,6 +17811,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -16126,6 +17823,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16133,6 +17831,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16143,9 +17842,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16156,6 +17857,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16168,6 +17870,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16178,6 +17881,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -16191,6 +17895,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -16202,6 +17907,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16209,6 +17915,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16219,9 +17926,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16232,6 +17941,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16244,6 +17954,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16254,6 +17965,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -16267,6 +17979,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.62", "start": 0, "type": "Literal", @@ -16278,6 +17991,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16285,6 +17999,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16295,9 +18010,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16308,6 +18025,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16320,6 +18038,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16330,6 +18049,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -16343,6 +18063,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.62", "start": 0, "type": "Literal", @@ -16354,6 +18075,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16361,6 +18083,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16371,9 +18094,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16384,6 +18109,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16396,6 +18122,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16406,6 +18133,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -16419,6 +18147,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -16430,6 +18159,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16437,6 +18167,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16447,9 +18178,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16460,6 +18193,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16472,6 +18206,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16482,6 +18217,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -16495,6 +18231,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -16506,6 +18243,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16513,6 +18251,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16523,9 +18262,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16536,6 +18277,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16548,6 +18290,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16558,6 +18301,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -16571,6 +18315,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -16582,6 +18327,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16589,6 +18335,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16599,9 +18346,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16612,6 +18361,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16624,6 +18374,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16634,6 +18385,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -16647,6 +18399,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -16658,6 +18411,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16665,6 +18419,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16675,9 +18430,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16688,6 +18445,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16700,6 +18458,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16710,6 +18469,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -16723,6 +18483,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.83999999", "start": 0, "type": "Literal", @@ -16734,6 +18495,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16741,6 +18503,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16751,9 +18514,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16764,6 +18529,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16776,6 +18542,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16786,6 +18553,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -16799,6 +18567,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.83999999", "start": 0, "type": "Literal", @@ -16810,6 +18579,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16817,6 +18587,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16827,9 +18598,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16840,6 +18613,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16852,6 +18626,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16862,6 +18637,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -16875,6 +18651,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -16886,6 +18663,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16893,6 +18671,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16903,9 +18682,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16916,6 +18697,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16928,6 +18710,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -16938,6 +18721,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -16951,6 +18735,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -16962,6 +18747,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16969,6 +18755,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16979,9 +18766,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16992,6 +18781,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17004,6 +18794,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17014,6 +18805,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -17027,6 +18819,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -17038,6 +18831,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17045,6 +18839,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17055,9 +18850,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17068,6 +18865,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17080,6 +18878,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17090,6 +18889,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -17103,6 +18903,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -17114,6 +18915,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17121,6 +18923,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17131,9 +18934,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17144,6 +18949,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17156,6 +18962,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17166,6 +18973,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -17179,6 +18987,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.62", "start": 0, "type": "Literal", @@ -17190,6 +18999,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17197,6 +19007,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17207,9 +19018,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17220,6 +19033,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17232,6 +19046,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17242,6 +19057,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -17255,6 +19071,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.62", "start": 0, "type": "Literal", @@ -17266,6 +19083,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17273,6 +19091,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17283,9 +19102,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17296,6 +19117,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17308,6 +19130,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17318,6 +19141,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -17331,6 +19155,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -17342,6 +19167,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17349,6 +19175,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17359,9 +19186,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17372,6 +19201,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17384,6 +19214,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17394,6 +19225,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -17407,6 +19239,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -17418,6 +19251,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17425,6 +19259,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17435,9 +19270,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17448,6 +19285,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17460,6 +19298,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17470,6 +19309,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -17483,6 +19323,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.68", "start": 0, "type": "Literal", @@ -17494,6 +19335,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17501,6 +19343,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17511,9 +19354,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17524,6 +19369,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17536,6 +19382,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17546,6 +19393,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -17559,6 +19407,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -17570,6 +19419,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17577,6 +19427,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17587,9 +19438,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17600,6 +19453,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17612,6 +19466,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17622,6 +19477,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -17635,6 +19491,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -17646,6 +19503,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17653,6 +19511,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17663,9 +19522,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17676,6 +19537,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17688,6 +19550,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17698,6 +19561,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -17711,6 +19575,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -17722,6 +19587,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17729,6 +19595,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17739,9 +19606,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17752,6 +19621,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17764,6 +19634,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17774,6 +19645,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -17787,6 +19659,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -17798,6 +19671,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17805,6 +19679,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17815,9 +19690,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17828,6 +19705,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17840,6 +19718,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17850,6 +19729,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -17863,6 +19743,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -17874,6 +19755,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17881,6 +19763,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17891,9 +19774,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17904,6 +19789,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17916,6 +19802,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -17926,6 +19813,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.12", "start": 0, "type": "Literal", @@ -17939,6 +19827,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -17950,6 +19839,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17957,6 +19847,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17967,9 +19858,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17980,6 +19873,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17992,6 +19886,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18002,6 +19897,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -18015,6 +19911,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -18026,6 +19923,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18033,6 +19931,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18043,9 +19942,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18056,6 +19957,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18068,6 +19970,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18078,6 +19981,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15.959999999999999", "start": 0, "type": "Literal", @@ -18091,6 +19995,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -18102,6 +20007,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18109,6 +20015,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18119,9 +20026,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18132,6 +20041,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18144,6 +20054,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18154,6 +20065,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -18167,6 +20079,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -18178,6 +20091,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18185,6 +20099,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18195,9 +20110,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18208,6 +20125,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18220,6 +20138,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18230,6 +20149,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -18243,6 +20163,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -18254,6 +20175,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18261,6 +20183,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18271,9 +20194,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18284,6 +20209,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18296,6 +20222,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18306,6 +20233,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -18319,6 +20247,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -18330,6 +20259,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18337,6 +20267,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18347,9 +20278,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18360,6 +20293,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18372,6 +20306,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18382,6 +20317,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6.72", "start": 0, "type": "Literal", @@ -18395,6 +20331,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -18406,6 +20343,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18413,6 +20351,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18423,9 +20362,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18436,6 +20377,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18448,6 +20390,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18458,6 +20401,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -18471,6 +20415,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -18482,6 +20427,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18489,6 +20435,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18499,9 +20446,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18512,6 +20461,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18524,6 +20474,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18534,6 +20485,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7.56", "start": 0, "type": "Literal", @@ -18547,6 +20499,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -18558,6 +20511,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18565,6 +20519,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18575,9 +20530,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18588,6 +20545,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18600,6 +20558,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18610,6 +20569,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -18623,6 +20583,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -18634,6 +20595,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18641,6 +20603,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18651,9 +20614,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18664,6 +20629,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18676,6 +20642,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18686,6 +20653,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -18699,6 +20667,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -18710,6 +20679,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18717,6 +20687,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18727,9 +20698,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18740,6 +20713,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18752,6 +20726,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18762,6 +20737,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -18775,6 +20751,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -18786,6 +20763,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18793,6 +20771,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18803,9 +20782,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18816,6 +20797,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18828,6 +20810,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18838,6 +20821,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -18851,6 +20835,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -18862,6 +20847,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18869,6 +20855,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18879,9 +20866,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18892,6 +20881,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18904,6 +20894,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18914,6 +20905,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -18927,6 +20919,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -18938,6 +20931,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18945,6 +20939,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18955,9 +20950,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18968,6 +20965,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18980,6 +20978,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -18990,6 +20989,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "16.8", "start": 0, "type": "Literal", @@ -19003,6 +21003,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -19014,6 +21015,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19021,6 +21023,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19031,9 +21034,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19044,6 +21049,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19056,6 +21062,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19066,6 +21073,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -19079,6 +21087,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -19090,6 +21099,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19097,6 +21107,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19107,9 +21118,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19120,6 +21133,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19132,6 +21146,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19142,6 +21157,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.64", "start": 0, "type": "Literal", @@ -19155,6 +21171,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -19166,6 +21183,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19173,6 +21191,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19183,9 +21202,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19196,6 +21217,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19208,6 +21230,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19218,6 +21241,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -19231,6 +21255,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -19242,6 +21267,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19249,6 +21275,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19259,9 +21286,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19272,6 +21301,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19284,6 +21314,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19294,6 +21325,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "18.48", "start": 0, "type": "Literal", @@ -19307,6 +21339,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -19318,6 +21351,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19325,6 +21359,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19335,9 +21370,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19348,6 +21385,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19360,6 +21398,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19370,6 +21409,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -19383,6 +21423,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -19394,6 +21435,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19401,6 +21443,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19411,9 +21454,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19424,6 +21469,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19436,6 +21482,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19446,6 +21493,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -19459,6 +21507,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -19470,6 +21519,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19477,6 +21527,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19487,9 +21538,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19500,6 +21553,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19512,6 +21566,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19522,6 +21577,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -19535,6 +21591,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -19546,6 +21603,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19553,6 +21611,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19563,9 +21622,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19576,6 +21637,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19588,6 +21650,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19598,6 +21661,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52", "start": 0, "type": "Literal", @@ -19611,6 +21675,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -19622,6 +21687,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19629,6 +21695,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19639,9 +21706,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19652,6 +21721,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19664,6 +21734,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19674,6 +21745,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -19687,6 +21759,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -19698,6 +21771,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19705,6 +21779,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19715,9 +21790,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19728,6 +21805,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19740,6 +21818,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19750,6 +21829,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.36", "start": 0, "type": "Literal", @@ -19763,6 +21843,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -19774,6 +21855,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19781,6 +21863,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19791,9 +21874,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19804,6 +21889,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19816,6 +21902,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19826,6 +21913,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -19839,6 +21927,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -19850,6 +21939,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19857,6 +21947,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19867,9 +21958,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19880,6 +21973,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19892,6 +21986,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19902,6 +21997,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -19915,6 +22011,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -19926,6 +22023,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19933,6 +22031,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19943,9 +22042,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19956,6 +22057,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19968,6 +22070,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -19978,6 +22081,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -19991,6 +22095,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -20002,6 +22107,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20009,6 +22115,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20019,9 +22126,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20032,6 +22141,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20044,6 +22154,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20054,6 +22165,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -20067,6 +22179,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -20078,6 +22191,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20085,6 +22199,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20095,9 +22210,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20108,6 +22225,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20120,6 +22238,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20130,6 +22249,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -20143,6 +22263,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -20154,6 +22275,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20161,6 +22283,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20171,9 +22294,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20184,6 +22309,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20196,6 +22322,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20206,6 +22333,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.08", "start": 0, "type": "Literal", @@ -20219,6 +22347,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -20230,6 +22359,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20237,6 +22367,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20247,9 +22378,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20260,6 +22393,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20272,6 +22406,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20282,6 +22417,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.08", "start": 0, "type": "Literal", @@ -20295,6 +22431,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -20306,6 +22443,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20313,6 +22451,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20323,9 +22462,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20336,6 +22477,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20348,6 +22490,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20358,6 +22501,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -20371,6 +22515,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -20382,6 +22527,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20389,6 +22535,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20399,9 +22546,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20412,6 +22561,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20424,6 +22574,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20434,6 +22585,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9.24", "start": 0, "type": "Literal", @@ -20447,6 +22599,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -20458,6 +22611,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20465,6 +22619,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20475,9 +22630,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20488,6 +22645,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20500,6 +22658,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20510,6 +22669,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.4", "start": 0, "type": "Literal", @@ -20523,6 +22683,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -20534,6 +22695,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20541,6 +22703,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20551,9 +22714,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20564,6 +22729,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20576,6 +22742,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20586,6 +22753,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -20599,6 +22767,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -20610,6 +22779,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20617,6 +22787,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20627,9 +22798,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20640,6 +22813,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20652,6 +22826,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20662,6 +22837,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -20675,6 +22851,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.2", "start": 0, "type": "Literal", @@ -20686,6 +22863,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20693,6 +22871,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20703,9 +22882,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20716,6 +22897,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20728,6 +22910,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20738,6 +22921,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.6", "start": 0, "type": "Literal", @@ -20751,6 +22935,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -20762,6 +22947,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20769,6 +22955,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20779,9 +22966,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20792,6 +22981,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20804,6 +22994,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20814,6 +23005,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -20827,6 +23019,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -20838,6 +23031,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20845,6 +23039,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20855,9 +23050,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20868,6 +23065,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20880,6 +23078,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20890,6 +23089,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -20903,6 +23103,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -20914,6 +23115,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20921,6 +23123,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20931,9 +23134,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20944,6 +23149,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20956,6 +23162,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -20966,6 +23173,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.92", "start": 0, "type": "Literal", @@ -20979,6 +23187,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.88", "start": 0, "type": "Literal", @@ -20990,6 +23199,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20997,6 +23207,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21007,9 +23218,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21020,6 +23233,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21032,6 +23246,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -21042,6 +23257,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.92", "start": 0, "type": "Literal", @@ -21055,6 +23271,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -21066,6 +23283,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21073,6 +23291,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21083,9 +23302,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21096,6 +23317,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21108,6 +23330,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -21118,6 +23341,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.76", "start": 0, "type": "Literal", @@ -21131,6 +23355,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.04", "start": 0, "type": "Literal", @@ -21142,6 +23367,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21149,6 +23375,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21159,9 +23386,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21172,6 +23401,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21184,6 +23414,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -21194,6 +23425,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -21207,6 +23439,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.92", "start": 0, "type": "Literal", @@ -21218,6 +23451,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21225,6 +23459,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21235,9 +23470,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21248,6 +23485,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21260,6 +23498,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -21270,6 +23509,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -21283,6 +23523,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.92", "start": 0, "type": "Literal", @@ -21294,6 +23535,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21301,6 +23543,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21311,9 +23554,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21324,6 +23569,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21336,6 +23582,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -21346,6 +23593,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -21359,6 +23607,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -21370,6 +23619,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21377,6 +23627,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21387,9 +23638,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21400,6 +23653,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21412,6 +23666,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -21422,6 +23677,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.28", "start": 0, "type": "Literal", @@ -21435,6 +23691,7 @@ description: Result of parsing kittycad_svg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.44", "start": 0, "type": "Literal", @@ -21446,6 +23703,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21453,6 +23711,7 @@ description: Result of parsing kittycad_svg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21463,9 +23722,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21476,19 +23737,23 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -21499,12 +23764,14 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -21517,6 +23784,7 @@ description: Result of parsing kittycad_svg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -21524,6 +23792,7 @@ description: Result of parsing kittycad_svg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -21539,9 +23808,11 @@ description: Result of parsing kittycad_svg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -21552,6 +23823,7 @@ description: Result of parsing kittycad_svg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21560,12 +23832,14 @@ description: Result of parsing kittycad_svg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21579,6 +23853,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21592,6 +23867,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21605,6 +23881,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21618,6 +23895,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21631,6 +23909,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21644,6 +23923,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21657,6 +23937,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21670,6 +23951,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21683,6 +23965,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21696,6 +23979,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21709,6 +23993,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21722,6 +24007,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21735,6 +24021,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21748,6 +24035,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21761,6 +24049,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21774,6 +24063,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21787,6 +24077,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21800,6 +24091,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21813,6 +24105,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21826,6 +24119,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21839,6 +24133,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21852,6 +24147,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21865,6 +24161,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21878,6 +24175,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21891,6 +24189,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21904,6 +24203,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21917,6 +24217,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21930,6 +24231,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21943,6 +24245,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21956,6 +24259,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21969,6 +24273,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21982,6 +24287,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -21995,6 +24301,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22008,6 +24315,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22021,6 +24329,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22034,6 +24343,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22047,6 +24357,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22060,6 +24371,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22073,6 +24385,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22086,6 +24399,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22099,6 +24413,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22112,6 +24427,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22125,6 +24441,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22138,6 +24455,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22151,6 +24469,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22164,6 +24483,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22177,6 +24497,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22190,6 +24511,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22203,6 +24525,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22216,6 +24539,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22229,6 +24553,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22240,6 +24565,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22253,6 +24579,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22266,6 +24593,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22279,6 +24607,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22292,6 +24621,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22305,6 +24635,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22318,6 +24649,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22331,6 +24663,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22344,6 +24677,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22357,6 +24691,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22370,6 +24705,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22383,6 +24719,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22396,6 +24733,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22409,6 +24747,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22422,6 +24761,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22435,6 +24775,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22448,6 +24789,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22461,6 +24803,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22474,6 +24817,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22487,6 +24831,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22500,6 +24845,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22513,6 +24859,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22526,6 +24873,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22539,6 +24887,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22552,6 +24901,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22565,6 +24915,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22578,6 +24929,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22591,6 +24943,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22604,6 +24957,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22617,6 +24971,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22630,6 +24985,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22643,6 +24999,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22656,6 +25013,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22669,6 +25027,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22682,6 +25041,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22695,6 +25055,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22708,6 +25069,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22721,6 +25083,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22734,6 +25097,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22747,6 +25111,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22760,6 +25125,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22773,6 +25139,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22786,6 +25153,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22799,6 +25167,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22812,6 +25181,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22825,6 +25195,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22838,6 +25209,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22851,6 +25223,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22864,6 +25237,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22877,6 +25251,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22890,6 +25265,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22903,6 +25279,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22916,6 +25293,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22929,6 +25307,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22942,6 +25321,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22955,6 +25335,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22968,6 +25349,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22981,6 +25363,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -22994,6 +25377,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23007,6 +25391,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23020,6 +25405,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23033,6 +25419,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23046,6 +25433,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23059,6 +25447,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23072,6 +25461,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23085,6 +25475,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23098,6 +25489,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23111,6 +25503,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23124,6 +25517,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23137,6 +25531,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23150,6 +25545,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23163,6 +25559,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23176,6 +25573,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23189,6 +25587,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23202,6 +25601,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23215,6 +25615,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23228,6 +25629,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23241,6 +25643,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23254,6 +25657,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23267,6 +25671,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23280,6 +25685,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23293,6 +25699,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23306,6 +25713,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23319,6 +25727,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23332,6 +25741,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23345,6 +25755,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23358,6 +25769,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23371,6 +25783,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23384,6 +25797,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23397,6 +25811,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23410,6 +25825,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23423,6 +25839,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23436,6 +25853,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23449,6 +25867,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23462,6 +25881,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23475,6 +25895,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23488,6 +25909,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23501,6 +25923,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23514,6 +25937,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23527,6 +25951,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23540,6 +25965,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23553,6 +25979,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23566,6 +25993,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23579,6 +26007,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23592,6 +26021,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23605,6 +26035,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23618,6 +26049,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23631,6 +26063,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23644,6 +26077,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23657,6 +26091,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23670,6 +26105,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23683,6 +26119,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23696,6 +26133,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23709,6 +26147,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23722,6 +26161,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23735,6 +26175,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23748,6 +26189,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23761,6 +26203,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23774,6 +26217,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23787,6 +26231,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23800,6 +26245,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23813,6 +26259,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23826,6 +26273,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23839,6 +26287,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23852,6 +26301,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23865,6 +26315,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23878,6 +26329,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23891,6 +26343,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23904,6 +26357,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23917,6 +26371,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23930,6 +26385,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23943,6 +26399,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23956,6 +26413,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23969,6 +26427,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23982,6 +26441,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -23995,6 +26455,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24008,6 +26469,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24021,6 +26483,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24034,6 +26497,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24047,6 +26511,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24060,6 +26525,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24073,6 +26539,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24086,6 +26553,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24099,6 +26567,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24112,6 +26581,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24125,6 +26595,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24138,6 +26609,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24151,6 +26623,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24164,6 +26637,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24177,6 +26651,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24190,6 +26665,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24203,6 +26679,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24216,6 +26693,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24229,6 +26707,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24242,6 +26721,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24255,6 +26735,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24268,6 +26749,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24281,6 +26763,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24294,6 +26777,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24307,6 +26791,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24320,6 +26805,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24333,6 +26819,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24346,6 +26833,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24359,6 +26847,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24372,6 +26861,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24385,6 +26875,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24398,6 +26889,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24411,6 +26903,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24424,6 +26917,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24437,6 +26931,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24450,6 +26945,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24463,6 +26959,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24476,6 +26973,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24489,6 +26987,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24502,6 +27001,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24515,6 +27015,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24528,6 +27029,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24541,6 +27043,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24554,6 +27057,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24567,6 +27071,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24580,6 +27085,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24593,6 +27099,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24606,6 +27113,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24619,6 +27127,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24632,6 +27141,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24645,6 +27155,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24658,6 +27169,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24671,6 +27183,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24684,6 +27197,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24697,6 +27211,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24710,6 +27225,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24723,6 +27239,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24736,6 +27253,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24749,6 +27267,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24762,6 +27281,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24775,6 +27295,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24788,6 +27309,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24801,6 +27323,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24814,6 +27337,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24827,6 +27351,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24840,6 +27365,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24853,6 +27379,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24866,6 +27393,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24879,6 +27407,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24892,6 +27421,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24905,6 +27435,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24918,6 +27449,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24931,6 +27463,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24944,6 +27477,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24957,6 +27491,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24970,6 +27505,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24983,6 +27519,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -24996,6 +27533,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25009,6 +27547,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25022,6 +27561,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25035,6 +27575,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25048,6 +27589,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25061,6 +27603,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25074,6 +27617,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25087,6 +27631,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25100,6 +27645,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25113,6 +27659,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25126,6 +27673,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25139,6 +27687,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25152,6 +27701,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25165,6 +27715,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25178,6 +27729,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25191,6 +27743,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25204,6 +27757,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25217,6 +27771,7 @@ description: Result of parsing kittycad_svg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -25233,11 +27788,13 @@ description: Result of parsing kittycad_svg.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -25245,6 +27802,7 @@ description: Result of parsing kittycad_svg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/kw_fn/ast.snap b/rust/kcl-lib/tests/kw_fn/ast.snap index 357e9b9f9..0308ea0c8 100644 --- a/rust/kcl-lib/tests/kw_fn/ast.snap +++ b/rust/kcl-lib/tests/kw_fn/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing kw_fn.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "increment", "start": 0, "type": "Identifier" @@ -28,9 +29,11 @@ description: Result of parsing kw_fn.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -40,10 +43,12 @@ description: Result of parsing kw_fn.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -59,6 +64,7 @@ description: Result of parsing kw_fn.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -66,16 +72,19 @@ description: Result of parsing kw_fn.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -87,11 +96,13 @@ description: Result of parsing kw_fn.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -104,6 +115,7 @@ description: Result of parsing kw_fn.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "add", "start": 0, "type": "Identifier" @@ -119,9 +131,11 @@ description: Result of parsing kw_fn.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -131,14 +145,17 @@ description: Result of parsing kw_fn.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "delta", "start": 0, "type": "Identifier" @@ -154,6 +171,7 @@ description: Result of parsing kw_fn.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -161,16 +179,19 @@ description: Result of parsing kw_fn.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -182,6 +203,7 @@ description: Result of parsing kw_fn.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "delta", "start": 0, "type": "Identifier" @@ -192,11 +214,13 @@ description: Result of parsing kw_fn.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -209,18 +233,22 @@ description: Result of parsing kw_fn.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "increment", "start": 0, "type": "Identifier" @@ -231,12 +259,14 @@ description: Result of parsing kw_fn.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -247,11 +277,13 @@ description: Result of parsing kw_fn.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -264,6 +296,7 @@ description: Result of parsing kw_fn.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier" @@ -275,6 +308,7 @@ description: Result of parsing kw_fn.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "delta", "start": 0, "type": "Identifier" @@ -282,6 +316,7 @@ description: Result of parsing kw_fn.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -297,9 +332,11 @@ description: Result of parsing kw_fn.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "add", "start": 0, "type": "Identifier" @@ -310,12 +347,14 @@ description: Result of parsing kw_fn.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -326,11 +365,13 @@ description: Result of parsing kw_fn.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -338,12 +379,14 @@ description: Result of parsing kw_fn.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -355,6 +398,7 @@ description: Result of parsing kw_fn.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kw_fn_too_few_args/ast.snap b/rust/kcl-lib/tests/kw_fn_too_few_args/ast.snap index cb8ef299b..256844ed5 100644 --- a/rust/kcl-lib/tests/kw_fn_too_few_args/ast.snap +++ b/rust/kcl-lib/tests/kw_fn_too_few_args/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing kw_fn_too_few_args.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "add", "start": 0, "type": "Identifier" @@ -28,9 +29,11 @@ description: Result of parsing kw_fn_too_few_args.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -40,14 +43,17 @@ description: Result of parsing kw_fn_too_few_args.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -63,6 +69,7 @@ description: Result of parsing kw_fn_too_few_args.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -70,16 +77,19 @@ description: Result of parsing kw_fn_too_few_args.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -90,6 +100,7 @@ description: Result of parsing kw_fn_too_few_args.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -100,11 +111,13 @@ description: Result of parsing kw_fn_too_few_args.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -117,6 +130,7 @@ description: Result of parsing kw_fn_too_few_args.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "three", "start": 0, "type": "Identifier" @@ -128,6 +142,7 @@ description: Result of parsing kw_fn_too_few_args.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -135,6 +150,7 @@ description: Result of parsing kw_fn_too_few_args.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -150,9 +166,11 @@ description: Result of parsing kw_fn_too_few_args.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "add", "start": 0, "type": "Identifier" @@ -163,16 +181,19 @@ description: Result of parsing kw_fn_too_few_args.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -180,12 +201,14 @@ description: Result of parsing kw_fn_too_few_args.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kw_fn_unlabeled_but_has_label/ast.snap b/rust/kcl-lib/tests/kw_fn_unlabeled_but_has_label/ast.snap index 87a13065d..2e66f6330 100644 --- a/rust/kcl-lib/tests/kw_fn_unlabeled_but_has_label/ast.snap +++ b/rust/kcl-lib/tests/kw_fn_unlabeled_but_has_label/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "add", "start": 0, "type": "Identifier" @@ -28,9 +29,11 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -40,10 +43,12 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -59,6 +64,7 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -66,16 +72,19 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -87,11 +96,13 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -104,6 +115,7 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier" @@ -115,6 +127,7 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -137,9 +151,11 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "add", "start": 0, "type": "Identifier" @@ -150,16 +166,19 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -167,12 +186,14 @@ description: Result of parsing kw_fn_unlabeled_but_has_label.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/kw_fn_with_defaults/ast.snap b/rust/kcl-lib/tests/kw_fn_with_defaults/ast.snap index 75d03e8a5..344f280a0 100644 --- a/rust/kcl-lib/tests/kw_fn_with_defaults/ast.snap +++ b/rust/kcl-lib/tests/kw_fn_with_defaults/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing kw_fn_with_defaults.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "increment", "start": 0, "type": "Identifier" @@ -28,9 +29,11 @@ description: Result of parsing kw_fn_with_defaults.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -40,14 +43,17 @@ description: Result of parsing kw_fn_with_defaults.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "by", "start": 0, "type": "Identifier" @@ -63,6 +69,7 @@ description: Result of parsing kw_fn_with_defaults.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -70,16 +77,19 @@ description: Result of parsing kw_fn_with_defaults.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -91,6 +101,7 @@ description: Result of parsing kw_fn_with_defaults.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "by", "start": 0, "type": "Identifier" @@ -98,6 +109,7 @@ description: Result of parsing kw_fn_with_defaults.kcl "default_value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -113,11 +125,13 @@ description: Result of parsing kw_fn_with_defaults.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -130,18 +144,22 @@ description: Result of parsing kw_fn_with_defaults.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "two", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "increment", "start": 0, "type": "Identifier" @@ -152,12 +170,14 @@ description: Result of parsing kw_fn_with_defaults.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -168,11 +188,13 @@ description: Result of parsing kw_fn_with_defaults.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -185,6 +207,7 @@ description: Result of parsing kw_fn_with_defaults.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "twentyOne", "start": 0, "type": "Identifier" @@ -196,6 +219,7 @@ description: Result of parsing kw_fn_with_defaults.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "by", "start": 0, "type": "Identifier" @@ -203,6 +227,7 @@ description: Result of parsing kw_fn_with_defaults.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -218,9 +243,11 @@ description: Result of parsing kw_fn_with_defaults.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "increment", "start": 0, "type": "Identifier" @@ -231,12 +258,14 @@ description: Result of parsing kw_fn_with_defaults.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -247,11 +276,13 @@ description: Result of parsing kw_fn_with_defaults.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -259,12 +290,14 @@ description: Result of parsing kw_fn_with_defaults.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/linear_pattern3d_a_pattern/ast.snap b/rust/kcl-lib/tests/linear_pattern3d_a_pattern/ast.snap index 1252858e9..03a93b4e5 100644 --- a/rust/kcl-lib/tests/linear_pattern3d_a_pattern/ast.snap +++ b/rust/kcl-lib/tests/linear_pattern3d_a_pattern/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exampleSketch", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,9 +193,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -188,6 +208,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -200,6 +221,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -210,6 +232,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -222,6 +245,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -233,6 +257,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -243,9 +268,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -256,6 +283,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -268,6 +296,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -278,6 +307,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -291,6 +321,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -302,6 +333,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -309,6 +341,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -319,9 +352,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -332,19 +367,23 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -355,12 +394,14 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -373,6 +414,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -380,6 +422,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -395,9 +438,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -408,6 +453,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -416,15 +462,18 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -437,6 +486,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pattn1", "start": 0, "type": "Identifier" @@ -448,6 +498,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -458,6 +509,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -470,6 +522,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -482,6 +535,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -493,6 +547,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -503,6 +558,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -510,6 +566,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -525,6 +582,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -532,6 +590,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -547,9 +606,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -560,6 +621,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -567,9 +629,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exampleSketch", "start": 0, "type": "Identifier" @@ -580,11 +644,13 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -597,6 +663,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pattn2", "start": 0, "type": "Identifier" @@ -608,6 +675,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -618,6 +686,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -630,6 +699,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -642,6 +712,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -653,6 +724,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -663,6 +735,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -670,6 +743,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -685,6 +759,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -692,6 +767,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -707,9 +783,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -720,6 +798,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -727,9 +806,11 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pattn1", "start": 0, "type": "Identifier" @@ -740,11 +821,13 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -752,12 +835,14 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -769,6 +854,7 @@ description: Result of parsing linear_pattern3d_a_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/loop_tag/ast.snap b/rust/kcl-lib/tests/loop_tag/ast.snap index 1a893a3ce..9e4c20096 100644 --- a/rust/kcl-lib/tests/loop_tag/ast.snap +++ b/rust/kcl-lib/tests/loop_tag/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing loop_tag.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing loop_tag.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define constants for the cylinder" ], @@ -49,6 +53,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing loop_tag.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing loop_tag.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numSides", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing loop_tag.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing loop_tag.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleIncrement", "start": 0, "type": "Identifier" @@ -125,6 +138,7 @@ description: Result of parsing loop_tag.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -134,14 +148,17 @@ description: Result of parsing loop_tag.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numSides", "start": 0, "type": "Identifier" @@ -155,11 +172,13 @@ description: Result of parsing loop_tag.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -172,6 +191,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "calculatePoint", "start": 0, "type": "Identifier" @@ -187,6 +207,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -198,9 +219,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "index", "start": 0, "type": "Identifier" @@ -210,14 +233,17 @@ description: Result of parsing loop_tag.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleIncrement", "start": 0, "type": "Identifier" @@ -231,11 +257,13 @@ description: Result of parsing loop_tag.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -248,6 +276,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -259,9 +288,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -271,15 +302,19 @@ description: Result of parsing loop_tag.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -290,6 +325,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -297,9 +333,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -314,11 +352,13 @@ description: Result of parsing loop_tag.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -331,6 +371,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -342,9 +383,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -354,15 +397,19 @@ description: Result of parsing loop_tag.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -373,6 +420,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -380,9 +428,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -397,11 +447,13 @@ description: Result of parsing loop_tag.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -414,9 +466,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -430,9 +484,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -444,12 +500,14 @@ description: Result of parsing loop_tag.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -457,16 +515,19 @@ description: Result of parsing loop_tag.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "index", "start": 0, "type": "Identifier" @@ -478,11 +539,13 @@ description: Result of parsing loop_tag.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -500,6 +563,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "initialSketch", "start": 0, "type": "Identifier" @@ -507,13 +571,16 @@ description: Result of parsing loop_tag.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -524,6 +591,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -531,9 +599,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -551,18 +621,22 @@ description: Result of parsing loop_tag.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "calculatePoint", "start": 0, "type": "Identifier" @@ -573,12 +647,14 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -595,9 +671,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -608,6 +686,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -616,12 +695,14 @@ description: Result of parsing loop_tag.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -638,11 +719,13 @@ description: Result of parsing loop_tag.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -660,6 +743,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "finalSketch", "start": 0, "type": "Identifier" @@ -671,6 +755,7 @@ description: Result of parsing loop_tag.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "initial", "start": 0, "type": "Identifier" @@ -679,9 +764,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "initialSketch", "start": 0, "type": "Identifier" @@ -697,6 +784,7 @@ description: Result of parsing loop_tag.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -712,18 +800,22 @@ description: Result of parsing loop_tag.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "calculatePoint", "start": 0, "type": "Identifier" @@ -734,6 +826,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -741,9 +834,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "index", "start": 0, "type": "Identifier" @@ -760,6 +855,7 @@ description: Result of parsing loop_tag.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -767,6 +863,7 @@ description: Result of parsing loop_tag.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -778,9 +875,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -791,6 +890,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -798,9 +898,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "accum", "start": 0, "type": "Identifier" @@ -813,6 +915,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -820,16 +923,19 @@ description: Result of parsing loop_tag.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "index", "start": 0, "type": "Identifier" @@ -841,6 +947,7 @@ description: Result of parsing loop_tag.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "accum", "start": 0, "type": "Identifier" @@ -857,9 +964,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "reduce", "start": 0, "type": "Identifier" @@ -870,6 +979,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -883,9 +993,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numSides", "start": 0, "type": "Identifier" @@ -895,10 +1007,12 @@ description: Result of parsing loop_tag.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -913,10 +1027,12 @@ description: Result of parsing loop_tag.kcl "type": "BinaryExpression" }, "endInclusive": true, + "moduleId": 0, "start": 0, "startElement": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -930,11 +1046,13 @@ description: Result of parsing loop_tag.kcl "type": "ArrayRangeExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -947,18 +1065,22 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "closedSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -969,6 +1091,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -976,9 +1099,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "finalSketch", "start": 0, "type": "Identifier" @@ -989,11 +1114,13 @@ description: Result of parsing loop_tag.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1011,6 +1138,7 @@ description: Result of parsing loop_tag.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cylinder", "start": 0, "type": "Identifier" @@ -1022,6 +1150,7 @@ description: Result of parsing loop_tag.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1030,9 +1159,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1048,9 +1179,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1061,6 +1194,7 @@ description: Result of parsing loop_tag.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1068,9 +1202,11 @@ description: Result of parsing loop_tag.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "closedSketch", "start": 0, "type": "Identifier" @@ -1081,11 +1217,13 @@ description: Result of parsing loop_tag.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1102,9 +1240,11 @@ description: Result of parsing loop_tag.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1116,19 +1256,23 @@ description: Result of parsing loop_tag.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -1144,12 +1288,14 @@ description: Result of parsing loop_tag.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1161,6 +1307,7 @@ description: Result of parsing loop_tag.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1172,6 +1319,7 @@ description: Result of parsing loop_tag.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1183,6 +1331,7 @@ description: Result of parsing loop_tag.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1194,6 +1343,7 @@ description: Result of parsing loop_tag.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1203,6 +1353,7 @@ description: Result of parsing loop_tag.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/loop_tag/program_memory.snap b/rust/kcl-lib/tests/loop_tag/program_memory.snap index a9ba234e4..00cac5927 100644 --- a/rust/kcl-lib/tests/loop_tag/program_memory.snap +++ b/rust/kcl-lib/tests/loop_tag/program_memory.snap @@ -38,6 +38,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -63,6 +64,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -88,6 +90,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -113,6 +116,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -138,6 +142,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -163,6 +168,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -188,6 +194,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -213,6 +220,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -238,6 +246,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -263,6 +272,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -288,6 +298,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -313,6 +324,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -338,6 +350,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -363,6 +376,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -388,6 +402,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -413,6 +428,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -438,6 +454,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -463,6 +480,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -488,6 +506,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -513,6 +532,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -538,6 +558,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -563,6 +584,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -588,6 +610,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -613,6 +636,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -638,6 +662,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -663,6 +688,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -688,6 +714,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -713,6 +740,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -738,6 +766,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -763,6 +792,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -788,6 +818,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -813,6 +844,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -838,6 +870,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -863,6 +896,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -888,6 +922,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -913,6 +948,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -938,6 +974,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -963,6 +1000,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -988,6 +1026,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1013,6 +1052,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1038,6 +1078,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1063,6 +1104,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1088,6 +1130,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1113,6 +1156,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1138,6 +1182,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1163,6 +1208,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1188,6 +1234,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1213,6 +1260,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1238,6 +1286,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1346,6 +1395,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1359,6 +1409,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1372,6 +1423,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1385,6 +1437,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1398,6 +1451,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1411,6 +1465,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1424,6 +1479,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1437,6 +1493,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1450,6 +1507,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1463,6 +1521,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1476,6 +1535,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1489,6 +1549,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1502,6 +1563,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1515,6 +1577,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1528,6 +1591,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1541,6 +1605,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1554,6 +1619,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1567,6 +1633,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1580,6 +1647,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1593,6 +1661,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1606,6 +1675,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1619,6 +1689,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1632,6 +1703,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1645,6 +1717,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1658,6 +1731,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1671,6 +1745,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1684,6 +1759,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1697,6 +1773,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1710,6 +1787,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1723,6 +1801,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1736,6 +1815,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1749,6 +1829,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1762,6 +1843,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1775,6 +1857,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1788,6 +1871,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1801,6 +1885,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1814,6 +1899,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1827,6 +1913,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1840,6 +1927,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1853,6 +1941,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1866,6 +1955,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1879,6 +1969,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1892,6 +1983,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1905,6 +1997,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1918,6 +2011,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1931,6 +2025,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1944,6 +2039,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1957,6 +2053,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -1970,6 +2067,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2000,6 +2098,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2025,6 +2124,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2050,6 +2150,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2075,6 +2176,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2100,6 +2202,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2125,6 +2228,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2150,6 +2254,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2175,6 +2280,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2200,6 +2306,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2225,6 +2332,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2250,6 +2358,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2275,6 +2384,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2300,6 +2410,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2325,6 +2436,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2350,6 +2462,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2375,6 +2488,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2400,6 +2514,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2425,6 +2540,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2450,6 +2566,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2475,6 +2592,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2500,6 +2618,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2525,6 +2644,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2550,6 +2670,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2575,6 +2696,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2600,6 +2722,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2625,6 +2748,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2650,6 +2774,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2675,6 +2800,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2700,6 +2826,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2725,6 +2852,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2750,6 +2878,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2775,6 +2904,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2800,6 +2930,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2825,6 +2956,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2850,6 +2982,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2875,6 +3008,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2900,6 +3034,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2925,6 +3060,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2950,6 +3086,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -2975,6 +3112,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3000,6 +3138,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3025,6 +3164,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3050,6 +3190,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3075,6 +3216,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3100,6 +3242,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3125,6 +3268,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3150,6 +3294,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3175,6 +3320,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3200,6 +3346,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3320,6 +3467,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3345,6 +3493,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3370,6 +3519,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3395,6 +3545,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3420,6 +3571,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3445,6 +3597,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3470,6 +3623,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3495,6 +3649,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3520,6 +3675,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3545,6 +3701,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3570,6 +3727,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3595,6 +3753,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3620,6 +3779,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3645,6 +3805,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3670,6 +3831,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3695,6 +3857,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3720,6 +3883,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3745,6 +3909,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3770,6 +3935,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3795,6 +3961,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3820,6 +3987,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3845,6 +4013,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3870,6 +4039,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3895,6 +4065,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3920,6 +4091,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3945,6 +4117,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3970,6 +4143,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -3995,6 +4169,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4020,6 +4195,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4045,6 +4221,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4070,6 +4247,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4095,6 +4273,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4120,6 +4299,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4145,6 +4325,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4170,6 +4351,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4195,6 +4377,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4220,6 +4403,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4245,6 +4429,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4270,6 +4455,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4295,6 +4481,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4320,6 +4507,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4345,6 +4533,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4370,6 +4559,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4395,6 +4585,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4420,6 +4611,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4445,6 +4637,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4470,6 +4663,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4495,6 +4689,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" @@ -4520,6 +4715,7 @@ description: Variables in memory after executing loop_tag.kcl "tag": { "commentStart": 970, "end": 985, + "moduleId": 0, "start": 970, "type": "TagDeclarator", "value": "problematicTag" diff --git a/rust/kcl-lib/tests/mike_stress_test/ast.snap b/rust/kcl-lib/tests/mike_stress_test/ast.snap index ee922db89..a0b36cce8 100644 --- a/rust/kcl-lib/tests/mike_stress_test/ast.snap +++ b/rust/kcl-lib/tests/mike_stress_test/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing mike_stress_test.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing mike_stress_test.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -143,6 +158,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -162,6 +179,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -173,6 +191,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -183,9 +202,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -196,6 +217,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -208,6 +230,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -219,6 +242,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -230,6 +254,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -238,6 +263,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -249,6 +275,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -259,9 +286,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -272,6 +301,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -284,6 +314,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -295,6 +326,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -306,6 +338,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -314,6 +347,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -325,6 +359,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -335,9 +370,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -348,6 +385,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -360,6 +398,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -371,6 +410,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -382,6 +422,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -391,6 +432,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -402,6 +444,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -409,6 +452,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -419,9 +463,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -432,6 +478,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -444,6 +491,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -454,6 +502,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -466,6 +515,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -477,6 +527,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -487,9 +538,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -500,6 +553,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -512,6 +566,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -522,6 +577,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -534,6 +590,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -545,6 +602,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -555,9 +613,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -568,6 +628,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -580,6 +641,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -591,6 +653,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -602,6 +665,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -610,6 +674,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -621,6 +686,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -631,9 +697,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -644,6 +712,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -656,6 +725,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -667,6 +737,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -678,6 +749,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -687,6 +759,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -698,6 +771,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -705,6 +779,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -715,9 +790,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -728,6 +805,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -740,6 +818,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -750,6 +829,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -763,6 +843,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -774,6 +855,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -781,6 +863,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -791,9 +874,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -804,6 +889,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -816,6 +902,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -826,6 +913,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -839,6 +927,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -850,6 +939,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -857,6 +947,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -867,9 +958,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -880,6 +973,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -892,6 +986,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -902,6 +997,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -915,6 +1011,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -926,6 +1023,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -933,6 +1031,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -943,9 +1042,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -956,6 +1057,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -968,6 +1070,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -979,6 +1082,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -990,6 +1094,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -998,6 +1103,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -1009,6 +1115,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1019,9 +1126,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1032,6 +1141,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1044,6 +1154,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1054,6 +1165,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -1066,6 +1178,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -1077,6 +1190,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1087,9 +1201,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1100,6 +1216,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1112,6 +1229,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1123,6 +1241,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -1134,6 +1253,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1142,6 +1262,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -1153,6 +1274,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1163,9 +1285,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1176,6 +1300,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1188,6 +1313,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1199,6 +1325,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -1210,6 +1337,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1219,6 +1347,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -1230,6 +1359,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1237,6 +1367,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1247,9 +1378,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1260,6 +1393,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1272,6 +1406,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1283,6 +1418,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -1294,6 +1430,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1303,6 +1440,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -1314,6 +1452,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1321,6 +1460,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1331,9 +1471,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1344,6 +1486,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1356,6 +1499,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1366,6 +1510,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -1378,6 +1523,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -1389,6 +1535,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1399,9 +1546,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1412,6 +1561,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1424,6 +1574,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1434,6 +1585,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -1447,6 +1599,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -1458,6 +1611,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1465,6 +1619,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1475,9 +1630,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1488,6 +1645,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1500,6 +1658,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1510,6 +1669,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -1522,6 +1682,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -1533,6 +1694,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1543,9 +1705,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1556,6 +1720,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1568,6 +1733,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1578,6 +1744,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -1591,6 +1758,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -1602,6 +1770,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1609,6 +1778,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1619,9 +1789,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1632,6 +1804,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1644,6 +1817,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1654,6 +1828,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -1666,6 +1841,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -1677,6 +1853,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1687,9 +1864,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1700,6 +1879,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1712,6 +1892,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1722,6 +1903,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -1734,6 +1916,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -1745,6 +1928,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1755,9 +1939,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1768,6 +1954,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1780,6 +1967,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1790,6 +1978,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -1802,6 +1991,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -1813,6 +2003,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1823,9 +2014,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1836,6 +2029,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1848,6 +2042,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1859,6 +2054,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -1870,6 +2066,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1879,6 +2076,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -1890,6 +2088,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1897,6 +2096,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1907,9 +2107,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1920,6 +2122,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1932,6 +2135,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1942,6 +2146,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -1955,6 +2160,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -1966,6 +2172,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1973,6 +2180,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1983,9 +2191,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1996,6 +2206,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2008,6 +2219,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2019,6 +2231,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -2030,6 +2243,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2039,6 +2253,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -2050,6 +2265,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2057,6 +2273,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2067,9 +2284,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2080,6 +2299,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2092,6 +2312,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2102,6 +2323,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -2115,6 +2337,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -2126,6 +2349,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2133,6 +2357,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2143,9 +2368,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2156,6 +2383,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2168,6 +2396,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2178,6 +2407,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -2191,6 +2421,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -2202,6 +2433,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2209,6 +2441,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2219,9 +2452,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2232,6 +2467,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2244,6 +2480,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2254,6 +2491,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -2267,6 +2505,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -2278,6 +2517,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2285,6 +2525,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2295,9 +2536,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2308,6 +2551,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2320,6 +2564,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2331,6 +2576,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -2342,6 +2588,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2351,6 +2598,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -2362,6 +2610,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2369,6 +2618,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2379,9 +2629,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2392,6 +2644,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2404,6 +2657,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2414,6 +2668,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -2426,6 +2681,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -2437,6 +2693,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2447,9 +2704,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2460,6 +2719,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2472,6 +2732,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2482,6 +2743,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -2494,6 +2756,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -2505,6 +2768,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2515,9 +2779,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2528,6 +2794,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2540,6 +2807,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2551,6 +2819,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -2562,6 +2831,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2570,6 +2840,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -2581,6 +2852,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2591,9 +2863,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2604,6 +2878,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2616,6 +2891,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2627,6 +2903,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -2638,6 +2915,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2647,6 +2925,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -2658,6 +2937,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2665,6 +2945,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2675,9 +2956,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2688,6 +2971,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2700,6 +2984,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2710,6 +2995,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -2723,6 +3009,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -2734,6 +3021,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2741,6 +3029,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2751,9 +3040,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2764,6 +3055,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2776,6 +3068,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2787,6 +3080,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -2798,6 +3092,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2806,6 +3101,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -2817,6 +3113,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2827,9 +3124,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2840,6 +3139,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2852,6 +3152,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2862,6 +3163,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -2874,6 +3176,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -2885,6 +3188,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2895,9 +3199,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2908,6 +3214,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2920,6 +3227,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2931,6 +3239,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -2942,6 +3251,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2951,6 +3261,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -2962,6 +3273,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2969,6 +3281,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2979,9 +3292,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2992,6 +3307,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3004,6 +3320,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3014,6 +3331,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -3027,6 +3345,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -3038,6 +3357,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3045,6 +3365,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3055,9 +3376,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3068,6 +3391,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3080,6 +3404,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3090,6 +3415,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -3103,6 +3429,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -3114,6 +3441,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3121,6 +3449,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3131,9 +3460,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3144,6 +3475,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3156,6 +3488,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3166,6 +3499,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -3178,6 +3512,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -3189,6 +3524,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3199,9 +3535,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3212,6 +3550,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3224,6 +3563,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3235,6 +3575,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -3246,6 +3587,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3254,6 +3596,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -3265,6 +3608,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3275,9 +3619,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3288,6 +3634,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3300,6 +3647,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3310,6 +3658,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -3322,6 +3671,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -3333,6 +3683,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3343,9 +3694,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3356,6 +3709,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3368,6 +3722,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3378,6 +3733,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -3390,6 +3746,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -3401,6 +3758,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3411,9 +3769,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3424,6 +3784,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3436,6 +3797,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3447,6 +3809,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -3458,6 +3821,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3467,6 +3831,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -3478,6 +3843,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3485,6 +3851,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3495,9 +3862,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3508,6 +3877,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3520,6 +3890,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3530,6 +3901,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -3543,6 +3915,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -3554,6 +3927,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3561,6 +3935,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3571,9 +3946,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3584,6 +3961,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3596,6 +3974,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3607,6 +3986,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -3618,6 +3998,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3627,6 +4008,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -3638,6 +4020,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3645,6 +4028,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3655,9 +4039,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3668,6 +4054,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3680,6 +4067,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3691,6 +4079,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -3702,6 +4091,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3711,6 +4101,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -3722,6 +4113,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3729,6 +4121,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3739,9 +4132,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3752,6 +4147,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3764,6 +4160,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3775,6 +4172,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -3786,6 +4184,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3794,6 +4193,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -3805,6 +4205,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3815,9 +4216,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3828,6 +4231,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3840,6 +4244,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3851,6 +4256,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -3862,6 +4268,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3871,6 +4278,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -3882,6 +4290,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3889,6 +4298,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3899,9 +4309,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3912,6 +4324,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3924,6 +4337,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -3934,6 +4348,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -3947,6 +4362,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -3958,6 +4374,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3965,6 +4382,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3975,9 +4393,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3988,6 +4408,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4000,6 +4421,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4011,6 +4433,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -4022,6 +4445,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4030,6 +4454,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -4041,6 +4466,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4051,9 +4477,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4064,6 +4492,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4076,6 +4505,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4087,6 +4517,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -4098,6 +4529,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4106,6 +4538,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -4117,6 +4550,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4127,9 +4561,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4140,6 +4576,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4152,6 +4589,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4163,6 +4601,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -4174,6 +4613,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4183,6 +4623,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -4194,6 +4635,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4201,6 +4643,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4211,9 +4654,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4224,6 +4669,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4236,6 +4682,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4246,6 +4693,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -4258,6 +4706,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -4269,6 +4718,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4279,9 +4729,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4292,6 +4744,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4304,6 +4757,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4314,6 +4768,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -4326,6 +4781,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -4337,6 +4793,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4347,9 +4804,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4360,6 +4819,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4372,6 +4832,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4383,6 +4844,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -4394,6 +4856,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4402,6 +4865,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -4413,6 +4877,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4423,9 +4888,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4436,6 +4903,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4448,6 +4916,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4459,6 +4928,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -4470,6 +4940,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4479,6 +4950,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -4490,6 +4962,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4497,6 +4970,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4507,9 +4981,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4520,6 +4996,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4532,6 +5009,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4542,6 +5020,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -4555,6 +5034,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -4566,6 +5046,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4573,6 +5054,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4583,9 +5065,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4596,6 +5080,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4608,6 +5093,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4618,6 +5104,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -4631,6 +5118,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -4642,6 +5130,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4649,6 +5138,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4659,9 +5149,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4672,6 +5164,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4684,6 +5177,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4694,6 +5188,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -4707,6 +5202,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -4718,6 +5214,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4725,6 +5222,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4735,9 +5233,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4748,6 +5248,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4760,6 +5261,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4771,6 +5273,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -4782,6 +5285,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4790,6 +5294,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -4801,6 +5306,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4811,9 +5317,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4824,6 +5332,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4836,6 +5345,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4846,6 +5356,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -4858,6 +5369,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -4869,6 +5381,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4879,9 +5392,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4892,6 +5407,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4904,6 +5420,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4915,6 +5432,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -4926,6 +5444,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -4934,6 +5453,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -4945,6 +5465,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4955,9 +5476,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -4968,6 +5491,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4980,6 +5504,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -4991,6 +5516,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -5002,6 +5528,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5011,6 +5538,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -5022,6 +5550,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5029,6 +5558,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5039,9 +5569,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5052,6 +5584,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5064,6 +5597,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5075,6 +5609,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -5086,6 +5621,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5095,6 +5631,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -5106,6 +5643,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5113,6 +5651,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5123,9 +5662,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5136,6 +5677,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5148,6 +5690,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5158,6 +5701,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -5170,6 +5714,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -5181,6 +5726,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5191,9 +5737,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5204,6 +5752,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5216,6 +5765,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5226,6 +5776,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -5239,6 +5790,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -5250,6 +5802,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5257,6 +5810,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5267,9 +5821,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5280,6 +5836,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5292,6 +5849,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5302,6 +5860,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -5314,6 +5873,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -5325,6 +5885,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5335,9 +5896,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5348,6 +5911,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5360,6 +5924,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5370,6 +5935,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -5383,6 +5949,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -5394,6 +5961,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5401,6 +5969,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5411,9 +5980,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5424,6 +5995,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5436,6 +6008,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5446,6 +6019,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -5458,6 +6032,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -5469,6 +6044,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5479,9 +6055,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5492,6 +6070,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5504,6 +6083,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5514,6 +6094,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -5526,6 +6107,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -5537,6 +6119,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5547,9 +6130,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5560,6 +6145,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5572,6 +6158,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5582,6 +6169,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -5594,6 +6182,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -5605,6 +6194,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5615,9 +6205,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5628,6 +6220,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5640,6 +6233,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5651,6 +6245,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -5662,6 +6257,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5671,6 +6267,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -5682,6 +6279,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5689,6 +6287,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5699,9 +6298,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5712,6 +6313,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5724,6 +6326,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5734,6 +6337,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -5747,6 +6351,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -5758,6 +6363,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5765,6 +6371,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5775,9 +6382,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5788,6 +6397,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5800,6 +6410,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5810,6 +6421,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -5823,6 +6435,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -5834,6 +6447,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5841,6 +6455,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5851,9 +6466,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5864,6 +6481,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5876,6 +6494,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5887,6 +6506,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -5898,6 +6518,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5906,6 +6527,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -5917,6 +6539,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5927,9 +6550,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -5940,6 +6565,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5952,6 +6578,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -5962,6 +6589,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9464450621708211", "start": 0, "type": "Literal", @@ -5975,6 +6603,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2684908127803667", "start": 0, "type": "Literal", @@ -5986,6 +6615,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -5993,6 +6623,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6003,9 +6634,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6016,6 +6649,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6028,6 +6662,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6038,6 +6673,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5241732366617591", "start": 0, "type": "Literal", @@ -6050,6 +6686,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9011437416408563", "start": 0, "type": "Literal", @@ -6061,6 +6698,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6071,9 +6709,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6084,6 +6724,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6096,6 +6737,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6107,6 +6749,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14255393713960607", "start": 0, "type": "Literal", @@ -6118,6 +6761,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6127,6 +6771,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5194262624564814", "start": 0, "type": "Literal", @@ -6138,6 +6783,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6145,6 +6791,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6155,9 +6802,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6168,6 +6817,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6180,6 +6830,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6191,6 +6842,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4287123231350338", "start": 0, "type": "Literal", @@ -6202,6 +6854,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6211,6 +6864,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4223564528725028", "start": 0, "type": "Literal", @@ -6222,6 +6876,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6229,6 +6884,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6239,9 +6895,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6252,6 +6910,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6264,6 +6923,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6275,6 +6935,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09316367294024519", "start": 0, "type": "Literal", @@ -6286,6 +6947,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6295,6 +6957,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9063127021008246", "start": 0, "type": "Literal", @@ -6306,6 +6969,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6313,6 +6977,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6323,9 +6988,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6336,6 +7003,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6348,6 +7016,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6359,6 +7028,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2767766535558669", "start": 0, "type": "Literal", @@ -6370,6 +7040,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6378,6 +7049,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6816248114129131", "start": 0, "type": "Literal", @@ -6389,6 +7061,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6399,9 +7072,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6412,6 +7087,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6424,6 +7100,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6434,6 +7111,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9796762495562534", "start": 0, "type": "Literal", @@ -6447,6 +7125,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0822145668330625", "start": 0, "type": "Literal", @@ -6458,6 +7137,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6465,6 +7145,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6475,9 +7156,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6488,6 +7171,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6500,6 +7184,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6511,6 +7196,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8666513070867441", "start": 0, "type": "Literal", @@ -6522,6 +7208,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6531,6 +7218,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.301053160242023", "start": 0, "type": "Literal", @@ -6542,6 +7230,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6549,6 +7238,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6559,9 +7249,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6572,6 +7264,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6584,6 +7277,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6594,6 +7288,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.537415656028112", "start": 0, "type": "Literal", @@ -6606,6 +7301,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020272692875002774", "start": 0, "type": "Literal", @@ -6617,6 +7313,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6627,9 +7324,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6640,6 +7339,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6652,6 +7352,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6662,6 +7363,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9332396256457531", "start": 0, "type": "Literal", @@ -6675,6 +7377,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6228175690649898", "start": 0, "type": "Literal", @@ -6686,6 +7389,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6693,6 +7397,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6703,9 +7408,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6716,6 +7423,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6728,6 +7436,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6738,6 +7447,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.18052415837320734", "start": 0, "type": "Literal", @@ -6751,6 +7461,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.36894384647296197", "start": 0, "type": "Literal", @@ -6762,6 +7473,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6769,6 +7481,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6779,9 +7492,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6792,6 +7507,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6804,6 +7520,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6814,6 +7531,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5384372634075449", "start": 0, "type": "Literal", @@ -6826,6 +7544,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2377565050887107", "start": 0, "type": "Literal", @@ -6837,6 +7556,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6847,9 +7567,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6860,6 +7582,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6872,6 +7595,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6882,6 +7606,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39043436929278874", "start": 0, "type": "Literal", @@ -6894,6 +7619,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14273182483160451", "start": 0, "type": "Literal", @@ -6905,6 +7631,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6915,9 +7642,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6928,6 +7657,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6940,6 +7670,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -6950,6 +7681,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09782890412897283", "start": 0, "type": "Literal", @@ -6962,6 +7694,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9907667536909659", "start": 0, "type": "Literal", @@ -6973,6 +7706,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6983,9 +7717,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -6996,6 +7732,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7008,6 +7745,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7018,6 +7756,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5286610085921146", "start": 0, "type": "Literal", @@ -7031,6 +7770,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7924508308419256", "start": 0, "type": "Literal", @@ -7042,6 +7782,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7049,6 +7790,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7059,9 +7801,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7072,6 +7816,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7084,6 +7829,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7094,6 +7840,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3789978184503342", "start": 0, "type": "Literal", @@ -7106,6 +7853,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12396120576838676", "start": 0, "type": "Literal", @@ -7117,6 +7865,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7127,9 +7876,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7140,6 +7891,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7152,6 +7904,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7163,6 +7916,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9484912744890612", "start": 0, "type": "Literal", @@ -7174,6 +7928,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7182,6 +7937,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6729649846476855", "start": 0, "type": "Literal", @@ -7193,6 +7949,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7203,9 +7960,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7216,6 +7975,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7228,6 +7988,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7238,6 +7999,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7451758753425153", "start": 0, "type": "Literal", @@ -7251,6 +8013,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21318737562458967", "start": 0, "type": "Literal", @@ -7262,6 +8025,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7269,6 +8033,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7279,9 +8044,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7292,6 +8059,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7304,6 +8072,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7314,6 +8083,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1873200727251887", "start": 0, "type": "Literal", @@ -7327,6 +8097,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15961374297992448", "start": 0, "type": "Literal", @@ -7338,6 +8109,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7345,6 +8117,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7355,9 +8128,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7368,6 +8143,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7380,6 +8156,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7391,6 +8168,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05729464924537564", "start": 0, "type": "Literal", @@ -7402,6 +8180,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7411,6 +8190,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5436345558508746", "start": 0, "type": "Literal", @@ -7422,6 +8202,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7429,6 +8210,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7439,9 +8221,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7452,6 +8236,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7464,6 +8249,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7475,6 +8261,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09582414374469184", "start": 0, "type": "Literal", @@ -7486,6 +8273,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7495,6 +8283,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7533839681212353", "start": 0, "type": "Literal", @@ -7506,6 +8295,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7513,6 +8303,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7523,9 +8314,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7536,6 +8329,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7548,6 +8342,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7559,6 +8354,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17254116580051848", "start": 0, "type": "Literal", @@ -7570,6 +8366,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7579,6 +8376,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7669113400341137", "start": 0, "type": "Literal", @@ -7590,6 +8388,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7597,6 +8396,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7607,9 +8407,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7620,6 +8422,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7632,6 +8435,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7642,6 +8446,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8944730032887609", "start": 0, "type": "Literal", @@ -7654,6 +8459,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6093318694741408", "start": 0, "type": "Literal", @@ -7665,6 +8471,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7675,9 +8482,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7688,6 +8497,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7700,6 +8510,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7711,6 +8522,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -7722,6 +8534,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7730,6 +8543,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -7741,6 +8555,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7751,9 +8566,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7764,6 +8581,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7776,6 +8594,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7787,6 +8606,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -7798,6 +8618,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7806,6 +8627,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -7817,6 +8639,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7827,9 +8650,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7840,6 +8665,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7852,6 +8678,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7863,6 +8690,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -7874,6 +8702,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7882,6 +8711,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -7893,6 +8723,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7903,9 +8734,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -7916,6 +8749,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7928,6 +8762,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -7939,6 +8774,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -7950,6 +8786,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7959,6 +8796,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -7970,6 +8808,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7977,6 +8816,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -7987,9 +8827,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8000,6 +8842,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8012,6 +8855,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8022,6 +8866,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -8034,6 +8879,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -8045,6 +8891,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8055,9 +8902,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8068,6 +8917,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8080,6 +8930,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8090,6 +8941,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -8102,6 +8954,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -8113,6 +8966,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8123,9 +8977,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8136,6 +8992,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8148,6 +9005,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8159,6 +9017,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -8170,6 +9029,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8178,6 +9038,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -8189,6 +9050,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8199,9 +9061,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8212,6 +9076,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8224,6 +9089,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8235,6 +9101,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -8246,6 +9113,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8255,6 +9123,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -8266,6 +9135,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8273,6 +9143,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8283,9 +9154,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8296,6 +9169,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8308,6 +9182,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8318,6 +9193,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -8331,6 +9207,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -8342,6 +9219,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8349,6 +9227,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8359,9 +9238,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8372,6 +9253,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8384,6 +9266,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8394,6 +9277,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -8407,6 +9291,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -8418,6 +9303,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8425,6 +9311,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8435,9 +9322,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8448,6 +9337,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8460,6 +9350,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8470,6 +9361,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -8483,6 +9375,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -8494,6 +9387,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8501,6 +9395,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8511,9 +9406,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8524,6 +9421,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8536,6 +9434,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8547,6 +9446,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -8558,6 +9458,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8566,6 +9467,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -8577,6 +9479,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8587,9 +9490,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8600,6 +9505,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8612,6 +9518,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8622,6 +9529,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -8634,6 +9542,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -8645,6 +9554,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8655,9 +9565,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8668,6 +9580,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8680,6 +9593,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8691,6 +9605,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -8702,6 +9617,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8710,6 +9626,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -8721,6 +9638,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8731,9 +9649,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8744,6 +9664,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8756,6 +9677,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8767,6 +9689,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -8778,6 +9701,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8787,6 +9711,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -8798,6 +9723,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8805,6 +9731,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8815,9 +9742,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8828,6 +9757,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8840,6 +9770,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8851,6 +9782,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -8862,6 +9794,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8871,6 +9804,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -8882,6 +9816,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -8889,6 +9824,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8899,9 +9835,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8912,6 +9850,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8924,6 +9863,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -8934,6 +9874,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -8946,6 +9887,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -8957,6 +9899,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -8967,9 +9910,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -8980,6 +9925,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8992,6 +9938,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9002,6 +9949,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -9015,6 +9963,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -9026,6 +9975,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9033,6 +9983,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9043,9 +9994,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9056,6 +10009,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9068,6 +10022,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9078,6 +10033,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -9090,6 +10046,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -9101,6 +10058,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9111,9 +10069,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9124,6 +10084,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9136,6 +10097,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9146,6 +10108,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -9159,6 +10122,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -9170,6 +10134,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9177,6 +10142,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9187,9 +10153,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9200,6 +10168,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9212,6 +10181,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9222,6 +10192,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -9234,6 +10205,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -9245,6 +10217,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9255,9 +10228,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9268,6 +10243,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9280,6 +10256,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9290,6 +10267,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -9302,6 +10280,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -9313,6 +10292,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9323,9 +10303,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9336,6 +10318,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9348,6 +10331,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9358,6 +10342,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -9370,6 +10355,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -9381,6 +10367,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9391,9 +10378,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9404,6 +10393,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9416,6 +10406,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9427,6 +10418,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -9438,6 +10430,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9447,6 +10440,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -9458,6 +10452,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9465,6 +10460,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9475,9 +10471,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9488,6 +10486,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9500,6 +10499,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9510,6 +10510,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -9523,6 +10524,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -9534,6 +10536,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9541,6 +10544,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9551,9 +10555,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9564,6 +10570,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9576,6 +10583,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9587,6 +10595,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -9598,6 +10607,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9607,6 +10617,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -9618,6 +10629,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9625,6 +10637,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9635,9 +10648,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9648,6 +10663,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9660,6 +10676,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9670,6 +10687,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -9683,6 +10701,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -9694,6 +10713,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9701,6 +10721,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9711,9 +10732,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9724,6 +10747,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9736,6 +10760,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9746,6 +10771,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -9759,6 +10785,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -9770,6 +10797,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9777,6 +10805,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9787,9 +10816,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9800,6 +10831,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9812,6 +10844,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9822,6 +10855,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -9835,6 +10869,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -9846,6 +10881,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9853,6 +10889,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9863,9 +10900,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9876,6 +10915,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9888,6 +10928,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9899,6 +10940,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -9910,6 +10952,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9919,6 +10962,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -9930,6 +10974,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -9937,6 +10982,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9947,9 +10993,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -9960,6 +11008,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9972,6 +11021,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -9982,6 +11032,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -9994,6 +11045,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -10005,6 +11057,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10015,9 +11068,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10028,6 +11083,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10040,6 +11096,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10050,6 +11107,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -10062,6 +11120,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -10073,6 +11132,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10083,9 +11143,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10096,6 +11158,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10108,6 +11171,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10119,6 +11183,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -10130,6 +11195,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10138,6 +11204,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -10149,6 +11216,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10159,9 +11227,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10172,6 +11242,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10184,6 +11255,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10195,6 +11267,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -10206,6 +11279,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10215,6 +11289,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -10226,6 +11301,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10233,6 +11309,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10243,9 +11320,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10256,6 +11335,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10268,6 +11348,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10278,6 +11359,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -10291,6 +11373,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -10302,6 +11385,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10309,6 +11393,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10319,9 +11404,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10332,6 +11419,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10344,6 +11432,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10355,6 +11444,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -10366,6 +11456,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10374,6 +11465,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -10385,6 +11477,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10395,9 +11488,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10408,6 +11503,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10420,6 +11516,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10430,6 +11527,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -10442,6 +11540,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -10453,6 +11552,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10463,9 +11563,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10476,6 +11578,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10488,6 +11591,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10499,6 +11603,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -10510,6 +11615,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10519,6 +11625,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -10530,6 +11637,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10537,6 +11645,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10547,9 +11656,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10560,6 +11671,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10572,6 +11684,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10582,6 +11695,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -10595,6 +11709,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -10606,6 +11721,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10613,6 +11729,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10623,9 +11740,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10636,6 +11755,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10648,6 +11768,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10658,6 +11779,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -10671,6 +11793,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -10682,6 +11805,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10689,6 +11813,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10699,9 +11824,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10712,6 +11839,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10724,6 +11852,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10734,6 +11863,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -10746,6 +11876,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -10757,6 +11888,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10767,9 +11899,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10780,6 +11914,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10792,6 +11927,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10803,6 +11939,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -10814,6 +11951,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -10822,6 +11960,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -10833,6 +11972,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10843,9 +11983,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10856,6 +11998,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10868,6 +12011,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10878,6 +12022,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -10890,6 +12035,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -10901,6 +12047,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10911,9 +12058,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10924,6 +12073,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10936,6 +12086,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -10946,6 +12097,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -10958,6 +12110,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -10969,6 +12122,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10979,9 +12133,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -10992,6 +12148,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11004,6 +12161,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11015,6 +12173,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -11026,6 +12185,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11035,6 +12195,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -11046,6 +12207,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11053,6 +12215,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11063,9 +12226,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11076,6 +12241,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11088,6 +12254,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11098,6 +12265,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -11111,6 +12279,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -11122,6 +12291,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11129,6 +12299,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11139,9 +12310,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11152,6 +12325,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11164,6 +12338,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11175,6 +12350,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -11186,6 +12362,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11195,6 +12372,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -11206,6 +12384,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11213,6 +12392,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11223,9 +12403,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11236,6 +12418,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11248,6 +12431,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11259,6 +12443,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -11270,6 +12455,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11279,6 +12465,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -11290,6 +12477,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11297,6 +12485,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11307,9 +12496,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11320,6 +12511,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11332,6 +12524,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11343,6 +12536,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -11354,6 +12548,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11362,6 +12557,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -11373,6 +12569,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11383,9 +12580,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11396,6 +12595,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11408,6 +12608,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11419,6 +12620,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -11430,6 +12632,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11439,6 +12642,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -11450,6 +12654,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11457,6 +12662,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11467,9 +12673,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11480,6 +12688,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11492,6 +12701,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11502,6 +12712,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -11515,6 +12726,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -11526,6 +12738,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11533,6 +12746,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11543,9 +12757,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11556,6 +12772,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11568,6 +12785,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11579,6 +12797,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -11590,6 +12809,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11598,6 +12818,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -11609,6 +12830,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11619,9 +12841,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11632,6 +12856,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11644,6 +12869,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11655,6 +12881,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -11666,6 +12893,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11674,6 +12902,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -11685,6 +12914,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11695,9 +12925,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11708,6 +12940,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11720,6 +12953,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11731,6 +12965,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -11742,6 +12977,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11751,6 +12987,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -11762,6 +12999,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11769,6 +13007,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11779,9 +13018,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11792,6 +13033,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11804,6 +13046,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11814,6 +13057,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -11826,6 +13070,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -11837,6 +13082,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11847,9 +13093,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11860,6 +13108,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11872,6 +13121,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11882,6 +13132,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -11894,6 +13145,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -11905,6 +13157,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11915,9 +13168,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -11928,6 +13183,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11940,6 +13196,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -11951,6 +13208,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -11962,6 +13220,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -11970,6 +13229,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -11981,6 +13241,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11991,9 +13252,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12004,6 +13267,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12016,6 +13280,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12027,6 +13292,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -12038,6 +13304,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12047,6 +13314,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -12058,6 +13326,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12065,6 +13334,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12075,9 +13345,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12088,6 +13360,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12100,6 +13373,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12110,6 +13384,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -12123,6 +13398,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -12134,6 +13410,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12141,6 +13418,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12151,9 +13429,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12164,6 +13444,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12176,6 +13457,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12186,6 +13468,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -12199,6 +13482,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -12210,6 +13494,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12217,6 +13502,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12227,9 +13513,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12240,6 +13528,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12252,6 +13541,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12262,6 +13552,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -12275,6 +13566,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -12286,6 +13578,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12293,6 +13586,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12303,9 +13597,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12316,6 +13612,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12328,6 +13625,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12339,6 +13637,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -12350,6 +13649,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12358,6 +13658,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -12369,6 +13670,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12379,9 +13681,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12392,6 +13696,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12404,6 +13709,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12414,6 +13720,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -12426,6 +13733,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -12437,6 +13745,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12447,9 +13756,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12460,6 +13771,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12472,6 +13784,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12483,6 +13796,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -12494,6 +13808,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12502,6 +13817,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -12513,6 +13829,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12523,9 +13840,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12536,6 +13855,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12548,6 +13868,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12559,6 +13880,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -12570,6 +13892,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12579,6 +13902,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -12590,6 +13914,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12597,6 +13922,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12607,9 +13933,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12620,6 +13948,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12632,6 +13961,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12643,6 +13973,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -12654,6 +13985,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12663,6 +13995,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -12674,6 +14007,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12681,6 +14015,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12691,9 +14026,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12704,6 +14041,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12716,6 +14054,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12726,6 +14065,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -12738,6 +14078,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -12749,6 +14090,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12759,9 +14101,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12772,6 +14116,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12784,6 +14129,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12794,6 +14140,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -12807,6 +14154,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -12818,6 +14166,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12825,6 +14174,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12835,9 +14185,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12848,6 +14200,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12860,6 +14213,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12870,6 +14224,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -12882,6 +14237,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -12893,6 +14249,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12903,9 +14260,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12916,6 +14275,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -12928,6 +14288,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -12938,6 +14299,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -12951,6 +14313,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -12962,6 +14325,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -12969,6 +14333,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -12979,9 +14344,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -12992,6 +14359,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13004,6 +14372,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13014,6 +14383,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -13026,6 +14396,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -13037,6 +14408,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13047,9 +14419,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13060,6 +14434,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13072,6 +14447,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13082,6 +14458,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -13094,6 +14471,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -13105,6 +14483,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13115,9 +14494,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13128,6 +14509,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13140,6 +14522,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13150,6 +14533,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -13162,6 +14546,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -13173,6 +14558,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13183,9 +14569,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13196,6 +14584,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13208,6 +14597,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13219,6 +14609,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -13230,6 +14621,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13238,6 +14630,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -13249,6 +14642,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13259,9 +14653,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13272,6 +14668,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13284,6 +14681,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13295,6 +14693,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -13306,6 +14705,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13314,6 +14714,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -13325,6 +14726,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13335,9 +14737,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13348,6 +14752,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13360,6 +14765,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13371,6 +14777,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -13382,6 +14789,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13390,6 +14798,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -13401,6 +14810,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13411,9 +14821,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13424,6 +14836,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13436,6 +14849,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13447,6 +14861,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -13458,6 +14873,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13467,6 +14883,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -13478,6 +14895,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13485,6 +14903,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13495,9 +14914,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13508,6 +14929,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13520,6 +14942,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13530,6 +14953,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -13542,6 +14966,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -13553,6 +14978,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13563,9 +14989,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13576,6 +15004,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13588,6 +15017,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13598,6 +15028,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -13610,6 +15041,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -13621,6 +15053,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13631,9 +15064,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13644,6 +15079,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13656,6 +15092,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13667,6 +15104,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -13678,6 +15116,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13686,6 +15125,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -13697,6 +15137,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13707,9 +15148,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13720,6 +15163,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13732,6 +15176,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13743,6 +15188,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -13754,6 +15200,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13763,6 +15210,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -13774,6 +15222,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13781,6 +15230,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13791,9 +15241,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13804,6 +15256,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13816,6 +15269,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13826,6 +15280,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -13839,6 +15294,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -13850,6 +15306,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13857,6 +15314,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13867,9 +15325,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13880,6 +15340,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13892,6 +15353,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13902,6 +15364,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -13915,6 +15378,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -13926,6 +15390,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -13933,6 +15398,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -13943,9 +15409,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -13956,6 +15424,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -13968,6 +15437,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -13978,6 +15448,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -13991,6 +15462,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -14002,6 +15474,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14009,6 +15482,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14019,9 +15493,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14032,6 +15508,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14044,6 +15521,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14055,6 +15533,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -14066,6 +15545,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14074,6 +15554,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -14085,6 +15566,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14095,9 +15577,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14108,6 +15592,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14120,6 +15605,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14130,6 +15616,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -14142,6 +15629,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -14153,6 +15641,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14163,9 +15652,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14176,6 +15667,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14188,6 +15680,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14199,6 +15692,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -14210,6 +15704,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14218,6 +15713,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -14229,6 +15725,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14239,9 +15736,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14252,6 +15751,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14264,6 +15764,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14275,6 +15776,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -14286,6 +15788,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14295,6 +15798,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -14306,6 +15810,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14313,6 +15818,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14323,9 +15829,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14336,6 +15844,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14348,6 +15857,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14359,6 +15869,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -14370,6 +15881,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14379,6 +15891,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -14390,6 +15903,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14397,6 +15911,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14407,9 +15922,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14420,6 +15937,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14432,6 +15950,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14442,6 +15961,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -14454,6 +15974,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -14465,6 +15986,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14475,9 +15997,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14488,6 +16012,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14500,6 +16025,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14510,6 +16036,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -14523,6 +16050,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -14534,6 +16062,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14541,6 +16070,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14551,9 +16081,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14564,6 +16096,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14576,6 +16109,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14586,6 +16120,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -14598,6 +16133,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -14609,6 +16145,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14619,9 +16156,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14632,6 +16171,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14644,6 +16184,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14654,6 +16195,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -14667,6 +16209,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -14678,6 +16221,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14685,6 +16229,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14695,9 +16240,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14708,6 +16255,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14720,6 +16268,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14730,6 +16279,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -14742,6 +16292,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -14753,6 +16304,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14763,9 +16315,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14776,6 +16330,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14788,6 +16343,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14798,6 +16354,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -14810,6 +16367,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -14821,6 +16379,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14831,9 +16390,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14844,6 +16405,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14856,6 +16418,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14866,6 +16429,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -14878,6 +16442,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -14889,6 +16454,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14899,9 +16465,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14912,6 +16480,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -14924,6 +16493,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -14935,6 +16505,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -14946,6 +16517,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14955,6 +16527,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -14966,6 +16539,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -14973,6 +16547,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -14983,9 +16558,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -14996,6 +16573,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15008,6 +16586,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15018,6 +16597,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -15031,6 +16611,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -15042,6 +16623,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15049,6 +16631,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15059,9 +16642,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15072,6 +16657,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15084,6 +16670,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15095,6 +16682,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -15106,6 +16694,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15115,6 +16704,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -15126,6 +16716,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15133,6 +16724,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15143,9 +16735,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15156,6 +16750,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15168,6 +16763,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15178,6 +16774,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -15191,6 +16788,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -15202,6 +16800,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15209,6 +16808,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15219,9 +16819,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15232,6 +16834,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15244,6 +16847,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15255,6 +16859,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -15266,6 +16871,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15274,6 +16880,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -15285,6 +16892,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15295,9 +16903,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15308,6 +16918,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15320,6 +16931,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15331,6 +16943,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -15342,6 +16955,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15350,6 +16964,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -15361,6 +16976,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15371,9 +16987,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15384,6 +17002,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15396,6 +17015,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15407,6 +17027,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -15418,6 +17039,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15426,6 +17048,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -15437,6 +17060,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15447,9 +17071,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15460,6 +17086,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15472,6 +17099,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15483,6 +17111,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -15494,6 +17123,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15503,6 +17133,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -15514,6 +17145,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15521,6 +17153,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15531,9 +17164,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15544,6 +17179,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15556,6 +17192,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15566,6 +17203,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -15578,6 +17216,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -15589,6 +17228,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15599,9 +17239,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15612,6 +17254,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15624,6 +17267,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15634,6 +17278,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -15646,6 +17291,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -15657,6 +17303,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15667,9 +17314,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15680,6 +17329,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15692,6 +17342,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15703,6 +17354,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -15714,6 +17366,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15722,6 +17375,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -15733,6 +17387,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15743,9 +17398,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15756,6 +17413,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15768,6 +17426,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15779,6 +17438,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -15790,6 +17450,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15799,6 +17460,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -15810,6 +17472,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15817,6 +17480,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15827,9 +17491,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15840,6 +17506,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15852,6 +17519,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15862,6 +17530,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -15875,6 +17544,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -15886,6 +17556,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15893,6 +17564,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15903,9 +17575,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15916,6 +17590,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -15928,6 +17603,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -15938,6 +17614,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -15951,6 +17628,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -15962,6 +17640,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -15969,6 +17648,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -15979,9 +17659,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -15992,6 +17674,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16004,6 +17687,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16014,6 +17698,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -16027,6 +17712,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -16038,6 +17724,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16045,6 +17732,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16055,9 +17743,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16068,6 +17758,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16080,6 +17771,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16091,6 +17783,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -16102,6 +17795,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16110,6 +17804,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -16121,6 +17816,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16131,9 +17827,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16144,6 +17842,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16156,6 +17855,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16166,6 +17866,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -16178,6 +17879,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -16189,6 +17891,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16199,9 +17902,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16212,6 +17917,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16224,6 +17930,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16235,6 +17942,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -16246,6 +17954,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16254,6 +17963,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -16265,6 +17975,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16275,9 +17986,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16288,6 +18001,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16300,6 +18014,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16311,6 +18026,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -16322,6 +18038,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16331,6 +18048,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -16342,6 +18060,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16349,6 +18068,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16359,9 +18079,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16372,6 +18094,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16384,6 +18107,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16395,6 +18119,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -16406,6 +18131,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16415,6 +18141,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -16426,6 +18153,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16433,6 +18161,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16443,9 +18172,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16456,6 +18187,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16468,6 +18200,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16478,6 +18211,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -16490,6 +18224,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -16501,6 +18236,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16511,9 +18247,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16524,6 +18262,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16536,6 +18275,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16546,6 +18286,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -16559,6 +18300,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -16570,6 +18312,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16577,6 +18320,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16587,9 +18331,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16600,6 +18346,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16612,6 +18359,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16622,6 +18370,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -16634,6 +18383,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -16645,6 +18395,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16655,9 +18406,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16668,6 +18421,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16680,6 +18434,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16690,6 +18445,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -16703,6 +18459,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -16714,6 +18471,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16721,6 +18479,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16731,9 +18490,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16744,6 +18505,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16756,6 +18518,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16766,6 +18529,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -16778,6 +18542,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -16789,6 +18554,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16799,9 +18565,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16812,6 +18580,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16824,6 +18593,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16834,6 +18604,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -16846,6 +18617,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -16857,6 +18629,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16867,9 +18640,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16880,6 +18655,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16892,6 +18668,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16902,6 +18679,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -16914,6 +18692,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -16925,6 +18704,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -16935,9 +18715,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -16948,6 +18730,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -16960,6 +18743,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -16971,6 +18755,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -16982,6 +18767,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -16991,6 +18777,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -17002,6 +18789,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17009,6 +18797,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17019,9 +18808,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17032,6 +18823,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17044,6 +18836,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17054,6 +18847,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -17067,6 +18861,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -17078,6 +18873,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17085,6 +18881,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17095,9 +18892,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17108,6 +18907,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17120,6 +18920,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17131,6 +18932,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -17142,6 +18944,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17151,6 +18954,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -17162,6 +18966,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17169,6 +18974,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17179,9 +18985,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17192,6 +19000,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17204,6 +19013,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17214,6 +19024,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -17227,6 +19038,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -17238,6 +19050,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17245,6 +19058,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17255,9 +19069,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17268,6 +19084,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17280,6 +19097,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17290,6 +19108,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -17303,6 +19122,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -17314,6 +19134,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17321,6 +19142,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17331,9 +19153,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17344,6 +19168,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17356,6 +19181,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17366,6 +19192,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -17379,6 +19206,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -17390,6 +19218,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17397,6 +19226,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17407,9 +19237,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17420,6 +19252,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17432,6 +19265,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17443,6 +19277,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -17454,6 +19289,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17463,6 +19299,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -17474,6 +19311,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17481,6 +19319,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17491,9 +19330,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17504,6 +19345,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17516,6 +19358,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17526,6 +19369,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -17538,6 +19382,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -17549,6 +19394,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17559,9 +19405,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17572,6 +19420,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17584,6 +19433,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17594,6 +19444,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -17606,6 +19457,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -17617,6 +19469,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17627,9 +19480,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17640,6 +19495,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17652,6 +19508,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17663,6 +19520,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -17674,6 +19532,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17682,6 +19541,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -17693,6 +19553,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17703,9 +19564,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17716,6 +19579,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17728,6 +19592,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17739,6 +19604,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -17750,6 +19616,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17759,6 +19626,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -17770,6 +19638,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17777,6 +19646,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17787,9 +19657,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17800,6 +19672,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17812,6 +19685,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17822,6 +19696,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -17835,6 +19710,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -17846,6 +19722,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17853,6 +19730,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17863,9 +19741,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17876,6 +19756,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17888,6 +19769,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17899,6 +19781,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -17910,6 +19793,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -17918,6 +19802,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -17929,6 +19814,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -17939,9 +19825,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -17952,6 +19840,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -17964,6 +19853,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -17974,6 +19864,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -17986,6 +19877,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -17997,6 +19889,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18007,9 +19900,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18020,6 +19915,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18032,6 +19928,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18043,6 +19940,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -18054,6 +19952,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18063,6 +19962,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -18074,6 +19974,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18081,6 +19982,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18091,9 +19993,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18104,6 +20008,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18116,6 +20021,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18126,6 +20032,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -18139,6 +20046,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -18150,6 +20058,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18157,6 +20066,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18167,9 +20077,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18180,6 +20092,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18192,6 +20105,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18202,6 +20116,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -18215,6 +20130,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -18226,6 +20142,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18233,6 +20150,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18243,9 +20161,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18256,6 +20176,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18268,6 +20189,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18278,6 +20200,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -18290,6 +20213,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -18301,6 +20225,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18311,9 +20236,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18324,6 +20251,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18336,6 +20264,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18347,6 +20276,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -18358,6 +20288,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18366,6 +20297,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -18377,6 +20309,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18387,9 +20320,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18400,6 +20335,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18412,6 +20348,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18422,6 +20359,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -18434,6 +20372,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -18445,6 +20384,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18455,9 +20395,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18468,6 +20410,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18480,6 +20423,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18490,6 +20434,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -18502,6 +20447,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -18513,6 +20459,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18523,9 +20470,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18536,6 +20485,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18548,6 +20498,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18559,6 +20510,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -18570,6 +20522,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18579,6 +20532,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -18590,6 +20544,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18597,6 +20552,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18607,9 +20563,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18620,6 +20578,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18632,6 +20591,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18642,6 +20602,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -18655,6 +20616,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -18666,6 +20628,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18673,6 +20636,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18683,9 +20647,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18696,6 +20662,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18708,6 +20675,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18719,6 +20687,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -18730,6 +20699,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18739,6 +20709,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -18750,6 +20721,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18757,6 +20729,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18767,9 +20740,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18780,6 +20755,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18792,6 +20768,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18803,6 +20780,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -18814,6 +20792,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18823,6 +20802,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -18834,6 +20814,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18841,6 +20822,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18851,9 +20833,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18864,6 +20848,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18876,6 +20861,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18887,6 +20873,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -18898,6 +20885,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18906,6 +20894,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -18917,6 +20906,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -18927,9 +20917,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -18940,6 +20932,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -18952,6 +20945,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -18963,6 +20957,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -18974,6 +20969,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -18983,6 +20979,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -18994,6 +20991,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19001,6 +20999,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19011,9 +21010,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19024,6 +21025,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19036,6 +21038,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19046,6 +21049,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -19059,6 +21063,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -19070,6 +21075,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19077,6 +21083,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19087,9 +21094,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19100,6 +21109,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19112,6 +21122,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19123,6 +21134,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -19134,6 +21146,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19142,6 +21155,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -19153,6 +21167,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19163,9 +21178,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19176,6 +21193,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19188,6 +21206,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19199,6 +21218,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -19210,6 +21230,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19218,6 +21239,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -19229,6 +21251,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19239,9 +21262,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19252,6 +21277,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19264,6 +21290,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19275,6 +21302,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -19286,6 +21314,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19295,6 +21324,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -19306,6 +21336,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19313,6 +21344,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19323,9 +21355,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19336,6 +21370,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19348,6 +21383,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19358,6 +21394,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -19370,6 +21407,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -19381,6 +21419,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19391,9 +21430,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19404,6 +21445,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19416,6 +21458,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19426,6 +21469,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -19438,6 +21482,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -19449,6 +21494,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19459,9 +21505,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19472,6 +21520,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19484,6 +21533,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19495,6 +21545,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -19506,6 +21557,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19514,6 +21566,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -19525,6 +21578,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19535,9 +21589,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19548,6 +21604,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19560,6 +21617,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19571,6 +21629,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -19582,6 +21641,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19591,6 +21651,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -19602,6 +21663,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19609,6 +21671,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19619,9 +21682,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19632,6 +21697,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19644,6 +21710,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19654,6 +21721,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -19667,6 +21735,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -19678,6 +21747,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19685,6 +21755,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19695,9 +21766,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19708,6 +21781,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19720,6 +21794,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19730,6 +21805,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -19743,6 +21819,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -19754,6 +21831,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19761,6 +21839,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19771,9 +21850,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19784,6 +21865,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19796,6 +21878,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19806,6 +21889,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -19819,6 +21903,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -19830,6 +21915,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19837,6 +21923,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19847,9 +21934,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19860,6 +21949,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19872,6 +21962,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19883,6 +21974,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -19894,6 +21986,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -19902,6 +21995,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -19913,6 +22007,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19923,9 +22018,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -19936,6 +22033,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -19948,6 +22046,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -19958,6 +22057,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -19970,6 +22070,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -19981,6 +22082,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -19991,9 +22093,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20004,6 +22108,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20016,6 +22121,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20027,6 +22133,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -20038,6 +22145,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20046,6 +22154,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -20057,6 +22166,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20067,9 +22177,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20080,6 +22192,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20092,6 +22205,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20103,6 +22217,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -20114,6 +22229,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20123,6 +22239,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -20134,6 +22251,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20141,6 +22259,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20151,9 +22270,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20164,6 +22285,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20176,6 +22298,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20187,6 +22310,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -20198,6 +22322,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20207,6 +22332,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -20218,6 +22344,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20225,6 +22352,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20235,9 +22363,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20248,6 +22378,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20260,6 +22391,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20270,6 +22402,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -20282,6 +22415,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -20293,6 +22427,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20303,9 +22438,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20316,6 +22453,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20328,6 +22466,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20338,6 +22477,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -20351,6 +22491,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -20362,6 +22503,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20369,6 +22511,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20379,9 +22522,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20392,6 +22537,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20404,6 +22550,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20414,6 +22561,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -20426,6 +22574,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -20437,6 +22586,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20447,9 +22597,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20460,6 +22612,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20472,6 +22625,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20482,6 +22636,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -20495,6 +22650,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -20506,6 +22662,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20513,6 +22670,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20523,9 +22681,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20536,6 +22696,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20548,6 +22709,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20558,6 +22720,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -20570,6 +22733,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -20581,6 +22745,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20591,9 +22756,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20604,6 +22771,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20616,6 +22784,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20626,6 +22795,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -20638,6 +22808,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -20649,6 +22820,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20659,9 +22831,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20672,6 +22846,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20684,6 +22859,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20694,6 +22870,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -20706,6 +22883,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -20717,6 +22895,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20727,9 +22906,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20740,6 +22921,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20752,6 +22934,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20763,6 +22946,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -20774,6 +22958,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20783,6 +22968,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -20794,6 +22980,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20801,6 +22988,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20811,9 +22999,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20824,6 +23014,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20836,6 +23027,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20846,6 +23038,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -20859,6 +23052,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -20870,6 +23064,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20877,6 +23072,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20887,9 +23083,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20900,6 +23098,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20912,6 +23111,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20922,6 +23122,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -20935,6 +23136,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -20946,6 +23148,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -20953,6 +23156,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -20963,9 +23167,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -20976,6 +23182,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -20988,6 +23195,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -20999,6 +23207,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -21010,6 +23219,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21018,6 +23228,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -21029,6 +23240,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21039,9 +23251,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21052,6 +23266,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21064,6 +23279,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21074,6 +23290,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9464450621708211", "start": 0, "type": "Literal", @@ -21087,6 +23304,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2684908127803667", "start": 0, "type": "Literal", @@ -21098,6 +23316,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21105,6 +23324,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21115,9 +23335,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21128,6 +23350,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21140,6 +23363,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21150,6 +23374,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5241732366617591", "start": 0, "type": "Literal", @@ -21162,6 +23387,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9011437416408563", "start": 0, "type": "Literal", @@ -21173,6 +23399,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21183,9 +23410,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21196,6 +23425,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21208,6 +23438,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21219,6 +23450,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14255393713960607", "start": 0, "type": "Literal", @@ -21230,6 +23462,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21239,6 +23472,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5194262624564814", "start": 0, "type": "Literal", @@ -21250,6 +23484,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21257,6 +23492,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21267,9 +23503,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21280,6 +23518,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21292,6 +23531,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21303,6 +23543,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4287123231350338", "start": 0, "type": "Literal", @@ -21314,6 +23555,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21323,6 +23565,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4223564528725028", "start": 0, "type": "Literal", @@ -21334,6 +23577,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21341,6 +23585,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21351,9 +23596,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21364,6 +23611,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21376,6 +23624,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21387,6 +23636,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09316367294024519", "start": 0, "type": "Literal", @@ -21398,6 +23648,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21407,6 +23658,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9063127021008246", "start": 0, "type": "Literal", @@ -21418,6 +23670,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21425,6 +23678,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21435,9 +23689,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21448,6 +23704,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21460,6 +23717,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21471,6 +23729,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2767766535558669", "start": 0, "type": "Literal", @@ -21482,6 +23741,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21490,6 +23750,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6816248114129131", "start": 0, "type": "Literal", @@ -21501,6 +23762,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21511,9 +23773,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21524,6 +23788,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21536,6 +23801,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21546,6 +23812,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9796762495562534", "start": 0, "type": "Literal", @@ -21559,6 +23826,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0822145668330625", "start": 0, "type": "Literal", @@ -21570,6 +23838,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21577,6 +23846,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21587,9 +23857,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21600,6 +23872,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21612,6 +23885,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21623,6 +23897,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8666513070867441", "start": 0, "type": "Literal", @@ -21634,6 +23909,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21643,6 +23919,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.301053160242023", "start": 0, "type": "Literal", @@ -21654,6 +23931,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21661,6 +23939,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21671,9 +23950,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21684,6 +23965,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21696,6 +23978,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21706,6 +23989,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.537415656028112", "start": 0, "type": "Literal", @@ -21718,6 +24002,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020272692875002774", "start": 0, "type": "Literal", @@ -21729,6 +24014,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21739,9 +24025,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21752,6 +24040,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21764,6 +24053,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21774,6 +24064,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9332396256457531", "start": 0, "type": "Literal", @@ -21787,6 +24078,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6228175690649898", "start": 0, "type": "Literal", @@ -21798,6 +24090,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21805,6 +24098,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21815,9 +24109,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21828,6 +24124,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21840,6 +24137,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21850,6 +24148,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.18052415837320734", "start": 0, "type": "Literal", @@ -21863,6 +24162,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.36894384647296197", "start": 0, "type": "Literal", @@ -21874,6 +24174,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -21881,6 +24182,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21891,9 +24193,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21904,6 +24208,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21916,6 +24221,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21926,6 +24232,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5384372634075449", "start": 0, "type": "Literal", @@ -21938,6 +24245,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2377565050887107", "start": 0, "type": "Literal", @@ -21949,6 +24257,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -21959,9 +24268,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -21972,6 +24283,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -21984,6 +24296,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -21994,6 +24307,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39043436929278874", "start": 0, "type": "Literal", @@ -22006,6 +24320,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14273182483160451", "start": 0, "type": "Literal", @@ -22017,6 +24332,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22027,9 +24343,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22040,6 +24358,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22052,6 +24371,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22062,6 +24382,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09782890412897283", "start": 0, "type": "Literal", @@ -22074,6 +24395,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9907667536909659", "start": 0, "type": "Literal", @@ -22085,6 +24407,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22095,9 +24418,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22108,6 +24433,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22120,6 +24446,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22130,6 +24457,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5286610085921146", "start": 0, "type": "Literal", @@ -22143,6 +24471,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7924508308419256", "start": 0, "type": "Literal", @@ -22154,6 +24483,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22161,6 +24491,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22171,9 +24502,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22184,6 +24517,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22196,6 +24530,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22206,6 +24541,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3789978184503342", "start": 0, "type": "Literal", @@ -22218,6 +24554,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12396120576838676", "start": 0, "type": "Literal", @@ -22229,6 +24566,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22239,9 +24577,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22252,6 +24592,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22264,6 +24605,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22275,6 +24617,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9484912744890612", "start": 0, "type": "Literal", @@ -22286,6 +24629,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22294,6 +24638,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6729649846476855", "start": 0, "type": "Literal", @@ -22305,6 +24650,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22315,9 +24661,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22328,6 +24676,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22340,6 +24689,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22350,6 +24700,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7451758753425153", "start": 0, "type": "Literal", @@ -22363,6 +24714,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21318737562458967", "start": 0, "type": "Literal", @@ -22374,6 +24726,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22381,6 +24734,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22391,9 +24745,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22404,6 +24760,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22416,6 +24773,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22426,6 +24784,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1873200727251887", "start": 0, "type": "Literal", @@ -22439,6 +24798,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15961374297992448", "start": 0, "type": "Literal", @@ -22450,6 +24810,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22457,6 +24818,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22467,9 +24829,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22480,6 +24844,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22492,6 +24857,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22503,6 +24869,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05729464924537564", "start": 0, "type": "Literal", @@ -22514,6 +24881,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22523,6 +24891,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5436345558508746", "start": 0, "type": "Literal", @@ -22534,6 +24903,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22541,6 +24911,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22551,9 +24922,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22564,6 +24937,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22576,6 +24950,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22587,6 +24962,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09582414374469184", "start": 0, "type": "Literal", @@ -22598,6 +24974,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22607,6 +24984,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7533839681212353", "start": 0, "type": "Literal", @@ -22618,6 +24996,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22625,6 +25004,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22635,9 +25015,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22648,6 +25030,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22660,6 +25043,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22671,6 +25055,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17254116580051848", "start": 0, "type": "Literal", @@ -22682,6 +25067,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22691,6 +25077,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7669113400341137", "start": 0, "type": "Literal", @@ -22702,6 +25089,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22709,6 +25097,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22719,9 +25108,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22732,6 +25123,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22744,6 +25136,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22754,6 +25147,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8944730032887609", "start": 0, "type": "Literal", @@ -22766,6 +25160,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6093318694741408", "start": 0, "type": "Literal", @@ -22777,6 +25172,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22787,9 +25183,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22800,6 +25198,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22812,6 +25211,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22823,6 +25223,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -22834,6 +25235,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22842,6 +25244,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -22853,6 +25256,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22863,9 +25267,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22876,6 +25282,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22888,6 +25295,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22899,6 +25307,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -22910,6 +25319,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22918,6 +25328,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -22929,6 +25340,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -22939,9 +25351,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -22952,6 +25366,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -22964,6 +25379,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -22975,6 +25391,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -22986,6 +25403,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -22994,6 +25412,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -23005,6 +25424,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23015,9 +25435,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23028,6 +25450,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23040,6 +25463,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23051,6 +25475,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -23062,6 +25487,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23071,6 +25497,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -23082,6 +25509,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23089,6 +25517,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23099,9 +25528,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23112,6 +25543,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23124,6 +25556,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23134,6 +25567,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -23146,6 +25580,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -23157,6 +25592,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23167,9 +25603,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23180,6 +25618,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23192,6 +25631,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23202,6 +25642,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -23214,6 +25655,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -23225,6 +25667,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23235,9 +25678,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23248,6 +25693,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23260,6 +25706,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23271,6 +25718,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -23282,6 +25730,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23290,6 +25739,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -23301,6 +25751,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23311,9 +25762,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23324,6 +25777,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23336,6 +25790,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23347,6 +25802,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -23358,6 +25814,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23367,6 +25824,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -23378,6 +25836,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23385,6 +25844,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23395,9 +25855,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23408,6 +25870,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23420,6 +25883,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23430,6 +25894,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -23443,6 +25908,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -23454,6 +25920,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23461,6 +25928,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23471,9 +25939,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23484,6 +25954,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23496,6 +25967,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23506,6 +25978,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -23519,6 +25992,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -23530,6 +26004,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23537,6 +26012,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23547,9 +26023,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23560,6 +26038,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23572,6 +26051,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23582,6 +26062,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -23595,6 +26076,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -23606,6 +26088,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23613,6 +26096,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23623,9 +26107,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23636,6 +26122,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23648,6 +26135,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23659,6 +26147,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -23670,6 +26159,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23678,6 +26168,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -23689,6 +26180,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23699,9 +26191,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23712,6 +26206,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23724,6 +26219,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23734,6 +26230,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -23746,6 +26243,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -23757,6 +26255,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23767,9 +26266,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23780,6 +26281,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23792,6 +26294,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23803,6 +26306,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -23814,6 +26318,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23822,6 +26327,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -23833,6 +26339,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23843,9 +26350,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23856,6 +26365,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23868,6 +26378,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23879,6 +26390,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -23890,6 +26402,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23899,6 +26412,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -23910,6 +26424,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23917,6 +26432,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -23927,9 +26443,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -23940,6 +26458,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -23952,6 +26471,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -23963,6 +26483,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -23974,6 +26495,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -23983,6 +26505,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -23994,6 +26517,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24001,6 +26525,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24011,9 +26536,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24024,6 +26551,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24036,6 +26564,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24046,6 +26575,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -24058,6 +26588,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -24069,6 +26600,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24079,9 +26611,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24092,6 +26626,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24104,6 +26639,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24114,6 +26650,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -24127,6 +26664,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -24138,6 +26676,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24145,6 +26684,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24155,9 +26695,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24168,6 +26710,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24180,6 +26723,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24190,6 +26734,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -24202,6 +26747,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -24213,6 +26759,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24223,9 +26770,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24236,6 +26785,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24248,6 +26798,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24258,6 +26809,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -24271,6 +26823,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -24282,6 +26835,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24289,6 +26843,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24299,9 +26854,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24312,6 +26869,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24324,6 +26882,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24334,6 +26893,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -24346,6 +26906,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -24357,6 +26918,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24367,9 +26929,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24380,6 +26944,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24392,6 +26957,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24402,6 +26968,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -24414,6 +26981,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -24425,6 +26993,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24435,9 +27004,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24448,6 +27019,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24460,6 +27032,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24470,6 +27043,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -24482,6 +27056,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -24493,6 +27068,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24503,9 +27079,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24516,6 +27094,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24528,6 +27107,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24539,6 +27119,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -24550,6 +27131,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24559,6 +27141,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -24570,6 +27153,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24577,6 +27161,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24587,9 +27172,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24600,6 +27187,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24612,6 +27200,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24622,6 +27211,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -24635,6 +27225,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -24646,6 +27237,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24653,6 +27245,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24663,9 +27256,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24676,6 +27271,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24688,6 +27284,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24699,6 +27296,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -24710,6 +27308,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24719,6 +27318,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -24730,6 +27330,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24737,6 +27338,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24747,9 +27349,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24760,6 +27364,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24772,6 +27377,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24782,6 +27388,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -24795,6 +27402,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -24806,6 +27414,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24813,6 +27422,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24823,9 +27433,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24836,6 +27448,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24848,6 +27461,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24858,6 +27472,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -24871,6 +27486,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -24882,6 +27498,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24889,6 +27506,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24899,9 +27517,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24912,6 +27532,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -24924,6 +27545,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -24934,6 +27556,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -24947,6 +27570,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -24958,6 +27582,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -24965,6 +27590,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -24975,9 +27601,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -24988,6 +27616,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25000,6 +27629,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25011,6 +27641,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -25022,6 +27653,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25031,6 +27663,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -25042,6 +27675,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25049,6 +27683,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25059,9 +27694,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25072,6 +27709,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25084,6 +27722,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25094,6 +27733,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -25106,6 +27746,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -25117,6 +27758,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25127,9 +27769,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25140,6 +27784,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25152,6 +27797,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25162,6 +27808,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -25174,6 +27821,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -25185,6 +27833,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25195,9 +27844,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25208,6 +27859,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25220,6 +27872,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25231,6 +27884,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -25242,6 +27896,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25250,6 +27905,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -25261,6 +27917,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25271,9 +27928,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25284,6 +27943,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25296,6 +27956,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25307,6 +27968,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -25318,6 +27980,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25327,6 +27990,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -25338,6 +28002,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25345,6 +28010,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25355,9 +28021,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25368,6 +28036,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25380,6 +28049,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25390,6 +28060,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -25403,6 +28074,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -25414,6 +28086,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25421,6 +28094,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25431,9 +28105,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25444,6 +28120,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25456,6 +28133,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25467,6 +28145,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -25478,6 +28157,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25486,6 +28166,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -25497,6 +28178,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25507,9 +28189,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25520,6 +28204,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25532,6 +28217,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25542,6 +28228,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -25554,6 +28241,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -25565,6 +28253,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25575,9 +28264,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25588,6 +28279,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25600,6 +28292,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25611,6 +28304,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -25622,6 +28316,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25631,6 +28326,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -25642,6 +28338,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25649,6 +28346,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25659,9 +28357,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25672,6 +28372,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25684,6 +28385,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25694,6 +28396,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -25707,6 +28410,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -25718,6 +28422,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25725,6 +28430,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25735,9 +28441,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25748,6 +28456,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25760,6 +28469,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25770,6 +28480,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -25783,6 +28494,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -25794,6 +28506,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25801,6 +28514,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25811,9 +28525,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25824,6 +28540,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25836,6 +28553,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25846,6 +28564,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -25858,6 +28577,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -25869,6 +28589,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25879,9 +28600,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25892,6 +28615,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25904,6 +28628,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25915,6 +28640,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -25926,6 +28652,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -25934,6 +28661,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -25945,6 +28673,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -25955,9 +28684,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -25968,6 +28699,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -25980,6 +28712,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -25990,6 +28723,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -26002,6 +28736,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -26013,6 +28748,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26023,9 +28759,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26036,6 +28774,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26048,6 +28787,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26058,6 +28798,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -26070,6 +28811,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -26081,6 +28823,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26091,9 +28834,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26104,6 +28849,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26116,6 +28862,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26127,6 +28874,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -26138,6 +28886,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26147,6 +28896,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -26158,6 +28908,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26165,6 +28916,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26175,9 +28927,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26188,6 +28942,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26200,6 +28955,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26210,6 +28966,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -26223,6 +28980,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -26234,6 +28992,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26241,6 +29000,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26251,9 +29011,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26264,6 +29026,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26276,6 +29039,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26287,6 +29051,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -26298,6 +29063,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26307,6 +29073,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -26318,6 +29085,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26325,6 +29093,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26335,9 +29104,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26348,6 +29119,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26360,6 +29132,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26371,6 +29144,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -26382,6 +29156,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26391,6 +29166,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -26402,6 +29178,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26409,6 +29186,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26419,9 +29197,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26432,6 +29212,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26444,6 +29225,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26455,6 +29237,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -26466,6 +29249,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26474,6 +29258,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -26485,6 +29270,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26495,9 +29281,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26508,6 +29296,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26520,6 +29309,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26531,6 +29321,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -26542,6 +29333,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26551,6 +29343,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -26562,6 +29355,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26569,6 +29363,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26579,9 +29374,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26592,6 +29389,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26604,6 +29402,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26614,6 +29413,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -26627,6 +29427,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -26638,6 +29439,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26645,6 +29447,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26655,9 +29458,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26668,6 +29473,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26680,6 +29486,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26691,6 +29498,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -26702,6 +29510,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26710,6 +29519,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -26721,6 +29531,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26731,9 +29542,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26744,6 +29557,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26756,6 +29570,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26767,6 +29582,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -26778,6 +29594,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26786,6 +29603,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -26797,6 +29615,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26807,9 +29626,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26820,6 +29641,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26832,6 +29654,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26843,6 +29666,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -26854,6 +29678,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26863,6 +29688,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -26874,6 +29700,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -26881,6 +29708,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26891,9 +29719,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26904,6 +29734,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26916,6 +29747,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26926,6 +29758,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -26938,6 +29771,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -26949,6 +29783,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -26959,9 +29794,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -26972,6 +29809,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -26984,6 +29822,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -26994,6 +29833,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -27006,6 +29846,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -27017,6 +29858,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27027,9 +29869,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27040,6 +29884,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27052,6 +29897,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27063,6 +29909,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -27074,6 +29921,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27082,6 +29930,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -27093,6 +29942,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27103,9 +29953,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27116,6 +29968,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27128,6 +29981,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27139,6 +29993,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -27150,6 +30005,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27159,6 +30015,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -27170,6 +30027,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27177,6 +30035,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27187,9 +30046,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27200,6 +30061,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27212,6 +30074,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27222,6 +30085,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -27235,6 +30099,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -27246,6 +30111,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27253,6 +30119,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27263,9 +30130,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27276,6 +30145,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27288,6 +30158,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27298,6 +30169,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -27311,6 +30183,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -27322,6 +30195,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27329,6 +30203,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27339,9 +30214,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27352,6 +30229,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27364,6 +30242,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27374,6 +30253,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -27387,6 +30267,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -27398,6 +30279,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27405,6 +30287,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27415,9 +30298,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27428,6 +30313,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27440,6 +30326,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27451,6 +30338,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -27462,6 +30350,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27470,6 +30359,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -27481,6 +30371,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27491,9 +30382,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27504,6 +30397,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27516,6 +30410,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27526,6 +30421,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -27538,6 +30434,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -27549,6 +30446,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27559,9 +30457,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27572,6 +30472,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27584,6 +30485,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27595,6 +30497,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -27606,6 +30509,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27614,6 +30518,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -27625,6 +30530,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27635,9 +30541,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27648,6 +30556,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27660,6 +30569,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27671,6 +30581,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -27682,6 +30593,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27691,6 +30603,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -27702,6 +30615,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27709,6 +30623,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27719,9 +30634,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27732,6 +30649,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27744,6 +30662,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27755,6 +30674,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -27766,6 +30686,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27775,6 +30696,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -27786,6 +30708,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27793,6 +30716,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27803,9 +30727,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27816,6 +30742,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27828,6 +30755,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27838,6 +30766,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -27850,6 +30779,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -27861,6 +30791,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27871,9 +30802,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27884,6 +30817,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27896,6 +30830,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27906,6 +30841,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -27919,6 +30855,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -27930,6 +30867,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -27937,6 +30875,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -27947,9 +30886,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -27960,6 +30901,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -27972,6 +30914,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -27982,6 +30925,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -27994,6 +30938,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -28005,6 +30950,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28015,9 +30961,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28028,6 +30976,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28040,6 +30989,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28050,6 +31000,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -28063,6 +31014,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -28074,6 +31026,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28081,6 +31034,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28091,9 +31045,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28104,6 +31060,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28116,6 +31073,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28126,6 +31084,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -28138,6 +31097,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -28149,6 +31109,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28159,9 +31120,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28172,6 +31135,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28184,6 +31148,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28194,6 +31159,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -28206,6 +31172,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -28217,6 +31184,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28227,9 +31195,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28240,6 +31210,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28252,6 +31223,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28262,6 +31234,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -28274,6 +31247,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -28285,6 +31259,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28295,9 +31270,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28308,6 +31285,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28320,6 +31298,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28331,6 +31310,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -28342,6 +31322,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28350,6 +31331,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -28361,6 +31343,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28371,9 +31354,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28384,6 +31369,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28396,6 +31382,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28407,6 +31394,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -28418,6 +31406,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28426,6 +31415,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -28437,6 +31427,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28447,9 +31438,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28460,6 +31453,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28472,6 +31466,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28483,6 +31478,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -28494,6 +31490,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28502,6 +31499,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -28513,6 +31511,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28523,9 +31522,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28536,6 +31537,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28548,6 +31550,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28559,6 +31562,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -28570,6 +31574,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28579,6 +31584,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -28590,6 +31596,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28597,6 +31604,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28607,9 +31615,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28620,6 +31630,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28632,6 +31643,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28642,6 +31654,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -28654,6 +31667,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -28665,6 +31679,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28675,9 +31690,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28688,6 +31705,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28700,6 +31718,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28710,6 +31729,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -28722,6 +31742,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -28733,6 +31754,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28743,9 +31765,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28756,6 +31780,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28768,6 +31793,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28779,6 +31805,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -28790,6 +31817,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28798,6 +31826,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -28809,6 +31838,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28819,9 +31849,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28832,6 +31864,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28844,6 +31877,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28855,6 +31889,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -28866,6 +31901,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28875,6 +31911,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -28886,6 +31923,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28893,6 +31931,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28903,9 +31942,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28916,6 +31957,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -28928,6 +31970,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -28938,6 +31981,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -28951,6 +31995,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -28962,6 +32007,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -28969,6 +32015,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -28979,9 +32026,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -28992,6 +32041,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29004,6 +32054,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29014,6 +32065,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -29027,6 +32079,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -29038,6 +32091,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29045,6 +32099,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29055,9 +32110,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29068,6 +32125,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29080,6 +32138,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29090,6 +32149,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -29103,6 +32163,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -29114,6 +32175,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29121,6 +32183,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29131,9 +32194,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29144,6 +32209,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29156,6 +32222,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29167,6 +32234,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -29178,6 +32246,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29186,6 +32255,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -29197,6 +32267,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29207,9 +32278,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29220,6 +32293,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29232,6 +32306,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29242,6 +32317,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -29254,6 +32330,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -29265,6 +32342,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29275,9 +32353,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29288,6 +32368,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29300,6 +32381,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29311,6 +32393,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -29322,6 +32405,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29330,6 +32414,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -29341,6 +32426,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29351,9 +32437,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29364,6 +32452,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29376,6 +32465,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29387,6 +32477,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -29398,6 +32489,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29407,6 +32499,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -29418,6 +32511,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29425,6 +32519,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29435,9 +32530,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29448,6 +32545,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29460,6 +32558,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29471,6 +32570,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -29482,6 +32582,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29491,6 +32592,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -29502,6 +32604,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29509,6 +32612,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29519,9 +32623,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29532,6 +32638,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29544,6 +32651,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29554,6 +32662,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -29566,6 +32675,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -29577,6 +32687,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29587,9 +32698,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29600,6 +32713,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29612,6 +32726,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29622,6 +32737,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -29635,6 +32751,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -29646,6 +32763,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29653,6 +32771,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29663,9 +32782,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29676,6 +32797,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29688,6 +32810,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29698,6 +32821,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -29710,6 +32834,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -29721,6 +32846,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29731,9 +32857,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29744,6 +32872,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29756,6 +32885,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29766,6 +32896,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -29779,6 +32910,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -29790,6 +32922,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -29797,6 +32930,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29807,9 +32941,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29820,6 +32956,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29832,6 +32969,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29842,6 +32980,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -29854,6 +32993,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -29865,6 +33005,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29875,9 +33016,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29888,6 +33031,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29900,6 +33044,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29910,6 +33055,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -29922,6 +33068,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -29933,6 +33080,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -29943,9 +33091,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -29956,6 +33106,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -29968,6 +33119,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -29978,6 +33130,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -29990,6 +33143,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -30001,6 +33155,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30011,9 +33166,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30024,6 +33181,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30036,6 +33194,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30047,6 +33206,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -30058,6 +33218,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30067,6 +33228,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -30078,6 +33240,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30085,6 +33248,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30095,9 +33259,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30108,6 +33274,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30120,6 +33287,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30130,6 +33298,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -30143,6 +33312,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -30154,6 +33324,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30161,6 +33332,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30171,9 +33343,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30184,6 +33358,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30196,6 +33371,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30207,6 +33383,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -30218,6 +33395,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30227,6 +33405,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -30238,6 +33417,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30245,6 +33425,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30255,9 +33436,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30268,6 +33451,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30280,6 +33464,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30290,6 +33475,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -30303,6 +33489,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -30314,6 +33501,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30321,6 +33509,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30331,9 +33520,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30344,6 +33535,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30356,6 +33548,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30366,6 +33559,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -30379,6 +33573,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -30390,6 +33585,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30397,6 +33593,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30407,9 +33604,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30420,6 +33619,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30432,6 +33632,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30442,6 +33643,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -30455,6 +33657,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -30466,6 +33669,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30473,6 +33677,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30483,9 +33688,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30496,6 +33703,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30508,6 +33716,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30519,6 +33728,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -30530,6 +33740,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30539,6 +33750,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -30550,6 +33762,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30557,6 +33770,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30567,9 +33781,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30580,6 +33796,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30592,6 +33809,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30602,6 +33820,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -30614,6 +33833,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -30625,6 +33845,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30635,9 +33856,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30648,6 +33871,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30660,6 +33884,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30670,6 +33895,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -30682,6 +33908,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -30693,6 +33920,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30703,9 +33931,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30716,6 +33946,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30728,6 +33959,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30739,6 +33971,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -30750,6 +33983,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30758,6 +33992,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -30769,6 +34004,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30779,9 +34015,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30792,6 +34030,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30804,6 +34043,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30815,6 +34055,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -30826,6 +34067,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30835,6 +34077,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -30846,6 +34089,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30853,6 +34097,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30863,9 +34108,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30876,6 +34123,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30888,6 +34136,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30898,6 +34147,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -30911,6 +34161,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -30922,6 +34173,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30929,6 +34181,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -30939,9 +34192,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -30952,6 +34207,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -30964,6 +34220,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -30975,6 +34232,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -30986,6 +34244,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -30994,6 +34253,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -31005,6 +34265,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31015,9 +34276,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31028,6 +34291,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31040,6 +34304,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31050,6 +34315,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -31062,6 +34328,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -31073,6 +34340,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31083,9 +34351,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31096,6 +34366,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31108,6 +34379,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31119,6 +34391,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -31130,6 +34403,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31139,6 +34413,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -31150,6 +34425,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31157,6 +34433,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31167,9 +34444,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31180,6 +34459,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31192,6 +34472,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31202,6 +34483,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -31215,6 +34497,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -31226,6 +34509,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31233,6 +34517,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31243,9 +34528,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31256,6 +34543,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31268,6 +34556,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31278,6 +34567,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -31291,6 +34581,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -31302,6 +34593,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31309,6 +34601,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31319,9 +34612,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31332,6 +34627,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31344,6 +34640,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31354,6 +34651,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -31366,6 +34664,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -31377,6 +34676,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31387,9 +34687,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31400,6 +34702,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31412,6 +34715,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31423,6 +34727,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -31434,6 +34739,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31442,6 +34748,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -31453,6 +34760,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31463,9 +34771,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31476,6 +34786,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31488,6 +34799,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31498,6 +34810,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -31510,6 +34823,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -31521,6 +34835,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31531,9 +34846,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31544,6 +34861,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31556,6 +34874,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31566,6 +34885,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -31578,6 +34898,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -31589,6 +34910,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31599,9 +34921,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31612,6 +34936,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31624,6 +34949,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31635,6 +34961,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -31646,6 +34973,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31655,6 +34983,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -31666,6 +34995,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31673,6 +35003,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31683,9 +35014,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31696,6 +35029,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31708,6 +35042,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31718,6 +35053,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -31731,6 +35067,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -31742,6 +35079,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31749,6 +35087,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31759,9 +35098,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31772,6 +35113,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31784,6 +35126,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31795,6 +35138,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -31806,6 +35150,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31815,6 +35160,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -31826,6 +35172,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31833,6 +35180,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31843,9 +35191,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31856,6 +35206,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31868,6 +35219,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31879,6 +35231,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -31890,6 +35243,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31899,6 +35253,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -31910,6 +35265,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31917,6 +35273,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -31927,9 +35284,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -31940,6 +35299,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -31952,6 +35312,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -31963,6 +35324,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -31974,6 +35336,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -31982,6 +35345,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -31993,6 +35357,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32003,9 +35368,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32016,6 +35383,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32028,6 +35396,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32039,6 +35408,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -32050,6 +35420,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32059,6 +35430,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -32070,6 +35442,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32077,6 +35450,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32087,9 +35461,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32100,6 +35476,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32112,6 +35489,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32122,6 +35500,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -32135,6 +35514,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -32146,6 +35526,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32153,6 +35534,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32163,9 +35545,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32176,6 +35560,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32188,6 +35573,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32199,6 +35585,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -32210,6 +35597,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32218,6 +35606,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -32229,6 +35618,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32239,9 +35629,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32252,6 +35644,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32264,6 +35657,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32275,6 +35669,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -32286,6 +35681,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32294,6 +35690,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -32305,6 +35702,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32315,9 +35713,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32328,6 +35728,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32340,6 +35741,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32351,6 +35753,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -32362,6 +35765,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32371,6 +35775,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -32382,6 +35787,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32389,6 +35795,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32399,9 +35806,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32412,6 +35821,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32424,6 +35834,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32434,6 +35845,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -32446,6 +35858,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -32457,6 +35870,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32467,9 +35881,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32480,6 +35896,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32492,6 +35909,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32502,6 +35920,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -32514,6 +35933,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -32525,6 +35945,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32535,9 +35956,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32548,6 +35971,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32560,6 +35984,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32571,6 +35996,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -32582,6 +36008,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32590,6 +36017,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -32601,6 +36029,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32611,9 +36040,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32624,6 +36055,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32636,6 +36068,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32647,6 +36080,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -32658,6 +36092,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32667,6 +36102,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -32678,6 +36114,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32685,6 +36122,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32695,9 +36133,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32708,6 +36148,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32720,6 +36161,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32730,6 +36172,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -32743,6 +36186,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -32754,6 +36198,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32761,6 +36206,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32771,9 +36217,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32784,6 +36232,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32796,6 +36245,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32806,6 +36256,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -32819,6 +36270,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -32830,6 +36282,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32837,6 +36290,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32847,9 +36301,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32860,6 +36316,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32872,6 +36329,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32882,6 +36340,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -32895,6 +36354,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -32906,6 +36366,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32913,6 +36374,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32923,9 +36385,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -32936,6 +36400,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -32948,6 +36413,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -32959,6 +36425,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -32970,6 +36437,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -32978,6 +36446,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -32989,6 +36458,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -32999,9 +36469,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33012,6 +36484,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33024,6 +36497,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33034,6 +36508,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -33046,6 +36521,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -33057,6 +36533,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33067,9 +36544,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33080,6 +36559,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33092,6 +36572,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33103,6 +36584,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -33114,6 +36596,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33122,6 +36605,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -33133,6 +36617,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33143,9 +36628,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33156,6 +36643,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33168,6 +36656,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33179,6 +36668,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -33190,6 +36680,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33199,6 +36690,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -33210,6 +36702,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33217,6 +36710,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33227,9 +36721,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33240,6 +36736,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33252,6 +36749,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33263,6 +36761,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -33274,6 +36773,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33283,6 +36783,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -33294,6 +36795,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33301,6 +36803,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33311,9 +36814,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33324,6 +36829,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33336,6 +36842,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33346,6 +36853,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -33358,6 +36866,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -33369,6 +36878,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33379,9 +36889,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33392,6 +36904,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33404,6 +36917,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33414,6 +36928,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -33427,6 +36942,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -33438,6 +36954,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33445,6 +36962,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33455,9 +36973,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33468,6 +36988,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33480,6 +37001,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33490,6 +37012,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -33502,6 +37025,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -33513,6 +37037,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33523,9 +37048,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33536,6 +37063,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33548,6 +37076,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33558,6 +37087,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -33571,6 +37101,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -33582,6 +37113,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33589,6 +37121,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33599,9 +37132,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33612,6 +37147,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33624,6 +37160,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33634,6 +37171,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -33646,6 +37184,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -33657,6 +37196,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33667,9 +37207,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33680,6 +37222,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33692,6 +37235,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33702,6 +37246,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -33714,6 +37259,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -33725,6 +37271,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33735,9 +37282,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33748,6 +37297,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33760,6 +37310,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33771,6 +37322,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09582414374469184", "start": 0, "type": "Literal", @@ -33782,6 +37334,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33791,6 +37344,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7533839681212353", "start": 0, "type": "Literal", @@ -33802,6 +37356,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33809,6 +37364,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33819,9 +37375,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33832,6 +37390,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33844,6 +37403,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33855,6 +37415,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17254116580051848", "start": 0, "type": "Literal", @@ -33866,6 +37427,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33875,6 +37437,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7669113400341137", "start": 0, "type": "Literal", @@ -33886,6 +37449,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -33893,6 +37457,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33903,9 +37468,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33916,6 +37483,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33928,6 +37496,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -33938,6 +37507,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8944730032887609", "start": 0, "type": "Literal", @@ -33950,6 +37520,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6093318694741408", "start": 0, "type": "Literal", @@ -33961,6 +37532,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -33971,9 +37543,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -33984,6 +37558,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -33996,6 +37571,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34007,6 +37583,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -34018,6 +37595,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34027,6 +37605,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -34038,6 +37617,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34045,6 +37625,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34055,9 +37636,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34068,6 +37651,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34080,6 +37664,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34090,6 +37675,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -34103,6 +37689,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -34114,6 +37701,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34121,6 +37709,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34131,9 +37720,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34144,6 +37735,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34156,6 +37748,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34166,6 +37759,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -34179,6 +37773,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -34190,6 +37785,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34197,6 +37793,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34207,9 +37804,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34220,6 +37819,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34232,6 +37832,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34243,6 +37844,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -34254,6 +37856,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34262,6 +37865,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -34273,6 +37877,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34283,9 +37888,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34296,6 +37903,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34308,6 +37916,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34318,6 +37927,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9464450621708211", "start": 0, "type": "Literal", @@ -34331,6 +37941,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2684908127803667", "start": 0, "type": "Literal", @@ -34342,6 +37953,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34349,6 +37961,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34359,9 +37972,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34372,6 +37987,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34384,6 +38000,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34394,6 +38011,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5241732366617591", "start": 0, "type": "Literal", @@ -34406,6 +38024,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9011437416408563", "start": 0, "type": "Literal", @@ -34417,6 +38036,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34427,9 +38047,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34440,6 +38062,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34452,6 +38075,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34463,6 +38087,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14255393713960607", "start": 0, "type": "Literal", @@ -34474,6 +38099,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34483,6 +38109,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5194262624564814", "start": 0, "type": "Literal", @@ -34494,6 +38121,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34501,6 +38129,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34511,9 +38140,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34524,6 +38155,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34536,6 +38168,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34547,6 +38180,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4287123231350338", "start": 0, "type": "Literal", @@ -34558,6 +38192,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34567,6 +38202,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4223564528725028", "start": 0, "type": "Literal", @@ -34578,6 +38214,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34585,6 +38222,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34595,9 +38233,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34608,6 +38248,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34620,6 +38261,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34631,6 +38273,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09316367294024519", "start": 0, "type": "Literal", @@ -34642,6 +38285,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34651,6 +38295,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9063127021008246", "start": 0, "type": "Literal", @@ -34662,6 +38307,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34669,6 +38315,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34679,9 +38326,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34692,6 +38341,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34704,6 +38354,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34715,6 +38366,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2767766535558669", "start": 0, "type": "Literal", @@ -34726,6 +38378,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34734,6 +38387,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6816248114129131", "start": 0, "type": "Literal", @@ -34745,6 +38399,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34755,9 +38410,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34768,6 +38425,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34780,6 +38438,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34790,6 +38449,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9796762495562534", "start": 0, "type": "Literal", @@ -34803,6 +38463,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0822145668330625", "start": 0, "type": "Literal", @@ -34814,6 +38475,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34821,6 +38483,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34831,9 +38494,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34844,6 +38509,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34856,6 +38522,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34867,6 +38534,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8666513070867441", "start": 0, "type": "Literal", @@ -34878,6 +38546,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34887,6 +38556,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.301053160242023", "start": 0, "type": "Literal", @@ -34898,6 +38568,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -34905,6 +38576,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34915,9 +38587,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34928,6 +38602,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -34940,6 +38615,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -34950,6 +38626,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.537415656028112", "start": 0, "type": "Literal", @@ -34962,6 +38639,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020272692875002774", "start": 0, "type": "Literal", @@ -34973,6 +38651,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -34983,9 +38662,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -34996,6 +38677,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35008,6 +38690,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35018,6 +38701,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9332396256457531", "start": 0, "type": "Literal", @@ -35031,6 +38715,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6228175690649898", "start": 0, "type": "Literal", @@ -35042,6 +38727,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35049,6 +38735,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35059,9 +38746,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35072,6 +38761,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35084,6 +38774,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35094,6 +38785,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.18052415837320734", "start": 0, "type": "Literal", @@ -35107,6 +38799,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.36894384647296197", "start": 0, "type": "Literal", @@ -35118,6 +38811,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35125,6 +38819,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35135,9 +38830,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35148,6 +38845,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35160,6 +38858,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35170,6 +38869,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5384372634075449", "start": 0, "type": "Literal", @@ -35182,6 +38882,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2377565050887107", "start": 0, "type": "Literal", @@ -35193,6 +38894,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35203,9 +38905,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35216,6 +38920,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35228,6 +38933,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35238,6 +38944,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39043436929278874", "start": 0, "type": "Literal", @@ -35250,6 +38957,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14273182483160451", "start": 0, "type": "Literal", @@ -35261,6 +38969,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35271,9 +38980,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35284,6 +38995,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35296,6 +39008,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35306,6 +39019,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09782890412897283", "start": 0, "type": "Literal", @@ -35318,6 +39032,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9907667536909659", "start": 0, "type": "Literal", @@ -35329,6 +39044,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35339,9 +39055,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35352,6 +39070,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35364,6 +39083,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35374,6 +39094,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5286610085921146", "start": 0, "type": "Literal", @@ -35387,6 +39108,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7924508308419256", "start": 0, "type": "Literal", @@ -35398,6 +39120,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35405,6 +39128,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35415,9 +39139,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35428,6 +39154,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35440,6 +39167,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35450,6 +39178,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3789978184503342", "start": 0, "type": "Literal", @@ -35462,6 +39191,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12396120576838676", "start": 0, "type": "Literal", @@ -35473,6 +39203,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35483,9 +39214,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35496,6 +39229,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35508,6 +39242,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35519,6 +39254,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9484912744890612", "start": 0, "type": "Literal", @@ -35530,6 +39266,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35538,6 +39275,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6729649846476855", "start": 0, "type": "Literal", @@ -35549,6 +39287,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35559,9 +39298,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35572,6 +39313,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35584,6 +39326,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35594,6 +39337,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7451758753425153", "start": 0, "type": "Literal", @@ -35607,6 +39351,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21318737562458967", "start": 0, "type": "Literal", @@ -35618,6 +39363,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35625,6 +39371,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35635,9 +39382,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35648,6 +39397,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35660,6 +39410,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35670,6 +39421,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1873200727251887", "start": 0, "type": "Literal", @@ -35683,6 +39435,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15961374297992448", "start": 0, "type": "Literal", @@ -35694,6 +39447,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35701,6 +39455,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35711,9 +39466,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35724,6 +39481,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35736,6 +39494,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35747,6 +39506,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05729464924537564", "start": 0, "type": "Literal", @@ -35758,6 +39518,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35767,6 +39528,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5436345558508746", "start": 0, "type": "Literal", @@ -35778,6 +39540,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35785,6 +39548,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35795,9 +39559,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35808,6 +39574,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35820,6 +39587,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35831,6 +39599,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09582414374469184", "start": 0, "type": "Literal", @@ -35842,6 +39611,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35851,6 +39621,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7533839681212353", "start": 0, "type": "Literal", @@ -35862,6 +39633,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35869,6 +39641,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35879,9 +39652,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35892,6 +39667,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35904,6 +39680,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35915,6 +39692,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17254116580051848", "start": 0, "type": "Literal", @@ -35926,6 +39704,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35935,6 +39714,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7669113400341137", "start": 0, "type": "Literal", @@ -35946,6 +39726,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -35953,6 +39734,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -35963,9 +39745,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -35976,6 +39760,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -35988,6 +39773,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -35998,6 +39784,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8944730032887609", "start": 0, "type": "Literal", @@ -36010,6 +39797,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6093318694741408", "start": 0, "type": "Literal", @@ -36021,6 +39809,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36031,9 +39820,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36044,6 +39835,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36056,6 +39848,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36067,6 +39860,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6238548626325471", "start": 0, "type": "Literal", @@ -36078,6 +39872,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36086,6 +39881,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4053626746020169", "start": 0, "type": "Literal", @@ -36097,6 +39893,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36107,9 +39904,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36120,6 +39919,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36132,6 +39932,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36142,6 +39943,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1379445992766417", "start": 0, "type": "Literal", @@ -36155,6 +39957,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.47871087958516045", "start": 0, "type": "Literal", @@ -36166,6 +39969,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36173,6 +39977,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36183,9 +39988,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36196,6 +40003,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36208,6 +40016,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36219,6 +40028,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9516767113283946", "start": 0, "type": "Literal", @@ -36230,6 +40040,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36238,6 +40049,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8619900618578948", "start": 0, "type": "Literal", @@ -36249,6 +40061,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36259,9 +40072,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36272,6 +40087,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36284,6 +40100,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36294,6 +40111,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9398732950992088", "start": 0, "type": "Literal", @@ -36306,6 +40124,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6326239915683629", "start": 0, "type": "Literal", @@ -36317,6 +40136,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36327,9 +40147,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36340,6 +40162,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36352,6 +40175,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36363,6 +40187,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8631974445502164", "start": 0, "type": "Literal", @@ -36374,6 +40199,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36382,6 +40208,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.016153555523963137", "start": 0, "type": "Literal", @@ -36393,6 +40220,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36403,9 +40231,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36416,6 +40246,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36428,6 +40259,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36438,6 +40270,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19167797120152907", "start": 0, "type": "Literal", @@ -36451,6 +40284,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4916414381703984", "start": 0, "type": "Literal", @@ -36462,6 +40296,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36469,6 +40304,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36479,9 +40315,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36492,6 +40330,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36504,6 +40343,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36515,6 +40355,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8644261221501586", "start": 0, "type": "Literal", @@ -36526,6 +40367,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36535,6 +40377,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11434763886359756", "start": 0, "type": "Literal", @@ -36546,6 +40389,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36553,6 +40397,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36563,9 +40408,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36576,6 +40423,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36588,6 +40436,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36599,6 +40448,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.029081958413378572", "start": 0, "type": "Literal", @@ -36610,6 +40460,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36619,6 +40470,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5214138808318329", "start": 0, "type": "Literal", @@ -36630,6 +40482,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36637,6 +40490,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36647,9 +40501,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36660,6 +40516,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36672,6 +40529,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36683,6 +40541,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8713091851579695", "start": 0, "type": "Literal", @@ -36694,6 +40553,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36702,6 +40562,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7866284950967315", "start": 0, "type": "Literal", @@ -36713,6 +40574,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36723,9 +40585,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36736,6 +40600,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36748,6 +40613,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36758,6 +40624,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.884342023093545", "start": 0, "type": "Literal", @@ -36771,6 +40638,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1825407002568431", "start": 0, "type": "Literal", @@ -36782,6 +40650,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36789,6 +40658,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36799,9 +40669,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36812,6 +40684,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36824,6 +40697,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36835,6 +40709,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6978385295364686", "start": 0, "type": "Literal", @@ -36846,6 +40721,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36854,6 +40730,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0440574328736949", "start": 0, "type": "Literal", @@ -36865,6 +40742,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36875,9 +40753,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36888,6 +40768,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36900,6 +40781,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36911,6 +40793,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.48055049324331556", "start": 0, "type": "Literal", @@ -36922,6 +40805,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36931,6 +40815,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.028546347149214002", "start": 0, "type": "Literal", @@ -36942,6 +40827,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -36949,6 +40835,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -36959,9 +40846,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -36972,6 +40861,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -36984,6 +40874,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -36994,6 +40885,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41283517382864776", "start": 0, "type": "Literal", @@ -37007,6 +40899,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44938038251347323", "start": 0, "type": "Literal", @@ -37018,6 +40911,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37025,6 +40919,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37035,9 +40930,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37048,6 +40945,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37060,6 +40958,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37070,6 +40969,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7911399832501751", "start": 0, "type": "Literal", @@ -37082,6 +40982,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.893446368526005", "start": 0, "type": "Literal", @@ -37093,6 +40994,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37103,9 +41005,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37116,6 +41020,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37128,6 +41033,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37138,6 +41044,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6507434699009087", "start": 0, "type": "Literal", @@ -37151,6 +41058,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6890023920962012", "start": 0, "type": "Literal", @@ -37162,6 +41070,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37169,6 +41078,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37179,9 +41089,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37192,6 +41104,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37204,6 +41117,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37214,6 +41128,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10489019777253028", "start": 0, "type": "Literal", @@ -37227,6 +41142,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5467450997193952", "start": 0, "type": "Literal", @@ -37238,6 +41154,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37245,6 +41162,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37255,9 +41173,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37268,6 +41188,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37280,6 +41201,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37291,6 +41213,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5760905289992633", "start": 0, "type": "Literal", @@ -37302,6 +41225,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37311,6 +41235,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2639900702114173", "start": 0, "type": "Literal", @@ -37322,6 +41247,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37329,6 +41255,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37339,9 +41266,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37352,6 +41281,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37364,6 +41294,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37374,6 +41305,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39828861790105297", "start": 0, "type": "Literal", @@ -37386,6 +41318,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8036624129416385", "start": 0, "type": "Literal", @@ -37397,6 +41330,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37407,9 +41341,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37420,6 +41356,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37432,6 +41369,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37443,6 +41381,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.673848991328553", "start": 0, "type": "Literal", @@ -37454,6 +41393,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37463,6 +41403,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.918443329270668", "start": 0, "type": "Literal", @@ -37474,6 +41415,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37481,6 +41423,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37491,9 +41434,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37504,6 +41449,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37516,6 +41462,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37527,6 +41474,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8599152936179257", "start": 0, "type": "Literal", @@ -37538,6 +41486,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37547,6 +41496,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9499371022680787", "start": 0, "type": "Literal", @@ -37558,6 +41508,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37565,6 +41516,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37575,9 +41527,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37588,6 +41542,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37600,6 +41555,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37610,6 +41566,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6285243831393765", "start": 0, "type": "Literal", @@ -37623,6 +41580,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5186557636566307", "start": 0, "type": "Literal", @@ -37634,6 +41592,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37641,6 +41600,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37651,9 +41611,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37664,6 +41626,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37676,6 +41639,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37686,6 +41650,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3222412784832269", "start": 0, "type": "Literal", @@ -37698,6 +41663,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24621192679727177", "start": 0, "type": "Literal", @@ -37709,6 +41675,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37719,9 +41686,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37732,6 +41701,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37744,6 +41714,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37754,6 +41725,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19754357911311016", "start": 0, "type": "Literal", @@ -37767,6 +41739,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7529246632397206", "start": 0, "type": "Literal", @@ -37778,6 +41751,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37785,6 +41759,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37795,9 +41770,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37808,6 +41785,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37820,6 +41798,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37831,6 +41810,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43181570545865555", "start": 0, "type": "Literal", @@ -37842,6 +41822,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37850,6 +41831,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.18945437402201537", "start": 0, "type": "Literal", @@ -37861,6 +41843,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37871,9 +41854,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37884,6 +41869,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37896,6 +41882,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37906,6 +41893,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8714511090241797", "start": 0, "type": "Literal", @@ -37919,6 +41907,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7215844196844685", "start": 0, "type": "Literal", @@ -37930,6 +41919,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -37937,6 +41927,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -37947,9 +41938,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -37960,6 +41953,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -37972,6 +41966,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -37983,6 +41978,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -37994,6 +41990,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38002,6 +41999,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -38013,6 +42011,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38023,9 +42022,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38036,6 +42037,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38048,6 +42050,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38059,6 +42062,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -38070,6 +42074,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38078,6 +42083,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -38089,6 +42095,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38099,9 +42106,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38112,6 +42121,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38124,6 +42134,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38135,6 +42146,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -38146,6 +42158,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38154,6 +42167,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -38165,6 +42179,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38175,9 +42190,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38188,6 +42205,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38200,6 +42218,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38211,6 +42230,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -38222,6 +42242,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38231,6 +42252,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -38242,6 +42264,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38249,6 +42272,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38259,9 +42283,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38272,6 +42298,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38284,6 +42311,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38294,6 +42322,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -38306,6 +42335,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -38317,6 +42347,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38327,9 +42358,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38340,6 +42373,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38352,6 +42386,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38362,6 +42397,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -38374,6 +42410,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -38385,6 +42422,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38395,9 +42433,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38408,6 +42448,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38420,6 +42461,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38431,6 +42473,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -38442,6 +42485,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38450,6 +42494,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -38461,6 +42506,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38471,9 +42517,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38484,6 +42532,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38496,6 +42545,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38507,6 +42557,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -38518,6 +42569,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38527,6 +42579,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -38538,6 +42591,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38545,6 +42599,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38555,9 +42610,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38568,6 +42625,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38580,6 +42638,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38590,6 +42649,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -38603,6 +42663,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -38614,6 +42675,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38621,6 +42683,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38631,9 +42694,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38644,6 +42709,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38656,6 +42722,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38666,6 +42733,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -38679,6 +42747,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -38690,6 +42759,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38697,6 +42767,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38707,9 +42778,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38720,6 +42793,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38732,6 +42806,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38742,6 +42817,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -38755,6 +42831,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -38766,6 +42843,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38773,6 +42851,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38783,9 +42862,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38796,6 +42877,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38808,6 +42890,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38819,6 +42902,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -38830,6 +42914,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38838,6 +42923,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -38849,6 +42935,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38859,9 +42946,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38872,6 +42961,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38884,6 +42974,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38894,6 +42985,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -38906,6 +42998,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -38917,6 +43010,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -38927,9 +43021,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -38940,6 +43036,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -38952,6 +43049,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -38963,6 +43061,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -38974,6 +43073,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -38982,6 +43082,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -38993,6 +43094,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39003,9 +43105,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39016,6 +43120,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39028,6 +43133,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39039,6 +43145,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -39050,6 +43157,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39059,6 +43167,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -39070,6 +43179,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39077,6 +43187,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39087,9 +43198,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39100,6 +43213,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39112,6 +43226,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39123,6 +43238,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -39134,6 +43250,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39143,6 +43260,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -39154,6 +43272,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39161,6 +43280,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39171,9 +43291,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39184,6 +43306,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39196,6 +43319,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39206,6 +43330,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -39218,6 +43343,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -39229,6 +43355,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39239,9 +43366,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39252,6 +43381,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39264,6 +43394,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39274,6 +43405,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -39287,6 +43419,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -39298,6 +43431,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39305,6 +43439,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39315,9 +43450,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39328,6 +43465,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39340,6 +43478,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39350,6 +43489,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -39362,6 +43502,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -39373,6 +43514,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39383,9 +43525,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39396,6 +43540,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39408,6 +43553,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39418,6 +43564,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -39431,6 +43578,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -39442,6 +43590,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39449,6 +43598,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39459,9 +43609,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39472,6 +43624,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39484,6 +43637,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39494,6 +43648,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -39506,6 +43661,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -39517,6 +43673,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39527,9 +43684,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39540,6 +43699,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39552,6 +43712,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39562,6 +43723,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -39574,6 +43736,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -39585,6 +43748,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39595,9 +43759,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39608,6 +43774,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39620,6 +43787,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39630,6 +43798,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -39642,6 +43811,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -39653,6 +43823,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39663,9 +43834,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39676,6 +43849,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39688,6 +43862,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39699,6 +43874,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -39710,6 +43886,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39719,6 +43896,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -39730,6 +43908,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39737,6 +43916,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39747,9 +43927,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39760,6 +43942,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39772,6 +43955,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39782,6 +43966,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -39795,6 +43980,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -39806,6 +43992,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39813,6 +44000,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39823,9 +44011,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39836,6 +44026,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39848,6 +44039,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39859,6 +44051,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -39870,6 +44063,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39879,6 +44073,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -39890,6 +44085,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39897,6 +44093,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39907,9 +44104,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39920,6 +44119,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -39932,6 +44132,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -39942,6 +44143,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -39955,6 +44157,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -39966,6 +44169,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -39973,6 +44177,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -39983,9 +44188,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -39996,6 +44203,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40008,6 +44216,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40018,6 +44227,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -40031,6 +44241,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -40042,6 +44253,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40049,6 +44261,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40059,9 +44272,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40072,6 +44287,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40084,6 +44300,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40094,6 +44311,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -40107,6 +44325,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -40118,6 +44337,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40125,6 +44345,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40135,9 +44356,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40148,6 +44371,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40160,6 +44384,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40171,6 +44396,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -40182,6 +44408,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40191,6 +44418,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -40202,6 +44430,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40209,6 +44438,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40219,9 +44449,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40232,6 +44464,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40244,6 +44477,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40254,6 +44488,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -40266,6 +44501,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -40277,6 +44513,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40287,9 +44524,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40300,6 +44539,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40312,6 +44552,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40322,6 +44563,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -40334,6 +44576,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -40345,6 +44588,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40355,9 +44599,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40368,6 +44614,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40380,6 +44627,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40391,6 +44639,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -40402,6 +44651,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40410,6 +44660,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -40421,6 +44672,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40431,9 +44683,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40444,6 +44698,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40456,6 +44711,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40467,6 +44723,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -40478,6 +44735,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40487,6 +44745,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -40498,6 +44757,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40505,6 +44765,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40515,9 +44776,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40528,6 +44791,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40540,6 +44804,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40550,6 +44815,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -40563,6 +44829,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -40574,6 +44841,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40581,6 +44849,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40591,9 +44860,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40604,6 +44875,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40616,6 +44888,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40627,6 +44900,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -40638,6 +44912,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40646,6 +44921,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -40657,6 +44933,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40667,9 +44944,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40680,6 +44959,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40692,6 +44972,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40702,6 +44983,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -40714,6 +44996,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -40725,6 +45008,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40735,9 +45019,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40748,6 +45034,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40760,6 +45047,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40771,6 +45059,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -40782,6 +45071,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40791,6 +45081,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -40802,6 +45093,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40809,6 +45101,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40819,9 +45112,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40832,6 +45127,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40844,6 +45140,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40854,6 +45151,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -40867,6 +45165,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -40878,6 +45177,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40885,6 +45185,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40895,9 +45196,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40908,6 +45211,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40920,6 +45224,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -40930,6 +45235,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -40943,6 +45249,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -40954,6 +45261,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -40961,6 +45269,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -40971,9 +45280,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -40984,6 +45295,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -40996,6 +45308,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41006,6 +45319,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -41018,6 +45332,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -41029,6 +45344,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41039,9 +45355,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41052,6 +45370,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41064,6 +45383,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41075,6 +45395,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -41086,6 +45407,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41094,6 +45416,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -41105,6 +45428,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41115,9 +45439,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41128,6 +45454,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41140,6 +45467,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41150,6 +45478,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -41162,6 +45491,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -41173,6 +45503,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41183,9 +45514,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41196,6 +45529,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41208,6 +45542,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41218,6 +45553,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -41230,6 +45566,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -41241,6 +45578,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41251,9 +45589,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41264,6 +45604,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41276,6 +45617,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41287,6 +45629,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -41298,6 +45641,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41307,6 +45651,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -41318,6 +45663,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41325,6 +45671,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41335,9 +45682,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41348,6 +45697,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41360,6 +45710,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41370,6 +45721,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -41383,6 +45735,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -41394,6 +45747,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41401,6 +45755,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41411,9 +45766,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41424,6 +45781,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41436,6 +45794,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41447,6 +45806,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -41458,6 +45818,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41467,6 +45828,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -41478,6 +45840,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41485,6 +45848,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41495,9 +45859,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41508,6 +45874,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41520,6 +45887,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41531,6 +45899,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -41542,6 +45911,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41551,6 +45921,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -41562,6 +45933,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41569,6 +45941,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41579,9 +45952,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41592,6 +45967,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41604,6 +45980,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41615,6 +45992,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -41626,6 +46004,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41634,6 +46013,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -41645,6 +46025,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41655,9 +46036,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41668,6 +46051,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41680,6 +46064,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41691,6 +46076,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -41702,6 +46088,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41711,6 +46098,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -41722,6 +46110,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41729,6 +46118,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41739,9 +46129,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41752,6 +46144,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41764,6 +46157,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41774,6 +46168,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -41787,6 +46182,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -41798,6 +46194,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41805,6 +46202,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41815,9 +46213,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41828,6 +46228,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41840,6 +46241,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41851,6 +46253,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -41862,6 +46265,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41870,6 +46274,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -41881,6 +46286,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41891,9 +46297,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41904,6 +46312,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41916,6 +46325,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -41927,6 +46337,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -41938,6 +46349,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -41946,6 +46358,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -41957,6 +46370,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -41967,9 +46381,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -41980,6 +46396,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -41992,6 +46409,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42003,6 +46421,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -42014,6 +46433,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42023,6 +46443,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -42034,6 +46455,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42041,6 +46463,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42051,9 +46474,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42064,6 +46489,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42076,6 +46502,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42086,6 +46513,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -42098,6 +46526,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -42109,6 +46538,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42119,9 +46549,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42132,6 +46564,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42144,6 +46577,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42154,6 +46588,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -42166,6 +46601,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -42177,6 +46613,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42187,9 +46624,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42200,6 +46639,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42212,6 +46652,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42223,6 +46664,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -42234,6 +46676,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42242,6 +46685,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -42253,6 +46697,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42263,9 +46708,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42276,6 +46723,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42288,6 +46736,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42299,6 +46748,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -42310,6 +46760,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42319,6 +46770,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -42330,6 +46782,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42337,6 +46790,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42347,9 +46801,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42360,6 +46816,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42372,6 +46829,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42382,6 +46840,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -42395,6 +46854,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -42406,6 +46866,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42413,6 +46874,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42423,9 +46885,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42436,6 +46900,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42448,6 +46913,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42458,6 +46924,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -42471,6 +46938,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -42482,6 +46950,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42489,6 +46958,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42499,9 +46969,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42512,6 +46984,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42524,6 +46997,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42534,6 +47008,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -42547,6 +47022,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -42558,6 +47034,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42565,6 +47042,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42575,9 +47053,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42588,6 +47068,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42600,6 +47081,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42611,6 +47093,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -42622,6 +47105,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42630,6 +47114,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -42641,6 +47126,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42651,9 +47137,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42664,6 +47152,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42676,6 +47165,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42686,6 +47176,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -42698,6 +47189,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -42709,6 +47201,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42719,9 +47212,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42732,6 +47227,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42744,6 +47240,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42755,6 +47252,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -42766,6 +47264,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42774,6 +47273,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -42785,6 +47285,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42795,9 +47296,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42808,6 +47311,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42820,6 +47324,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42831,6 +47336,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -42842,6 +47348,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42851,6 +47358,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -42862,6 +47370,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42869,6 +47378,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42879,9 +47389,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42892,6 +47404,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42904,6 +47417,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42915,6 +47429,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -42926,6 +47441,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42935,6 +47451,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -42946,6 +47463,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -42953,6 +47471,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -42963,9 +47482,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -42976,6 +47497,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42988,6 +47510,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -42998,6 +47521,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -43010,6 +47534,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -43021,6 +47546,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43031,9 +47557,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43044,6 +47572,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43056,6 +47585,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43066,6 +47596,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -43079,6 +47610,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -43090,6 +47622,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43097,6 +47630,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43107,9 +47641,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43120,6 +47656,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43132,6 +47669,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43142,6 +47680,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -43154,6 +47693,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -43165,6 +47705,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43175,9 +47716,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43188,6 +47731,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43200,6 +47744,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43210,6 +47755,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -43223,6 +47769,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -43234,6 +47781,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43241,6 +47789,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43251,9 +47800,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43264,6 +47815,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43276,6 +47828,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43286,6 +47839,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -43298,6 +47852,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -43309,6 +47864,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43319,9 +47875,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43332,6 +47890,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43344,6 +47903,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43354,6 +47914,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -43366,6 +47927,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -43377,6 +47939,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43387,9 +47950,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43400,6 +47965,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43412,6 +47978,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43422,6 +47989,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -43434,6 +48002,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -43445,6 +48014,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43455,9 +48025,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43468,6 +48040,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43480,6 +48053,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43491,6 +48065,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -43502,6 +48077,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43511,6 +48087,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -43522,6 +48099,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43529,6 +48107,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43539,9 +48118,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43552,6 +48133,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43564,6 +48146,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43574,6 +48157,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -43587,6 +48171,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -43598,6 +48183,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43605,6 +48191,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43615,9 +48202,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43628,6 +48217,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43640,6 +48230,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43650,6 +48241,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -43663,6 +48255,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -43674,6 +48267,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43681,6 +48275,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43691,9 +48286,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43704,6 +48301,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43716,6 +48314,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43727,6 +48326,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -43738,6 +48338,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43746,6 +48347,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -43757,6 +48359,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43767,9 +48370,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43780,6 +48385,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43792,6 +48398,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43802,6 +48409,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9464450621708211", "start": 0, "type": "Literal", @@ -43815,6 +48423,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2684908127803667", "start": 0, "type": "Literal", @@ -43826,6 +48435,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43833,6 +48443,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43843,9 +48454,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43856,6 +48469,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43868,6 +48482,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43878,6 +48493,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5241732366617591", "start": 0, "type": "Literal", @@ -43890,6 +48506,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9011437416408563", "start": 0, "type": "Literal", @@ -43901,6 +48518,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43911,9 +48529,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -43924,6 +48544,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43936,6 +48557,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -43947,6 +48569,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14255393713960607", "start": 0, "type": "Literal", @@ -43958,6 +48581,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43967,6 +48591,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5194262624564814", "start": 0, "type": "Literal", @@ -43978,6 +48603,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -43985,6 +48611,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -43995,9 +48622,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44008,6 +48637,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44020,6 +48650,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44031,6 +48662,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4287123231350338", "start": 0, "type": "Literal", @@ -44042,6 +48674,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44051,6 +48684,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4223564528725028", "start": 0, "type": "Literal", @@ -44062,6 +48696,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44069,6 +48704,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44079,9 +48715,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44092,6 +48730,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44104,6 +48743,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44115,6 +48755,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09316367294024519", "start": 0, "type": "Literal", @@ -44126,6 +48767,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44135,6 +48777,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9063127021008246", "start": 0, "type": "Literal", @@ -44146,6 +48789,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44153,6 +48797,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44163,9 +48808,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44176,6 +48823,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44188,6 +48836,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44199,6 +48848,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2767766535558669", "start": 0, "type": "Literal", @@ -44210,6 +48860,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44218,6 +48869,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6816248114129131", "start": 0, "type": "Literal", @@ -44229,6 +48881,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44239,9 +48892,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44252,6 +48907,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44264,6 +48920,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44274,6 +48931,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9796762495562534", "start": 0, "type": "Literal", @@ -44287,6 +48945,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0822145668330625", "start": 0, "type": "Literal", @@ -44298,6 +48957,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44305,6 +48965,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44315,9 +48976,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44328,6 +48991,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44340,6 +49004,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44351,6 +49016,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8666513070867441", "start": 0, "type": "Literal", @@ -44362,6 +49028,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44371,6 +49038,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.301053160242023", "start": 0, "type": "Literal", @@ -44382,6 +49050,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44389,6 +49058,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44399,9 +49069,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44412,6 +49084,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44424,6 +49097,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44434,6 +49108,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.537415656028112", "start": 0, "type": "Literal", @@ -44446,6 +49121,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020272692875002774", "start": 0, "type": "Literal", @@ -44457,6 +49133,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44467,9 +49144,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44480,6 +49159,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44492,6 +49172,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44502,6 +49183,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9332396256457531", "start": 0, "type": "Literal", @@ -44515,6 +49197,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6228175690649898", "start": 0, "type": "Literal", @@ -44526,6 +49209,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44533,6 +49217,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44543,9 +49228,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44556,6 +49243,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44568,6 +49256,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44578,6 +49267,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.18052415837320734", "start": 0, "type": "Literal", @@ -44591,6 +49281,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.36894384647296197", "start": 0, "type": "Literal", @@ -44602,6 +49293,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44609,6 +49301,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44619,9 +49312,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44632,6 +49327,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44644,6 +49340,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44654,6 +49351,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5384372634075449", "start": 0, "type": "Literal", @@ -44666,6 +49364,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2377565050887107", "start": 0, "type": "Literal", @@ -44677,6 +49376,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44687,9 +49387,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44700,6 +49402,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44712,6 +49415,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44722,6 +49426,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39043436929278874", "start": 0, "type": "Literal", @@ -44734,6 +49439,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14273182483160451", "start": 0, "type": "Literal", @@ -44745,6 +49451,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44755,9 +49462,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44768,6 +49477,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44780,6 +49490,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44790,6 +49501,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09782890412897283", "start": 0, "type": "Literal", @@ -44802,6 +49514,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9907667536909659", "start": 0, "type": "Literal", @@ -44813,6 +49526,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44823,9 +49537,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44836,6 +49552,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44848,6 +49565,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44858,6 +49576,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5286610085921146", "start": 0, "type": "Literal", @@ -44871,6 +49590,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7924508308419256", "start": 0, "type": "Literal", @@ -44882,6 +49602,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -44889,6 +49610,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44899,9 +49621,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44912,6 +49636,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44924,6 +49649,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -44934,6 +49660,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3789978184503342", "start": 0, "type": "Literal", @@ -44946,6 +49673,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12396120576838676", "start": 0, "type": "Literal", @@ -44957,6 +49685,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -44967,9 +49696,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -44980,6 +49711,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44992,6 +49724,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45003,6 +49736,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9484912744890612", "start": 0, "type": "Literal", @@ -45014,6 +49748,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45022,6 +49757,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6729649846476855", "start": 0, "type": "Literal", @@ -45033,6 +49769,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45043,9 +49780,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45056,6 +49795,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45068,6 +49808,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45078,6 +49819,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7451758753425153", "start": 0, "type": "Literal", @@ -45091,6 +49833,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21318737562458967", "start": 0, "type": "Literal", @@ -45102,6 +49845,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45109,6 +49853,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45119,9 +49864,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45132,6 +49879,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45144,6 +49892,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45154,6 +49903,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1873200727251887", "start": 0, "type": "Literal", @@ -45167,6 +49917,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15961374297992448", "start": 0, "type": "Literal", @@ -45178,6 +49929,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45185,6 +49937,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45195,9 +49948,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45208,6 +49963,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45220,6 +49976,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45231,6 +49988,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05729464924537564", "start": 0, "type": "Literal", @@ -45242,6 +50000,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45251,6 +50010,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5436345558508746", "start": 0, "type": "Literal", @@ -45262,6 +50022,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45269,6 +50030,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45279,9 +50041,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45292,6 +50056,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45304,6 +50069,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45315,6 +50081,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09582414374469184", "start": 0, "type": "Literal", @@ -45326,6 +50093,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45335,6 +50103,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7533839681212353", "start": 0, "type": "Literal", @@ -45346,6 +50115,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45353,6 +50123,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45363,9 +50134,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45376,6 +50149,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45388,6 +50162,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45399,6 +50174,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17254116580051848", "start": 0, "type": "Literal", @@ -45410,6 +50186,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45419,6 +50196,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7669113400341137", "start": 0, "type": "Literal", @@ -45430,6 +50208,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45437,6 +50216,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45447,9 +50227,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45460,6 +50242,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45472,6 +50255,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45482,6 +50266,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8944730032887609", "start": 0, "type": "Literal", @@ -45494,6 +50279,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6093318694741408", "start": 0, "type": "Literal", @@ -45505,6 +50291,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45515,9 +50302,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45528,6 +50317,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45540,6 +50330,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45551,6 +50342,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -45562,6 +50354,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45570,6 +50363,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -45581,6 +50375,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45591,9 +50386,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45604,6 +50401,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45616,6 +50414,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45627,6 +50426,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -45638,6 +50438,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45646,6 +50447,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -45657,6 +50459,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45667,9 +50470,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45680,6 +50485,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45692,6 +50498,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45703,6 +50510,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -45714,6 +50522,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45722,6 +50531,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -45733,6 +50543,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45743,9 +50554,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45756,6 +50569,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45768,6 +50582,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45779,6 +50594,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -45790,6 +50606,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45799,6 +50616,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -45810,6 +50628,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -45817,6 +50636,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45827,9 +50647,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45840,6 +50662,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45852,6 +50675,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45862,6 +50686,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -45874,6 +50699,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -45885,6 +50711,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45895,9 +50722,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45908,6 +50737,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45920,6 +50750,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45930,6 +50761,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -45942,6 +50774,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -45953,6 +50786,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -45963,9 +50797,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -45976,6 +50812,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45988,6 +50825,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -45999,6 +50837,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -46010,6 +50849,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46018,6 +50858,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -46029,6 +50870,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46039,9 +50881,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46052,6 +50896,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46064,6 +50909,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46075,6 +50921,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -46086,6 +50933,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46095,6 +50943,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -46106,6 +50955,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46113,6 +50963,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46123,9 +50974,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46136,6 +50989,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46148,6 +51002,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46158,6 +51013,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -46171,6 +51027,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -46182,6 +51039,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46189,6 +51047,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46199,9 +51058,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46212,6 +51073,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46224,6 +51086,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46234,6 +51097,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -46247,6 +51111,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -46258,6 +51123,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46265,6 +51131,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46275,9 +51142,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46288,6 +51157,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46300,6 +51170,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46310,6 +51181,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -46323,6 +51195,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -46334,6 +51207,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46341,6 +51215,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46351,9 +51226,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46364,6 +51241,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46376,6 +51254,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46387,6 +51266,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -46398,6 +51278,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46406,6 +51287,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -46417,6 +51299,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46427,9 +51310,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46440,6 +51325,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46452,6 +51338,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46462,6 +51349,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -46474,6 +51362,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -46485,6 +51374,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46495,9 +51385,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46508,6 +51400,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46520,6 +51413,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46531,6 +51425,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -46542,6 +51437,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46550,6 +51446,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -46561,6 +51458,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46571,9 +51469,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46584,6 +51484,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46596,6 +51497,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46607,6 +51509,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -46618,6 +51521,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46627,6 +51531,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -46638,6 +51543,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46645,6 +51551,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46655,9 +51562,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46668,6 +51577,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46680,6 +51590,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46691,6 +51602,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -46702,6 +51614,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46711,6 +51624,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -46722,6 +51636,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46729,6 +51644,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46739,9 +51655,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46752,6 +51670,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46764,6 +51683,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46774,6 +51694,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -46786,6 +51707,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -46797,6 +51719,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46807,9 +51730,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46820,6 +51745,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46832,6 +51758,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46842,6 +51769,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -46855,6 +51783,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -46866,6 +51795,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -46873,6 +51803,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46883,9 +51814,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46896,6 +51829,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46908,6 +51842,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46918,6 +51853,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -46930,6 +51866,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -46941,6 +51878,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -46951,9 +51889,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -46964,6 +51904,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -46976,6 +51917,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -46986,6 +51928,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -46999,6 +51942,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -47010,6 +51954,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47017,6 +51962,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47027,9 +51973,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47040,6 +51988,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47052,6 +52001,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47062,6 +52012,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -47074,6 +52025,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -47085,6 +52037,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47095,9 +52048,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47108,6 +52063,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47120,6 +52076,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47130,6 +52087,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -47142,6 +52100,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -47153,6 +52112,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47163,9 +52123,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47176,6 +52138,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47188,6 +52151,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47198,6 +52162,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -47210,6 +52175,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -47221,6 +52187,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47231,9 +52198,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47244,6 +52213,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47256,6 +52226,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47267,6 +52238,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -47278,6 +52250,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47287,6 +52260,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -47298,6 +52272,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47305,6 +52280,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47315,9 +52291,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47328,6 +52306,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47340,6 +52319,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47350,6 +52330,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -47363,6 +52344,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -47374,6 +52356,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47381,6 +52364,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47391,9 +52375,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47404,6 +52390,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47416,6 +52403,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47427,6 +52415,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -47438,6 +52427,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47447,6 +52437,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -47458,6 +52449,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47465,6 +52457,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47475,9 +52468,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47488,6 +52483,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47500,6 +52496,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47510,6 +52507,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -47523,6 +52521,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -47534,6 +52533,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47541,6 +52541,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47551,9 +52552,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47564,6 +52567,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47576,6 +52580,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47586,6 +52591,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -47599,6 +52605,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -47610,6 +52617,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47617,6 +52625,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47627,9 +52636,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47640,6 +52651,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47652,6 +52664,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47662,6 +52675,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -47675,6 +52689,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -47686,6 +52701,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47693,6 +52709,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47703,9 +52720,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47716,6 +52735,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47728,6 +52748,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47739,6 +52760,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -47750,6 +52772,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47759,6 +52782,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -47770,6 +52794,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47777,6 +52802,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47787,9 +52813,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47800,6 +52828,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47812,6 +52841,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47822,6 +52852,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -47834,6 +52865,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -47845,6 +52877,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47855,9 +52888,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47868,6 +52903,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47880,6 +52916,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47890,6 +52927,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -47902,6 +52940,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -47913,6 +52952,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47923,9 +52963,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -47936,6 +52978,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -47948,6 +52991,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -47959,6 +53003,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -47970,6 +53015,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -47978,6 +53024,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -47989,6 +53036,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -47999,9 +53047,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48012,6 +53062,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48024,6 +53075,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48035,6 +53087,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -48046,6 +53099,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48055,6 +53109,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -48066,6 +53121,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48073,6 +53129,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48083,9 +53140,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48096,6 +53155,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48108,6 +53168,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48118,6 +53179,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -48131,6 +53193,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -48142,6 +53205,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48149,6 +53213,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48159,9 +53224,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48172,6 +53239,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48184,6 +53252,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48195,6 +53264,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -48206,6 +53276,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48214,6 +53285,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -48225,6 +53297,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48235,9 +53308,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48248,6 +53323,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48260,6 +53336,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48270,6 +53347,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -48282,6 +53360,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -48293,6 +53372,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48303,9 +53383,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48316,6 +53398,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48328,6 +53411,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48339,6 +53423,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -48350,6 +53435,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48359,6 +53445,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -48370,6 +53457,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48377,6 +53465,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48387,9 +53476,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48400,6 +53491,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48412,6 +53504,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48422,6 +53515,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -48435,6 +53529,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -48446,6 +53541,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48453,6 +53549,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48463,9 +53560,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48476,6 +53575,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48488,6 +53588,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48498,6 +53599,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -48511,6 +53613,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -48522,6 +53625,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48529,6 +53633,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48539,9 +53644,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48552,6 +53659,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48564,6 +53672,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48574,6 +53683,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -48586,6 +53696,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -48597,6 +53708,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48607,9 +53719,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48620,6 +53734,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48632,6 +53747,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48643,6 +53759,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -48654,6 +53771,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48662,6 +53780,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -48673,6 +53792,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48683,9 +53803,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48696,6 +53818,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48708,6 +53831,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48718,6 +53842,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -48730,6 +53855,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -48741,6 +53867,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48751,9 +53878,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48764,6 +53893,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48776,6 +53906,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48786,6 +53917,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -48798,6 +53930,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -48809,6 +53942,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48819,9 +53953,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48832,6 +53968,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48844,6 +53981,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48855,6 +53993,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -48866,6 +54005,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48875,6 +54015,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -48886,6 +54027,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48893,6 +54035,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48903,9 +54046,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48916,6 +54061,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48928,6 +54074,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -48938,6 +54085,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -48951,6 +54099,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -48962,6 +54111,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -48969,6 +54119,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -48979,9 +54130,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -48992,6 +54145,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49004,6 +54158,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49015,6 +54170,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -49026,6 +54182,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49035,6 +54192,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -49046,6 +54204,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49053,6 +54212,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49063,9 +54223,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49076,6 +54238,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49088,6 +54251,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49099,6 +54263,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -49110,6 +54275,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49119,6 +54285,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -49130,6 +54297,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49137,6 +54305,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49147,9 +54316,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49160,6 +54331,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49172,6 +54344,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49183,6 +54356,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -49194,6 +54368,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49202,6 +54377,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -49213,6 +54389,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49223,9 +54400,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49236,6 +54415,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49248,6 +54428,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49259,6 +54440,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -49270,6 +54452,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49279,6 +54462,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -49290,6 +54474,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49297,6 +54482,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49307,9 +54493,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49320,6 +54508,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49332,6 +54521,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49342,6 +54532,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -49355,6 +54546,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -49366,6 +54558,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49373,6 +54566,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49383,9 +54577,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49396,6 +54592,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49408,6 +54605,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49419,6 +54617,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -49430,6 +54629,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49438,6 +54638,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -49449,6 +54650,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49459,9 +54661,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49472,6 +54676,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49484,6 +54689,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49495,6 +54701,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -49506,6 +54713,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49514,6 +54722,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -49525,6 +54734,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49535,9 +54745,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49548,6 +54760,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49560,6 +54773,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49571,6 +54785,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -49582,6 +54797,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49591,6 +54807,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -49602,6 +54819,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49609,6 +54827,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49619,9 +54838,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49632,6 +54853,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49644,6 +54866,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49654,6 +54877,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -49666,6 +54890,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -49677,6 +54902,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49687,9 +54913,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49700,6 +54928,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49712,6 +54941,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49722,6 +54952,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -49734,6 +54965,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -49745,6 +54977,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49755,9 +54988,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49768,6 +55003,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49780,6 +55016,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49791,6 +55028,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -49802,6 +55040,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49810,6 +55049,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -49821,6 +55061,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49831,9 +55072,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49844,6 +55087,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49856,6 +55100,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49867,6 +55112,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -49878,6 +55124,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49887,6 +55134,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -49898,6 +55146,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49905,6 +55154,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49915,9 +55165,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -49928,6 +55180,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -49940,6 +55193,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -49950,6 +55204,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -49963,6 +55218,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -49974,6 +55230,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -49981,6 +55238,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -49991,9 +55249,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50004,6 +55264,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50016,6 +55277,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50026,6 +55288,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -50039,6 +55302,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -50050,6 +55314,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50057,6 +55322,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50067,9 +55333,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50080,6 +55348,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50092,6 +55361,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50102,6 +55372,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -50115,6 +55386,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -50126,6 +55398,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50133,6 +55406,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50143,9 +55417,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50156,6 +55432,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50168,6 +55445,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50179,6 +55457,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -50190,6 +55469,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50198,6 +55478,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -50209,6 +55490,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50219,9 +55501,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50232,6 +55516,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50244,6 +55529,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50254,6 +55540,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -50266,6 +55553,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -50277,6 +55565,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50287,9 +55576,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50300,6 +55591,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50312,6 +55604,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50323,6 +55616,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -50334,6 +55628,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50342,6 +55637,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -50353,6 +55649,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50363,9 +55660,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50376,6 +55675,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50388,6 +55688,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50399,6 +55700,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -50410,6 +55712,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50419,6 +55722,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -50430,6 +55734,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50437,6 +55742,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50447,9 +55753,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50460,6 +55768,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50472,6 +55781,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50483,6 +55793,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -50494,6 +55805,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50503,6 +55815,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -50514,6 +55827,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50521,6 +55835,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50531,9 +55846,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50544,6 +55861,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50556,6 +55874,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50566,6 +55885,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -50578,6 +55898,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -50589,6 +55910,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50599,9 +55921,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50612,6 +55936,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50624,6 +55949,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50634,6 +55960,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -50647,6 +55974,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -50658,6 +55986,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50665,6 +55994,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50675,9 +56005,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50688,6 +56020,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50700,6 +56033,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50710,6 +56044,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -50722,6 +56057,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -50733,6 +56069,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50743,9 +56080,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50756,6 +56095,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50768,6 +56108,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50778,6 +56119,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -50791,6 +56133,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -50802,6 +56145,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -50809,6 +56153,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50819,9 +56164,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50832,6 +56179,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50844,6 +56192,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50854,6 +56203,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -50866,6 +56216,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -50877,6 +56228,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50887,9 +56239,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50900,6 +56254,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50912,6 +56267,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50922,6 +56278,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -50934,6 +56291,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -50945,6 +56303,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -50955,9 +56314,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -50968,6 +56329,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -50980,6 +56342,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -50990,6 +56353,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -51002,6 +56366,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -51013,6 +56378,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51023,9 +56389,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51036,6 +56404,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51048,6 +56417,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51059,6 +56429,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -51070,6 +56441,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51078,6 +56450,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -51089,6 +56462,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51099,9 +56473,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51112,6 +56488,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51124,6 +56501,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51135,6 +56513,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -51146,6 +56525,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51154,6 +56534,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -51165,6 +56546,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51175,9 +56557,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51188,6 +56572,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51200,6 +56585,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51211,6 +56597,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -51222,6 +56609,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51230,6 +56618,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -51241,6 +56630,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51251,9 +56641,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51264,6 +56656,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51276,6 +56669,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51287,6 +56681,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -51298,6 +56693,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51307,6 +56703,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -51318,6 +56715,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51325,6 +56723,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51335,9 +56734,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51348,6 +56749,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51360,6 +56762,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51370,6 +56773,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -51382,6 +56786,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -51393,6 +56798,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51403,9 +56809,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51416,6 +56824,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51428,6 +56837,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51438,6 +56848,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -51450,6 +56861,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -51461,6 +56873,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51471,9 +56884,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51484,6 +56899,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51496,6 +56912,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51507,6 +56924,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -51518,6 +56936,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51526,6 +56945,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -51537,6 +56957,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51547,9 +56968,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51560,6 +56983,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51572,6 +56996,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51583,6 +57008,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -51594,6 +57020,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51603,6 +57030,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -51614,6 +57042,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51621,6 +57050,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51631,9 +57061,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51644,6 +57076,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51656,6 +57089,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51666,6 +57100,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -51679,6 +57114,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -51690,6 +57126,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51697,6 +57134,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51707,9 +57145,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51720,6 +57160,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51732,6 +57173,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51742,6 +57184,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -51755,6 +57198,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -51766,6 +57210,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51773,6 +57218,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51783,9 +57229,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51796,6 +57244,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51808,6 +57257,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51818,6 +57268,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -51831,6 +57282,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -51842,6 +57294,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51849,6 +57302,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51859,9 +57313,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51872,6 +57328,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51884,6 +57341,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51895,6 +57353,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -51906,6 +57365,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -51914,6 +57374,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -51925,6 +57386,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -51935,9 +57397,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -51948,6 +57412,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -51960,6 +57425,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -51970,6 +57436,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -51982,6 +57449,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -51993,6 +57461,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52003,9 +57472,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52016,6 +57487,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52028,6 +57500,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52039,6 +57512,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -52050,6 +57524,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52058,6 +57533,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -52069,6 +57545,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52079,9 +57556,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52092,6 +57571,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52104,6 +57584,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52115,6 +57596,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -52126,6 +57608,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52135,6 +57618,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -52146,6 +57630,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52153,6 +57638,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52163,9 +57649,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52176,6 +57664,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52188,6 +57677,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52199,6 +57689,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -52210,6 +57701,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52219,6 +57711,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -52230,6 +57723,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52237,6 +57731,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52247,9 +57742,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52260,6 +57757,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52272,6 +57770,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52282,6 +57781,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -52294,6 +57794,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -52305,6 +57806,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52315,9 +57817,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52328,6 +57832,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52340,6 +57845,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52350,6 +57856,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -52363,6 +57870,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -52374,6 +57882,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52381,6 +57890,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52391,9 +57901,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52404,6 +57916,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52416,6 +57929,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52426,6 +57940,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -52438,6 +57953,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -52449,6 +57965,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52459,9 +57976,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52472,6 +57991,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52484,6 +58004,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52494,6 +58015,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -52507,6 +58029,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -52518,6 +58041,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52525,6 +58049,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52535,9 +58060,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52548,6 +58075,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52560,6 +58088,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52570,6 +58099,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -52582,6 +58112,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -52593,6 +58124,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52603,9 +58135,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52616,6 +58150,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52628,6 +58163,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52638,6 +58174,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -52650,6 +58187,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -52661,6 +58199,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52671,9 +58210,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52684,6 +58225,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52696,6 +58238,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52706,6 +58249,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -52718,6 +58262,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -52729,6 +58274,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52739,9 +58285,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52752,6 +58300,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52764,6 +58313,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52775,6 +58325,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -52786,6 +58337,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52795,6 +58347,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -52806,6 +58359,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52813,6 +58367,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52823,9 +58378,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52836,6 +58393,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52848,6 +58406,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52858,6 +58417,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -52871,6 +58431,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -52882,6 +58443,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52889,6 +58451,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52899,9 +58462,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52912,6 +58477,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -52924,6 +58490,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -52935,6 +58502,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -52946,6 +58514,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52955,6 +58524,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -52966,6 +58536,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -52973,6 +58544,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -52983,9 +58555,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -52996,6 +58570,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53008,6 +58583,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53018,6 +58594,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -53031,6 +58608,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -53042,6 +58620,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53049,6 +58628,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53059,9 +58639,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53072,6 +58654,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53084,6 +58667,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53095,6 +58679,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -53106,6 +58691,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53114,6 +58700,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -53125,6 +58712,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53135,9 +58723,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53148,6 +58738,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53160,6 +58751,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53171,6 +58763,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -53182,6 +58775,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53190,6 +58784,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -53201,6 +58796,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53211,9 +58807,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53224,6 +58822,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53236,6 +58835,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53247,6 +58847,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -53258,6 +58859,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53266,6 +58868,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -53277,6 +58880,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53287,9 +58891,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53300,6 +58906,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53312,6 +58919,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53323,6 +58931,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -53334,6 +58943,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53343,6 +58953,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -53354,6 +58965,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53361,6 +58973,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53371,9 +58984,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53384,6 +58999,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53396,6 +59012,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53406,6 +59023,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -53418,6 +59036,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -53429,6 +59048,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53439,9 +59059,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53452,6 +59074,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53464,6 +59087,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53474,6 +59098,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -53486,6 +59111,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -53497,6 +59123,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53507,9 +59134,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53520,6 +59149,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53532,6 +59162,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53543,6 +59174,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -53554,6 +59186,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53562,6 +59195,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -53573,6 +59207,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53583,9 +59218,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53596,6 +59233,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53608,6 +59246,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53619,6 +59258,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -53630,6 +59270,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53639,6 +59280,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -53650,6 +59292,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53657,6 +59300,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53667,9 +59311,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53680,6 +59326,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53692,6 +59339,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53702,6 +59350,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -53715,6 +59364,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -53726,6 +59376,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53733,6 +59384,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53743,9 +59395,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53756,6 +59410,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53768,6 +59423,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53778,6 +59434,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -53791,6 +59448,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -53802,6 +59460,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53809,6 +59468,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53819,9 +59479,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53832,6 +59494,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53844,6 +59507,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53854,6 +59518,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -53867,6 +59532,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -53878,6 +59544,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53885,6 +59552,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53895,9 +59563,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53908,6 +59578,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53920,6 +59591,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -53931,6 +59603,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -53942,6 +59615,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -53950,6 +59624,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -53961,6 +59636,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -53971,9 +59647,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -53984,6 +59662,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -53996,6 +59675,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54006,6 +59686,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -54018,6 +59699,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -54029,6 +59711,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54039,9 +59722,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54052,6 +59737,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54064,6 +59750,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54075,6 +59762,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -54086,6 +59774,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54094,6 +59783,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -54105,6 +59795,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54115,9 +59806,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54128,6 +59821,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54140,6 +59834,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54151,6 +59846,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -54162,6 +59858,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54171,6 +59868,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -54182,6 +59880,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54189,6 +59888,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54199,9 +59899,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54212,6 +59914,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54224,6 +59927,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54235,6 +59939,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -54246,6 +59951,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54255,6 +59961,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -54266,6 +59973,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54273,6 +59981,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54283,9 +59992,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54296,6 +60007,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54308,6 +60020,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54318,6 +60031,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -54330,6 +60044,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -54341,6 +60056,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54351,9 +60067,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54364,6 +60082,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54376,6 +60095,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54386,6 +60106,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -54399,6 +60120,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -54410,6 +60132,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54417,6 +60140,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54427,9 +60151,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54440,6 +60166,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54452,6 +60179,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54462,6 +60190,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -54474,6 +60203,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -54485,6 +60215,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54495,9 +60226,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54508,6 +60241,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54520,6 +60254,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54530,6 +60265,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -54543,6 +60279,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -54554,6 +60291,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54561,6 +60299,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54571,9 +60310,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54584,6 +60325,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54596,6 +60338,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54606,6 +60349,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -54618,6 +60362,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -54629,6 +60374,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54639,9 +60385,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54652,6 +60400,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54664,6 +60413,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54674,6 +60424,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -54686,6 +60437,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -54697,6 +60449,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54707,9 +60460,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54720,6 +60475,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54732,6 +60488,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54742,6 +60499,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -54754,6 +60512,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -54765,6 +60524,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54775,9 +60535,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54788,6 +60550,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54800,6 +60563,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54811,6 +60575,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -54822,6 +60587,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54831,6 +60597,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -54842,6 +60609,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54849,6 +60617,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54859,9 +60628,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54872,6 +60643,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54884,6 +60656,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54894,6 +60667,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -54907,6 +60681,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -54918,6 +60693,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54925,6 +60701,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -54935,9 +60712,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -54948,6 +60727,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -54960,6 +60740,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -54971,6 +60752,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -54982,6 +60764,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -54991,6 +60774,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -55002,6 +60786,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55009,6 +60794,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55019,9 +60805,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55032,6 +60820,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55044,6 +60833,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55054,6 +60844,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -55067,6 +60858,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -55078,6 +60870,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55085,6 +60878,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55095,9 +60889,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55108,6 +60904,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55120,6 +60917,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55130,6 +60928,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -55143,6 +60942,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -55154,6 +60954,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55161,6 +60962,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55171,9 +60973,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55184,6 +60988,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55196,6 +61001,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55206,6 +61012,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -55219,6 +61026,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -55230,6 +61038,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55237,6 +61046,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55247,9 +61057,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55260,6 +61072,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55272,6 +61085,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55283,6 +61097,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -55294,6 +61109,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55303,6 +61119,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -55314,6 +61131,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55321,6 +61139,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55331,9 +61150,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55344,6 +61165,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55356,6 +61178,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55366,6 +61189,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -55378,6 +61202,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -55389,6 +61214,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55399,9 +61225,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55412,6 +61240,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55424,6 +61253,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55434,6 +61264,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -55446,6 +61277,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -55457,6 +61289,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55467,9 +61300,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55480,6 +61315,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55492,6 +61328,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55503,6 +61340,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -55514,6 +61352,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55522,6 +61361,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -55533,6 +61373,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55543,9 +61384,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55556,6 +61399,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55568,6 +61412,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55579,6 +61424,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -55590,6 +61436,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55599,6 +61446,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -55610,6 +61458,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55617,6 +61466,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55627,9 +61477,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55640,6 +61492,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55652,6 +61505,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55662,6 +61516,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -55675,6 +61530,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -55686,6 +61542,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55693,6 +61550,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55703,9 +61561,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55716,6 +61576,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55728,6 +61589,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55739,6 +61601,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -55750,6 +61613,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55758,6 +61622,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -55769,6 +61634,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55779,9 +61645,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55792,6 +61660,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55804,6 +61673,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55814,6 +61684,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -55826,6 +61697,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -55837,6 +61709,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55847,9 +61720,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55860,6 +61735,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55872,6 +61748,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55883,6 +61760,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -55894,6 +61772,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55903,6 +61782,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -55914,6 +61794,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55921,6 +61802,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -55931,9 +61813,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -55944,6 +61828,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -55956,6 +61841,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -55966,6 +61852,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -55979,6 +61866,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -55990,6 +61878,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -55997,6 +61886,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56007,9 +61897,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56020,6 +61912,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56032,6 +61925,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56042,6 +61936,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -56055,6 +61950,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -56066,6 +61962,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56073,6 +61970,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56083,9 +61981,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56096,6 +61996,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56108,6 +62009,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56118,6 +62020,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -56130,6 +62033,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -56141,6 +62045,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56151,9 +62056,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56164,6 +62071,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56176,6 +62084,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56187,6 +62096,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -56198,6 +62108,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56206,6 +62117,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -56217,6 +62129,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56227,9 +62140,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56240,6 +62155,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56252,6 +62168,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56262,6 +62179,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -56274,6 +62192,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -56285,6 +62204,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56295,9 +62215,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56308,6 +62230,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56320,6 +62243,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56330,6 +62254,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -56342,6 +62267,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -56353,6 +62279,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56363,9 +62290,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56376,6 +62305,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56388,6 +62318,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56399,6 +62330,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -56410,6 +62342,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56419,6 +62352,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -56430,6 +62364,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56437,6 +62372,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56447,9 +62383,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56460,6 +62398,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56472,6 +62411,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56482,6 +62422,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -56495,6 +62436,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -56506,6 +62448,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56513,6 +62456,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56523,9 +62467,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56536,6 +62482,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56548,6 +62495,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56559,6 +62507,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -56570,6 +62519,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56579,6 +62529,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -56590,6 +62541,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56597,6 +62549,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56607,9 +62560,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56620,6 +62575,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56632,6 +62588,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56643,6 +62600,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -56654,6 +62612,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56663,6 +62622,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -56674,6 +62634,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56681,6 +62642,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56691,9 +62653,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56704,6 +62668,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56716,6 +62681,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56727,6 +62693,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -56738,6 +62705,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56746,6 +62714,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -56757,6 +62726,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56767,9 +62737,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56780,6 +62752,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56792,6 +62765,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56803,6 +62777,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -56814,6 +62789,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56823,6 +62799,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -56834,6 +62811,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56841,6 +62819,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56851,9 +62830,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56864,6 +62845,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56876,6 +62858,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56886,6 +62869,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -56899,6 +62883,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -56910,6 +62895,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56917,6 +62903,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -56927,9 +62914,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -56940,6 +62929,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -56952,6 +62942,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -56963,6 +62954,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -56974,6 +62966,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -56982,6 +62975,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -56993,6 +62987,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57003,9 +62998,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57016,6 +63013,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57028,6 +63026,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57039,6 +63038,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -57050,6 +63050,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57058,6 +63059,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -57069,6 +63071,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57079,9 +63082,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57092,6 +63097,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57104,6 +63110,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57115,6 +63122,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -57126,6 +63134,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57135,6 +63144,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -57146,6 +63156,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57153,6 +63164,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57163,9 +63175,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57176,6 +63190,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57188,6 +63203,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57198,6 +63214,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -57210,6 +63227,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -57221,6 +63239,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57231,9 +63250,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57244,6 +63265,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57256,6 +63278,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57266,6 +63289,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -57278,6 +63302,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -57289,6 +63314,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57299,9 +63325,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57312,6 +63340,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57324,6 +63353,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57335,6 +63365,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -57346,6 +63377,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57354,6 +63386,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -57365,6 +63398,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57375,9 +63409,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57388,6 +63424,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57400,6 +63437,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57411,6 +63449,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -57422,6 +63461,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57431,6 +63471,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -57442,6 +63483,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57449,6 +63491,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57459,9 +63502,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57472,6 +63517,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57484,6 +63530,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57494,6 +63541,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -57507,6 +63555,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -57518,6 +63567,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57525,6 +63575,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57535,9 +63586,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57548,6 +63601,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57560,6 +63614,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57570,6 +63625,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -57583,6 +63639,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -57594,6 +63651,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57601,6 +63659,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57611,9 +63670,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57624,6 +63685,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57636,6 +63698,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57646,6 +63709,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -57659,6 +63723,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -57670,6 +63735,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57677,6 +63743,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57687,9 +63754,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57700,6 +63769,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57712,6 +63782,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57723,6 +63794,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -57734,6 +63806,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57742,6 +63815,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -57753,6 +63827,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57763,9 +63838,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57776,6 +63853,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57788,6 +63866,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57798,6 +63877,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -57810,6 +63890,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -57821,6 +63902,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57831,9 +63913,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57844,6 +63928,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57856,6 +63941,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57867,6 +63953,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -57878,6 +63965,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57886,6 +63974,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -57897,6 +63986,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57907,9 +63997,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -57920,6 +64012,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -57932,6 +64025,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -57943,6 +64037,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -57954,6 +64049,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57963,6 +64059,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -57974,6 +64071,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -57981,6 +64079,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -57991,9 +64090,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58004,6 +64105,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58016,6 +64118,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58027,6 +64130,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -58038,6 +64142,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58047,6 +64152,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -58058,6 +64164,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58065,6 +64172,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58075,9 +64183,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58088,6 +64198,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58100,6 +64211,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58110,6 +64222,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -58122,6 +64235,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -58133,6 +64247,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58143,9 +64258,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58156,6 +64273,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58168,6 +64286,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58178,6 +64297,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -58191,6 +64311,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -58202,6 +64323,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58209,6 +64331,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58219,9 +64342,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58232,6 +64357,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58244,6 +64370,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58254,6 +64381,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -58266,6 +64394,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -58277,6 +64406,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58287,9 +64417,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58300,6 +64432,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58312,6 +64445,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58322,6 +64456,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -58335,6 +64470,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -58346,6 +64482,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58353,6 +64490,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58363,9 +64501,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58376,6 +64516,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58388,6 +64529,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58398,6 +64540,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -58410,6 +64553,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -58421,6 +64565,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58431,9 +64576,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58444,6 +64591,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58456,6 +64604,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58466,6 +64615,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -58478,6 +64628,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -58489,6 +64640,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58499,9 +64651,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58512,6 +64666,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58524,6 +64679,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58534,6 +64690,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -58546,6 +64703,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -58557,6 +64715,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58567,9 +64726,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58580,6 +64741,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58592,6 +64754,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58603,6 +64766,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -58614,6 +64778,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58623,6 +64788,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -58634,6 +64800,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58641,6 +64808,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58651,9 +64819,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58664,6 +64834,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58676,6 +64847,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58686,6 +64858,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -58699,6 +64872,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -58710,6 +64884,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58717,6 +64892,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58727,9 +64903,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58740,6 +64918,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58752,6 +64931,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58762,6 +64942,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -58775,6 +64956,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -58786,6 +64968,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58793,6 +64976,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58803,9 +64987,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58816,6 +65002,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58828,6 +65015,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58839,6 +65027,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -58850,6 +65039,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58858,6 +65048,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -58869,6 +65060,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58879,9 +65071,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58892,6 +65086,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58904,6 +65099,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58914,6 +65110,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9464450621708211", "start": 0, "type": "Literal", @@ -58927,6 +65124,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2684908127803667", "start": 0, "type": "Literal", @@ -58938,6 +65136,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -58945,6 +65144,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -58955,9 +65155,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -58968,6 +65170,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -58980,6 +65183,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -58990,6 +65194,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5241732366617591", "start": 0, "type": "Literal", @@ -59002,6 +65207,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9011437416408563", "start": 0, "type": "Literal", @@ -59013,6 +65219,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59023,9 +65230,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59036,6 +65245,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59048,6 +65258,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59059,6 +65270,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14255393713960607", "start": 0, "type": "Literal", @@ -59070,6 +65282,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59079,6 +65292,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5194262624564814", "start": 0, "type": "Literal", @@ -59090,6 +65304,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59097,6 +65312,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59107,9 +65323,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59120,6 +65338,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59132,6 +65351,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59143,6 +65363,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4287123231350338", "start": 0, "type": "Literal", @@ -59154,6 +65375,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59163,6 +65385,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4223564528725028", "start": 0, "type": "Literal", @@ -59174,6 +65397,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59181,6 +65405,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59191,9 +65416,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59204,6 +65431,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59216,6 +65444,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59227,6 +65456,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09316367294024519", "start": 0, "type": "Literal", @@ -59238,6 +65468,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59247,6 +65478,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9063127021008246", "start": 0, "type": "Literal", @@ -59258,6 +65490,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59265,6 +65498,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59275,9 +65509,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59288,6 +65524,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59300,6 +65537,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59311,6 +65549,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2767766535558669", "start": 0, "type": "Literal", @@ -59322,6 +65561,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59330,6 +65570,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6816248114129131", "start": 0, "type": "Literal", @@ -59341,6 +65582,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59351,9 +65593,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59364,6 +65608,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59376,6 +65621,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59386,6 +65632,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9796762495562534", "start": 0, "type": "Literal", @@ -59399,6 +65646,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0822145668330625", "start": 0, "type": "Literal", @@ -59410,6 +65658,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59417,6 +65666,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59427,9 +65677,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59440,6 +65692,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59452,6 +65705,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59463,6 +65717,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8666513070867441", "start": 0, "type": "Literal", @@ -59474,6 +65729,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59483,6 +65739,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.301053160242023", "start": 0, "type": "Literal", @@ -59494,6 +65751,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59501,6 +65759,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59511,9 +65770,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59524,6 +65785,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59536,6 +65798,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59546,6 +65809,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.537415656028112", "start": 0, "type": "Literal", @@ -59558,6 +65822,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020272692875002774", "start": 0, "type": "Literal", @@ -59569,6 +65834,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59579,9 +65845,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59592,6 +65860,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59604,6 +65873,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59614,6 +65884,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9332396256457531", "start": 0, "type": "Literal", @@ -59627,6 +65898,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6228175690649898", "start": 0, "type": "Literal", @@ -59638,6 +65910,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59645,6 +65918,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59655,9 +65929,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59668,6 +65944,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59680,6 +65957,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59690,6 +65968,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.18052415837320734", "start": 0, "type": "Literal", @@ -59703,6 +65982,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.36894384647296197", "start": 0, "type": "Literal", @@ -59714,6 +65994,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -59721,6 +66002,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59731,9 +66013,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59744,6 +66028,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59756,6 +66041,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59766,6 +66052,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5384372634075449", "start": 0, "type": "Literal", @@ -59778,6 +66065,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2377565050887107", "start": 0, "type": "Literal", @@ -59789,6 +66077,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59799,9 +66088,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59812,6 +66103,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59824,6 +66116,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59834,6 +66127,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39043436929278874", "start": 0, "type": "Literal", @@ -59846,6 +66140,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14273182483160451", "start": 0, "type": "Literal", @@ -59857,6 +66152,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59867,9 +66163,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59880,6 +66178,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59892,6 +66191,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59902,6 +66202,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09782890412897283", "start": 0, "type": "Literal", @@ -59914,6 +66215,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9907667536909659", "start": 0, "type": "Literal", @@ -59925,6 +66227,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -59935,9 +66238,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -59948,6 +66253,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59960,6 +66266,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -59970,6 +66277,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5286610085921146", "start": 0, "type": "Literal", @@ -59983,6 +66291,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7924508308419256", "start": 0, "type": "Literal", @@ -59994,6 +66303,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60001,6 +66311,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60011,9 +66322,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60024,6 +66337,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60036,6 +66350,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60046,6 +66361,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3789978184503342", "start": 0, "type": "Literal", @@ -60058,6 +66374,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12396120576838676", "start": 0, "type": "Literal", @@ -60069,6 +66386,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60079,9 +66397,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60092,6 +66412,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60104,6 +66425,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60115,6 +66437,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9484912744890612", "start": 0, "type": "Literal", @@ -60126,6 +66449,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60134,6 +66458,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6729649846476855", "start": 0, "type": "Literal", @@ -60145,6 +66470,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60155,9 +66481,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60168,6 +66496,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60180,6 +66509,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60190,6 +66520,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7451758753425153", "start": 0, "type": "Literal", @@ -60203,6 +66534,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21318737562458967", "start": 0, "type": "Literal", @@ -60214,6 +66546,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60221,6 +66554,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60231,9 +66565,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60244,6 +66580,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60256,6 +66593,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60266,6 +66604,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1873200727251887", "start": 0, "type": "Literal", @@ -60279,6 +66618,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15961374297992448", "start": 0, "type": "Literal", @@ -60290,6 +66630,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60297,6 +66638,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60307,9 +66649,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60320,6 +66664,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60332,6 +66677,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60343,6 +66689,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05729464924537564", "start": 0, "type": "Literal", @@ -60354,6 +66701,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60363,6 +66711,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5436345558508746", "start": 0, "type": "Literal", @@ -60374,6 +66723,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60381,6 +66731,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60391,9 +66742,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60404,6 +66757,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60416,6 +66770,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60427,6 +66782,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09582414374469184", "start": 0, "type": "Literal", @@ -60438,6 +66794,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60447,6 +66804,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7533839681212353", "start": 0, "type": "Literal", @@ -60458,6 +66816,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60465,6 +66824,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60475,9 +66835,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60488,6 +66850,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60500,6 +66863,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60511,6 +66875,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17254116580051848", "start": 0, "type": "Literal", @@ -60522,6 +66887,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60531,6 +66897,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7669113400341137", "start": 0, "type": "Literal", @@ -60542,6 +66909,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60549,6 +66917,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60559,9 +66928,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60572,6 +66943,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60584,6 +66956,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60594,6 +66967,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8944730032887609", "start": 0, "type": "Literal", @@ -60606,6 +66980,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6093318694741408", "start": 0, "type": "Literal", @@ -60617,6 +66992,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60627,9 +67003,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60640,6 +67018,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60652,6 +67031,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60663,6 +67043,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -60674,6 +67055,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60682,6 +67064,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -60693,6 +67076,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60703,9 +67087,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60716,6 +67102,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60728,6 +67115,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60739,6 +67127,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -60750,6 +67139,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60758,6 +67148,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -60769,6 +67160,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60779,9 +67171,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60792,6 +67186,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60804,6 +67199,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60815,6 +67211,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -60826,6 +67223,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60834,6 +67232,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -60845,6 +67244,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60855,9 +67255,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60868,6 +67270,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60880,6 +67283,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60891,6 +67295,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -60902,6 +67307,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60911,6 +67317,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -60922,6 +67329,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -60929,6 +67337,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -60939,9 +67348,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -60952,6 +67363,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -60964,6 +67376,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -60974,6 +67387,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -60986,6 +67400,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -60997,6 +67412,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61007,9 +67423,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61020,6 +67438,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61032,6 +67451,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61042,6 +67462,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -61054,6 +67475,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -61065,6 +67487,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61075,9 +67498,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61088,6 +67513,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61100,6 +67526,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61111,6 +67538,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -61122,6 +67550,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61130,6 +67559,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -61141,6 +67571,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61151,9 +67582,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61164,6 +67597,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61176,6 +67610,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61187,6 +67622,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -61198,6 +67634,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61207,6 +67644,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -61218,6 +67656,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61225,6 +67664,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61235,9 +67675,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61248,6 +67690,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61260,6 +67703,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61270,6 +67714,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -61283,6 +67728,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -61294,6 +67740,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61301,6 +67748,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61311,9 +67759,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61324,6 +67774,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61336,6 +67787,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61346,6 +67798,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -61359,6 +67812,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -61370,6 +67824,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61377,6 +67832,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61387,9 +67843,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61400,6 +67858,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61412,6 +67871,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61422,6 +67882,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -61435,6 +67896,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -61446,6 +67908,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61453,6 +67916,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61463,9 +67927,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61476,6 +67942,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61488,6 +67955,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61499,6 +67967,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -61510,6 +67979,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61518,6 +67988,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -61529,6 +68000,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61539,9 +68011,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61552,6 +68026,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61564,6 +68039,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61574,6 +68050,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -61586,6 +68063,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -61597,6 +68075,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61607,9 +68086,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61620,6 +68101,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61632,6 +68114,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61643,6 +68126,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -61654,6 +68138,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61662,6 +68147,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -61673,6 +68159,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61683,9 +68170,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61696,6 +68185,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61708,6 +68198,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61719,6 +68210,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -61730,6 +68222,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61739,6 +68232,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -61750,6 +68244,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61757,6 +68252,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61767,9 +68263,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61780,6 +68278,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61792,6 +68291,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61803,6 +68303,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -61814,6 +68315,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61823,6 +68325,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -61834,6 +68337,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61841,6 +68345,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61851,9 +68356,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61864,6 +68371,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61876,6 +68384,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61886,6 +68395,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -61898,6 +68408,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -61909,6 +68420,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61919,9 +68431,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -61932,6 +68446,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -61944,6 +68459,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -61954,6 +68470,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -61967,6 +68484,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -61978,6 +68496,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -61985,6 +68504,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -61995,9 +68515,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62008,6 +68530,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62020,6 +68543,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62030,6 +68554,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -62042,6 +68567,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -62053,6 +68579,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62063,9 +68590,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62076,6 +68605,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62088,6 +68618,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62098,6 +68629,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -62111,6 +68643,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -62122,6 +68655,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62129,6 +68663,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62139,9 +68674,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62152,6 +68689,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62164,6 +68702,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62174,6 +68713,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -62186,6 +68726,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -62197,6 +68738,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62207,9 +68749,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62220,6 +68764,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62232,6 +68777,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62242,6 +68788,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -62254,6 +68801,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -62265,6 +68813,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62275,9 +68824,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62288,6 +68839,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62300,6 +68852,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62310,6 +68863,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -62322,6 +68876,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -62333,6 +68888,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62343,9 +68899,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62356,6 +68914,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62368,6 +68927,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62379,6 +68939,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -62390,6 +68951,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62399,6 +68961,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -62410,6 +68973,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62417,6 +68981,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62427,9 +68992,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62440,6 +69007,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62452,6 +69020,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62462,6 +69031,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -62475,6 +69045,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -62486,6 +69057,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62493,6 +69065,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62503,9 +69076,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62516,6 +69091,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62528,6 +69104,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62539,6 +69116,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -62550,6 +69128,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62559,6 +69138,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -62570,6 +69150,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62577,6 +69158,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62587,9 +69169,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62600,6 +69184,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62612,6 +69197,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62622,6 +69208,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -62635,6 +69222,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -62646,6 +69234,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62653,6 +69242,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62663,9 +69253,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62676,6 +69268,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62688,6 +69281,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62698,6 +69292,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -62711,6 +69306,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -62722,6 +69318,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62729,6 +69326,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62739,9 +69337,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62752,6 +69352,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62764,6 +69365,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62774,6 +69376,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -62787,6 +69390,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -62798,6 +69402,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62805,6 +69410,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62815,9 +69421,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62828,6 +69436,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62840,6 +69449,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62851,6 +69461,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -62862,6 +69473,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62871,6 +69483,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -62882,6 +69495,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -62889,6 +69503,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62899,9 +69514,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62912,6 +69529,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62924,6 +69542,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -62934,6 +69553,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -62946,6 +69566,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -62957,6 +69578,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -62967,9 +69589,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -62980,6 +69604,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -62992,6 +69617,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63002,6 +69628,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -63014,6 +69641,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -63025,6 +69653,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63035,9 +69664,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63048,6 +69679,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63060,6 +69692,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63071,6 +69704,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -63082,6 +69716,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63090,6 +69725,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -63101,6 +69737,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63111,9 +69748,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63124,6 +69763,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63136,6 +69776,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63147,6 +69788,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -63158,6 +69800,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63167,6 +69810,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -63178,6 +69822,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63185,6 +69830,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63195,9 +69841,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63208,6 +69856,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63220,6 +69869,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63230,6 +69880,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -63243,6 +69894,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -63254,6 +69906,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63261,6 +69914,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63271,9 +69925,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63284,6 +69940,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63296,6 +69953,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63307,6 +69965,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -63318,6 +69977,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63326,6 +69986,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -63337,6 +69998,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63347,9 +70009,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63360,6 +70024,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63372,6 +70037,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63382,6 +70048,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -63394,6 +70061,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -63405,6 +70073,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63415,9 +70084,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63428,6 +70099,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63440,6 +70112,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63451,6 +70124,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -63462,6 +70136,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63471,6 +70146,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -63482,6 +70158,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63489,6 +70166,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63499,9 +70177,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63512,6 +70192,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63524,6 +70205,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63534,6 +70216,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -63547,6 +70230,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -63558,6 +70242,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63565,6 +70250,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63575,9 +70261,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63588,6 +70276,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63600,6 +70289,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63610,6 +70300,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -63623,6 +70314,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -63634,6 +70326,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63641,6 +70334,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63651,9 +70345,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63664,6 +70360,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63676,6 +70373,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63686,6 +70384,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -63698,6 +70397,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -63709,6 +70409,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63719,9 +70420,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63732,6 +70435,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63744,6 +70448,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63755,6 +70460,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -63766,6 +70472,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63774,6 +70481,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -63785,6 +70493,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63795,9 +70504,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63808,6 +70519,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63820,6 +70532,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63830,6 +70543,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -63842,6 +70556,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -63853,6 +70568,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63863,9 +70579,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63876,6 +70594,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63888,6 +70607,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63898,6 +70618,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -63910,6 +70631,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -63921,6 +70643,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -63931,9 +70654,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -63944,6 +70669,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -63956,6 +70682,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -63967,6 +70694,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -63978,6 +70706,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -63987,6 +70716,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -63998,6 +70728,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64005,6 +70736,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64015,9 +70747,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64028,6 +70762,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64040,6 +70775,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64050,6 +70786,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -64063,6 +70800,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -64074,6 +70812,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64081,6 +70820,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64091,9 +70831,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64104,6 +70846,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64116,6 +70859,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64127,6 +70871,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -64138,6 +70883,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64147,6 +70893,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -64158,6 +70905,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64165,6 +70913,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64175,9 +70924,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64188,6 +70939,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64200,6 +70952,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64211,6 +70964,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -64222,6 +70976,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64231,6 +70986,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -64242,6 +70998,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64249,6 +71006,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64259,9 +71017,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64272,6 +71032,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64284,6 +71045,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64295,6 +71057,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -64306,6 +71069,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64314,6 +71078,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -64325,6 +71090,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64335,9 +71101,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64348,6 +71116,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64360,6 +71129,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64371,6 +71141,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -64382,6 +71153,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64391,6 +71163,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -64402,6 +71175,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64409,6 +71183,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64419,9 +71194,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64432,6 +71209,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64444,6 +71222,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64454,6 +71233,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -64467,6 +71247,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -64478,6 +71259,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64485,6 +71267,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64495,9 +71278,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64508,6 +71293,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64520,6 +71306,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64531,6 +71318,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -64542,6 +71330,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64550,6 +71339,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -64561,6 +71351,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64571,9 +71362,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64584,6 +71377,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64596,6 +71390,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64607,6 +71402,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -64618,6 +71414,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64626,6 +71423,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -64637,6 +71435,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64647,9 +71446,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64660,6 +71461,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64672,6 +71474,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64683,6 +71486,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -64694,6 +71498,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64703,6 +71508,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -64714,6 +71520,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64721,6 +71528,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64731,9 +71539,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64744,6 +71554,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64756,6 +71567,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64766,6 +71578,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -64778,6 +71591,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -64789,6 +71603,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64799,9 +71614,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64812,6 +71629,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64824,6 +71642,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64834,6 +71653,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -64846,6 +71666,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -64857,6 +71678,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64867,9 +71689,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64880,6 +71704,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64892,6 +71717,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64903,6 +71729,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -64914,6 +71741,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64922,6 +71750,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -64933,6 +71762,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -64943,9 +71773,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -64956,6 +71788,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -64968,6 +71801,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -64979,6 +71813,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -64990,6 +71825,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -64999,6 +71835,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -65010,6 +71847,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65017,6 +71855,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65027,9 +71866,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65040,6 +71881,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65052,6 +71894,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65062,6 +71905,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -65075,6 +71919,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -65086,6 +71931,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65093,6 +71939,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65103,9 +71950,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65116,6 +71965,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65128,6 +71978,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65138,6 +71989,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -65151,6 +72003,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -65162,6 +72015,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65169,6 +72023,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65179,9 +72034,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65192,6 +72049,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65204,6 +72062,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65214,6 +72073,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -65227,6 +72087,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -65238,6 +72099,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65245,6 +72107,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65255,9 +72118,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65268,6 +72133,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65280,6 +72146,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65291,6 +72158,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -65302,6 +72170,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65310,6 +72179,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -65321,6 +72191,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65331,9 +72202,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65344,6 +72217,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65356,6 +72230,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65366,6 +72241,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -65378,6 +72254,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -65389,6 +72266,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65399,9 +72277,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65412,6 +72292,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65424,6 +72305,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65435,6 +72317,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -65446,6 +72329,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65454,6 +72338,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -65465,6 +72350,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65475,9 +72361,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65488,6 +72376,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65500,6 +72389,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65511,6 +72401,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -65522,6 +72413,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65531,6 +72423,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -65542,6 +72435,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65549,6 +72443,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65559,9 +72454,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65572,6 +72469,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65584,6 +72482,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65595,6 +72494,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -65606,6 +72506,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65615,6 +72516,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -65626,6 +72528,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65633,6 +72536,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65643,9 +72547,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65656,6 +72562,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65668,6 +72575,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65678,6 +72586,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -65690,6 +72599,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -65701,6 +72611,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65711,9 +72622,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65724,6 +72637,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65736,6 +72650,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65746,6 +72661,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -65759,6 +72675,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -65770,6 +72687,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65777,6 +72695,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65787,9 +72706,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65800,6 +72721,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65812,6 +72734,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65822,6 +72745,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -65834,6 +72758,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -65845,6 +72770,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65855,9 +72781,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65868,6 +72796,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65880,6 +72809,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65890,6 +72820,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -65903,6 +72834,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -65914,6 +72846,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -65921,6 +72854,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65931,9 +72865,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -65944,6 +72880,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -65956,6 +72893,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -65966,6 +72904,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -65978,6 +72917,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -65989,6 +72929,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -65999,9 +72940,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66012,6 +72955,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66024,6 +72968,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66034,6 +72979,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -66046,6 +72992,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -66057,6 +73004,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66067,9 +73015,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66080,6 +73030,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66092,6 +73043,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66102,6 +73054,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -66114,6 +73067,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -66125,6 +73079,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66135,9 +73090,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66148,6 +73105,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66160,6 +73118,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66171,6 +73130,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3670208139314082", "start": 0, "type": "Literal", @@ -66182,6 +73142,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66190,6 +73151,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21201331909674526", "start": 0, "type": "Literal", @@ -66201,6 +73163,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66211,9 +73174,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66224,6 +73189,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66236,6 +73202,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66247,6 +73214,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4707511307971115", "start": 0, "type": "Literal", @@ -66258,6 +73226,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66266,6 +73235,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4905279615419764", "start": 0, "type": "Literal", @@ -66277,6 +73247,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66287,9 +73258,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66300,6 +73273,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66312,6 +73286,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66323,6 +73298,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -66334,6 +73310,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66342,6 +73319,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -66353,6 +73331,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66363,9 +73342,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66376,6 +73357,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66388,6 +73370,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66399,6 +73382,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -66410,6 +73394,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66419,6 +73404,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -66430,6 +73416,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66437,6 +73424,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66447,9 +73435,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66460,6 +73450,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66472,6 +73463,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66482,6 +73474,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -66494,6 +73487,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -66505,6 +73499,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66515,9 +73510,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66528,6 +73525,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66540,6 +73538,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66550,6 +73549,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -66562,6 +73562,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -66573,6 +73574,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66583,9 +73585,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66596,6 +73600,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66608,6 +73613,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66619,6 +73625,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -66630,6 +73637,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66638,6 +73646,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -66649,6 +73658,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66659,9 +73669,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66672,6 +73684,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66684,6 +73697,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66695,6 +73709,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -66706,6 +73721,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66715,6 +73731,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -66726,6 +73743,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66733,6 +73751,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66743,9 +73762,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66756,6 +73777,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66768,6 +73790,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66778,6 +73801,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -66791,6 +73815,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -66802,6 +73827,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66809,6 +73835,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66819,9 +73846,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66832,6 +73861,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66844,6 +73874,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66854,6 +73885,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -66867,6 +73899,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -66878,6 +73911,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66885,6 +73919,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66895,9 +73930,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66908,6 +73945,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66920,6 +73958,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -66930,6 +73969,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -66943,6 +73983,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -66954,6 +73995,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -66961,6 +74003,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -66971,9 +74014,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -66984,6 +74029,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -66996,6 +74042,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67007,6 +74054,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -67018,6 +74066,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67026,6 +74075,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -67037,6 +74087,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67047,9 +74098,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67060,6 +74113,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67072,6 +74126,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67082,6 +74137,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -67094,6 +74150,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -67105,6 +74162,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67115,9 +74173,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67128,6 +74188,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67140,6 +74201,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67151,6 +74213,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -67162,6 +74225,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67170,6 +74234,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -67181,6 +74246,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67191,9 +74257,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67204,6 +74272,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67216,6 +74285,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67227,6 +74297,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -67238,6 +74309,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67247,6 +74319,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -67258,6 +74331,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67265,6 +74339,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67275,9 +74350,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67288,6 +74365,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67300,6 +74378,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67311,6 +74390,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -67322,6 +74402,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67331,6 +74412,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -67342,6 +74424,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67349,6 +74432,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67359,9 +74443,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67372,6 +74458,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67384,6 +74471,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67394,6 +74482,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -67406,6 +74495,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -67417,6 +74507,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67427,9 +74518,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67440,6 +74533,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67452,6 +74546,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67462,6 +74557,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -67475,6 +74571,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -67486,6 +74583,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67493,6 +74591,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67503,9 +74602,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67516,6 +74617,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67528,6 +74630,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67538,6 +74641,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -67550,6 +74654,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -67561,6 +74666,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67571,9 +74677,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67584,6 +74692,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67596,6 +74705,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67606,6 +74716,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -67619,6 +74730,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -67630,6 +74742,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67637,6 +74750,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67647,9 +74761,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67660,6 +74776,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67672,6 +74789,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67682,6 +74800,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -67694,6 +74813,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -67705,6 +74825,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67715,9 +74836,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67728,6 +74851,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67740,6 +74864,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67750,6 +74875,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -67762,6 +74888,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -67773,6 +74900,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67783,9 +74911,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67796,6 +74926,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67808,6 +74939,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67818,6 +74950,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8830488380766681", "start": 0, "type": "Literal", @@ -67830,6 +74963,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6996724408425232", "start": 0, "type": "Literal", @@ -67841,6 +74975,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67851,9 +74986,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67864,6 +75001,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67876,6 +75014,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67887,6 +75026,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -67898,6 +75038,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67907,6 +75048,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -67918,6 +75060,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -67925,6 +75068,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -67935,9 +75079,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -67948,6 +75094,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -67960,6 +75107,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -67970,6 +75118,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -67983,6 +75132,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -67994,6 +75144,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68001,6 +75152,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68011,9 +75163,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68024,6 +75178,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68036,6 +75191,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68047,6 +75203,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6716353749059765", "start": 0, "type": "Literal", @@ -68058,6 +75215,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68067,6 +75225,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9605576808879026", "start": 0, "type": "Literal", @@ -68078,6 +75237,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68085,6 +75245,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68095,9 +75256,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68108,6 +75271,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68120,6 +75284,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68130,6 +75295,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.010280170930300203", "start": 0, "type": "Literal", @@ -68143,6 +75309,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37344123662342166", "start": 0, "type": "Literal", @@ -68154,6 +75321,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68161,6 +75329,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68171,9 +75340,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68184,6 +75355,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68196,6 +75368,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68206,6 +75379,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10357375682791004", "start": 0, "type": "Literal", @@ -68219,6 +75393,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42294321030821425", "start": 0, "type": "Literal", @@ -68230,6 +75405,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68237,6 +75413,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68247,9 +75424,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68260,6 +75439,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68272,6 +75452,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68282,6 +75463,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4520311575096987", "start": 0, "type": "Literal", @@ -68295,6 +75477,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11232675307600548", "start": 0, "type": "Literal", @@ -68306,6 +75489,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68313,6 +75497,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68323,9 +75508,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68336,6 +75523,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68348,6 +75536,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68359,6 +75548,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8821185914380845", "start": 0, "type": "Literal", @@ -68370,6 +75560,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68379,6 +75570,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7155147434939819", "start": 0, "type": "Literal", @@ -68390,6 +75582,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68397,6 +75590,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68407,9 +75601,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68420,6 +75616,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68432,6 +75629,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68442,6 +75640,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9195487101690416", "start": 0, "type": "Literal", @@ -68454,6 +75653,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2691627465297364", "start": 0, "type": "Literal", @@ -68465,6 +75665,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68475,9 +75676,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68488,6 +75691,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68500,6 +75704,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68510,6 +75715,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7098978191546745", "start": 0, "type": "Literal", @@ -68522,6 +75728,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11710004169385968", "start": 0, "type": "Literal", @@ -68533,6 +75740,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68543,9 +75751,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68556,6 +75766,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68568,6 +75779,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68579,6 +75791,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.37876368560819995", "start": 0, "type": "Literal", @@ -68590,6 +75803,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68598,6 +75812,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7106729314759084", "start": 0, "type": "Literal", @@ -68609,6 +75824,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68619,9 +75835,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68632,6 +75850,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68644,6 +75863,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68655,6 +75875,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.29728126898353335", "start": 0, "type": "Literal", @@ -68666,6 +75887,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68675,6 +75897,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06649734568328003", "start": 0, "type": "Literal", @@ -68686,6 +75909,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68693,6 +75917,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68703,9 +75928,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68716,6 +75943,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68728,6 +75956,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68738,6 +75967,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22965781558352072", "start": 0, "type": "Literal", @@ -68751,6 +75981,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7601866432836641", "start": 0, "type": "Literal", @@ -68762,6 +75993,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68769,6 +76001,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68779,9 +76012,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68792,6 +76027,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68804,6 +76040,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68815,6 +76052,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6356501074317229", "start": 0, "type": "Literal", @@ -68826,6 +76064,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68834,6 +76073,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19458425399338064", "start": 0, "type": "Literal", @@ -68845,6 +76085,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68855,9 +76096,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68868,6 +76111,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68880,6 +76124,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68890,6 +76135,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5721251777404546", "start": 0, "type": "Literal", @@ -68902,6 +76148,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2888584097921527", "start": 0, "type": "Literal", @@ -68913,6 +76160,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -68923,9 +76171,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -68936,6 +76186,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68948,6 +76199,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -68959,6 +76211,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9580409549552311", "start": 0, "type": "Literal", @@ -68970,6 +76223,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68979,6 +76233,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02243818192078395", "start": 0, "type": "Literal", @@ -68990,6 +76245,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -68997,6 +76253,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69007,9 +76264,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69020,6 +76279,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69032,6 +76292,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69042,6 +76303,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3299184618602866", "start": 0, "type": "Literal", @@ -69055,6 +76317,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8353726942369875", "start": 0, "type": "Literal", @@ -69066,6 +76329,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69073,6 +76337,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69083,9 +76348,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69096,6 +76363,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69108,6 +76376,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69118,6 +76387,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7434639386755209", "start": 0, "type": "Literal", @@ -69131,6 +76401,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7919648864138378", "start": 0, "type": "Literal", @@ -69142,6 +76413,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69149,6 +76421,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69159,9 +76432,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69172,6 +76447,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69184,6 +76460,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69194,6 +76471,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9935751011164615", "start": 0, "type": "Literal", @@ -69206,6 +76484,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9042566468497608", "start": 0, "type": "Literal", @@ -69217,6 +76496,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69227,9 +76507,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69240,6 +76522,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69252,6 +76535,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69263,6 +76547,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5035812884687294", "start": 0, "type": "Literal", @@ -69274,6 +76559,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69282,6 +76568,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5150967434989442", "start": 0, "type": "Literal", @@ -69293,6 +76580,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69303,9 +76591,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69316,6 +76606,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69328,6 +76619,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69338,6 +76630,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5526227215900215", "start": 0, "type": "Literal", @@ -69350,6 +76643,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7612604137272441", "start": 0, "type": "Literal", @@ -69361,6 +76655,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69371,9 +76666,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69384,6 +76681,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69396,6 +76694,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69406,6 +76705,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8593271349126876", "start": 0, "type": "Literal", @@ -69418,6 +76718,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08414894953725849", "start": 0, "type": "Literal", @@ -69429,6 +76730,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69439,9 +76741,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69452,6 +76756,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69464,6 +76769,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69475,6 +76781,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8181049219192864", "start": 0, "type": "Literal", @@ -69486,6 +76793,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69495,6 +76803,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.903548131323352", "start": 0, "type": "Literal", @@ -69506,6 +76815,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69513,6 +76823,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69523,9 +76834,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69536,6 +76849,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69548,6 +76862,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69558,6 +76873,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3165782044458305", "start": 0, "type": "Literal", @@ -69571,6 +76887,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24189274252014914", "start": 0, "type": "Literal", @@ -69582,6 +76899,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69589,6 +76907,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69599,9 +76918,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69612,6 +76933,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69624,6 +76946,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69635,6 +76958,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44390956414045135", "start": 0, "type": "Literal", @@ -69646,6 +76970,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69655,6 +76980,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25912591535126905", "start": 0, "type": "Literal", @@ -69666,6 +76992,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69673,6 +77000,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69683,9 +77011,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69696,6 +77026,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69708,6 +77039,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69719,6 +77051,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6605165911891009", "start": 0, "type": "Literal", @@ -69730,6 +77063,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69739,6 +77073,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.40355115288839194", "start": 0, "type": "Literal", @@ -69750,6 +77085,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69757,6 +77093,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69767,9 +77104,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69780,6 +77119,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69792,6 +77132,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69803,6 +77144,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7170489950180006", "start": 0, "type": "Literal", @@ -69814,6 +77156,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69822,6 +77165,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23454356079651384", "start": 0, "type": "Literal", @@ -69833,6 +77177,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69843,9 +77188,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69856,6 +77203,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69868,6 +77216,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69879,6 +77228,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2568187045379722", "start": 0, "type": "Literal", @@ -69890,6 +77240,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69899,6 +77250,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.45031188717601367", "start": 0, "type": "Literal", @@ -69910,6 +77262,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69917,6 +77270,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -69927,9 +77281,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -69940,6 +77296,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -69952,6 +77309,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -69962,6 +77320,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -69975,6 +77334,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -69986,6 +77346,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -69993,6 +77354,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70003,9 +77365,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70016,6 +77380,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70028,6 +77393,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70039,6 +77405,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -70050,6 +77417,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70058,6 +77426,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -70069,6 +77438,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70079,9 +77449,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70092,6 +77464,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70104,6 +77477,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70115,6 +77489,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8328324229085962", "start": 0, "type": "Literal", @@ -70126,6 +77501,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70134,6 +77510,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4677492878818803", "start": 0, "type": "Literal", @@ -70145,6 +77522,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70155,9 +77533,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70168,6 +77548,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70180,6 +77561,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70191,6 +77573,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8111463382182231", "start": 0, "type": "Literal", @@ -70202,6 +77585,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70211,6 +77595,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41814807547140576", "start": 0, "type": "Literal", @@ -70222,6 +77607,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70229,6 +77615,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70239,9 +77626,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70252,6 +77641,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70264,6 +77654,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70274,6 +77665,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03807684940941125", "start": 0, "type": "Literal", @@ -70286,6 +77678,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25664826686353326", "start": 0, "type": "Literal", @@ -70297,6 +77690,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70307,9 +77701,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70320,6 +77716,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70332,6 +77729,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70342,6 +77740,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.23950083339596384", "start": 0, "type": "Literal", @@ -70354,6 +77753,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43693196301855575", "start": 0, "type": "Literal", @@ -70365,6 +77765,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70375,9 +77776,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70388,6 +77791,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70400,6 +77804,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70411,6 +77816,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16279444820904887", "start": 0, "type": "Literal", @@ -70422,6 +77828,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70430,6 +77837,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8064475707664818", "start": 0, "type": "Literal", @@ -70441,6 +77849,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70451,9 +77860,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70464,6 +77875,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70476,6 +77888,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70487,6 +77900,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08972872009232558", "start": 0, "type": "Literal", @@ -70498,6 +77912,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70507,6 +77922,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08887625823751266", "start": 0, "type": "Literal", @@ -70518,6 +77934,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70525,6 +77942,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70535,9 +77953,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70548,6 +77968,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70560,6 +77981,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70570,6 +77992,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9203433427102556", "start": 0, "type": "Literal", @@ -70583,6 +78006,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17343459369697545", "start": 0, "type": "Literal", @@ -70594,6 +78018,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70601,6 +78026,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70611,9 +78037,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70624,6 +78052,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70636,6 +78065,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70646,6 +78076,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0017496234414517975", "start": 0, "type": "Literal", @@ -70659,6 +78090,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5178508316168335", "start": 0, "type": "Literal", @@ -70670,6 +78102,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70677,6 +78110,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70687,9 +78121,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70700,6 +78136,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70712,6 +78149,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70722,6 +78160,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6206263405732759", "start": 0, "type": "Literal", @@ -70735,6 +78174,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8733399468665124", "start": 0, "type": "Literal", @@ -70746,6 +78186,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70753,6 +78194,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70763,9 +78205,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70776,6 +78220,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70788,6 +78233,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70799,6 +78245,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7776386664456383", "start": 0, "type": "Literal", @@ -70810,6 +78257,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70818,6 +78266,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7602780485384968", "start": 0, "type": "Literal", @@ -70829,6 +78278,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70839,9 +78289,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70852,6 +78304,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70864,6 +78317,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70874,6 +78328,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5439379760788592", "start": 0, "type": "Literal", @@ -70886,6 +78341,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8449177589350552", "start": 0, "type": "Literal", @@ -70897,6 +78353,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70907,9 +78364,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70920,6 +78379,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -70932,6 +78392,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -70943,6 +78404,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.13036646025917076", "start": 0, "type": "Literal", @@ -70954,6 +78416,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -70962,6 +78425,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.012051713627069693", "start": 0, "type": "Literal", @@ -70973,6 +78437,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -70983,9 +78448,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -70996,6 +78463,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71008,6 +78476,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71019,6 +78488,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1656465612645519", "start": 0, "type": "Literal", @@ -71030,6 +78500,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71039,6 +78510,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.20775229173765486", "start": 0, "type": "Literal", @@ -71050,6 +78522,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71057,6 +78530,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71067,9 +78541,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71080,6 +78556,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71092,6 +78569,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71103,6 +78581,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0962723255929061", "start": 0, "type": "Literal", @@ -71114,6 +78593,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71123,6 +78603,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05417797659066137", "start": 0, "type": "Literal", @@ -71134,6 +78615,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71141,6 +78623,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71151,9 +78634,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71164,6 +78649,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71176,6 +78662,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71186,6 +78673,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.902108945498191", "start": 0, "type": "Literal", @@ -71198,6 +78686,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3958978534964961", "start": 0, "type": "Literal", @@ -71209,6 +78698,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71219,9 +78709,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71232,6 +78724,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71244,6 +78737,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71254,6 +78748,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.27997950083139167", "start": 0, "type": "Literal", @@ -71267,6 +78762,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17778188444008958", "start": 0, "type": "Literal", @@ -71278,6 +78774,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71285,6 +78782,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71295,9 +78793,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71308,6 +78808,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71320,6 +78821,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71330,6 +78832,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5235806061589545", "start": 0, "type": "Literal", @@ -71342,6 +78845,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.694318985642328", "start": 0, "type": "Literal", @@ -71353,6 +78857,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71363,9 +78868,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71376,6 +78883,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71388,6 +78896,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71398,6 +78907,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39140760219992154", "start": 0, "type": "Literal", @@ -71411,6 +78921,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7839795272576484", "start": 0, "type": "Literal", @@ -71422,6 +78933,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71429,6 +78941,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71439,9 +78952,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71452,6 +78967,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71464,6 +78980,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71474,6 +78991,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8414243527073519", "start": 0, "type": "Literal", @@ -71486,6 +79004,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5395591528940082", "start": 0, "type": "Literal", @@ -71497,6 +79016,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71507,9 +79027,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71520,6 +79042,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71532,6 +79055,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71542,6 +79066,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6137667704875602", "start": 0, "type": "Literal", @@ -71554,6 +79079,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22119647516722085", "start": 0, "type": "Literal", @@ -71565,6 +79091,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71575,9 +79102,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71588,6 +79117,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71600,6 +79130,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71611,6 +79142,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09582414374469184", "start": 0, "type": "Literal", @@ -71622,6 +79154,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71631,6 +79164,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7533839681212353", "start": 0, "type": "Literal", @@ -71642,6 +79176,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71649,6 +79184,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71659,9 +79195,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71672,6 +79210,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71684,6 +79223,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71695,6 +79235,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17254116580051848", "start": 0, "type": "Literal", @@ -71706,6 +79247,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71715,6 +79257,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7669113400341137", "start": 0, "type": "Literal", @@ -71726,6 +79269,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71733,6 +79277,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71743,9 +79288,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71756,6 +79303,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71768,6 +79316,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71778,6 +79327,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8944730032887609", "start": 0, "type": "Literal", @@ -71790,6 +79340,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6093318694741408", "start": 0, "type": "Literal", @@ -71801,6 +79352,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71811,9 +79363,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71824,6 +79378,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71836,6 +79391,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71847,6 +79403,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41290485754343953", "start": 0, "type": "Literal", @@ -71858,6 +79415,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71867,6 +79425,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4152647361760933", "start": 0, "type": "Literal", @@ -71878,6 +79437,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71885,6 +79445,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71895,9 +79456,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71908,6 +79471,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71920,6 +79484,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -71930,6 +79495,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5169538755575687", "start": 0, "type": "Literal", @@ -71943,6 +79509,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9085567867302617", "start": 0, "type": "Literal", @@ -71954,6 +79521,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -71961,6 +79529,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -71971,9 +79540,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -71984,6 +79555,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -71996,6 +79568,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72006,6 +79579,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6751951211858687", "start": 0, "type": "Literal", @@ -72019,6 +79593,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9709424233465593", "start": 0, "type": "Literal", @@ -72030,6 +79605,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72037,6 +79613,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72047,9 +79624,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72060,6 +79639,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72072,6 +79652,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72083,6 +79664,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5689619842972184", "start": 0, "type": "Literal", @@ -72094,6 +79676,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72102,6 +79685,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5918969913790362", "start": 0, "type": "Literal", @@ -72113,6 +79697,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72123,9 +79708,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72136,6 +79723,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72148,6 +79736,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72158,6 +79747,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9464450621708211", "start": 0, "type": "Literal", @@ -72171,6 +79761,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2684908127803667", "start": 0, "type": "Literal", @@ -72182,6 +79773,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72189,6 +79781,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72199,9 +79792,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72212,6 +79807,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72224,6 +79820,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72234,6 +79831,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5241732366617591", "start": 0, "type": "Literal", @@ -72246,6 +79844,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9011437416408563", "start": 0, "type": "Literal", @@ -72257,6 +79856,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72267,9 +79867,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72280,6 +79882,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72292,6 +79895,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72303,6 +79907,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14255393713960607", "start": 0, "type": "Literal", @@ -72314,6 +79919,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72323,6 +79929,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5194262624564814", "start": 0, "type": "Literal", @@ -72334,6 +79941,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72341,6 +79949,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72351,9 +79960,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72364,6 +79975,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72376,6 +79988,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72387,6 +80000,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4287123231350338", "start": 0, "type": "Literal", @@ -72398,6 +80012,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72407,6 +80022,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4223564528725028", "start": 0, "type": "Literal", @@ -72418,6 +80034,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72425,6 +80042,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72435,9 +80053,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72448,6 +80068,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72460,6 +80081,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72471,6 +80093,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09316367294024519", "start": 0, "type": "Literal", @@ -72482,6 +80105,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72491,6 +80115,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9063127021008246", "start": 0, "type": "Literal", @@ -72502,6 +80127,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72509,6 +80135,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72519,9 +80146,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72532,6 +80161,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72544,6 +80174,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72555,6 +80186,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2767766535558669", "start": 0, "type": "Literal", @@ -72566,6 +80198,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72574,6 +80207,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6816248114129131", "start": 0, "type": "Literal", @@ -72585,6 +80219,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72595,9 +80230,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72608,6 +80245,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72620,6 +80258,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72630,6 +80269,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9796762495562534", "start": 0, "type": "Literal", @@ -72643,6 +80283,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0822145668330625", "start": 0, "type": "Literal", @@ -72654,6 +80295,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72661,6 +80303,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72671,9 +80314,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72684,6 +80329,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72696,6 +80342,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72707,6 +80354,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8666513070867441", "start": 0, "type": "Literal", @@ -72718,6 +80366,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72727,6 +80376,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.301053160242023", "start": 0, "type": "Literal", @@ -72738,6 +80388,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72745,6 +80396,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72755,9 +80407,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72768,6 +80422,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72780,6 +80435,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72790,6 +80446,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.537415656028112", "start": 0, "type": "Literal", @@ -72802,6 +80459,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020272692875002774", "start": 0, "type": "Literal", @@ -72813,6 +80471,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72823,9 +80482,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72836,6 +80497,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72848,6 +80510,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72858,6 +80521,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9332396256457531", "start": 0, "type": "Literal", @@ -72871,6 +80535,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6228175690649898", "start": 0, "type": "Literal", @@ -72882,6 +80547,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72889,6 +80555,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72899,9 +80566,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72912,6 +80581,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -72924,6 +80594,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -72934,6 +80605,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.18052415837320734", "start": 0, "type": "Literal", @@ -72947,6 +80619,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.36894384647296197", "start": 0, "type": "Literal", @@ -72958,6 +80631,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72965,6 +80639,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -72975,9 +80650,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -72988,6 +80665,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73000,6 +80678,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73010,6 +80689,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5384372634075449", "start": 0, "type": "Literal", @@ -73022,6 +80702,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2377565050887107", "start": 0, "type": "Literal", @@ -73033,6 +80714,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73043,9 +80725,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73056,6 +80740,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73068,6 +80753,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73078,6 +80764,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39043436929278874", "start": 0, "type": "Literal", @@ -73090,6 +80777,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.14273182483160451", "start": 0, "type": "Literal", @@ -73101,6 +80789,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73111,9 +80800,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73124,6 +80815,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73136,6 +80828,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73146,6 +80839,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09782890412897283", "start": 0, "type": "Literal", @@ -73158,6 +80852,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9907667536909659", "start": 0, "type": "Literal", @@ -73169,6 +80864,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73179,9 +80875,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73192,6 +80890,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73204,6 +80903,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73214,6 +80914,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5286610085921146", "start": 0, "type": "Literal", @@ -73227,6 +80928,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7924508308419256", "start": 0, "type": "Literal", @@ -73238,6 +80940,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73245,6 +80948,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73255,9 +80959,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73268,6 +80974,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73280,6 +80987,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73290,6 +80998,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3789978184503342", "start": 0, "type": "Literal", @@ -73302,6 +81011,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12396120576838676", "start": 0, "type": "Literal", @@ -73313,6 +81023,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73323,9 +81034,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73336,6 +81049,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73348,6 +81062,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73359,6 +81074,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9484912744890612", "start": 0, "type": "Literal", @@ -73370,6 +81086,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73378,6 +81095,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6729649846476855", "start": 0, "type": "Literal", @@ -73389,6 +81107,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73399,9 +81118,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73412,6 +81133,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73424,6 +81146,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73434,6 +81157,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7451758753425153", "start": 0, "type": "Literal", @@ -73447,6 +81171,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21318737562458967", "start": 0, "type": "Literal", @@ -73458,6 +81183,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73465,6 +81191,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73475,9 +81202,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73488,6 +81217,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73500,6 +81230,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73510,6 +81241,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1873200727251887", "start": 0, "type": "Literal", @@ -73523,6 +81255,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15961374297992448", "start": 0, "type": "Literal", @@ -73534,6 +81267,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73541,6 +81275,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73551,9 +81286,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73564,6 +81301,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73576,6 +81314,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73587,6 +81326,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05729464924537564", "start": 0, "type": "Literal", @@ -73598,6 +81338,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73607,6 +81348,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5436345558508746", "start": 0, "type": "Literal", @@ -73618,6 +81360,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73625,6 +81368,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73635,9 +81379,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73648,6 +81394,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73660,6 +81407,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73671,6 +81419,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09582414374469184", "start": 0, "type": "Literal", @@ -73682,6 +81431,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73691,6 +81441,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7533839681212353", "start": 0, "type": "Literal", @@ -73702,6 +81453,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73709,6 +81461,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73719,9 +81472,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73732,6 +81487,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73744,6 +81500,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73755,6 +81512,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.17254116580051848", "start": 0, "type": "Literal", @@ -73766,6 +81524,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73775,6 +81534,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7669113400341137", "start": 0, "type": "Literal", @@ -73786,6 +81546,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73793,6 +81554,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73803,9 +81565,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73816,6 +81580,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73828,6 +81593,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73838,6 +81604,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8944730032887609", "start": 0, "type": "Literal", @@ -73850,6 +81617,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6093318694741408", "start": 0, "type": "Literal", @@ -73861,6 +81629,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73871,9 +81640,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73884,6 +81655,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73896,6 +81668,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73907,6 +81680,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6238548626325471", "start": 0, "type": "Literal", @@ -73918,6 +81692,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -73926,6 +81701,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4053626746020169", "start": 0, "type": "Literal", @@ -73937,6 +81713,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -73947,9 +81724,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -73960,6 +81739,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -73972,6 +81752,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -73982,6 +81763,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1379445992766417", "start": 0, "type": "Literal", @@ -73995,6 +81777,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.47871087958516045", "start": 0, "type": "Literal", @@ -74006,6 +81789,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74013,6 +81797,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74023,9 +81808,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74036,6 +81823,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74048,6 +81836,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74059,6 +81848,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9516767113283946", "start": 0, "type": "Literal", @@ -74070,6 +81860,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74078,6 +81869,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8619900618578948", "start": 0, "type": "Literal", @@ -74089,6 +81881,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74099,9 +81892,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74112,6 +81907,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74124,6 +81920,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74134,6 +81931,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9398732950992088", "start": 0, "type": "Literal", @@ -74146,6 +81944,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6326239915683629", "start": 0, "type": "Literal", @@ -74157,6 +81956,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74167,9 +81967,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74180,6 +81982,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74192,6 +81995,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74203,6 +82007,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8631974445502164", "start": 0, "type": "Literal", @@ -74214,6 +82019,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74222,6 +82028,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.016153555523963137", "start": 0, "type": "Literal", @@ -74233,6 +82040,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74243,9 +82051,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74256,6 +82066,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74268,6 +82079,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74278,6 +82090,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19167797120152907", "start": 0, "type": "Literal", @@ -74291,6 +82104,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.4916414381703984", "start": 0, "type": "Literal", @@ -74302,6 +82116,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74309,6 +82124,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74319,9 +82135,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74332,6 +82150,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74344,6 +82163,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74355,6 +82175,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8644261221501586", "start": 0, "type": "Literal", @@ -74366,6 +82187,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74375,6 +82197,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.11434763886359756", "start": 0, "type": "Literal", @@ -74386,6 +82209,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74393,6 +82217,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74403,9 +82228,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74416,6 +82243,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74428,6 +82256,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74439,6 +82268,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.029081958413378572", "start": 0, "type": "Literal", @@ -74450,6 +82280,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74459,6 +82290,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5214138808318329", "start": 0, "type": "Literal", @@ -74470,6 +82302,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74477,6 +82310,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74487,9 +82321,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74500,6 +82336,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74512,6 +82349,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74523,6 +82361,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8713091851579695", "start": 0, "type": "Literal", @@ -74534,6 +82373,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74542,6 +82382,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7866284950967315", "start": 0, "type": "Literal", @@ -74553,6 +82394,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74563,9 +82405,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74576,6 +82420,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74588,6 +82433,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74598,6 +82444,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.884342023093545", "start": 0, "type": "Literal", @@ -74611,6 +82458,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1825407002568431", "start": 0, "type": "Literal", @@ -74622,6 +82470,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74629,6 +82478,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74639,9 +82489,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74652,6 +82504,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74664,6 +82517,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74675,6 +82529,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6978385295364686", "start": 0, "type": "Literal", @@ -74686,6 +82541,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74694,6 +82550,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0440574328736949", "start": 0, "type": "Literal", @@ -74705,6 +82562,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74715,9 +82573,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74728,6 +82588,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74740,6 +82601,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74751,6 +82613,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.48055049324331556", "start": 0, "type": "Literal", @@ -74762,6 +82625,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74771,6 +82635,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.028546347149214002", "start": 0, "type": "Literal", @@ -74782,6 +82647,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74789,6 +82655,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74799,9 +82666,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74812,6 +82681,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74824,6 +82694,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74834,6 +82705,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.41283517382864776", "start": 0, "type": "Literal", @@ -74847,6 +82719,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.44938038251347323", "start": 0, "type": "Literal", @@ -74858,6 +82731,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -74865,6 +82739,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74875,9 +82750,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74888,6 +82765,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74900,6 +82778,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74910,6 +82789,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7911399832501751", "start": 0, "type": "Literal", @@ -74922,6 +82802,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.893446368526005", "start": 0, "type": "Literal", @@ -74933,6 +82814,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -74943,9 +82825,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -74956,6 +82840,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -74968,6 +82853,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -74978,6 +82864,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6507434699009087", "start": 0, "type": "Literal", @@ -74991,6 +82878,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6890023920962012", "start": 0, "type": "Literal", @@ -75002,6 +82890,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75009,6 +82898,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75019,9 +82909,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75032,6 +82924,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75044,6 +82937,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75054,6 +82948,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.10489019777253028", "start": 0, "type": "Literal", @@ -75067,6 +82962,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5467450997193952", "start": 0, "type": "Literal", @@ -75078,6 +82974,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75085,6 +82982,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75095,9 +82993,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75108,6 +83008,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75120,6 +83021,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75131,6 +83033,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5760905289992633", "start": 0, "type": "Literal", @@ -75142,6 +83045,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75151,6 +83055,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2639900702114173", "start": 0, "type": "Literal", @@ -75162,6 +83067,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75169,6 +83075,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75179,9 +83086,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75192,6 +83101,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75204,6 +83114,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75214,6 +83125,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.39828861790105297", "start": 0, "type": "Literal", @@ -75226,6 +83138,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8036624129416385", "start": 0, "type": "Literal", @@ -75237,6 +83150,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75247,9 +83161,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75260,6 +83176,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75272,6 +83189,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75283,6 +83201,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.673848991328553", "start": 0, "type": "Literal", @@ -75294,6 +83213,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75303,6 +83223,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.918443329270668", "start": 0, "type": "Literal", @@ -75314,6 +83235,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75321,6 +83243,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75331,9 +83254,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75344,6 +83269,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75356,6 +83282,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75367,6 +83294,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8599152936179257", "start": 0, "type": "Literal", @@ -75378,6 +83306,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75387,6 +83316,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9499371022680787", "start": 0, "type": "Literal", @@ -75398,6 +83328,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75405,6 +83336,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75415,9 +83347,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75428,6 +83362,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75440,6 +83375,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75450,6 +83386,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6285243831393765", "start": 0, "type": "Literal", @@ -75463,6 +83400,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5186557636566307", "start": 0, "type": "Literal", @@ -75474,6 +83412,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75481,6 +83420,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75491,9 +83431,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75504,6 +83446,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75516,6 +83459,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75526,6 +83470,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.3222412784832269", "start": 0, "type": "Literal", @@ -75538,6 +83483,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.24621192679727177", "start": 0, "type": "Literal", @@ -75549,6 +83495,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75559,9 +83506,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75572,6 +83521,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75584,6 +83534,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75594,6 +83545,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.19754357911311016", "start": 0, "type": "Literal", @@ -75607,6 +83559,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7529246632397206", "start": 0, "type": "Literal", @@ -75618,6 +83571,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75625,6 +83579,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75635,9 +83590,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75648,6 +83605,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75660,6 +83618,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75671,6 +83630,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.43181570545865555", "start": 0, "type": "Literal", @@ -75682,6 +83642,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75690,6 +83651,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.18945437402201537", "start": 0, "type": "Literal", @@ -75701,6 +83663,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75711,9 +83674,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75724,6 +83689,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75736,6 +83702,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -75746,6 +83713,7 @@ description: Result of parsing mike_stress_test.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8714511090241797", "start": 0, "type": "Literal", @@ -75759,6 +83727,7 @@ description: Result of parsing mike_stress_test.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.7215844196844685", "start": 0, "type": "Literal", @@ -75770,6 +83739,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -75777,6 +83747,7 @@ description: Result of parsing mike_stress_test.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -75787,9 +83758,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -75800,19 +83773,23 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -75823,12 +83800,14 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -75841,6 +83820,7 @@ description: Result of parsing mike_stress_test.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -75848,6 +83828,7 @@ description: Result of parsing mike_stress_test.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -75863,9 +83844,11 @@ description: Result of parsing mike_stress_test.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -75876,6 +83859,7 @@ description: Result of parsing mike_stress_test.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -75884,15 +83868,18 @@ description: Result of parsing mike_stress_test.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -75900,6 +83887,7 @@ description: Result of parsing mike_stress_test.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/module_return_using_var/ast.snap b/rust/kcl-lib/tests/module_return_using_var/ast.snap index eb1eadad1..3626cde29 100644 --- a/rust/kcl-lib/tests/module_return_using_var/ast.snap +++ b/rust/kcl-lib/tests/module_return_using_var/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing module_return_using_var.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "cube.kcl" @@ -29,9 +30,11 @@ description: Result of parsing module_return_using_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -48,6 +51,7 @@ description: Result of parsing module_return_using_var.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -55,6 +59,7 @@ description: Result of parsing module_return_using_var.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -70,9 +75,11 @@ description: Result of parsing module_return_using_var.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -83,6 +90,7 @@ description: Result of parsing module_return_using_var.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -91,10 +99,12 @@ description: Result of parsing module_return_using_var.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "preComments": [ "", "", @@ -107,6 +117,7 @@ description: Result of parsing module_return_using_var.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/multi_target_csg/ast.snap b/rust/kcl-lib/tests/multi_target_csg/ast.snap index 231d8e825..495a1f0c3 100644 --- a/rust/kcl-lib/tests/multi_target_csg/ast.snap +++ b/rust/kcl-lib/tests/multi_target_csg/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -43,9 +48,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -57,17 +64,20 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -80,6 +90,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -93,6 +104,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -104,6 +116,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1625", "start": 0, "type": "Literal", @@ -115,6 +128,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -123,6 +137,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1875", "start": 0, "type": "Literal", @@ -134,6 +149,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -144,9 +160,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -157,6 +175,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -164,9 +183,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -184,6 +205,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -191,6 +213,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.325", "start": 0, "type": "Literal", @@ -206,9 +229,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -219,6 +244,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -231,6 +257,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -238,6 +265,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -253,6 +281,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -260,6 +289,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -275,6 +305,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -282,6 +313,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -297,9 +329,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -310,6 +344,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -322,6 +357,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -330,6 +366,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.325", "start": 0, "type": "Literal", @@ -341,6 +378,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -352,9 +390,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -365,6 +405,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -377,6 +418,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -384,6 +426,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -399,6 +442,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -406,6 +450,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -421,6 +466,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -428,6 +474,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -443,9 +490,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -456,6 +505,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -468,6 +518,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -476,6 +527,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.325", "start": 0, "type": "Literal", @@ -487,6 +539,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -498,9 +551,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -511,6 +566,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -523,6 +579,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -530,6 +587,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -545,6 +603,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -552,6 +611,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -567,6 +627,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -574,6 +635,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -589,9 +651,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -602,6 +666,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -614,6 +679,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -621,6 +687,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.325", "start": 0, "type": "Literal", @@ -636,9 +703,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -649,6 +718,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -661,6 +731,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -668,6 +739,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -683,6 +755,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -690,6 +763,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -705,6 +779,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -712,6 +787,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -727,9 +803,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -740,19 +818,23 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -763,6 +845,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -775,6 +858,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -786,6 +870,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -797,6 +882,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -808,6 +894,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -817,6 +904,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -828,6 +916,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -835,6 +924,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -845,6 +935,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -852,6 +943,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.039062", "start": 0, "type": "Literal", @@ -867,6 +959,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -874,6 +967,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -885,9 +979,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -898,6 +994,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -909,9 +1006,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -922,6 +1021,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -930,15 +1030,18 @@ description: Result of parsing multi_target_csg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -951,6 +1054,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -962,6 +1066,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -969,6 +1074,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0625", "start": 0, "type": "Literal", @@ -984,9 +1090,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -997,6 +1105,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1004,9 +1113,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -1017,11 +1128,13 @@ description: Result of parsing multi_target_csg.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1034,18 +1147,22 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1056,6 +1173,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1063,9 +1181,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1076,11 +1196,13 @@ description: Result of parsing multi_target_csg.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1093,6 +1215,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -1106,6 +1229,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1117,6 +1241,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05582", "start": 0, "type": "Literal", @@ -1128,6 +1253,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1137,6 +1263,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21875", "start": 0, "type": "Literal", @@ -1148,6 +1275,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1155,6 +1283,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1165,9 +1294,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1178,6 +1309,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1185,9 +1317,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1205,6 +1339,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1215,6 +1350,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.048496", "start": 0, "type": "Literal", @@ -1227,6 +1363,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21875", "start": 0, "type": "Literal", @@ -1238,6 +1375,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1248,9 +1386,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1261,6 +1401,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1273,6 +1414,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1281,6 +1423,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.087793", "start": 0, "type": "Literal", @@ -1292,6 +1435,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1303,9 +1447,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1316,6 +1462,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1328,6 +1475,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1339,6 +1487,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.026673", "start": 0, "type": "Literal", @@ -1350,6 +1499,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1359,6 +1509,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.120313", "start": 0, "type": "Literal", @@ -1370,6 +1521,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1377,6 +1529,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1387,9 +1540,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1400,6 +1555,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1412,6 +1568,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1422,6 +1579,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.058646", "start": 0, "type": "Literal", @@ -1435,6 +1593,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.098438", "start": 0, "type": "Literal", @@ -1446,6 +1605,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1453,6 +1613,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1463,9 +1624,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1476,6 +1639,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1488,6 +1652,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1495,6 +1660,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.007324", "start": 0, "type": "Literal", @@ -1510,9 +1676,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1523,19 +1691,23 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1546,6 +1718,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1554,15 +1727,18 @@ description: Result of parsing multi_target_csg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1575,6 +1751,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile001", "start": 0, "type": "Identifier" @@ -1588,6 +1765,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1598,6 +1776,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.007324", "start": 0, "type": "Literal", @@ -1610,6 +1789,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1621,6 +1801,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1631,9 +1812,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1644,6 +1827,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1651,9 +1835,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1671,6 +1857,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1678,6 +1865,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.087793", "start": 0, "type": "Literal", @@ -1693,9 +1881,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1706,6 +1896,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1718,6 +1909,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1728,6 +1920,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.026673", "start": 0, "type": "Literal", @@ -1741,6 +1934,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.120313", "start": 0, "type": "Literal", @@ -1752,6 +1946,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1759,6 +1954,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1769,9 +1965,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1782,6 +1980,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1794,6 +1993,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1805,6 +2005,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.058646", "start": 0, "type": "Literal", @@ -1816,6 +2017,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1825,6 +2027,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.098438", "start": 0, "type": "Literal", @@ -1836,6 +2039,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1843,6 +2047,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1853,9 +2058,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1866,6 +2073,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1878,6 +2086,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1886,6 +2095,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.007324", "start": 0, "type": "Literal", @@ -1897,6 +2107,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1908,9 +2119,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1921,6 +2134,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1933,6 +2147,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1944,6 +2159,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.048496", "start": 0, "type": "Literal", @@ -1955,6 +2171,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1963,6 +2180,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21875", "start": 0, "type": "Literal", @@ -1974,6 +2192,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1984,9 +2203,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1997,19 +2218,23 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2020,6 +2245,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2028,15 +2254,18 @@ description: Result of parsing multi_target_csg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2049,6 +2278,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -2060,6 +2290,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2067,6 +2298,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -2082,6 +2314,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -2089,6 +2322,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -2104,9 +2338,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2117,6 +2353,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2127,9 +2364,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -2143,9 +2382,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile001", "start": 0, "type": "Identifier" @@ -2157,16 +2398,19 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2179,18 +2423,22 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2201,6 +2449,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2211,6 +2460,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2218,6 +2468,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -2233,9 +2484,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2246,6 +2499,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2254,9 +2508,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2268,6 +2524,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2275,11 +2532,13 @@ description: Result of parsing multi_target_csg.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2292,6 +2551,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004Profile000", "start": 0, "type": "Identifier" @@ -2303,6 +2563,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2314,6 +2575,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2325,6 +2587,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2334,6 +2597,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2345,6 +2609,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2352,6 +2617,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2362,6 +2628,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2369,6 +2636,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.039062", "start": 0, "type": "Literal", @@ -2384,9 +2652,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2397,6 +2667,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2404,9 +2675,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -2417,11 +2690,13 @@ description: Result of parsing multi_target_csg.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2434,6 +2709,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -2445,6 +2721,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2453,6 +2730,7 @@ description: Result of parsing multi_target_csg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2464,6 +2742,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2475,9 +2754,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2488,6 +2769,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2498,9 +2780,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004Profile000", "start": 0, "type": "Identifier" @@ -2512,16 +2796,19 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2534,6 +2821,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -2545,6 +2833,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -2553,9 +2842,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -2571,9 +2862,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -2584,6 +2877,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2591,9 +2885,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -2604,11 +2900,13 @@ description: Result of parsing multi_target_csg.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2621,18 +2919,22 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2643,6 +2945,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2653,6 +2956,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2660,6 +2964,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.07", "start": 0, "type": "Literal", @@ -2675,9 +2980,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2688,6 +2995,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2696,9 +3004,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2710,6 +3020,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2717,11 +3028,13 @@ description: Result of parsing multi_target_csg.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2734,6 +3047,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005Profile000", "start": 0, "type": "Identifier" @@ -2745,6 +3059,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2755,6 +3070,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2767,6 +3083,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2778,6 +3095,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2788,6 +3106,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2795,6 +3114,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.052734", "start": 0, "type": "Literal", @@ -2810,9 +3130,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -2823,6 +3145,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2830,9 +3153,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005", "start": 0, "type": "Identifier" @@ -2843,11 +3168,13 @@ description: Result of parsing multi_target_csg.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2860,18 +3187,22 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch006", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2882,6 +3213,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2892,6 +3224,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -2899,6 +3232,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0325", "start": 0, "type": "Literal", @@ -2914,9 +3248,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -2927,6 +3263,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2935,9 +3272,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2949,6 +3288,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2956,11 +3296,13 @@ description: Result of parsing multi_target_csg.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2973,6 +3315,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch006Profile000", "start": 0, "type": "Identifier" @@ -2984,6 +3327,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -2994,6 +3338,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3006,6 +3351,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3017,6 +3363,7 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3027,6 +3374,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -3034,6 +3382,7 @@ description: Result of parsing multi_target_csg.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03", "start": 0, "type": "Literal", @@ -3049,9 +3398,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -3062,6 +3413,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3069,9 +3421,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch006", "start": 0, "type": "Identifier" @@ -3082,11 +3436,13 @@ description: Result of parsing multi_target_csg.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3099,18 +3455,22 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "draftCut000Extrude", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -3121,6 +3481,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3131,9 +3492,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch005Profile000", "start": 0, "type": "Identifier" @@ -3147,9 +3510,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch006Profile000", "start": 0, "type": "Identifier" @@ -3161,16 +3526,19 @@ description: Result of parsing multi_target_csg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3183,6 +3551,7 @@ description: Result of parsing multi_target_csg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "draftCut000", "start": 0, "type": "Identifier" @@ -3194,6 +3563,7 @@ description: Result of parsing multi_target_csg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -3202,9 +3572,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "draftCut000Extrude", "start": 0, "type": "Identifier" @@ -3220,9 +3592,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -3233,6 +3607,7 @@ description: Result of parsing multi_target_csg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3240,9 +3615,11 @@ description: Result of parsing multi_target_csg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -3253,11 +3630,13 @@ description: Result of parsing multi_target_csg.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3269,9 +3648,11 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3283,19 +3664,23 @@ description: Result of parsing multi_target_csg.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -3311,12 +3696,14 @@ description: Result of parsing multi_target_csg.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3328,6 +3715,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3339,6 +3727,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3350,6 +3739,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3361,6 +3751,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3372,6 +3763,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3383,6 +3775,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3394,6 +3787,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3405,6 +3799,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3416,6 +3811,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3427,6 +3823,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3438,6 +3835,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3449,6 +3847,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3460,6 +3859,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3471,6 +3871,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3482,6 +3883,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3494,6 +3896,7 @@ description: Result of parsing multi_target_csg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/multi_transform/ast.snap b/rust/kcl-lib/tests/multi_transform/ast.snap index 5e0be6545..5c6b496d2 100644 --- a/rust/kcl-lib/tests/multi_transform/ast.snap +++ b/rust/kcl-lib/tests/multi_transform/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing multi_transform.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "transform", "start": 0, "type": "Identifier" @@ -27,6 +28,7 @@ description: Result of parsing multi_transform.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -34,10 +36,12 @@ description: Result of parsing multi_transform.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -49,6 +53,7 @@ description: Result of parsing multi_transform.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -58,14 +63,17 @@ description: Result of parsing multi_transform.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -82,6 +90,7 @@ description: Result of parsing multi_transform.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -94,6 +103,7 @@ description: Result of parsing multi_transform.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -105,6 +115,7 @@ description: Result of parsing multi_transform.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -118,6 +129,7 @@ description: Result of parsing multi_transform.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -125,15 +137,18 @@ description: Result of parsing multi_transform.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotation", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -141,10 +156,12 @@ description: Result of parsing multi_transform.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -153,6 +170,7 @@ description: Result of parsing multi_transform.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -162,14 +180,17 @@ description: Result of parsing multi_transform.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -197,12 +218,14 @@ description: Result of parsing multi_transform.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -210,16 +233,19 @@ description: Result of parsing multi_transform.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "i", "start": 0, "type": "Identifier" @@ -231,11 +257,13 @@ description: Result of parsing multi_transform.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -246,13 +274,16 @@ description: Result of parsing multi_transform.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -263,6 +294,7 @@ description: Result of parsing multi_transform.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -270,9 +302,11 @@ description: Result of parsing multi_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -290,6 +324,7 @@ description: Result of parsing multi_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -300,6 +335,7 @@ description: Result of parsing multi_transform.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -312,6 +348,7 @@ description: Result of parsing multi_transform.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -323,6 +360,7 @@ description: Result of parsing multi_transform.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -333,9 +371,11 @@ description: Result of parsing multi_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -346,6 +386,7 @@ description: Result of parsing multi_transform.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -358,6 +399,7 @@ description: Result of parsing multi_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -365,6 +407,7 @@ description: Result of parsing multi_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -380,6 +423,7 @@ description: Result of parsing multi_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "numSides", "start": 0, "type": "Identifier" @@ -387,6 +431,7 @@ description: Result of parsing multi_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -402,6 +447,7 @@ description: Result of parsing multi_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -412,6 +458,7 @@ description: Result of parsing multi_transform.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -424,6 +471,7 @@ description: Result of parsing multi_transform.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -435,6 +483,7 @@ description: Result of parsing multi_transform.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -445,6 +494,7 @@ description: Result of parsing multi_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "inscribed", "start": 0, "type": "Identifier" @@ -452,6 +502,7 @@ description: Result of parsing multi_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "false", "start": 0, "type": "Literal", @@ -464,9 +515,11 @@ description: Result of parsing multi_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polygon", "start": 0, "type": "Identifier" @@ -477,6 +530,7 @@ description: Result of parsing multi_transform.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -489,6 +543,7 @@ description: Result of parsing multi_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -496,6 +551,7 @@ description: Result of parsing multi_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -511,9 +567,11 @@ description: Result of parsing multi_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -524,6 +582,7 @@ description: Result of parsing multi_transform.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -536,6 +595,7 @@ description: Result of parsing multi_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -543,6 +603,7 @@ description: Result of parsing multi_transform.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -558,6 +619,7 @@ description: Result of parsing multi_transform.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "transform", "start": 0, "type": "Identifier" @@ -566,9 +628,11 @@ description: Result of parsing multi_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "transform", "start": 0, "type": "Identifier" @@ -584,9 +648,11 @@ description: Result of parsing multi_transform.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternTransform", "start": 0, "type": "Identifier" @@ -597,6 +663,7 @@ description: Result of parsing multi_transform.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -605,10 +672,12 @@ description: Result of parsing multi_transform.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -616,6 +685,7 @@ description: Result of parsing multi_transform.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ast.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ast.snap index bf8aa47a3..81e8e23b5 100644 --- a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ast.snap +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Foreign", "path": "../inputs/cube.step" @@ -17,6 +18,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -29,6 +31,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "othercube.kcl" @@ -38,6 +41,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "othercube", "start": 0, "type": "Identifier" @@ -50,6 +54,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "anothercube.kcl" @@ -59,6 +64,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "anothercube", "start": 0, "type": "Identifier" @@ -76,6 +82,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "model", "start": 0, "type": "Identifier" @@ -84,9 +91,11 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -96,11 +105,13 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -114,9 +125,11 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "othercube", "start": 0, "type": "Identifier" @@ -133,6 +146,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -140,6 +154,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1020", "start": 0, "type": "Literal", @@ -155,9 +170,11 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -168,6 +185,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -180,6 +198,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -187,6 +206,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#ff001f\"", "start": 0, "type": "Literal", @@ -199,6 +219,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -206,6 +227,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -221,6 +243,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -228,6 +251,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -243,9 +267,11 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -256,6 +282,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -264,10 +291,12 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -281,9 +310,11 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "anothercube", "start": 0, "type": "Identifier" @@ -300,6 +331,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -308,6 +340,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1020", "start": 0, "type": "Literal", @@ -319,6 +352,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -330,9 +364,11 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -343,6 +379,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -355,6 +392,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -362,6 +400,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#ff0000\"", "start": 0, "type": "Literal", @@ -374,6 +413,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -381,6 +421,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -396,6 +437,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -403,6 +445,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -418,9 +461,11 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -431,6 +476,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -439,10 +485,12 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -450,12 +498,14 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -467,6 +517,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -478,6 +529,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -489,6 +541,7 @@ description: Result of parsing multiple-foreign-imports-all-render.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/neg_xz_plane/ast.snap b/rust/kcl-lib/tests/neg_xz_plane/ast.snap index ab6e13a30..d849bdc47 100644 --- a/rust/kcl-lib/tests/neg_xz_plane/ast.snap +++ b/rust/kcl-lib/tests/neg_xz_plane/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing neg_xz_plane.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing neg_xz_plane.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing neg_xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -45,9 +50,11 @@ description: Result of parsing neg_xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -59,6 +66,7 @@ description: Result of parsing neg_xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -72,6 +80,7 @@ description: Result of parsing neg_xz_plane.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -82,6 +91,7 @@ description: Result of parsing neg_xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -94,6 +104,7 @@ description: Result of parsing neg_xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -105,6 +116,7 @@ description: Result of parsing neg_xz_plane.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -115,9 +127,11 @@ description: Result of parsing neg_xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -128,6 +142,7 @@ description: Result of parsing neg_xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -140,6 +155,7 @@ description: Result of parsing neg_xz_plane.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -150,6 +166,7 @@ description: Result of parsing neg_xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -162,6 +179,7 @@ description: Result of parsing neg_xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -173,6 +191,7 @@ description: Result of parsing neg_xz_plane.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -183,9 +202,11 @@ description: Result of parsing neg_xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -196,6 +217,7 @@ description: Result of parsing neg_xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -208,6 +230,7 @@ description: Result of parsing neg_xz_plane.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -218,6 +241,7 @@ description: Result of parsing neg_xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -230,6 +254,7 @@ description: Result of parsing neg_xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -241,6 +266,7 @@ description: Result of parsing neg_xz_plane.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -251,9 +277,11 @@ description: Result of parsing neg_xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -264,19 +292,23 @@ description: Result of parsing neg_xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -287,12 +319,14 @@ description: Result of parsing neg_xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -305,6 +339,7 @@ description: Result of parsing neg_xz_plane.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -315,6 +350,7 @@ description: Result of parsing neg_xz_plane.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -324,10 +360,12 @@ description: Result of parsing neg_xz_plane.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -347,9 +385,11 @@ description: Result of parsing neg_xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -360,6 +400,7 @@ description: Result of parsing neg_xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -368,15 +409,18 @@ description: Result of parsing neg_xz_plane.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -384,6 +428,7 @@ description: Result of parsing neg_xz_plane.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/nested_assembly/ast.snap b/rust/kcl-lib/tests/nested_assembly/ast.snap index 9e7538f9e..2d08652f9 100644 --- a/rust/kcl-lib/tests/nested_assembly/ast.snap +++ b/rust/kcl-lib/tests/nested_assembly/ast.snap @@ -1,6 +1,6 @@ --- source: kcl-lib/src/simulation_tests.rs -description: Result of parsing nested_main_kcl.kcl +description: Result of parsing nested_assembly.kcl --- { "Ok": { @@ -8,6 +8,7 @@ description: Result of parsing nested_main_kcl.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "nested/foo/bar/main.kcl" @@ -17,6 +18,7 @@ description: Result of parsing nested_main_kcl.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bar", "start": 0, "type": "Identifier" @@ -33,9 +35,11 @@ description: Result of parsing nested_main_kcl.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bar", "start": 0, "type": "Identifier" @@ -45,6 +49,7 @@ description: Result of parsing nested_main_kcl.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -52,12 +57,14 @@ description: Result of parsing nested_main_kcl.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/nested_main_kcl/ast.snap b/rust/kcl-lib/tests/nested_main_kcl/ast.snap index 9e7538f9e..8f8056421 100644 --- a/rust/kcl-lib/tests/nested_main_kcl/ast.snap +++ b/rust/kcl-lib/tests/nested_main_kcl/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing nested_main_kcl.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "nested/foo/bar/main.kcl" @@ -17,6 +18,7 @@ description: Result of parsing nested_main_kcl.kcl "alias": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bar", "start": 0, "type": "Identifier" @@ -33,9 +35,11 @@ description: Result of parsing nested_main_kcl.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bar", "start": 0, "type": "Identifier" @@ -45,6 +49,7 @@ description: Result of parsing nested_main_kcl.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -52,12 +57,14 @@ description: Result of parsing nested_main_kcl.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/nested_windows_main_kcl/ast.snap b/rust/kcl-lib/tests/nested_windows_main_kcl/ast.snap index 84e19afbb..74b108b88 100644 --- a/rust/kcl-lib/tests/nested_windows_main_kcl/ast.snap +++ b/rust/kcl-lib/tests/nested_windows_main_kcl/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing nested_windows_main_kcl.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "nested/foo/bar/main.kcl" @@ -27,9 +28,11 @@ description: Result of parsing nested_windows_main_kcl.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bar", "start": 0, "type": "Identifier" @@ -39,6 +42,7 @@ description: Result of parsing nested_windows_main_kcl.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -46,12 +50,14 @@ description: Result of parsing nested_windows_main_kcl.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/non_english_identifiers/ast.snap b/rust/kcl-lib/tests/non_english_identifiers/ast.snap index 15b17121a..bba093628 100644 --- a/rust/kcl-lib/tests/non_english_identifiers/ast.snap +++ b/rust/kcl-lib/tests/non_english_identifiers/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing non_english_identifiers.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "comprimentoTotal", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing non_english_identifiers.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing non_english_identifiers.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing non_english_identifiers.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "亞當", "start": 0, "type": "Identifier" @@ -53,6 +58,7 @@ description: Result of parsing non_english_identifiers.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -62,11 +68,13 @@ description: Result of parsing non_english_identifiers.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +87,7 @@ description: Result of parsing non_english_identifiers.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "comprimentoRosca", "start": 0, "type": "Identifier" @@ -90,9 +99,11 @@ description: Result of parsing non_english_identifiers.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "亞當", "start": 0, "type": "Identifier" @@ -102,10 +113,12 @@ description: Result of parsing non_english_identifiers.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.8", "start": 0, "type": "Literal", @@ -119,11 +132,13 @@ description: Result of parsing non_english_identifiers.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -136,6 +151,7 @@ description: Result of parsing non_english_identifiers.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "comprimentoCabeça", "start": 0, "type": "Identifier" @@ -147,9 +163,11 @@ description: Result of parsing non_english_identifiers.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "comprimentoTotal", "start": 0, "type": "Identifier" @@ -159,14 +177,17 @@ description: Result of parsing non_english_identifiers.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "comprimentoRosca", "start": 0, "type": "Identifier" @@ -180,11 +201,13 @@ description: Result of parsing non_english_identifiers.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -199,6 +222,7 @@ description: Result of parsing non_english_identifiers.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "isEqualTo", "start": 0, "type": "Identifier" @@ -206,6 +230,7 @@ description: Result of parsing non_english_identifiers.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -221,9 +246,11 @@ description: Result of parsing non_english_identifiers.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "assert", "start": 0, "type": "Identifier" @@ -234,6 +261,7 @@ description: Result of parsing non_english_identifiers.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -241,9 +269,11 @@ description: Result of parsing non_english_identifiers.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "comprimentoCabeça", "start": 0, "type": "Identifier" @@ -254,6 +284,7 @@ description: Result of parsing non_english_identifiers.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -261,12 +292,14 @@ description: Result of parsing non_english_identifiers.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/non_string_key_of_object/ast.snap b/rust/kcl-lib/tests/non_string_key_of_object/ast.snap index 88d605f25..efa519519 100644 --- a/rust/kcl-lib/tests/non_string_key_of_object/ast.snap +++ b/rust/kcl-lib/tests/non_string_key_of_object/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing non_string_key_of_object.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing non_string_key_of_object.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -27,15 +29,18 @@ description: Result of parsing non_string_key_of_object.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "key", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "123", "start": 0, "type": "Literal", @@ -51,11 +56,13 @@ description: Result of parsing non_string_key_of_object.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -68,6 +75,7 @@ description: Result of parsing non_string_key_of_object.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "num", "start": 0, "type": "Identifier" @@ -76,13 +84,16 @@ description: Result of parsing non_string_key_of_object.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing non_string_key_of_object.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -108,11 +120,13 @@ description: Result of parsing non_string_key_of_object.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -120,6 +134,7 @@ description: Result of parsing non_string_key_of_object.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/object_prop_not_found/ast.snap b/rust/kcl-lib/tests/object_prop_not_found/ast.snap index 736f77cee..cc15758d5 100644 --- a/rust/kcl-lib/tests/object_prop_not_found/ast.snap +++ b/rust/kcl-lib/tests/object_prop_not_found/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing object_prop_not_found.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -20,16 +21,19 @@ description: Result of parsing object_prop_not_found.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [], "start": 0, "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -42,6 +46,7 @@ description: Result of parsing object_prop_not_found.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "k", "start": 0, "type": "Identifier" @@ -50,13 +55,16 @@ description: Result of parsing object_prop_not_found.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "obj", "start": 0, "type": "Identifier" @@ -69,6 +77,7 @@ description: Result of parsing object_prop_not_found.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"age\"", "start": 0, "type": "Literal", @@ -79,11 +88,13 @@ description: Result of parsing object_prop_not_found.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -91,6 +102,7 @@ description: Result of parsing object_prop_not_found.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/out_of_band_sketches/ast.snap b/rust/kcl-lib/tests/out_of_band_sketches/ast.snap index b9df77ca8..13adde4c4 100644 --- a/rust/kcl-lib/tests/out_of_band_sketches/ast.snap +++ b/rust/kcl-lib/tests/out_of_band_sketches/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing out_of_band_sketches.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing out_of_band_sketches.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing out_of_band_sketches.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing out_of_band_sketches.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "27.67", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "239.34", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing out_of_band_sketches.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing out_of_band_sketches.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -178,6 +198,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "414.61", "start": 0, "type": "Literal", @@ -190,6 +211,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -201,6 +223,7 @@ description: Result of parsing out_of_band_sketches.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -211,9 +234,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -224,6 +249,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -236,6 +262,7 @@ description: Result of parsing out_of_band_sketches.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -246,6 +273,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "33.98", "start": 0, "type": "Literal", @@ -259,6 +287,7 @@ description: Result of parsing out_of_band_sketches.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "389.36", "start": 0, "type": "Literal", @@ -270,6 +299,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -277,6 +307,7 @@ description: Result of parsing out_of_band_sketches.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -287,9 +318,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -300,6 +333,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -308,12 +342,14 @@ description: Result of parsing out_of_band_sketches.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -327,6 +363,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -340,6 +377,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -356,11 +394,13 @@ description: Result of parsing out_of_band_sketches.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -373,18 +413,22 @@ description: Result of parsing out_of_band_sketches.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -395,6 +439,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -402,9 +447,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -415,11 +462,13 @@ description: Result of parsing out_of_band_sketches.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -432,6 +481,7 @@ description: Result of parsing out_of_band_sketches.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -445,6 +495,7 @@ description: Result of parsing out_of_band_sketches.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -455,6 +506,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "67.04", "start": 0, "type": "Literal", @@ -468,6 +520,7 @@ description: Result of parsing out_of_band_sketches.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "63.5", "start": 0, "type": "Literal", @@ -479,6 +532,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -486,6 +540,7 @@ description: Result of parsing out_of_band_sketches.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -496,9 +551,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -509,6 +566,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -516,9 +574,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -536,6 +596,7 @@ description: Result of parsing out_of_band_sketches.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -546,6 +607,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "282.37", "start": 0, "type": "Literal", @@ -558,6 +620,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -569,6 +632,7 @@ description: Result of parsing out_of_band_sketches.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -579,9 +643,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -592,6 +658,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -604,6 +671,7 @@ description: Result of parsing out_of_band_sketches.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -615,6 +683,7 @@ description: Result of parsing out_of_band_sketches.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.77", "start": 0, "type": "Literal", @@ -626,6 +695,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -635,6 +705,7 @@ description: Result of parsing out_of_band_sketches.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "178.07", "start": 0, "type": "Literal", @@ -646,6 +717,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -653,6 +725,7 @@ description: Result of parsing out_of_band_sketches.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -663,9 +736,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -676,6 +751,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -684,12 +760,14 @@ description: Result of parsing out_of_band_sketches.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -703,6 +781,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -716,6 +795,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -732,11 +812,13 @@ description: Result of parsing out_of_band_sketches.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -749,6 +831,7 @@ description: Result of parsing out_of_band_sketches.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001extended", "start": 0, "type": "Identifier" @@ -759,9 +842,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -778,6 +863,7 @@ description: Result of parsing out_of_band_sketches.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -789,6 +875,7 @@ description: Result of parsing out_of_band_sketches.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "455.38", "start": 0, "type": "Literal", @@ -800,6 +887,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -808,6 +896,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -819,6 +908,7 @@ description: Result of parsing out_of_band_sketches.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -829,9 +919,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -842,19 +934,23 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -865,6 +961,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -873,12 +970,14 @@ description: Result of parsing out_of_band_sketches.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -892,6 +991,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -908,11 +1008,13 @@ description: Result of parsing out_of_band_sketches.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -925,6 +1027,7 @@ description: Result of parsing out_of_band_sketches.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002extended", "start": 0, "type": "Identifier" @@ -935,9 +1038,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -954,6 +1059,7 @@ description: Result of parsing out_of_band_sketches.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -965,6 +1071,7 @@ description: Result of parsing out_of_band_sketches.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "299.39", "start": 0, "type": "Literal", @@ -976,6 +1083,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -984,6 +1092,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "21.28", "start": 0, "type": "Literal", @@ -995,6 +1104,7 @@ description: Result of parsing out_of_band_sketches.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1005,9 +1115,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1018,19 +1130,23 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1041,6 +1157,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1049,12 +1166,14 @@ description: Result of parsing out_of_band_sketches.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1068,6 +1187,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1084,11 +1204,13 @@ description: Result of parsing out_of_band_sketches.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1103,6 +1225,7 @@ description: Result of parsing out_of_band_sketches.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1110,6 +1233,7 @@ description: Result of parsing out_of_band_sketches.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.14", "start": 0, "type": "Literal", @@ -1125,9 +1249,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1138,6 +1264,7 @@ description: Result of parsing out_of_band_sketches.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1148,9 +1275,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001extended", "start": 0, "type": "Identifier" @@ -1164,9 +1293,11 @@ description: Result of parsing out_of_band_sketches.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002extended", "start": 0, "type": "Identifier" @@ -1178,11 +1309,13 @@ description: Result of parsing out_of_band_sketches.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1190,12 +1323,14 @@ description: Result of parsing out_of_band_sketches.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1207,6 +1342,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1218,6 +1354,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1229,6 +1366,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1240,6 +1378,7 @@ description: Result of parsing out_of_band_sketches.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/panic_repro_cube/ast.snap b/rust/kcl-lib/tests/panic_repro_cube/ast.snap index e5806e244..2a42d0bfc 100644 --- a/rust/kcl-lib/tests/panic_repro_cube/ast.snap +++ b/rust/kcl-lib/tests/panic_repro_cube/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSide", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing panic_repro_cube.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing panic_repro_cube.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define the dimensions of the cube" ], @@ -49,6 +53,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bossRadius", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing panic_repro_cube.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing panic_repro_cube.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -87,6 +95,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bossHeight", "start": 0, "type": "Identifier" @@ -94,6 +103,7 @@ description: Result of parsing panic_repro_cube.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -103,11 +113,13 @@ description: Result of parsing panic_repro_cube.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -120,6 +132,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shellThickness", "start": 0, "type": "Identifier" @@ -127,6 +140,7 @@ description: Result of parsing panic_repro_cube.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -136,11 +150,13 @@ description: Result of parsing panic_repro_cube.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -158,6 +174,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -165,6 +182,7 @@ description: Result of parsing panic_repro_cube.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -174,11 +192,13 @@ description: Result of parsing panic_repro_cube.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -196,6 +216,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSketch", "start": 0, "type": "Identifier" @@ -203,13 +224,16 @@ description: Result of parsing panic_repro_cube.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -220,6 +244,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -227,9 +252,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -247,6 +274,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -262,9 +290,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSide", "start": 0, "type": "Identifier" @@ -276,15 +306,18 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -306,9 +339,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSide", "start": 0, "type": "Identifier" @@ -320,15 +355,18 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -344,6 +382,7 @@ description: Result of parsing panic_repro_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -354,9 +393,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -367,6 +408,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -379,6 +421,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -387,9 +430,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSide", "start": 0, "type": "Identifier" @@ -405,9 +450,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -418,6 +465,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -430,6 +478,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -438,9 +487,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSide", "start": 0, "type": "Identifier" @@ -456,6 +507,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -463,6 +515,7 @@ description: Result of parsing panic_repro_cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -474,9 +527,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -487,6 +542,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -499,6 +555,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -508,9 +565,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSide", "start": 0, "type": "Identifier" @@ -522,6 +581,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -533,9 +593,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -546,6 +608,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -558,6 +621,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -567,9 +631,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSide", "start": 0, "type": "Identifier" @@ -581,6 +647,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -592,6 +659,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -599,6 +667,7 @@ description: Result of parsing panic_repro_cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -610,9 +679,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -623,19 +694,23 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -646,6 +721,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -654,12 +730,14 @@ description: Result of parsing panic_repro_cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -676,11 +754,13 @@ description: Result of parsing panic_repro_cube.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -698,6 +778,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -709,6 +790,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -717,9 +799,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSide", "start": 0, "type": "Identifier" @@ -735,6 +819,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -742,6 +827,7 @@ description: Result of parsing panic_repro_cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -753,6 +839,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagStart", "start": 0, "type": "Identifier" @@ -760,6 +847,7 @@ description: Result of parsing panic_repro_cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -771,9 +859,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -784,6 +874,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -791,9 +882,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSketch", "start": 0, "type": "Identifier" @@ -804,11 +897,13 @@ description: Result of parsing panic_repro_cube.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -821,6 +916,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletedCube", "start": 0, "type": "Identifier" @@ -832,6 +928,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -840,9 +937,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -858,6 +957,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -866,13 +966,16 @@ description: Result of parsing panic_repro_cube.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -883,6 +986,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -890,9 +994,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -904,13 +1010,16 @@ description: Result of parsing panic_repro_cube.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -921,6 +1030,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -928,9 +1038,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -942,13 +1054,16 @@ description: Result of parsing panic_repro_cube.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -959,17 +1074,21 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -980,6 +1099,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -987,9 +1107,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1002,13 +1124,16 @@ description: Result of parsing panic_repro_cube.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1019,17 +1144,21 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1040,6 +1169,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1047,9 +1177,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -1063,12 +1195,14 @@ description: Result of parsing panic_repro_cube.kcl } ], "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1091,9 +1225,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1104,6 +1240,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1111,9 +1248,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -1124,11 +1263,13 @@ description: Result of parsing panic_repro_cube.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1146,6 +1287,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bossSketch", "start": 0, "type": "Identifier" @@ -1159,6 +1301,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1167,9 +1310,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topFace", "start": 0, "type": "Identifier" @@ -1185,9 +1330,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1198,6 +1345,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1205,9 +1353,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletedCube", "start": 0, "type": "Identifier" @@ -1225,6 +1375,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1235,6 +1386,7 @@ description: Result of parsing panic_repro_cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1247,6 +1399,7 @@ description: Result of parsing panic_repro_cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1258,6 +1411,7 @@ description: Result of parsing panic_repro_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1268,6 +1422,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1276,9 +1431,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bossRadius", "start": 0, "type": "Identifier" @@ -1294,9 +1451,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1307,6 +1466,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1315,12 +1475,14 @@ description: Result of parsing panic_repro_cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1337,11 +1499,13 @@ description: Result of parsing panic_repro_cube.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1359,6 +1523,7 @@ description: Result of parsing panic_repro_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boss", "start": 0, "type": "Identifier" @@ -1370,6 +1535,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1378,9 +1544,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bossHeight", "start": 0, "type": "Identifier" @@ -1396,6 +1564,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tagEnd", "start": 0, "type": "Identifier" @@ -1403,6 +1572,7 @@ description: Result of parsing panic_repro_cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1414,9 +1584,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1427,6 +1599,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1434,9 +1607,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bossSketch", "start": 0, "type": "Identifier" @@ -1447,11 +1622,13 @@ description: Result of parsing panic_repro_cube.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1466,6 +1643,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1474,9 +1652,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shellThickness", "start": 0, "type": "Identifier" @@ -1492,6 +1672,7 @@ description: Result of parsing panic_repro_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "faces", "start": 0, "type": "Identifier" @@ -1503,9 +1684,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bossTopFace", "start": 0, "type": "Identifier" @@ -1517,6 +1700,7 @@ description: Result of parsing panic_repro_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1527,9 +1711,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shell", "start": 0, "type": "Identifier" @@ -1540,6 +1726,7 @@ description: Result of parsing panic_repro_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1550,9 +1737,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletedCube", "start": 0, "type": "Identifier" @@ -1566,9 +1755,11 @@ description: Result of parsing panic_repro_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boss", "start": 0, "type": "Identifier" @@ -1580,11 +1771,13 @@ description: Result of parsing panic_repro_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "preComments": [ "", "", @@ -1601,9 +1794,11 @@ description: Result of parsing panic_repro_cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1618,19 +1813,23 @@ description: Result of parsing panic_repro_cube.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -1646,12 +1845,14 @@ description: Result of parsing panic_repro_cube.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": {}, "startNodes": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/parametric/ast.snap b/rust/kcl-lib/tests/parametric/ast.snap index e4f7fd3f4..7515e8321 100644 --- a/rust/kcl-lib/tests/parametric/ast.snap +++ b/rust/kcl-lib/tests/parametric/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing parametric.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sigmaAllow", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing parametric.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35000", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing parametric.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing parametric.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -53,6 +58,7 @@ description: Result of parsing parametric.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -62,11 +68,13 @@ description: Result of parsing parametric.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +87,7 @@ description: Result of parsing parametric.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -86,6 +95,7 @@ description: Result of parsing parametric.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -95,11 +105,13 @@ description: Result of parsing parametric.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -112,6 +124,7 @@ description: Result of parsing parametric.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -119,6 +132,7 @@ description: Result of parsing parametric.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -128,11 +142,13 @@ description: Result of parsing parametric.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -145,6 +161,7 @@ description: Result of parsing parametric.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "FOS", "start": 0, "type": "Identifier" @@ -152,6 +169,7 @@ description: Result of parsing parametric.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -161,11 +179,13 @@ description: Result of parsing parametric.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -178,6 +198,7 @@ description: Result of parsing parametric.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg1", "start": 0, "type": "Identifier" @@ -185,6 +206,7 @@ description: Result of parsing parametric.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -194,11 +216,13 @@ description: Result of parsing parametric.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -211,6 +235,7 @@ description: Result of parsing parametric.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg2", "start": 0, "type": "Identifier" @@ -218,6 +243,7 @@ description: Result of parsing parametric.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -227,11 +253,13 @@ description: Result of parsing parametric.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -244,18 +272,22 @@ description: Result of parsing parametric.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -266,6 +298,7 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -288,9 +321,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -300,14 +335,17 @@ description: Result of parsing parametric.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -321,14 +359,17 @@ description: Result of parsing parametric.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "FOS", "start": 0, "type": "Identifier" @@ -342,10 +383,12 @@ description: Result of parsing parametric.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -359,14 +402,17 @@ description: Result of parsing parametric.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sigmaAllow", "start": 0, "type": "Identifier" @@ -380,14 +426,17 @@ description: Result of parsing parametric.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -402,11 +451,13 @@ description: Result of parsing parametric.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -419,6 +470,7 @@ description: Result of parsing parametric.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracket", "start": 0, "type": "Identifier" @@ -426,13 +478,16 @@ description: Result of parsing parametric.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -443,6 +498,7 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -450,9 +506,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -470,6 +528,7 @@ description: Result of parsing parametric.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -480,6 +539,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -492,6 +552,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -503,6 +564,7 @@ description: Result of parsing parametric.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -513,9 +575,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -526,6 +590,7 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -538,6 +603,7 @@ description: Result of parsing parametric.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -548,6 +614,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -561,9 +628,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg1", "start": 0, "type": "Identifier" @@ -575,6 +644,7 @@ description: Result of parsing parametric.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -585,9 +655,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -598,6 +670,7 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -610,6 +683,7 @@ description: Result of parsing parametric.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -621,9 +695,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg2", "start": 0, "type": "Identifier" @@ -636,6 +712,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -647,6 +724,7 @@ description: Result of parsing parametric.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -657,9 +735,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -670,6 +750,7 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -682,6 +763,7 @@ description: Result of parsing parametric.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -692,6 +774,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -706,9 +789,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -720,6 +805,7 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -727,6 +813,7 @@ description: Result of parsing parametric.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -737,9 +824,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -750,6 +839,7 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -762,6 +852,7 @@ description: Result of parsing parametric.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -777,9 +868,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg2", "start": 0, "type": "Identifier" @@ -791,19 +884,23 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -820,6 +917,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -831,6 +929,7 @@ description: Result of parsing parametric.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -841,9 +940,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -854,6 +955,7 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -866,6 +968,7 @@ description: Result of parsing parametric.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -876,6 +979,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -893,9 +997,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg1", "start": 0, "type": "Identifier" @@ -907,19 +1013,23 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -935,6 +1045,7 @@ description: Result of parsing parametric.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -945,9 +1056,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -958,19 +1071,23 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -981,12 +1098,14 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -999,6 +1118,7 @@ description: Result of parsing parametric.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1007,9 +1127,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1025,9 +1147,11 @@ description: Result of parsing parametric.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1038,6 +1162,7 @@ description: Result of parsing parametric.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1046,15 +1171,18 @@ description: Result of parsing parametric.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1062,12 +1190,14 @@ description: Result of parsing parametric.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1081,6 +1211,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1094,6 +1225,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1107,6 +1239,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1120,6 +1253,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1131,6 +1265,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1144,6 +1279,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1157,6 +1293,7 @@ description: Result of parsing parametric.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/parametric_with_tan_arc/ast.snap b/rust/kcl-lib/tests/parametric_with_tan_arc/ast.snap index 573424d62..d4bf949af 100644 --- a/rust/kcl-lib/tests/parametric_with_tan_arc/ast.snap +++ b/rust/kcl-lib/tests/parametric_with_tan_arc/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sigmaAllow", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15000", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing parametric_with_tan_arc.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -53,6 +58,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11", "start": 0, "type": "Literal", @@ -62,11 +68,13 @@ description: Result of parsing parametric_with_tan_arc.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +87,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -86,6 +95,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -95,11 +105,13 @@ description: Result of parsing parametric_with_tan_arc.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -112,6 +124,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -119,6 +132,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -128,11 +142,13 @@ description: Result of parsing parametric_with_tan_arc.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -145,6 +161,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "FOS", "start": 0, "type": "Identifier" @@ -152,6 +169,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -161,11 +179,13 @@ description: Result of parsing parametric_with_tan_arc.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -178,18 +198,22 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -200,6 +224,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -219,9 +244,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -231,14 +258,17 @@ description: Result of parsing parametric_with_tan_arc.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -252,14 +282,17 @@ description: Result of parsing parametric_with_tan_arc.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "FOS", "start": 0, "type": "Identifier" @@ -273,10 +306,12 @@ description: Result of parsing parametric_with_tan_arc.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -290,6 +325,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -298,9 +334,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sigmaAllow", "start": 0, "type": "Identifier" @@ -310,14 +348,17 @@ description: Result of parsing parametric_with_tan_arc.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -336,11 +377,13 @@ description: Result of parsing parametric_with_tan_arc.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -353,6 +396,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletR", "start": 0, "type": "Identifier" @@ -364,9 +408,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -376,10 +422,12 @@ description: Result of parsing parametric_with_tan_arc.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -393,11 +441,13 @@ description: Result of parsing parametric_with_tan_arc.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -410,6 +460,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountL", "start": 0, "type": "Identifier" @@ -417,6 +468,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "9", "start": 0, "type": "Literal", @@ -426,11 +478,13 @@ description: Result of parsing parametric_with_tan_arc.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -443,6 +497,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountL", "start": 0, "type": "Identifier" @@ -450,6 +505,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -459,11 +515,13 @@ description: Result of parsing parametric_with_tan_arc.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -476,6 +534,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracket", "start": 0, "type": "Identifier" @@ -483,13 +542,16 @@ description: Result of parsing parametric_with_tan_arc.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -500,6 +562,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -507,9 +570,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -527,6 +592,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -537,6 +603,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -549,6 +616,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -560,6 +628,7 @@ description: Result of parsing parametric_with_tan_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -570,9 +639,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -583,6 +654,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -595,6 +667,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -605,6 +678,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -618,9 +692,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountL", "start": 0, "type": "Identifier" @@ -632,6 +708,7 @@ description: Result of parsing parametric_with_tan_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -642,9 +719,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -655,6 +734,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -667,6 +747,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -675,9 +756,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletR", "start": 0, "type": "Identifier" @@ -693,6 +776,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -700,6 +784,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -715,9 +800,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -728,6 +815,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -740,6 +828,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -752,9 +841,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountL", "start": 0, "type": "Identifier" @@ -766,6 +857,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -774,6 +866,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -785,6 +878,7 @@ description: Result of parsing parametric_with_tan_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -795,9 +889,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -808,6 +904,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -820,6 +917,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -830,6 +928,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -844,9 +943,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -858,6 +959,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -865,6 +967,7 @@ description: Result of parsing parametric_with_tan_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -875,9 +978,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -888,6 +993,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -900,6 +1006,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -911,9 +1018,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountL", "start": 0, "type": "Identifier" @@ -926,6 +1035,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -937,6 +1047,7 @@ description: Result of parsing parametric_with_tan_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -947,9 +1058,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -960,6 +1073,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -972,6 +1086,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -983,9 +1098,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletR", "start": 0, "type": "Identifier" @@ -995,14 +1112,17 @@ description: Result of parsing parametric_with_tan_arc.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1022,6 +1142,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1030,6 +1151,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1041,6 +1163,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1052,9 +1175,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1065,6 +1190,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1077,6 +1203,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1087,6 +1214,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1101,9 +1229,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountL", "start": 0, "type": "Identifier" @@ -1115,6 +1245,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1122,6 +1253,7 @@ description: Result of parsing parametric_with_tan_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1132,9 +1264,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1145,19 +1279,23 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1168,12 +1306,14 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1186,6 +1326,7 @@ description: Result of parsing parametric_with_tan_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1194,9 +1335,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1212,9 +1355,11 @@ description: Result of parsing parametric_with_tan_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1225,6 +1370,7 @@ description: Result of parsing parametric_with_tan_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1233,15 +1379,18 @@ description: Result of parsing parametric_with_tan_arc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1249,12 +1398,14 @@ description: Result of parsing parametric_with_tan_arc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1268,6 +1419,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1281,6 +1433,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1294,6 +1447,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1307,6 +1461,7 @@ description: Result of parsing parametric_with_tan_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/pattern_circular_in_module/ast.snap b/rust/kcl-lib/tests/pattern_circular_in_module/ast.snap index eae8cba00..2e72ee239 100644 --- a/rust/kcl-lib/tests/pattern_circular_in_module/ast.snap +++ b/rust/kcl-lib/tests/pattern_circular_in_module/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing pattern_circular_in_module.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "thing.kcl" @@ -19,9 +20,11 @@ description: Result of parsing pattern_circular_in_module.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing", "start": 0, "type": "Identifier" @@ -39,13 +42,16 @@ description: Result of parsing pattern_circular_in_module.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing", "start": 0, "type": "Identifier" @@ -56,11 +62,13 @@ description: Result of parsing pattern_circular_in_module.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -68,12 +76,14 @@ description: Result of parsing pattern_circular_in_module.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/pattern_into_union/ast.snap b/rust/kcl-lib/tests/pattern_into_union/ast.snap index fb9da7528..665096486 100644 --- a/rust/kcl-lib/tests/pattern_into_union/ast.snap +++ b/rust/kcl-lib/tests/pattern_into_union/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nPlates", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing pattern_into_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "buildPlateThickness", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing pattern_into_union.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -65,10 +71,12 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.4", "start": 0, "type": "Literal", @@ -82,11 +90,13 @@ description: Result of parsing pattern_into_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -99,6 +109,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "buildPlateWidth", "start": 0, "type": "Identifier" @@ -106,6 +117,7 @@ description: Result of parsing pattern_into_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.125", "start": 0, "type": "Literal", @@ -115,11 +127,13 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -132,6 +146,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "widthTolerance", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing pattern_into_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -148,11 +164,13 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -165,6 +183,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thicknessTolerance", "start": 0, "type": "Identifier" @@ -172,6 +191,7 @@ description: Result of parsing pattern_into_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020", "start": 0, "type": "Literal", @@ -181,11 +201,13 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -198,6 +220,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endWidth", "start": 0, "type": "Identifier" @@ -205,6 +228,7 @@ description: Result of parsing pattern_into_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -214,11 +238,13 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -231,6 +257,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabWidth", "start": 0, "type": "Identifier" @@ -238,6 +265,7 @@ description: Result of parsing pattern_into_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -247,11 +275,13 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -264,6 +294,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabHeight", "start": 0, "type": "Identifier" @@ -271,6 +302,7 @@ description: Result of parsing pattern_into_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -280,11 +312,13 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -297,6 +331,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabThickness", "start": 0, "type": "Identifier" @@ -304,6 +339,7 @@ description: Result of parsing pattern_into_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -313,11 +349,13 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -330,6 +368,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -341,9 +380,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "buildPlateWidth", "start": 0, "type": "Identifier" @@ -353,6 +394,7 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -360,6 +402,7 @@ description: Result of parsing pattern_into_union.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -369,6 +412,7 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -377,9 +421,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "widthTolerance", "start": 0, "type": "Identifier" @@ -389,14 +435,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endWidth", "start": 0, "type": "Identifier" @@ -418,11 +467,13 @@ description: Result of parsing pattern_into_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -435,6 +486,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -449,9 +501,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nPlates", "start": 0, "type": "Identifier" @@ -461,6 +515,7 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, @@ -469,9 +524,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "buildPlateThickness", "start": 0, "type": "Identifier" @@ -481,14 +538,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thicknessTolerance", "start": 0, "type": "Identifier" @@ -506,6 +566,7 @@ description: Result of parsing pattern_into_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -517,9 +578,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nPlates", "start": 0, "type": "Identifier" @@ -529,10 +592,12 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -546,14 +611,17 @@ description: Result of parsing pattern_into_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabThickness", "start": 0, "type": "Identifier" @@ -571,11 +639,13 @@ description: Result of parsing pattern_into_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -588,6 +658,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseHeight", "start": 0, "type": "Identifier" @@ -595,6 +666,7 @@ description: Result of parsing pattern_into_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -604,11 +676,13 @@ description: Result of parsing pattern_into_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -621,6 +695,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "base", "start": 0, "type": "Identifier" @@ -628,13 +703,16 @@ description: Result of parsing pattern_into_union.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -645,6 +723,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -652,9 +731,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -672,6 +753,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -682,6 +764,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -694,6 +777,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -705,6 +789,7 @@ description: Result of parsing pattern_into_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -715,9 +800,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -728,6 +815,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -740,6 +828,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -748,9 +837,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -766,6 +857,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -773,6 +865,7 @@ description: Result of parsing pattern_into_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -784,9 +877,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -797,6 +892,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -809,6 +905,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -820,9 +917,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseHeight", "start": 0, "type": "Identifier" @@ -832,14 +931,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabHeight", "start": 0, "type": "Identifier" @@ -859,9 +961,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -872,6 +976,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -884,6 +989,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -893,9 +999,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endWidth", "start": 0, "type": "Identifier" @@ -907,6 +1015,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -918,9 +1027,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -931,6 +1042,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -943,6 +1055,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -951,9 +1064,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseHeight", "start": 0, "type": "Identifier" @@ -969,9 +1084,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -982,6 +1099,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -994,6 +1112,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1002,9 +1121,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endWidth", "start": 0, "type": "Identifier" @@ -1020,9 +1141,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1033,6 +1156,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1045,6 +1169,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1056,9 +1181,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseHeight", "start": 0, "type": "Identifier" @@ -1068,14 +1195,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabHeight", "start": 0, "type": "Identifier" @@ -1095,9 +1225,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1108,6 +1240,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1120,6 +1253,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1127,6 +1261,7 @@ description: Result of parsing pattern_into_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1142,6 +1277,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1149,6 +1285,7 @@ description: Result of parsing pattern_into_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1160,9 +1297,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1173,19 +1312,23 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1196,6 +1339,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1208,6 +1352,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1217,9 +1362,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "depth", "start": 0, "type": "Identifier" @@ -1231,6 +1378,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1242,9 +1390,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1255,6 +1405,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1263,15 +1414,18 @@ description: Result of parsing pattern_into_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1284,6 +1438,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabs", "start": 0, "type": "Identifier" @@ -1291,13 +1446,16 @@ description: Result of parsing pattern_into_union.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1308,6 +1466,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1315,9 +1474,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -1335,6 +1496,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1346,9 +1508,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endWidth", "start": 0, "type": "Identifier" @@ -1362,9 +1526,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseHeight", "start": 0, "type": "Identifier" @@ -1376,6 +1542,7 @@ description: Result of parsing pattern_into_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1386,9 +1553,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1399,6 +1568,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1411,6 +1581,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1422,9 +1593,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endWidth", "start": 0, "type": "Identifier" @@ -1434,14 +1607,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabWidth", "start": 0, "type": "Identifier" @@ -1461,9 +1637,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1474,6 +1652,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1486,6 +1665,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1493,6 +1673,7 @@ description: Result of parsing pattern_into_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "135", "start": 0, "type": "Literal", @@ -1508,6 +1689,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -1519,9 +1701,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseHeight", "start": 0, "type": "Identifier" @@ -1531,14 +1715,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabHeight", "start": 0, "type": "Identifier" @@ -1558,6 +1745,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1565,6 +1753,7 @@ description: Result of parsing pattern_into_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1576,9 +1765,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1589,6 +1780,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1601,6 +1793,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1609,9 +1802,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endWidth", "start": 0, "type": "Identifier" @@ -1627,9 +1822,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1640,19 +1837,23 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1663,6 +1864,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1675,6 +1877,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1686,6 +1889,7 @@ description: Result of parsing pattern_into_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1697,19 +1901,23 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabThickness", "start": 0, "type": "Identifier" @@ -1729,9 +1937,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1742,6 +1952,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1754,6 +1965,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1761,6 +1973,7 @@ description: Result of parsing pattern_into_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -1776,6 +1989,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1784,13 +1998,16 @@ description: Result of parsing pattern_into_union.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1801,6 +2018,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1808,9 +2026,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "toFillet", "start": 0, "type": "Identifier" @@ -1823,6 +2043,7 @@ description: Result of parsing pattern_into_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1833,9 +2054,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1846,6 +2069,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1858,6 +2082,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1868,6 +2093,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1880,6 +2106,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1892,6 +2119,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1903,6 +2131,7 @@ description: Result of parsing pattern_into_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1913,6 +2142,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -1927,9 +2157,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "buildPlateThickness", "start": 0, "type": "Identifier" @@ -1939,14 +2171,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thicknessTolerance", "start": 0, "type": "Identifier" @@ -1960,14 +2195,17 @@ description: Result of parsing pattern_into_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabThickness", "start": 0, "type": "Identifier" @@ -1987,6 +2225,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -1998,9 +2237,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nPlates", "start": 0, "type": "Identifier" @@ -2010,10 +2251,12 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2033,9 +2276,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2046,6 +2291,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2054,15 +2300,18 @@ description: Result of parsing pattern_into_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2075,6 +2324,7 @@ description: Result of parsing pattern_into_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabs2", "start": 0, "type": "Identifier" @@ -2082,13 +2332,16 @@ description: Result of parsing pattern_into_union.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2099,6 +2352,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2106,9 +2360,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -2126,6 +2382,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2140,9 +2397,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2152,14 +2411,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endWidth", "start": 0, "type": "Identifier" @@ -2177,9 +2439,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseHeight", "start": 0, "type": "Identifier" @@ -2191,6 +2455,7 @@ description: Result of parsing pattern_into_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2201,9 +2466,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2214,6 +2481,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2226,6 +2494,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2237,9 +2506,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2249,14 +2520,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabWidth", "start": 0, "type": "Identifier" @@ -2276,9 +2550,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2289,6 +2565,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2301,6 +2578,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2308,6 +2586,7 @@ description: Result of parsing pattern_into_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -2323,6 +2602,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -2334,9 +2614,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "baseHeight", "start": 0, "type": "Identifier" @@ -2346,14 +2628,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabHeight", "start": 0, "type": "Identifier" @@ -2373,6 +2658,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2380,6 +2666,7 @@ description: Result of parsing pattern_into_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2391,9 +2678,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2404,6 +2693,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2416,6 +2706,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2427,9 +2718,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -2439,14 +2732,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endWidth", "start": 0, "type": "Identifier" @@ -2466,9 +2762,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2479,19 +2777,23 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2502,6 +2804,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2514,6 +2817,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2525,6 +2829,7 @@ description: Result of parsing pattern_into_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2536,19 +2841,23 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabThickness", "start": 0, "type": "Identifier" @@ -2568,9 +2877,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2581,6 +2892,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2593,6 +2905,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2600,6 +2913,7 @@ description: Result of parsing pattern_into_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -2615,6 +2929,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -2623,13 +2938,16 @@ description: Result of parsing pattern_into_union.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -2640,6 +2958,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2647,9 +2966,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "toFillet2", "start": 0, "type": "Identifier" @@ -2662,6 +2983,7 @@ description: Result of parsing pattern_into_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2672,9 +2994,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -2685,6 +3009,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2697,6 +3022,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2707,6 +3033,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2719,6 +3046,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2731,6 +3059,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2742,6 +3071,7 @@ description: Result of parsing pattern_into_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2752,6 +3082,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -2766,9 +3097,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "buildPlateThickness", "start": 0, "type": "Identifier" @@ -2778,14 +3111,17 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thicknessTolerance", "start": 0, "type": "Identifier" @@ -2799,14 +3135,17 @@ description: Result of parsing pattern_into_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabThickness", "start": 0, "type": "Identifier" @@ -2826,6 +3165,7 @@ description: Result of parsing pattern_into_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -2837,9 +3177,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "nPlates", "start": 0, "type": "Identifier" @@ -2849,10 +3191,12 @@ description: Result of parsing pattern_into_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2872,9 +3216,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -2885,6 +3231,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2893,15 +3240,18 @@ description: Result of parsing pattern_into_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2910,13 +3260,16 @@ description: Result of parsing pattern_into_union.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -2927,6 +3280,7 @@ description: Result of parsing pattern_into_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2937,9 +3291,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "base", "start": 0, "type": "Identifier" @@ -2953,9 +3309,11 @@ description: Result of parsing pattern_into_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endTabs", "start": 0, "type": "Identifier" @@ -2967,11 +3325,13 @@ description: Result of parsing pattern_into_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2979,12 +3339,14 @@ description: Result of parsing pattern_into_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2998,6 +3360,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3009,6 +3372,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3020,6 +3384,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3031,6 +3396,7 @@ description: Result of parsing pattern_into_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/pattern_linear_in_module/ast.snap b/rust/kcl-lib/tests/pattern_linear_in_module/ast.snap index de02c7526..3ef5f61cb 100644 --- a/rust/kcl-lib/tests/pattern_linear_in_module/ast.snap +++ b/rust/kcl-lib/tests/pattern_linear_in_module/ast.snap @@ -8,6 +8,7 @@ description: Result of parsing pattern_linear_in_module.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "path": { "type": "Kcl", "filename": "thing.kcl" @@ -19,9 +20,11 @@ description: Result of parsing pattern_linear_in_module.kcl "alias": null, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing", "start": 0, "type": "Identifier" @@ -39,13 +42,16 @@ description: Result of parsing pattern_linear_in_module.kcl "commentStart": 0, "end": 0, "expression": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing", "start": 0, "type": "Identifier" @@ -56,11 +62,13 @@ description: Result of parsing pattern_linear_in_module.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -68,12 +76,14 @@ description: Result of parsing pattern_linear_in_module.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/pentagon_fillet_sugar/ast.snap b/rust/kcl-lib/tests/pentagon_fillet_sugar/ast.snap index ce912a99d..dd8c93c77 100644 --- a/rust/kcl-lib/tests/pentagon_fillet_sugar/ast.snap +++ b/rust/kcl-lib/tests/pentagon_fillet_sugar/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleHeight", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing pentagon_fillet_sugar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plumbusLen", "start": 0, "type": "Identifier" @@ -53,6 +58,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -62,11 +68,13 @@ description: Result of parsing pentagon_fillet_sugar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +87,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -86,6 +95,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -95,11 +105,13 @@ description: Result of parsing pentagon_fillet_sugar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -112,6 +124,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleLen", "start": 0, "type": "Identifier" @@ -119,6 +132,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "500", "start": 0, "type": "Literal", @@ -128,11 +142,13 @@ description: Result of parsing pentagon_fillet_sugar.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -145,6 +161,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -152,13 +169,16 @@ description: Result of parsing pentagon_fillet_sugar.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -169,6 +189,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -176,9 +197,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -196,6 +219,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -206,6 +230,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -218,6 +243,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -229,6 +255,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -239,9 +266,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -252,6 +281,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -264,6 +294,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -271,6 +302,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -286,6 +318,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -294,9 +327,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleLen", "start": 0, "type": "Identifier" @@ -312,6 +347,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -319,6 +355,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -330,9 +367,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -343,6 +382,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -355,6 +395,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -362,6 +403,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -377,6 +419,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -385,9 +428,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleLen", "start": 0, "type": "Identifier" @@ -403,6 +448,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -410,6 +456,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -421,9 +468,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -434,6 +483,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -446,6 +496,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -453,6 +504,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "300", "start": 0, "type": "Literal", @@ -468,6 +520,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -476,9 +529,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleLen", "start": 0, "type": "Identifier" @@ -494,6 +549,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -501,6 +557,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -512,9 +569,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -525,6 +584,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -537,6 +597,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -545,9 +606,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleHeight", "start": 0, "type": "Identifier" @@ -563,9 +626,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -576,6 +641,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -584,15 +650,18 @@ description: Result of parsing pentagon_fillet_sugar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -605,6 +674,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circl", "start": 0, "type": "Identifier" @@ -622,6 +692,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -630,9 +701,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -648,9 +721,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -661,6 +736,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -668,9 +744,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -688,6 +766,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -702,9 +781,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -714,14 +795,17 @@ description: Result of parsing pentagon_fillet_sugar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -742,9 +826,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleHeight", "start": 0, "type": "Identifier" @@ -754,10 +840,12 @@ description: Result of parsing pentagon_fillet_sugar.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -773,6 +861,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -783,9 +872,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -796,6 +887,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -808,6 +900,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -815,6 +908,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -830,6 +924,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -837,6 +932,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -852,6 +948,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -860,9 +957,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -878,6 +977,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -885,6 +985,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -896,9 +997,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -909,19 +1012,23 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -932,6 +1039,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -940,12 +1048,14 @@ description: Result of parsing pentagon_fillet_sugar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -953,16 +1063,19 @@ description: Result of parsing pentagon_fillet_sugar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -973,6 +1086,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -983,11 +1097,13 @@ description: Result of parsing pentagon_fillet_sugar.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1000,6 +1116,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c1", "start": 0, "type": "Identifier" @@ -1011,6 +1128,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1019,6 +1137,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -1030,6 +1149,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1041,6 +1161,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1049,9 +1170,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c", "start": 0, "type": "Identifier" @@ -1067,9 +1190,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circl", "start": 0, "type": "Identifier" @@ -1080,16 +1205,19 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1102,6 +1230,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plumbus1", "start": 0, "type": "Identifier" @@ -1112,9 +1241,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c1", "start": 0, "type": "Identifier" @@ -1131,6 +1262,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1139,9 +1271,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plumbusLen", "start": 0, "type": "Identifier" @@ -1157,9 +1291,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1170,6 +1306,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1182,6 +1319,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1189,6 +1327,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1204,6 +1343,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1215,17 +1355,21 @@ description: Result of parsing pentagon_fillet_sugar.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c1", "start": 0, "type": "Identifier" @@ -1238,6 +1382,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -1250,6 +1395,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc_tag", "start": 0, "type": "Identifier", @@ -1260,13 +1406,16 @@ description: Result of parsing pentagon_fillet_sugar.kcl "type": "MemberExpression" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -1277,6 +1426,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1284,17 +1434,21 @@ description: Result of parsing pentagon_fillet_sugar.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c1", "start": 0, "type": "Identifier" @@ -1307,6 +1461,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -1319,6 +1474,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc_tag", "start": 0, "type": "Identifier", @@ -1331,6 +1487,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1341,9 +1498,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1354,6 +1513,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1362,15 +1522,18 @@ description: Result of parsing pentagon_fillet_sugar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1383,6 +1546,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c2", "start": 0, "type": "Identifier" @@ -1394,6 +1558,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1401,6 +1566,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -1416,6 +1582,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1424,9 +1591,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "a", "start": 0, "type": "Identifier" @@ -1442,9 +1611,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circl", "start": 0, "type": "Identifier" @@ -1455,16 +1626,19 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1477,6 +1651,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plumbus0", "start": 0, "type": "Identifier" @@ -1487,9 +1662,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c2", "start": 0, "type": "Identifier" @@ -1506,6 +1683,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1514,9 +1692,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plumbusLen", "start": 0, "type": "Identifier" @@ -1532,9 +1712,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1545,6 +1727,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1557,6 +1740,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1564,6 +1748,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1579,6 +1764,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1590,17 +1776,21 @@ description: Result of parsing pentagon_fillet_sugar.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c2", "start": 0, "type": "Identifier" @@ -1613,6 +1803,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -1625,6 +1816,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc_tag", "start": 0, "type": "Identifier", @@ -1635,13 +1827,16 @@ description: Result of parsing pentagon_fillet_sugar.kcl "type": "MemberExpression" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -1652,6 +1847,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1659,17 +1855,21 @@ description: Result of parsing pentagon_fillet_sugar.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "c2", "start": 0, "type": "Identifier" @@ -1682,6 +1882,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier", @@ -1694,6 +1895,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc_tag", "start": 0, "type": "Identifier", @@ -1706,6 +1908,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1716,9 +1919,11 @@ description: Result of parsing pentagon_fillet_sugar.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1729,6 +1934,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1737,15 +1943,18 @@ description: Result of parsing pentagon_fillet_sugar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1753,12 +1962,14 @@ description: Result of parsing pentagon_fillet_sugar.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1770,6 +1981,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1781,6 +1993,7 @@ description: Result of parsing pentagon_fillet_sugar.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/pentagon_fillet_sugar/program_memory.snap b/rust/kcl-lib/tests/pentagon_fillet_sugar/program_memory.snap index 6fce054c6..1ca04ca9b 100644 --- a/rust/kcl-lib/tests/pentagon_fillet_sugar/program_memory.snap +++ b/rust/kcl-lib/tests/pentagon_fillet_sugar/program_memory.snap @@ -47,6 +47,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 564, "end": 572, + "moduleId": 0, "start": 564, "type": "TagDeclarator", "value": "arc_tag" @@ -113,6 +114,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -126,6 +128,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -139,6 +142,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" @@ -162,6 +166,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -187,6 +192,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -212,6 +218,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" @@ -361,6 +368,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 564, "end": 572, + "moduleId": 0, "start": 564, "type": "TagDeclarator", "value": "arc_tag" @@ -427,6 +435,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -440,6 +449,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -453,6 +463,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" @@ -476,6 +487,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -501,6 +513,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -526,6 +539,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" @@ -669,6 +683,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -682,6 +697,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -695,6 +711,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" @@ -718,6 +735,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -743,6 +761,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -768,6 +787,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" @@ -873,6 +893,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 564, "end": 572, + "moduleId": 0, "start": 564, "type": "TagDeclarator", "value": "arc_tag" @@ -902,6 +923,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 564, "end": 572, + "moduleId": 0, "start": 564, "type": "TagDeclarator", "value": "arc_tag" @@ -968,6 +990,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -981,6 +1004,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -994,6 +1018,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" @@ -1017,6 +1042,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -1042,6 +1068,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -1067,6 +1094,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" @@ -1252,6 +1280,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 564, "end": 572, + "moduleId": 0, "start": 564, "type": "TagDeclarator", "value": "arc_tag" @@ -1281,6 +1310,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 564, "end": 572, + "moduleId": 0, "start": 564, "type": "TagDeclarator", "value": "arc_tag" @@ -1347,6 +1377,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -1360,6 +1391,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -1373,6 +1405,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" @@ -1396,6 +1429,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 178, "end": 180, + "moduleId": 0, "start": 178, "type": "TagDeclarator", "value": "a" @@ -1421,6 +1455,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 239, "end": 241, + "moduleId": 0, "start": 239, "type": "TagDeclarator", "value": "b" @@ -1446,6 +1481,7 @@ description: Variables in memory after executing pentagon_fillet_sugar.kcl "tag": { "commentStart": 300, "end": 302, + "moduleId": 0, "start": 300, "type": "TagDeclarator", "value": "c" diff --git a/rust/kcl-lib/tests/pipe_as_arg/ast.snap b/rust/kcl-lib/tests/pipe_as_arg/ast.snap index 3d29e2530..85e97bfea 100644 --- a/rust/kcl-lib/tests/pipe_as_arg/ast.snap +++ b/rust/kcl-lib/tests/pipe_as_arg/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing pipe_as_arg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -25,9 +26,11 @@ description: Result of parsing pipe_as_arg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -39,6 +42,7 @@ description: Result of parsing pipe_as_arg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -46,16 +50,19 @@ description: Result of parsing pipe_as_arg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -66,6 +73,7 @@ description: Result of parsing pipe_as_arg.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -76,11 +84,13 @@ description: Result of parsing pipe_as_arg.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -93,6 +103,7 @@ description: Result of parsing pipe_as_arg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "double", "start": 0, "type": "Identifier" @@ -108,9 +119,11 @@ description: Result of parsing pipe_as_arg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -120,10 +133,12 @@ description: Result of parsing pipe_as_arg.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -139,6 +154,7 @@ description: Result of parsing pipe_as_arg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -146,16 +162,19 @@ description: Result of parsing pipe_as_arg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -167,11 +186,13 @@ description: Result of parsing pipe_as_arg.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -184,6 +205,7 @@ description: Result of parsing pipe_as_arg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -195,6 +217,7 @@ description: Result of parsing pipe_as_arg.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -206,6 +229,7 @@ description: Result of parsing pipe_as_arg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -213,20 +237,24 @@ description: Result of parsing pipe_as_arg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -239,6 +267,7 @@ description: Result of parsing pipe_as_arg.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myCube", "start": 0, "type": "Identifier" @@ -250,6 +279,7 @@ description: Result of parsing pipe_as_arg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -259,6 +289,7 @@ description: Result of parsing pipe_as_arg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200", "start": 0, "type": "Literal", @@ -269,13 +300,16 @@ description: Result of parsing pipe_as_arg.kcl } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "double", "start": 0, "type": "Identifier" @@ -286,12 +320,14 @@ description: Result of parsing pipe_as_arg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -300,6 +336,7 @@ description: Result of parsing pipe_as_arg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" @@ -310,6 +347,7 @@ description: Result of parsing pipe_as_arg.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -320,6 +358,7 @@ description: Result of parsing pipe_as_arg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -332,6 +371,7 @@ description: Result of parsing pipe_as_arg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -343,6 +383,7 @@ description: Result of parsing pipe_as_arg.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -353,9 +394,11 @@ description: Result of parsing pipe_as_arg.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -366,16 +409,19 @@ description: Result of parsing pipe_as_arg.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -383,12 +429,14 @@ description: Result of parsing pipe_as_arg.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -400,6 +448,7 @@ description: Result of parsing pipe_as_arg.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/pipe_substitution_inside_function_called_from_pipeline/ast.snap b/rust/kcl-lib/tests/pipe_substitution_inside_function_called_from_pipeline/ast.snap index 77624d0b8..0228a83bf 100644 --- a/rust/kcl-lib/tests/pipe_substitution_inside_function_called_from_pipeline/ast.snap +++ b/rust/kcl-lib/tests/pipe_substitution_inside_function_called_from_pipeline/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing pipe_substitution_inside_function_called_from_pip "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -24,12 +25,14 @@ description: Result of parsing pipe_substitution_inside_function_called_from_pip "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -37,16 +40,19 @@ description: Result of parsing pipe_substitution_inside_function_called_from_pip ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ignored", "start": 0, "type": "Identifier" @@ -58,11 +64,13 @@ description: Result of parsing pipe_substitution_inside_function_called_from_pip "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "// Make sure pipe value doesn't leak into the function call." ], @@ -78,6 +86,7 @@ description: Result of parsing pipe_substitution_inside_function_called_from_pip "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "answer", "start": 0, "type": "Identifier" @@ -87,18 +96,22 @@ description: Result of parsing pipe_substitution_inside_function_called_from_pip { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "f", "start": 0, "type": "Identifier" @@ -109,12 +122,14 @@ description: Result of parsing pipe_substitution_inside_function_called_from_pip }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -123,15 +138,18 @@ description: Result of parsing pipe_substitution_inside_function_called_from_pip ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -139,12 +157,14 @@ description: Result of parsing pipe_substitution_inside_function_called_from_pip ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/poop_chute/ast.snap b/rust/kcl-lib/tests/poop_chute/ast.snap index 6267f8722..ffbdc7942 100644 --- a/rust/kcl-lib/tests/poop_chute/ast.snap +++ b/rust/kcl-lib/tests/poop_chute/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "back_walls_width", "start": 0, "type": "Identifier" @@ -53,6 +58,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -62,11 +68,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +87,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "front_walls_width", "start": 0, "type": "Identifier" @@ -86,6 +95,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.5", "start": 0, "type": "Literal", @@ -95,11 +105,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -112,6 +124,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -119,6 +132,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.5", "start": 0, "type": "Literal", @@ -128,11 +142,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -145,6 +161,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletRadius", "start": 0, "type": "Identifier" @@ -152,6 +169,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.050", "start": 0, "type": "Literal", @@ -161,11 +179,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -178,6 +198,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "back_length", "start": 0, "type": "Identifier" @@ -185,6 +206,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -194,11 +216,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -211,6 +235,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "exit_height", "start": 0, "type": "Identifier" @@ -218,6 +243,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -227,11 +253,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -244,6 +272,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "front_length", "start": 0, "type": "Identifier" @@ -251,6 +280,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -260,11 +290,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -277,6 +309,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Fx", "start": 0, "type": "Identifier" @@ -284,6 +317,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -293,11 +327,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -310,6 +346,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Fy", "start": 0, "type": "Identifier" @@ -317,6 +354,7 @@ description: Result of parsing poop_chute.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -326,11 +364,13 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -343,6 +383,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -350,13 +391,16 @@ description: Result of parsing poop_chute.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -367,6 +411,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -375,9 +420,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -389,6 +436,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -402,6 +450,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -416,9 +465,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "back_walls_width", "start": 0, "type": "Identifier" @@ -428,10 +479,12 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -448,6 +501,7 @@ description: Result of parsing poop_chute.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -459,6 +513,7 @@ description: Result of parsing poop_chute.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -469,9 +524,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -482,6 +539,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -494,6 +552,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -505,9 +564,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -517,10 +578,12 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -540,9 +603,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -553,6 +618,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -565,6 +631,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -572,6 +639,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -587,6 +655,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -595,9 +664,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "back_walls_width", "start": 0, "type": "Identifier" @@ -613,6 +684,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -620,6 +692,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -631,9 +704,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -644,6 +719,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -656,6 +732,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -664,9 +741,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -682,9 +761,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -695,6 +776,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -707,6 +789,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -716,9 +799,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -730,6 +815,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -741,9 +827,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -754,6 +842,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -766,18 +855,22 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -788,6 +881,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -795,9 +889,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -814,9 +910,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -827,6 +925,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -839,6 +938,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -846,6 +946,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -861,6 +962,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -875,9 +977,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "back_walls_width", "start": 0, "type": "Identifier" @@ -887,10 +991,12 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -904,6 +1010,7 @@ description: Result of parsing poop_chute.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -912,9 +1019,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -924,10 +1033,12 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -951,9 +1062,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -964,6 +1077,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -976,6 +1090,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -985,9 +1100,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -999,6 +1116,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1010,9 +1128,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1023,6 +1143,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1035,6 +1156,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1045,6 +1167,7 @@ description: Result of parsing poop_chute.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1054,10 +1177,12 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -1077,6 +1202,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -1085,9 +1211,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -1103,9 +1231,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1116,6 +1246,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1128,6 +1259,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1136,9 +1268,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1154,9 +1288,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1167,6 +1303,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1179,6 +1316,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1186,6 +1324,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1201,9 +1340,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1214,6 +1355,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1226,18 +1368,22 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1248,6 +1394,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1255,9 +1402,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1274,9 +1423,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1287,6 +1438,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1299,6 +1451,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1309,6 +1462,7 @@ description: Result of parsing poop_chute.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -1318,10 +1472,12 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -1341,6 +1497,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -1348,6 +1505,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1363,9 +1521,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1376,19 +1536,23 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1399,12 +1563,14 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1413,15 +1579,18 @@ description: Result of parsing poop_chute.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1434,6 +1603,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -1445,6 +1615,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1452,6 +1623,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1467,6 +1639,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1474,6 +1647,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1481,10 +1655,12 @@ description: Result of parsing poop_chute.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "direction", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1493,6 +1669,7 @@ description: Result of parsing poop_chute.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1505,6 +1682,7 @@ description: Result of parsing poop_chute.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1516,6 +1694,7 @@ description: Result of parsing poop_chute.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1527,10 +1706,12 @@ description: Result of parsing poop_chute.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1539,6 +1720,7 @@ description: Result of parsing poop_chute.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -1555,9 +1737,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1567,10 +1751,12 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".0000001", "start": 0, "type": "Literal", @@ -1586,6 +1772,7 @@ description: Result of parsing poop_chute.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1602,9 +1789,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1615,6 +1804,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1622,9 +1812,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -1635,11 +1827,13 @@ description: Result of parsing poop_chute.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1652,6 +1846,7 @@ description: Result of parsing poop_chute.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1659,13 +1854,16 @@ description: Result of parsing poop_chute.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1676,6 +1874,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1684,9 +1883,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1698,6 +1899,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1711,6 +1913,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1725,9 +1928,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "back_walls_width", "start": 0, "type": "Identifier" @@ -1737,10 +1942,12 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1757,6 +1964,7 @@ description: Result of parsing poop_chute.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1768,6 +1976,7 @@ description: Result of parsing poop_chute.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1778,9 +1987,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1791,6 +2002,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1803,6 +2015,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1814,9 +2027,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -1826,10 +2041,12 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1849,9 +2066,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1862,6 +2081,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1874,6 +2094,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1881,6 +2102,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -1896,6 +2118,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -1904,9 +2127,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "back_walls_width", "start": 0, "type": "Identifier" @@ -1922,6 +2147,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1929,6 +2155,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1940,9 +2167,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1953,6 +2182,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1965,6 +2195,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1973,9 +2204,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -1991,9 +2224,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2004,6 +2239,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2016,6 +2252,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2025,9 +2262,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -2039,6 +2278,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2050,9 +2290,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2063,6 +2305,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2075,18 +2318,22 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -2097,6 +2344,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2104,9 +2352,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -2123,9 +2373,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2136,6 +2388,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2148,6 +2401,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2155,6 +2409,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -2170,6 +2425,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -2184,9 +2440,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "back_walls_width", "start": 0, "type": "Identifier" @@ -2196,10 +2454,12 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2213,6 +2473,7 @@ description: Result of parsing poop_chute.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -2221,9 +2482,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -2233,10 +2496,12 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2260,9 +2525,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2273,6 +2540,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2285,6 +2553,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2294,9 +2563,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -2308,6 +2579,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2319,9 +2591,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2332,6 +2606,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2344,6 +2619,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2354,6 +2630,7 @@ description: Result of parsing poop_chute.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2363,10 +2640,12 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -2386,6 +2665,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -2394,9 +2674,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wall_thickness", "start": 0, "type": "Identifier" @@ -2412,9 +2694,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2425,6 +2709,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2437,6 +2722,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2445,9 +2731,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2463,9 +2751,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2476,6 +2766,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2488,6 +2779,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2495,6 +2787,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2510,9 +2803,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2523,6 +2818,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2535,18 +2831,22 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -2557,6 +2857,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2564,9 +2865,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -2583,9 +2886,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2596,6 +2901,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2608,6 +2914,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2618,6 +2925,7 @@ description: Result of parsing poop_chute.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -2627,10 +2935,12 @@ description: Result of parsing poop_chute.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -2650,6 +2960,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteY", "start": 0, "type": "Identifier" @@ -2657,6 +2968,7 @@ description: Result of parsing poop_chute.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2672,9 +2984,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2685,19 +2999,23 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2708,12 +3026,14 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2726,6 +3046,7 @@ description: Result of parsing poop_chute.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2737,9 +3058,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "back_length", "start": 0, "type": "Identifier" @@ -2749,14 +3072,17 @@ description: Result of parsing poop_chute.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -2776,9 +3102,11 @@ description: Result of parsing poop_chute.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2789,6 +3117,7 @@ description: Result of parsing poop_chute.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2797,15 +3126,18 @@ description: Result of parsing poop_chute.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2813,12 +3145,14 @@ description: Result of parsing poop_chute.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "9": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2830,6 +3164,7 @@ description: Result of parsing poop_chute.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/poop_chute/program_memory.snap b/rust/kcl-lib/tests/poop_chute/program_memory.snap index 5c46a41f8..314cfc522 100644 --- a/rust/kcl-lib/tests/poop_chute/program_memory.snap +++ b/rust/kcl-lib/tests/poop_chute/program_memory.snap @@ -141,6 +141,7 @@ description: Variables in memory after executing poop_chute.kcl "tag": { "commentStart": 358, "end": 364, + "moduleId": 0, "start": 358, "type": "TagDeclarator", "value": "seg01" @@ -260,6 +261,7 @@ description: Variables in memory after executing poop_chute.kcl "tag": { "commentStart": 358, "end": 364, + "moduleId": 0, "start": 358, "type": "TagDeclarator", "value": "seg01" @@ -599,6 +601,7 @@ description: Variables in memory after executing poop_chute.kcl "tag": { "commentStart": 358, "end": 364, + "moduleId": 0, "start": 358, "type": "TagDeclarator", "value": "seg01" @@ -904,6 +907,7 @@ description: Variables in memory after executing poop_chute.kcl "tag": { "commentStart": 1152, "end": 1158, + "moduleId": 0, "start": 1152, "type": "TagDeclarator", "value": "seg02" @@ -1023,6 +1027,7 @@ description: Variables in memory after executing poop_chute.kcl "tag": { "commentStart": 1152, "end": 1158, + "moduleId": 0, "start": 1152, "type": "TagDeclarator", "value": "seg02" diff --git a/rust/kcl-lib/tests/revolve-colinear/ast.snap b/rust/kcl-lib/tests/revolve-colinear/ast.snap index 08b0103ee..0d9c0a871 100644 --- a/rust/kcl-lib/tests/revolve-colinear/ast.snap +++ b/rust/kcl-lib/tests/revolve-colinear/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing revolve-colinear.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sk0", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing revolve-colinear.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing revolve-colinear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing revolve-colinear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing revolve-colinear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing revolve-colinear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing revolve-colinear.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing revolve-colinear.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing revolve-colinear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing revolve-colinear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing revolve-colinear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing revolve-colinear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -154,9 +170,11 @@ description: Result of parsing revolve-colinear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -167,6 +185,7 @@ description: Result of parsing revolve-colinear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -179,6 +198,7 @@ description: Result of parsing revolve-colinear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -186,6 +206,7 @@ description: Result of parsing revolve-colinear.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -201,9 +222,11 @@ description: Result of parsing revolve-colinear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -214,6 +237,7 @@ description: Result of parsing revolve-colinear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -226,6 +250,7 @@ description: Result of parsing revolve-colinear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -234,6 +259,7 @@ description: Result of parsing revolve-colinear.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -245,6 +271,7 @@ description: Result of parsing revolve-colinear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -256,9 +283,11 @@ description: Result of parsing revolve-colinear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -269,19 +298,23 @@ description: Result of parsing revolve-colinear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -292,6 +325,7 @@ description: Result of parsing revolve-colinear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -304,6 +338,7 @@ description: Result of parsing revolve-colinear.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -312,9 +347,11 @@ description: Result of parsing revolve-colinear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -330,9 +367,11 @@ description: Result of parsing revolve-colinear.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -343,6 +382,7 @@ description: Result of parsing revolve-colinear.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -351,15 +391,18 @@ description: Result of parsing revolve-colinear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -367,6 +410,7 @@ description: Result of parsing revolve-colinear.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/revolve_about_edge/ast.snap b/rust/kcl-lib/tests/revolve_about_edge/ast.snap index 74dc167f7..f54657d9b 100644 --- a/rust/kcl-lib/tests/revolve_about_edge/ast.snap +++ b/rust/kcl-lib/tests/revolve_about_edge/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing revolve_about_edge.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing revolve_about_edge.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing revolve_about_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing revolve_about_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing revolve_about_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -75,6 +83,7 @@ description: Result of parsing revolve_about_edge.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing revolve_about_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -94,6 +104,7 @@ description: Result of parsing revolve_about_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -105,6 +116,7 @@ description: Result of parsing revolve_about_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -115,9 +127,11 @@ description: Result of parsing revolve_about_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -128,6 +142,7 @@ description: Result of parsing revolve_about_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -140,6 +155,7 @@ description: Result of parsing revolve_about_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -148,6 +164,7 @@ description: Result of parsing revolve_about_edge.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -159,6 +176,7 @@ description: Result of parsing revolve_about_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -170,6 +188,7 @@ description: Result of parsing revolve_about_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -177,6 +196,7 @@ description: Result of parsing revolve_about_edge.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -188,9 +208,11 @@ description: Result of parsing revolve_about_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -201,6 +223,7 @@ description: Result of parsing revolve_about_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -209,15 +232,18 @@ description: Result of parsing revolve_about_edge.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -230,6 +256,7 @@ description: Result of parsing revolve_about_edge.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -237,13 +264,16 @@ description: Result of parsing revolve_about_edge.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -254,6 +284,7 @@ description: Result of parsing revolve_about_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -261,9 +292,11 @@ description: Result of parsing revolve_about_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -281,6 +314,7 @@ description: Result of parsing revolve_about_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -292,6 +326,7 @@ description: Result of parsing revolve_about_edge.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -303,6 +338,7 @@ description: Result of parsing revolve_about_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -311,6 +347,7 @@ description: Result of parsing revolve_about_edge.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -322,6 +359,7 @@ description: Result of parsing revolve_about_edge.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -332,6 +370,7 @@ description: Result of parsing revolve_about_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -339,6 +378,7 @@ description: Result of parsing revolve_about_edge.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -354,9 +394,11 @@ description: Result of parsing revolve_about_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -367,6 +409,7 @@ description: Result of parsing revolve_about_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -379,6 +422,7 @@ description: Result of parsing revolve_about_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -386,6 +430,7 @@ description: Result of parsing revolve_about_edge.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -401,6 +446,7 @@ description: Result of parsing revolve_about_edge.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -409,9 +455,11 @@ description: Result of parsing revolve_about_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentB001", "start": 0, "type": "Identifier" @@ -427,9 +475,11 @@ description: Result of parsing revolve_about_edge.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -440,6 +490,7 @@ description: Result of parsing revolve_about_edge.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -448,15 +499,18 @@ description: Result of parsing revolve_about_edge.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -464,6 +518,7 @@ description: Result of parsing revolve_about_edge.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/revolve_about_edge/program_memory.snap b/rust/kcl-lib/tests/revolve_about_edge/program_memory.snap index e02a25655..f151af186 100644 --- a/rust/kcl-lib/tests/revolve_about_edge/program_memory.snap +++ b/rust/kcl-lib/tests/revolve_about_edge/program_memory.snap @@ -26,6 +26,7 @@ description: Variables in memory after executing revolve_about_edge.kcl "tag": { "commentStart": 95, "end": 116, + "moduleId": 0, "start": 95, "type": "TagDeclarator", "value": "rectangleSegmentB001" diff --git a/rust/kcl-lib/tests/riddle_small/ast.snap b/rust/kcl-lib/tests/riddle_small/ast.snap index 9686e48c0..9fc3f566b 100644 --- a/rust/kcl-lib/tests/riddle_small/ast.snap +++ b/rust/kcl-lib/tests/riddle_small/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing riddle_small.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ANSWER", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing riddle_small.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41803", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing riddle_small.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing riddle_small.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -67,9 +72,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ANSWER", "start": 0, "type": "Identifier" @@ -79,14 +86,17 @@ description: Result of parsing riddle_small.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "s", "start": 0, "type": "Identifier" @@ -100,10 +110,12 @@ description: Result of parsing riddle_small.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12345", "start": 0, "type": "Literal", @@ -117,10 +129,12 @@ description: Result of parsing riddle_small.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "%", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "214748", "start": 0, "type": "Literal", @@ -136,6 +150,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -143,16 +158,19 @@ description: Result of parsing riddle_small.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "s", "start": 0, "type": "Identifier" @@ -164,11 +182,13 @@ description: Result of parsing riddle_small.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing riddle_small.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xs", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing riddle_small.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "205804", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing riddle_small.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing riddle_small.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ys", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing riddle_small.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "71816", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing riddle_small.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing riddle_small.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ox", "start": 0, "type": "Identifier" @@ -257,6 +286,7 @@ description: Result of parsing riddle_small.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -266,18 +296,22 @@ description: Result of parsing riddle_small.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -288,6 +322,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -295,9 +330,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xs", "start": 0, "type": "Identifier" @@ -308,10 +345,12 @@ description: Result of parsing riddle_small.kcl "type": "Name" } }, + "moduleId": 0, "operator": "%", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -329,11 +368,13 @@ description: Result of parsing riddle_small.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -346,6 +387,7 @@ description: Result of parsing riddle_small.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "oy", "start": 0, "type": "Identifier" @@ -356,6 +398,7 @@ description: Result of parsing riddle_small.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -365,18 +408,22 @@ description: Result of parsing riddle_small.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "t", "start": 0, "type": "Identifier" @@ -387,6 +434,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -394,9 +442,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ys", "start": 0, "type": "Identifier" @@ -407,10 +457,12 @@ description: Result of parsing riddle_small.kcl "type": "Name" } }, + "moduleId": 0, "operator": "%", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "70", "start": 0, "type": "Literal", @@ -428,11 +480,13 @@ description: Result of parsing riddle_small.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -445,6 +499,7 @@ description: Result of parsing riddle_small.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -452,13 +507,16 @@ description: Result of parsing riddle_small.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -469,6 +527,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -476,9 +535,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -496,6 +557,7 @@ description: Result of parsing riddle_small.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -507,9 +569,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "ox", "start": 0, "type": "Identifier" @@ -523,9 +587,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "oy", "start": 0, "type": "Identifier" @@ -537,6 +603,7 @@ description: Result of parsing riddle_small.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -547,9 +614,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -560,6 +629,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -572,6 +642,7 @@ description: Result of parsing riddle_small.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -582,6 +653,7 @@ description: Result of parsing riddle_small.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -594,6 +666,7 @@ description: Result of parsing riddle_small.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -605,6 +678,7 @@ description: Result of parsing riddle_small.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -615,9 +689,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -628,6 +704,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -640,6 +717,7 @@ description: Result of parsing riddle_small.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -650,6 +728,7 @@ description: Result of parsing riddle_small.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -663,6 +742,7 @@ description: Result of parsing riddle_small.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -674,6 +754,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -681,6 +762,7 @@ description: Result of parsing riddle_small.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -691,9 +773,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -704,6 +788,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -716,6 +801,7 @@ description: Result of parsing riddle_small.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -727,6 +813,7 @@ description: Result of parsing riddle_small.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -738,6 +825,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -746,6 +834,7 @@ description: Result of parsing riddle_small.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -757,6 +846,7 @@ description: Result of parsing riddle_small.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -767,9 +857,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -780,19 +872,23 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -803,12 +899,14 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -821,6 +919,7 @@ description: Result of parsing riddle_small.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -828,6 +927,7 @@ description: Result of parsing riddle_small.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -843,9 +943,11 @@ description: Result of parsing riddle_small.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -856,6 +958,7 @@ description: Result of parsing riddle_small.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -864,15 +967,18 @@ description: Result of parsing riddle_small.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -880,12 +986,14 @@ description: Result of parsing riddle_small.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -897,6 +1005,7 @@ description: Result of parsing riddle_small.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/rotate_after_fillet/ast.snap b/rust/kcl-lib/tests/rotate_after_fillet/ast.snap index c005bdb03..f6b69626e 100644 --- a/rust/kcl-lib/tests/rotate_after_fillet/ast.snap +++ b/rust/kcl-lib/tests/rotate_after_fillet/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing rotate_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.625", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing rotate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -47,6 +51,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltLength", "start": 0, "type": "Identifier" @@ -54,6 +59,7 @@ description: Result of parsing rotate_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.500", "start": 0, "type": "Literal", @@ -63,11 +69,13 @@ description: Result of parsing rotate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -81,6 +89,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -89,9 +98,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -101,11 +112,13 @@ description: Result of parsing rotate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -119,6 +132,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadDiameter", "start": 0, "type": "Identifier" @@ -126,6 +140,7 @@ description: Result of parsing rotate_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.938", "start": 0, "type": "Literal", @@ -135,11 +150,13 @@ description: Result of parsing rotate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -153,6 +170,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -163,6 +181,7 @@ description: Result of parsing rotate_after_fillet.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -172,10 +191,12 @@ description: Result of parsing rotate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -189,11 +210,13 @@ description: Result of parsing rotate_after_fillet.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -207,6 +230,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -218,9 +242,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -230,6 +256,7 @@ description: Result of parsing rotate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -237,6 +264,7 @@ description: Result of parsing rotate_after_fillet.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -246,15 +274,19 @@ description: Result of parsing rotate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -265,12 +297,14 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30deg", "start": 0, "type": "Literal", @@ -289,11 +323,13 @@ description: Result of parsing rotate_after_fillet.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -307,6 +343,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltThreadLength", "start": 0, "type": "Identifier" @@ -314,6 +351,7 @@ description: Result of parsing rotate_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.75", "start": 0, "type": "Literal", @@ -323,11 +361,13 @@ description: Result of parsing rotate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -341,6 +381,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bolt", "start": 0, "type": "Identifier" @@ -356,6 +397,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -363,13 +405,16 @@ description: Result of parsing rotate_after_fillet.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -380,6 +425,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -387,9 +433,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -407,6 +455,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -417,6 +466,7 @@ description: Result of parsing rotate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -429,6 +479,7 @@ description: Result of parsing rotate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -440,6 +491,7 @@ description: Result of parsing rotate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -450,6 +502,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -461,9 +514,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadDiameter", "start": 0, "type": "Identifier" @@ -473,10 +528,12 @@ description: Result of parsing rotate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -496,6 +553,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -503,6 +561,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -514,9 +573,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -527,6 +588,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -539,6 +601,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -548,9 +611,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -562,6 +627,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -573,9 +639,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -586,6 +654,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -598,6 +667,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -605,6 +675,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020", "start": 0, "type": "Literal", @@ -620,6 +691,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -631,9 +703,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topEdge", "start": 0, "type": "Identifier" @@ -644,13 +718,16 @@ description: Result of parsing rotate_after_fillet.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -661,6 +738,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -668,9 +746,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topEdge", "start": 0, "type": "Identifier" @@ -683,6 +763,7 @@ description: Result of parsing rotate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -693,9 +774,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -706,6 +789,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -714,12 +798,14 @@ description: Result of parsing rotate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -736,11 +822,13 @@ description: Result of parsing rotate_after_fillet.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Create the head of the cap screw" ], @@ -756,6 +844,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexPatternSketch", "start": 0, "type": "Identifier" @@ -769,6 +858,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -776,6 +866,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'start'", "start": 0, "type": "Literal", @@ -788,9 +879,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -801,6 +894,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -808,9 +902,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -828,6 +924,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -842,9 +939,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -854,10 +953,12 @@ description: Result of parsing rotate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -878,9 +979,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -890,10 +993,12 @@ description: Result of parsing rotate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -909,6 +1014,7 @@ description: Result of parsing rotate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -919,9 +1025,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -932,6 +1040,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -944,6 +1053,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -951,6 +1061,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -966,6 +1077,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -974,9 +1086,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -992,9 +1106,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1005,6 +1121,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1017,6 +1134,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1024,6 +1142,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "210", "start": 0, "type": "Literal", @@ -1039,6 +1158,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1047,9 +1167,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1065,9 +1187,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1078,6 +1202,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1090,6 +1215,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1097,6 +1223,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -1112,6 +1239,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1120,9 +1248,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1138,9 +1268,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1151,6 +1283,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1163,6 +1296,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1170,6 +1304,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1185,6 +1320,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1193,9 +1329,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1211,9 +1349,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1224,6 +1364,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1236,6 +1377,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1243,6 +1385,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -1258,6 +1401,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1266,9 +1410,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1284,9 +1430,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1297,19 +1445,23 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1320,6 +1472,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1332,6 +1485,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1344,9 +1498,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -1358,15 +1514,18 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -1386,9 +1545,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1399,6 +1560,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1407,15 +1569,18 @@ description: Result of parsing rotate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1428,6 +1593,7 @@ description: Result of parsing rotate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -1441,6 +1607,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1448,6 +1615,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'end'", "start": 0, "type": "Literal", @@ -1460,9 +1628,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1473,6 +1643,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1480,9 +1651,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -1500,6 +1673,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1510,6 +1684,7 @@ description: Result of parsing rotate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1522,6 +1697,7 @@ description: Result of parsing rotate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1533,6 +1709,7 @@ description: Result of parsing rotate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1543,6 +1720,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1554,9 +1732,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -1566,10 +1746,12 @@ description: Result of parsing rotate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1589,6 +1771,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1596,6 +1779,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1607,9 +1791,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1620,6 +1806,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1632,6 +1819,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1640,9 +1828,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltLength", "start": 0, "type": "Identifier" @@ -1658,9 +1848,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1671,6 +1863,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1683,6 +1876,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1690,6 +1884,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".020", "start": 0, "type": "Literal", @@ -1705,6 +1900,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1713,13 +1909,16 @@ description: Result of parsing rotate_after_fillet.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -1730,6 +1929,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1737,9 +1937,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletEdge", "start": 0, "type": "Identifier" @@ -1752,6 +1954,7 @@ description: Result of parsing rotate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1762,9 +1965,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1775,6 +1980,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1787,6 +1993,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1794,6 +2001,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#4dd043\"", "start": 0, "type": "Literal", @@ -1806,6 +2014,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -1813,6 +2022,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1828,6 +2038,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -1835,6 +2046,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1850,9 +2062,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -1863,6 +2077,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1871,15 +2086,18 @@ description: Result of parsing rotate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1889,9 +2107,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -1903,6 +2123,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1910,12 +2131,14 @@ description: Result of parsing rotate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1927,6 +2150,7 @@ description: Result of parsing rotate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1941,16 +2165,19 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -1962,13 +2189,16 @@ description: Result of parsing rotate_after_fillet.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bolt", "start": 0, "type": "Identifier" @@ -1979,6 +2209,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1991,6 +2222,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -1998,6 +2230,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -2013,6 +2246,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2020,6 +2254,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -2035,6 +2270,7 @@ description: Result of parsing rotate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -2042,6 +2278,7 @@ description: Result of parsing rotate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -2057,9 +2294,11 @@ description: Result of parsing rotate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -2070,6 +2309,7 @@ description: Result of parsing rotate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2078,12 +2318,14 @@ description: Result of parsing rotate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2100,6 +2342,7 @@ description: Result of parsing rotate_after_fillet.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2107,12 +2350,14 @@ description: Result of parsing rotate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2124,6 +2369,7 @@ description: Result of parsing rotate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/scale_after_fillet/ast.snap b/rust/kcl-lib/tests/scale_after_fillet/ast.snap index 1cb471007..366f5eba0 100644 --- a/rust/kcl-lib/tests/scale_after_fillet/ast.snap +++ b/rust/kcl-lib/tests/scale_after_fillet/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing scale_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.625", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing scale_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -47,6 +51,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltLength", "start": 0, "type": "Identifier" @@ -54,6 +59,7 @@ description: Result of parsing scale_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.500", "start": 0, "type": "Literal", @@ -63,11 +69,13 @@ description: Result of parsing scale_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -81,6 +89,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -89,9 +98,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -101,11 +112,13 @@ description: Result of parsing scale_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -119,6 +132,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadDiameter", "start": 0, "type": "Identifier" @@ -126,6 +140,7 @@ description: Result of parsing scale_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.938", "start": 0, "type": "Literal", @@ -135,11 +150,13 @@ description: Result of parsing scale_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -153,6 +170,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -163,6 +181,7 @@ description: Result of parsing scale_after_fillet.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -172,10 +191,12 @@ description: Result of parsing scale_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -189,11 +210,13 @@ description: Result of parsing scale_after_fillet.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -207,6 +230,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -218,9 +242,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -230,6 +256,7 @@ description: Result of parsing scale_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -237,6 +264,7 @@ description: Result of parsing scale_after_fillet.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -246,15 +274,19 @@ description: Result of parsing scale_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -265,12 +297,14 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30deg", "start": 0, "type": "Literal", @@ -289,11 +323,13 @@ description: Result of parsing scale_after_fillet.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -307,6 +343,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltThreadLength", "start": 0, "type": "Identifier" @@ -314,6 +351,7 @@ description: Result of parsing scale_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.75", "start": 0, "type": "Literal", @@ -323,11 +361,13 @@ description: Result of parsing scale_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -341,6 +381,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bolt", "start": 0, "type": "Identifier" @@ -356,6 +397,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -363,13 +405,16 @@ description: Result of parsing scale_after_fillet.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -380,6 +425,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -387,9 +433,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -407,6 +455,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -417,6 +466,7 @@ description: Result of parsing scale_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -429,6 +479,7 @@ description: Result of parsing scale_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -440,6 +491,7 @@ description: Result of parsing scale_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -450,6 +502,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -461,9 +514,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadDiameter", "start": 0, "type": "Identifier" @@ -473,10 +528,12 @@ description: Result of parsing scale_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -496,6 +553,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -503,6 +561,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -514,9 +573,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -527,6 +588,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -539,6 +601,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -548,9 +611,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -562,6 +627,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -573,9 +639,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -586,6 +654,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -598,6 +667,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -605,6 +675,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020", "start": 0, "type": "Literal", @@ -620,6 +691,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -631,9 +703,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topEdge", "start": 0, "type": "Identifier" @@ -644,13 +718,16 @@ description: Result of parsing scale_after_fillet.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -661,6 +738,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -668,9 +746,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topEdge", "start": 0, "type": "Identifier" @@ -683,6 +763,7 @@ description: Result of parsing scale_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -693,9 +774,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -706,6 +789,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -714,12 +798,14 @@ description: Result of parsing scale_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -736,11 +822,13 @@ description: Result of parsing scale_after_fillet.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Create the head of the cap screw" ], @@ -756,6 +844,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexPatternSketch", "start": 0, "type": "Identifier" @@ -769,6 +858,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -776,6 +866,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'start'", "start": 0, "type": "Literal", @@ -788,9 +879,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -801,6 +894,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -808,9 +902,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -828,6 +924,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -842,9 +939,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -854,10 +953,12 @@ description: Result of parsing scale_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -878,9 +979,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -890,10 +993,12 @@ description: Result of parsing scale_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -909,6 +1014,7 @@ description: Result of parsing scale_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -919,9 +1025,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -932,6 +1040,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -944,6 +1053,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -951,6 +1061,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -966,6 +1077,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -974,9 +1086,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -992,9 +1106,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1005,6 +1121,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1017,6 +1134,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1024,6 +1142,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "210", "start": 0, "type": "Literal", @@ -1039,6 +1158,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1047,9 +1167,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1065,9 +1187,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1078,6 +1202,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1090,6 +1215,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1097,6 +1223,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -1112,6 +1239,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1120,9 +1248,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1138,9 +1268,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1151,6 +1283,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1163,6 +1296,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1170,6 +1304,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1185,6 +1320,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1193,9 +1329,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1211,9 +1349,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1224,6 +1364,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1236,6 +1377,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1243,6 +1385,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -1258,6 +1401,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1266,9 +1410,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1284,9 +1430,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1297,19 +1445,23 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1320,6 +1472,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1332,6 +1485,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1344,9 +1498,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -1358,15 +1514,18 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -1386,9 +1545,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1399,6 +1560,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1407,15 +1569,18 @@ description: Result of parsing scale_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1428,6 +1593,7 @@ description: Result of parsing scale_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -1441,6 +1607,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1448,6 +1615,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'end'", "start": 0, "type": "Literal", @@ -1460,9 +1628,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1473,6 +1643,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1480,9 +1651,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -1500,6 +1673,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1510,6 +1684,7 @@ description: Result of parsing scale_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1522,6 +1697,7 @@ description: Result of parsing scale_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1533,6 +1709,7 @@ description: Result of parsing scale_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1543,6 +1720,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1554,9 +1732,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -1566,10 +1746,12 @@ description: Result of parsing scale_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1589,6 +1771,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1596,6 +1779,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1607,9 +1791,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1620,6 +1806,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1632,6 +1819,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1640,9 +1828,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltLength", "start": 0, "type": "Identifier" @@ -1658,9 +1848,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1671,6 +1863,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1683,6 +1876,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1690,6 +1884,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".020", "start": 0, "type": "Literal", @@ -1705,6 +1900,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1713,13 +1909,16 @@ description: Result of parsing scale_after_fillet.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -1730,6 +1929,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1737,9 +1937,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletEdge", "start": 0, "type": "Identifier" @@ -1752,6 +1954,7 @@ description: Result of parsing scale_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1762,9 +1965,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1775,6 +1980,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1787,6 +1993,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1794,6 +2001,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#4dd043\"", "start": 0, "type": "Literal", @@ -1806,6 +2014,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -1813,6 +2022,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1828,6 +2038,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -1835,6 +2046,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1850,9 +2062,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -1863,6 +2077,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1871,15 +2086,18 @@ description: Result of parsing scale_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1889,9 +2107,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -1903,6 +2123,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1910,12 +2131,14 @@ description: Result of parsing scale_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1927,6 +2150,7 @@ description: Result of parsing scale_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1941,16 +2165,19 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -1962,13 +2189,16 @@ description: Result of parsing scale_after_fillet.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bolt", "start": 0, "type": "Identifier" @@ -1979,6 +2209,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1991,6 +2222,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1998,6 +2230,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -2013,6 +2246,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2020,6 +2254,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -2035,6 +2270,7 @@ description: Result of parsing scale_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -2042,6 +2278,7 @@ description: Result of parsing scale_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -2057,9 +2294,11 @@ description: Result of parsing scale_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -2070,6 +2309,7 @@ description: Result of parsing scale_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2078,12 +2318,14 @@ description: Result of parsing scale_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2100,6 +2342,7 @@ description: Result of parsing scale_after_fillet.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2107,12 +2350,14 @@ description: Result of parsing scale_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2124,6 +2369,7 @@ description: Result of parsing scale_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/ast.snap b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/ast.snap index 18ed7a216..6353a45e1 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/ast.snap +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "75.8", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "317.2", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -161,6 +178,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "268.43", "start": 0, "type": "Literal", @@ -176,6 +194,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -183,6 +202,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -194,9 +214,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -207,6 +229,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -219,6 +242,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -227,13 +251,16 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -244,6 +271,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -251,9 +279,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -264,10 +294,12 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -287,6 +319,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -294,6 +327,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "217.26", "start": 0, "type": "Literal", @@ -309,6 +343,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -316,6 +351,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -327,9 +363,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -340,6 +378,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -352,18 +391,22 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -374,6 +417,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -381,9 +425,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -400,19 +446,23 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -423,6 +473,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -430,9 +481,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -445,6 +498,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -456,9 +510,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -469,6 +525,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -481,6 +538,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -489,13 +547,16 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -506,25 +567,30 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -535,12 +601,14 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -548,6 +616,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -558,6 +627,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -565,6 +635,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -576,9 +647,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -589,19 +662,23 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -612,6 +689,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -620,12 +698,14 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -642,11 +722,13 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -659,6 +741,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -672,6 +755,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -679,6 +763,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -694,9 +779,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -707,6 +794,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -714,9 +802,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -734,6 +824,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -741,6 +832,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -756,6 +848,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -767,9 +860,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -781,6 +876,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -791,9 +887,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -804,6 +902,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -816,6 +915,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -823,6 +923,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -838,6 +939,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -846,13 +948,16 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -863,6 +968,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -870,9 +976,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -885,6 +993,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -895,6 +1004,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -902,6 +1012,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -913,9 +1024,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -926,6 +1039,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -938,6 +1052,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -945,6 +1060,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -960,6 +1076,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -971,9 +1088,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -985,6 +1104,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -995,6 +1115,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1002,6 +1123,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1013,9 +1135,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -1026,6 +1150,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1034,15 +1159,18 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1055,6 +1183,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1068,6 +1197,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1076,9 +1206,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -1094,9 +1226,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1107,6 +1241,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1114,9 +1249,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -1134,6 +1271,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1145,6 +1283,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "69.1", "start": 0, "type": "Literal", @@ -1156,6 +1295,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1164,6 +1304,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "277.34", "start": 0, "type": "Literal", @@ -1175,6 +1316,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1185,9 +1327,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1198,6 +1342,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1210,6 +1355,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1217,6 +1363,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1232,6 +1379,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1239,6 +1387,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41.48", "start": 0, "type": "Literal", @@ -1254,6 +1403,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1261,6 +1411,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1272,9 +1423,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1285,6 +1438,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1297,6 +1451,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1305,13 +1460,16 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1322,6 +1480,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1329,9 +1488,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -1342,10 +1503,12 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1365,6 +1528,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1372,6 +1536,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "104.8", "start": 0, "type": "Literal", @@ -1387,6 +1552,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1394,6 +1560,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1405,9 +1572,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1418,6 +1587,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1430,18 +1600,22 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1452,6 +1626,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1459,9 +1634,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -1478,19 +1655,23 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1501,6 +1682,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1508,9 +1690,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -1523,6 +1707,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1534,6 +1719,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1541,6 +1727,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1552,9 +1739,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1565,6 +1754,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1577,6 +1767,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1585,13 +1776,16 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1602,25 +1796,30 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1631,12 +1830,14 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1644,6 +1845,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1654,9 +1856,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1667,19 +1871,23 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1690,6 +1898,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1698,15 +1907,18 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1719,6 +1931,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1732,6 +1945,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1740,9 +1954,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1758,9 +1974,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1771,6 +1989,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1778,9 +1997,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -1798,6 +2019,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1808,6 +2030,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "159.25", "start": 0, "type": "Literal", @@ -1820,6 +2043,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "278.35", "start": 0, "type": "Literal", @@ -1831,6 +2055,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1841,9 +2066,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1854,6 +2081,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1866,6 +2094,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1873,6 +2102,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1888,6 +2118,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1895,6 +2126,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40.82", "start": 0, "type": "Literal", @@ -1910,6 +2142,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1917,6 +2150,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1928,9 +2162,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1941,6 +2177,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1953,6 +2190,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1961,13 +2199,16 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1978,6 +2219,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1985,9 +2227,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -1998,10 +2242,12 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2021,6 +2267,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2028,6 +2275,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "132.27", "start": 0, "type": "Literal", @@ -2043,6 +2291,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2050,6 +2299,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2061,9 +2311,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2074,6 +2326,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2086,18 +2339,22 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -2108,6 +2365,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2115,9 +2373,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -2134,19 +2394,23 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2157,6 +2421,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2164,9 +2429,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -2179,6 +2446,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2190,6 +2458,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2197,6 +2466,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2208,9 +2478,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2221,6 +2493,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2233,6 +2506,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2241,13 +2515,16 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2258,25 +2535,30 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2287,12 +2569,14 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2300,6 +2584,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2310,9 +2595,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2323,19 +2610,23 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2346,6 +2637,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2354,15 +2646,18 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2375,6 +2670,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -2386,6 +2682,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2393,6 +2690,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -2408,9 +2706,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2421,6 +2721,7 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2428,9 +2729,11 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2441,11 +2744,13 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2453,12 +2758,14 @@ description: Result of parsing sketch-on-chamfer-two-times-different-order.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/program_memory.snap b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/program_memory.snap index bc9f38bc7..7706f146b 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/program_memory.snap +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times-different-order/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -30,6 +31,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -50,6 +52,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -63,6 +66,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 596, "end": 602, + "moduleId": 0, "start": 596, "type": "TagDeclarator", "value": "seg03" @@ -76,6 +80,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 652, "end": 658, + "moduleId": 0, "start": 652, "type": "TagDeclarator", "value": "seg04" @@ -99,6 +104,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -124,6 +130,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -168,6 +175,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -318,6 +326,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 596, "end": 602, + "moduleId": 0, "start": 596, "type": "TagDeclarator", "value": "seg03" @@ -342,6 +351,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 652, "end": 658, + "moduleId": 0, "start": 652, "type": "TagDeclarator", "value": "seg04" @@ -368,6 +378,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1269, "end": 1290, + "moduleId": 0, "start": 1269, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -381,6 +392,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1374, "end": 1395, + "moduleId": 0, "start": 1374, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -394,6 +406,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1497, "end": 1518, + "moduleId": 0, "start": 1497, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -424,6 +437,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1269, "end": 1290, + "moduleId": 0, "start": 1269, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -449,6 +463,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1374, "end": 1395, + "moduleId": 0, "start": 1374, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -474,6 +489,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1497, "end": 1518, + "moduleId": 0, "start": 1497, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -559,6 +575,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -572,6 +589,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -592,6 +610,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -605,6 +624,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 596, "end": 602, + "moduleId": 0, "start": 596, "type": "TagDeclarator", "value": "seg03" @@ -618,6 +638,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 652, "end": 658, + "moduleId": 0, "start": 652, "type": "TagDeclarator", "value": "seg04" @@ -641,6 +662,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -666,6 +688,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -710,6 +733,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -860,6 +884,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 596, "end": 602, + "moduleId": 0, "start": 596, "type": "TagDeclarator", "value": "seg03" @@ -884,6 +909,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 652, "end": 658, + "moduleId": 0, "start": 652, "type": "TagDeclarator", "value": "seg04" @@ -1019,6 +1045,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1044,6 +1071,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -1088,6 +1116,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -1216,6 +1245,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1269, "end": 1290, + "moduleId": 0, "start": 1269, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -1241,6 +1271,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1374, "end": 1395, + "moduleId": 0, "start": 1374, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -1266,6 +1297,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1497, "end": 1518, + "moduleId": 0, "start": 1497, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -1351,6 +1383,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1364,6 +1397,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -1384,6 +1418,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -1397,6 +1432,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 596, "end": 602, + "moduleId": 0, "start": 596, "type": "TagDeclarator", "value": "seg03" @@ -1410,6 +1446,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 652, "end": 658, + "moduleId": 0, "start": 652, "type": "TagDeclarator", "value": "seg04" @@ -1433,6 +1470,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1458,6 +1496,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -1502,6 +1541,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -1652,6 +1692,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 596, "end": 602, + "moduleId": 0, "start": 596, "type": "TagDeclarator", "value": "seg03" @@ -1676,6 +1717,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 652, "end": 658, + "moduleId": 0, "start": 652, "type": "TagDeclarator", "value": "seg04" @@ -1748,6 +1790,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 802, "end": 823, + "moduleId": 0, "start": 802, "type": "TagDeclarator", "value": "rectangleSegmentA003" @@ -1773,6 +1816,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 906, "end": 927, + "moduleId": 0, "start": 906, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -1798,6 +1842,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 1029, "end": 1050, + "moduleId": 0, "start": 1029, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -1883,6 +1928,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1896,6 +1942,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -1916,6 +1963,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -1929,6 +1977,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 596, "end": 602, + "moduleId": 0, "start": 596, "type": "TagDeclarator", "value": "seg03" @@ -1942,6 +1991,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 652, "end": 658, + "moduleId": 0, "start": 652, "type": "TagDeclarator", "value": "seg04" @@ -1965,6 +2015,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1990,6 +2041,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -2034,6 +2086,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -2184,6 +2237,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 596, "end": 602, + "moduleId": 0, "start": 596, "type": "TagDeclarator", "value": "seg03" @@ -2208,6 +2262,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times-dif "tag": { "commentStart": 652, "end": 658, + "moduleId": 0, "start": 652, "type": "TagDeclarator", "value": "seg04" diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/ast.snap b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/ast.snap index e79b2014b..c9b43e82e 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/ast.snap +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "75.8", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "317.2", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -139,6 +154,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -161,6 +178,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "268.43", "start": 0, "type": "Literal", @@ -176,6 +194,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -183,6 +202,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -194,9 +214,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -207,6 +229,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -219,6 +242,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -227,13 +251,16 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -244,6 +271,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -251,9 +279,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -264,10 +294,12 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -287,6 +319,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -294,6 +327,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "217.26", "start": 0, "type": "Literal", @@ -309,6 +343,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -316,6 +351,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -327,9 +363,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -340,6 +378,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -352,18 +391,22 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -374,6 +417,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -381,9 +425,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -400,19 +446,23 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -423,6 +473,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -430,9 +481,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA001", "start": 0, "type": "Identifier" @@ -445,6 +498,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -456,9 +510,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -469,6 +525,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -481,6 +538,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -489,13 +547,16 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -506,25 +567,30 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -535,12 +601,14 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -548,6 +616,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -558,6 +627,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -565,6 +635,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -576,9 +647,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -589,19 +662,23 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -612,12 +689,14 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -626,12 +705,14 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -648,11 +729,13 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -665,6 +748,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -678,6 +762,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -685,6 +770,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -700,9 +786,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -713,6 +801,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -720,9 +809,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -740,6 +831,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -747,6 +839,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -762,6 +855,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -773,9 +867,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -787,6 +883,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -797,9 +894,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -810,6 +909,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -822,6 +922,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -829,6 +930,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -844,6 +946,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -855,9 +958,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -869,6 +974,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -879,6 +985,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -886,6 +993,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -897,9 +1005,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -910,6 +1020,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -922,6 +1033,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -929,6 +1041,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -944,6 +1057,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -952,13 +1066,16 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -969,6 +1086,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -976,9 +1094,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -991,6 +1111,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1001,6 +1122,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1008,6 +1130,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1019,9 +1142,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "chamfer", "start": 0, "type": "Identifier" @@ -1032,6 +1157,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1040,15 +1166,18 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1061,6 +1190,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1074,6 +1204,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1082,9 +1213,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -1100,9 +1233,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1113,6 +1248,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1120,9 +1256,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -1140,6 +1278,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1151,6 +1290,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "69.1", "start": 0, "type": "Literal", @@ -1162,6 +1302,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1170,6 +1311,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "277.34", "start": 0, "type": "Literal", @@ -1181,6 +1323,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1191,9 +1334,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1204,6 +1349,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1216,6 +1362,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1223,6 +1370,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1238,6 +1386,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1245,6 +1394,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "41.48", "start": 0, "type": "Literal", @@ -1260,6 +1410,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1267,6 +1418,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1278,9 +1430,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1291,6 +1445,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1303,6 +1458,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1311,13 +1467,16 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1328,6 +1487,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1335,9 +1495,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -1348,10 +1510,12 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1371,6 +1535,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1378,6 +1543,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "104.8", "start": 0, "type": "Literal", @@ -1393,6 +1559,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1400,6 +1567,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1411,9 +1579,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1424,6 +1594,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1436,18 +1607,22 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1458,6 +1633,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1465,9 +1641,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -1484,19 +1662,23 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -1507,6 +1689,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1514,9 +1697,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA003", "start": 0, "type": "Identifier" @@ -1529,6 +1714,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1540,6 +1726,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1547,6 +1734,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1558,9 +1746,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1571,6 +1761,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1583,6 +1774,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1591,13 +1783,16 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1608,25 +1803,30 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1637,12 +1837,14 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1650,6 +1852,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1660,9 +1863,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1673,19 +1878,23 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1696,12 +1905,14 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1710,15 +1921,18 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1731,6 +1945,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1744,6 +1959,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1752,9 +1968,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -1770,9 +1988,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1783,6 +2003,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1790,9 +2011,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -1810,6 +2033,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1820,6 +2044,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "159.25", "start": 0, "type": "Literal", @@ -1832,6 +2057,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "278.35", "start": 0, "type": "Literal", @@ -1843,6 +2069,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1853,9 +2080,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1866,6 +2095,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1878,6 +2108,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1885,6 +2116,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1900,6 +2132,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1907,6 +2140,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40.82", "start": 0, "type": "Literal", @@ -1922,6 +2156,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1929,6 +2164,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1940,9 +2176,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1953,6 +2191,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1965,6 +2204,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1973,13 +2213,16 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -1990,6 +2233,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1997,9 +2241,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -2010,10 +2256,12 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2033,6 +2281,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2040,6 +2289,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "132.27", "start": 0, "type": "Literal", @@ -2055,6 +2305,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2062,6 +2313,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2073,9 +2325,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2086,6 +2340,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2098,18 +2353,22 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -2120,6 +2379,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2127,9 +2387,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -2146,19 +2408,23 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" }, "arg": { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segLen", "start": 0, "type": "Identifier" @@ -2169,6 +2435,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2176,9 +2443,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rectangleSegmentA002", "start": 0, "type": "Identifier" @@ -2191,6 +2460,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2202,6 +2472,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -2209,6 +2480,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -2220,9 +2492,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2233,6 +2507,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2245,6 +2520,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2253,13 +2529,16 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2270,25 +2549,30 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2299,12 +2583,14 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2312,6 +2598,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2322,9 +2609,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2335,19 +2624,23 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2358,12 +2651,14 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2372,15 +2667,18 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2393,6 +2691,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -2404,6 +2703,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2411,6 +2711,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -2426,9 +2727,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2439,6 +2742,7 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2446,9 +2750,11 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2459,11 +2765,13 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2471,12 +2779,14 @@ description: Result of parsing sketch-on-chamfer-two-times.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/program_memory.snap b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/program_memory.snap index 757bf87eb..fc7cc19a5 100644 --- a/rust/kcl-lib/tests/sketch-on-chamfer-two-times/program_memory.snap +++ b/rust/kcl-lib/tests/sketch-on-chamfer-two-times/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -30,6 +31,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -50,6 +52,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -63,6 +66,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 580, "end": 586, + "moduleId": 0, "start": 580, "type": "TagDeclarator", "value": "seg04" @@ -76,6 +80,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg03" @@ -99,6 +104,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -124,6 +130,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -168,6 +175,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -318,6 +326,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 580, "end": 586, + "moduleId": 0, "start": 580, "type": "TagDeclarator", "value": "seg04" @@ -342,6 +351,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg03" @@ -368,6 +378,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1271, "end": 1292, + "moduleId": 0, "start": 1271, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -381,6 +392,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1376, "end": 1397, + "moduleId": 0, "start": 1376, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -394,6 +406,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1499, "end": 1520, + "moduleId": 0, "start": 1499, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -424,6 +437,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1271, "end": 1292, + "moduleId": 0, "start": 1271, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -449,6 +463,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1376, "end": 1397, + "moduleId": 0, "start": 1376, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -474,6 +489,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1499, "end": 1520, + "moduleId": 0, "start": 1499, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -559,6 +575,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -572,6 +589,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -592,6 +610,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -605,6 +624,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 580, "end": 586, + "moduleId": 0, "start": 580, "type": "TagDeclarator", "value": "seg04" @@ -618,6 +638,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg03" @@ -641,6 +662,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -666,6 +688,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -710,6 +733,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -860,6 +884,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 580, "end": 586, + "moduleId": 0, "start": 580, "type": "TagDeclarator", "value": "seg04" @@ -884,6 +909,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg03" @@ -1019,6 +1045,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1044,6 +1071,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -1088,6 +1116,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -1216,6 +1245,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1271, "end": 1292, + "moduleId": 0, "start": 1271, "type": "TagDeclarator", "value": "rectangleSegmentA002" @@ -1241,6 +1271,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1376, "end": 1397, + "moduleId": 0, "start": 1376, "type": "TagDeclarator", "value": "rectangleSegmentB001" @@ -1266,6 +1297,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1499, "end": 1520, + "moduleId": 0, "start": 1499, "type": "TagDeclarator", "value": "rectangleSegmentC001" @@ -1351,6 +1383,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1364,6 +1397,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -1384,6 +1418,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -1397,6 +1432,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 580, "end": 586, + "moduleId": 0, "start": 580, "type": "TagDeclarator", "value": "seg04" @@ -1410,6 +1446,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg03" @@ -1433,6 +1470,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1458,6 +1496,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -1502,6 +1541,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -1652,6 +1692,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 580, "end": 586, + "moduleId": 0, "start": 580, "type": "TagDeclarator", "value": "seg04" @@ -1676,6 +1717,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg03" @@ -1748,6 +1790,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 803, "end": 824, + "moduleId": 0, "start": 803, "type": "TagDeclarator", "value": "rectangleSegmentA003" @@ -1773,6 +1816,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 907, "end": 928, + "moduleId": 0, "start": 907, "type": "TagDeclarator", "value": "rectangleSegmentB002" @@ -1798,6 +1842,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 1030, "end": 1051, + "moduleId": 0, "start": 1030, "type": "TagDeclarator", "value": "rectangleSegmentC002" @@ -1883,6 +1928,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1896,6 +1942,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -1916,6 +1963,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -1929,6 +1977,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 580, "end": 586, + "moduleId": 0, "start": 580, "type": "TagDeclarator", "value": "seg04" @@ -1942,6 +1991,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg03" @@ -1965,6 +2015,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 148, "end": 169, + "moduleId": 0, "start": 148, "type": "TagDeclarator", "value": "rectangleSegmentA001" @@ -1990,6 +2041,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 253, "end": 259, + "moduleId": 0, "start": 253, "type": "TagDeclarator", "value": "seg01" @@ -2034,6 +2086,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 423, "end": 429, + "moduleId": 0, "start": 423, "type": "TagDeclarator", "value": "seg02" @@ -2184,6 +2237,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 580, "end": 586, + "moduleId": 0, "start": 580, "type": "TagDeclarator", "value": "seg04" @@ -2208,6 +2262,7 @@ description: Variables in memory after executing sketch-on-chamfer-two-times.kcl "tag": { "commentStart": 653, "end": 659, + "moduleId": 0, "start": 653, "type": "TagDeclarator", "value": "seg03" diff --git a/rust/kcl-lib/tests/sketch_in_object/ast.snap b/rust/kcl-lib/tests/sketch_in_object/ast.snap index c83f10f6b..7a9dec821 100644 --- a/rust/kcl-lib/tests/sketch_in_object/ast.snap +++ b/rust/kcl-lib/tests/sketch_in_object/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch_in_object.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "test", "start": 0, "type": "Identifier" @@ -24,13 +25,16 @@ description: Result of parsing sketch_in_object.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -41,6 +45,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48,9 +53,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -68,6 +75,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -78,6 +86,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -90,6 +99,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -101,6 +111,7 @@ description: Result of parsing sketch_in_object.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -111,9 +122,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -124,6 +137,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -136,6 +150,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -146,6 +161,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -158,6 +174,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -169,6 +186,7 @@ description: Result of parsing sketch_in_object.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -179,9 +197,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -192,6 +212,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -204,6 +225,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -214,6 +236,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -226,6 +249,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -237,6 +261,7 @@ description: Result of parsing sketch_in_object.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -247,9 +272,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -260,6 +287,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -272,6 +300,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -282,6 +311,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -295,6 +325,7 @@ description: Result of parsing sketch_in_object.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -306,6 +337,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -313,6 +345,7 @@ description: Result of parsing sketch_in_object.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -323,9 +356,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -336,19 +371,23 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -359,12 +398,14 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -373,12 +414,14 @@ description: Result of parsing sketch_in_object.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -386,20 +429,24 @@ description: Result of parsing sketch_in_object.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -412,6 +459,7 @@ description: Result of parsing sketch_in_object.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "test2", "start": 0, "type": "Identifier" @@ -423,6 +471,7 @@ description: Result of parsing sketch_in_object.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -430,15 +479,18 @@ description: Result of parsing sketch_in_object.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing1", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -446,22 +498,27 @@ description: Result of parsing sketch_in_object.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing2", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -472,6 +529,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -479,9 +537,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -499,6 +559,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -509,6 +570,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -521,6 +583,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -532,6 +595,7 @@ description: Result of parsing sketch_in_object.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -542,9 +606,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -555,6 +621,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -567,6 +634,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -577,6 +645,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -589,6 +658,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -600,6 +670,7 @@ description: Result of parsing sketch_in_object.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -610,9 +681,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -623,6 +696,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -635,6 +709,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -645,6 +720,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -657,6 +733,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -668,6 +745,7 @@ description: Result of parsing sketch_in_object.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -678,9 +756,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -691,6 +771,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -703,6 +784,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -713,6 +795,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -726,6 +809,7 @@ description: Result of parsing sketch_in_object.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -737,6 +821,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -744,6 +829,7 @@ description: Result of parsing sketch_in_object.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -754,9 +840,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -767,19 +855,23 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -790,12 +882,14 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -804,6 +898,7 @@ description: Result of parsing sketch_in_object.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" @@ -822,6 +917,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -829,20 +925,24 @@ description: Result of parsing sketch_in_object.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -855,18 +955,22 @@ description: Result of parsing sketch_in_object.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "test", "start": 0, "type": "Identifier" @@ -877,16 +981,19 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -900,9 +1007,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -919,6 +1028,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -927,6 +1037,7 @@ description: Result of parsing sketch_in_object.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -938,6 +1049,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -949,9 +1061,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -962,6 +1076,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -970,10 +1085,12 @@ description: Result of parsing sketch_in_object.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -986,18 +1103,22 @@ description: Result of parsing sketch_in_object.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x2", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "test2", "start": 0, "type": "Identifier" @@ -1008,16 +1129,19 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1031,17 +1155,21 @@ description: Result of parsing sketch_in_object.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x2", "start": 0, "type": "Identifier" @@ -1054,6 +1182,7 @@ description: Result of parsing sketch_in_object.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing1", "start": 0, "type": "Identifier", @@ -1066,6 +1195,7 @@ description: Result of parsing sketch_in_object.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thing2", "start": 0, "type": "Identifier", @@ -1082,6 +1212,7 @@ description: Result of parsing sketch_in_object.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1089,6 +1220,7 @@ description: Result of parsing sketch_in_object.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -1104,9 +1236,11 @@ description: Result of parsing sketch_in_object.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1117,6 +1251,7 @@ description: Result of parsing sketch_in_object.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1125,10 +1260,12 @@ description: Result of parsing sketch_in_object.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1136,12 +1273,14 @@ description: Result of parsing sketch_in_object.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1153,6 +1292,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1164,6 +1304,7 @@ description: Result of parsing sketch_in_object.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch_on_face/ast.snap b/rust/kcl-lib/tests/sketch_on_face/ast.snap index 6093217aa..5f358c993 100644 --- a/rust/kcl-lib/tests/sketch_on_face/ast.snap +++ b/rust/kcl-lib/tests/sketch_on_face/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch_on_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing sketch_on_face.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.19", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "28.35", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing sketch_on_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "28.67", "start": 0, "type": "Literal", @@ -155,6 +171,7 @@ description: Result of parsing sketch_on_face.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.25", "start": 0, "type": "Literal", @@ -166,6 +183,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -173,6 +191,7 @@ description: Result of parsing sketch_on_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -183,6 +202,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -190,6 +210,7 @@ description: Result of parsing sketch_on_face.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -201,9 +222,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -214,6 +237,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -226,6 +250,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -237,6 +262,7 @@ description: Result of parsing sketch_on_face.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.12", "start": 0, "type": "Literal", @@ -248,6 +274,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -257,6 +284,7 @@ description: Result of parsing sketch_on_face.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.81", "start": 0, "type": "Literal", @@ -268,6 +296,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -275,6 +304,7 @@ description: Result of parsing sketch_on_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -285,9 +315,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -298,6 +330,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -310,6 +343,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -321,6 +355,7 @@ description: Result of parsing sketch_on_face.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "33.24", "start": 0, "type": "Literal", @@ -332,6 +367,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -340,6 +376,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.55", "start": 0, "type": "Literal", @@ -351,6 +388,7 @@ description: Result of parsing sketch_on_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -361,9 +399,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -374,19 +414,23 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -397,12 +441,14 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -415,6 +461,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -422,6 +469,7 @@ description: Result of parsing sketch_on_face.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -437,9 +485,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -450,6 +500,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -458,15 +509,18 @@ description: Result of parsing sketch_on_face.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -479,6 +533,7 @@ description: Result of parsing sketch_on_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -492,6 +547,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -500,9 +556,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "here", "start": 0, "type": "Identifier" @@ -518,9 +576,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -531,6 +591,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -538,9 +599,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -558,6 +621,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -568,6 +632,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -580,6 +645,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -591,6 +657,7 @@ description: Result of parsing sketch_on_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -601,9 +668,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -614,6 +683,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -626,6 +696,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -636,6 +707,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -648,6 +720,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -659,6 +732,7 @@ description: Result of parsing sketch_on_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -669,9 +743,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -682,6 +758,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -694,6 +771,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -704,6 +782,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -716,6 +795,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -727,6 +807,7 @@ description: Result of parsing sketch_on_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -737,9 +818,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -750,6 +833,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -762,6 +846,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -772,6 +857,7 @@ description: Result of parsing sketch_on_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -785,6 +871,7 @@ description: Result of parsing sketch_on_face.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -796,6 +883,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -803,6 +891,7 @@ description: Result of parsing sketch_on_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -813,9 +902,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -826,19 +917,23 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -849,12 +944,14 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -867,6 +964,7 @@ description: Result of parsing sketch_on_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -874,6 +972,7 @@ description: Result of parsing sketch_on_face.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -889,9 +988,11 @@ description: Result of parsing sketch_on_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -902,6 +1003,7 @@ description: Result of parsing sketch_on_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -910,15 +1012,18 @@ description: Result of parsing sketch_on_face.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -926,12 +1031,14 @@ description: Result of parsing sketch_on_face.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch_on_face/program_memory.snap b/rust/kcl-lib/tests/sketch_on_face/program_memory.snap index 83ca76e7f..337d8b9f0 100644 --- a/rust/kcl-lib/tests/sketch_on_face/program_memory.snap +++ b/rust/kcl-lib/tests/sketch_on_face/program_memory.snap @@ -22,6 +22,7 @@ description: Variables in memory after executing sketch_on_face.kcl "tag": { "commentStart": 106, "end": 111, + "moduleId": 0, "start": 106, "type": "TagDeclarator", "value": "here" @@ -66,6 +67,7 @@ description: Variables in memory after executing sketch_on_face.kcl "tag": { "commentStart": 106, "end": 111, + "moduleId": 0, "start": 106, "type": "TagDeclarator", "value": "here" @@ -356,6 +358,7 @@ description: Variables in memory after executing sketch_on_face.kcl "tag": { "commentStart": 106, "end": 111, + "moduleId": 0, "start": 106, "type": "TagDeclarator", "value": "here" @@ -400,6 +403,7 @@ description: Variables in memory after executing sketch_on_face.kcl "tag": { "commentStart": 106, "end": 111, + "moduleId": 0, "start": 106, "type": "TagDeclarator", "value": "here" diff --git a/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/ast.snap b/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/ast.snap index 0fa410955..4ae174011 100644 --- a/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/ast.snap +++ b/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountL", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Shelf Bracket", "// This is a shelf bracket made out of 6061-T6 aluminum sheet metal. The required thickness is calculated based on a point load of 300 lbs applied to the end of the shelf. There are two brackets holding up the shelf, so the moment experienced is divided by 2. The shelf is 1 foot long from the wall.", @@ -53,6 +57,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountL", "start": 0, "type": "Identifier" @@ -60,6 +65,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -69,11 +75,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -86,6 +94,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sigmaAllow", "start": 0, "type": "Identifier" @@ -93,6 +102,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35000", "start": 0, "type": "Literal", @@ -102,11 +112,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define constants required to calculate the thickness needed to support 300 lbs" ], @@ -122,6 +134,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -129,6 +142,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -138,11 +152,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -155,6 +171,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -162,6 +179,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "300", "start": 0, "type": "Literal", @@ -171,11 +189,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -188,6 +208,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "L", "start": 0, "type": "Identifier" @@ -195,6 +216,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -204,11 +226,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -221,6 +245,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "M", "start": 0, "type": "Identifier" @@ -235,9 +260,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "L", "start": 0, "type": "Identifier" @@ -247,14 +274,17 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "p", "start": 0, "type": "Identifier" @@ -268,10 +298,12 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -285,11 +317,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -302,6 +336,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "FOS", "start": 0, "type": "Identifier" @@ -309,6 +344,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -318,11 +354,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -335,18 +373,22 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -357,6 +399,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -372,6 +415,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -381,14 +425,17 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "M", "start": 0, "type": "Identifier" @@ -402,14 +449,17 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "FOS", "start": 0, "type": "Identifier" @@ -423,6 +473,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -431,9 +482,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -443,14 +496,17 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sigmaAllow", "start": 0, "type": "Identifier" @@ -469,11 +525,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "type": "BinaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Calculate the thickness off the bending stress and factor of safety" ], @@ -489,6 +547,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletR", "start": 0, "type": "Identifier" @@ -496,6 +555,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -505,11 +565,13 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -527,6 +589,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracket", "start": 0, "type": "Identifier" @@ -534,13 +597,16 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -551,6 +617,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -558,9 +625,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -578,6 +647,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -588,6 +658,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -600,6 +671,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -611,6 +683,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -621,9 +694,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -634,6 +709,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -646,6 +722,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -656,6 +733,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -669,9 +747,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountL", "start": 0, "type": "Identifier" @@ -683,6 +763,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -693,6 +774,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -700,6 +782,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -711,9 +794,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -724,6 +809,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -736,6 +822,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -748,9 +835,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountL", "start": 0, "type": "Identifier" @@ -762,6 +851,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -770,6 +860,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -781,6 +872,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -791,6 +883,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -798,6 +891,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -809,9 +903,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -822,6 +918,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -834,6 +931,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -844,6 +942,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -858,9 +957,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -872,6 +973,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -879,6 +981,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -889,9 +992,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -902,6 +1007,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -914,6 +1020,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -928,9 +1035,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "shelfMountL", "start": 0, "type": "Identifier" @@ -940,14 +1049,17 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -964,6 +1076,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -975,6 +1088,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -985,6 +1099,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -992,6 +1107,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1003,9 +1119,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1016,6 +1134,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1028,6 +1147,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1038,6 +1158,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1055,9 +1176,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wallMountL", "start": 0, "type": "Identifier" @@ -1069,19 +1192,23 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1097,6 +1224,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1107,9 +1235,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1120,19 +1250,23 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1143,12 +1277,14 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1161,6 +1297,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1169,9 +1306,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "width", "start": 0, "type": "Identifier" @@ -1187,9 +1326,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1200,6 +1341,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1212,6 +1354,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1220,9 +1363,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletR", "start": 0, "type": "Identifier" @@ -1238,6 +1383,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1246,13 +1392,16 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1263,6 +1412,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1270,9 +1420,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "innerEdge", "start": 0, "type": "Identifier" @@ -1285,6 +1437,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1295,9 +1448,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1308,6 +1463,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1320,6 +1476,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1331,9 +1488,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletR", "start": 0, "type": "Identifier" @@ -1343,14 +1502,17 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1370,6 +1532,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1378,13 +1541,16 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getNextAdjacentEdge", "start": 0, "type": "Identifier" @@ -1395,6 +1561,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1402,9 +1569,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "outerEdge", "start": 0, "type": "Identifier" @@ -1417,6 +1586,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1427,9 +1597,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1440,6 +1612,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1448,15 +1621,18 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1474,6 +1650,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -1487,6 +1664,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1495,9 +1673,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -1513,9 +1693,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1526,6 +1708,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1533,9 +1716,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bracket", "start": 0, "type": "Identifier" @@ -1553,6 +1738,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1563,6 +1749,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.28", "start": 0, "type": "Literal", @@ -1575,6 +1762,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.83", "start": 0, "type": "Literal", @@ -1586,6 +1774,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1596,9 +1785,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1609,6 +1800,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1621,6 +1813,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1631,6 +1824,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.17", "start": 0, "type": "Literal", @@ -1644,6 +1838,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03", "start": 0, "type": "Literal", @@ -1655,6 +1850,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1662,6 +1858,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1672,9 +1869,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1685,6 +1884,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1697,6 +1897,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1708,6 +1909,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.07", "start": 0, "type": "Literal", @@ -1719,6 +1921,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1728,6 +1931,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -1739,6 +1943,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1746,6 +1951,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1756,9 +1962,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1769,6 +1977,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1781,6 +1990,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1792,6 +2002,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.07", "start": 0, "type": "Literal", @@ -1803,6 +2014,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1811,6 +2023,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.05", "start": 0, "type": "Literal", @@ -1822,6 +2035,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1832,9 +2046,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1845,6 +2061,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1857,6 +2074,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1865,13 +2083,16 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1882,25 +2103,30 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -1911,12 +2137,14 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1924,6 +2152,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1934,9 +2163,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1947,19 +2178,23 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1970,12 +2205,14 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1988,6 +2225,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1995,6 +2233,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -2010,9 +2249,11 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2023,6 +2264,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2031,15 +2273,18 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2047,12 +2292,14 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2066,6 +2313,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2077,6 +2325,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2088,6 +2337,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2101,6 +2351,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2114,6 +2365,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2127,6 +2379,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2140,6 +2393,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2153,6 +2407,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2164,6 +2419,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2175,6 +2431,7 @@ description: Result of parsing sketch_on_face_after_fillets_referencing_face.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/program_memory.snap b/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/program_memory.snap index d55cf26aa..b0614aec0 100644 --- a/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/program_memory.snap +++ b/rust/kcl-lib/tests/sketch_on_face_after_fillets_referencing_face/program_memory.snap @@ -56,6 +56,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1079, "end": 1089, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "outerEdge" @@ -69,6 +70,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1132, "end": 1138, + "moduleId": 0, "start": 1132, "type": "TagDeclarator", "value": "seg01" @@ -89,6 +91,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1225, "end": 1235, + "moduleId": 0, "start": 1225, "type": "TagDeclarator", "value": "innerEdge" @@ -126,6 +129,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1079, "end": 1089, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "outerEdge" @@ -151,6 +155,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1132, "end": 1138, + "moduleId": 0, "start": 1132, "type": "TagDeclarator", "value": "seg01" @@ -195,6 +200,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1225, "end": 1235, + "moduleId": 0, "start": 1225, "type": "TagDeclarator", "value": "innerEdge" @@ -598,6 +604,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1079, "end": 1089, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "outerEdge" @@ -611,6 +618,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1132, "end": 1138, + "moduleId": 0, "start": 1132, "type": "TagDeclarator", "value": "seg01" @@ -631,6 +639,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1225, "end": 1235, + "moduleId": 0, "start": 1225, "type": "TagDeclarator", "value": "innerEdge" @@ -668,6 +677,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1079, "end": 1089, + "moduleId": 0, "start": 1079, "type": "TagDeclarator", "value": "outerEdge" @@ -693,6 +703,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1132, "end": 1138, + "moduleId": 0, "start": 1132, "type": "TagDeclarator", "value": "seg01" @@ -737,6 +748,7 @@ description: Variables in memory after executing sketch_on_face_after_fillets_re "tag": { "commentStart": 1225, "end": 1235, + "moduleId": 0, "start": 1225, "type": "TagDeclarator", "value": "innerEdge" diff --git a/rust/kcl-lib/tests/sketch_on_face_circle_tagged/ast.snap b/rust/kcl-lib/tests/sketch_on_face_circle_tagged/ast.snap index 395748d51..47c2365cd 100644 --- a/rust/kcl-lib/tests/sketch_on_face_circle_tagged/ast.snap +++ b/rust/kcl-lib/tests/sketch_on_face_circle_tagged/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -35,13 +37,16 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -52,6 +57,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59,9 +65,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -79,6 +87,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -87,9 +96,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -105,9 +116,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -118,6 +131,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -130,6 +144,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -140,6 +155,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -153,9 +169,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -167,6 +185,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -177,9 +196,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -190,6 +211,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -202,6 +224,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -213,9 +236,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -228,6 +253,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -239,6 +265,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -249,9 +276,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -262,6 +291,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -274,6 +304,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -284,6 +315,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -298,9 +330,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -312,6 +346,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -319,6 +354,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -329,9 +365,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -342,6 +380,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -350,15 +389,18 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -368,9 +410,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -382,6 +426,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -389,12 +434,14 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -409,12 +456,14 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -425,6 +474,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -435,11 +485,13 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -452,6 +504,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -465,6 +518,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -475,6 +529,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -487,6 +542,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -498,6 +554,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -508,6 +565,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -515,6 +573,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -530,9 +589,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -543,19 +604,23 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -566,12 +631,14 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -584,6 +651,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -591,6 +659,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -606,9 +675,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -619,6 +690,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -627,15 +699,18 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -648,6 +723,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -661,6 +737,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -668,6 +745,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"end\"", "start": 0, "type": "Literal", @@ -680,9 +758,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -693,6 +773,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -700,9 +781,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -720,6 +803,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -730,6 +814,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -742,6 +827,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -753,6 +839,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -763,6 +850,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -770,6 +858,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -785,6 +874,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -792,6 +882,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -803,9 +894,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -816,6 +909,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -828,6 +922,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -835,6 +930,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -850,9 +946,11 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -863,6 +961,7 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -871,15 +970,18 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -887,12 +989,14 @@ description: Result of parsing sketch_on_face_circle_tagged.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch_on_face_circle_tagged/program_memory.snap b/rust/kcl-lib/tests/sketch_on_face_circle_tagged/program_memory.snap index f0e00a7bd..b554da975 100644 --- a/rust/kcl-lib/tests/sketch_on_face_circle_tagged/program_memory.snap +++ b/rust/kcl-lib/tests/sketch_on_face_circle_tagged/program_memory.snap @@ -206,6 +206,7 @@ description: Variables in memory after executing sketch_on_face_circle_tagged.kc "tag": { "commentStart": 359, "end": 368, + "moduleId": 0, "start": 359, "type": "TagDeclarator", "value": "myCircle" @@ -235,6 +236,7 @@ description: Variables in memory after executing sketch_on_face_circle_tagged.kc "tag": { "commentStart": 359, "end": 368, + "moduleId": 0, "start": 359, "type": "TagDeclarator", "value": "myCircle" diff --git a/rust/kcl-lib/tests/sketch_on_face_end/ast.snap b/rust/kcl-lib/tests/sketch_on_face_end/ast.snap index f29996a7b..0c577d727 100644 --- a/rust/kcl-lib/tests/sketch_on_face_end/ast.snap +++ b/rust/kcl-lib/tests/sketch_on_face_end/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch_on_face_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing sketch_on_face_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -35,13 +37,16 @@ description: Result of parsing sketch_on_face_end.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -52,6 +57,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59,9 +65,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -79,6 +87,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -87,9 +96,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -105,9 +116,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -118,6 +131,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -130,6 +144,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -140,6 +155,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -153,9 +169,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -167,6 +185,7 @@ description: Result of parsing sketch_on_face_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -177,9 +196,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -190,6 +211,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -202,6 +224,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -213,9 +236,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -228,6 +253,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -239,6 +265,7 @@ description: Result of parsing sketch_on_face_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -249,9 +276,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -262,6 +291,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -274,6 +304,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -284,6 +315,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -298,9 +330,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -312,6 +346,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -319,6 +354,7 @@ description: Result of parsing sketch_on_face_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -329,9 +365,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -342,6 +380,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -350,15 +389,18 @@ description: Result of parsing sketch_on_face_end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -368,9 +410,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -382,6 +426,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -389,12 +434,14 @@ description: Result of parsing sketch_on_face_end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -409,12 +456,14 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -425,6 +474,7 @@ description: Result of parsing sketch_on_face_end.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -435,11 +485,13 @@ description: Result of parsing sketch_on_face_end.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -452,6 +504,7 @@ description: Result of parsing sketch_on_face_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -465,6 +518,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -475,6 +529,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -487,6 +542,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -498,6 +554,7 @@ description: Result of parsing sketch_on_face_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -508,6 +565,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -515,6 +573,7 @@ description: Result of parsing sketch_on_face_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -530,9 +589,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -543,19 +604,23 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -566,12 +631,14 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -584,6 +651,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -591,6 +659,7 @@ description: Result of parsing sketch_on_face_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -606,9 +675,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -619,6 +690,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -627,15 +699,18 @@ description: Result of parsing sketch_on_face_end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -648,6 +723,7 @@ description: Result of parsing sketch_on_face_end.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -661,6 +737,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -668,6 +745,7 @@ description: Result of parsing sketch_on_face_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"END\"", "start": 0, "type": "Literal", @@ -680,9 +758,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -693,6 +773,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -700,9 +781,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -720,6 +803,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -730,6 +814,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -742,6 +827,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -753,6 +839,7 @@ description: Result of parsing sketch_on_face_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -763,9 +850,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -776,6 +865,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -788,6 +878,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -798,6 +889,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -810,6 +902,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -821,6 +914,7 @@ description: Result of parsing sketch_on_face_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -831,9 +925,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -844,6 +940,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -856,6 +953,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -866,6 +964,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -878,6 +977,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -889,6 +989,7 @@ description: Result of parsing sketch_on_face_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -899,9 +1000,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -912,6 +1015,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -924,6 +1028,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -934,6 +1039,7 @@ description: Result of parsing sketch_on_face_end.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -947,6 +1053,7 @@ description: Result of parsing sketch_on_face_end.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -958,6 +1065,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -965,6 +1073,7 @@ description: Result of parsing sketch_on_face_end.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -975,9 +1084,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -988,19 +1099,23 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1011,12 +1126,14 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1029,6 +1146,7 @@ description: Result of parsing sketch_on_face_end.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1036,6 +1154,7 @@ description: Result of parsing sketch_on_face_end.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1051,9 +1170,11 @@ description: Result of parsing sketch_on_face_end.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1064,6 +1185,7 @@ description: Result of parsing sketch_on_face_end.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1072,15 +1194,18 @@ description: Result of parsing sketch_on_face_end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1088,12 +1213,14 @@ description: Result of parsing sketch_on_face_end.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch_on_face_end_negative_extrude/ast.snap b/rust/kcl-lib/tests/sketch_on_face_end_negative_extrude/ast.snap index 9da7d18c4..b3bbeae90 100644 --- a/rust/kcl-lib/tests/sketch_on_face_end_negative_extrude/ast.snap +++ b/rust/kcl-lib/tests/sketch_on_face_end_negative_extrude/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -35,13 +37,16 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -52,6 +57,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59,9 +65,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -79,6 +87,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -87,9 +96,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -105,9 +116,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -118,6 +131,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -130,6 +144,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -140,6 +155,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -153,9 +169,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -167,6 +185,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -177,9 +196,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -190,6 +211,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -202,6 +224,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -213,9 +236,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -228,6 +253,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -239,6 +265,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -249,9 +276,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -262,6 +291,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -274,6 +304,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -284,6 +315,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -298,9 +330,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -312,6 +346,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -319,6 +354,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -329,9 +365,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -342,6 +380,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -350,15 +389,18 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -368,9 +410,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -382,6 +426,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -389,12 +434,14 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -409,12 +456,14 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -425,6 +474,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -435,11 +485,13 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -452,6 +504,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -465,6 +518,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -475,6 +529,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -487,6 +542,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -498,6 +554,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -508,6 +565,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -515,6 +573,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -530,9 +589,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -543,19 +604,23 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -566,12 +631,14 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -584,6 +651,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -591,6 +659,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -606,9 +675,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -619,6 +690,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -627,15 +699,18 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -648,6 +723,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -661,6 +737,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -668,6 +745,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"END\"", "start": 0, "type": "Literal", @@ -680,9 +758,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -693,6 +773,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -700,9 +781,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -720,6 +803,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -730,6 +814,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -742,6 +827,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -753,6 +839,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -763,9 +850,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -776,6 +865,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -788,6 +878,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -798,6 +889,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -810,6 +902,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -821,6 +914,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -831,9 +925,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -844,6 +940,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -856,6 +953,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -866,6 +964,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -878,6 +977,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -889,6 +989,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -899,9 +1000,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -912,6 +1015,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -924,6 +1028,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -934,6 +1039,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -947,6 +1053,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -958,6 +1065,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -965,6 +1073,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -975,9 +1084,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -988,19 +1099,23 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1011,12 +1126,14 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1029,6 +1146,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1037,6 +1155,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1048,6 +1167,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1059,9 +1179,11 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1072,6 +1194,7 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1080,15 +1203,18 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1096,12 +1222,14 @@ description: Result of parsing sketch_on_face_end_negative_extrude.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch_on_face_start/ast.snap b/rust/kcl-lib/tests/sketch_on_face_start/ast.snap index d331e3995..4c1a72de2 100644 --- a/rust/kcl-lib/tests/sketch_on_face_start/ast.snap +++ b/rust/kcl-lib/tests/sketch_on_face_start/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch_on_face_start.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing sketch_on_face_start.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -35,13 +37,16 @@ description: Result of parsing sketch_on_face_start.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -52,6 +57,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -59,9 +65,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -79,6 +87,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -87,9 +96,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -105,9 +116,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -118,6 +131,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -130,6 +144,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -140,6 +155,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -153,9 +169,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -167,6 +185,7 @@ description: Result of parsing sketch_on_face_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -177,9 +196,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -190,6 +211,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -202,6 +224,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -213,9 +236,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -228,6 +253,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -239,6 +265,7 @@ description: Result of parsing sketch_on_face_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -249,9 +276,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -262,6 +291,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -274,6 +304,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -284,6 +315,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -298,9 +330,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -312,6 +346,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -319,6 +354,7 @@ description: Result of parsing sketch_on_face_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -329,9 +365,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -342,6 +380,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -350,15 +389,18 @@ description: Result of parsing sketch_on_face_start.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -368,9 +410,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sg", "start": 0, "type": "Identifier" @@ -382,6 +426,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -389,12 +434,14 @@ description: Result of parsing sketch_on_face_start.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -409,12 +456,14 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -425,6 +474,7 @@ description: Result of parsing sketch_on_face_start.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -435,11 +485,13 @@ description: Result of parsing sketch_on_face_start.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -452,6 +504,7 @@ description: Result of parsing sketch_on_face_start.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -465,6 +518,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -475,6 +529,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -487,6 +542,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -498,6 +554,7 @@ description: Result of parsing sketch_on_face_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -508,6 +565,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -515,6 +573,7 @@ description: Result of parsing sketch_on_face_start.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -530,9 +589,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -543,19 +604,23 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -566,12 +631,14 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -587,6 +654,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -594,6 +662,7 @@ description: Result of parsing sketch_on_face_start.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -609,9 +678,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -622,6 +693,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -630,10 +702,12 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foo", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "LabelledExpression", "type": "LabelledExpression" @@ -641,15 +715,18 @@ description: Result of parsing sketch_on_face_start.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -662,6 +739,7 @@ description: Result of parsing sketch_on_face_start.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -675,6 +753,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -682,6 +761,7 @@ description: Result of parsing sketch_on_face_start.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"start\"", "start": 0, "type": "Literal", @@ -694,9 +774,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -707,6 +789,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -714,9 +797,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "foo", "start": 0, "type": "Identifier" @@ -734,6 +819,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -744,6 +830,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -756,6 +843,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -767,6 +855,7 @@ description: Result of parsing sketch_on_face_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -777,9 +866,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -790,6 +881,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -802,6 +894,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -812,6 +905,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -824,6 +918,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -835,6 +930,7 @@ description: Result of parsing sketch_on_face_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -845,9 +941,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -858,6 +956,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -870,6 +969,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -880,6 +980,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -892,6 +993,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -903,6 +1005,7 @@ description: Result of parsing sketch_on_face_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -913,9 +1016,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -926,6 +1031,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -938,6 +1044,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -948,6 +1055,7 @@ description: Result of parsing sketch_on_face_start.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -961,6 +1069,7 @@ description: Result of parsing sketch_on_face_start.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -972,6 +1081,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -979,6 +1089,7 @@ description: Result of parsing sketch_on_face_start.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -989,9 +1100,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1002,19 +1115,23 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1025,12 +1142,14 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1043,6 +1162,7 @@ description: Result of parsing sketch_on_face_start.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1050,6 +1170,7 @@ description: Result of parsing sketch_on_face_start.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1065,9 +1186,11 @@ description: Result of parsing sketch_on_face_start.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1078,6 +1201,7 @@ description: Result of parsing sketch_on_face_start.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1086,15 +1210,18 @@ description: Result of parsing sketch_on_face_start.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1102,12 +1229,14 @@ description: Result of parsing sketch_on_face_start.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch_on_face_union/ast.snap b/rust/kcl-lib/tests/sketch_on_face_union/ast.snap index 831fdc73c..594b33fa8 100644 --- a/rust/kcl-lib/tests/sketch_on_face_union/ast.snap +++ b/rust/kcl-lib/tests/sketch_on_face_union/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "trussSupportAngle", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing sketch_on_face_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing sketch_on_face_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "height", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing sketch_on_face_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing sketch_on_face_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing sketch_on_face_union.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing sketch_on_face_union.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,18 +127,22 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -137,6 +153,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -144,9 +161,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -157,11 +176,13 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -174,6 +195,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -187,6 +209,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -197,6 +220,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -209,6 +233,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -220,6 +245,7 @@ description: Result of parsing sketch_on_face_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -230,9 +256,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -243,6 +271,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -250,9 +279,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -270,6 +301,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -278,6 +310,7 @@ description: Result of parsing sketch_on_face_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120", "start": 0, "type": "Literal", @@ -289,6 +322,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -300,6 +334,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -307,6 +342,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -318,9 +354,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -331,6 +369,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -343,6 +382,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -350,6 +390,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12", "start": 0, "type": "Literal", @@ -365,9 +406,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -378,6 +421,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -390,6 +434,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -397,6 +442,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -412,6 +458,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -419,6 +466,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -434,6 +482,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -441,6 +490,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -452,9 +502,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -465,6 +517,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -477,6 +530,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -485,6 +539,7 @@ description: Result of parsing sketch_on_face_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -496,6 +551,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -507,6 +563,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" @@ -514,6 +571,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -529,9 +587,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -542,19 +602,23 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -565,6 +629,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -573,15 +638,18 @@ description: Result of parsing sketch_on_face_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -594,6 +662,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -607,6 +676,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -620,6 +690,7 @@ description: Result of parsing sketch_on_face_union.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -629,14 +700,17 @@ description: Result of parsing sketch_on_face_union.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -654,9 +728,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -668,6 +744,7 @@ description: Result of parsing sketch_on_face_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -678,9 +755,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -691,6 +770,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -698,9 +778,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -718,6 +800,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -729,9 +812,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -741,10 +826,12 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -764,9 +851,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -777,6 +866,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -789,6 +879,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -797,13 +888,16 @@ description: Result of parsing sketch_on_face_union.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -814,6 +908,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -821,9 +916,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag001", "start": 0, "type": "Identifier" @@ -834,14 +931,17 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -861,9 +961,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -874,6 +976,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -886,18 +989,22 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -908,12 +1015,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -925,6 +1034,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -933,6 +1043,7 @@ description: Result of parsing sketch_on_face_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -944,6 +1055,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -955,9 +1067,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -968,19 +1082,23 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -991,12 +1109,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1005,12 +1125,14 @@ description: Result of parsing sketch_on_face_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1027,11 +1149,13 @@ description: Result of parsing sketch_on_face_union.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1044,6 +1168,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile003", "start": 0, "type": "Identifier" @@ -1057,6 +1182,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1071,6 +1197,7 @@ description: Result of parsing sketch_on_face_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -1082,19 +1209,23 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1112,9 +1243,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1126,6 +1259,7 @@ description: Result of parsing sketch_on_face_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1136,9 +1270,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1149,6 +1285,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1156,9 +1293,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -1176,6 +1315,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1188,9 +1328,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1202,15 +1344,18 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1230,9 +1375,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1243,6 +1390,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1255,6 +1403,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1263,13 +1412,16 @@ description: Result of parsing sketch_on_face_union.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -1280,6 +1432,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1287,9 +1440,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag001", "start": 0, "type": "Identifier" @@ -1300,14 +1455,17 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1327,9 +1485,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1340,6 +1500,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1352,18 +1513,22 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -1374,12 +1539,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1391,6 +1558,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1398,6 +1566,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "205", "start": 0, "type": "Literal", @@ -1413,9 +1582,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1426,19 +1597,23 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1449,12 +1624,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -1463,12 +1640,14 @@ description: Result of parsing sketch_on_face_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1485,11 +1664,13 @@ description: Result of parsing sketch_on_face_union.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1502,6 +1683,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile004", "start": 0, "type": "Identifier" @@ -1513,6 +1695,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1521,9 +1704,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -1539,9 +1724,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1552,6 +1739,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1559,9 +1747,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -1572,11 +1762,13 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1591,6 +1783,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -1599,9 +1792,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile003", "start": 0, "type": "Identifier" @@ -1617,9 +1812,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -1630,6 +1827,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1637,9 +1835,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -1650,6 +1850,7 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1662,6 +1863,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body001", "start": 0, "type": "Identifier" @@ -1673,6 +1875,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1680,6 +1883,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1695,9 +1899,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1708,6 +1914,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1715,9 +1922,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -1728,11 +1937,13 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1745,18 +1956,22 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1767,6 +1982,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1777,6 +1993,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1784,6 +2001,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -1799,9 +2017,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1812,6 +2032,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1819,9 +2040,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1833,11 +2056,13 @@ description: Result of parsing sketch_on_face_union.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1850,6 +2075,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile006", "start": 0, "type": "Identifier" @@ -1863,6 +2089,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1880,9 +2107,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -1892,10 +2121,12 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1909,10 +2140,12 @@ description: Result of parsing sketch_on_face_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1929,6 +2162,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -1940,6 +2174,7 @@ description: Result of parsing sketch_on_face_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1950,9 +2185,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1963,6 +2200,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1970,9 +2208,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1990,6 +2230,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1997,6 +2238,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -2012,6 +2254,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2019,6 +2262,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -2034,9 +2278,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2047,6 +2293,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2059,6 +2306,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2067,6 +2315,7 @@ description: Result of parsing sketch_on_face_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -2078,6 +2327,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2089,6 +2339,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2096,6 +2347,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2111,9 +2363,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2124,6 +2378,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2136,6 +2391,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2143,6 +2399,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "210", "start": 0, "type": "Literal", @@ -2158,18 +2415,22 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2180,12 +2441,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2197,9 +2460,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2210,19 +2475,23 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2233,12 +2502,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2251,6 +2522,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2258,6 +2530,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -2273,9 +2546,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2286,12 +2561,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2300,15 +2577,18 @@ description: Result of parsing sketch_on_face_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2321,6 +2601,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile007", "start": 0, "type": "Identifier" @@ -2334,6 +2615,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2352,9 +2634,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "thickness", "start": 0, "type": "Identifier" @@ -2366,15 +2650,18 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2388,10 +2675,12 @@ description: Result of parsing sketch_on_face_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2408,6 +2697,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14", "start": 0, "type": "Literal", @@ -2419,6 +2709,7 @@ description: Result of parsing sketch_on_face_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2429,9 +2720,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2442,6 +2735,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2449,9 +2743,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -2469,6 +2765,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2476,6 +2773,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -2491,6 +2789,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2498,6 +2797,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -2513,9 +2813,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2526,6 +2828,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2538,6 +2841,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2545,6 +2849,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "205", "start": 0, "type": "Literal", @@ -2560,6 +2865,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2567,6 +2873,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2582,9 +2889,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2595,6 +2904,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2607,6 +2917,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2615,6 +2926,7 @@ description: Result of parsing sketch_on_face_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -2626,6 +2938,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2637,18 +2950,22 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsoluteX", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2659,12 +2976,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2676,9 +2995,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -2689,19 +3010,23 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2712,12 +3037,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2730,6 +3057,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2737,6 +3065,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.8", "start": 0, "type": "Literal", @@ -2752,9 +3081,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2765,12 +3096,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2779,15 +3112,18 @@ description: Result of parsing sketch_on_face_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2800,6 +3136,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "newSketch", "start": 0, "type": "Identifier" @@ -2814,9 +3151,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "body001", "start": 0, "type": "Identifier" @@ -2826,14 +3165,17 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile006", "start": 0, "type": "Identifier" @@ -2847,14 +3189,17 @@ description: Result of parsing sketch_on_face_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile007", "start": 0, "type": "Identifier" @@ -2868,11 +3213,13 @@ description: Result of parsing sketch_on_face_union.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2885,6 +3232,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg001Sketch", "start": 0, "type": "Identifier" @@ -2896,6 +3244,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -2904,9 +3253,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bottomFace", "start": 0, "type": "Identifier" @@ -2922,9 +3273,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2935,6 +3288,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2942,9 +3296,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "newSketch", "start": 0, "type": "Identifier" @@ -2955,11 +3311,13 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2972,6 +3330,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legProfile001", "start": 0, "type": "Identifier" @@ -2985,6 +3344,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2996,6 +3356,7 @@ description: Result of parsing sketch_on_face_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -3007,6 +3368,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3015,6 +3377,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3026,6 +3389,7 @@ description: Result of parsing sketch_on_face_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3036,9 +3400,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3049,6 +3415,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3056,9 +3423,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg001Sketch", "start": 0, "type": "Identifier" @@ -3076,6 +3445,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3083,6 +3453,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3098,9 +3469,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3111,12 +3484,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3129,6 +3504,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3136,6 +3512,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3151,9 +3528,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3164,12 +3543,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3182,18 +3563,22 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3204,12 +3589,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3221,9 +3608,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3234,25 +3623,30 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3263,12 +3657,14 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3277,15 +3673,18 @@ description: Result of parsing sketch_on_face_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3298,6 +3697,7 @@ description: Result of parsing sketch_on_face_union.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "leg001", "start": 0, "type": "Identifier" @@ -3311,6 +3711,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3318,6 +3719,7 @@ description: Result of parsing sketch_on_face_union.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "48", "start": 0, "type": "Literal", @@ -3333,9 +3735,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3346,6 +3750,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3353,9 +3758,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "legProfile001", "start": 0, "type": "Identifier" @@ -3373,6 +3780,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3383,6 +3791,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3395,6 +3804,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3407,6 +3817,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -3418,6 +3829,7 @@ description: Result of parsing sketch_on_face_union.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3428,6 +3840,7 @@ description: Result of parsing sketch_on_face_union.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -3436,6 +3849,7 @@ description: Result of parsing sketch_on_face_union.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -3447,6 +3861,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -3458,9 +3873,11 @@ description: Result of parsing sketch_on_face_union.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -3471,6 +3888,7 @@ description: Result of parsing sketch_on_face_union.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3479,15 +3897,18 @@ description: Result of parsing sketch_on_face_union.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3499,9 +3920,11 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3513,19 +3936,23 @@ description: Result of parsing sketch_on_face_union.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -3541,12 +3968,14 @@ description: Result of parsing sketch_on_face_union.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3558,6 +3987,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3569,6 +3999,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3580,6 +4011,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3591,6 +4023,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3602,6 +4035,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3613,6 +4047,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3624,6 +4059,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3635,6 +4071,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3646,6 +4083,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3658,6 +4096,7 @@ description: Result of parsing sketch_on_face_union.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/sketch_on_face_union/program_memory.snap b/rust/kcl-lib/tests/sketch_on_face_union/program_memory.snap index 1ef44a65e..9e21cd077 100644 --- a/rust/kcl-lib/tests/sketch_on_face_union/program_memory.snap +++ b/rust/kcl-lib/tests/sketch_on_face_union/program_memory.snap @@ -17,6 +17,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -37,6 +38,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -74,6 +76,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -118,6 +121,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -411,6 +415,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -431,6 +436,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -468,6 +474,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -512,6 +519,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -707,6 +715,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -727,6 +736,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -764,6 +774,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -808,6 +819,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -1053,6 +1065,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -1073,6 +1086,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -1110,6 +1124,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -1154,6 +1169,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -1321,6 +1337,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -1341,6 +1358,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -1378,6 +1396,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -1422,6 +1441,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -1565,6 +1585,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -1609,6 +1630,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" @@ -2020,6 +2042,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 220, "end": 231, + "moduleId": 0, "start": 220, "type": "TagDeclarator", "value": "bottomFace" @@ -2064,6 +2087,7 @@ description: Variables in memory after executing sketch_on_face_union.kcl "tag": { "commentStart": 309, "end": 316, + "moduleId": 0, "start": 309, "type": "TagDeclarator", "value": "tag001" diff --git a/rust/kcl-lib/tests/spheres/ast.snap b/rust/kcl-lib/tests/spheres/ast.snap index 65f698841..9a23dcbe3 100644 --- a/rust/kcl-lib/tests/spheres/ast.snap +++ b/rust/kcl-lib/tests/spheres/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing spheres.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing spheres.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing spheres.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -44,13 +48,16 @@ description: Result of parsing spheres.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -61,6 +68,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -68,9 +76,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -88,6 +98,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -103,9 +114,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -117,15 +130,18 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -142,6 +158,7 @@ description: Result of parsing spheres.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -153,6 +170,7 @@ description: Result of parsing spheres.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -163,9 +181,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -188,6 +209,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -196,9 +218,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -214,9 +238,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -227,6 +253,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -239,6 +266,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -246,6 +274,7 @@ description: Result of parsing spheres.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -261,6 +290,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -268,6 +298,7 @@ description: Result of parsing spheres.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180.0", "start": 0, "type": "Literal", @@ -283,6 +314,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -294,9 +326,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -306,10 +340,12 @@ description: Result of parsing spheres.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -329,9 +365,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -342,19 +380,23 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -365,6 +407,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -377,6 +420,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -385,9 +429,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -403,9 +449,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -416,6 +464,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -424,10 +473,12 @@ description: Result of parsing spheres.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -438,13 +489,16 @@ description: Result of parsing spheres.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -455,6 +509,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -462,9 +517,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -482,6 +539,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -492,6 +550,7 @@ description: Result of parsing spheres.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -504,6 +563,7 @@ description: Result of parsing spheres.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -515,6 +575,7 @@ description: Result of parsing spheres.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -525,9 +586,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -538,6 +601,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -550,6 +614,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -558,9 +623,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -576,9 +643,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -589,6 +658,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -601,6 +671,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -608,6 +679,7 @@ description: Result of parsing spheres.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90.0", "start": 0, "type": "Literal", @@ -623,6 +695,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -630,6 +703,7 @@ description: Result of parsing spheres.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270.0", "start": 0, "type": "Literal", @@ -645,6 +719,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -656,9 +731,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -668,10 +745,12 @@ description: Result of parsing spheres.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -691,9 +770,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -704,19 +785,23 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -727,6 +812,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -739,6 +825,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -747,9 +834,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -765,9 +854,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -778,6 +869,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -790,6 +882,7 @@ description: Result of parsing spheres.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -801,9 +894,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "diameter", "start": 0, "type": "Identifier" @@ -813,10 +908,12 @@ description: Result of parsing spheres.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -836,9 +933,11 @@ description: Result of parsing spheres.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -849,6 +948,7 @@ description: Result of parsing spheres.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -857,10 +957,12 @@ description: Result of parsing spheres.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -868,12 +970,14 @@ description: Result of parsing spheres.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -885,6 +989,7 @@ description: Result of parsing spheres.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/ssi_pattern/ast.snap b/rust/kcl-lib/tests/ssi_pattern/ast.snap index 71d0d0c2c..43c89a28e 100644 --- a/rust/kcl-lib/tests/ssi_pattern/ast.snap +++ b/rust/kcl-lib/tests/ssi_pattern/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing ssi_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing ssi_pattern.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -75,6 +83,7 @@ description: Result of parsing ssi_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4.35", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -95,6 +105,7 @@ description: Result of parsing ssi_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.26", "start": 0, "type": "Literal", @@ -106,6 +117,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -113,6 +125,7 @@ description: Result of parsing ssi_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -123,9 +136,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -136,6 +151,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,6 +164,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing ssi_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.2", "start": 0, "type": "Literal", @@ -170,9 +188,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -183,6 +203,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -195,6 +216,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -205,6 +227,7 @@ description: Result of parsing ssi_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.54", "start": 0, "type": "Literal", @@ -218,6 +241,7 @@ description: Result of parsing ssi_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03", "start": 0, "type": "Literal", @@ -229,6 +253,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -236,6 +261,7 @@ description: Result of parsing ssi_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -246,9 +272,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -259,6 +287,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -271,6 +300,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -281,6 +311,7 @@ description: Result of parsing ssi_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.4", "start": 0, "type": "Literal", @@ -293,6 +324,7 @@ description: Result of parsing ssi_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.61", "start": 0, "type": "Literal", @@ -304,6 +336,7 @@ description: Result of parsing ssi_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -314,9 +347,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -327,6 +362,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -339,6 +375,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -347,6 +384,7 @@ description: Result of parsing ssi_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "26.76", "start": 0, "type": "Literal", @@ -358,6 +396,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -369,9 +408,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -382,6 +423,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -394,6 +436,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -402,13 +445,16 @@ description: Result of parsing ssi_pattern.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -419,25 +465,30 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -448,12 +499,14 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -461,6 +514,7 @@ description: Result of parsing ssi_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -471,6 +525,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -478,6 +533,7 @@ description: Result of parsing ssi_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -489,9 +545,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -502,19 +560,23 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -525,6 +587,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -533,15 +596,18 @@ description: Result of parsing ssi_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -554,6 +620,7 @@ description: Result of parsing ssi_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -565,6 +632,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -572,6 +640,7 @@ description: Result of parsing ssi_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -587,9 +656,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -600,6 +671,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -607,9 +679,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -620,11 +694,13 @@ description: Result of parsing ssi_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -637,6 +713,7 @@ description: Result of parsing ssi_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -650,6 +727,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -658,9 +736,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -676,9 +756,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -689,6 +771,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -696,9 +779,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -716,6 +801,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -727,6 +813,7 @@ description: Result of parsing ssi_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.08", "start": 0, "type": "Literal", @@ -738,6 +825,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -746,6 +834,7 @@ description: Result of parsing ssi_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "47.7", "start": 0, "type": "Literal", @@ -757,6 +846,7 @@ description: Result of parsing ssi_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -767,6 +857,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -774,6 +865,7 @@ description: Result of parsing ssi_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.4", "start": 0, "type": "Literal", @@ -789,9 +881,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -802,6 +896,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -814,6 +909,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -821,6 +917,7 @@ description: Result of parsing ssi_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -836,6 +933,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -843,6 +941,7 @@ description: Result of parsing ssi_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -858,6 +957,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -868,6 +968,7 @@ description: Result of parsing ssi_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -880,6 +981,7 @@ description: Result of parsing ssi_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -891,6 +993,7 @@ description: Result of parsing ssi_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -901,9 +1004,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -914,6 +1019,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -926,6 +1032,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -933,6 +1040,7 @@ description: Result of parsing ssi_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -948,6 +1056,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -955,6 +1064,7 @@ description: Result of parsing ssi_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -970,6 +1080,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -980,6 +1091,7 @@ description: Result of parsing ssi_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -993,6 +1105,7 @@ description: Result of parsing ssi_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1004,6 +1117,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1011,6 +1125,7 @@ description: Result of parsing ssi_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1021,9 +1136,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear2d", "start": 0, "type": "Identifier" @@ -1034,6 +1151,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1046,6 +1164,7 @@ description: Result of parsing ssi_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1054,6 +1173,7 @@ description: Result of parsing ssi_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -1065,6 +1185,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1076,9 +1197,11 @@ description: Result of parsing ssi_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1089,6 +1212,7 @@ description: Result of parsing ssi_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1097,12 +1221,14 @@ description: Result of parsing ssi_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "2": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1119,11 +1245,13 @@ description: Result of parsing ssi_pattern.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1131,12 +1259,14 @@ description: Result of parsing ssi_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1148,6 +1278,7 @@ description: Result of parsing ssi_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/ssi_pattern/program_memory.snap b/rust/kcl-lib/tests/ssi_pattern/program_memory.snap index ba37b7294..3628131e3 100644 --- a/rust/kcl-lib/tests/ssi_pattern/program_memory.snap +++ b/rust/kcl-lib/tests/ssi_pattern/program_memory.snap @@ -45,6 +45,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -149,6 +150,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -355,6 +357,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -558,6 +561,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -662,6 +666,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -906,6 +911,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -1010,6 +1016,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -1254,6 +1261,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -1358,6 +1366,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -1602,6 +1611,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -1706,6 +1716,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -1950,6 +1961,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -2054,6 +2066,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -2298,6 +2311,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -2402,6 +2416,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -2646,6 +2661,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -2750,6 +2766,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -2994,6 +3011,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -3098,6 +3116,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -3342,6 +3361,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -3446,6 +3466,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -3690,6 +3711,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -3794,6 +3816,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -4038,6 +4061,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -4142,6 +4166,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -4386,6 +4411,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -4490,6 +4516,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -4734,6 +4761,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -4838,6 +4866,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -5082,6 +5111,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -5186,6 +5216,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -5430,6 +5461,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -5534,6 +5566,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -5778,6 +5811,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -5882,6 +5916,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -6126,6 +6161,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -6230,6 +6266,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -6474,6 +6511,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -6578,6 +6616,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -6822,6 +6861,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -6926,6 +6966,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -7170,6 +7211,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -7274,6 +7316,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -7518,6 +7561,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -7622,6 +7666,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -7866,6 +7911,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -7970,6 +8016,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -8214,6 +8261,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -8318,6 +8366,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -8562,6 +8611,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -8666,6 +8716,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -8910,6 +8961,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -9014,6 +9066,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -9258,6 +9311,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -9362,6 +9416,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -9606,6 +9661,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -9710,6 +9766,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -9954,6 +10011,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -10058,6 +10116,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -10302,6 +10361,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -10406,6 +10466,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -10650,6 +10711,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" @@ -10754,6 +10816,7 @@ description: Variables in memory after executing ssi_pattern.kcl "tag": { "commentStart": 271, "end": 277, + "moduleId": 0, "start": 271, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/subtract_cylinder_from_cube/ast.snap b/rust/kcl-lib/tests/subtract_cylinder_from_cube/ast.snap index 7257d57e7..8db37d044 100644 --- a/rust/kcl-lib/tests/subtract_cylinder_from_cube/ast.snap +++ b/rust/kcl-lib/tests/subtract_cylinder_from_cube/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -24,13 +25,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -41,6 +45,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48,9 +53,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -68,6 +75,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -82,13 +90,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -101,6 +112,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -114,10 +126,12 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -138,13 +152,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -157,6 +174,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -170,10 +188,12 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -189,6 +209,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -199,9 +220,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -212,6 +235,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -224,6 +248,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -238,13 +263,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -257,6 +285,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -270,10 +299,12 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -294,13 +325,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -313,6 +347,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -326,10 +361,12 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -345,6 +382,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -355,9 +393,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -368,6 +408,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -380,6 +421,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -394,13 +436,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -413,6 +458,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -426,10 +472,12 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -450,13 +498,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -469,6 +520,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -482,10 +534,12 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -501,6 +555,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -511,9 +566,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -524,6 +581,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -536,6 +594,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -550,13 +609,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -569,6 +631,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -582,10 +645,12 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -606,13 +671,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -625,6 +693,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -638,10 +707,12 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -657,6 +728,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -667,9 +739,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -680,19 +754,23 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -703,6 +781,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -715,6 +794,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -722,6 +802,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -737,9 +818,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -750,6 +833,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -758,12 +842,14 @@ description: Result of parsing subtract_cylinder_from_cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -771,16 +857,19 @@ description: Result of parsing subtract_cylinder_from_cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -791,11 +880,13 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -808,6 +899,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -819,6 +911,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -829,6 +922,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -841,6 +935,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -852,6 +947,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -862,9 +958,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -875,16 +973,19 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -897,6 +998,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -904,13 +1006,16 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -921,6 +1026,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -928,9 +1034,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -948,6 +1056,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -958,6 +1067,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -970,6 +1080,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -981,6 +1092,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -991,6 +1103,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -998,6 +1111,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1013,9 +1127,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1026,6 +1142,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1038,6 +1155,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1045,6 +1163,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "34", "start": 0, "type": "Literal", @@ -1060,9 +1179,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1073,6 +1194,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1085,6 +1207,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1092,6 +1215,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.14", "start": 0, "type": "Literal", @@ -1107,9 +1231,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1120,6 +1246,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1128,15 +1255,18 @@ description: Result of parsing subtract_cylinder_from_cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1149,6 +1279,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fullPart", "start": 0, "type": "Identifier" @@ -1160,6 +1291,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1171,9 +1303,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -1185,6 +1319,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1195,9 +1330,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1208,6 +1345,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1218,9 +1356,11 @@ description: Result of parsing subtract_cylinder_from_cube.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -1232,16 +1372,19 @@ description: Result of parsing subtract_cylinder_from_cube.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1249,12 +1392,14 @@ description: Result of parsing subtract_cylinder_from_cube.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1266,6 +1411,7 @@ description: Result of parsing subtract_cylinder_from_cube.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_doesnt_need_brackets/ast.snap b/rust/kcl-lib/tests/subtract_doesnt_need_brackets/ast.snap index f25aae87f..ad0e8ef4b 100644 --- a/rust/kcl-lib/tests/subtract_doesnt_need_brackets/ast.snap +++ b/rust/kcl-lib/tests/subtract_doesnt_need_brackets/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -24,13 +25,16 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -41,6 +45,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48,9 +53,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -68,6 +75,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -82,13 +90,16 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -101,6 +112,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -114,14 +126,17 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -142,13 +157,16 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -161,6 +179,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -174,14 +193,17 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -197,6 +219,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -207,9 +230,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -220,6 +245,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -232,6 +258,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -246,13 +273,16 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -265,6 +295,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -278,14 +309,17 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -306,13 +340,16 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -325,6 +362,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -338,14 +376,17 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -361,6 +402,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -371,9 +413,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -384,6 +428,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -396,6 +441,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -410,13 +456,16 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -429,6 +478,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -442,14 +492,17 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -470,13 +523,16 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -489,6 +545,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -502,14 +559,17 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -525,6 +585,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -535,9 +596,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -548,6 +611,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -560,6 +624,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -574,13 +639,16 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -593,6 +661,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -606,14 +675,17 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -634,13 +706,16 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -653,6 +728,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -666,14 +742,17 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -689,6 +768,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -699,9 +779,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -712,19 +794,23 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -735,6 +821,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -747,6 +834,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -754,6 +842,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -769,9 +858,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -782,6 +873,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -790,12 +882,14 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -803,16 +897,19 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -823,6 +920,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -833,11 +931,13 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -850,6 +950,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -861,6 +962,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -871,6 +973,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -883,6 +986,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -894,6 +998,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -904,6 +1009,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -911,6 +1017,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -926,9 +1033,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -939,16 +1048,19 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -961,6 +1073,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -974,6 +1087,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -984,6 +1098,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -996,6 +1111,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1007,6 +1123,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1017,6 +1134,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -1024,6 +1142,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1039,9 +1158,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -1052,6 +1173,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1064,6 +1186,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1071,6 +1194,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1086,9 +1210,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1099,6 +1225,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1107,15 +1234,18 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1128,6 +1258,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtractedPart", "start": 0, "type": "Identifier" @@ -1139,6 +1270,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1147,9 +1279,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -1165,9 +1299,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1178,6 +1314,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1185,9 +1322,11 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -1198,11 +1337,13 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1210,12 +1351,14 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1227,6 +1370,7 @@ description: Result of parsing subtract_doesnt_need_brackets.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression00/ast.snap b/rust/kcl-lib/tests/subtract_regression00/ast.snap index 5de9e8bd2..699bff27b 100644 --- a/rust/kcl-lib/tests/subtract_regression00/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression00/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression00.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression00.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression00.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -96,6 +107,7 @@ description: Result of parsing subtract_regression00.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -116,6 +129,7 @@ description: Result of parsing subtract_regression00.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25", "start": 0, "type": "Literal", @@ -127,6 +141,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -134,6 +149,7 @@ description: Result of parsing subtract_regression00.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -144,9 +160,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -157,6 +175,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -164,9 +183,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -184,6 +205,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -191,6 +213,7 @@ description: Result of parsing subtract_regression00.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -206,9 +229,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -219,6 +244,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -231,6 +257,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -238,6 +265,7 @@ description: Result of parsing subtract_regression00.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -253,9 +281,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -266,6 +296,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -278,6 +309,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -286,6 +318,7 @@ description: Result of parsing subtract_regression00.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -297,6 +330,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -308,9 +342,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -321,6 +357,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -333,6 +370,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -341,6 +379,7 @@ description: Result of parsing subtract_regression00.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -352,6 +391,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -363,9 +403,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -376,19 +418,23 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -399,6 +445,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -407,15 +454,18 @@ description: Result of parsing subtract_regression00.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -428,6 +478,7 @@ description: Result of parsing subtract_regression00.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -439,6 +490,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -446,6 +498,7 @@ description: Result of parsing subtract_regression00.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -461,6 +514,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -468,6 +522,7 @@ description: Result of parsing subtract_regression00.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -483,9 +538,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -496,6 +553,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -503,9 +561,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -516,11 +576,13 @@ description: Result of parsing subtract_regression00.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -533,18 +595,22 @@ description: Result of parsing subtract_regression00.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -555,6 +621,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -565,6 +632,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -572,6 +640,7 @@ description: Result of parsing subtract_regression00.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "55", "start": 0, "type": "Literal", @@ -587,9 +656,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -600,6 +671,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -607,9 +679,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -621,11 +695,13 @@ description: Result of parsing subtract_regression00.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -638,6 +714,7 @@ description: Result of parsing subtract_regression00.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -649,6 +726,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -659,6 +737,7 @@ description: Result of parsing subtract_regression00.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -671,6 +750,7 @@ description: Result of parsing subtract_regression00.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -682,6 +762,7 @@ description: Result of parsing subtract_regression00.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -692,6 +773,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -699,6 +781,7 @@ description: Result of parsing subtract_regression00.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.5", "start": 0, "type": "Literal", @@ -714,9 +797,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -727,6 +812,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -734,9 +820,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -747,11 +835,13 @@ description: Result of parsing subtract_regression00.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -764,6 +854,7 @@ description: Result of parsing subtract_regression00.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -775,6 +866,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -783,6 +875,7 @@ description: Result of parsing subtract_regression00.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -794,6 +887,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -805,9 +899,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -818,6 +914,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -825,9 +922,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -838,11 +937,13 @@ description: Result of parsing subtract_regression00.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -855,6 +956,7 @@ description: Result of parsing subtract_regression00.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -866,6 +968,7 @@ description: Result of parsing subtract_regression00.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -874,9 +977,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -892,9 +997,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -905,6 +1012,7 @@ description: Result of parsing subtract_regression00.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -912,9 +1020,11 @@ description: Result of parsing subtract_regression00.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -925,11 +1035,13 @@ description: Result of parsing subtract_regression00.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -941,9 +1053,11 @@ description: Result of parsing subtract_regression00.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -955,19 +1069,23 @@ description: Result of parsing subtract_regression00.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -983,12 +1101,14 @@ description: Result of parsing subtract_regression00.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1000,6 +1120,7 @@ description: Result of parsing subtract_regression00.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1011,6 +1132,7 @@ description: Result of parsing subtract_regression00.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1022,6 +1144,7 @@ description: Result of parsing subtract_regression00.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1033,6 +1156,7 @@ description: Result of parsing subtract_regression00.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1044,6 +1168,7 @@ description: Result of parsing subtract_regression00.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1056,6 +1181,7 @@ description: Result of parsing subtract_regression00.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression01/ast.snap b/rust/kcl-lib/tests/subtract_regression01/ast.snap index 1e57c2649..b2c7c90c9 100644 --- a/rust/kcl-lib/tests/subtract_regression01/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression01/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression01.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression01.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression01.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -96,6 +107,7 @@ description: Result of parsing subtract_regression01.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.913", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -116,6 +129,7 @@ description: Result of parsing subtract_regression01.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.587", "start": 0, "type": "Literal", @@ -127,6 +141,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -134,6 +149,7 @@ description: Result of parsing subtract_regression01.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -144,9 +160,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -157,6 +175,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -164,9 +183,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -184,6 +205,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -191,6 +213,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.913", "start": 0, "type": "Literal", @@ -206,9 +229,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -219,6 +244,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -231,6 +257,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -239,6 +266,7 @@ description: Result of parsing subtract_regression01.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -250,6 +278,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -261,6 +290,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -268,6 +298,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "227.157002", "start": 0, "type": "Literal", @@ -283,6 +314,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -290,6 +322,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.587", "start": 0, "type": "Literal", @@ -305,9 +338,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -318,6 +353,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -330,6 +366,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -340,6 +377,7 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.059159", "start": 0, "type": "Literal", @@ -352,6 +390,7 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06379", "start": 0, "type": "Literal", @@ -363,6 +402,7 @@ description: Result of parsing subtract_regression01.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -373,9 +413,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -386,6 +428,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -398,6 +441,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -405,6 +449,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "227.157002", "start": 0, "type": "Literal", @@ -420,6 +465,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -428,6 +474,7 @@ description: Result of parsing subtract_regression01.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -439,6 +486,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -450,6 +498,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -457,6 +506,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -472,9 +522,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -485,6 +537,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -497,6 +550,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -505,6 +559,7 @@ description: Result of parsing subtract_regression01.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.913", "start": 0, "type": "Literal", @@ -516,6 +571,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -527,9 +583,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -540,6 +598,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -552,6 +611,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -560,6 +620,7 @@ description: Result of parsing subtract_regression01.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.087", "start": 0, "type": "Literal", @@ -571,6 +632,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -582,9 +644,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -595,19 +659,23 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -618,6 +686,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -626,15 +695,18 @@ description: Result of parsing subtract_regression01.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -647,6 +719,7 @@ description: Result of parsing subtract_regression01.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -658,6 +731,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -665,6 +739,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -680,6 +755,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -687,6 +763,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -702,9 +779,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -715,6 +794,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -722,9 +802,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -735,11 +817,13 @@ description: Result of parsing subtract_regression01.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -752,18 +836,22 @@ description: Result of parsing subtract_regression01.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -774,6 +862,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -784,6 +873,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -791,6 +881,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -806,9 +897,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -819,6 +912,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -826,9 +920,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -840,11 +936,13 @@ description: Result of parsing subtract_regression01.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -857,6 +955,7 @@ description: Result of parsing subtract_regression01.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -868,6 +967,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -879,6 +979,7 @@ description: Result of parsing subtract_regression01.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.708", "start": 0, "type": "Literal", @@ -890,6 +991,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -898,6 +1000,7 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -909,6 +1012,7 @@ description: Result of parsing subtract_regression01.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -919,6 +1023,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -926,6 +1031,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1025", "start": 0, "type": "Literal", @@ -941,9 +1047,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -954,6 +1062,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -961,9 +1070,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -974,11 +1085,13 @@ description: Result of parsing subtract_regression01.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -991,6 +1104,7 @@ description: Result of parsing subtract_regression01.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1002,6 +1116,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1009,6 +1124,7 @@ description: Result of parsing subtract_regression01.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1024,9 +1140,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1037,6 +1155,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1047,9 +1166,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -1061,16 +1182,19 @@ description: Result of parsing subtract_regression01.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1083,6 +1207,7 @@ description: Result of parsing subtract_regression01.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -1094,6 +1219,7 @@ description: Result of parsing subtract_regression01.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1102,9 +1228,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1120,9 +1248,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1133,6 +1263,7 @@ description: Result of parsing subtract_regression01.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1140,9 +1271,11 @@ description: Result of parsing subtract_regression01.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -1153,11 +1286,13 @@ description: Result of parsing subtract_regression01.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1169,9 +1304,11 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1183,19 +1320,23 @@ description: Result of parsing subtract_regression01.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1211,12 +1352,14 @@ description: Result of parsing subtract_regression01.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1228,6 +1371,7 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1239,6 +1383,7 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1250,6 +1395,7 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1261,6 +1407,7 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1272,6 +1419,7 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1284,6 +1432,7 @@ description: Result of parsing subtract_regression01.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression02/ast.snap b/rust/kcl-lib/tests/subtract_regression02/ast.snap index af2ff1aae..92e7a4a07 100644 --- a/rust/kcl-lib/tests/subtract_regression02/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression02/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression02.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -96,6 +107,7 @@ description: Result of parsing subtract_regression02.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -115,6 +128,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -126,6 +140,7 @@ description: Result of parsing subtract_regression02.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -136,9 +151,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -149,6 +166,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -156,9 +174,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -184,6 +205,7 @@ description: Result of parsing subtract_regression02.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -195,6 +217,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -206,9 +229,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -219,6 +244,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -231,6 +257,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -238,6 +265,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -253,9 +281,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -266,6 +296,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -278,6 +309,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -285,6 +317,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -300,6 +333,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -307,6 +341,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -322,6 +357,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -329,6 +365,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -344,9 +381,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -357,6 +396,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -369,6 +409,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -377,6 +418,7 @@ description: Result of parsing subtract_regression02.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.688", "start": 0, "type": "Literal", @@ -388,6 +430,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -399,9 +442,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -412,6 +457,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -424,6 +470,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -431,6 +478,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -446,6 +494,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -453,6 +502,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "180", "start": 0, "type": "Literal", @@ -468,6 +518,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -475,6 +526,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.312", "start": 0, "type": "Literal", @@ -490,9 +542,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -503,6 +557,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -515,6 +570,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -522,6 +578,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.688", "start": 0, "type": "Literal", @@ -537,9 +594,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -550,6 +609,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -562,6 +622,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -569,6 +630,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -584,6 +646,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -591,6 +654,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -606,6 +670,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -613,6 +678,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -628,9 +694,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -641,19 +709,23 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -664,6 +736,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -672,15 +745,18 @@ description: Result of parsing subtract_regression02.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -693,6 +769,7 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -704,6 +781,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -711,6 +789,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.655", "start": 0, "type": "Literal", @@ -726,6 +805,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -733,6 +813,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.655", "start": 0, "type": "Literal", @@ -748,9 +829,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -761,6 +844,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -768,9 +852,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -781,11 +867,13 @@ description: Result of parsing subtract_regression02.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -798,18 +886,22 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -820,6 +912,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -827,9 +920,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -840,11 +935,13 @@ description: Result of parsing subtract_regression02.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -857,6 +954,7 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -868,6 +966,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -878,6 +977,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -890,6 +990,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -901,6 +1002,7 @@ description: Result of parsing subtract_regression02.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -911,6 +1013,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -918,6 +1021,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.164", "start": 0, "type": "Literal", @@ -933,9 +1037,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -946,6 +1052,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -953,9 +1060,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -966,11 +1075,13 @@ description: Result of parsing subtract_regression02.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -983,6 +1094,7 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -994,6 +1106,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1001,6 +1114,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1016,6 +1130,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -1023,6 +1138,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1038,9 +1154,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1051,6 +1169,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1061,9 +1180,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -1075,16 +1196,19 @@ description: Result of parsing subtract_regression02.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1097,6 +1221,7 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -1108,6 +1233,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1116,9 +1242,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1134,9 +1262,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1147,6 +1277,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1154,9 +1285,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -1167,11 +1300,13 @@ description: Result of parsing subtract_regression02.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1184,18 +1319,22 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1206,6 +1345,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1214,9 +1354,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1228,17 +1370,20 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1251,6 +1396,7 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004Profile000", "start": 0, "type": "Identifier" @@ -1262,6 +1408,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1272,6 +1419,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1284,6 +1432,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1295,6 +1444,7 @@ description: Result of parsing subtract_regression02.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1305,6 +1455,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1312,6 +1463,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.164", "start": 0, "type": "Literal", @@ -1327,9 +1479,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1340,6 +1494,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1347,9 +1502,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -1360,11 +1517,13 @@ description: Result of parsing subtract_regression02.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1377,6 +1536,7 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut001Extrude", "start": 0, "type": "Identifier" @@ -1388,6 +1548,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1395,6 +1556,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -1410,6 +1572,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -1417,6 +1580,7 @@ description: Result of parsing subtract_regression02.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1432,9 +1596,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1445,6 +1611,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1455,9 +1622,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004Profile000", "start": 0, "type": "Identifier" @@ -1469,16 +1638,19 @@ description: Result of parsing subtract_regression02.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1491,6 +1663,7 @@ description: Result of parsing subtract_regression02.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut001", "start": 0, "type": "Identifier" @@ -1502,6 +1675,7 @@ description: Result of parsing subtract_regression02.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1510,9 +1684,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut001Extrude", "start": 0, "type": "Identifier" @@ -1528,9 +1704,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1541,6 +1719,7 @@ description: Result of parsing subtract_regression02.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1548,9 +1727,11 @@ description: Result of parsing subtract_regression02.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -1561,11 +1742,13 @@ description: Result of parsing subtract_regression02.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1577,9 +1760,11 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1591,19 +1776,23 @@ description: Result of parsing subtract_regression02.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1619,12 +1808,14 @@ description: Result of parsing subtract_regression02.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1636,6 +1827,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1647,6 +1839,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1658,6 +1851,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1669,6 +1863,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1680,6 +1875,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1691,6 +1887,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1702,6 +1899,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1713,6 +1911,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1724,6 +1923,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1736,6 +1936,7 @@ description: Result of parsing subtract_regression02.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression03/ast.snap b/rust/kcl-lib/tests/subtract_regression03/ast.snap index f1b016470..c7fa925aa 100644 --- a/rust/kcl-lib/tests/subtract_regression03/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression03/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression03.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile001", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -96,6 +107,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.503704", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -116,6 +129,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.264924", "start": 0, "type": "Literal", @@ -127,6 +141,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -134,6 +149,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -144,9 +160,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -157,6 +175,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -164,9 +183,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -184,6 +205,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -195,6 +217,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.191884", "start": 0, "type": "Literal", @@ -206,6 +229,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -214,6 +238,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.172584", "start": 0, "type": "Literal", @@ -225,6 +250,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -235,9 +261,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -248,6 +276,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -260,6 +289,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -267,6 +297,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "228.031232", "start": 0, "type": "Literal", @@ -282,6 +313,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -289,6 +321,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "105", "start": 0, "type": "Literal", @@ -304,6 +337,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -311,6 +345,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16425", "start": 0, "type": "Literal", @@ -326,9 +361,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -339,6 +376,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -351,6 +389,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -361,6 +400,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.464817", "start": 0, "type": "Literal", @@ -373,6 +413,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.124547", "start": 0, "type": "Literal", @@ -384,6 +425,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -394,9 +436,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -407,6 +451,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -419,6 +464,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -426,6 +472,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "105", "start": 0, "type": "Literal", @@ -441,6 +488,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -448,6 +496,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "75", "start": 0, "type": "Literal", @@ -463,6 +512,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -470,6 +520,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6315", "start": 0, "type": "Literal", @@ -485,9 +536,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -498,6 +551,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -510,6 +564,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -520,6 +575,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.464817", "start": 0, "type": "Literal", @@ -533,6 +589,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.124547", "start": 0, "type": "Literal", @@ -544,6 +601,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -551,6 +609,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -561,9 +620,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -574,6 +635,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -586,6 +648,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -593,6 +656,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "75", "start": 0, "type": "Literal", @@ -608,6 +672,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -616,6 +681,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "37.055012", "start": 0, "type": "Literal", @@ -627,6 +693,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -638,6 +705,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -645,6 +713,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.16425", "start": 0, "type": "Literal", @@ -660,9 +729,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -673,6 +744,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -685,6 +757,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -696,6 +769,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.200323", "start": 0, "type": "Literal", @@ -707,6 +781,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -716,6 +791,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.265308", "start": 0, "type": "Literal", @@ -727,6 +803,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -734,6 +811,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -744,9 +822,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -757,6 +837,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -769,6 +850,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -776,6 +858,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.958", "start": 0, "type": "Literal", @@ -791,6 +874,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -798,6 +882,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.958", "start": 0, "type": "Literal", @@ -813,9 +898,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -826,6 +913,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -834,15 +922,18 @@ description: Result of parsing subtract_regression03.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -855,6 +946,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane000", "start": 0, "type": "Identifier" @@ -862,6 +954,7 @@ description: Result of parsing subtract_regression03.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -869,10 +962,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -882,6 +977,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.503704", "start": 0, "type": "Literal", @@ -893,6 +989,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -902,6 +999,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.264924", "start": 0, "type": "Literal", @@ -913,6 +1011,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -921,6 +1020,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -932,6 +1032,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -943,10 +1044,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -955,6 +1058,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.191884", "start": 0, "type": "Literal", @@ -967,6 +1071,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.172584", "start": 0, "type": "Literal", @@ -979,6 +1084,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -990,6 +1096,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1001,10 +1108,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1013,6 +1122,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1025,6 +1135,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1037,6 +1148,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1048,6 +1160,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1059,10 +1172,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1072,6 +1187,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.191884", "start": 0, "type": "Literal", @@ -1083,6 +1199,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1091,6 +1208,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.172584", "start": 0, "type": "Literal", @@ -1103,6 +1221,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1114,6 +1233,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1124,11 +1244,13 @@ description: Result of parsing subtract_regression03.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1141,18 +1263,22 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1163,6 +1289,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1170,9 +1297,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane000", "start": 0, "type": "Identifier" @@ -1183,11 +1312,13 @@ description: Result of parsing subtract_regression03.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1200,6 +1331,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -1211,6 +1343,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1221,6 +1354,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1233,6 +1367,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1244,6 +1379,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1254,6 +1390,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1261,6 +1398,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0495", "start": 0, "type": "Literal", @@ -1276,9 +1414,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1289,6 +1429,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1296,9 +1437,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -1309,11 +1452,13 @@ description: Result of parsing subtract_regression03.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1326,6 +1471,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepExtrude000", "start": 0, "type": "Identifier" @@ -1337,6 +1483,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -1345,9 +1492,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile001", "start": 0, "type": "Identifier" @@ -1363,9 +1512,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -1376,6 +1527,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1383,9 +1535,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -1396,11 +1550,13 @@ description: Result of parsing subtract_regression03.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1413,6 +1569,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -1420,6 +1577,7 @@ description: Result of parsing subtract_regression03.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1427,10 +1585,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1440,6 +1600,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.503704", "start": 0, "type": "Literal", @@ -1451,6 +1612,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1460,6 +1622,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.28", "start": 0, "type": "Literal", @@ -1471,6 +1634,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1479,6 +1643,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1490,6 +1655,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1501,10 +1667,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1514,6 +1682,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.191884", "start": 0, "type": "Literal", @@ -1525,6 +1694,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1533,6 +1703,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.172584", "start": 0, "type": "Literal", @@ -1545,6 +1716,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1556,6 +1728,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1567,10 +1740,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1579,6 +1754,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1591,6 +1767,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1604,6 +1781,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1615,6 +1793,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1622,6 +1801,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1633,10 +1813,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1646,6 +1828,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.191884", "start": 0, "type": "Literal", @@ -1657,6 +1840,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1665,6 +1849,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.172584", "start": 0, "type": "Literal", @@ -1677,6 +1862,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1688,6 +1874,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1698,11 +1885,13 @@ description: Result of parsing subtract_regression03.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1715,18 +1904,22 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1737,6 +1930,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1744,9 +1938,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane001", "start": 0, "type": "Identifier" @@ -1757,11 +1953,13 @@ description: Result of parsing subtract_regression03.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1774,6 +1972,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -1787,6 +1986,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1797,6 +1997,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1810,6 +2011,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06", "start": 0, "type": "Literal", @@ -1821,6 +2023,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1828,6 +2031,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1838,9 +2042,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1851,6 +2057,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1858,9 +2065,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1878,6 +2087,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1888,6 +2098,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.129019", "start": 0, "type": "Literal", @@ -1900,6 +2111,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12", "start": 0, "type": "Literal", @@ -1911,6 +2123,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1921,9 +2134,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1934,6 +2149,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1946,6 +2162,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1954,6 +2171,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.129019", "start": 0, "type": "Literal", @@ -1965,6 +2183,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1976,9 +2195,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1989,6 +2210,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2001,6 +2223,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2009,6 +2232,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12", "start": 0, "type": "Literal", @@ -2020,6 +2244,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2031,9 +2256,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2044,19 +2271,23 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2067,6 +2298,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2075,15 +2307,18 @@ description: Result of parsing subtract_regression03.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2096,6 +2331,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -2107,6 +2343,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2115,6 +2352,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -2126,6 +2364,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2137,9 +2376,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2150,6 +2391,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2160,9 +2402,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -2174,16 +2418,19 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2196,6 +2443,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -2207,6 +2455,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -2215,9 +2464,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -2233,9 +2484,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -2246,6 +2499,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2253,9 +2507,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepExtrude000", "start": 0, "type": "Identifier" @@ -2266,11 +2522,13 @@ description: Result of parsing subtract_regression03.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2283,6 +2541,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane002", "start": 0, "type": "Identifier" @@ -2290,6 +2549,7 @@ description: Result of parsing subtract_regression03.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -2297,10 +2557,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2309,6 +2571,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.42", "start": 0, "type": "Literal", @@ -2322,6 +2585,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.28", "start": 0, "type": "Literal", @@ -2333,6 +2597,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2341,6 +2606,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2352,6 +2618,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2363,10 +2630,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2376,6 +2645,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.200323", "start": 0, "type": "Literal", @@ -2387,6 +2657,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2396,6 +2667,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.265308", "start": 0, "type": "Literal", @@ -2407,6 +2679,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2415,6 +2688,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2426,6 +2700,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2437,10 +2712,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2449,6 +2726,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2461,6 +2739,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2473,6 +2752,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -2484,6 +2764,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2495,10 +2776,12 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -2507,6 +2790,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.200323", "start": 0, "type": "Literal", @@ -2519,6 +2803,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.265308", "start": 0, "type": "Literal", @@ -2531,6 +2816,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2542,6 +2828,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2552,11 +2839,13 @@ description: Result of parsing subtract_regression03.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2569,18 +2858,22 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2591,6 +2884,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2598,9 +2892,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane002", "start": 0, "type": "Identifier" @@ -2611,11 +2907,13 @@ description: Result of parsing subtract_regression03.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2628,6 +2926,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004Profile000", "start": 0, "type": "Identifier" @@ -2641,6 +2940,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2651,6 +2951,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2664,6 +2965,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.06", "start": 0, "type": "Literal", @@ -2675,6 +2977,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2682,6 +2985,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2692,9 +2996,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -2705,6 +3011,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2712,9 +3019,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -2732,6 +3041,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2739,6 +3049,7 @@ description: Result of parsing subtract_regression03.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12", "start": 0, "type": "Literal", @@ -2754,9 +3065,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2767,6 +3080,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2779,6 +3093,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2787,6 +3102,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.129019", "start": 0, "type": "Literal", @@ -2798,6 +3114,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2809,9 +3126,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2822,6 +3141,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2834,6 +3154,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -2844,6 +3165,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.129019", "start": 0, "type": "Literal", @@ -2857,6 +3179,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.12", "start": 0, "type": "Literal", @@ -2868,6 +3191,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2875,6 +3199,7 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2885,9 +3210,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2898,19 +3225,23 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2921,6 +3252,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2929,15 +3261,18 @@ description: Result of parsing subtract_regression03.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2950,6 +3285,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut001Extrude", "start": 0, "type": "Identifier" @@ -2961,6 +3297,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2969,6 +3306,7 @@ description: Result of parsing subtract_regression03.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -2980,6 +3318,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2991,9 +3330,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3004,6 +3345,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3014,9 +3356,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004Profile000", "start": 0, "type": "Identifier" @@ -3028,16 +3372,19 @@ description: Result of parsing subtract_regression03.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3050,6 +3397,7 @@ description: Result of parsing subtract_regression03.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut001", "start": 0, "type": "Identifier" @@ -3061,6 +3409,7 @@ description: Result of parsing subtract_regression03.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -3069,9 +3418,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut001Extrude", "start": 0, "type": "Identifier" @@ -3087,9 +3438,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -3100,6 +3453,7 @@ description: Result of parsing subtract_regression03.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3107,9 +3461,11 @@ description: Result of parsing subtract_regression03.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -3120,11 +3476,13 @@ description: Result of parsing subtract_regression03.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3136,9 +3494,11 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -3150,19 +3510,23 @@ description: Result of parsing subtract_regression03.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -3178,12 +3542,14 @@ description: Result of parsing subtract_regression03.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3195,6 +3561,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3206,6 +3573,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3217,6 +3585,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3228,6 +3597,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3239,6 +3609,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3250,6 +3621,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3261,6 +3633,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3272,6 +3645,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3283,6 +3657,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3294,6 +3669,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3305,6 +3681,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3316,6 +3693,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3327,6 +3705,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3338,6 +3717,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3350,6 +3730,7 @@ description: Result of parsing subtract_regression03.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression04/ast.snap b/rust/kcl-lib/tests/subtract_regression04/ast.snap index 3d351fadf..5aa9ebff6 100644 --- a/rust/kcl-lib/tests/subtract_regression04/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression04/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression04.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression04.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression04.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.46875", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing subtract_regression04.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing subtract_regression04.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09375", "start": 0, "type": "Literal", @@ -187,6 +208,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -198,9 +220,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -211,6 +235,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -223,6 +248,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -231,6 +257,7 @@ description: Result of parsing subtract_regression04.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -242,6 +269,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -253,9 +281,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -266,6 +296,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -278,6 +309,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -285,6 +317,7 @@ description: Result of parsing subtract_regression04.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.09375", "start": 0, "type": "Literal", @@ -300,9 +333,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -313,6 +348,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -325,6 +361,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -335,6 +372,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03125", "start": 0, "type": "Literal", @@ -347,6 +385,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.018042", "start": 0, "type": "Literal", @@ -358,6 +397,7 @@ description: Result of parsing subtract_regression04.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -368,9 +408,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -381,6 +423,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -393,6 +436,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -400,6 +444,7 @@ description: Result of parsing subtract_regression04.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.963916", "start": 0, "type": "Literal", @@ -415,9 +460,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -428,6 +475,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -440,6 +488,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -451,6 +500,7 @@ description: Result of parsing subtract_regression04.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.03125", "start": 0, "type": "Literal", @@ -462,6 +512,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -470,6 +521,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.018042", "start": 0, "type": "Literal", @@ -481,6 +533,7 @@ description: Result of parsing subtract_regression04.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -491,9 +544,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -504,19 +559,23 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -527,6 +586,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -535,15 +595,18 @@ description: Result of parsing subtract_regression04.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -556,6 +619,7 @@ description: Result of parsing subtract_regression04.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve000", "start": 0, "type": "Identifier" @@ -567,6 +631,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -575,9 +640,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -593,6 +660,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -600,6 +668,7 @@ description: Result of parsing subtract_regression04.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -615,9 +684,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -628,6 +699,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -635,9 +707,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -648,11 +722,13 @@ description: Result of parsing subtract_regression04.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -665,18 +741,22 @@ description: Result of parsing subtract_regression04.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -687,6 +767,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -694,9 +775,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -707,11 +790,13 @@ description: Result of parsing subtract_regression04.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -724,6 +809,7 @@ description: Result of parsing subtract_regression04.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -735,6 +821,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -745,6 +832,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -757,6 +845,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -768,6 +857,7 @@ description: Result of parsing subtract_regression04.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -778,6 +868,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -785,6 +876,7 @@ description: Result of parsing subtract_regression04.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.15", "start": 0, "type": "Literal", @@ -800,9 +892,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -813,6 +907,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -820,9 +915,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -833,11 +930,13 @@ description: Result of parsing subtract_regression04.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -850,6 +949,7 @@ description: Result of parsing subtract_regression04.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -861,6 +961,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -868,6 +969,7 @@ description: Result of parsing subtract_regression04.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -883,6 +985,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -890,6 +993,7 @@ description: Result of parsing subtract_regression04.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -905,9 +1009,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -918,6 +1024,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -928,9 +1035,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -942,16 +1051,19 @@ description: Result of parsing subtract_regression04.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -964,6 +1076,7 @@ description: Result of parsing subtract_regression04.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -975,6 +1088,7 @@ description: Result of parsing subtract_regression04.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -983,9 +1097,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1001,9 +1117,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1014,6 +1132,7 @@ description: Result of parsing subtract_regression04.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1021,9 +1140,11 @@ description: Result of parsing subtract_regression04.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve000", "start": 0, "type": "Identifier" @@ -1034,11 +1155,13 @@ description: Result of parsing subtract_regression04.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1050,9 +1173,11 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1064,19 +1189,23 @@ description: Result of parsing subtract_regression04.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1092,12 +1221,14 @@ description: Result of parsing subtract_regression04.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1109,6 +1240,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1120,6 +1252,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1131,6 +1264,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1142,6 +1276,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1153,6 +1288,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1165,6 +1301,7 @@ description: Result of parsing subtract_regression04.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression05/ast.snap b/rust/kcl-lib/tests/subtract_regression05/ast.snap index eed852d5d..d6a948a9d 100644 --- a/rust/kcl-lib/tests/subtract_regression05/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression05/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression05.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression05.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression05.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing subtract_regression05.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -175,6 +195,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.937", "start": 0, "type": "Literal", @@ -190,9 +211,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -203,6 +226,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -215,6 +239,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -222,6 +247,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -237,6 +263,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -244,6 +271,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -259,6 +287,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -266,6 +295,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.313", "start": 0, "type": "Literal", @@ -281,9 +311,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -294,6 +326,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -306,6 +339,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -313,6 +347,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.937", "start": 0, "type": "Literal", @@ -328,9 +363,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -341,6 +378,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -349,15 +387,18 @@ description: Result of parsing subtract_regression05.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -370,18 +411,22 @@ description: Result of parsing subtract_regression05.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -392,6 +437,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -399,9 +445,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -412,11 +460,13 @@ description: Result of parsing subtract_regression05.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -429,6 +479,7 @@ description: Result of parsing subtract_regression05.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -442,6 +493,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -452,6 +504,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -464,6 +517,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -475,6 +529,7 @@ description: Result of parsing subtract_regression05.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -485,6 +540,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -492,6 +548,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1875", "start": 0, "type": "Literal", @@ -507,9 +564,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -520,6 +579,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -527,9 +587,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -547,6 +609,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -558,6 +621,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -568,6 +632,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -580,6 +645,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -591,6 +657,7 @@ description: Result of parsing subtract_regression05.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -601,6 +668,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -608,6 +676,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9375", "start": 0, "type": "Literal", @@ -623,9 +692,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -636,6 +707,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -647,9 +719,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -660,6 +734,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -668,15 +743,18 @@ description: Result of parsing subtract_regression05.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -689,6 +767,7 @@ description: Result of parsing subtract_regression05.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepExtrude000", "start": 0, "type": "Identifier" @@ -700,6 +779,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -708,9 +788,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -726,9 +808,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -739,6 +823,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -746,9 +831,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -759,11 +846,13 @@ description: Result of parsing subtract_regression05.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -776,18 +865,22 @@ description: Result of parsing subtract_regression05.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -798,6 +891,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -805,9 +899,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -818,11 +914,13 @@ description: Result of parsing subtract_regression05.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -835,6 +933,7 @@ description: Result of parsing subtract_regression05.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004Profile000", "start": 0, "type": "Identifier" @@ -848,6 +947,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -858,6 +958,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.937", "start": 0, "type": "Literal", @@ -871,6 +972,7 @@ description: Result of parsing subtract_regression05.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1255", "start": 0, "type": "Literal", @@ -882,6 +984,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -889,6 +992,7 @@ description: Result of parsing subtract_regression05.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -899,9 +1003,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -912,6 +1018,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -919,9 +1026,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004", "start": 0, "type": "Identifier" @@ -939,6 +1048,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -947,6 +1057,7 @@ description: Result of parsing subtract_regression05.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.162", "start": 0, "type": "Literal", @@ -958,6 +1069,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -969,9 +1081,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -982,6 +1096,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -994,6 +1109,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1002,6 +1118,7 @@ description: Result of parsing subtract_regression05.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.312", "start": 0, "type": "Literal", @@ -1013,6 +1130,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1024,9 +1142,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1037,6 +1157,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1049,6 +1170,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1056,6 +1178,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.162", "start": 0, "type": "Literal", @@ -1071,9 +1194,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1084,6 +1209,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1096,6 +1222,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1103,6 +1230,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.312", "start": 0, "type": "Literal", @@ -1118,9 +1246,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1131,19 +1261,23 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1154,6 +1288,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1162,15 +1297,18 @@ description: Result of parsing subtract_regression05.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1183,6 +1321,7 @@ description: Result of parsing subtract_regression05.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolveCut000Extrude", "start": 0, "type": "Identifier" @@ -1194,6 +1333,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1202,9 +1342,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -1220,6 +1362,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1227,6 +1370,7 @@ description: Result of parsing subtract_regression05.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -1242,9 +1386,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -1255,6 +1401,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1262,9 +1409,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch004Profile000", "start": 0, "type": "Identifier" @@ -1275,11 +1424,13 @@ description: Result of parsing subtract_regression05.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1292,6 +1443,7 @@ description: Result of parsing subtract_regression05.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolveCut000", "start": 0, "type": "Identifier" @@ -1303,6 +1455,7 @@ description: Result of parsing subtract_regression05.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1311,9 +1464,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolveCut000Extrude", "start": 0, "type": "Identifier" @@ -1329,9 +1484,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1342,6 +1499,7 @@ description: Result of parsing subtract_regression05.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1349,9 +1507,11 @@ description: Result of parsing subtract_regression05.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepExtrude000", "start": 0, "type": "Identifier" @@ -1362,11 +1522,13 @@ description: Result of parsing subtract_regression05.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1378,9 +1540,11 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1392,19 +1556,23 @@ description: Result of parsing subtract_regression05.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1420,12 +1588,14 @@ description: Result of parsing subtract_regression05.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1437,6 +1607,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1448,6 +1619,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1459,6 +1631,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1470,6 +1643,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1481,6 +1655,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1492,6 +1667,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1503,6 +1679,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1515,6 +1692,7 @@ description: Result of parsing subtract_regression05.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression06/ast.snap b/rust/kcl-lib/tests/subtract_regression06/ast.snap index e0d6f3112..dcaab5935 100644 --- a/rust/kcl-lib/tests/subtract_regression06/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression06/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression06.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression06.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression06.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -96,6 +107,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.48125", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -115,6 +128,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.125", "start": 0, "type": "Literal", @@ -126,6 +140,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -136,9 +151,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -149,6 +166,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -156,9 +174,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -183,6 +204,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9625", "start": 0, "type": "Literal", @@ -198,9 +220,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -211,6 +235,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -223,6 +248,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -230,6 +256,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -245,6 +272,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -252,6 +280,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.87373", "start": 0, "type": "Literal", @@ -267,6 +296,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -274,6 +304,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -289,9 +320,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -302,6 +335,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -314,6 +348,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -324,6 +359,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.558516", "start": 0, "type": "Literal", @@ -337,6 +373,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.656385", "start": 0, "type": "Literal", @@ -348,6 +385,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -355,6 +393,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -365,9 +404,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -378,6 +419,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -390,6 +432,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -397,6 +440,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.87373", "start": 0, "type": "Literal", @@ -412,6 +456,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -420,6 +465,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "192.443844", "start": 0, "type": "Literal", @@ -431,6 +477,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -442,6 +489,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -449,6 +497,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.3125", "start": 0, "type": "Literal", @@ -464,9 +513,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -477,6 +528,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -489,6 +541,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -499,6 +552,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.556289", "start": 0, "type": "Literal", @@ -511,6 +565,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52095", "start": 0, "type": "Literal", @@ -522,6 +577,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -532,9 +588,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -545,6 +603,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -557,6 +616,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -564,6 +624,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "167.556156", "start": 0, "type": "Literal", @@ -579,6 +640,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -586,6 +648,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -601,6 +664,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -608,6 +672,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -623,9 +688,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -636,6 +703,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -648,6 +716,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -655,6 +724,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9625", "start": 0, "type": "Literal", @@ -670,9 +740,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -683,6 +755,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -695,6 +768,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -703,6 +777,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -714,6 +789,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -725,9 +801,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -738,6 +816,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -750,6 +829,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -758,6 +838,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9625", "start": 0, "type": "Literal", @@ -769,6 +850,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -780,9 +862,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -793,6 +877,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -805,6 +890,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -812,6 +898,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -827,6 +914,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -834,6 +922,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "167.556156", "start": 0, "type": "Literal", @@ -849,6 +938,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -856,6 +946,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -871,9 +962,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -884,6 +977,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -896,6 +990,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -907,6 +1002,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.556289", "start": 0, "type": "Literal", @@ -918,6 +1014,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -927,6 +1024,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.52095", "start": 0, "type": "Literal", @@ -938,6 +1036,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -945,6 +1044,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -955,9 +1055,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -968,6 +1070,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -980,6 +1083,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -988,6 +1092,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "192.443844", "start": 0, "type": "Literal", @@ -999,6 +1104,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1010,6 +1116,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1017,6 +1124,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.87373", "start": 0, "type": "Literal", @@ -1032,6 +1140,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1039,6 +1148,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1875", "start": 0, "type": "Literal", @@ -1054,9 +1164,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1067,6 +1179,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1079,6 +1192,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1090,6 +1204,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.558516", "start": 0, "type": "Literal", @@ -1101,6 +1216,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1109,6 +1225,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.656385", "start": 0, "type": "Literal", @@ -1120,6 +1237,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1130,9 +1248,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1143,6 +1263,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1155,6 +1276,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1162,6 +1284,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "11.87373", "start": 0, "type": "Literal", @@ -1177,6 +1300,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1184,6 +1308,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1199,6 +1324,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1206,6 +1332,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -1221,9 +1348,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1234,6 +1363,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1246,6 +1376,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1254,6 +1385,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9625", "start": 0, "type": "Literal", @@ -1265,6 +1397,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1276,9 +1409,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1289,6 +1424,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1301,6 +1437,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1308,6 +1445,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -1323,9 +1461,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1336,19 +1476,23 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1359,6 +1503,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1367,15 +1512,18 @@ description: Result of parsing subtract_regression06.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1388,6 +1536,7 @@ description: Result of parsing subtract_regression06.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -1399,6 +1548,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1406,6 +1556,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1421,6 +1572,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -1428,6 +1580,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -1443,9 +1596,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1456,6 +1611,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1463,9 +1619,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -1476,11 +1634,13 @@ description: Result of parsing subtract_regression06.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1493,6 +1653,7 @@ description: Result of parsing subtract_regression06.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane009", "start": 0, "type": "Identifier" @@ -1500,6 +1661,7 @@ description: Result of parsing subtract_regression06.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -1507,10 +1669,12 @@ description: Result of parsing subtract_regression06.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1519,6 +1683,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1531,6 +1696,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1543,6 +1709,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1554,6 +1721,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1565,10 +1733,12 @@ description: Result of parsing subtract_regression06.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1577,6 +1747,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1589,6 +1760,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1601,6 +1773,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1612,6 +1785,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1623,10 +1797,12 @@ description: Result of parsing subtract_regression06.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1635,6 +1811,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1647,6 +1824,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1660,6 +1838,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1671,6 +1850,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1678,6 +1858,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1689,10 +1870,12 @@ description: Result of parsing subtract_regression06.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "zAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -1702,6 +1885,7 @@ description: Result of parsing subtract_regression06.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1713,6 +1897,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1721,6 +1906,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1733,6 +1919,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1744,6 +1931,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1754,11 +1942,13 @@ description: Result of parsing subtract_regression06.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1771,18 +1961,22 @@ description: Result of parsing subtract_regression06.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1793,6 +1987,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1800,9 +1995,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "plane009", "start": 0, "type": "Identifier" @@ -1813,11 +2010,13 @@ description: Result of parsing subtract_regression06.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1830,6 +2029,7 @@ description: Result of parsing subtract_regression06.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -1841,6 +2041,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1851,6 +2052,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1863,6 +2065,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1874,6 +2077,7 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1884,6 +2088,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1891,6 +2096,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.21875", "start": 0, "type": "Literal", @@ -1906,9 +2112,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1919,6 +2127,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1926,9 +2135,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -1939,11 +2150,13 @@ description: Result of parsing subtract_regression06.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1956,6 +2169,7 @@ description: Result of parsing subtract_regression06.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1967,6 +2181,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1974,6 +2189,7 @@ description: Result of parsing subtract_regression06.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1989,9 +2205,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2002,6 +2220,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2012,9 +2231,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -2026,16 +2247,19 @@ description: Result of parsing subtract_regression06.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2048,6 +2272,7 @@ description: Result of parsing subtract_regression06.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -2059,6 +2284,7 @@ description: Result of parsing subtract_regression06.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -2067,9 +2293,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -2085,9 +2313,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -2098,6 +2328,7 @@ description: Result of parsing subtract_regression06.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2105,9 +2336,11 @@ description: Result of parsing subtract_regression06.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -2118,11 +2351,13 @@ description: Result of parsing subtract_regression06.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2134,9 +2369,11 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2148,19 +2385,23 @@ description: Result of parsing subtract_regression06.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -2176,12 +2417,14 @@ description: Result of parsing subtract_regression06.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2193,6 +2436,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2204,6 +2448,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2215,6 +2460,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2226,6 +2472,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2237,6 +2484,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2248,6 +2496,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2260,6 +2509,7 @@ description: Result of parsing subtract_regression06.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression07/ast.snap b/rust/kcl-lib/tests/subtract_regression07/ast.snap index 0c8ca23b3..38c96e1d9 100644 --- a/rust/kcl-lib/tests/subtract_regression07/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression07/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression07.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.072169", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing subtract_regression07.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing subtract_regression07.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.144338", "start": 0, "type": "Literal", @@ -187,6 +208,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -198,9 +220,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -211,6 +235,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -223,6 +248,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -234,6 +260,7 @@ description: Result of parsing subtract_regression07.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.072169", "start": 0, "type": "Literal", @@ -245,6 +272,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -254,6 +282,7 @@ description: Result of parsing subtract_regression07.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -265,6 +294,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -272,6 +302,7 @@ description: Result of parsing subtract_regression07.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -282,9 +313,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -295,6 +328,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -307,6 +341,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -317,6 +352,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.072169", "start": 0, "type": "Literal", @@ -330,6 +366,7 @@ description: Result of parsing subtract_regression07.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -341,6 +378,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -348,6 +386,7 @@ description: Result of parsing subtract_regression07.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -358,9 +397,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -371,6 +412,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -383,6 +425,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -390,6 +433,7 @@ description: Result of parsing subtract_regression07.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.144338", "start": 0, "type": "Literal", @@ -405,9 +449,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -418,6 +464,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -430,6 +477,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -440,6 +488,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.072169", "start": 0, "type": "Literal", @@ -452,6 +501,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -463,6 +513,7 @@ description: Result of parsing subtract_regression07.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -473,9 +524,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -486,6 +539,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -498,6 +552,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -509,6 +564,7 @@ description: Result of parsing subtract_regression07.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.072169", "start": 0, "type": "Literal", @@ -520,6 +576,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -528,6 +585,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.125", "start": 0, "type": "Literal", @@ -539,6 +597,7 @@ description: Result of parsing subtract_regression07.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -549,9 +608,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -562,19 +623,23 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -585,6 +650,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -593,15 +659,18 @@ description: Result of parsing subtract_regression07.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -614,6 +683,7 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile001", "start": 0, "type": "Identifier" @@ -625,6 +695,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -635,6 +706,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -647,6 +719,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -658,6 +731,7 @@ description: Result of parsing subtract_regression07.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -668,6 +742,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -675,6 +750,7 @@ description: Result of parsing subtract_regression07.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0795", "start": 0, "type": "Literal", @@ -690,9 +766,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -703,6 +781,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -710,9 +789,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -723,11 +804,13 @@ description: Result of parsing subtract_regression07.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -740,6 +823,7 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000Holes", "start": 0, "type": "Identifier" @@ -750,9 +834,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -769,6 +855,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tool", "start": 0, "type": "Identifier" @@ -777,9 +864,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile001", "start": 0, "type": "Identifier" @@ -795,9 +884,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract2d", "start": 0, "type": "Identifier" @@ -808,6 +899,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -816,15 +908,18 @@ description: Result of parsing subtract_regression07.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -837,6 +932,7 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -848,6 +944,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -855,6 +952,7 @@ description: Result of parsing subtract_regression07.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1875", "start": 0, "type": "Literal", @@ -870,6 +968,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -877,6 +976,7 @@ description: Result of parsing subtract_regression07.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1875", "start": 0, "type": "Literal", @@ -892,9 +992,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -905,6 +1007,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -912,9 +1015,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000Holes", "start": 0, "type": "Identifier" @@ -925,11 +1030,13 @@ description: Result of parsing subtract_regression07.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -942,18 +1049,22 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -964,6 +1075,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -974,6 +1086,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -981,6 +1094,7 @@ description: Result of parsing subtract_regression07.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.25", "start": 0, "type": "Literal", @@ -996,9 +1110,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1009,6 +1125,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1016,9 +1133,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1030,11 +1149,13 @@ description: Result of parsing subtract_regression07.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1047,6 +1168,7 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -1058,6 +1180,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1068,6 +1191,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1080,6 +1204,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1091,6 +1216,7 @@ description: Result of parsing subtract_regression07.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1101,6 +1227,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1108,6 +1235,7 @@ description: Result of parsing subtract_regression07.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0945", "start": 0, "type": "Literal", @@ -1123,9 +1251,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1136,6 +1266,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1143,9 +1274,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -1156,11 +1289,13 @@ description: Result of parsing subtract_regression07.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1173,18 +1308,22 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1195,6 +1334,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1205,6 +1345,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -1212,6 +1353,7 @@ description: Result of parsing subtract_regression07.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -1227,9 +1369,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offsetPlane", "start": 0, "type": "Identifier" @@ -1240,6 +1384,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1247,9 +1392,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1261,11 +1408,13 @@ description: Result of parsing subtract_regression07.kcl } } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1278,6 +1427,7 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -1289,6 +1439,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1299,6 +1450,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1311,6 +1463,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1322,6 +1475,7 @@ description: Result of parsing subtract_regression07.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1332,6 +1486,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1339,6 +1494,7 @@ description: Result of parsing subtract_regression07.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.08", "start": 0, "type": "Literal", @@ -1354,9 +1510,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1367,6 +1525,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1374,9 +1533,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1387,11 +1548,13 @@ description: Result of parsing subtract_regression07.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1404,18 +1567,22 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "draftCut000Extrude", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "loft", "start": 0, "type": "Identifier" @@ -1426,6 +1593,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1436,9 +1604,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -1452,9 +1622,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -1466,16 +1638,19 @@ description: Result of parsing subtract_regression07.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1488,6 +1663,7 @@ description: Result of parsing subtract_regression07.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "draftCut000", "start": 0, "type": "Identifier" @@ -1499,6 +1675,7 @@ description: Result of parsing subtract_regression07.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1507,9 +1684,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "draftCut000Extrude", "start": 0, "type": "Identifier" @@ -1525,9 +1704,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1538,6 +1719,7 @@ description: Result of parsing subtract_regression07.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1545,9 +1727,11 @@ description: Result of parsing subtract_regression07.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude000", "start": 0, "type": "Identifier" @@ -1558,11 +1742,13 @@ description: Result of parsing subtract_regression07.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1574,9 +1760,11 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1588,19 +1776,23 @@ description: Result of parsing subtract_regression07.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1616,12 +1808,14 @@ description: Result of parsing subtract_regression07.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1633,6 +1827,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1644,6 +1839,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1655,6 +1851,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1666,6 +1863,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1677,6 +1875,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1688,6 +1887,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1699,6 +1899,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1710,6 +1911,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1721,6 +1923,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1733,6 +1936,7 @@ description: Result of parsing subtract_regression07.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression08/ast.snap b/rust/kcl-lib/tests/subtract_regression08/ast.snap index c4bce86ef..709d4dc81 100644 --- a/rust/kcl-lib/tests/subtract_regression08/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression08/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression08.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing subtract_regression08.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -175,6 +195,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.937", "start": 0, "type": "Literal", @@ -190,9 +211,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -203,6 +226,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -215,6 +239,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -222,6 +247,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -237,6 +263,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -244,6 +271,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -259,6 +287,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -266,6 +295,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.313", "start": 0, "type": "Literal", @@ -281,9 +311,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -294,6 +326,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -306,6 +339,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -313,6 +347,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.937", "start": 0, "type": "Literal", @@ -328,9 +363,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -341,6 +378,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -349,15 +387,18 @@ description: Result of parsing subtract_regression08.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -370,18 +411,22 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -392,6 +437,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -399,9 +445,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -412,11 +460,13 @@ description: Result of parsing subtract_regression08.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -429,6 +479,7 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -440,6 +491,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -450,6 +502,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -462,6 +515,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -473,6 +527,7 @@ description: Result of parsing subtract_regression08.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -483,6 +538,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -490,6 +546,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1875", "start": 0, "type": "Literal", @@ -505,9 +562,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -518,6 +577,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -525,9 +585,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -538,11 +600,13 @@ description: Result of parsing subtract_regression08.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -555,6 +619,7 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepExtrude000", "start": 0, "type": "Identifier" @@ -566,6 +631,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -574,9 +640,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -592,6 +660,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sectional", "start": 0, "type": "Identifier" @@ -599,6 +668,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -611,9 +681,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -624,6 +696,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -631,9 +704,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -644,11 +719,13 @@ description: Result of parsing subtract_regression08.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -661,18 +738,22 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -683,6 +764,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -690,9 +772,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -703,11 +787,13 @@ description: Result of parsing subtract_regression08.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -720,6 +806,7 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -733,6 +820,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -743,6 +831,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -755,6 +844,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -766,6 +856,7 @@ description: Result of parsing subtract_regression08.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -776,9 +867,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -789,6 +882,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -796,9 +890,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -816,6 +912,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -823,6 +920,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.937", "start": 0, "type": "Literal", @@ -838,9 +936,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -851,6 +951,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -863,6 +964,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -870,6 +972,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -885,6 +988,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -892,6 +996,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -907,6 +1012,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -914,6 +1020,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.313", "start": 0, "type": "Literal", @@ -929,9 +1036,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -942,6 +1051,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -954,6 +1064,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -961,6 +1072,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.937", "start": 0, "type": "Literal", @@ -976,9 +1088,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -989,6 +1103,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -997,15 +1112,18 @@ description: Result of parsing subtract_regression08.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1018,18 +1136,22 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1040,6 +1162,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1047,9 +1170,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -1060,11 +1185,13 @@ description: Result of parsing subtract_regression08.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1077,6 +1204,7 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -1088,6 +1216,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1098,6 +1227,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1110,6 +1240,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1121,6 +1252,7 @@ description: Result of parsing subtract_regression08.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1131,6 +1263,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1138,6 +1271,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9375", "start": 0, "type": "Literal", @@ -1153,9 +1287,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1166,6 +1302,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1173,9 +1310,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -1186,11 +1325,13 @@ description: Result of parsing subtract_regression08.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1203,6 +1344,7 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepCut000Extrude", "start": 0, "type": "Identifier" @@ -1214,6 +1356,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "path", "start": 0, "type": "Identifier" @@ -1222,9 +1365,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -1240,6 +1385,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sectional", "start": 0, "type": "Identifier" @@ -1247,6 +1393,7 @@ description: Result of parsing subtract_regression08.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -1259,9 +1406,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweep", "start": 0, "type": "Identifier" @@ -1272,6 +1421,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1279,9 +1429,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -1292,11 +1444,13 @@ description: Result of parsing subtract_regression08.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1309,6 +1463,7 @@ description: Result of parsing subtract_regression08.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepCut000", "start": 0, "type": "Identifier" @@ -1320,6 +1475,7 @@ description: Result of parsing subtract_regression08.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1328,9 +1484,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepCut000Extrude", "start": 0, "type": "Identifier" @@ -1346,9 +1504,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1359,6 +1519,7 @@ description: Result of parsing subtract_regression08.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1366,9 +1527,11 @@ description: Result of parsing subtract_regression08.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sweepExtrude000", "start": 0, "type": "Identifier" @@ -1379,11 +1542,13 @@ description: Result of parsing subtract_regression08.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1395,9 +1560,11 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1409,19 +1576,23 @@ description: Result of parsing subtract_regression08.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1437,12 +1608,14 @@ description: Result of parsing subtract_regression08.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1454,6 +1627,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1465,6 +1639,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1476,6 +1651,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1487,6 +1663,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1498,6 +1675,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1509,6 +1687,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1520,6 +1699,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1531,6 +1711,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1542,6 +1723,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1554,6 +1736,7 @@ description: Result of parsing subtract_regression08.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression09/ast.snap b/rust/kcl-lib/tests/subtract_regression09/ast.snap index f4d8802c8..c91aaab99 100644 --- a/rust/kcl-lib/tests/subtract_regression09/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression09/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression09.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression09.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression09.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing subtract_regression09.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing subtract_regression09.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -187,6 +208,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -198,9 +220,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -211,6 +235,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -223,6 +248,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -230,6 +256,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.972", "start": 0, "type": "Literal", @@ -245,9 +272,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -258,6 +287,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -270,6 +300,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -277,6 +308,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -292,9 +324,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -305,6 +339,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -317,6 +352,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -325,6 +361,7 @@ description: Result of parsing subtract_regression09.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.972", "start": 0, "type": "Literal", @@ -336,6 +373,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -347,9 +385,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -360,19 +400,23 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -383,6 +427,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -391,15 +436,18 @@ description: Result of parsing subtract_regression09.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -412,6 +460,7 @@ description: Result of parsing subtract_regression09.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve000", "start": 0, "type": "Identifier" @@ -423,6 +472,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -431,9 +481,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -449,6 +501,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -456,6 +509,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -471,9 +525,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -484,6 +540,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -491,9 +548,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -504,11 +563,13 @@ description: Result of parsing subtract_regression09.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -521,18 +582,22 @@ description: Result of parsing subtract_regression09.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -543,6 +608,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -550,9 +616,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -563,11 +631,13 @@ description: Result of parsing subtract_regression09.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -580,6 +650,7 @@ description: Result of parsing subtract_regression09.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -593,6 +664,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -603,6 +675,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.188246", "start": 0, "type": "Literal", @@ -615,6 +688,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "27.497102", "start": 0, "type": "Literal", @@ -626,6 +700,7 @@ description: Result of parsing subtract_regression09.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -636,9 +711,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -649,6 +726,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -656,9 +734,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -676,6 +756,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -687,6 +768,7 @@ description: Result of parsing subtract_regression09.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.177089", "start": 0, "type": "Literal", @@ -698,6 +780,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -706,6 +789,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.740791", "start": 0, "type": "Literal", @@ -717,6 +801,7 @@ description: Result of parsing subtract_regression09.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -727,9 +812,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -740,6 +827,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -752,6 +840,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -759,6 +848,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "13.444444", "start": 0, "type": "Literal", @@ -774,6 +864,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -781,6 +872,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "38.628165", "start": 0, "type": "Literal", @@ -796,6 +888,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -803,6 +896,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.283446", "start": 0, "type": "Literal", @@ -818,9 +912,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -831,6 +927,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -843,6 +940,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -850,6 +948,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "145.295512", "start": 0, "type": "Literal", @@ -865,6 +964,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -872,6 +972,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "14.704488", "start": 0, "type": "Literal", @@ -887,6 +988,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -894,6 +996,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.793095", "start": 0, "type": "Literal", @@ -909,9 +1012,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -922,6 +1027,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -934,6 +1040,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -941,6 +1048,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "121.371835", "start": 0, "type": "Literal", @@ -956,6 +1064,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -963,6 +1072,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "146.555556", "start": 0, "type": "Literal", @@ -978,6 +1088,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -985,6 +1096,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5.283446", "start": 0, "type": "Literal", @@ -1000,9 +1112,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1013,6 +1127,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1025,6 +1140,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1036,6 +1152,7 @@ description: Result of parsing subtract_regression09.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.419774", "start": 0, "type": "Literal", @@ -1047,6 +1164,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1056,6 +1174,7 @@ description: Result of parsing subtract_regression09.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.635548", "start": 0, "type": "Literal", @@ -1067,6 +1186,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1074,6 +1194,7 @@ description: Result of parsing subtract_regression09.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1084,9 +1205,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1097,6 +1220,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1109,6 +1233,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1116,6 +1241,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "326.170267", "start": 0, "type": "Literal", @@ -1131,6 +1257,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1138,6 +1265,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "311.293981", "start": 0, "type": "Literal", @@ -1153,6 +1281,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1160,6 +1289,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8.272375", "start": 0, "type": "Literal", @@ -1175,9 +1305,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1188,6 +1320,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1200,6 +1333,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -1207,6 +1341,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "311.666667", "start": 0, "type": "Literal", @@ -1222,6 +1357,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleEnd", "start": 0, "type": "Identifier" @@ -1229,6 +1365,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "208.333333", "start": 0, "type": "Literal", @@ -1244,6 +1381,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1251,6 +1389,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3.178087", "start": 0, "type": "Literal", @@ -1266,9 +1405,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -1279,6 +1420,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1291,6 +1433,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -1301,6 +1444,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.188246", "start": 0, "type": "Literal", @@ -1313,6 +1457,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "27.497102", "start": 0, "type": "Literal", @@ -1324,6 +1469,7 @@ description: Result of parsing subtract_regression09.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1334,9 +1480,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -1347,19 +1495,23 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1370,6 +1522,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1378,12 +1531,14 @@ description: Result of parsing subtract_regression09.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1395,6 +1550,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1406,6 +1562,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1417,6 +1574,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1428,6 +1586,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1444,11 +1603,13 @@ description: Result of parsing subtract_regression09.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1461,6 +1622,7 @@ description: Result of parsing subtract_regression09.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1472,6 +1634,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1479,6 +1642,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -1494,6 +1658,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -1501,6 +1666,7 @@ description: Result of parsing subtract_regression09.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -1516,9 +1682,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1529,6 +1697,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1539,9 +1708,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -1553,16 +1724,19 @@ description: Result of parsing subtract_regression09.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1577,6 +1751,7 @@ description: Result of parsing subtract_regression09.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1585,9 +1760,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1603,9 +1780,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1616,6 +1795,7 @@ description: Result of parsing subtract_regression09.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1623,9 +1803,11 @@ description: Result of parsing subtract_regression09.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve000", "start": 0, "type": "Identifier" @@ -1636,6 +1818,7 @@ description: Result of parsing subtract_regression09.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1647,9 +1830,11 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1661,19 +1846,23 @@ description: Result of parsing subtract_regression09.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -1689,12 +1878,14 @@ description: Result of parsing subtract_regression09.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1706,6 +1897,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1717,6 +1909,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1728,6 +1921,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1739,6 +1933,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1750,6 +1945,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1762,6 +1958,7 @@ description: Result of parsing subtract_regression09.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression10/ast.snap b/rust/kcl-lib/tests/subtract_regression10/ast.snap index ad168c451..0bbda3bdb 100644 --- a/rust/kcl-lib/tests/subtract_regression10/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression10/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing subtract_regression10.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "110", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing subtract_regression10.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define parameters" ], @@ -49,6 +53,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bore", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing subtract_regression10.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "92", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing subtract_regression10.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHeight", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing subtract_regression10.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "75", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing subtract_regression10.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing subtract_regression10.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40deg", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing subtract_regression10.kcl "suffix": "Deg" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing subtract_regression10.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "36", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing subtract_regression10.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pinHeight", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing subtract_regression10.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "35", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing subtract_regression10.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rodLength", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing subtract_regression10.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "201.2", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing subtract_regression10.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,18 +275,22 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kinematicSketch", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -269,6 +301,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -276,9 +309,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -289,11 +324,13 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -315,6 +352,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -325,6 +363,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -337,6 +376,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -348,6 +388,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -358,9 +399,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -371,6 +414,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -378,9 +422,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "kinematicSketch", "start": 0, "type": "Identifier" @@ -398,6 +444,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -406,9 +453,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -424,6 +473,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -435,9 +485,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -447,10 +499,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -470,6 +524,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -477,6 +532,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -488,9 +544,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -501,6 +559,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -513,6 +572,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -523,6 +583,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -545,9 +606,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -557,10 +620,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -574,15 +639,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -593,6 +662,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -600,9 +670,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -617,15 +689,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -636,6 +712,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -649,9 +726,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rodLength", "start": 0, "type": "Identifier" @@ -661,10 +740,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -678,6 +759,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -692,9 +774,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -704,10 +788,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -721,15 +807,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -740,6 +830,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -747,9 +838,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -764,10 +857,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -792,6 +887,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -802,6 +898,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -809,6 +906,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -820,9 +918,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -833,6 +933,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -845,6 +946,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -853,13 +955,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -870,6 +975,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -877,9 +983,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -890,10 +998,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -913,6 +1023,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -920,6 +1031,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -935,6 +1047,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -942,6 +1055,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -953,9 +1067,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -966,6 +1082,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -974,12 +1091,14 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -996,6 +1115,7 @@ description: Result of parsing subtract_regression10.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1008,6 +1128,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonBore", "start": 0, "type": "Identifier" @@ -1015,13 +1136,16 @@ description: Result of parsing subtract_regression10.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1032,6 +1156,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1039,9 +1164,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -1059,6 +1186,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1069,6 +1197,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -1088,9 +1217,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pinHeight", "start": 0, "type": "Identifier" @@ -1100,6 +1231,7 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1111,9 +1243,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -1123,10 +1257,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1140,15 +1276,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -1159,6 +1299,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1166,9 +1307,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -1187,15 +1330,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -1206,6 +1353,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1219,9 +1367,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rodLength", "start": 0, "type": "Identifier" @@ -1231,10 +1381,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1248,6 +1400,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -1262,9 +1415,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -1274,10 +1429,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1291,15 +1448,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -1310,6 +1471,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1317,9 +1479,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -1334,10 +1498,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1362,6 +1528,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1372,9 +1539,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1385,6 +1554,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1397,6 +1567,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1408,9 +1579,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bore", "start": 0, "type": "Identifier" @@ -1420,10 +1593,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1443,9 +1618,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1456,6 +1633,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1468,6 +1646,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1476,6 +1655,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1487,6 +1667,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1498,9 +1679,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1511,6 +1694,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1523,6 +1707,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1531,6 +1716,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1542,6 +1728,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1553,9 +1740,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1566,6 +1755,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1578,6 +1768,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1586,6 +1777,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1597,6 +1789,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1608,9 +1801,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1621,6 +1816,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1633,6 +1829,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1640,6 +1837,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1655,9 +1853,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1668,6 +1868,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1680,6 +1881,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1688,6 +1890,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1699,6 +1902,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1710,9 +1914,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1723,6 +1929,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1735,6 +1942,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1743,6 +1951,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1754,6 +1963,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1765,9 +1975,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1778,6 +1990,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1790,6 +2003,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1798,6 +2012,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1809,6 +2024,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1820,9 +2036,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1833,6 +2051,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1845,6 +2064,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1852,6 +2072,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1867,9 +2088,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1880,6 +2103,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1892,6 +2116,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1900,6 +2125,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1911,6 +2137,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1922,9 +2149,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -1935,6 +2164,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1947,6 +2177,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1955,6 +2186,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1966,6 +2198,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -1977,9 +2210,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1990,6 +2225,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2002,6 +2238,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2010,6 +2247,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2021,6 +2259,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2032,9 +2271,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2045,6 +2286,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2057,6 +2299,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2064,6 +2307,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2079,9 +2323,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2092,6 +2338,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2104,6 +2351,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2115,13 +2363,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2132,25 +2383,30 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHeight", "start": 0, "type": "Identifier" @@ -2164,10 +2420,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2187,9 +2445,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2200,6 +2460,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2212,6 +2473,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -2220,6 +2482,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -2231,6 +2494,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -2242,9 +2506,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2255,6 +2521,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2267,6 +2534,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2278,13 +2546,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2295,21 +2566,25 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -2323,6 +2598,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -2331,9 +2607,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bore", "start": 0, "type": "Identifier" @@ -2343,10 +2621,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2370,9 +2650,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -2383,6 +2665,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2395,6 +2678,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2402,6 +2686,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -2417,6 +2702,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -2428,9 +2714,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bore", "start": 0, "type": "Identifier" @@ -2440,10 +2728,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -2463,9 +2753,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -2476,6 +2768,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2488,18 +2781,22 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2510,12 +2807,14 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2527,9 +2826,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -2540,6 +2841,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2552,6 +2854,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -2560,13 +2863,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -2577,25 +2883,30 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -2606,12 +2917,14 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -2619,6 +2932,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -2629,9 +2943,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -2642,19 +2958,23 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -2665,6 +2985,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2677,6 +2998,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -2684,6 +3006,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -2699,6 +3022,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -2707,9 +3031,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -2725,9 +3051,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -2738,6 +3066,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2746,12 +3075,14 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "22": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2768,11 +3099,13 @@ description: Result of parsing subtract_regression10.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2785,6 +3118,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divots", "start": 0, "type": "Identifier" @@ -2792,13 +3126,16 @@ description: Result of parsing subtract_regression10.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -2809,6 +3146,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2816,9 +3154,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -2836,6 +3176,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -2853,9 +3194,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bore", "start": 0, "type": "Identifier" @@ -2865,10 +3208,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2882,10 +3227,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "6", "start": 0, "type": "Literal", @@ -2915,9 +3262,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -2927,10 +3276,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -2944,15 +3295,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -2963,6 +3318,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2970,9 +3326,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -2987,15 +3345,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -3006,6 +3368,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3019,9 +3382,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rodLength", "start": 0, "type": "Identifier" @@ -3031,10 +3396,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3048,6 +3415,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -3062,9 +3430,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -3074,10 +3444,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3091,15 +3463,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -3110,6 +3486,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3117,9 +3494,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -3134,10 +3513,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3160,6 +3541,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -3171,9 +3553,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHeight", "start": 0, "type": "Identifier" @@ -3183,10 +3567,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3200,10 +3586,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3223,6 +3611,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3233,9 +3622,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -3246,6 +3637,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3258,6 +3650,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3270,9 +3663,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHeight", "start": 0, "type": "Identifier" @@ -3284,15 +3679,18 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -3312,9 +3710,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3325,6 +3725,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3337,6 +3738,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3344,6 +3746,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "25.75", "start": 0, "type": "Literal", @@ -3359,9 +3762,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -3372,6 +3777,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3384,18 +3790,22 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3406,12 +3816,14 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3423,9 +3835,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -3436,6 +3850,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3448,6 +3863,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -3456,13 +3872,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -3473,25 +3892,30 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -3502,12 +3926,14 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -3515,6 +3941,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3525,9 +3952,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -3538,19 +3967,23 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -3561,6 +3994,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3573,6 +4007,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -3580,6 +4015,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "314", "start": 0, "type": "Literal", @@ -3595,6 +4031,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -3602,6 +4039,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -3614,9 +4052,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -3627,6 +4067,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3635,12 +4076,14 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "7": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -3657,11 +4100,13 @@ description: Result of parsing subtract_regression10.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3674,6 +4119,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cutDivots", "start": 0, "type": "Identifier" @@ -3685,6 +4131,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -3692,6 +4139,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -3707,6 +4155,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -3717,6 +4166,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3729,6 +4179,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3741,6 +4192,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -3752,6 +4204,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3762,6 +4215,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -3772,6 +4226,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3784,6 +4239,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3796,6 +4252,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -3807,6 +4264,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -3817,6 +4275,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -3824,6 +4283,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -3839,6 +4299,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -3846,6 +4307,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -3858,9 +4320,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular3d", "start": 0, "type": "Identifier" @@ -3871,6 +4335,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3878,9 +4343,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "divots", "start": 0, "type": "Identifier" @@ -3891,11 +4358,13 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -3908,6 +4377,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonDiv", "start": 0, "type": "Identifier" @@ -3919,18 +4389,22 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -3941,6 +4415,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3948,9 +4423,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cutDivots", "start": 0, "type": "Identifier" @@ -3967,9 +4444,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -3980,6 +4459,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -3990,9 +4470,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonBore", "start": 0, "type": "Identifier" @@ -4004,16 +4486,19 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4032,6 +4517,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wristPin", "start": 0, "type": "Identifier" @@ -4039,13 +4525,16 @@ description: Result of parsing subtract_regression10.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4056,6 +4545,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4063,9 +4553,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -4083,6 +4575,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -4093,6 +4586,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4115,9 +4609,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -4127,10 +4623,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4144,15 +4642,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -4163,6 +4665,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4170,9 +4673,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -4187,15 +4692,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -4206,6 +4715,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4219,9 +4729,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rodLength", "start": 0, "type": "Identifier" @@ -4231,10 +4743,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4248,6 +4762,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4262,9 +4777,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -4274,10 +4791,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4291,15 +4810,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -4310,6 +4833,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4317,9 +4841,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -4334,10 +4860,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4362,6 +4890,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4372,6 +4901,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4383,9 +4913,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHeight", "start": 0, "type": "Identifier" @@ -4395,10 +4927,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -4418,6 +4952,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -4425,6 +4960,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -4436,9 +4972,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -4449,6 +4987,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4461,6 +5000,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -4469,9 +5009,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bore", "start": 0, "type": "Identifier" @@ -4487,6 +5029,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -4494,6 +5037,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -4506,9 +5050,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -4519,6 +5065,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4531,6 +5078,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -4542,9 +5090,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHeight", "start": 0, "type": "Identifier" @@ -4554,10 +5104,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -4577,6 +5129,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -4585,13 +5138,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -4602,6 +5158,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4609,9 +5166,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -4626,9 +5185,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg04", "start": 0, "type": "Identifier" @@ -4640,6 +5201,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -4650,9 +5212,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -4663,6 +5227,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4671,12 +5236,14 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -4693,11 +5260,13 @@ description: Result of parsing subtract_regression10.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -4715,6 +5284,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonSkirt", "start": 0, "type": "Identifier" @@ -4722,13 +5292,16 @@ description: Result of parsing subtract_regression10.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -4739,6 +5312,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4746,9 +5320,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -4766,6 +5342,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -4776,6 +5353,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -4804,9 +5382,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -4816,10 +5396,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4833,15 +5415,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -4852,6 +5438,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4859,9 +5446,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -4876,15 +5465,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -4895,6 +5488,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -4908,9 +5502,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rodLength", "start": 0, "type": "Identifier" @@ -4920,10 +5516,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4937,6 +5535,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -4951,9 +5550,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -4963,10 +5564,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -4980,15 +5583,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -4999,6 +5606,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5006,9 +5614,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -5023,10 +5633,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5049,14 +5661,17 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pinHeight", "start": 0, "type": "Identifier" @@ -5070,6 +5685,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5078,9 +5694,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHeight", "start": 0, "type": "Identifier" @@ -5090,10 +5708,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.95", "start": 0, "type": "Literal", @@ -5113,6 +5733,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5123,9 +5744,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -5136,6 +5759,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5148,6 +5772,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5155,6 +5780,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".1", "start": 0, "type": "Literal", @@ -5170,9 +5796,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5183,6 +5811,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5195,6 +5824,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5212,9 +5842,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bore", "start": 0, "type": "Identifier" @@ -5224,10 +5856,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5241,10 +5875,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -5280,9 +5916,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -5292,10 +5930,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5309,15 +5949,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -5328,6 +5972,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5335,9 +5980,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -5352,15 +5999,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -5371,6 +6022,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5384,9 +6036,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rodLength", "start": 0, "type": "Identifier" @@ -5396,10 +6050,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5413,6 +6069,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -5427,9 +6084,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -5439,10 +6098,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5456,15 +6117,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -5475,6 +6140,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5482,9 +6148,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -5499,10 +6167,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -5525,14 +6195,17 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pinHeight", "start": 0, "type": "Identifier" @@ -5546,14 +6219,17 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHeight", "start": 0, "type": "Identifier" @@ -5567,10 +6243,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -5586,6 +6264,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5596,9 +6275,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -5609,6 +6290,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5621,6 +6303,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5628,6 +6311,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5643,9 +6327,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -5656,6 +6342,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5668,6 +6355,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -5675,6 +6363,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -5690,9 +6379,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -5703,6 +6394,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5715,6 +6407,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -5723,9 +6416,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -5741,9 +6436,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -5754,19 +6451,23 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -5777,6 +6478,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5789,6 +6491,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -5796,6 +6499,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "314", "start": 0, "type": "Literal", @@ -5811,6 +6515,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -5818,6 +6523,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -5830,9 +6536,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -5843,6 +6551,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5851,12 +6560,14 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "8": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -5873,11 +6584,13 @@ description: Result of parsing subtract_regression10.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5890,6 +6603,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHead", "start": 0, "type": "Identifier" @@ -5901,6 +6615,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -5912,9 +6627,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonSkirt", "start": 0, "type": "Identifier" @@ -5926,6 +6643,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -5936,9 +6654,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -5949,6 +6669,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -5959,9 +6680,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonDiv", "start": 0, "type": "Identifier" @@ -5973,16 +6696,19 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -5995,6 +6721,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodProfile", "start": 0, "type": "Identifier" @@ -6002,13 +6729,16 @@ description: Result of parsing subtract_regression10.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -6019,6 +6749,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6026,9 +6757,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -6046,6 +6779,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -6057,13 +6791,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndX", "start": 0, "type": "Identifier" @@ -6074,6 +6811,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6081,9 +6819,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -6094,6 +6834,7 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6104,6 +6845,7 @@ description: Result of parsing subtract_regression10.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -6113,14 +6855,17 @@ description: Result of parsing subtract_regression10.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -6134,15 +6879,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -6153,17 +6902,21 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -6174,6 +6927,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6181,9 +6935,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -6207,13 +6963,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segEndY", "start": 0, "type": "Identifier" @@ -6224,6 +6983,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6231,9 +6991,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -6244,6 +7006,7 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -6254,6 +7017,7 @@ description: Result of parsing subtract_regression10.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.25", "start": 0, "type": "Literal", @@ -6263,14 +7027,17 @@ description: Result of parsing subtract_regression10.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -6284,15 +7051,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -6303,17 +7074,21 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -6324,6 +7099,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6331,9 +7107,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -6355,6 +7133,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -6365,9 +7144,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -6378,6 +7159,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6390,6 +7172,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6398,13 +7181,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -6415,6 +7201,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6422,9 +7209,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -6435,10 +7224,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -6458,6 +7249,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6469,9 +7261,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -6481,10 +7275,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6504,9 +7300,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -6517,6 +7315,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6529,6 +7328,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6536,6 +7336,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -6551,6 +7352,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6558,6 +7360,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -6573,9 +7376,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -6586,6 +7391,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6598,6 +7404,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6606,13 +7413,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -6623,6 +7433,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6630,9 +7441,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -6643,10 +7456,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -6666,6 +7481,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6677,9 +7493,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -6689,10 +7507,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6712,9 +7532,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -6725,6 +7547,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6737,6 +7560,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6745,6 +7569,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -6756,6 +7581,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -6767,6 +7593,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -6774,6 +7601,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -6789,9 +7617,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -6802,6 +7632,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6814,6 +7645,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -6822,13 +7654,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -6839,6 +7674,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6846,9 +7682,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -6859,10 +7697,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -6882,6 +7722,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -6893,9 +7734,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -6905,10 +7748,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -6928,9 +7773,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -6941,6 +7788,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6953,18 +7801,22 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -6975,6 +7827,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -6982,9 +7835,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -7001,6 +7856,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7012,9 +7868,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -7024,10 +7882,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.625", "start": 0, "type": "Literal", @@ -7047,9 +7907,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -7060,6 +7922,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7072,6 +7935,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7080,13 +7944,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -7097,6 +7964,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7104,9 +7972,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -7117,10 +7987,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -7140,6 +8012,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7151,9 +8024,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -7163,10 +8038,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7186,9 +8063,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -7199,6 +8078,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7211,6 +8091,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7219,6 +8100,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -7230,6 +8112,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7241,6 +8124,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -7248,6 +8132,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -7263,9 +8148,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7276,6 +8163,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7288,6 +8176,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7296,13 +8185,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -7313,6 +8205,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7320,9 +8213,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -7333,10 +8228,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -7356,6 +8253,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7367,9 +8265,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -7379,10 +8279,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7402,9 +8304,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -7415,6 +8319,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7427,6 +8332,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7435,6 +8341,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -7446,6 +8353,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7457,6 +8365,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -7465,9 +8374,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -7483,9 +8394,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7496,6 +8409,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7508,18 +8422,22 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -7530,6 +8448,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7537,9 +8456,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -7556,6 +8477,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectTag", "start": 0, "type": "Identifier" @@ -7564,9 +8486,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -7582,6 +8506,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -7594,9 +8519,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -7608,15 +8535,18 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -7636,9 +8566,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLineThatIntersects", "start": 0, "type": "Identifier" @@ -7649,6 +8581,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7661,6 +8594,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7669,6 +8603,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -7680,6 +8615,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7691,6 +8627,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -7698,6 +8635,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -7713,9 +8651,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7726,6 +8666,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7738,6 +8679,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7746,13 +8688,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -7763,6 +8708,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7770,9 +8716,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -7783,10 +8731,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -7806,6 +8756,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -7817,9 +8768,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -7829,10 +8782,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -7852,9 +8807,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -7865,6 +8822,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7877,6 +8835,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7885,6 +8844,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -7896,6 +8856,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -7907,6 +8868,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -7914,6 +8876,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -7929,9 +8892,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -7942,6 +8907,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7954,6 +8920,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -7962,13 +8929,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -7979,6 +8949,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -7986,9 +8957,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -7999,10 +8972,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -8022,6 +8997,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8033,9 +9009,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -8045,10 +9023,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -8068,9 +9048,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -8081,6 +9063,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8093,18 +9076,22 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -8115,6 +9102,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8122,9 +9110,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -8141,6 +9131,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectTag", "start": 0, "type": "Identifier" @@ -8149,9 +9140,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -8167,6 +9160,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -8178,9 +9172,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -8190,10 +9186,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -8213,9 +9211,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLineThatIntersects", "start": 0, "type": "Identifier" @@ -8226,6 +9226,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8238,6 +9239,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -8246,13 +9248,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -8263,6 +9268,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8270,9 +9276,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -8283,10 +9291,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -8306,6 +9316,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectTag", "start": 0, "type": "Identifier" @@ -8314,9 +9325,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg03", "start": 0, "type": "Identifier" @@ -8332,6 +9345,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "offset", "start": 0, "type": "Identifier" @@ -8343,9 +9357,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -8355,10 +9371,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8378,9 +9396,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLineThatIntersects", "start": 0, "type": "Identifier" @@ -8391,6 +9411,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8403,6 +9424,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -8411,13 +9433,16 @@ description: Result of parsing subtract_regression10.kcl "commentStart": 0, "end": 0, "left": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -8428,6 +9453,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8435,9 +9461,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -8448,10 +9476,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -8471,6 +9501,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersectTag", "start": 0, "type": "Identifier" @@ -8479,9 +9510,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -8497,9 +9530,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLineThatIntersects", "start": 0, "type": "Identifier" @@ -8510,12 +9545,14 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -8528,6 +9565,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -8536,9 +9574,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -8554,9 +9594,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -8567,19 +9609,23 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -8590,6 +9636,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8602,6 +9649,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -8609,6 +9657,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "54", "start": 0, "type": "Literal", @@ -8624,6 +9673,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -8631,6 +9681,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -8643,9 +9694,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -8656,6 +9709,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8664,12 +9718,14 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "22": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -8686,11 +9742,13 @@ description: Result of parsing subtract_regression10.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -8708,6 +9766,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodPlane", "start": 0, "type": "Identifier" @@ -8715,6 +9774,7 @@ description: Result of parsing subtract_regression10.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "properties": [ { "commentStart": 0, @@ -8722,10 +9782,12 @@ description: Result of parsing subtract_regression10.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "origin", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -8734,6 +9796,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -8746,6 +9809,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -8768,9 +9832,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -8780,10 +9846,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8797,15 +9865,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -8816,6 +9888,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8823,9 +9896,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -8840,15 +9915,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -8859,6 +9938,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8872,9 +9952,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rodLength", "start": 0, "type": "Identifier" @@ -8884,10 +9966,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8901,6 +9985,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -8915,9 +10000,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -8927,10 +10014,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -8944,15 +10033,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -8963,6 +10056,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -8970,9 +10064,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -8987,10 +10083,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -9015,6 +10113,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9026,10 +10125,12 @@ description: Result of parsing subtract_regression10.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -9042,6 +10143,7 @@ description: Result of parsing subtract_regression10.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9053,20 +10155,25 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -9077,17 +10184,21 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -9098,6 +10209,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9105,9 +10217,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -9126,6 +10240,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9141,6 +10256,7 @@ description: Result of parsing subtract_regression10.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -9150,15 +10266,19 @@ description: Result of parsing subtract_regression10.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -9169,17 +10289,21 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "segAng", "start": 0, "type": "Identifier" @@ -9190,6 +10314,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9197,9 +10322,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg02", "start": 0, "type": "Identifier" @@ -9217,6 +10344,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9228,10 +10356,12 @@ description: Result of parsing subtract_regression10.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yAxis", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { @@ -9240,6 +10370,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -9252,6 +10383,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.0", "start": 0, "type": "Literal", @@ -9264,6 +10396,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -9275,6 +10408,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9285,11 +10419,13 @@ description: Result of parsing subtract_regression10.kcl "type": "ObjectExpression", "type": "ObjectExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -9302,6 +10438,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodShape", "start": 0, "type": "Identifier" @@ -9309,13 +10446,16 @@ description: Result of parsing subtract_regression10.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -9326,6 +10466,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9333,9 +10474,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodPlane", "start": 0, "type": "Identifier" @@ -9353,6 +10496,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -9367,9 +10511,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -9379,10 +10525,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -9399,6 +10547,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -9410,6 +10559,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9420,9 +10570,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -9433,6 +10585,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9445,6 +10598,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9452,6 +10606,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -9467,9 +10622,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -9480,6 +10637,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9492,6 +10650,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -9499,6 +10658,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -9514,6 +10674,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -9521,6 +10682,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -9536,9 +10698,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -9549,6 +10713,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9561,6 +10726,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -9570,13 +10736,16 @@ description: Result of parsing subtract_regression10.kcl "elements": [ { "argument": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegX", "start": 0, "type": "Identifier" @@ -9587,12 +10756,14 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -9600,19 +10771,23 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "lastSegY", "start": 0, "type": "Identifier" @@ -9623,12 +10798,14 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -9636,6 +10813,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -9646,9 +10824,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -9659,6 +10839,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9671,6 +10852,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -9678,6 +10860,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -9693,6 +10876,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -9700,6 +10884,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "8", "start": 0, "type": "Literal", @@ -9715,9 +10900,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -9728,6 +10915,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9740,18 +10928,22 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -9762,12 +10954,14 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -9779,9 +10973,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -9792,6 +10988,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9804,6 +11001,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -9812,9 +11010,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "X", "start": 0, "type": "Identifier" @@ -9830,9 +11030,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mirror2d", "start": 0, "type": "Identifier" @@ -9843,19 +11045,23 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -9866,6 +11072,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9878,6 +11085,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -9885,6 +11093,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "554", "start": 0, "type": "Literal", @@ -9900,6 +11109,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -9907,6 +11117,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -9919,9 +11130,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -9932,6 +11145,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9940,15 +11154,18 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -9966,18 +11183,22 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodShapeSubtract", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intersect", "start": 0, "type": "Identifier" @@ -9988,6 +11209,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -9998,9 +11220,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodProfile", "start": 0, "type": "Identifier" @@ -10014,9 +11238,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodShape", "start": 0, "type": "Identifier" @@ -10028,16 +11254,19 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10050,18 +11279,22 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boreHoles", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -10072,6 +11305,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10079,9 +11313,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -10092,11 +11328,13 @@ description: Result of parsing subtract_regression10.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -10115,6 +11353,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankBore", "start": 0, "type": "Identifier" @@ -10128,6 +11367,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -10139,6 +11379,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -10147,9 +11388,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -10165,6 +11408,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10176,9 +11420,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -10188,10 +11434,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10211,9 +11459,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "polar", "start": 0, "type": "Identifier" @@ -10224,6 +11474,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10235,6 +11486,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -10243,9 +11495,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankRadius", "start": 0, "type": "Identifier" @@ -10261,9 +11515,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -10274,6 +11530,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10281,9 +11538,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boreHoles", "start": 0, "type": "Identifier" @@ -10301,6 +11560,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10308,6 +11568,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "54", "start": 0, "type": "Literal", @@ -10323,6 +11584,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -10330,6 +11592,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -10342,9 +11605,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -10355,6 +11620,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10363,15 +11629,18 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10384,6 +11653,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wristPinHole", "start": 0, "type": "Identifier" @@ -10397,6 +11667,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -10407,6 +11678,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -10429,9 +11701,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -10441,10 +11715,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10458,15 +11734,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sin", "start": 0, "type": "Identifier" @@ -10477,6 +11757,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10484,9 +11765,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -10501,15 +11784,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sqrt", "start": 0, "type": "Identifier" @@ -10520,6 +11807,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10533,9 +11821,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rodLength", "start": 0, "type": "Identifier" @@ -10545,10 +11835,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10562,6 +11854,7 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -10576,9 +11869,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "stroke", "start": 0, "type": "Identifier" @@ -10588,10 +11883,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10605,15 +11902,19 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -10624,6 +11925,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10631,9 +11933,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankPos", "start": 0, "type": "Identifier" @@ -10648,10 +11952,12 @@ description: Result of parsing subtract_regression10.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "operator": "^", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -10676,6 +11982,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10686,6 +11993,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -10697,9 +12005,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pistonHeight", "start": 0, "type": "Identifier" @@ -10709,10 +12019,12 @@ description: Result of parsing subtract_regression10.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -10732,9 +12044,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -10745,6 +12059,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10752,9 +12067,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boreHoles", "start": 0, "type": "Identifier" @@ -10772,6 +12089,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -10779,6 +12097,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "54", "start": 0, "type": "Literal", @@ -10794,6 +12113,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "symmetric", "start": 0, "type": "Identifier" @@ -10801,6 +12121,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -10813,9 +12134,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -10826,6 +12149,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10834,12 +12158,14 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -10856,11 +12182,13 @@ description: Result of parsing subtract_regression10.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -10873,6 +12201,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodBore", "start": 0, "type": "Identifier" @@ -10884,18 +12213,22 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -10906,6 +12239,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10916,9 +12250,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "wristPinHole", "start": 0, "type": "Identifier" @@ -10932,9 +12268,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "crankBore", "start": 0, "type": "Identifier" @@ -10946,6 +12284,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -10957,9 +12296,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -10970,6 +12311,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -10980,9 +12322,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodShapeSubtract", "start": 0, "type": "Identifier" @@ -10994,16 +12338,19 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11016,6 +12363,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHoles", "start": 0, "type": "Identifier" @@ -11023,13 +12371,16 @@ description: Result of parsing subtract_regression10.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -11040,6 +12391,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11047,9 +12399,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodPlane", "start": 0, "type": "Identifier" @@ -11067,6 +12421,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -11077,6 +12432,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -11089,6 +12445,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11100,6 +12457,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11110,6 +12468,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -11117,6 +12476,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -11132,9 +12492,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -11145,6 +12507,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11157,6 +12520,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -11164,6 +12528,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -11179,6 +12544,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -11189,6 +12555,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11201,6 +12568,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -11212,6 +12580,7 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -11222,6 +12591,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arcDegrees", "start": 0, "type": "Identifier" @@ -11229,6 +12599,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -11244,6 +12615,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotateDuplicates", "start": 0, "type": "Identifier" @@ -11251,6 +12623,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "true", "start": 0, "type": "Literal", @@ -11263,9 +12636,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternCircular2d", "start": 0, "type": "Identifier" @@ -11276,6 +12651,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11288,6 +12664,7 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -11295,6 +12672,7 @@ description: Result of parsing subtract_regression10.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "300", "start": 0, "type": "Literal", @@ -11310,9 +12688,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -11323,6 +12703,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11331,15 +12712,18 @@ description: Result of parsing subtract_regression10.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -11357,6 +12741,7 @@ description: Result of parsing subtract_regression10.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRod", "start": 0, "type": "Identifier" @@ -11368,18 +12753,22 @@ description: Result of parsing subtract_regression10.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -11390,6 +12779,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11397,9 +12787,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHoles", "start": 0, "type": "Identifier" @@ -11416,9 +12808,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -11429,6 +12823,7 @@ description: Result of parsing subtract_regression10.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -11439,9 +12834,11 @@ description: Result of parsing subtract_regression10.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "connectingRodBore", "start": 0, "type": "Identifier" @@ -11453,16 +12850,19 @@ description: Result of parsing subtract_regression10.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -11474,9 +12874,11 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -11495,19 +12897,23 @@ description: Result of parsing subtract_regression10.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -11523,12 +12929,14 @@ description: Result of parsing subtract_regression10.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "18": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -11540,6 +12948,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -11552,6 +12961,7 @@ description: Result of parsing subtract_regression10.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression10/program_memory.snap b/rust/kcl-lib/tests/subtract_regression10/program_memory.snap index 11e6d5b35..122e88088 100644 --- a/rust/kcl-lib/tests/subtract_regression10/program_memory.snap +++ b/rust/kcl-lib/tests/subtract_regression10/program_memory.snap @@ -5273,6 +5273,7 @@ description: Variables in memory after executing subtract_regression10.kcl "tag": { "commentStart": 2986, "end": 2992, + "moduleId": 0, "start": 2986, "type": "TagDeclarator", "value": "seg04" @@ -5302,6 +5303,7 @@ description: Variables in memory after executing subtract_regression10.kcl "tag": { "commentStart": 2986, "end": 2992, + "moduleId": 0, "start": 2986, "type": "TagDeclarator", "value": "seg04" diff --git a/rust/kcl-lib/tests/subtract_regression11/ast.snap b/rust/kcl-lib/tests/subtract_regression11/ast.snap index c1b07640b..dbfaf3ea9 100644 --- a/rust/kcl-lib/tests/subtract_regression11/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression11/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression11.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression11.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression11.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing subtract_regression11.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -175,6 +195,7 @@ description: Result of parsing subtract_regression11.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.25", "start": 0, "type": "Literal", @@ -190,9 +211,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -203,6 +226,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -215,6 +239,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -225,6 +250,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -238,6 +264,7 @@ description: Result of parsing subtract_regression11.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -249,6 +276,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -256,6 +284,7 @@ description: Result of parsing subtract_regression11.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -266,9 +295,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -279,6 +310,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -291,6 +323,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -299,6 +332,7 @@ description: Result of parsing subtract_regression11.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "38.5", "start": 0, "type": "Literal", @@ -310,6 +344,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -321,9 +356,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -334,6 +371,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -346,6 +384,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -357,6 +396,7 @@ description: Result of parsing subtract_regression11.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -368,6 +408,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -377,6 +418,7 @@ description: Result of parsing subtract_regression11.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -388,6 +430,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -395,6 +438,7 @@ description: Result of parsing subtract_regression11.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -405,9 +449,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -418,6 +464,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -430,6 +477,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -438,6 +486,7 @@ description: Result of parsing subtract_regression11.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.25", "start": 0, "type": "Literal", @@ -449,6 +498,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -460,9 +510,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -473,6 +525,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -485,6 +538,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -492,6 +546,7 @@ description: Result of parsing subtract_regression11.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "40", "start": 0, "type": "Literal", @@ -507,9 +562,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -520,19 +577,23 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -543,6 +604,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -551,15 +613,18 @@ description: Result of parsing subtract_regression11.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -572,6 +637,7 @@ description: Result of parsing subtract_regression11.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve000", "start": 0, "type": "Identifier" @@ -583,6 +649,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -591,9 +658,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -609,6 +678,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -616,6 +686,7 @@ description: Result of parsing subtract_regression11.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -631,9 +702,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -644,6 +717,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -651,9 +725,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001Profile000", "start": 0, "type": "Identifier" @@ -664,11 +740,13 @@ description: Result of parsing subtract_regression11.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -681,18 +759,22 @@ description: Result of parsing subtract_regression11.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -703,6 +785,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -710,9 +793,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -723,11 +808,13 @@ description: Result of parsing subtract_regression11.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -740,6 +827,7 @@ description: Result of parsing subtract_regression11.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -753,6 +841,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -763,6 +852,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.65", "start": 0, "type": "Literal", @@ -775,6 +865,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20.1", "start": 0, "type": "Literal", @@ -786,6 +877,7 @@ description: Result of parsing subtract_regression11.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -796,9 +888,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -809,6 +903,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -816,9 +911,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003", "start": 0, "type": "Identifier" @@ -836,6 +933,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -844,6 +942,7 @@ description: Result of parsing subtract_regression11.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -855,6 +954,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -866,9 +966,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -879,6 +981,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -891,6 +994,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -899,6 +1003,7 @@ description: Result of parsing subtract_regression11.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -910,6 +1015,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -921,9 +1027,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -934,6 +1042,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -946,6 +1055,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -953,6 +1063,7 @@ description: Result of parsing subtract_regression11.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.5", "start": 0, "type": "Literal", @@ -968,9 +1079,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -981,6 +1094,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -993,6 +1107,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1000,6 +1115,7 @@ description: Result of parsing subtract_regression11.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.1", "start": 0, "type": "Literal", @@ -1015,9 +1131,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1028,19 +1146,23 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1051,6 +1173,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1059,15 +1182,18 @@ description: Result of parsing subtract_regression11.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1080,6 +1206,7 @@ description: Result of parsing subtract_regression11.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1091,6 +1218,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1098,6 +1226,7 @@ description: Result of parsing subtract_regression11.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -1113,6 +1242,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -1120,6 +1250,7 @@ description: Result of parsing subtract_regression11.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -1135,9 +1266,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1148,6 +1281,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1158,9 +1292,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch003Profile000", "start": 0, "type": "Identifier" @@ -1172,16 +1308,19 @@ description: Result of parsing subtract_regression11.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1194,6 +1333,7 @@ description: Result of parsing subtract_regression11.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -1205,6 +1345,7 @@ description: Result of parsing subtract_regression11.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1213,9 +1354,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1231,9 +1374,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1244,6 +1389,7 @@ description: Result of parsing subtract_regression11.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1251,9 +1397,11 @@ description: Result of parsing subtract_regression11.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve000", "start": 0, "type": "Identifier" @@ -1264,11 +1412,13 @@ description: Result of parsing subtract_regression11.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1280,9 +1430,11 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1294,19 +1446,23 @@ description: Result of parsing subtract_regression11.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -1322,12 +1478,14 @@ description: Result of parsing subtract_regression11.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1339,6 +1497,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1350,6 +1509,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1361,6 +1521,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1372,6 +1533,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1383,6 +1545,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1395,6 +1558,7 @@ description: Result of parsing subtract_regression11.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_regression12/ast.snap b/rust/kcl-lib/tests/subtract_regression12/ast.snap index 1ac48f07e..d3729825e 100644 --- a/rust/kcl-lib/tests/subtract_regression12/ast.snap +++ b/rust/kcl-lib/tests/subtract_regression12/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_regression12.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_regression12.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_regression12.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing subtract_regression12.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -176,6 +196,7 @@ description: Result of parsing subtract_regression12.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.22", "start": 0, "type": "Literal", @@ -187,6 +208,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -198,9 +220,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -211,6 +235,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -223,6 +248,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -231,6 +257,7 @@ description: Result of parsing subtract_regression12.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -242,6 +269,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -253,9 +281,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -266,6 +296,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -278,6 +309,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -285,6 +317,7 @@ description: Result of parsing subtract_regression12.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -300,9 +333,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -313,6 +348,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -325,6 +361,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -335,6 +372,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.025", "start": 0, "type": "Literal", @@ -347,6 +385,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.1", "start": 0, "type": "Literal", @@ -358,6 +397,7 @@ description: Result of parsing subtract_regression12.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -368,9 +408,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -381,6 +423,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -393,6 +436,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -400,6 +444,7 @@ description: Result of parsing subtract_regression12.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.789", "start": 0, "type": "Literal", @@ -415,9 +460,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -428,6 +475,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -440,6 +488,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -450,6 +499,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.095", "start": 0, "type": "Literal", @@ -462,6 +512,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.111", "start": 0, "type": "Literal", @@ -473,6 +524,7 @@ description: Result of parsing subtract_regression12.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -483,9 +535,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -496,19 +550,23 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -519,6 +577,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -527,15 +586,18 @@ description: Result of parsing subtract_regression12.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -548,6 +610,7 @@ description: Result of parsing subtract_regression12.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve000", "start": 0, "type": "Identifier" @@ -559,6 +622,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -567,9 +631,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "Y", "start": 0, "type": "Identifier" @@ -585,6 +651,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -592,6 +659,7 @@ description: Result of parsing subtract_regression12.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "360", "start": 0, "type": "Literal", @@ -607,9 +675,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve", "start": 0, "type": "Identifier" @@ -620,6 +690,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -627,9 +698,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch000Profile000", "start": 0, "type": "Identifier" @@ -640,11 +713,13 @@ description: Result of parsing subtract_regression12.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -657,18 +732,22 @@ description: Result of parsing subtract_regression12.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -679,6 +758,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -686,9 +766,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "YZ", "start": 0, "type": "Identifier" @@ -699,11 +781,13 @@ description: Result of parsing subtract_regression12.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -716,6 +800,7 @@ description: Result of parsing subtract_regression12.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -729,6 +814,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -740,6 +826,7 @@ description: Result of parsing subtract_regression12.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.6", "start": 0, "type": "Literal", @@ -751,6 +838,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -759,6 +847,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.02", "start": 0, "type": "Literal", @@ -770,6 +859,7 @@ description: Result of parsing subtract_regression12.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -780,9 +870,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -793,6 +885,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -800,9 +893,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -820,6 +915,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -828,6 +924,7 @@ description: Result of parsing subtract_regression12.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.04", "start": 0, "type": "Literal", @@ -839,6 +936,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -850,9 +948,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -863,6 +963,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -875,6 +976,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -882,6 +984,7 @@ description: Result of parsing subtract_regression12.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -897,9 +1000,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -910,6 +1015,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -922,6 +1028,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -929,6 +1036,7 @@ description: Result of parsing subtract_regression12.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.04", "start": 0, "type": "Literal", @@ -944,9 +1052,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -957,6 +1067,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -969,6 +1080,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -977,6 +1089,7 @@ description: Result of parsing subtract_regression12.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.9", "start": 0, "type": "Literal", @@ -988,6 +1101,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -999,9 +1113,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -1012,19 +1128,23 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1035,6 +1155,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1043,15 +1164,18 @@ description: Result of parsing subtract_regression12.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1064,6 +1188,7 @@ description: Result of parsing subtract_regression12.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1075,6 +1200,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1082,6 +1208,7 @@ description: Result of parsing subtract_regression12.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -1097,6 +1224,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bidirectionalLength", "start": 0, "type": "Identifier" @@ -1104,6 +1232,7 @@ description: Result of parsing subtract_regression12.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.2", "start": 0, "type": "Literal", @@ -1119,9 +1248,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1132,6 +1263,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1142,9 +1274,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002Profile000", "start": 0, "type": "Identifier" @@ -1156,16 +1290,19 @@ description: Result of parsing subtract_regression12.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1178,6 +1315,7 @@ description: Result of parsing subtract_regression12.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000", "start": 0, "type": "Identifier" @@ -1189,6 +1327,7 @@ description: Result of parsing subtract_regression12.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1197,9 +1336,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cut000Extrude", "start": 0, "type": "Identifier" @@ -1215,9 +1356,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1228,6 +1371,7 @@ description: Result of parsing subtract_regression12.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1235,9 +1379,11 @@ description: Result of parsing subtract_regression12.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "revolve000", "start": 0, "type": "Identifier" @@ -1248,11 +1394,13 @@ description: Result of parsing subtract_regression12.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1264,9 +1412,11 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -1278,19 +1428,23 @@ description: Result of parsing subtract_regression12.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "in", "start": 0, "type": "Identifier" @@ -1306,12 +1460,14 @@ description: Result of parsing subtract_regression12.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1323,6 +1479,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1334,6 +1491,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1345,6 +1503,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1356,6 +1515,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1367,6 +1527,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1379,6 +1540,7 @@ description: Result of parsing subtract_regression12.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_with_pattern/ast.snap b/rust/kcl-lib/tests/subtract_with_pattern/ast.snap index b09fa8340..08fad52e6 100644 --- a/rust/kcl-lib/tests/subtract_with_pattern/ast.snap +++ b/rust/kcl-lib/tests/subtract_with_pattern/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_with_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_with_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_with_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.65", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.2", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing subtract_with_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -175,6 +195,7 @@ description: Result of parsing subtract_with_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.49", "start": 0, "type": "Literal", @@ -190,9 +211,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -203,6 +226,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -215,6 +239,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -223,6 +248,7 @@ description: Result of parsing subtract_with_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -234,6 +260,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -245,9 +272,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -258,6 +287,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -270,6 +300,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -278,6 +309,7 @@ description: Result of parsing subtract_with_pattern.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.2", "start": 0, "type": "Literal", @@ -289,6 +321,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -300,9 +333,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -313,6 +348,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -325,6 +361,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -333,13 +370,16 @@ description: Result of parsing subtract_with_pattern.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -350,25 +390,30 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -379,12 +424,14 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -392,6 +439,7 @@ description: Result of parsing subtract_with_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -402,9 +450,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -415,19 +465,23 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -438,6 +492,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -446,15 +501,18 @@ description: Result of parsing subtract_with_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -467,6 +525,7 @@ description: Result of parsing subtract_with_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -478,6 +537,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -485,6 +545,7 @@ description: Result of parsing subtract_with_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "500", "start": 0, "type": "Literal", @@ -500,9 +561,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -513,6 +576,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -520,9 +584,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -533,11 +599,13 @@ description: Result of parsing subtract_with_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -550,18 +618,22 @@ description: Result of parsing subtract_with_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -572,6 +644,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -579,9 +652,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -592,11 +667,13 @@ description: Result of parsing subtract_with_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -609,6 +686,7 @@ description: Result of parsing subtract_with_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -620,6 +698,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -630,6 +709,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.5", "start": 0, "type": "Literal", @@ -642,6 +722,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.02", "start": 0, "type": "Literal", @@ -653,6 +734,7 @@ description: Result of parsing subtract_with_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -663,6 +745,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -670,6 +753,7 @@ description: Result of parsing subtract_with_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10.16", "start": 0, "type": "Literal", @@ -685,9 +769,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -698,6 +784,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -705,9 +792,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -718,11 +807,13 @@ description: Result of parsing subtract_with_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -735,6 +826,7 @@ description: Result of parsing subtract_with_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -746,6 +838,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -753,6 +846,7 @@ description: Result of parsing subtract_with_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -768,9 +862,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -781,6 +877,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -788,9 +885,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -801,11 +900,13 @@ description: Result of parsing subtract_with_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -818,6 +919,7 @@ description: Result of parsing subtract_with_pattern.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myPatterns", "start": 0, "type": "Identifier" @@ -829,6 +931,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -836,6 +939,7 @@ description: Result of parsing subtract_with_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -851,6 +955,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -858,6 +963,7 @@ description: Result of parsing subtract_with_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -873,6 +979,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -883,6 +990,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -895,6 +1003,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -907,6 +1016,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -918,6 +1028,7 @@ description: Result of parsing subtract_with_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -928,9 +1039,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -941,6 +1054,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -948,9 +1062,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -961,11 +1077,13 @@ description: Result of parsing subtract_with_pattern.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -982,6 +1100,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -993,9 +1112,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myPatterns", "start": 0, "type": "Identifier" @@ -1007,6 +1128,7 @@ description: Result of parsing subtract_with_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1017,9 +1139,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1030,6 +1154,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1040,9 +1165,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -1054,6 +1181,7 @@ description: Result of parsing subtract_with_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1066,6 +1194,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1073,6 +1202,7 @@ description: Result of parsing subtract_with_pattern.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1088,6 +1218,7 @@ description: Result of parsing subtract_with_pattern.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1098,6 +1229,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1110,6 +1242,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1122,6 +1255,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1133,6 +1267,7 @@ description: Result of parsing subtract_with_pattern.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1143,9 +1278,11 @@ description: Result of parsing subtract_with_pattern.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -1156,6 +1293,7 @@ description: Result of parsing subtract_with_pattern.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1164,12 +1302,14 @@ description: Result of parsing subtract_with_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1186,6 +1326,7 @@ description: Result of parsing subtract_with_pattern.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -1193,12 +1334,14 @@ description: Result of parsing subtract_with_pattern.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1210,6 +1353,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1221,6 +1365,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1232,6 +1377,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1243,6 +1389,7 @@ description: Result of parsing subtract_with_pattern.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/ast.snap b/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/ast.snap index acf0cd726..88737fb05 100644 --- a/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/ast.snap +++ b/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.65", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "12.2", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -175,6 +195,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "23.49", "start": 0, "type": "Literal", @@ -190,9 +211,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -203,6 +226,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -215,6 +239,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -223,6 +248,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "22.68", "start": 0, "type": "Literal", @@ -234,6 +260,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -245,9 +272,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yLine", "start": 0, "type": "Identifier" @@ -258,6 +287,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -270,6 +300,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -278,6 +309,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "24.2", "start": 0, "type": "Literal", @@ -289,6 +321,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -300,9 +333,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -313,6 +348,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -325,6 +361,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -333,13 +370,16 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartX", "start": 0, "type": "Identifier" @@ -350,25 +390,30 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" } }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profileStartY", "start": 0, "type": "Identifier" @@ -379,12 +424,14 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -392,6 +439,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -402,9 +450,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -415,19 +465,23 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -438,6 +492,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -446,15 +501,18 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -467,6 +525,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -478,6 +537,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -485,6 +545,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "500", "start": 0, "type": "Literal", @@ -500,9 +561,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -513,6 +576,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -520,9 +584,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -533,11 +599,13 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -550,18 +618,22 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -572,6 +644,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -579,9 +652,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -592,11 +667,13 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -609,6 +686,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -620,6 +698,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -630,6 +709,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "17.5", "start": 0, "type": "Literal", @@ -642,6 +722,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "42.02", "start": 0, "type": "Literal", @@ -653,6 +734,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -663,6 +745,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -670,6 +753,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30.16", "start": 0, "type": "Literal", @@ -685,9 +769,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -698,6 +784,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -705,9 +792,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch002", "start": 0, "type": "Identifier" @@ -718,11 +807,13 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -735,6 +826,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -748,6 +840,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -755,6 +848,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "50", "start": 0, "type": "Literal", @@ -770,9 +864,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -783,6 +879,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -790,9 +887,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile002", "start": 0, "type": "Identifier" @@ -810,6 +909,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -817,6 +917,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -832,9 +933,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -845,6 +948,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -853,15 +957,18 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -874,6 +981,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myPatterns", "start": 0, "type": "Identifier" @@ -885,6 +993,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "instances", "start": 0, "type": "Identifier" @@ -892,6 +1001,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -907,6 +1017,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "distance", "start": 0, "type": "Identifier" @@ -914,6 +1025,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "80", "start": 0, "type": "Literal", @@ -929,6 +1041,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -939,6 +1052,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -951,6 +1065,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -963,6 +1078,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -974,6 +1090,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -984,9 +1101,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "patternLinear3d", "start": 0, "type": "Identifier" @@ -997,6 +1116,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1004,9 +1124,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude002", "start": 0, "type": "Identifier" @@ -1017,11 +1139,13 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1034,6 +1158,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "results", "start": 0, "type": "Identifier" @@ -1047,6 +1172,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tools", "start": 0, "type": "Identifier" @@ -1058,9 +1184,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "myPatterns", "start": 0, "type": "Identifier" @@ -1072,6 +1200,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1082,9 +1211,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "subtract", "start": 0, "type": "Identifier" @@ -1095,6 +1226,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1105,9 +1237,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude001", "start": 0, "type": "Identifier" @@ -1119,6 +1253,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1131,6 +1266,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1138,6 +1274,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1153,6 +1290,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "axis", "start": 0, "type": "Identifier" @@ -1163,6 +1301,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1175,6 +1314,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1187,6 +1327,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1198,6 +1339,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1208,9 +1350,11 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -1221,6 +1365,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1229,12 +1374,14 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1251,11 +1398,13 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1263,12 +1412,14 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1280,6 +1431,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1291,6 +1443,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1302,6 +1455,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1313,6 +1467,7 @@ description: Result of parsing subtract_with_pattern_cut_thru.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/tan_arc_x_line/ast.snap b/rust/kcl-lib/tests/tan_arc_x_line/ast.snap index 0d70f4d60..0768cb9c1 100644 --- a/rust/kcl-lib/tests/tan_arc_x_line/ast.snap +++ b/rust/kcl-lib/tests/tan_arc_x_line/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing tan_arc_x_line.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing tan_arc_x_line.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing tan_arc_x_line.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -46,6 +50,7 @@ description: Result of parsing tan_arc_x_line.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -53,6 +58,7 @@ description: Result of parsing tan_arc_x_line.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -62,11 +68,13 @@ description: Result of parsing tan_arc_x_line.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -79,6 +87,7 @@ description: Result of parsing tan_arc_x_line.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleOffset", "start": 0, "type": "Identifier" @@ -86,6 +95,7 @@ description: Result of parsing tan_arc_x_line.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "135", "start": 0, "type": "Literal", @@ -95,11 +105,13 @@ description: Result of parsing tan_arc_x_line.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -112,6 +124,7 @@ description: Result of parsing tan_arc_x_line.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -119,6 +132,7 @@ description: Result of parsing tan_arc_x_line.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -128,11 +142,13 @@ description: Result of parsing tan_arc_x_line.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -145,6 +161,7 @@ description: Result of parsing tan_arc_x_line.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -152,6 +169,7 @@ description: Result of parsing tan_arc_x_line.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "110", "start": 0, "type": "Literal", @@ -161,11 +179,13 @@ description: Result of parsing tan_arc_x_line.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -176,13 +196,16 @@ description: Result of parsing tan_arc_x_line.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -193,6 +216,7 @@ description: Result of parsing tan_arc_x_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -200,9 +224,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -220,6 +246,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -231,9 +258,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startX", "start": 0, "type": "Identifier" @@ -247,9 +276,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startY", "start": 0, "type": "Identifier" @@ -261,6 +292,7 @@ description: Result of parsing tan_arc_x_line.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -271,9 +303,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -284,6 +318,7 @@ description: Result of parsing tan_arc_x_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -296,6 +331,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -304,9 +340,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleStart", "start": 0, "type": "Identifier" @@ -322,6 +360,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -329,6 +368,7 @@ description: Result of parsing tan_arc_x_line.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".000001", "start": 0, "type": "Literal", @@ -344,9 +384,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -357,6 +399,7 @@ description: Result of parsing tan_arc_x_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -369,6 +412,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -377,9 +421,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleOffset", "start": 0, "type": "Identifier" @@ -395,6 +441,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -403,9 +450,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -421,6 +470,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -428,6 +478,7 @@ description: Result of parsing tan_arc_x_line.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -439,9 +490,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -452,6 +505,7 @@ description: Result of parsing tan_arc_x_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -464,6 +518,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -472,9 +527,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleOffset", "start": 0, "type": "Identifier" @@ -490,6 +547,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -500,6 +558,7 @@ description: Result of parsing tan_arc_x_line.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -509,14 +568,17 @@ description: Result of parsing tan_arc_x_line.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -536,6 +598,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -543,6 +606,7 @@ description: Result of parsing tan_arc_x_line.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -554,9 +618,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -567,6 +633,7 @@ description: Result of parsing tan_arc_x_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -579,6 +646,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -588,9 +656,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angleOffset", "start": 0, "type": "Identifier" @@ -602,6 +672,7 @@ description: Result of parsing tan_arc_x_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -613,6 +684,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -623,6 +695,7 @@ description: Result of parsing tan_arc_x_line.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.5", "start": 0, "type": "Literal", @@ -632,14 +705,17 @@ description: Result of parsing tan_arc_x_line.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "r", "start": 0, "type": "Identifier" @@ -659,6 +735,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -666,6 +743,7 @@ description: Result of parsing tan_arc_x_line.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -677,9 +755,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -690,6 +770,7 @@ description: Result of parsing tan_arc_x_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -702,6 +783,7 @@ description: Result of parsing tan_arc_x_line.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -709,6 +791,7 @@ description: Result of parsing tan_arc_x_line.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -724,9 +807,11 @@ description: Result of parsing tan_arc_x_line.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "xLine", "start": 0, "type": "Identifier" @@ -737,6 +822,7 @@ description: Result of parsing tan_arc_x_line.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -745,10 +831,12 @@ description: Result of parsing tan_arc_x_line.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -756,12 +844,14 @@ description: Result of parsing tan_arc_x_line.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "4": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/tangent_to_3_point_arc/ast.snap b/rust/kcl-lib/tests/tangent_to_3_point_arc/ast.snap index 3ab4a991f..e72655389 100644 --- a/rust/kcl-lib/tests/tangent_to_3_point_arc/ast.snap +++ b/rust/kcl-lib/tests/tangent_to_3_point_arc/ast.snap @@ -13,18 +13,22 @@ description: Result of parsing tangent_to_3_point_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -35,6 +39,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -42,9 +47,11 @@ description: Result of parsing tangent_to_3_point_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -55,11 +62,13 @@ description: Result of parsing tangent_to_3_point_arc.kcl "type": "Name" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -72,6 +81,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "profile001", "start": 0, "type": "Identifier" @@ -85,6 +95,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -95,6 +106,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100.0", "start": 0, "type": "Literal", @@ -107,6 +119,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -118,6 +131,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -128,9 +142,11 @@ description: Result of parsing tangent_to_3_point_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -141,6 +157,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -148,9 +165,11 @@ description: Result of parsing tangent_to_3_point_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -168,6 +187,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -178,6 +198,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.0", "start": 0, "type": "Literal", @@ -190,6 +211,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "120.0", "start": 0, "type": "Literal", @@ -201,6 +223,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -211,9 +234,11 @@ description: Result of parsing tangent_to_3_point_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -224,6 +249,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -236,6 +262,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "interiorAbsolute", "start": 0, "type": "Identifier" @@ -246,6 +273,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "300.0", "start": 0, "type": "Literal", @@ -258,6 +286,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100.0", "start": 0, "type": "Literal", @@ -269,6 +298,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -279,6 +309,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -289,6 +320,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "200.00", "start": 0, "type": "Literal", @@ -302,6 +334,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100.00", "start": 0, "type": "Literal", @@ -313,6 +346,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -320,6 +354,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -330,6 +365,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -337,6 +373,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -348,9 +385,11 @@ description: Result of parsing tangent_to_3_point_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "arc", "start": 0, "type": "Identifier" @@ -361,6 +400,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -373,18 +413,22 @@ description: Result of parsing tangent_to_3_point_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" }, "arg": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentToEnd", "start": 0, "type": "Identifier" @@ -395,6 +439,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -402,9 +447,11 @@ description: Result of parsing tangent_to_3_point_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "seg01", "start": 0, "type": "Identifier" @@ -421,6 +468,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -428,6 +476,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100.00", "start": 0, "type": "Literal", @@ -443,9 +492,11 @@ description: Result of parsing tangent_to_3_point_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -456,6 +507,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -464,15 +516,18 @@ description: Result of parsing tangent_to_3_point_arc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -480,6 +535,7 @@ description: Result of parsing tangent_to_3_point_arc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/tangent_to_3_point_arc/program_memory.snap b/rust/kcl-lib/tests/tangent_to_3_point_arc/program_memory.snap index 640bb9977..f2128c8bd 100644 --- a/rust/kcl-lib/tests/tangent_to_3_point_arc/program_memory.snap +++ b/rust/kcl-lib/tests/tangent_to_3_point_arc/program_memory.snap @@ -52,6 +52,7 @@ description: Variables in memory after executing tangent_to_3_point_arc.kcl "tag": { "commentStart": 221, "end": 227, + "moduleId": 0, "start": 221, "type": "TagDeclarator", "value": "seg01" diff --git a/rust/kcl-lib/tests/tangential_arc/ast.snap b/rust/kcl-lib/tests/tangential_arc/ast.snap index e61d00ea4..54f0aa192 100644 --- a/rust/kcl-lib/tests/tangential_arc/ast.snap +++ b/rust/kcl-lib/tests/tangential_arc/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing tangential_arc.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boxSketch", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing tangential_arc.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing tangential_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing tangential_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing tangential_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing tangential_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing tangential_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing tangential_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing tangential_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing tangential_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing tangential_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing tangential_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing tangential_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing tangential_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,9 +193,11 @@ description: Result of parsing tangential_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -188,6 +208,7 @@ description: Result of parsing tangential_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -200,6 +221,7 @@ description: Result of parsing tangential_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -207,6 +229,7 @@ description: Result of parsing tangential_arc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -222,6 +245,7 @@ description: Result of parsing tangential_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -229,6 +253,7 @@ description: Result of parsing tangential_arc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -244,9 +269,11 @@ description: Result of parsing tangential_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tangentialArc", "start": 0, "type": "Identifier" @@ -257,6 +284,7 @@ description: Result of parsing tangential_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -269,6 +297,7 @@ description: Result of parsing tangential_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -279,6 +308,7 @@ description: Result of parsing tangential_arc.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -292,6 +322,7 @@ description: Result of parsing tangential_arc.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "15", "start": 0, "type": "Literal", @@ -303,6 +334,7 @@ description: Result of parsing tangential_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -310,6 +342,7 @@ description: Result of parsing tangential_arc.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -320,9 +353,11 @@ description: Result of parsing tangential_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -333,6 +368,7 @@ description: Result of parsing tangential_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -345,6 +381,7 @@ description: Result of parsing tangential_arc.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -352,6 +389,7 @@ description: Result of parsing tangential_arc.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -367,9 +405,11 @@ description: Result of parsing tangential_arc.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -380,6 +420,7 @@ description: Result of parsing tangential_arc.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -388,15 +429,18 @@ description: Result of parsing tangential_arc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -404,6 +448,7 @@ description: Result of parsing tangential_arc.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/translate_after_fillet/ast.snap b/rust/kcl-lib/tests/translate_after_fillet/ast.snap index e98d81045..800d90211 100644 --- a/rust/kcl-lib/tests/translate_after_fillet/ast.snap +++ b/rust/kcl-lib/tests/translate_after_fillet/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing translate_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.625", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing translate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -47,6 +51,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltLength", "start": 0, "type": "Identifier" @@ -54,6 +59,7 @@ description: Result of parsing translate_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2.500", "start": 0, "type": "Literal", @@ -63,11 +69,13 @@ description: Result of parsing translate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -81,6 +89,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -89,9 +98,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -101,11 +112,13 @@ description: Result of parsing translate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -119,6 +132,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadDiameter", "start": 0, "type": "Identifier" @@ -126,6 +140,7 @@ description: Result of parsing translate_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.938", "start": 0, "type": "Literal", @@ -135,11 +150,13 @@ description: Result of parsing translate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -153,6 +170,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -163,6 +181,7 @@ description: Result of parsing translate_after_fillet.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -172,10 +191,12 @@ description: Result of parsing translate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -189,11 +210,13 @@ description: Result of parsing translate_after_fillet.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -207,6 +230,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -218,9 +242,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -230,6 +256,7 @@ description: Result of parsing translate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, @@ -237,6 +264,7 @@ description: Result of parsing translate_after_fillet.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -246,15 +274,19 @@ description: Result of parsing translate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cos", "start": 0, "type": "Identifier" @@ -265,12 +297,14 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30deg", "start": 0, "type": "Literal", @@ -289,11 +323,13 @@ description: Result of parsing translate_after_fillet.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -307,6 +343,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltThreadLength", "start": 0, "type": "Identifier" @@ -314,6 +351,7 @@ description: Result of parsing translate_after_fillet.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1.75", "start": 0, "type": "Literal", @@ -323,11 +361,13 @@ description: Result of parsing translate_after_fillet.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -341,6 +381,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bolt", "start": 0, "type": "Identifier" @@ -356,6 +397,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -363,13 +405,16 @@ description: Result of parsing translate_after_fillet.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -380,6 +425,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -387,9 +433,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -407,6 +455,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -417,6 +466,7 @@ description: Result of parsing translate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -429,6 +479,7 @@ description: Result of parsing translate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -440,6 +491,7 @@ description: Result of parsing translate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -450,6 +502,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -461,9 +514,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadDiameter", "start": 0, "type": "Identifier" @@ -473,10 +528,12 @@ description: Result of parsing translate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -496,6 +553,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -503,6 +561,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -514,9 +573,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -527,6 +588,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -539,6 +601,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -548,9 +611,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -562,6 +627,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -573,9 +639,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -586,6 +654,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -598,6 +667,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -605,6 +675,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.020", "start": 0, "type": "Literal", @@ -620,6 +691,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -631,9 +703,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topEdge", "start": 0, "type": "Identifier" @@ -644,13 +718,16 @@ description: Result of parsing translate_after_fillet.kcl "type": "Name" }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -661,6 +738,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -668,9 +746,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "topEdge", "start": 0, "type": "Identifier" @@ -683,6 +763,7 @@ description: Result of parsing translate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -693,9 +774,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -706,6 +789,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -714,12 +798,14 @@ description: Result of parsing translate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -736,11 +822,13 @@ description: Result of parsing translate_after_fillet.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Create the head of the cap screw" ], @@ -756,6 +844,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "hexPatternSketch", "start": 0, "type": "Identifier" @@ -769,6 +858,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -776,6 +866,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'start'", "start": 0, "type": "Literal", @@ -788,9 +879,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -801,6 +894,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -808,9 +902,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -828,6 +924,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -842,9 +939,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexDrive", "start": 0, "type": "Identifier" @@ -854,10 +953,12 @@ description: Result of parsing translate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -878,9 +979,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -890,10 +993,12 @@ description: Result of parsing translate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -909,6 +1014,7 @@ description: Result of parsing translate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -919,9 +1025,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -932,6 +1040,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -944,6 +1053,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -951,6 +1061,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "270", "start": 0, "type": "Literal", @@ -966,6 +1077,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -974,9 +1086,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -992,9 +1106,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1005,6 +1121,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1017,6 +1134,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1024,6 +1142,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "210", "start": 0, "type": "Literal", @@ -1039,6 +1158,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1047,9 +1167,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1065,9 +1187,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1078,6 +1202,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1090,6 +1215,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1097,6 +1223,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "150", "start": 0, "type": "Literal", @@ -1112,6 +1239,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1120,9 +1248,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1138,9 +1268,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1151,6 +1283,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1163,6 +1296,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1170,6 +1304,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1185,6 +1320,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1193,9 +1329,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1211,9 +1349,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1224,6 +1364,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1236,6 +1377,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angle", "start": 0, "type": "Identifier" @@ -1243,6 +1385,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -1258,6 +1401,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1266,9 +1410,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHexFlatLength", "start": 0, "type": "Identifier" @@ -1284,9 +1430,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "angledLine", "start": 0, "type": "Identifier" @@ -1297,19 +1445,23 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1320,6 +1472,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1332,6 +1485,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1344,9 +1498,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHeadLength", "start": 0, "type": "Identifier" @@ -1358,15 +1514,18 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "*", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0.75", "start": 0, "type": "Literal", @@ -1386,9 +1545,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1399,6 +1560,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1407,15 +1569,18 @@ description: Result of parsing translate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1428,6 +1593,7 @@ description: Result of parsing translate_after_fillet.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -1441,6 +1607,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "face", "start": 0, "type": "Identifier" @@ -1448,6 +1615,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "'end'", "start": 0, "type": "Literal", @@ -1460,9 +1628,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1473,6 +1643,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1480,9 +1651,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltHead", "start": 0, "type": "Identifier" @@ -1500,6 +1673,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1510,6 +1684,7 @@ description: Result of parsing translate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1522,6 +1697,7 @@ description: Result of parsing translate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1533,6 +1709,7 @@ description: Result of parsing translate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1543,6 +1720,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1554,9 +1732,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltDiameter", "start": 0, "type": "Identifier" @@ -1566,10 +1746,12 @@ description: Result of parsing translate_after_fillet.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1589,6 +1771,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1596,6 +1779,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1607,9 +1791,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "circle", "start": 0, "type": "Identifier" @@ -1620,6 +1806,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1632,6 +1819,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1640,9 +1828,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltLength", "start": 0, "type": "Identifier" @@ -1658,9 +1848,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1671,6 +1863,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1683,6 +1876,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "radius", "start": 0, "type": "Identifier" @@ -1690,6 +1884,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": ".020", "start": 0, "type": "Literal", @@ -1705,6 +1900,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tags", "start": 0, "type": "Identifier" @@ -1713,13 +1909,16 @@ description: Result of parsing translate_after_fillet.kcl "commentStart": 0, "elements": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "getOppositeEdge", "start": 0, "type": "Identifier" @@ -1730,6 +1929,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1737,9 +1937,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "filletEdge", "start": 0, "type": "Identifier" @@ -1752,6 +1954,7 @@ description: Result of parsing translate_after_fillet.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1762,9 +1965,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fillet", "start": 0, "type": "Identifier" @@ -1775,6 +1980,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1787,6 +1993,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "color", "start": 0, "type": "Identifier" @@ -1794,6 +2001,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "\"#4dd043\"", "start": 0, "type": "Literal", @@ -1806,6 +2014,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "metalness", "start": 0, "type": "Identifier" @@ -1813,6 +2022,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1828,6 +2038,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roughness", "start": 0, "type": "Identifier" @@ -1835,6 +2046,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "90", "start": 0, "type": "Literal", @@ -1850,9 +2062,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "appearance", "start": 0, "type": "Identifier" @@ -1863,6 +2077,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1871,15 +2086,18 @@ description: Result of parsing translate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1889,9 +2107,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "boltBody", "start": 0, "type": "Identifier" @@ -1903,6 +2123,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1910,12 +2131,14 @@ description: Result of parsing translate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1927,6 +2150,7 @@ description: Result of parsing translate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1941,16 +2165,19 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration", @@ -1962,13 +2189,16 @@ description: Result of parsing translate_after_fillet.kcl "expression": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "bolt", "start": 0, "type": "Identifier" @@ -1979,6 +2209,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1991,6 +2222,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1998,6 +2230,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -2013,6 +2246,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -2020,6 +2254,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2035,6 +2270,7 @@ description: Result of parsing translate_after_fillet.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -2042,6 +2278,7 @@ description: Result of parsing translate_after_fillet.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2057,9 +2294,11 @@ description: Result of parsing translate_after_fillet.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -2070,6 +2309,7 @@ description: Result of parsing translate_after_fillet.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2078,12 +2318,14 @@ description: Result of parsing translate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "1": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2100,6 +2342,7 @@ description: Result of parsing translate_after_fillet.kcl "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "ExpressionStatement", "type": "ExpressionStatement" @@ -2107,12 +2350,14 @@ description: Result of parsing translate_after_fillet.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "6": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2124,6 +2369,7 @@ description: Result of parsing translate_after_fillet.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/union_cubes/ast.snap b/rust/kcl-lib/tests/union_cubes/ast.snap index 8324a7c72..9c387d1ce 100644 --- a/rust/kcl-lib/tests/union_cubes/ast.snap +++ b/rust/kcl-lib/tests/union_cubes/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing union_cubes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -24,13 +25,16 @@ description: Result of parsing union_cubes.kcl "argument": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -41,6 +45,7 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -48,9 +53,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -68,6 +75,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -82,13 +90,16 @@ description: Result of parsing union_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -101,6 +112,7 @@ description: Result of parsing union_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -114,14 +126,17 @@ description: Result of parsing union_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -142,13 +157,16 @@ description: Result of parsing union_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -161,6 +179,7 @@ description: Result of parsing union_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -174,14 +193,17 @@ description: Result of parsing union_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -197,6 +219,7 @@ description: Result of parsing union_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -207,9 +230,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -220,6 +245,7 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -232,6 +258,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -246,13 +273,16 @@ description: Result of parsing union_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -265,6 +295,7 @@ description: Result of parsing union_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -278,14 +309,17 @@ description: Result of parsing union_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -306,13 +340,16 @@ description: Result of parsing union_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -325,6 +362,7 @@ description: Result of parsing union_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -338,14 +376,17 @@ description: Result of parsing union_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -361,6 +402,7 @@ description: Result of parsing union_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -371,9 +413,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -384,6 +428,7 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -396,6 +441,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -410,13 +456,16 @@ description: Result of parsing union_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -429,6 +478,7 @@ description: Result of parsing union_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -442,14 +492,17 @@ description: Result of parsing union_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -470,13 +523,16 @@ description: Result of parsing union_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -489,6 +545,7 @@ description: Result of parsing union_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -502,14 +559,17 @@ description: Result of parsing union_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -525,6 +585,7 @@ description: Result of parsing union_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -535,9 +596,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -548,6 +611,7 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -560,6 +624,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -574,13 +639,16 @@ description: Result of parsing union_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -593,6 +661,7 @@ description: Result of parsing union_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -606,14 +675,17 @@ description: Result of parsing union_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -634,13 +706,16 @@ description: Result of parsing union_cubes.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -653,6 +728,7 @@ description: Result of parsing union_cubes.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -666,14 +742,17 @@ description: Result of parsing union_cubes.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -689,6 +768,7 @@ description: Result of parsing union_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -699,9 +779,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -712,19 +794,23 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -735,6 +821,7 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -747,6 +834,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -757,6 +845,7 @@ description: Result of parsing union_cubes.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -766,14 +855,17 @@ description: Result of parsing union_cubes.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "*", "right": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -793,9 +885,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -806,6 +900,7 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -814,12 +909,14 @@ description: Result of parsing union_cubes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -827,16 +924,19 @@ description: Result of parsing union_cubes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -847,6 +947,7 @@ description: Result of parsing union_cubes.kcl "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -857,11 +958,13 @@ description: Result of parsing union_cubes.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -874,6 +977,7 @@ description: Result of parsing union_cubes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -885,6 +989,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -895,6 +1000,7 @@ description: Result of parsing union_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -907,6 +1013,7 @@ description: Result of parsing union_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -918,6 +1025,7 @@ description: Result of parsing union_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -928,6 +1036,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -935,6 +1044,7 @@ description: Result of parsing union_cubes.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "10", "start": 0, "type": "Literal", @@ -950,9 +1060,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -963,16 +1075,19 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -985,6 +1100,7 @@ description: Result of parsing union_cubes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -998,6 +1114,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pos", "start": 0, "type": "Identifier" @@ -1008,6 +1125,7 @@ description: Result of parsing union_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -1020,6 +1138,7 @@ description: Result of parsing union_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -1031,6 +1150,7 @@ description: Result of parsing union_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1041,6 +1161,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "scale", "start": 0, "type": "Identifier" @@ -1048,6 +1169,7 @@ description: Result of parsing union_cubes.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -1063,9 +1185,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube", "start": 0, "type": "Identifier" @@ -1076,6 +1200,7 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1088,6 +1213,7 @@ description: Result of parsing union_cubes.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1095,6 +1221,7 @@ description: Result of parsing union_cubes.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1110,9 +1237,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1123,6 +1252,7 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1131,15 +1261,18 @@ description: Result of parsing union_cubes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1152,18 +1285,22 @@ description: Result of parsing union_cubes.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "fullPart", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -1174,6 +1311,7 @@ description: Result of parsing union_cubes.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1184,9 +1322,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -1200,9 +1340,11 @@ description: Result of parsing union_cubes.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part002", "start": 0, "type": "Identifier" @@ -1214,16 +1356,19 @@ description: Result of parsing union_cubes.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1231,12 +1376,14 @@ description: Result of parsing union_cubes.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -1248,6 +1395,7 @@ description: Result of parsing union_cubes.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/user_reported_union_2_bug/ast.snap b/rust/kcl-lib/tests/user_reported_union_2_bug/ast.snap index cdf74edf0..067083260 100644 --- a/rust/kcl-lib/tests/user_reported_union_2_bug/ast.snap +++ b/rust/kcl-lib/tests/user_reported_union_2_bug/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleSide", "start": 0, "type": "Identifier" @@ -20,6 +21,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "140", "start": 0, "type": "Literal", @@ -29,11 +31,13 @@ description: Result of parsing user_reported_union_2_bug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// Define dimensions" ], @@ -49,6 +53,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleHeight", "start": 0, "type": "Identifier" @@ -56,6 +61,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "60", "start": 0, "type": "Literal", @@ -65,11 +71,13 @@ description: Result of parsing user_reported_union_2_bug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -82,6 +90,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleFilletRadius", "start": 0, "type": "Identifier" @@ -89,6 +98,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -98,11 +108,13 @@ description: Result of parsing user_reported_union_2_bug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -115,6 +127,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "delta", "start": 0, "type": "Identifier" @@ -122,6 +135,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -131,11 +145,13 @@ description: Result of parsing user_reported_union_2_bug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -148,6 +164,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSize", "start": 0, "type": "Identifier" @@ -155,6 +172,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -164,11 +182,13 @@ description: Result of parsing user_reported_union_2_bug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -181,6 +201,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeLength", "start": 0, "type": "Identifier" @@ -188,6 +209,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "45", "start": 0, "type": "Literal", @@ -197,11 +219,13 @@ description: Result of parsing user_reported_union_2_bug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -214,6 +238,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSpacing", "start": 0, "type": "Identifier" @@ -221,6 +246,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "30", "start": 0, "type": "Literal", @@ -230,11 +256,13 @@ description: Result of parsing user_reported_union_2_bug.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -247,6 +275,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createCube", "start": 0, "type": "Identifier" @@ -262,6 +291,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSketch", "start": 0, "type": "Identifier" @@ -269,13 +299,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -286,6 +319,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -293,9 +327,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -313,6 +349,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -327,13 +364,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -346,6 +386,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -359,6 +400,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -367,9 +409,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSize", "start": 0, "type": "Identifier" @@ -379,10 +423,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -407,13 +453,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -426,6 +475,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -439,6 +489,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -447,9 +498,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeLength", "start": 0, "type": "Identifier" @@ -459,10 +512,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -482,6 +537,7 @@ description: Result of parsing user_reported_union_2_bug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -492,9 +548,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -505,6 +563,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -517,6 +576,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -531,13 +591,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -550,6 +613,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -563,6 +627,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -571,9 +636,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSize", "start": 0, "type": "Identifier" @@ -583,10 +650,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -611,13 +680,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -630,6 +702,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -643,6 +716,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -651,9 +725,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeLength", "start": 0, "type": "Identifier" @@ -663,10 +739,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -686,6 +764,7 @@ description: Result of parsing user_reported_union_2_bug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -696,9 +775,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -709,6 +790,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -721,6 +803,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -735,13 +818,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -754,6 +840,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -767,6 +854,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -775,9 +863,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSize", "start": 0, "type": "Identifier" @@ -787,10 +877,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -815,13 +907,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -834,6 +929,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -847,6 +943,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -855,9 +952,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeLength", "start": 0, "type": "Identifier" @@ -867,10 +966,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -890,6 +991,7 @@ description: Result of parsing user_reported_union_2_bug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -900,9 +1002,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -913,6 +1017,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -925,6 +1030,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -939,13 +1045,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -958,6 +1067,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -971,6 +1081,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "-", "right": { "commentStart": 0, @@ -979,9 +1090,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSize", "start": 0, "type": "Identifier" @@ -991,10 +1104,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1019,13 +1134,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "commentStart": 0, "computed": false, "end": 0, + "moduleId": 0, "object": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1038,6 +1156,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "property": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "1", "start": 0, "type": "Literal", @@ -1051,6 +1170,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "MemberExpression", "type": "MemberExpression" }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, @@ -1059,9 +1179,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeLength", "start": 0, "type": "Identifier" @@ -1071,10 +1193,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1094,6 +1218,7 @@ description: Result of parsing user_reported_union_2_bug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1104,9 +1229,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1117,19 +1244,23 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1140,6 +1271,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1152,6 +1284,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -1159,6 +1292,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1174,6 +1308,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "y", "start": 0, "type": "Identifier" @@ -1186,9 +1321,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeLength", "start": 0, "type": "Identifier" @@ -1200,15 +1337,18 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1228,6 +1368,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "z", "start": 0, "type": "Identifier" @@ -1235,6 +1376,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1250,9 +1392,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "translate", "start": 0, "type": "Identifier" @@ -1263,6 +1407,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1271,15 +1416,18 @@ description: Result of parsing user_reported_union_2_bug.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -1292,6 +1440,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1300,9 +1449,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSize", "start": 0, "type": "Identifier" @@ -1318,9 +1469,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -1331,6 +1484,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1338,9 +1492,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSketch", "start": 0, "type": "Identifier" @@ -1353,6 +1509,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -1360,16 +1517,19 @@ description: Result of parsing user_reported_union_2_bug.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [ { "type": "Parameter", "identifier": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1380,11 +1540,13 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "preComments": [ "", "", @@ -1402,6 +1564,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube1", "start": 0, "type": "Identifier" @@ -1413,6 +1576,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "center", "start": 0, "type": "Identifier" @@ -1427,9 +1591,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cubeSpacing", "start": 0, "type": "Identifier" @@ -1439,10 +1605,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1460,9 +1628,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "delta", "start": 0, "type": "Identifier" @@ -1474,6 +1644,7 @@ description: Result of parsing user_reported_union_2_bug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1484,9 +1655,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "createCube", "start": 0, "type": "Identifier" @@ -1497,16 +1670,19 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1524,6 +1700,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleSketch", "start": 0, "type": "Identifier" @@ -1531,13 +1708,16 @@ description: Result of parsing user_reported_union_2_bug.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -1548,6 +1728,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1555,9 +1736,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -1575,6 +1758,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -1590,9 +1774,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleSide", "start": 0, "type": "Identifier" @@ -1604,15 +1790,18 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1629,6 +1818,7 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1640,6 +1830,7 @@ description: Result of parsing user_reported_union_2_bug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1650,9 +1841,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -1663,6 +1856,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1675,6 +1869,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1689,9 +1884,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleSide", "start": 0, "type": "Identifier" @@ -1701,10 +1898,12 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "2", "start": 0, "type": "Literal", @@ -1721,6 +1920,7 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -1732,6 +1932,7 @@ description: Result of parsing user_reported_union_2_bug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1742,6 +1943,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1749,6 +1951,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1760,9 +1963,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1773,6 +1978,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1785,6 +1991,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "end", "start": 0, "type": "Identifier" @@ -1800,9 +2007,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleSide", "start": 0, "type": "Identifier" @@ -1814,15 +2023,18 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", "type": "UnaryExpression" }, + "moduleId": 0, "operator": "/", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "4", "start": 0, "type": "Literal", @@ -1840,9 +2052,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleHeight", "start": 0, "type": "Identifier" @@ -1854,6 +2068,7 @@ description: Result of parsing user_reported_union_2_bug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -1864,6 +2079,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1871,6 +2087,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1882,9 +2099,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -1895,6 +2114,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1907,6 +2127,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "tag", "start": 0, "type": "Identifier" @@ -1914,6 +2135,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "TagDeclarator", "type": "TagDeclarator", @@ -1925,9 +2147,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -1938,6 +2162,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -1946,15 +2171,18 @@ description: Result of parsing user_reported_union_2_bug.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "", "", @@ -1972,6 +2200,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roundedTriangle", "start": 0, "type": "Identifier" @@ -1985,6 +2214,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -1992,6 +2222,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -2007,9 +2238,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -2020,6 +2253,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2027,9 +2261,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "triangleSketch", "start": 0, "type": "Identifier" @@ -2047,6 +2283,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roll", "start": 0, "type": "Identifier" @@ -2054,6 +2291,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "3", "start": 0, "type": "Literal", @@ -2069,6 +2307,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "pitch", "start": 0, "type": "Identifier" @@ -2076,6 +2315,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2091,6 +2331,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "yaw", "start": 0, "type": "Identifier" @@ -2098,6 +2339,7 @@ description: Result of parsing user_reported_union_2_bug.kcl "arg": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -2113,9 +2355,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "rotate", "start": 0, "type": "Identifier" @@ -2126,6 +2370,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2134,15 +2379,18 @@ description: Result of parsing user_reported_union_2_bug.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2155,18 +2403,22 @@ description: Result of parsing user_reported_union_2_bug.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "intermediateUnion1", "start": 0, "type": "Identifier" }, "init": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "union", "start": 0, "type": "Identifier" @@ -2177,6 +2429,7 @@ description: Result of parsing user_reported_union_2_bug.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -2187,9 +2440,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "roundedTriangle", "start": 0, "type": "Identifier" @@ -2203,9 +2458,11 @@ description: Result of parsing user_reported_union_2_bug.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "cube1", "start": 0, "type": "Identifier" @@ -2217,16 +2474,19 @@ description: Result of parsing user_reported_union_2_bug.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -2238,9 +2498,11 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "settings", "start": 0, "type": "Identifier" @@ -2252,19 +2514,23 @@ description: Result of parsing user_reported_union_2_bug.kcl "key": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "defaultLengthUnit", "start": 0, "type": "Identifier" }, + "moduleId": 0, "start": 0, "type": "ObjectProperty", "value": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "mm", "start": 0, "type": "Identifier" @@ -2280,12 +2546,14 @@ description: Result of parsing user_reported_union_2_bug.kcl "type": "Annotation" } ], + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "3": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2297,6 +2565,7 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2308,6 +2577,7 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2320,6 +2590,7 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2331,6 +2602,7 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2342,6 +2614,7 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2353,6 +2626,7 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { @@ -2362,6 +2636,7 @@ description: Result of parsing user_reported_union_2_bug.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/var_ref_in_own_def/ast.snap b/rust/kcl-lib/tests/var_ref_in_own_def/ast.snap index eb3b2ced8..227e6ec91 100644 --- a/rust/kcl-lib/tests/var_ref_in_own_def/ast.snap +++ b/rust/kcl-lib/tests/var_ref_in_own_def/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing var_ref_in_own_def.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing var_ref_in_own_def.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing var_ref_in_own_def.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing var_ref_in_own_def.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XY", "start": 0, "type": "Identifier" @@ -66,9 +73,11 @@ description: Result of parsing var_ref_in_own_def.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "sketch001", "start": 0, "type": "Identifier" @@ -84,9 +93,11 @@ description: Result of parsing var_ref_in_own_def.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfileAt", "start": 0, "type": "Identifier" @@ -97,6 +108,7 @@ description: Result of parsing var_ref_in_own_def.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -106,6 +118,7 @@ description: Result of parsing var_ref_in_own_def.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -119,6 +132,7 @@ description: Result of parsing var_ref_in_own_def.kcl "argument": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "20", "start": 0, "type": "Literal", @@ -130,6 +144,7 @@ description: Result of parsing var_ref_in_own_def.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "operator": "-", "start": 0, "type": "UnaryExpression", @@ -137,6 +152,7 @@ description: Result of parsing var_ref_in_own_def.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -145,15 +161,18 @@ description: Result of parsing var_ref_in_own_def.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "preComments": [ "// This won't work, because `sketch001` is being referenced in its own definition." ], @@ -164,6 +183,7 @@ description: Result of parsing var_ref_in_own_def.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/rust/kcl-lib/tests/var_ref_in_own_def_decl/ast.snap b/rust/kcl-lib/tests/var_ref_in_own_def_decl/ast.snap index f39f611aa..def025ee0 100644 --- a/rust/kcl-lib/tests/var_ref_in_own_def_decl/ast.snap +++ b/rust/kcl-lib/tests/var_ref_in_own_def_decl/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing var_ref_in_own_def_decl.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "declare", "start": 0, "type": "Identifier" @@ -28,6 +29,7 @@ description: Result of parsing var_ref_in_own_def_decl.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -35,6 +37,7 @@ description: Result of parsing var_ref_in_own_def_decl.kcl "init": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -44,11 +47,13 @@ description: Result of parsing var_ref_in_own_def_decl.kcl "suffix": "None" } }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -58,9 +63,11 @@ description: Result of parsing var_ref_in_own_def_decl.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -72,6 +79,7 @@ description: Result of parsing var_ref_in_own_def_decl.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "ReturnStatement", "type": "ReturnStatement" @@ -79,20 +87,24 @@ description: Result of parsing var_ref_in_own_def_decl.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 }, "commentStart": 0, "end": 0, + "moduleId": 0, "params": [], "start": 0, "type": "FunctionExpression", "type": "FunctionExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "fn", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -105,6 +117,7 @@ description: Result of parsing var_ref_in_own_def_decl.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -116,9 +129,11 @@ description: Result of parsing var_ref_in_own_def_decl.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "x", "start": 0, "type": "Identifier" @@ -128,15 +143,19 @@ description: Result of parsing var_ref_in_own_def_decl.kcl "type": "Name", "type": "Name" }, + "moduleId": 0, "operator": "+", "right": { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "declare", "start": 0, "type": "Identifier" @@ -147,6 +166,7 @@ description: Result of parsing var_ref_in_own_def_decl.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -156,11 +176,13 @@ description: Result of parsing var_ref_in_own_def_decl.kcl "type": "BinaryExpression", "type": "BinaryExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -168,12 +190,14 @@ description: Result of parsing var_ref_in_own_def_decl.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "nonCodeMeta": { "nonCodeNodes": { "0": [ { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "NonCodeNode", "value": { diff --git a/rust/kcl-lib/tests/xz_plane/ast.snap b/rust/kcl-lib/tests/xz_plane/ast.snap index dae6d6370..b9d6e3518 100644 --- a/rust/kcl-lib/tests/xz_plane/ast.snap +++ b/rust/kcl-lib/tests/xz_plane/ast.snap @@ -13,6 +13,7 @@ description: Result of parsing xz_plane.kcl "id": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "part001", "start": 0, "type": "Identifier" @@ -20,13 +21,16 @@ description: Result of parsing xz_plane.kcl "init": { "body": [ { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startSketchOn", "start": 0, "type": "Identifier" @@ -37,6 +41,7 @@ description: Result of parsing xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -44,9 +49,11 @@ description: Result of parsing xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "XZ", "start": 0, "type": "Identifier" @@ -64,6 +71,7 @@ description: Result of parsing xz_plane.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "at", "start": 0, "type": "Identifier" @@ -74,6 +82,7 @@ description: Result of parsing xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -86,6 +95,7 @@ description: Result of parsing xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -97,6 +107,7 @@ description: Result of parsing xz_plane.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -107,9 +118,11 @@ description: Result of parsing xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "startProfile", "start": 0, "type": "Identifier" @@ -120,6 +133,7 @@ description: Result of parsing xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -132,6 +146,7 @@ description: Result of parsing xz_plane.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -142,6 +157,7 @@ description: Result of parsing xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -154,6 +170,7 @@ description: Result of parsing xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -165,6 +182,7 @@ description: Result of parsing xz_plane.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -175,9 +193,11 @@ description: Result of parsing xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -188,6 +208,7 @@ description: Result of parsing xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -200,6 +221,7 @@ description: Result of parsing xz_plane.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "endAbsolute", "start": 0, "type": "Identifier" @@ -210,6 +232,7 @@ description: Result of parsing xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "100", "start": 0, "type": "Literal", @@ -222,6 +245,7 @@ description: Result of parsing xz_plane.kcl { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "0", "start": 0, "type": "Literal", @@ -233,6 +257,7 @@ description: Result of parsing xz_plane.kcl } ], "end": 0, + "moduleId": 0, "start": 0, "type": "ArrayExpression", "type": "ArrayExpression" @@ -243,9 +268,11 @@ description: Result of parsing xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "line", "start": 0, "type": "Identifier" @@ -256,19 +283,23 @@ description: Result of parsing xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": null }, { + "arguments": [], "callee": { "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "close", "start": 0, "type": "Identifier" @@ -279,12 +310,14 @@ description: Result of parsing xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", "unlabeled": { "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeSubstitution", "type": "PipeSubstitution" @@ -297,6 +330,7 @@ description: Result of parsing xz_plane.kcl "label": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "length", "start": 0, "type": "Identifier" @@ -307,6 +341,7 @@ description: Result of parsing xz_plane.kcl "left": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "5", "start": 0, "type": "Literal", @@ -316,10 +351,12 @@ description: Result of parsing xz_plane.kcl "suffix": "None" } }, + "moduleId": 0, "operator": "+", "right": { "commentStart": 0, "end": 0, + "moduleId": 0, "raw": "7", "start": 0, "type": "Literal", @@ -339,9 +376,11 @@ description: Result of parsing xz_plane.kcl "abs_path": false, "commentStart": 0, "end": 0, + "moduleId": 0, "name": { "commentStart": 0, "end": 0, + "moduleId": 0, "name": "extrude", "start": 0, "type": "Identifier" @@ -352,6 +391,7 @@ description: Result of parsing xz_plane.kcl }, "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "CallExpressionKw", "type": "CallExpressionKw", @@ -360,15 +400,18 @@ description: Result of parsing xz_plane.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0, "type": "PipeExpression", "type": "PipeExpression" }, + "moduleId": 0, "start": 0, "type": "VariableDeclarator" }, "end": 0, "kind": "const", + "moduleId": 0, "start": 0, "type": "VariableDeclaration", "type": "VariableDeclaration" @@ -376,6 +419,7 @@ description: Result of parsing xz_plane.kcl ], "commentStart": 0, "end": 0, + "moduleId": 0, "start": 0 } } diff --git a/src/lang/artifact.test.ts b/src/lang/artifact.test.ts index c6fcfe822..fc41f33d7 100644 --- a/src/lang/artifact.test.ts +++ b/src/lang/artifact.test.ts @@ -191,6 +191,7 @@ sk2 = startSketchOn(XY) tag: { end: 132, start: 130, + moduleId: expect.any(Number), commentStart: expect.any(Number), type: 'TagDeclarator', value: 'p', @@ -242,6 +243,7 @@ sk2 = startSketchOn(XY) tag: { end: expect.any(Number), start: expect.any(Number), + moduleId: expect.any(Number), commentStart: expect.any(Number), type: 'TagDeclarator', value: 'p', @@ -293,6 +295,7 @@ sk2 = startSketchOn(XY) tag: { end: expect.any(Number), start: expect.any(Number), + moduleId: expect.any(Number), commentStart: expect.any(Number), type: 'TagDeclarator', value: 'o', @@ -344,6 +347,7 @@ sk2 = startSketchOn(XY) tag: { end: expect.any(Number), start: expect.any(Number), + moduleId: expect.any(Number), commentStart: expect.any(Number), type: 'TagDeclarator', value: 'o', diff --git a/src/lang/executor.test.ts b/src/lang/executor.test.ts index 05d296644..f03578c27 100644 --- a/src/lang/executor.test.ts +++ b/src/lang/executor.test.ts @@ -75,6 +75,7 @@ newVar = myVar + 1` tag: { end: 103, start: 96, + moduleId: 0, commentStart: expect.any(Number), type: 'TagDeclarator', value: 'myPath', @@ -103,6 +104,7 @@ newVar = myVar + 1` tag: { end: 184, start: 174, + moduleId: 0, commentStart: expect.any(Number), type: 'TagDeclarator', value: 'rightPath', @@ -202,6 +204,7 @@ newVar = myVar + 1` tag: { end: 132, start: 125, + moduleId: 0, commentStart: expect.any(Number), type: 'TagDeclarator', value: 'myPath', diff --git a/src/lang/modifyAst/boolean.ts b/src/lang/modifyAst/boolean.ts index 6a9907fb5..1f5b38a4d 100644 --- a/src/lang/modifyAst/boolean.ts +++ b/src/lang/modifyAst/boolean.ts @@ -186,19 +186,17 @@ export function findAllChildrenAndOrderByPlaceInCode( const pushToSomething = ( resultId: string, - childrenIdOrIds: null | string | string[] + childrenIdOrIds: string | string[] | null | undefined ) => { if (isArray(childrenIdOrIds)) { if (childrenIdOrIds.length) { stack.push(...childrenIdOrIds) result.push(resultId) - } else { } } else { if (childrenIdOrIds) { stack.push(childrenIdOrIds) result.push(resultId) - } else { } } } diff --git a/src/lang/queryAst/getIdentifiersInProgram.test.ts b/src/lang/queryAst/getIdentifiersInProgram.test.ts index f6ae67c3c..86eb69483 100644 --- a/src/lang/queryAst/getIdentifiersInProgram.test.ts +++ b/src/lang/queryAst/getIdentifiersInProgram.test.ts @@ -7,6 +7,7 @@ function identifier(name: string, start: number, end: number) { type: 'Name', start, end, + moduleId: 0, commentStart: start, abs_path: false, @@ -14,6 +15,7 @@ function identifier(name: string, start: number, end: number) { name: { start, end, + moduleId: 0, commentStart: start, type: 'Identifier', name, diff --git a/src/lang/queryAst/getTagDeclaratorsInProgram.test.ts b/src/lang/queryAst/getTagDeclaratorsInProgram.test.ts index de8e54a6f..dd9f32ab2 100644 --- a/src/lang/queryAst/getTagDeclaratorsInProgram.test.ts +++ b/src/lang/queryAst/getTagDeclaratorsInProgram.test.ts @@ -14,6 +14,7 @@ function tagDeclaratorWithIndex( value, start, end, + moduleId: 0, commentStart: start, }, bodyIndex, diff --git a/src/lib/desktop.ts b/src/lib/desktop.ts index 5899710bc..3cdba649d 100644 --- a/src/lib/desktop.ts +++ b/src/lib/desktop.ts @@ -618,7 +618,7 @@ export const readProjectSettingsFile = async ( export const readAppSettingsFile = async () => { let settingsPath = await getAppSettingsFilePath() const initialProjectDirConfig: DeepPartial< - Configuration['settings']['project'] + NonNullable['settings']['project']> > = { directory: await getInitialDefaultDir() } // The file exists, read it and parse it. From 8d876a806ec85c2906814444b1a414447eb918d5 Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Tue, 24 Jun 2025 15:45:16 -0400 Subject: [PATCH 04/34] Enable optional arguments in point-and-click Revolve (#7590) * WIP: Enable optional arguments in point-and-click Revolve * Add e2e test step --- e2e/playwright/point-click.spec.ts | 30 ++++++++++++++++-- src/lang/modifyAst/addSweep.ts | 31 +++++++++++++++++++ .../modelingCommandConfig.ts | 14 +++++++++ src/lib/operations.ts | 31 +++++++++++++++++++ src/machines/modelingMachine.ts | 8 +---- 5 files changed, 104 insertions(+), 10 deletions(-) diff --git a/e2e/playwright/point-click.spec.ts b/e2e/playwright/point-click.spec.ts index 5822fc8bd..9841ce3bf 100644 --- a/e2e/playwright/point-click.spec.ts +++ b/e2e/playwright/point-click.spec.ts @@ -3881,6 +3881,8 @@ sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001) // Edit flow const newAngle = '270' + const newAngle2 = '5' + const editedCodeToFind = `revolve001 = revolve(sketch003, angle = ${newAngle}, axis = seg01, bidirectionalAngle = ${newAngle2}, )` await toolbar.openPane('feature-tree') const operationButton = await toolbar.getFeatureTreeOperation( 'Revolve', @@ -3906,11 +3908,33 @@ sketch002 = startSketchOn(extrude001, face = rectangleSegmentA001) }, commandName: 'Revolve', }) + await cmdBar.clickOptionalArgument('bidirectionalAngle') + await cmdBar.expectState({ + commandName: 'Revolve', + currentArgKey: 'bidirectionalAngle', + currentArgValue: '', + headerArguments: { + Angle: newAngle, + BidirectionalAngle: '', + }, + highlightedHeaderArg: 'bidirectionalAngle', + stage: 'arguments', + }) + await page.keyboard.insertText(newAngle2) await cmdBar.progressCmdBar() + await cmdBar.expectState({ + stage: 'review', + headerArguments: { + Angle: newAngle, + BidirectionalAngle: newAngle2, + }, + commandName: 'Revolve', + }) + await cmdBar.submit() await toolbar.closePane('feature-tree') - await editor.expectEditor.toContain( - newCodeToFind.replace('angle = 360', 'angle = ' + newAngle) - ) + await editor.expectEditor.toContain(editedCodeToFind, { + shouldNormalise: true, + }) }) }) diff --git a/src/lang/modifyAst/addSweep.ts b/src/lang/modifyAst/addSweep.ts index d42e77003..4a8c5201f 100644 --- a/src/lang/modifyAst/addSweep.ts +++ b/src/lang/modifyAst/addSweep.ts @@ -315,6 +315,8 @@ export function addRevolve({ axisOrEdge, axis, edge, + symmetric, + bidirectionalAngle, nodeToEdit, }: { ast: Node @@ -323,6 +325,8 @@ export function addRevolve({ axisOrEdge: 'Axis' | 'Edge' axis: string | undefined edge: Selections | undefined + symmetric?: boolean + bidirectionalAngle?: KclCommandValue nodeToEdit?: PathToNode }): | { @@ -355,10 +359,25 @@ export function addRevolve({ return new Error('Generated axis selection is missing.') } + // Extra labeled args expressions + const symmetricExpr = symmetric + ? [createLabeledArg('symmetric', createLiteral(symmetric))] + : [] + const bidirectionalAngleExpr = bidirectionalAngle + ? [ + createLabeledArg( + 'bidirectionalAngle', + valueOrVariable(bidirectionalAngle) + ), + ] + : [] + const sketchesExpr = createSketchExpression(sketchesExprList) const call = createCallExpressionStdLibKw('revolve', sketchesExpr, [ createLabeledArg('angle', valueOrVariable(angle)), createLabeledArg('axis', getAxisResult.generatedAxis), + ...symmetricExpr, + ...bidirectionalAngleExpr, ]) // Insert variables for labeled arguments if provided @@ -366,6 +385,18 @@ export function addRevolve({ insertVariableAndOffsetPathToNode(angle, modifiedAst, nodeToEdit) } + if ( + bidirectionalAngle && + 'variableName' in bidirectionalAngle && + bidirectionalAngle.variableName + ) { + insertVariableAndOffsetPathToNode( + bidirectionalAngle, + modifiedAst, + nodeToEdit + ) + } + // 3. If edit, we assign the new function call declaration to the existing node, // otherwise just push to the end let pathToNode: PathToNode | undefined diff --git a/src/lib/commandBarConfigs/modelingCommandConfig.ts b/src/lib/commandBarConfigs/modelingCommandConfig.ts index 830bf8164..58e73f515 100644 --- a/src/lib/commandBarConfigs/modelingCommandConfig.ts +++ b/src/lib/commandBarConfigs/modelingCommandConfig.ts @@ -105,6 +105,8 @@ export type ModelingCommandSchema = { angle: KclCommandValue axis: string | undefined edge: Selections | undefined + symmetric?: boolean + bidirectionalAngle?: KclCommandValue } Shell: { // Enables editing workflow @@ -552,6 +554,18 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< defaultValue: KCL_DEFAULT_DEGREE, required: true, }, + symmetric: { + inputType: 'options', + required: false, + options: [ + { name: 'False', value: false }, + { name: 'True', value: true }, + ], + }, + bidirectionalAngle: { + inputType: 'kcl', + required: false, + }, }, }, Shell: { diff --git a/src/lib/operations.ts b/src/lib/operations.ts index 933d9910d..4bf217a70 100644 --- a/src/lib/operations.ts +++ b/src/lib/operations.ts @@ -1029,6 +1029,35 @@ const prepareToEditRevolve: PrepareToEditCallback = async ({ return { reason: 'Error in angle argument retrieval' } } + // symmetric argument from a string to boolean + let symmetric: boolean | undefined + if ('symmetric' in operation.labeledArgs && operation.labeledArgs.symmetric) { + symmetric = + codeManager.code.slice( + operation.labeledArgs.symmetric.sourceRange[0], + operation.labeledArgs.symmetric.sourceRange[1] + ) === 'true' + } + + // bidirectionalLength argument from a string to a KCL expression + let bidirectionalAngle: KclCommandValue | undefined + if ( + 'bidirectionalAngle' in operation.labeledArgs && + operation.labeledArgs.bidirectionalAngle + ) { + const result = await stringToKclExpression( + codeManager.code.slice( + operation.labeledArgs.bidirectionalAngle.sourceRange[0], + operation.labeledArgs.bidirectionalAngle.sourceRange[1] + ) + ) + if (err(result) || 'errors' in result) { + return { reason: "Couldn't retrieve bidirectionalAngle argument" } + } + + bidirectionalAngle = result + } + // 3. Assemble the default argument values for the command, // with `nodeToEdit` set, which will let the actor know // to edit the node that corresponds to the StdLibCall. @@ -1038,6 +1067,8 @@ const prepareToEditRevolve: PrepareToEditCallback = async ({ axis, edge, angle, + symmetric, + bidirectionalAngle, nodeToEdit: pathToNodeFromRustNodePath(operation.nodePath), } return { diff --git a/src/machines/modelingMachine.ts b/src/machines/modelingMachine.ts index 543974717..d409b5d75 100644 --- a/src/machines/modelingMachine.ts +++ b/src/machines/modelingMachine.ts @@ -2547,16 +2547,10 @@ export const modelingMachine = setup({ return Promise.reject(new Error(NO_INPUT_PROVIDED_MESSAGE)) } - const { nodeToEdit, sketches, angle, axis, edge, axisOrEdge } = input const { ast } = kclManager const astResult = addRevolve({ ast, - sketches, - angle, - axisOrEdge, - axis, - edge, - nodeToEdit, + ...input, }) if (err(astResult)) { return Promise.reject(astResult) From 0ad619e1d2ea2b0cefed5ba32f0efd8d63301e8e Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Tue, 24 Jun 2025 15:56:55 -0400 Subject: [PATCH 05/34] Change to use doc comments (#7596) --- src/lib/rustContext.ts | 48 ++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/lib/rustContext.ts b/src/lib/rustContext.ts index a09736607..d592d7389 100644 --- a/src/lib/rustContext.ts +++ b/src/lib/rustContext.ts @@ -30,7 +30,7 @@ export default class RustContext { private _defaultPlanes: DefaultPlanes | null = null private engineCommandManager: EngineCommandManager - // Initialize the WASM module + /** Initialize the WASM module */ async ensureWasmInit() { try { await initPromise @@ -53,7 +53,7 @@ export default class RustContext { .catch(reportRejection) } - // Create a new context instance + /** Create a new context instance */ async create(): Promise { this.rustInstance = getModule() @@ -68,7 +68,7 @@ export default class RustContext { return ctxInstance } - // Execute a program. + /** Execute a program. */ async execute( node: Node, settings: DeepPartial, @@ -82,7 +82,7 @@ export default class RustContext { path, JSON.stringify(settings) ) - /* Set the default planes, safe to call after execute. */ + // Set the default planes, safe to call after execute. const outcome = execStateFromRust(result) this._defaultPlanes = outcome.defaultPlanes @@ -96,7 +96,7 @@ export default class RustContext { } } - // Execute a program with in mock mode. + /** Execute a program with in mock mode. */ async executeMock( node: Node, settings: DeepPartial, @@ -122,7 +122,7 @@ export default class RustContext { } } - // Export a scene to a file. + /** Export a scene to a file. */ async export( format: DeepPartial, settings: DeepPartial, @@ -150,20 +150,22 @@ export default class RustContext { return this._defaultPlanes } - // Clear/reset the scene and bust the cache. - // Do not use this function unless you absolutely need to. In most cases, - // we should just fix the cache for whatever bug you are seeing. - // The only time it makes sense to run this is if the engine disconnects and - // reconnects. The rust side has no idea that happened and will think the - // cache is still valid. - // Caching on the rust side accounts for changes to files outside of the - // scope of the current file the user is on. It collects all the dependencies - // and checks if any of them have changed. If they have, it will bust the - // cache and recompile the scene. - // The typescript side should never raw dog clear the scene since that would - // fuck with the cache as well. So if you _really_ want to just clear the scene - // AND NOT re-execute, you can use this for that. But in 99.999999% of cases just - // re-execute. + /** + * Clear/reset the scene and bust the cache. + * Do not use this function unless you absolutely need to. In most cases, + * we should just fix the cache for whatever bug you are seeing. + * The only time it makes sense to run this is if the engine disconnects and + * reconnects. The rust side has no idea that happened and will think the + * cache is still valid. + * Caching on the rust side accounts for changes to files outside of the + * scope of the current file the user is on. It collects all the dependencies + * and checks if any of them have changed. If they have, it will bust the + * cache and recompile the scene. + * The typescript side should never raw dog clear the scene since that would + * fuck with the cache as well. So if you _really_ want to just clear the scene + * AND NOT re-execute, you can use this for that. But in 99.999999% of cases just + * re-execute. + */ async clearSceneAndBustCache( settings: DeepPartial, path?: string @@ -199,7 +201,7 @@ export default class RustContext { return this.defaultPlanes[key] } - // Send a response back to the rust side, that we got back from the engine. + /** Send a response back to the rust side, that we got back from the engine. */ async sendResponse( response: Models['WebSocketResponse_type'] ): Promise { @@ -214,7 +216,7 @@ export default class RustContext { } } - // Helper to check if context instance exists + /** Helper to check if context instance exists */ private async _checkInstance(): Promise { if (!this.ctxInstance) { // Create the context instance. @@ -224,7 +226,7 @@ export default class RustContext { return this.ctxInstance } - // Clean up resources + /** Clean up resources */ destroy() { if (this.ctxInstance) { // In a real implementation, you might need to manually free resources From 6f1a539e832be2e6dc953095716c554e0391d354 Mon Sep 17 00:00:00 2001 From: Nick Cameron Date: Wed, 25 Jun 2025 20:36:57 +1200 Subject: [PATCH 06/34] Error on non-count indexing (#7539) Signed-off-by: Nick Cameron --- rust/kcl-lib/src/execution/exec_ast.rs | 49 +++++++++++++++++++++----- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/rust/kcl-lib/src/execution/exec_ast.rs b/rust/kcl-lib/src/execution/exec_ast.rs index 54219fa3a..9c60e4393 100644 --- a/rust/kcl-lib/src/execution/exec_ast.rs +++ b/rust/kcl-lib/src/execution/exec_ast.rs @@ -17,11 +17,14 @@ use crate::{ }, fmt, modules::{ModuleId, ModulePath, ModuleRepr}, - parsing::ast::types::{ - Annotation, ArrayExpression, ArrayRangeExpression, AscribedExpression, BinaryExpression, BinaryOperator, - BinaryPart, BodyItem, Expr, IfExpression, ImportPath, ImportSelector, ItemVisibility, LiteralIdentifier, - LiteralValue, MemberExpression, Name, Node, NodeRef, ObjectExpression, PipeExpression, Program, TagDeclarator, - Type, UnaryExpression, UnaryOperator, + parsing::{ + ast::types::{ + Annotation, ArrayExpression, ArrayRangeExpression, AscribedExpression, BinaryExpression, BinaryOperator, + BinaryPart, BodyItem, Expr, IfExpression, ImportPath, ImportSelector, ItemVisibility, LiteralIdentifier, + LiteralValue, MemberExpression, Name, Node, NodeRef, ObjectExpression, PipeExpression, Program, + TagDeclarator, Type, UnaryExpression, UnaryOperator, + }, + token::NumericSuffix, }, source_range::SourceRange, std::args::TyF64, @@ -1666,12 +1669,18 @@ impl Property { LiteralIdentifier::Literal(literal) => { let value = literal.value.clone(); match value { - LiteralValue::Number { value, .. } => { + n @ LiteralValue::Number { value, suffix } => { + if !matches!(suffix, NumericSuffix::None | NumericSuffix::Count) { + return Err(KclError::new_semantic(KclErrorDetails::new( + format!("{n} is not a valid index, indices must be non-dimensional numbers"), + property_sr, + ))); + } if let Some(x) = crate::try_f64_to_usize(value) { Ok(Property::UInt(x)) } else { Err(KclError::new_semantic(KclErrorDetails::new( - format!("{value} is not a valid index, indices must be whole numbers >= 0"), + format!("{n} is not a valid index, indices must be whole numbers >= 0"), property_sr, ))) } @@ -1690,10 +1699,13 @@ fn jvalue_to_prop(value: &KclValue, property_sr: Vec, name: &str) - let make_err = |message: String| Err::(KclError::new_semantic(KclErrorDetails::new(message, property_sr))); match value { - KclValue::Number{value: num, .. } => { + n @ KclValue::Number{value: num, ty, .. } => { + if !matches!(ty, NumericType::Known(crate::exec::UnitType::Count) | NumericType::Default { .. } | NumericType::Any ) { + return make_err(format!("arrays can only be indexed by non-dimensioned numbers, found {}", n.human_friendly_type())); + } let num = *num; if num < 0.0 { - return make_err(format!("'{num}' is negative, so you can't index an array with it")) + return make_err(format!("'{num}' is negative, so you can't index an array with it")); } let nearest_int = crate::try_f64_to_usize(num); if let Some(nearest_int) = nearest_int { @@ -2141,4 +2153,23 @@ c = ((PI * 2) / 3): number(deg) let result = parse_execute(ast).await.unwrap(); assert_eq!(result.exec_state.errors().len(), 2); } + + #[tokio::test(flavor = "multi_thread")] + async fn non_count_indexing() { + let ast = r#"x = [0, 0] +y = x[1mm] +"#; + parse_execute(ast).await.unwrap_err(); + + let ast = r#"x = [0, 0] +y = 1deg +z = x[y] +"#; + parse_execute(ast).await.unwrap_err(); + + let ast = r#"x = [0, 0] +y = x[0mm + 1] +"#; + parse_execute(ast).await.unwrap_err(); + } } From 78278d68894cfe1d7dbfc0c421a86981da78d37f Mon Sep 17 00:00:00 2001 From: Jace Browning Date: Wed, 25 Jun 2025 10:42:39 -0400 Subject: [PATCH 07/34] Force the samples manifest to be updated (#7591) * Force the samples manifest to be updated * Skip manifest generation on Windows This results in non-POSIX paths in the manifest. --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index adacc8fe8..f43129162 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,10 @@ else endif public/kcl-samples/manifest.json: $(KCL_SOURCES) +ifndef WINDOWS cd rust/kcl-lib && EXPECTORATE=overwrite cargo test generate_manifest + @ touch $@ +endif .vite/build/main.js: $(REACT_SOURCES) $(TYPESCRIPT_SOURCES) $(VITE_SOURCES) npm run tronb:vite:dev From 0a1f35b89a73d63473c0019f59a36b685fa2b7ec Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Wed, 25 Jun 2025 10:42:57 -0400 Subject: [PATCH 08/34] Release KCL 83 (#7603) --- rust/Cargo.lock | 20 ++++++++++---------- rust/kcl-bumper/Cargo.toml | 2 +- rust/kcl-derive-docs/Cargo.toml | 2 +- rust/kcl-directory-test-macro/Cargo.toml | 2 +- rust/kcl-language-server-release/Cargo.toml | 2 +- rust/kcl-language-server/Cargo.toml | 2 +- rust/kcl-lib/Cargo.toml | 2 +- rust/kcl-python-bindings/Cargo.toml | 2 +- rust/kcl-test-server/Cargo.toml | 2 +- rust/kcl-to-core/Cargo.toml | 2 +- rust/kcl-wasm-lib/Cargo.toml | 2 +- 11 files changed, 20 insertions(+), 20 deletions(-) diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 894fdcbae..74c2be1c6 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -1814,7 +1814,7 @@ dependencies = [ [[package]] name = "kcl-bumper" -version = "0.1.82" +version = "0.1.83" dependencies = [ "anyhow", "clap", @@ -1825,7 +1825,7 @@ dependencies = [ [[package]] name = "kcl-derive-docs" -version = "0.1.82" +version = "0.1.83" dependencies = [ "proc-macro2", "quote", @@ -1834,7 +1834,7 @@ dependencies = [ [[package]] name = "kcl-directory-test-macro" -version = "0.1.82" +version = "0.1.83" dependencies = [ "convert_case", "proc-macro2", @@ -1844,7 +1844,7 @@ dependencies = [ [[package]] name = "kcl-language-server" -version = "0.2.82" +version = "0.2.83" dependencies = [ "anyhow", "clap", @@ -1865,7 +1865,7 @@ dependencies = [ [[package]] name = "kcl-language-server-release" -version = "0.1.82" +version = "0.1.83" dependencies = [ "anyhow", "clap", @@ -1885,7 +1885,7 @@ dependencies = [ [[package]] name = "kcl-lib" -version = "0.2.82" +version = "0.2.83" dependencies = [ "anyhow", "approx 0.5.1", @@ -1962,7 +1962,7 @@ dependencies = [ [[package]] name = "kcl-python-bindings" -version = "0.3.82" +version = "0.3.83" dependencies = [ "anyhow", "kcl-lib", @@ -1977,7 +1977,7 @@ dependencies = [ [[package]] name = "kcl-test-server" -version = "0.1.82" +version = "0.1.83" dependencies = [ "anyhow", "hyper 0.14.32", @@ -1990,7 +1990,7 @@ dependencies = [ [[package]] name = "kcl-to-core" -version = "0.1.82" +version = "0.1.83" dependencies = [ "anyhow", "async-trait", @@ -2004,7 +2004,7 @@ dependencies = [ [[package]] name = "kcl-wasm-lib" -version = "0.1.82" +version = "0.1.83" dependencies = [ "anyhow", "bson", diff --git a/rust/kcl-bumper/Cargo.toml b/rust/kcl-bumper/Cargo.toml index c4fcef73d..16dee4e08 100644 --- a/rust/kcl-bumper/Cargo.toml +++ b/rust/kcl-bumper/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-bumper" -version = "0.1.82" +version = "0.1.83" edition = "2021" repository = "https://github.com/KittyCAD/modeling-api" rust-version = "1.76" diff --git a/rust/kcl-derive-docs/Cargo.toml b/rust/kcl-derive-docs/Cargo.toml index e357f366e..9040377df 100644 --- a/rust/kcl-derive-docs/Cargo.toml +++ b/rust/kcl-derive-docs/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-derive-docs" description = "A tool for generating documentation from Rust derive macros" -version = "0.1.82" +version = "0.1.83" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/rust/kcl-directory-test-macro/Cargo.toml b/rust/kcl-directory-test-macro/Cargo.toml index 28012b624..113de027a 100644 --- a/rust/kcl-directory-test-macro/Cargo.toml +++ b/rust/kcl-directory-test-macro/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-directory-test-macro" description = "A tool for generating tests from a directory of kcl files" -version = "0.1.82" +version = "0.1.83" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/rust/kcl-language-server-release/Cargo.toml b/rust/kcl-language-server-release/Cargo.toml index ee0e3cbd1..f7d51e4e1 100644 --- a/rust/kcl-language-server-release/Cargo.toml +++ b/rust/kcl-language-server-release/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-language-server-release" -version = "0.1.82" +version = "0.1.83" edition = "2021" authors = ["KittyCAD Inc "] publish = false diff --git a/rust/kcl-language-server/Cargo.toml b/rust/kcl-language-server/Cargo.toml index 1024176a3..5b529de7a 100644 --- a/rust/kcl-language-server/Cargo.toml +++ b/rust/kcl-language-server/Cargo.toml @@ -2,7 +2,7 @@ name = "kcl-language-server" description = "A language server for KCL." authors = ["KittyCAD Inc "] -version = "0.2.82" +version = "0.2.83" edition = "2021" license = "MIT" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/rust/kcl-lib/Cargo.toml b/rust/kcl-lib/Cargo.toml index 33d617d06..2b9643188 100644 --- a/rust/kcl-lib/Cargo.toml +++ b/rust/kcl-lib/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-lib" description = "KittyCAD Language implementation and tools" -version = "0.2.82" +version = "0.2.83" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/rust/kcl-python-bindings/Cargo.toml b/rust/kcl-python-bindings/Cargo.toml index ad36c1b99..8d6cde759 100644 --- a/rust/kcl-python-bindings/Cargo.toml +++ b/rust/kcl-python-bindings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-python-bindings" -version = "0.3.82" +version = "0.3.83" edition = "2021" repository = "https://github.com/kittycad/modeling-app" exclude = ["tests/*", "files/*", "venv/*"] diff --git a/rust/kcl-test-server/Cargo.toml b/rust/kcl-test-server/Cargo.toml index 0f054b84a..5a16659f0 100644 --- a/rust/kcl-test-server/Cargo.toml +++ b/rust/kcl-test-server/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-test-server" description = "A test server for KCL" -version = "0.1.82" +version = "0.1.83" edition = "2021" license = "MIT" diff --git a/rust/kcl-to-core/Cargo.toml b/rust/kcl-to-core/Cargo.toml index eec3c8aae..8f73372a7 100644 --- a/rust/kcl-to-core/Cargo.toml +++ b/rust/kcl-to-core/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-to-core" description = "Utility methods to convert kcl to engine core executable tests" -version = "0.1.82" +version = "0.1.83" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/rust/kcl-wasm-lib/Cargo.toml b/rust/kcl-wasm-lib/Cargo.toml index 942a874ed..5db47e99a 100644 --- a/rust/kcl-wasm-lib/Cargo.toml +++ b/rust/kcl-wasm-lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-wasm-lib" -version = "0.1.82" +version = "0.1.83" edition = "2021" repository = "https://github.com/KittyCAD/modeling-app" rust-version = "1.83" From e1ab6bbc48d0185150882470aee4b7d0353fb605 Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Wed, 25 Jun 2025 12:48:02 -0400 Subject: [PATCH 09/34] Swap "must" for "should" in identifier casing lint (#7604) Draft: Swap "must" for "should" in identifier casing lint --- e2e/playwright/editor-tests.spec.ts | 10 +++++----- rust/kcl-lib/src/lint/checks/camel_case.rs | 4 ++-- rust/kcl-lib/src/lsp/tests.rs | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/e2e/playwright/editor-tests.spec.ts b/e2e/playwright/editor-tests.spec.ts index 77af3949b..e54a79c01 100644 --- a/e2e/playwright/editor-tests.spec.ts +++ b/e2e/playwright/editor-tests.spec.ts @@ -288,7 +288,7 @@ a1 = startSketchOn(offsetPlane(XY, offset = 10)) // error text on hover await page.hover('.cm-lint-marker-info') await expect( - page.getByText('Identifiers must be lowerCamelCase').first() + page.getByText('Identifiers should be lowerCamelCase').first() ).toBeVisible() await page.locator('#code-pane button:first-child').click() @@ -314,7 +314,7 @@ sketch_001 = startSketchOn(XY) // error text on hover await page.hover('.cm-lint-marker-info') await expect( - page.getByText('Identifiers must be lowerCamelCase').first() + page.getByText('Identifiers should be lowerCamelCase').first() ).toBeVisible() }) @@ -511,7 +511,7 @@ sketch_001 = startSketchOn(XY) // error text on hover await page.hover('.cm-lint-marker-info') await expect( - page.getByText('Identifiers must be lowerCamelCase').first() + page.getByText('Identifiers should be lowerCamelCase').first() ).toBeVisible() // focus the editor @@ -539,7 +539,7 @@ sketch_001 = startSketchOn(XY) // error text on hover await page.hover('.cm-lint-marker-info') await expect( - page.getByText('Identifiers must be lowerCamelCase').first() + page.getByText('Identifiers should be lowerCamelCase').first() ).toBeVisible() }) @@ -681,7 +681,7 @@ a1 = startSketchOn(offsetPlane(XY, offset = 10)) // error text on hover await page.hover('.cm-lint-marker-info') await expect( - page.getByText('Identifiers must be lowerCamelCase').first() + page.getByText('Identifiers should be lowerCamelCase').first() ).toBeVisible() // select the line that's causing the error and delete it diff --git a/rust/kcl-lib/src/lint/checks/camel_case.rs b/rust/kcl-lib/src/lint/checks/camel_case.rs index 7433eb4a7..ce73c158b 100644 --- a/rust/kcl-lib/src/lint/checks/camel_case.rs +++ b/rust/kcl-lib/src/lint/checks/camel_case.rs @@ -11,10 +11,10 @@ use crate::{ def_finding!( Z0001, - "Identifiers must be lowerCamelCase", + "Identifiers should be lowerCamelCase", "\ By convention, variable names are lowerCamelCase, not snake_case, kebab-case, -nor CammelCase. 🐪 +nor upper CamelCase (aka PascalCase). 🐪 For instance, a good identifier for the variable representing 'box height' would be 'boxHeight', not 'BOX_HEIGHT', 'box_height' nor 'BoxHeight'. For diff --git a/rust/kcl-lib/src/lsp/tests.rs b/rust/kcl-lib/src/lsp/tests.rs index 0ff6de881..9cafad993 100644 --- a/rust/kcl-lib/src/lsp/tests.rs +++ b/rust/kcl-lib/src/lsp/tests.rs @@ -2359,7 +2359,7 @@ async fn test_kcl_lsp_diagnostic_has_lints() { assert_eq!(diagnostics.full_document_diagnostic_report.items.len(), 1); assert_eq!( diagnostics.full_document_diagnostic_report.items[0].message, - "Identifiers must be lowerCamelCase" + "Identifiers should be lowerCamelCase" ); } else { panic!("Expected full diagnostics"); From df808b3e5876abcfa938a1770ec34af3e417b9b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Jun 2025 13:33:09 -0400 Subject: [PATCH 10/34] Bump google-github-actions/auth from 2.1.8 to 2.1.10 in the patch group across 1 directory (#6566) Bump google-github-actions/auth in the patch group across 1 directory Bumps the patch group with 1 update in the / directory: [google-github-actions/auth](https://github.com/google-github-actions/auth). Updates `google-github-actions/auth` from 2.1.8 to 2.1.10 - [Release notes](https://github.com/google-github-actions/auth/releases) - [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md) - [Commits](https://github.com/google-github-actions/auth/compare/v2.1.8...v2.1.10) --- updated-dependencies: - dependency-name: google-github-actions/auth dependency-version: 2.1.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Jacquier --- .github/workflows/build-apps.yml | 2 +- .github/workflows/kcl-language-server.yml | 2 +- .github/workflows/publish-apps-release.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-apps.yml b/.github/workflows/build-apps.yml index f9f1a82f2..839ec313f 100644 --- a/.github/workflows/build-apps.yml +++ b/.github/workflows/build-apps.yml @@ -362,7 +362,7 @@ jobs: - name: Authenticate to Google Cloud if: ${{ env.IS_STAGING == 'true' }} - uses: 'google-github-actions/auth@v2.1.8' + uses: 'google-github-actions/auth@v2.1.10' with: credentials_json: '${{ secrets.GOOGLE_CLOUD_DL_SA }}' diff --git a/.github/workflows/kcl-language-server.yml b/.github/workflows/kcl-language-server.yml index 43d48f3fa..90b7ae2a9 100644 --- a/.github/workflows/kcl-language-server.yml +++ b/.github/workflows/kcl-language-server.yml @@ -328,7 +328,7 @@ jobs: mkdir -p releases/language-server/${{ env.TAG }} cp -r build/* releases/language-server/${{ env.TAG }} - name: "Authenticate to Google Cloud" - uses: "google-github-actions/auth@v2.1.8" + uses: "google-github-actions/auth@v2.1.10" with: credentials_json: "${{ secrets.GOOGLE_CLOUD_DL_SA }}" - name: Set up Cloud SDK diff --git a/.github/workflows/publish-apps-release.yml b/.github/workflows/publish-apps-release.yml index 8c6ec1e81..e75144b7d 100644 --- a/.github/workflows/publish-apps-release.yml +++ b/.github/workflows/publish-apps-release.yml @@ -108,7 +108,7 @@ jobs: run: npm run files:set-notes - name: Authenticate to Google Cloud - uses: 'google-github-actions/auth@v2.1.8' + uses: 'google-github-actions/auth@v2.1.10' with: credentials_json: '${{ secrets.GOOGLE_CLOUD_DL_SA }}' From 344fb6f84dec40584961d1aac3a7ffbcc04a73fa Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Thu, 26 Jun 2025 14:12:36 -0400 Subject: [PATCH 11/34] Hide Helix arguments that should have been hidden, plus other flow fixes (#7606) * Make sure mode-related args are hidden in point-and-click commands after option args change Fixes #7589 * WIP improving helix flows and fixing tests * Fix 2 more tests * Add test step for opt arg * Fix last helix test * Clean up tests, hope to fix CI --- e2e/playwright/point-click.spec.ts | 484 ++++++++++-------- src/lang/modifyAst.ts | 7 +- .../modelingCommandConfig.ts | 43 +- 3 files changed, 287 insertions(+), 247 deletions(-) diff --git a/e2e/playwright/point-click.spec.ts b/e2e/playwright/point-click.spec.ts index 9841ce3bf..780269cd6 100644 --- a/e2e/playwright/point-click.spec.ts +++ b/e2e/playwright/point-click.spec.ts @@ -7,6 +7,7 @@ import type { SceneFixture } from '@e2e/playwright/fixtures/sceneFixture' import type { ToolbarFixture } from '@e2e/playwright/fixtures/toolbarFixture' import { expect, test } from '@e2e/playwright/zoo-test' import { bracket } from '@e2e/playwright/fixtures/bracket' +import type { CmdBarSerialised } from '@e2e/playwright/fixtures/cmdBarFixture' // test file is for testing point an click code gen functionality that's not sketch mode related @@ -1141,6 +1142,20 @@ openSketch = startSketchOn(XY) }) }) + const initialCmdBarStateHelix: CmdBarSerialised = { + stage: 'arguments', + currentArgKey: 'mode', + currentArgValue: '', + headerArguments: { + Mode: '', + AngleStart: '', + Revolutions: '', + Radius: '', + }, + highlightedHeaderArg: 'mode', + commandName: 'Helix', + } + test('Helix point-and-click on default axis', async ({ context, page, @@ -1150,30 +1165,14 @@ openSketch = startSketchOn(XY) toolbar, cmdBar, }) => { - // One dumb hardcoded screen pixel value - const testPoint = { x: 620, y: 257 } - const expectedOutput = `helix001 = helix( axis = X, radius = 5, length = 5, revolutions = 1, angleStart = 270, ccw = false,)` + const expectedOutput = `helix001 = helix( axis = X, radius = 5, length = 5, revolutions = 1, angleStart = 270,)` const expectedLine = `axis=X,` - await homePage.goToModelingScene() await scene.connectionEstablished() await test.step(`Go through the command bar flow`, async () => { await toolbar.helixButton.click() - await cmdBar.expectState({ - stage: 'arguments', - currentArgKey: 'mode', - currentArgValue: '', - headerArguments: { - Mode: '', - AngleStart: '', - Revolutions: '', - Radius: '', - CounterClockWise: '', - }, - highlightedHeaderArg: 'mode', - commandName: 'Helix', - }) + await cmdBar.expectState(initialCmdBarStateHelix) await cmdBar.progressCmdBar() await expect.poll(() => page.getByText('Axis').count()).toBe(6) await cmdBar.progressCmdBar() @@ -1190,7 +1189,6 @@ openSketch = startSketchOn(XY) AngleStart: '', Length: '', Radius: '', - CounterClockWise: '', }, commandName: 'Helix', }) @@ -1207,11 +1205,10 @@ openSketch = startSketchOn(XY) Revolutions: '1', Length: '5', Radius: '5', - CounterClockWise: '', }, commandName: 'Helix', }) - await cmdBar.progressCmdBar() + await cmdBar.submit() }) await test.step(`Confirm code is added to the editor, scene has changed`, async () => { @@ -1221,8 +1218,6 @@ openSketch = startSketchOn(XY) activeLines: [expectedLine], highlightedCode: '', }) - // Red plane is now gone, white helix is there - await scene.expectPixelColor([250, 250, 250], testPoint, 15) }) await test.step(`Edit helix through the feature tree`, async () => { @@ -1234,21 +1229,18 @@ openSketch = startSketchOn(XY) await cmdBar.expectState({ commandName: 'Helix', stage: 'arguments', - currentArgKey: 'CounterClockWise', - currentArgValue: '', + currentArgKey: 'length', + currentArgValue: '5', headerArguments: { Axis: 'X', AngleStart: '270', Revolutions: '1', Radius: '5', Length: initialInput, - CounterClockWise: '', }, - highlightedHeaderArg: 'CounterClockWise', + highlightedHeaderArg: 'length', }) - await page.keyboard.press('Shift+Backspace') - await expect(cmdBar.currentArgumentInput).toBeVisible() - await cmdBar.currentArgumentInput.locator('.cm-content').fill(newInput) + await page.keyboard.insertText(newInput) await cmdBar.progressCmdBar() await cmdBar.expectState({ stage: 'review', @@ -1258,11 +1250,10 @@ openSketch = startSketchOn(XY) Revolutions: '1', Radius: '5', Length: newInput, - CounterClockWise: '', }, commandName: 'Helix', }) - await cmdBar.progressCmdBar() + await cmdBar.submit() await toolbar.closeFeatureTreePane() await editor.openPane() await editor.expectEditor.toContain('length = ' + newInput) @@ -1273,174 +1264,238 @@ openSketch = startSketchOn(XY) const operationButton = await toolbar.getFeatureTreeOperation('Helix', 0) await operationButton.click({ button: 'left' }) await page.keyboard.press('Delete') - // Red plane is back - await scene.expectPixelColor([96, 52, 52], testPoint, 15) + await scene.settled(cmdBar) + await editor.expectEditor.not.toContain('helix') + await expect( + await toolbar.getFeatureTreeOperation('Helix', 0) + ).not.toBeVisible() }) }) - const helixCases = [ - { - selectionType: 'segment', - testPoint: { x: 513, y: 221 }, - expectedOutput: `helix001 = helix( axis = seg01, radius = 1, revolutions = 20, angleStart = 0, ccw = false,)`, - expectedEditedOutput: `helix001 = helix( axis = seg01, radius = 5, revolutions = 20, angleStart = 0, ccw = false,)`, - }, - { - selectionType: 'sweepEdge', - testPoint: { x: 564, y: 364 }, - expectedOutput: `helix001 = helix( axis = getOppositeEdge(seg01), radius = 1, revolutions = 20, angleStart = 0, ccw = false,)`, - expectedEditedOutput: `helix001 = helix( axis = getOppositeEdge(seg01), radius = 5, revolutions = 20, angleStart = 0, ccw = false,)`, - }, - ] - helixCases.map( - ({ selectionType, testPoint, expectedOutput, expectedEditedOutput }) => { - test(`Helix point-and-click around ${selectionType}`, async ({ - context, - page, - homePage, - scene, - editor, - toolbar, - cmdBar, - }) => { - page.on('console', console.log) - const initialCode = `sketch001 = startSketchOn(XZ) - profile001 = startProfile(sketch001, at = [0, 0]) - |> yLine(length = 100) - |> line(endAbsolute = [100, 0]) - |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) - |> close() - extrude001 = extrude(profile001, length = 100)` + test(`Helix point-and-click around segment`, async ({ + context, + page, + homePage, + scene, + editor, + toolbar, + cmdBar, + }) => { + const initialCode = `sketch001 = startSketchOn(XZ) +profile001 = startProfile(sketch001, at = [0, 0]) +|> yLine(length = 100) +|> line(endAbsolute = [100, 0]) +|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) +|> close()` + await context.addInitScript((initialCode) => { + localStorage.setItem('persistCode', initialCode) + }, initialCode) + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() + await scene.settled(cmdBar) - // One dumb hardcoded screen pixel value - const [clickOnEdge] = scene.makeMouseHelpers(testPoint.x, testPoint.y) - - await context.addInitScript((initialCode) => { - localStorage.setItem('persistCode', initialCode) - }, initialCode) - await page.setBodyDimensions({ width: 1000, height: 500 }) - await homePage.goToModelingScene() - await scene.settled(cmdBar) - - await test.step(`Go through the command bar flow`, async () => { - await toolbar.closePane('code') - await toolbar.helixButton.click() - await cmdBar.expectState({ - stage: 'arguments', - currentArgKey: 'mode', - currentArgValue: '', - headerArguments: { - AngleStart: '', - Mode: '', - CounterClockWise: '', - Radius: '', - Revolutions: '', - }, - highlightedHeaderArg: 'mode', - commandName: 'Helix', - }) - await cmdBar.selectOption({ name: 'Edge' }).click() - await expect - .poll(() => page.getByText('Please select one').count()) - .toBe(1) - await clickOnEdge() - await page.waitForTimeout(1000) - await cmdBar.progressCmdBar() - await page.waitForTimeout(1000) - await cmdBar.argumentInput.focus() - await page.waitForTimeout(1000) - await page.keyboard.insertText('20') - await cmdBar.progressCmdBar() - await page.keyboard.insertText('0') - await cmdBar.progressCmdBar() - await page.keyboard.insertText('1') - await cmdBar.progressCmdBar() - await page.keyboard.insertText('100') - await cmdBar.expectState({ - stage: 'review', - headerArguments: { - Mode: 'Edge', - Edge: `1 ${selectionType}`, - AngleStart: '0', - Revolutions: '20', - Radius: '1', - CounterClockWise: '', - }, - commandName: 'Helix', - }) - await cmdBar.progressCmdBar() - await page.waitForTimeout(1000) - }) - - await test.step(`Confirm code is added to the editor, scene has changed`, async () => { - await toolbar.openPane('code') - await editor.expectEditor.toContain(expectedOutput) - await toolbar.closePane('code') - }) - - await test.step(`Edit helix through the feature tree`, async () => { - await toolbar.openPane('feature-tree') - const operationButton = await toolbar.getFeatureTreeOperation( - 'Helix', - 0 - ) - await operationButton.dblclick() - const initialInput = '1' - const newInput = '5' - await cmdBar.expectState({ - commandName: 'Helix', - stage: 'arguments', - currentArgKey: 'CounterClockWise', - currentArgValue: '', - headerArguments: { - AngleStart: '0', - Revolutions: '20', - Radius: initialInput, - CounterClockWise: '', - }, - highlightedHeaderArg: 'CounterClockWise', - }) - await page - .getByRole('button', { name: 'radius', exact: false }) - .click() - await expect(cmdBar.currentArgumentInput).toBeVisible() - await cmdBar.currentArgumentInput - .locator('.cm-content') - .fill(newInput) - await cmdBar.progressCmdBar() - await cmdBar.expectState({ - stage: 'review', - headerArguments: { - AngleStart: '0', - Revolutions: '20', - Radius: newInput, - CounterClockWise: '', - }, - commandName: 'Helix', - }) - await cmdBar.progressCmdBar() - await toolbar.closePane('feature-tree') - await toolbar.openPane('code') - await editor.expectEditor.toContain(expectedEditedOutput) - await toolbar.closePane('code') - }) - - await test.step('Delete helix via feature tree selection', async () => { - await toolbar.openPane('feature-tree') - const operationButton = await toolbar.getFeatureTreeOperation( - 'Helix', - 0 - ) - await operationButton.click({ button: 'left' }) - await page.keyboard.press('Delete') - await editor.expectEditor.not.toContain(expectedEditedOutput) - await expect( - await toolbar.getFeatureTreeOperation('Helix', 0) - ).not.toBeVisible() - }) + await test.step(`Go through the command bar flow`, async () => { + await toolbar.closePane('code') + await toolbar.helixButton.click() + await cmdBar.expectState(initialCmdBarStateHelix) + await cmdBar.selectOption({ name: 'Edge' }).click() + await editor.selectText('yLine(length = 100)') + await cmdBar.progressCmdBar() + await page.keyboard.insertText('1') + await cmdBar.progressCmdBar() + await page.keyboard.insertText('2') + await cmdBar.progressCmdBar() + await page.keyboard.insertText('3') + await cmdBar.progressCmdBar() + await cmdBar.expectState({ + stage: 'review', + headerArguments: { + Mode: 'Edge', + Edge: `1 segment`, + AngleStart: '2', + Revolutions: '1', + Radius: '3', + }, + commandName: 'Helix', }) - } - ) + await cmdBar.submit() + await scene.settled(cmdBar) + }) + + await test.step(`Confirm code is added to the editor, scene has changed`, async () => { + await toolbar.openPane('code') + await editor.expectEditor.toContain( + ` + helix001 = helix( + axis = seg01, + radius = 3, + revolutions = 1, + angleStart = 2, + )`, + { shouldNormalise: true } + ) + await toolbar.closePane('code') + }) + }) + + test(`Helix point-and-click around sweepEdge with edit and delete flows`, async ({ + context, + page, + homePage, + scene, + editor, + toolbar, + cmdBar, + }) => { + const initialCode = `sketch001 = startSketchOn(XZ) +profile001 = startProfile(sketch001, at = [0, 0]) +|> yLine(length = 100) +|> line(endAbsolute = [100, 0]) +|> line(endAbsolute = [profileStartX(%), profileStartY(%)]) +|> close() +extrude001 = extrude(profile001, length = 100)` + + // One dumb hardcoded screen pixel value to click on the sweepEdge, can't think of another way? + const testPoint = { x: 564, y: 364 } + const [clickOnEdge] = scene.makeMouseHelpers(testPoint.x, testPoint.y) + + await context.addInitScript((initialCode) => { + localStorage.setItem('persistCode', initialCode) + }, initialCode) + await page.setBodyDimensions({ width: 1000, height: 500 }) + await homePage.goToModelingScene() + await scene.settled(cmdBar) + + await test.step(`Go through the command bar flow`, async () => { + await toolbar.closePane('code') + await toolbar.helixButton.click() + await cmdBar.expectState(initialCmdBarStateHelix) + await cmdBar.selectOption({ name: 'Edge' }).click() + await expect + .poll(() => page.getByText('Please select one').count()) + .toBe(1) + await clickOnEdge() + await cmdBar.progressCmdBar() + await cmdBar.argumentInput.focus() + await page.keyboard.insertText('20') + await cmdBar.progressCmdBar() + await page.keyboard.insertText('0') + await cmdBar.progressCmdBar() + await page.keyboard.insertText('1') + await cmdBar.progressCmdBar() + await page.keyboard.insertText('100') + await cmdBar.expectState({ + stage: 'review', + headerArguments: { + Mode: 'Edge', + Edge: `1 sweepEdge`, + AngleStart: '0', + Revolutions: '20', + Radius: '1', + }, + commandName: 'Helix', + }) + await cmdBar.submit() + await scene.settled(cmdBar) + }) + + await test.step(`Confirm code is added to the editor, scene has changed`, async () => { + await toolbar.openPane('code') + await editor.expectEditor.toContain( + ` + helix001 = helix( + axis = getOppositeEdge(seg01), + radius = 1, + revolutions = 20, + angleStart = 0, + )`, + { shouldNormalise: true } + ) + await toolbar.closePane('code') + }) + + await test.step(`Edit helix through the feature tree`, async () => { + await toolbar.openPane('feature-tree') + const operationButton = await toolbar.getFeatureTreeOperation('Helix', 0) + await operationButton.dblclick() + const initialInput = '1' + const newInput = '5' + await cmdBar.expectState({ + commandName: 'Helix', + stage: 'arguments', + currentArgKey: 'radius', + currentArgValue: initialInput, + headerArguments: { + AngleStart: '0', + Revolutions: '20', + Radius: initialInput, + }, + highlightedHeaderArg: 'radius', + }) + await page.keyboard.insertText(newInput) + await cmdBar.progressCmdBar() + await cmdBar.expectState({ + stage: 'review', + headerArguments: { + AngleStart: '0', + Revolutions: '20', + Radius: newInput, + }, + commandName: 'Helix', + }) + await cmdBar.clickOptionalArgument('ccw') + await cmdBar.expectState({ + commandName: 'Helix', + stage: 'arguments', + currentArgKey: 'CounterClockWise', + currentArgValue: '', + headerArguments: { + AngleStart: '0', + Revolutions: '20', + Radius: newInput, + CounterClockWise: '', + }, + highlightedHeaderArg: 'CounterClockWise', + }) + await cmdBar.selectOption({ name: 'True' }).click() + await cmdBar.expectState({ + stage: 'review', + headerArguments: { + AngleStart: '0', + Revolutions: '20', + Radius: newInput, + CounterClockWise: '', + }, + commandName: 'Helix', + }) + await cmdBar.submit() + await toolbar.closePane('feature-tree') + await toolbar.openPane('code') + await editor.expectEditor.toContain( + ` + helix001 = helix( + axis = getOppositeEdge(seg01), + radius = 5, + revolutions = 20, + angleStart = 0, + ccw = true, + )`, + { shouldNormalise: true } + ) + await toolbar.closePane('code') + }) + + await test.step('Delete helix via feature tree selection', async () => { + await toolbar.openPane('feature-tree') + const operationButton = await toolbar.getFeatureTreeOperation('Helix', 0) + await operationButton.click({ button: 'left' }) + await page.keyboard.press('Delete') + await editor.expectEditor.not.toContain('helix') + await expect( + await toolbar.getFeatureTreeOperation('Helix', 0) + ).not.toBeVisible() + }) + }) test('Helix point-and-click on cylinder', async ({ context, @@ -1470,26 +1525,12 @@ extrude001 = extrude(profile001, length = 100) // One dumb hardcoded screen pixel value const testPoint = { x: 620, y: 257 } const [clickOnWall] = scene.makeMouseHelpers(testPoint.x, testPoint.y) - const expectedOutput = `helix001 = helix( cylinder = extrude001, revolutions = 1, angleStart = 360, ccw = false,)` - const expectedLine = `cylinder = extrude001,` - const expectedEditedOutput = `helix001 = helix( cylinder = extrude001, revolutions = 1, angleStart = 360, ccw = true,)` + const expectedOutput = `helix001 = helix(cylinder = extrude001, revolutions = 1, angleStart = 360)` + const expectedEditedOutput = `helix001 = helix(cylinder = extrude001, revolutions = 1, angleStart = 10)` await test.step(`Go through the command bar flow`, async () => { await toolbar.helixButton.click() - await cmdBar.expectState({ - stage: 'arguments', - currentArgKey: 'mode', - currentArgValue: '', - headerArguments: { - Mode: '', - AngleStart: '', - Revolutions: '', - Radius: '', - CounterClockWise: '', - }, - highlightedHeaderArg: 'mode', - commandName: 'Helix', - }) + await cmdBar.expectState(initialCmdBarStateHelix) await cmdBar.selectOption({ name: 'Cylinder' }).click() await cmdBar.expectState({ stage: 'arguments', @@ -1500,7 +1541,6 @@ extrude001 = extrude(profile001, length = 100) Cylinder: '', AngleStart: '', Revolutions: '', - CounterClockWise: '', }, highlightedHeaderArg: 'cylinder', commandName: 'Helix', @@ -1516,18 +1556,17 @@ extrude001 = extrude(profile001, length = 100) Cylinder: '1 face', AngleStart: '360', Revolutions: '1', - CounterClockWise: '', }, commandName: 'Helix', }) - await cmdBar.progressCmdBar() + await cmdBar.submit() }) await test.step(`Confirm code is added to the editor, scene has changed`, async () => { await editor.expectEditor.toContain(expectedOutput) await editor.expectState({ diagnostics: [], - activeLines: [expectedLine], + activeLines: [expectedOutput], highlightedCode: '', }) }) @@ -1539,22 +1578,21 @@ extrude001 = extrude(profile001, length = 100) await cmdBar.expectState({ commandName: 'Helix', stage: 'arguments', - currentArgKey: 'CounterClockWise', - currentArgValue: '', + currentArgKey: 'angleStart', + currentArgValue: '360', headerArguments: { AngleStart: '360', Revolutions: '1', - CounterClockWise: '', }, - highlightedHeaderArg: 'CounterClockWise', + highlightedHeaderArg: 'angleStart', }) - await cmdBar.selectOption({ name: 'True' }).click() + await page.keyboard.insertText('10') + await cmdBar.progressCmdBar() await cmdBar.expectState({ stage: 'review', headerArguments: { - AngleStart: '360', + AngleStart: '10', Revolutions: '1', - CounterClockWise: 'true', }, commandName: 'Helix', }) diff --git a/src/lang/modifyAst.ts b/src/lang/modifyAst.ts index 13d4b7825..2665e009d 100644 --- a/src/lang/modifyAst.ts +++ b/src/lang/modifyAst.ts @@ -590,7 +590,7 @@ export function addHelix({ angleStart: Expr radius?: Expr length?: Expr - ccw: boolean + ccw?: boolean insertIndex?: number variableName?: string }): { modifiedAst: Node; pathToNode: PathToNode } { @@ -610,6 +610,9 @@ export function addHelix({ ) } + // Extra labeled args expressions + const ccwExpr = ccw ? [createLabeledArg('ccw', createLiteral(ccw))] : [] + const variable = createVariableDeclaration( name, createCallExpressionStdLibKw( @@ -619,7 +622,7 @@ export function addHelix({ ...modeArgs, createLabeledArg('revolutions', revolutions), createLabeledArg('angleStart', angleStart), - createLabeledArg('ccw', createLiteral(ccw)), + ...ccwExpr, ] ) ) diff --git a/src/lib/commandBarConfigs/modelingCommandConfig.ts b/src/lib/commandBarConfigs/modelingCommandConfig.ts index 58e73f515..78a21a6bb 100644 --- a/src/lib/commandBarConfigs/modelingCommandConfig.ts +++ b/src/lib/commandBarConfigs/modelingCommandConfig.ts @@ -690,32 +690,35 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< }, axis: { inputType: 'options', - required: (commandContext) => - ['Axis'].includes(commandContext.argumentsToSubmit.mode as string), options: [ { name: 'X Axis', value: 'X' }, { name: 'Y Axis', value: 'Y' }, { name: 'Z Axis', value: 'Z' }, ], - hidden: false, // for consistency here, we can actually edit here since it's not a selection + required: (context) => + ['Axis'].includes(context.argumentsToSubmit.mode as string), + hidden: (context) => + !['Axis'].includes(context.argumentsToSubmit.mode as string), }, edge: { - required: (commandContext) => - ['Edge'].includes(commandContext.argumentsToSubmit.mode as string), inputType: 'selection', selectionTypes: ['segment', 'sweepEdge'], multiple: false, - hidden: (context) => Boolean(context.argumentsToSubmit.nodeToEdit), + required: (context) => + ['Edge'].includes(context.argumentsToSubmit.mode as string), + hidden: (context) => + Boolean(context.argumentsToSubmit.nodeToEdit) || + !['Edge'].includes(context.argumentsToSubmit.mode as string), }, cylinder: { - required: (commandContext) => - ['Cylinder'].includes( - commandContext.argumentsToSubmit.mode as string - ), inputType: 'selection', selectionTypes: ['wall'], multiple: false, - hidden: (context) => Boolean(context.argumentsToSubmit.nodeToEdit), + required: (context) => + ['Cylinder'].includes(context.argumentsToSubmit.mode as string), + hidden: (context) => + Boolean(context.argumentsToSubmit.nodeToEdit) || + !['Cylinder'].includes(context.argumentsToSubmit.mode as string), }, revolutions: { inputType: 'kcl', @@ -730,34 +733,30 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< radius: { inputType: 'kcl', defaultValue: KCL_DEFAULT_LENGTH, - required: (commandContext) => - !['Cylinder'].includes( - commandContext.argumentsToSubmit.mode as string - ), + required: (context) => + !['Cylinder'].includes(context.argumentsToSubmit.mode as string), + hidden: (context) => + ['Cylinder'].includes(context.argumentsToSubmit.mode as string), }, length: { inputType: 'kcl', defaultValue: KCL_DEFAULT_LENGTH, required: (commandContext) => ['Axis'].includes(commandContext.argumentsToSubmit.mode as string), + // No need for hidden here, as it works with all modes }, ccw: { inputType: 'options', - skip: true, - required: true, - defaultValue: false, - valueSummary: (value) => String(value), + required: false, displayName: 'CounterClockWise', - options: (commandContext) => [ + options: [ { name: 'False', value: false, - isCurrent: !Boolean(commandContext.argumentsToSubmit.ccw), }, { name: 'True', value: true, - isCurrent: Boolean(commandContext.argumentsToSubmit.ccw), }, ], }, From 7de27c648f9d4e7a15e2ae3de314e89c1bd4ae0b Mon Sep 17 00:00:00 2001 From: Max Ammann Date: Thu, 26 Jun 2025 21:24:16 +0200 Subject: [PATCH 12/34] Revoke token when logging out (#7493) * Revoke token when logging out * extract OAUTH2_DEVICE_CLIENT_ID * Update snapshots * Update snapshots * try fix * try fix * Move client id to `@src/lib/constants` --------- Co-authored-by: Jonathan Tran Co-authored-by: github-actions[bot] Co-authored-by: Pierre Jacquier Co-authored-by: Pierre Jacquier --- ...hould-look-right-3-Google-Chrome-linux.png | Bin 53666 -> 53587 bytes ...hould-look-right-4-Google-Chrome-linux.png | Bin 59424 -> 59341 bytes src/lib/constants.ts | 3 ++ src/machines/authMachine.ts | 30 ++++++++++++++++-- src/main.ts | 7 ++-- 5 files changed, 35 insertions(+), 5 deletions(-) diff --git a/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-3-Google-Chrome-linux.png b/e2e/playwright/snapshot-tests.spec.ts-snapshots/Draft-segments-should-look-right-3-Google-Chrome-linux.png index 06a2716a3aca4f3ed03cbf6a92a243cca164f711..26956ddbc539dfaa7eebcbaf73bd4972cecadab2 100644 GIT binary patch literal 53587 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 literal 59424 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

UO%G2A#q@7z~j zGj(<^P%&xRt$lrB=j9m9jvy{?p;{RN$Z^(U_Xn&mO~Ee&P-UGLu(ojY_Bps8dRkk_ zva)}gWrI(=?wyZT z^tvIIP{pm0Z9adH$z&X}3-syF-AGQ~2FkIsx%noxW*8qt1cI=y5xiMfZY6RP8QSJZ zMl%7~QsT*Wm1GjA?d&!z=H;1wSlu)|iQM6_PwuY@p!h9?jgwlMnr>i}6i{JsaIn4I zEW>NlN&iKymW8K!ahU7BL|XP%L!x@VO0M1IThTWc5w%2hl~Dpft}hpUf+ zS>ux1mC~eOQNza+6hwE<2&siXdHC!*`NIkO_oPSgMw)HV^aFYJ^bPo<^&f>`^8@<*%V`Y@JiU-*Q$rfJpFVG6ZEY}pUYtG?nU2FG$yXNB`i7v0@fWKg(od zd7W}+#a1psqKB<~$n(9qkx`n-F}Qx-i%xLYN+s~L;o9&TR5Ui5ExY0Hb?QmBaC&+g zvv;%pile;Mfh&Zpn>ldKpY$)KBkPqAt zlocM^KMBQ{$5v=tp&d?P=(tL}!jC;4?^l79C(vTsH;2By_4>qvK-gFCWBWL { // We can hardcode the client ID. // This value is safe to be embedded in version control. // This is the client ID of the KittyCAD app. - client_id: '2af127fb-e14e-400a-9c57-a9ed08d1a5b7', + client_id: OAUTH2_DEVICE_CLIENT_ID, token_endpoint_auth_method: 'none', }) From f49cf8281cae6c8a501f50f3fc6e909a397d8608 Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Thu, 26 Jun 2025 16:43:53 -0400 Subject: [PATCH 13/34] Allow point-and-click Substract to take in multiple solids and tools (#7614) * Allow point-and-click Substract to take in multiple tools Fixes #7612 * Change target to solids for consistency and make it support multi select too * Improve err message * Update src/lang/modifyAst/boolean.ts Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * Update src/lang/modifyAst/boolean.ts Co-authored-by: Kurt Hutten * Good bot * Reduce array to single value if len 1 * Remove console.log --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> Co-authored-by: Kurt Hutten --- e2e/playwright/boolean.spec.ts | 8 +- src/lang/modifyAst/boolean.ts | 126 ++++++++---------- .../modelingCommandConfig.ts | 14 +- src/machines/modelingMachine.ts | 38 ++++-- 4 files changed, 92 insertions(+), 94 deletions(-) diff --git a/e2e/playwright/boolean.spec.ts b/e2e/playwright/boolean.spec.ts index 2a1379f95..b4509ecd0 100644 --- a/e2e/playwright/boolean.spec.ts +++ b/e2e/playwright/boolean.spec.ts @@ -12,7 +12,7 @@ test.describe('Point and click for boolean workflows', () => { }, { name: 'subtract', - code: 'subtract([extrude001], tools = [extrude006])', + code: 'subtract(extrude001, tools = extrude006)', }, { name: 'intersect', @@ -81,6 +81,8 @@ test.describe('Point and click for boolean workflows', () => { if (operationName !== 'subtract') { // should down shift key to select multiple objects await page.keyboard.down('Shift') + } else { + await cmdBar.progressCmdBar() } // Select second object @@ -103,8 +105,8 @@ test.describe('Point and click for boolean workflows', () => { await cmdBar.expectState({ stage: 'review', headerArguments: { - Tool: '1 path', - Target: '1 path', + Solids: '1 path', + Tools: '1 path', }, commandName, }) diff --git a/src/lang/modifyAst/boolean.ts b/src/lang/modifyAst/boolean.ts index 1f5b38a4d..54f48d1b2 100644 --- a/src/lang/modifyAst/boolean.ts +++ b/src/lang/modifyAst/boolean.ts @@ -23,13 +23,13 @@ import type { VariableDeclaration, } from '@src/lang/wasm' import { EXECUTION_TYPE_REAL } from '@src/lib/constants' -import type { Selection, Selections } from '@src/lib/selections' +import type { Selections } from '@src/lib/selections' import { err } from '@src/lib/trap' import { isArray } from '@src/lib/utils' export async function applySubtractFromTargetOperatorSelections( - target: Selection, - tool: Selection, + solids: Selections, + tools: Selections, dependencies: { kclManager: KclManager engineCommandManager: EngineCommandManager @@ -38,28 +38,28 @@ export async function applySubtractFromTargetOperatorSelections( } ): Promise { const ast = dependencies.kclManager.ast - if (!target.artifact || !tool.artifact) { - return new Error('No artifact found') - } - const orderedChildrenTarget = findAllChildrenAndOrderByPlaceInCode( - target.artifact, + const lastSolidsVars = getLastVariableDeclarationsFromSelections( + solids, + ast, dependencies.kclManager.artifactGraph ) - const orderedChildrenTool = findAllChildrenAndOrderByPlaceInCode( - tool.artifact, + if (err(lastSolidsVars) || lastSolidsVars.length < 1) { + return new Error('Not enough or invalid solids variables found') + } + + const lastToolsVars = getLastVariableDeclarationsFromSelections( + tools, + ast, dependencies.kclManager.artifactGraph ) - - const lastVarTarget = getLastVariable(orderedChildrenTarget, ast) - const lastVarTool = getLastVariable(orderedChildrenTool, ast) - - if (!lastVarTarget || !lastVarTool) { - return new Error('No variable found') + if (err(lastToolsVars) || lastToolsVars.length < 1) { + return new Error('Not enough or invalid tools variables found') } + const modifiedAst = booleanSubtractAstMod({ ast, - targets: [lastVarTarget?.variableDeclaration?.node], - tools: [lastVarTool?.variableDeclaration.node], + solids: lastSolidsVars, + tools: lastToolsVars, }) await updateModelingState(modifiedAst, EXECUTION_TYPE_REAL, dependencies) @@ -75,34 +75,13 @@ export async function applyUnionFromTargetOperatorSelections( } ): Promise { const ast = dependencies.kclManager.ast - - const artifacts: Artifact[] = [] - for (const selection of solids.graphSelections) { - if (selection.artifact) { - artifacts.push(selection.artifact) - } - } - - if (artifacts.length < 2) { - return new Error('Not enough artifacts selected') - } - - const orderedChildrenEach = artifacts.map((artifact) => - findAllChildrenAndOrderByPlaceInCode( - artifact, - dependencies.kclManager.artifactGraph - ) + const lastVars = getLastVariableDeclarationsFromSelections( + solids, + ast, + dependencies.kclManager.artifactGraph ) - - const lastVars: VariableDeclaration[] = [] - for (const orderedArtifactLeaves of orderedChildrenEach) { - const lastVar = getLastVariable(orderedArtifactLeaves, ast) - if (!lastVar) continue - lastVars.push(lastVar.variableDeclaration.node) - } - - if (lastVars.length < 2) { - return new Error('Not enough variables found') + if (err(lastVars) || lastVars.length < 2) { + return new Error('Not enough or invalid solids variables found') } const modifiedAst = booleanUnionAstMod({ @@ -122,23 +101,36 @@ export async function applyIntersectFromTargetOperatorSelections( } ): Promise { const ast = dependencies.kclManager.ast + const lastVars = getLastVariableDeclarationsFromSelections( + solids, + ast, + dependencies.kclManager.artifactGraph + ) + if (err(lastVars) || lastVars.length < 2) { + return new Error('Not enough or invalid solids variables found') + } + const modifiedAst = booleanIntersectAstMod({ + ast, + solids: lastVars, + }) + await updateModelingState(modifiedAst, EXECUTION_TYPE_REAL, dependencies) +} + +function getLastVariableDeclarationsFromSelections( + selections: Selections, + ast: Node, + artifactGraph: ArtifactGraph +): Error | VariableDeclaration[] { const artifacts: Artifact[] = [] - for (const selection of solids.graphSelections) { + for (const selection of selections.graphSelections) { if (selection.artifact) { artifacts.push(selection.artifact) } } - if (artifacts.length < 2) { - return new Error('Not enough artifacts selected') - } - const orderedChildrenEach = artifacts.map((artifact) => - findAllChildrenAndOrderByPlaceInCode( - artifact, - dependencies.kclManager.artifactGraph - ) + findAllChildrenAndOrderByPlaceInCode(artifact, artifactGraph) ) const lastVars: VariableDeclaration[] = [] @@ -148,15 +140,7 @@ export async function applyIntersectFromTargetOperatorSelections( lastVars.push(lastVar.variableDeclaration.node) } - if (lastVars.length < 2) { - return new Error('Not enough variables found') - } - - const modifiedAst = booleanIntersectAstMod({ - ast, - solids: lastVars, - }) - await updateModelingState(modifiedAst, EXECUTION_TYPE_REAL, dependencies) + return lastVars } /** returns all children of a given artifact, and sorts them DESC by start sourceRange @@ -271,25 +255,27 @@ export function getLastVariable( export function booleanSubtractAstMod({ ast, - targets, + solids, tools, }: { ast: Node - targets: VariableDeclaration[] + solids: VariableDeclaration[] tools: VariableDeclaration[] }): Node { const newAst = structuredClone(ast) const newVarName = findUniqueName(newAst, 'solid') - const createArrExpr = (varDecs: VariableDeclaration[]) => - createArrayExpression( - varDecs.map((varDec) => createLocalName(varDec.declaration.id.name)) + const createArrExpr = (varDecs: VariableDeclaration[]) => { + const names = varDecs.map((varDec) => + createLocalName(varDec.declaration.id.name) ) - const targetsArrayExpression = createArrExpr(targets) + return names.length === 1 ? names[0] : createArrayExpression(names) + } + const solidsArrayExpression = createArrExpr(solids) const toolsArrayExpression = createArrExpr(tools) const newVarDec = createVariableDeclaration( newVarName, - createCallExpressionStdLibKw('subtract', targetsArrayExpression, [ + createCallExpressionStdLibKw('subtract', solidsArrayExpression, [ createLabeledArg('tools', toolsArrayExpression), ]) ) diff --git a/src/lib/commandBarConfigs/modelingCommandConfig.ts b/src/lib/commandBarConfigs/modelingCommandConfig.ts index 78a21a6bb..3d0814506 100644 --- a/src/lib/commandBarConfigs/modelingCommandConfig.ts +++ b/src/lib/commandBarConfigs/modelingCommandConfig.ts @@ -204,8 +204,8 @@ export type ModelingCommandSchema = { variableName: string } 'Boolean Subtract': { - target: Selections - tool: Selections + solids: Selections + tools: Selections } 'Boolean Union': { solids: Selections @@ -595,23 +595,21 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< icon: 'booleanSubtract', needsReview: true, args: { - target: { + solids: { inputType: 'selection', selectionTypes: ['path'], selectionFilter: ['object'], - multiple: false, + multiple: true, required: true, - skip: true, hidden: (context) => Boolean(context.argumentsToSubmit.nodeToEdit), }, - tool: { + tools: { clearSelectionFirst: true, inputType: 'selection', selectionTypes: ['path'], selectionFilter: ['object'], - multiple: false, + multiple: true, required: true, - skip: false, hidden: (context) => Boolean(context.argumentsToSubmit.nodeToEdit), }, }, diff --git a/src/machines/modelingMachine.ts b/src/machines/modelingMachine.ts index d409b5d75..ad8183302 100644 --- a/src/machines/modelingMachine.ts +++ b/src/machines/modelingMachine.ts @@ -3570,17 +3570,17 @@ export const modelingMachine = setup({ return Promise.reject(new Error(NO_INPUT_PROVIDED_MESSAGE)) } - const { target, tool } = input + const { solids, tools } = input if ( - !target.graphSelections[0].artifact || - !tool.graphSelections[0].artifact + !solids.graphSelections.some((selection) => selection.artifact) || + !tools.graphSelections.some((selection) => selection.artifact) ) { return Promise.reject(new Error('No artifact in selections found')) } - await applySubtractFromTargetOperatorSelections( - target.graphSelections[0], - tool.graphSelections[0], + const result = await applySubtractFromTargetOperatorSelections( + solids, + tools, { kclManager, codeManager, @@ -3588,6 +3588,9 @@ export const modelingMachine = setup({ editorManager, } ) + if (err(result)) { + return Promise.reject(result) + } } ), boolUnionAstMod: fromPromise( @@ -3605,12 +3608,15 @@ export const modelingMachine = setup({ return Promise.reject(new Error('No artifact in selections found')) } - await applyUnionFromTargetOperatorSelections(solids, { + const result = await applyUnionFromTargetOperatorSelections(solids, { kclManager, codeManager, engineCommandManager, editorManager, }) + if (err(result)) { + return Promise.reject(result) + } } ), boolIntersectAstMod: fromPromise( @@ -3628,12 +3634,18 @@ export const modelingMachine = setup({ return Promise.reject(new Error('No artifact in selections found')) } - await applyIntersectFromTargetOperatorSelections(solids, { - kclManager, - codeManager, - engineCommandManager, - editorManager, - }) + const result = await applyIntersectFromTargetOperatorSelections( + solids, + { + kclManager, + codeManager, + engineCommandManager, + editorManager, + } + ) + if (err(result)) { + return Promise.reject(result) + } } ), From 6a2027cd5127c1b3f069e39f32ec3c8c64ebac10 Mon Sep 17 00:00:00 2001 From: Pierre Jacquier Date: Thu, 26 Jun 2025 17:36:05 -0400 Subject: [PATCH 14/34] Keep subtract solids selection to one until engine supports multiple (#7617) Follow up to #7614 --- src/lib/commandBarConfigs/modelingCommandConfig.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/commandBarConfigs/modelingCommandConfig.ts b/src/lib/commandBarConfigs/modelingCommandConfig.ts index 3d0814506..8e5dbc9ed 100644 --- a/src/lib/commandBarConfigs/modelingCommandConfig.ts +++ b/src/lib/commandBarConfigs/modelingCommandConfig.ts @@ -599,7 +599,9 @@ export const modelingMachineCommandConfig: StateMachineCommandSetConfig< inputType: 'selection', selectionTypes: ['path'], selectionFilter: ['object'], - multiple: true, + // TODO: turn back to true once engine supports it, the codemod and KCL are ready + // Issue link: https://github.com/KittyCAD/engine/issues/3435 + multiple: false, required: true, hidden: (context) => Boolean(context.argumentsToSubmit.nodeToEdit), }, From 4356885aa273d3934670735929d56a241bb3d86c Mon Sep 17 00:00:00 2001 From: Adam Chalmers Date: Thu, 26 Jun 2025 17:02:54 -0500 Subject: [PATCH 15/34] Bump cargo to 1.88; 2024 edition for kcl-lib (#7618) This is a big one because the edition changes a fair number of things. --- flake.lock | 18 +- rust/kcl-language-server-release/src/build.rs | 7 +- rust/kcl-language-server-release/src/main.rs | 6 +- rust/kcl-language-server/src/main.rs | 8 +- rust/kcl-lib/Cargo.toml | 4 +- rust/kcl-lib/benches/benchmark_kcl_samples.rs | 10 +- .../benches/compiler_benchmark_criterion.rs | 2 +- rust/kcl-lib/benches/digest_benchmark.rs | 2 +- ...lsp_semantic_tokens_benchmark_criterion.rs | 2 +- rust/kcl-lib/e2e/executor/cache.rs | 15 +- rust/kcl-lib/e2e/executor/main.rs | 31 ++- rust/kcl-lib/src/coredump/mod.rs | 2 +- rust/kcl-lib/src/docs/gen_std_tests.rs | 10 +- rust/kcl-lib/src/docs/kcl_doc.rs | 33 ++- .../src/engine/async_tasks/tasks_wasm.rs | 4 +- rust/kcl-lib/src/engine/conn.rs | 16 +- rust/kcl-lib/src/engine/conn_mock.rs | 4 +- rust/kcl-lib/src/engine/conn_wasm.rs | 2 +- rust/kcl-lib/src/engine/mod.rs | 28 +- rust/kcl-lib/src/errors.rs | 2 +- rust/kcl-lib/src/execution/annotations.rs | 4 +- rust/kcl-lib/src/execution/artifact.rs | 17 +- .../src/execution/artifact/mermaid_tests.rs | 16 +- rust/kcl-lib/src/execution/cache.rs | 11 +- rust/kcl-lib/src/execution/cad_op.rs | 6 +- rust/kcl-lib/src/execution/exec_ast.rs | 86 +++--- rust/kcl-lib/src/execution/fn_call.rs | 33 ++- rust/kcl-lib/src/execution/geometry.rs | 18 +- rust/kcl-lib/src/execution/import.rs | 18 +- rust/kcl-lib/src/execution/import_graph.rs | 14 +- rust/kcl-lib/src/execution/kcl_value.rs | 16 +- rust/kcl-lib/src/execution/memory.rs | 8 +- rust/kcl-lib/src/execution/mod.rs | 24 +- rust/kcl-lib/src/execution/modeling.rs | 2 +- rust/kcl-lib/src/execution/state.rs | 7 +- rust/kcl-lib/src/execution/typed_path.rs | 4 +- rust/kcl-lib/src/execution/types.rs | 28 +- rust/kcl-lib/src/fs/local.rs | 2 +- rust/kcl-lib/src/fs/mod.rs | 2 +- rust/kcl-lib/src/fs/wasm.rs | 2 +- rust/kcl-lib/src/lib.rs | 41 +-- rust/kcl-lib/src/lint/checks/camel_case.rs | 12 +- rust/kcl-lib/src/lint/checks/default_plane.rs | 11 +- rust/kcl-lib/src/lint/checks/mod.rs | 6 +- rust/kcl-lib/src/lint/checks/offset_plane.rs | 23 +- rust/kcl-lib/src/lint/rule.rs | 14 +- rust/kcl-lib/src/lsp/backend.rs | 16 +- rust/kcl-lib/src/lsp/copilot/mod.rs | 16 +- rust/kcl-lib/src/lsp/copilot/types.rs | 2 +- rust/kcl-lib/src/lsp/kcl/hover.rs | 2 +- rust/kcl-lib/src/lsp/kcl/mod.rs | 246 +++++++++--------- rust/kcl-lib/src/lsp/mod.rs | 2 +- rust/kcl-lib/src/lsp/tests.rs | 12 +- rust/kcl-lib/src/modules.rs | 6 +- rust/kcl-lib/src/parsing/ast/mod.rs | 2 +- rust/kcl-lib/src/parsing/ast/types/mod.rs | 125 ++++----- rust/kcl-lib/src/parsing/math.rs | 4 +- rust/kcl-lib/src/parsing/mod.rs | 6 +- rust/kcl-lib/src/parsing/parser.rs | 31 ++- rust/kcl-lib/src/parsing/token/mod.rs | 4 +- rust/kcl-lib/src/parsing/token/tokeniser.rs | 4 +- .../src/settings/generate_settings_docs.rs | 18 +- rust/kcl-lib/src/settings/types/mod.rs | 36 +-- rust/kcl-lib/src/settings/types/project.rs | 14 +- rust/kcl-lib/src/simulation_tests.rs | 18 +- .../src/simulation_tests/kcl_samples.rs | 10 +- rust/kcl-lib/src/std/appearance.rs | 6 +- rust/kcl-lib/src/std/args.rs | 10 +- rust/kcl-lib/src/std/array.rs | 4 +- rust/kcl-lib/src/std/assert.rs | 4 +- rust/kcl-lib/src/std/chamfer.rs | 8 +- rust/kcl-lib/src/std/clone.rs | 35 ++- rust/kcl-lib/src/std/csg.rs | 8 +- rust/kcl-lib/src/std/edge.rs | 22 +- rust/kcl-lib/src/std/extrude.rs | 9 +- rust/kcl-lib/src/std/fillet.rs | 10 +- rust/kcl-lib/src/std/helix.rs | 6 +- rust/kcl-lib/src/std/loft.rs | 8 +- rust/kcl-lib/src/std/math.rs | 4 +- rust/kcl-lib/src/std/mirror.rs | 14 +- rust/kcl-lib/src/std/mod.rs | 2 +- rust/kcl-lib/src/std/patterns.rs | 14 +- rust/kcl-lib/src/std/planes.rs | 4 +- rust/kcl-lib/src/std/revolve.rs | 19 +- rust/kcl-lib/src/std/segment.rs | 26 +- rust/kcl-lib/src/std/shapes.rs | 9 +- rust/kcl-lib/src/std/shell.rs | 6 +- rust/kcl-lib/src/std/sketch.rs | 13 +- rust/kcl-lib/src/std/sweep.rs | 10 +- rust/kcl-lib/src/std/transform.rs | 7 +- rust/kcl-lib/src/std/utils.rs | 12 +- rust/kcl-lib/src/test_server.rs | 6 +- rust/kcl-lib/src/unparser.rs | 37 ++- rust/kcl-lib/src/walk/ast_node.rs | 4 +- rust/kcl-lib/src/walk/ast_visitor.rs | 4 +- rust/kcl-lib/src/walk/ast_walk.rs | 4 +- rust/kcl-python-bindings/src/lib.rs | 16 +- rust/kcl-to-core/src/conn_mock_core.rs | 21 +- rust/kcl-to-core/src/tool.rs | 2 +- rust/rust-toolchain.toml | 2 +- 100 files changed, 769 insertions(+), 802 deletions(-) diff --git a/flake.lock b/flake.lock index 5efd040d0..a94e01641 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1745998881, - "narHash": "sha256-vonyYAKJSlsX4n9GCsS0pHxR6yCrfqBIuGvANlkwG6U=", + "lastModified": 1750865895, + "narHash": "sha256-p2dWAQcLVzquy9LxYCZPwyUdugw78Qv3ChvnX755qHA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "423d2df5b04b4ee7688c3d71396e872afa236a89", + "rev": "61c0f513911459945e2cb8bf333dc849f1b976ff", "type": "github" }, "original": { @@ -36,11 +36,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1745998881, - "narHash": "sha256-vonyYAKJSlsX4n9GCsS0pHxR6yCrfqBIuGvANlkwG6U=", + "lastModified": 1750865895, + "narHash": "sha256-p2dWAQcLVzquy9LxYCZPwyUdugw78Qv3ChvnX755qHA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "423d2df5b04b4ee7688c3d71396e872afa236a89", + "rev": "61c0f513911459945e2cb8bf333dc849f1b976ff", "type": "github" }, "original": { @@ -78,11 +78,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1745980514, - "narHash": "sha256-CITAeiuXGjDvT5iZBXr6vKVWQwsUQLJUMFO91bfJFC4=", + "lastModified": 1750964660, + "narHash": "sha256-YQ6EyFetjH1uy5JhdhRdPe6cuNXlYpMAQePFfZj4W7M=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "7fbdae44b0f40ea432e46fd152ad8be0f8f41ad6", + "rev": "04f0fcfb1a50c63529805a798b4b5c21610ff390", "type": "github" }, "original": { diff --git a/rust/kcl-language-server-release/src/build.rs b/rust/kcl-language-server-release/src/build.rs index 0e27d288d..14a062b7c 100644 --- a/rust/kcl-language-server-release/src/build.rs +++ b/rust/kcl-language-server-release/src/build.rs @@ -42,7 +42,7 @@ impl Build { .to_string(); if !stable { - version = format!("{}-nightly", version); + version = format!("{version}-nightly"); } let release_tag = if stable { @@ -59,10 +59,7 @@ impl Build { if stable && !release_tag.contains(&version) { // bail early if the tag doesn't match the version // TODO: error here when we use the tags with kcl - println!( - "Tag {} doesn't match version {}. Did you forget to update Cargo.toml?", - release_tag, version - ); + println!("Tag {release_tag} doesn't match version {version}. Did you forget to update Cargo.toml?"); } build_server(sh, &version, &target)?; diff --git a/rust/kcl-language-server-release/src/main.rs b/rust/kcl-language-server-release/src/main.rs index 81a80f2bb..117e8cd24 100644 --- a/rust/kcl-language-server-release/src/main.rs +++ b/rust/kcl-language-server-release/src/main.rs @@ -95,10 +95,10 @@ async fn main() -> Result<()> { // Format fields using the provided closure. // We want to make this very concise otherwise the logs are not able to be read by humans. let format = tracing_subscriber::fmt::format::debug_fn(|writer, field, value| { - if format!("{}", field) == "message" { - write!(writer, "{}: {:?}", field, value) + if format!("{field}") == "message" { + write!(writer, "{field}: {value:?}") } else { - write!(writer, "{}", field) + write!(writer, "{field}") } }) // Separate each field with a comma. diff --git a/rust/kcl-language-server/src/main.rs b/rust/kcl-language-server/src/main.rs index 319da5fda..5ab78a12a 100644 --- a/rust/kcl-language-server/src/main.rs +++ b/rust/kcl-language-server/src/main.rs @@ -87,10 +87,10 @@ async fn main() -> Result<()> { // Format fields using the provided closure. // We want to make this very concise otherwise the logs are not able to be read by humans. let format = tracing_subscriber::fmt::format::debug_fn(|writer, field, value| { - if format!("{}", field) == "message" { - write!(writer, "{}: {:?}", field, value) + if format!("{field}") == "message" { + write!(writer, "{field}: {value:?}") } else { - write!(writer, "{}", field) + write!(writer, "{field}") } }) // Separate each field with a comma. @@ -151,7 +151,7 @@ async fn run_cmd(opts: &Opts) -> Result<()> { tokio::spawn(async move { if let Some(sig) = signals.forever().next() { - log::info!("received signal: {:?}", sig); + log::info!("received signal: {sig:?}"); log::info!("triggering cleanup..."); // Exit the process. diff --git a/rust/kcl-lib/Cargo.toml b/rust/kcl-lib/Cargo.toml index 2b9643188..4f5d24874 100644 --- a/rust/kcl-lib/Cargo.toml +++ b/rust/kcl-lib/Cargo.toml @@ -2,10 +2,10 @@ name = "kcl-lib" description = "KittyCAD Language implementation and tools" version = "0.2.83" -edition = "2021" +edition = "2024" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" -rust-version = "1.83" +rust-version = "1.88" authors = ["Jess Frazelle", "Adam Chalmers", "KittyCAD, Inc"] keywords = ["kcl", "KittyCAD", "CAD"] exclude = ["tests/*", "benches/*", "examples/*", "e2e/*", "bindings/*", "fuzz/*"] diff --git a/rust/kcl-lib/benches/benchmark_kcl_samples.rs b/rust/kcl-lib/benches/benchmark_kcl_samples.rs index c72cec297..7aea0e817 100644 --- a/rust/kcl-lib/benches/benchmark_kcl_samples.rs +++ b/rust/kcl-lib/benches/benchmark_kcl_samples.rs @@ -4,7 +4,7 @@ use std::{ path::{Path, PathBuf}, }; -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; const IGNORE_DIRS: [&str; 2] = ["step", "screenshots"]; @@ -61,7 +61,7 @@ fn run_benchmarks(c: &mut Criterion) { // Read the file content (panic on failure) let input_content = fs::read_to_string(&input_file) - .unwrap_or_else(|e| panic!("Failed to read main.kcl in directory {}: {}", dir_name, e)); + .unwrap_or_else(|e| panic!("Failed to read main.kcl in directory {dir_name}: {e}")); // Create a benchmark group for this directory let mut group = c.benchmark_group(&dir_name); @@ -72,12 +72,12 @@ fn run_benchmarks(c: &mut Criterion) { #[cfg(feature = "benchmark-execution")] let program = kcl_lib::Program::parse_no_errs(&input_content).unwrap(); - group.bench_function(format!("parse_{}", dir_name), |b| { + group.bench_function(format!("parse_{dir_name}"), |b| { b.iter(|| kcl_lib::Program::parse_no_errs(black_box(&input_content)).unwrap()) }); #[cfg(feature = "benchmark-execution")] - group.bench_function(format!("execute_{}", dir_name), |b| { + group.bench_function(format!("execute_{dir_name}"), |b| { b.iter(|| { if let Err(err) = rt.block_on(async { let ctx = kcl_lib::ExecutorContext::new_with_default_client().await?; @@ -86,7 +86,7 @@ fn run_benchmarks(c: &mut Criterion) { ctx.close().await; Ok::<(), anyhow::Error>(()) }) { - panic!("Failed to execute program: {}", err); + panic!("Failed to execute program: {err}"); } }) }); diff --git a/rust/kcl-lib/benches/compiler_benchmark_criterion.rs b/rust/kcl-lib/benches/compiler_benchmark_criterion.rs index f936d8b45..4a817e651 100644 --- a/rust/kcl-lib/benches/compiler_benchmark_criterion.rs +++ b/rust/kcl-lib/benches/compiler_benchmark_criterion.rs @@ -1,6 +1,6 @@ use std::hint::black_box; -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; pub fn bench_parse(c: &mut Criterion) { for (name, file) in [ diff --git a/rust/kcl-lib/benches/digest_benchmark.rs b/rust/kcl-lib/benches/digest_benchmark.rs index df312404b..33c7d0400 100644 --- a/rust/kcl-lib/benches/digest_benchmark.rs +++ b/rust/kcl-lib/benches/digest_benchmark.rs @@ -1,4 +1,4 @@ -use criterion::{criterion_group, criterion_main, Criterion}; +use criterion::{Criterion, criterion_group, criterion_main}; pub fn bench_digest(c: &mut Criterion) { for (name, file) in [ diff --git a/rust/kcl-lib/benches/lsp_semantic_tokens_benchmark_criterion.rs b/rust/kcl-lib/benches/lsp_semantic_tokens_benchmark_criterion.rs index 6a7769ec4..c635357dc 100644 --- a/rust/kcl-lib/benches/lsp_semantic_tokens_benchmark_criterion.rs +++ b/rust/kcl-lib/benches/lsp_semantic_tokens_benchmark_criterion.rs @@ -1,6 +1,6 @@ use std::hint::black_box; -use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; +use criterion::{BenchmarkId, Criterion, criterion_group, criterion_main}; use kcl_lib::kcl_lsp_server; use tokio::runtime::Runtime; use tower_lsp::LanguageServer; diff --git a/rust/kcl-lib/e2e/executor/cache.rs b/rust/kcl-lib/e2e/executor/cache.rs index 388d4d925..438643f62 100644 --- a/rust/kcl-lib/e2e/executor/cache.rs +++ b/rust/kcl-lib/e2e/executor/cache.rs @@ -1,9 +1,9 @@ //! Cache testing framework. -use kcl_lib::{bust_cache, ExecError, ExecOutcome}; +use kcl_lib::{ExecError, ExecOutcome, bust_cache}; #[cfg(feature = "artifact-graph")] -use kcl_lib::{exec::Operation, NodePathStep}; -use kcmc::{each_cmd as mcmd, ModelingCmd}; +use kcl_lib::{NodePathStep, exec::Operation}; +use kcmc::{ModelingCmd, each_cmd as mcmd}; use kittycad_modeling_cmds as kcmc; use pretty_assertions::assert_eq; @@ -38,7 +38,7 @@ async fn cache_test( if !variation.other_files.is_empty() { let tmp_dir = std::env::temp_dir(); let tmp_dir = tmp_dir - .join(format!("kcl_test_{}", test_name)) + .join(format!("kcl_test_{test_name}")) .join(uuid::Uuid::new_v4().to_string()); // Create a temporary file for each of the other files. @@ -56,7 +56,7 @@ async fn cache_test( Err(error) => { let report = error.clone().into_miette_report_with_outputs(variation.code).unwrap(); let report = miette::Report::new(report); - panic!("{:?}", report); + panic!("{report:?}"); } }; @@ -69,7 +69,7 @@ async fn cache_test( .and_then(|x| x.decode().map_err(|e| ExecError::BadPng(e.to_string()))) .unwrap(); // Save the snapshot. - let path = crate::assert_out(&format!("cache_{}_{}", test_name, index), &img); + let path = crate::assert_out(&format!("cache_{test_name}_{index}"), &img); img_results.push((path, img, outcome)); } @@ -337,8 +337,7 @@ extrude001 = extrude(profile001, length = 4) // 0] as a more lenient check. .map(|c| !c.range.is_synthetic() && c.node_path.is_empty()) .unwrap_or(false), - "artifact={:?}", - artifact + "artifact={artifact:?}" ); } } diff --git a/rust/kcl-lib/e2e/executor/main.rs b/rust/kcl-lib/e2e/executor/main.rs index 591f735ee..ed8b30ad5 100644 --- a/rust/kcl-lib/e2e/executor/main.rs +++ b/rust/kcl-lib/e2e/executor/main.rs @@ -1,8 +1,8 @@ mod cache; use kcl_lib::{ - test_server::{execute_and_export_step, execute_and_snapshot, execute_and_snapshot_no_auth}, BacktraceItem, ExecError, ModuleId, SourceRange, + test_server::{execute_and_export_step, execute_and_snapshot, execute_and_snapshot_no_auth}, }; /// The minimum permissible difference between asserted twenty-twenty images. @@ -869,11 +869,13 @@ async fn kcl_test_revolve_bad_angle_low() { let result = execute_and_snapshot(code, None).await; assert!(result.is_err()); - assert!(result - .err() - .unwrap() - .to_string() - .contains("Expected angle to be between -360 and 360 and not 0, found `-455`")); + assert!( + result + .err() + .unwrap() + .to_string() + .contains("Expected angle to be between -360 and 360 and not 0, found `-455`") + ); } #[tokio::test(flavor = "multi_thread")] @@ -895,11 +897,13 @@ async fn kcl_test_revolve_bad_angle_high() { let result = execute_and_snapshot(code, None).await; assert!(result.is_err()); - assert!(result - .err() - .unwrap() - .to_string() - .contains("Expected angle to be between -360 and 360 and not 0, found `455`")); + assert!( + result + .err() + .unwrap() + .to_string() + .contains("Expected angle to be between -360 and 360 and not 0, found `455`") + ); } #[tokio::test(flavor = "multi_thread")] @@ -2090,7 +2094,10 @@ async fn kcl_test_better_type_names() { }, None => todo!(), }; - assert_eq!(err, "This function expected the input argument to be one or more Solids or ImportedGeometry but it's actually of type Sketch. You can convert a sketch (2D) into a Solid (3D) by calling a function like `extrude` or `revolve`"); + assert_eq!( + err, + "This function expected the input argument to be one or more Solids or ImportedGeometry but it's actually of type Sketch. You can convert a sketch (2D) into a Solid (3D) by calling a function like `extrude` or `revolve`" + ); } #[tokio::test(flavor = "multi_thread")] diff --git a/rust/kcl-lib/src/coredump/mod.rs b/rust/kcl-lib/src/coredump/mod.rs index 4647c5d73..5f8c66f43 100644 --- a/rust/kcl-lib/src/coredump/mod.rs +++ b/rust/kcl-lib/src/coredump/mod.rs @@ -101,7 +101,7 @@ pub trait CoreDump: Clone { .meta() .create_debug_uploads(vec![kittycad::types::multipart::Attachment { name: "".to_string(), - filepath: Some(format!(r#"modeling-app/coredump-{}.json"#, coredump_id).into()), + filepath: Some(format!(r#"modeling-app/coredump-{coredump_id}.json"#).into()), content_type: Some("application/json".to_string()), data, }]) diff --git a/rust/kcl-lib/src/docs/gen_std_tests.rs b/rust/kcl-lib/src/docs/gen_std_tests.rs index e80d8ad67..0fda03b85 100644 --- a/rust/kcl-lib/src/docs/gen_std_tests.rs +++ b/rust/kcl-lib/src/docs/gen_std_tests.rs @@ -189,7 +189,7 @@ fn generate_example(index: usize, src: &str, props: &ExampleProperties, file_nam index ); let image_data = - std::fs::read(&image_path).unwrap_or_else(|_| panic!("Failed to read image file: {}", image_path)); + std::fs::read(&image_path).unwrap_or_else(|_| panic!("Failed to read image file: {image_path}")); base64::engine::general_purpose::STANDARD.encode(&image_data) }; @@ -225,7 +225,7 @@ fn generate_type_from_kcl(ty: &TyData, file_name: String, example_name: String, let output = hbs.render("kclType", &data)?; let output = cleanup_types(&output, kcl_std); - expectorate::assert_contents(format!("../../docs/kcl-std/{}.md", file_name), &output); + expectorate::assert_contents(format!("../../docs/kcl-std/{file_name}.md"), &output); Ok(()) } @@ -267,7 +267,7 @@ fn generate_mod_from_kcl(m: &ModData, file_name: String) -> Result<()> { }); let output = hbs.render("module", &data)?; - expectorate::assert_contents(format!("../../docs/kcl-std/{}.md", file_name), &output); + expectorate::assert_contents(format!("../../docs/kcl-std/{file_name}.md"), &output); Ok(()) } @@ -334,7 +334,7 @@ fn generate_function_from_kcl( let output = hbs.render("function", &data)?; let output = &cleanup_types(&output, kcl_std); - expectorate::assert_contents(format!("../../docs/kcl-std/{}.md", file_name), output); + expectorate::assert_contents(format!("../../docs/kcl-std/{file_name}.md"), output); Ok(()) } @@ -378,7 +378,7 @@ fn generate_const_from_kcl(cnst: &ConstData, file_name: String, example_name: St let output = hbs.render("const", &data)?; let output = cleanup_types(&output, kcl_std); - expectorate::assert_contents(format!("../../docs/kcl-std/{}.md", file_name), &output); + expectorate::assert_contents(format!("../../docs/kcl-std/{file_name}.md"), &output); Ok(()) } diff --git a/rust/kcl-lib/src/docs/kcl_doc.rs b/rust/kcl-lib/src/docs/kcl_doc.rs index 2b027a105..9121dc373 100644 --- a/rust/kcl-lib/src/docs/kcl_doc.rs +++ b/rust/kcl-lib/src/docs/kcl_doc.rs @@ -8,6 +8,7 @@ use tower_lsp::lsp_types::{ }; use crate::{ + ModuleId, execution::annotations, parsing::{ ast::types::{ @@ -15,7 +16,6 @@ use crate::{ }, token::NumericSuffix, }, - ModuleId, }; pub fn walk_prelude() -> ModData { @@ -97,7 +97,7 @@ fn visit_module(name: &str, preferred_prefix: &str, names: WalkForNames) -> Resu ImportSelector::None { .. } => { let name = import.module_name().unwrap(); if names.contains(&name) { - Some(visit_module(&path[1], &format!("{}::", name), WalkForNames::All)?) + Some(visit_module(&path[1], &format!("{name}::"), WalkForNames::All)?) } else { None } @@ -451,7 +451,7 @@ impl ModData { let (name, qual_name, module_name) = if name == "prelude" { ("std", "std".to_owned(), String::new()) } else { - (name, format!("std::{}", name), "std".to_owned()) + (name, format!("std::{name}"), "std".to_owned()) }; Self { preferred_name: format!("{preferred_prefix}{name}"), @@ -767,14 +767,12 @@ impl ArgData { for s in &arr.elements { let Expr::Literal(lit) = s else { panic!( - "Invalid value in `snippetArray`, all items must be string literals but found {:?}", - s + "Invalid value in `snippetArray`, all items must be string literals but found {s:?}" ); }; let LiteralValue::String(litstr) = &lit.inner.value else { panic!( - "Invalid value in `snippetArray`, all items must be string literals but found {:?}", - s + "Invalid value in `snippetArray`, all items must be string literals but found {s:?}" ); }; items.push(litstr.to_owned()); @@ -816,7 +814,7 @@ impl ArgData { } match self.ty.as_deref() { Some("Sketch") if self.kind == ArgKind::Special => None, - Some(s) if s.starts_with("number") => Some((index, format!(r#"{label}${{{}:10}}"#, index))), + Some(s) if s.starts_with("number") => Some((index, format!(r#"{label}${{{index}:10}}"#))), Some("Point2d") => Some((index + 1, format!(r#"{label}[${{{}:0}}, ${{{}:0}}]"#, index, index + 1))), Some("Point3d") => Some(( index + 2, @@ -831,7 +829,7 @@ impl ArgData { Some("Sketch") | Some("Sketch | Helix") => Some((index, format!(r#"{label}${{{index}:sketch000}}"#))), Some("Edge") => Some((index, format!(r#"{label}${{{index}:tag_or_edge_fn}}"#))), Some("[Edge; 1+]") => Some((index, format!(r#"{label}[${{{index}:tag_or_edge_fn}}]"#))), - Some("Plane") | Some("Solid | Plane") => Some((index, format!(r#"{label}${{{}:XY}}"#, index))), + Some("Plane") | Some("Solid | Plane") => Some((index, format!(r#"{label}${{{index}:XY}}"#))), Some("[TaggedFace; 2]") => Some(( index + 1, format!(r#"{label}[${{{}:tag}}, ${{{}:tag}}]"#, index, index + 1), @@ -841,10 +839,10 @@ impl ArgData { if self.name == "color" { Some((index, format!(r"{label}${{{}:{}}}", index, "\"#ff0000\""))) } else { - Some((index, format!(r#"{label}${{{}:"string"}}"#, index))) + Some((index, format!(r#"{label}${{{index}:"string"}}"#))) } } - Some("bool") => Some((index, format!(r#"{label}${{{}:false}}"#, index))), + Some("bool") => Some((index, format!(r#"{label}${{{index}:false}}"#))), _ => None, } } @@ -1298,7 +1296,10 @@ mod test { continue; } let name = format!("{}-{i}", f.qual_name.replace("::", "-")); - assert!(TEST_NAMES.contains(&&*name), "Missing test for example \"{name}\", maybe need to update kcl-derive-docs/src/example_tests.rs?") + assert!( + TEST_NAMES.contains(&&*name), + "Missing test for example \"{name}\", maybe need to update kcl-derive-docs/src/example_tests.rs?" + ) } } } @@ -1334,7 +1335,9 @@ mod test { }; let Some(DocData::Fn(d)) = data.children.get(&format!("I:{qualname}")) else { - panic!("Could not find data for {NAME} (missing a child entry for {qualname}), maybe need to update kcl-derive-docs/src/example_tests.rs?"); + panic!( + "Could not find data for {NAME} (missing a child entry for {qualname}), maybe need to update kcl-derive-docs/src/example_tests.rs?" + ); }; for (i, eg) in d.examples.iter().enumerate() { @@ -1362,6 +1365,8 @@ mod test { return; } - panic!("Could not find data for {NAME} (no example {number}), maybe need to update kcl-derive-docs/src/example_tests.rs?"); + panic!( + "Could not find data for {NAME} (no example {number}), maybe need to update kcl-derive-docs/src/example_tests.rs?" + ); } } diff --git a/rust/kcl-lib/src/engine/async_tasks/tasks_wasm.rs b/rust/kcl-lib/src/engine/async_tasks/tasks_wasm.rs index 60e647e58..4889d591e 100644 --- a/rust/kcl-lib/src/engine/async_tasks/tasks_wasm.rs +++ b/rust/kcl-lib/src/engine/async_tasks/tasks_wasm.rs @@ -2,11 +2,11 @@ //! tasks. use std::sync::{ - atomic::{AtomicUsize, Ordering}, Arc, + atomic::{AtomicUsize, Ordering}, }; -use tokio::sync::{mpsc, Notify}; +use tokio::sync::{Notify, mpsc}; use crate::errors::KclError; diff --git a/rust/kcl-lib/src/engine/conn.rs b/rust/kcl-lib/src/engine/conn.rs index 1b48cf338..4510b4b80 100644 --- a/rust/kcl-lib/src/engine/conn.rs +++ b/rust/kcl-lib/src/engine/conn.rs @@ -3,26 +3,26 @@ use std::{collections::HashMap, sync::Arc}; -use anyhow::{anyhow, Result}; +use anyhow::{Result, anyhow}; use futures::{SinkExt, StreamExt}; use indexmap::IndexMap; use kcmc::{ + ModelingCmd, websocket::{ BatchResponse, FailureWebSocketResponse, ModelingCmdReq, ModelingSessionData, OkWebSocketResponseData, SuccessWebSocketResponse, WebSocketRequest, WebSocketResponse, }, - ModelingCmd, }; use kittycad_modeling_cmds::{self as kcmc}; -use tokio::sync::{mpsc, oneshot, RwLock}; +use tokio::sync::{RwLock, mpsc, oneshot}; use tokio_tungstenite::tungstenite::Message as WsMsg; use uuid::Uuid; use crate::{ + SourceRange, engine::{AsyncTasks, EngineManager, EngineStats}, errors::{KclError, KclErrorDetails}, execution::{DefaultPlanes, IdGenerator}, - SourceRange, }; #[derive(Debug, PartialEq)] @@ -85,7 +85,7 @@ impl TcpRead { let msg = match msg { Ok(msg) => msg, Err(e) if matches!(e, tokio_tungstenite::tungstenite::Error::Protocol(_)) => { - return Err(WebSocketReadError::Read(e)) + return Err(WebSocketReadError::Read(e)); } Err(e) => return Err(anyhow::anyhow!("Error reading from engine's WebSocket: {e}").into()), }; @@ -427,7 +427,7 @@ impl EngineManager for EngineConnection { request_sent: tx, }) .await - .map_err(|e| KclError::new_engine(KclErrorDetails::new(format!("Failed to send debug: {}", e), vec![])))?; + .map_err(|e| KclError::new_engine(KclErrorDetails::new(format!("Failed to send debug: {e}"), vec![])))?; let _ = rx.await; Ok(()) @@ -463,7 +463,7 @@ impl EngineManager for EngineConnection { .await .map_err(|e| { KclError::new_engine(KclErrorDetails::new( - format!("Failed to send modeling command: {}", e), + format!("Failed to send modeling command: {e}"), vec![source_range], )) })?; @@ -533,7 +533,7 @@ impl EngineManager for EngineConnection { } Err(KclError::new_engine(KclErrorDetails::new( - format!("Modeling command timed out `{}`", id), + format!("Modeling command timed out `{id}`"), vec![source_range], ))) } diff --git a/rust/kcl-lib/src/engine/conn_mock.rs b/rust/kcl-lib/src/engine/conn_mock.rs index f4bc7ef74..2a54f6b57 100644 --- a/rust/kcl-lib/src/engine/conn_mock.rs +++ b/rust/kcl-lib/src/engine/conn_mock.rs @@ -12,16 +12,16 @@ use kcmc::{ WebSocketResponse, }, }; -use kittycad_modeling_cmds::{self as kcmc, websocket::ModelingCmdReq, ImportFiles, ModelingCmd}; +use kittycad_modeling_cmds::{self as kcmc, ImportFiles, ModelingCmd, websocket::ModelingCmdReq}; use tokio::sync::RwLock; use uuid::Uuid; use crate::{ + SourceRange, engine::{AsyncTasks, EngineStats}, errors::KclError, exec::DefaultPlanes, execution::IdGenerator, - SourceRange, }; #[derive(Debug, Clone)] diff --git a/rust/kcl-lib/src/engine/conn_wasm.rs b/rust/kcl-lib/src/engine/conn_wasm.rs index 9f0f11ddf..9d3ae6e48 100644 --- a/rust/kcl-lib/src/engine/conn_wasm.rs +++ b/rust/kcl-lib/src/engine/conn_wasm.rs @@ -11,10 +11,10 @@ use uuid::Uuid; use wasm_bindgen::prelude::*; use crate::{ + SourceRange, engine::{AsyncTasks, EngineStats}, errors::{KclError, KclErrorDetails}, execution::{DefaultPlanes, IdGenerator}, - SourceRange, }; #[wasm_bindgen(module = "/../../src/lang/std/engineConnection.ts")] diff --git a/rust/kcl-lib/src/engine/mod.rs b/rust/kcl-lib/src/engine/mod.rs index 117a6adce..152b72cb9 100644 --- a/rust/kcl-lib/src/engine/mod.rs +++ b/rust/kcl-lib/src/engine/mod.rs @@ -12,15 +12,15 @@ pub mod conn_wasm; use std::{ collections::HashMap, sync::{ - atomic::{AtomicUsize, Ordering}, Arc, + atomic::{AtomicUsize, Ordering}, }, }; pub use async_tasks::AsyncTasks; use indexmap::IndexMap; use kcmc::{ - each_cmd as mcmd, + ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, ok_response::OkModelingCmdResponse, shared::Color, @@ -28,7 +28,6 @@ use kcmc::{ BatchResponse, ModelingBatch, ModelingCmdReq, ModelingSessionData, OkWebSocketResponseData, WebSocketRequest, WebSocketResponse, }, - ModelingCmd, }; use kittycad_modeling_cmds as kcmc; use parse_display::{Display, FromStr}; @@ -39,9 +38,9 @@ use uuid::Uuid; use web_time::Instant; use crate::{ - errors::{KclError, KclErrorDetails}, - execution::{types::UnitLen, DefaultPlanes, IdGenerator, PlaneInfo, Point3d}, SourceRange, + errors::{KclError, KclErrorDetails}, + execution::{DefaultPlanes, IdGenerator, PlaneInfo, Point3d, types::UnitLen}, }; lazy_static::lazy_static! { @@ -291,7 +290,10 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { // the artifact graph won't care either if its gone since you can't select it // anymore anyways. if let Err(err) = self.async_tasks().join_all().await { - crate::log::logln!("Error waiting for async tasks (this is typically fine and just means that an edge became something else): {:?}", err); + crate::log::logln!( + "Error waiting for async tasks (this is typically fine and just means that an edge became something else): {:?}", + err + ); } // Flush the batch to make sure nothing remains. @@ -499,7 +501,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { } _ => { return Err(KclError::new_engine(KclErrorDetails::new( - format!("The request is not a modeling command: {:?}", req), + format!("The request is not a modeling command: {req:?}"), vec![*range], ))); } @@ -529,7 +531,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { } else { // We should never get here. Err(KclError::new_engine(KclErrorDetails::new( - format!("Failed to get batch response: {:?}", response), + format!("Failed to get batch response: {response:?}"), vec![source_range], ))) } @@ -544,7 +546,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { // an error. let source_range = id_to_source_range.get(cmd_id.as_ref()).cloned().ok_or_else(|| { KclError::new_engine(KclErrorDetails::new( - format!("Failed to get source range for command ID: {:?}", cmd_id), + format!("Failed to get source range for command ID: {cmd_id:?}"), vec![], )) })?; @@ -554,7 +556,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { self.parse_websocket_response(ws_resp, source_range) } _ => Err(KclError::new_engine(KclErrorDetails::new( - format!("The final request is not a modeling command: {:?}", final_req), + format!("The final request is not a modeling command: {final_req:?}"), vec![source_range], ))), } @@ -663,7 +665,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { let info = DEFAULT_PLANE_INFO.get(&name).ok_or_else(|| { // We should never get here. KclError::new_engine(KclErrorDetails::new( - format!("Failed to get default plane info for: {:?}", name), + format!("Failed to get default plane info for: {name:?}"), vec![source_range], )) })?; @@ -739,7 +741,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { // Get the source range for the command. let source_range = id_to_source_range.get(cmd_id).cloned().ok_or_else(|| { KclError::new_engine(KclErrorDetails::new( - format!("Failed to get source range for command ID: {:?}", cmd_id), + format!("Failed to get source range for command ID: {cmd_id:?}"), vec![], )) })?; @@ -754,7 +756,7 @@ pub trait EngineManager: std::fmt::Debug + Send + Sync + 'static { // Return an error that we did not get an error or the response we wanted. // This should never happen but who knows. Err(KclError::new_engine(KclErrorDetails::new( - format!("Failed to find response for command ID: {:?}", id), + format!("Failed to find response for command ID: {id:?}"), vec![], ))) } diff --git a/rust/kcl-lib/src/errors.rs b/rust/kcl-lib/src/errors.rs index 9561fa91e..59223d0df 100644 --- a/rust/kcl-lib/src/errors.rs +++ b/rust/kcl-lib/src/errors.rs @@ -7,11 +7,11 @@ use tower_lsp::lsp_types::{Diagnostic, DiagnosticSeverity}; #[cfg(feature = "artifact-graph")] use crate::execution::{ArtifactCommand, ArtifactGraph, Operation}; use crate::{ + ModuleId, execution::DefaultPlanes, lsp::IntoDiagnostic, modules::{ModulePath, ModuleSource}, source_range::SourceRange, - ModuleId, }; /// How did the KCL execution fail diff --git a/rust/kcl-lib/src/execution/annotations.rs b/rust/kcl-lib/src/execution/annotations.rs index 9d0652a71..3c8fc3cb5 100644 --- a/rust/kcl-lib/src/execution/annotations.rs +++ b/rust/kcl-lib/src/execution/annotations.rs @@ -2,13 +2,13 @@ use std::str::FromStr; -use kittycad_modeling_cmds::coord::{System, KITTYCAD, OPENGL, VULKAN}; +use kittycad_modeling_cmds::coord::{KITTYCAD, OPENGL, System, VULKAN}; use crate::{ + KclError, SourceRange, errors::KclErrorDetails, execution::types::{UnitAngle, UnitLen}, parsing::ast::types::{Annotation, Expr, LiteralValue, Node, ObjectProperty}, - KclError, SourceRange, }; /// Annotations which should cause re-execution if they change. diff --git a/rust/kcl-lib/src/execution/artifact.rs b/rust/kcl-lib/src/execution/artifact.rs index f5505acde..3de0d0281 100644 --- a/rust/kcl-lib/src/execution/artifact.rs +++ b/rust/kcl-lib/src/execution/artifact.rs @@ -1,20 +1,19 @@ use fnv::FnvHashMap; use indexmap::IndexMap; use kittycad_modeling_cmds::{ - self as kcmc, + self as kcmc, EnableSketchMode, ModelingCmd, ok_response::OkModelingCmdResponse, shared::ExtrusionFaceCapType, websocket::{BatchResponse, OkWebSocketResponseData, WebSocketResponse}, - EnableSketchMode, ModelingCmd, }; -use serde::{ser::SerializeSeq, Serialize}; +use serde::{Serialize, ser::SerializeSeq}; use uuid::Uuid; use crate::{ + KclError, NodePath, SourceRange, errors::KclErrorDetails, execution::ArtifactId, parsing::ast::types::{Node, Program}, - KclError, NodePath, SourceRange, }; #[cfg(test)] @@ -893,7 +892,10 @@ fn artifacts_to_update( ), }; if original_path_ids.len() != face_edge_infos.len() { - internal_error!(range, "EntityMirror or EntityMirrorAcrossEdge response has different number face edge info than original mirrored paths: id={id:?}, cmd={cmd:?}, response={response:?}"); + internal_error!( + range, + "EntityMirror or EntityMirrorAcrossEdge response has different number face edge info than original mirrored paths: id={id:?}, cmd={cmd:?}, response={response:?}" + ); } let mut return_arr = Vec::new(); for (face_edge_info, original_path_id) in face_edge_infos.iter().zip(original_path_ids) { @@ -909,7 +911,10 @@ fn artifacts_to_update( // of its info. let Some(Artifact::Path(original_path)) = artifacts.get(&original_path_id) else { // We couldn't find the original path. This is a bug. - internal_error!(range, "Couldn't find original path for mirror2d: original_path_id={original_path_id:?}, cmd={cmd:?}"); + internal_error!( + range, + "Couldn't find original path for mirror2d: original_path_id={original_path_id:?}, cmd={cmd:?}" + ); }; Path { id: path_id, diff --git a/rust/kcl-lib/src/execution/artifact/mermaid_tests.rs b/rust/kcl-lib/src/execution/artifact/mermaid_tests.rs index 05e55d13e..3f35d4efa 100644 --- a/rust/kcl-lib/src/execution/artifact/mermaid_tests.rs +++ b/rust/kcl-lib/src/execution/artifact/mermaid_tests.rs @@ -268,7 +268,7 @@ impl ArtifactGraph { for (group_id, artifact_ids) in groups { let group_id = *stable_id_map.get(&group_id).unwrap(); writeln!(output, "{prefix}subgraph path{group_id} [Path]")?; - let indented = format!("{} ", prefix); + let indented = format!("{prefix} "); for artifact_id in artifact_ids { let artifact = self.map.get(&artifact_id).unwrap(); let id = *stable_id_map.get(&artifact_id).unwrap(); @@ -353,7 +353,7 @@ impl ArtifactGraph { node_path_display(output, prefix, None, &segment.code_ref)?; } Artifact::Solid2d(_solid2d) => { - writeln!(output, "{prefix}{}[Solid2d]", id)?; + writeln!(output, "{prefix}{id}[Solid2d]")?; } Artifact::StartSketchOnFace(StartSketchOnFace { code_ref, .. }) => { writeln!( @@ -494,24 +494,24 @@ impl ArtifactGraph { match edge.flow { EdgeFlow::SourceToTarget => match edge.direction { EdgeDirection::Forward => { - writeln!(output, "{prefix}{source_id} x{}--> {}", extra, target_id)?; + writeln!(output, "{prefix}{source_id} x{extra}--> {target_id}")?; } EdgeDirection::Backward => { - writeln!(output, "{prefix}{source_id} <{}--x {}", extra, target_id)?; + writeln!(output, "{prefix}{source_id} <{extra}--x {target_id}")?; } EdgeDirection::Bidirectional => { - writeln!(output, "{prefix}{source_id} {}--- {}", extra, target_id)?; + writeln!(output, "{prefix}{source_id} {extra}--- {target_id}")?; } }, EdgeFlow::TargetToSource => match edge.direction { EdgeDirection::Forward => { - writeln!(output, "{prefix}{target_id} x{}--> {}", extra, source_id)?; + writeln!(output, "{prefix}{target_id} x{extra}--> {source_id}")?; } EdgeDirection::Backward => { - writeln!(output, "{prefix}{target_id} <{}--x {}", extra, source_id)?; + writeln!(output, "{prefix}{target_id} <{extra}--x {source_id}")?; } EdgeDirection::Bidirectional => { - writeln!(output, "{prefix}{target_id} {}--- {}", extra, source_id)?; + writeln!(output, "{prefix}{target_id} {extra}--- {source_id}")?; } }, } diff --git a/rust/kcl-lib/src/execution/cache.rs b/rust/kcl-lib/src/execution/cache.rs index 3382e746e..d4840e187 100644 --- a/rust/kcl-lib/src/execution/cache.rs +++ b/rust/kcl-lib/src/execution/cache.rs @@ -6,15 +6,14 @@ use itertools::{EitherOrBoth, Itertools}; use tokio::sync::RwLock; use crate::{ + ExecOutcome, ExecutorContext, execution::{ - annotations, + EnvironmentRef, ExecutorSettings, annotations, memory::Stack, state::{self as exec_state, ModuleInfoMap}, - EnvironmentRef, ExecutorSettings, }, parsing::ast::types::{Annotation, Node, Program}, walk::Node as WalkNode, - ExecOutcome, ExecutorContext, }; lazy_static::lazy_static! { @@ -337,7 +336,7 @@ mod tests { use pretty_assertions::assert_eq; use super::*; - use crate::execution::{parse_execute, parse_execute_with_project_dir, ExecTestResults}; + use crate::execution::{ExecTestResults, parse_execute, parse_execute_with_project_dir}; #[tokio::test(flavor = "multi_thread")] async fn test_get_changed_program_same_code() { @@ -755,7 +754,7 @@ extrude(profile001, length = 100)"# .await; let CacheResult::CheckImportsOnly { reapply_settings, .. } = result else { - panic!("Expected CheckImportsOnly, got {:?}", result); + panic!("Expected CheckImportsOnly, got {result:?}"); }; assert_eq!(reapply_settings, false); @@ -839,7 +838,7 @@ extrude(profile001, length = 100) .await; let CacheResult::CheckImportsOnly { reapply_settings, .. } = result else { - panic!("Expected CheckImportsOnly, got {:?}", result); + panic!("Expected CheckImportsOnly, got {result:?}"); }; assert_eq!(reapply_settings, false); diff --git a/rust/kcl-lib/src/execution/cad_op.rs b/rust/kcl-lib/src/execution/cad_op.rs index 8d56b6865..6c277258b 100644 --- a/rust/kcl-lib/src/execution/cad_op.rs +++ b/rust/kcl-lib/src/execution/cad_op.rs @@ -1,10 +1,10 @@ use indexmap::IndexMap; use serde::Serialize; -use super::{types::NumericType, ArtifactId, KclValue}; +use super::{ArtifactId, KclValue, types::NumericType}; #[cfg(feature = "artifact-graph")] use crate::parsing::ast::types::{Node, Program}; -use crate::{parsing::ast::types::ItemVisibility, ModuleId, NodePath, SourceRange}; +use crate::{ModuleId, NodePath, SourceRange, parsing::ast::types::ItemVisibility}; /// A CAD modeling operation for display in the feature tree, AKA operations /// timeline. @@ -57,7 +57,7 @@ impl Operation { /// If the variant is `StdLibCall`, set the `is_error` field. pub(crate) fn set_std_lib_call_is_error(&mut self, is_err: bool) { match self { - Self::StdLibCall { ref mut is_error, .. } => *is_error = is_err, + Self::StdLibCall { is_error, .. } => *is_error = is_err, Self::VariableDeclaration { .. } | Self::GroupBegin { .. } | Self::GroupEnd => {} } } diff --git a/rust/kcl-lib/src/execution/exec_ast.rs b/rust/kcl-lib/src/execution/exec_ast.rs index 9c60e4393..34639033d 100644 --- a/rust/kcl-lib/src/execution/exec_ast.rs +++ b/rust/kcl-lib/src/execution/exec_ast.rs @@ -3,17 +3,17 @@ use std::collections::HashMap; use async_recursion::async_recursion; use crate::{ + CompilationError, NodePath, errors::{KclError, KclErrorDetails}, execution::{ - annotations, + BodyType, EnvironmentRef, ExecState, ExecutorContext, KclValue, Metadata, ModelingCmdMeta, ModuleArtifactState, + Operation, PlaneType, StatementKind, TagIdentifier, annotations, cad_op::OpKclValue, fn_call::Args, kcl_value::{FunctionSource, TypeDef}, memory, state::ModuleState, types::{NumericType, PrimitiveType, RuntimeType}, - BodyType, EnvironmentRef, ExecState, ExecutorContext, KclValue, Metadata, ModelingCmdMeta, ModuleArtifactState, - Operation, PlaneType, StatementKind, TagIdentifier, }, fmt, modules::{ModuleId, ModulePath, ModuleRepr}, @@ -28,7 +28,6 @@ use crate::{ }, source_range::SourceRange, std::args::TyF64, - CompilationError, NodePath, }; impl<'a> StatementKind<'a> { @@ -198,19 +197,23 @@ impl ExecutorContext { } if ty.is_ok() && !module_exports.contains(&ty_name) { - ty = Err(KclError::new_semantic(KclErrorDetails::new(format!( - "Cannot import \"{}\" from module because it is not exported. Add \"export\" before the definition to export it.", - import_item.name.name - ), - vec![SourceRange::from(&import_item.name)],))); + ty = Err(KclError::new_semantic(KclErrorDetails::new( + format!( + "Cannot import \"{}\" from module because it is not exported. Add \"export\" before the definition to export it.", + import_item.name.name + ), + vec![SourceRange::from(&import_item.name)], + ))); } if mod_value.is_ok() && !module_exports.contains(&mod_name) { - mod_value = Err(KclError::new_semantic(KclErrorDetails::new(format!( - "Cannot import \"{}\" from module because it is not exported. Add \"export\" before the definition to export it.", - import_item.name.name - ), - vec![SourceRange::from(&import_item.name)],))); + mod_value = Err(KclError::new_semantic(KclErrorDetails::new( + format!( + "Cannot import \"{}\" from module because it is not exported. Add \"export\" before the definition to export it.", + import_item.name.name + ), + vec![SourceRange::from(&import_item.name)], + ))); } if value.is_err() && ty.is_err() && mod_value.is_err() { @@ -270,7 +273,7 @@ impl ExecutorContext { .get_from(name, env_ref, source_range, 0) .map_err(|_err| { KclError::new_internal(KclErrorDetails::new( - format!("{} is not defined in module (but was exported?)", name), + format!("{name} is not defined in module (but was exported?)"), vec![source_range], )) })? @@ -431,7 +434,7 @@ impl ExecutorContext { return Err(KclError::new_semantic(KclErrorDetails::new( "User-defined types are not yet supported.".to_owned(), vec![metadata.source_range], - ))) + ))); } }, } @@ -792,11 +795,12 @@ fn var_in_own_ref_err(e: KclError, being_declared: &Option) -> KclError // TODO after June 26th: replace this with a let-chain, // which will be available in Rust 1.88 // https://rust-lang.github.io/rfcs/2497-if-let-chains.html - match (&being_declared, &name) { - (Some(name0), Some(name1)) if name0 == name1 => { - details.message = format!("You can't use `{name0}` because you're currently trying to define it. Use a different variable here instead."); - } - _ => {} + if let (Some(name0), Some(name1)) = (&being_declared, &name) + && name0 == name1 + { + details.message = format!( + "You can't use `{name0}` because you're currently trying to define it. Use a different variable here instead." + ); } KclError::UndefinedValue { details, name } } @@ -1077,7 +1081,7 @@ impl Node { (&left_value, &right_value) { return Ok(KclValue::String { - value: format!("{}{}", left, right), + value: format!("{left}{right}"), meta, }); } @@ -1237,7 +1241,9 @@ impl Node { exec_state.clear_units_warnings(&sr); let mut err = CompilationError::err( sr, - format!("{} numbers which have unknown or incompatible units.\nYou can probably fix this error by specifying the units using type ascription, e.g., `len: number(mm)` or `(a * b): number(deg)`.", verb), + format!( + "{verb} numbers which have unknown or incompatible units.\nYou can probably fix this error by specifying the units using type ascription, e.g., `len: number(mm)` or `(a * b): number(deg)`." + ), ); err.tag = crate::errors::Tag::UnknownNumericUnits; exec_state.warn(err); @@ -1417,7 +1423,7 @@ async fn inner_execute_pipe_body( for expression in body { if let Expr::TagDeclarator(_) = expression { return Err(KclError::new_semantic(KclErrorDetails::new( - format!("This cannot be in a PipeExpression: {:?}", expression), + format!("This cannot be in a PipeExpression: {expression:?}"), vec![expression.into()], ))); } @@ -1699,9 +1705,15 @@ fn jvalue_to_prop(value: &KclValue, property_sr: Vec, name: &str) - let make_err = |message: String| Err::(KclError::new_semantic(KclErrorDetails::new(message, property_sr))); match value { - n @ KclValue::Number{value: num, ty, .. } => { - if !matches!(ty, NumericType::Known(crate::exec::UnitType::Count) | NumericType::Default { .. } | NumericType::Any ) { - return make_err(format!("arrays can only be indexed by non-dimensioned numbers, found {}", n.human_friendly_type())); + n @ KclValue::Number { value: num, ty, .. } => { + if !matches!( + ty, + NumericType::Known(crate::exec::UnitType::Count) | NumericType::Default { .. } | NumericType::Any + ) { + return make_err(format!( + "arrays can only be indexed by non-dimensioned numbers, found {}", + n.human_friendly_type() + )); } let num = *num; if num < 0.0 { @@ -1711,13 +1723,15 @@ fn jvalue_to_prop(value: &KclValue, property_sr: Vec, name: &str) - if let Some(nearest_int) = nearest_int { Ok(Property::UInt(nearest_int)) } else { - make_err(format!("'{num}' is not an integer, so you can't index an array with it")) + make_err(format!( + "'{num}' is not an integer, so you can't index an array with it" + )) } } - KclValue::String{value: x, meta:_} => Ok(Property::String(x.to_owned())), - _ => { - make_err(format!("{name} is not a valid property/index, you can only use a string to get the property of an object, or an int (>= 0) to get an item in an array")) - } + KclValue::String { value: x, meta: _ } => Ok(Property::String(x.to_owned())), + _ => make_err(format!( + "{name} is not a valid property/index, you can only use a string to get the property of an object, or an int (>= 0) to get an item in an array" + )), } } @@ -1745,9 +1759,9 @@ mod test { use super::*; use crate::{ - exec::UnitType, - execution::{parse_execute, ContextType}, ExecutorSettings, UnitLen, + exec::UnitType, + execution::{ContextType, parse_execute}, }; #[tokio::test(flavor = "multi_thread")] @@ -1777,7 +1791,7 @@ arr1 = [42]: [number(cm)] .get_from("arr1", result.mem_env, SourceRange::default(), 0) .unwrap(); if let KclValue::HomArray { value, ty } = arr1 { - assert_eq!(value.len(), 1, "Expected Vec with specific length: found {:?}", value); + assert_eq!(value.len(), 1, "Expected Vec with specific length: found {value:?}"); assert_eq!(*ty, RuntimeType::known_length(UnitLen::Cm)); // Compare, ignoring meta. if let KclValue::Number { value, ty, .. } = &value[0] { @@ -1946,7 +1960,7 @@ d = b + c .await .map_err(|err| { KclError::new_internal(KclErrorDetails::new( - format!("Failed to create mock engine connection: {}", err), + format!("Failed to create mock engine connection: {err}"), vec![SourceRange::default()], )) }) diff --git a/rust/kcl-lib/src/execution/fn_call.rs b/rust/kcl-lib/src/execution/fn_call.rs index 5188597f3..778140385 100644 --- a/rust/kcl-lib/src/execution/fn_call.rs +++ b/rust/kcl-lib/src/execution/fn_call.rs @@ -2,19 +2,19 @@ use async_recursion::async_recursion; use indexmap::IndexMap; use crate::{ + CompilationError, NodePath, errors::{KclError, KclErrorDetails}, execution::{ + BodyType, EnvironmentRef, ExecState, ExecutorContext, KclValue, Metadata, StatementKind, TagEngineInfo, + TagIdentifier, cad_op::{Group, OpArg, OpKclValue, Operation}, kcl_value::FunctionSource, memory, types::RuntimeType, - BodyType, EnvironmentRef, ExecState, ExecutorContext, KclValue, Metadata, StatementKind, TagEngineInfo, - TagIdentifier, }, parsing::ast::types::{CallExpressionKw, DefaultParamVal, FunctionExpression, Node, Program, Type}, source_range::SourceRange, std::StdFn, - CompilationError, NodePath, }; #[derive(Debug, Clone)] @@ -269,7 +269,7 @@ impl Node { }; KclError::new_undefined_value( KclErrorDetails::new( - format!("Result of user-defined function {} is undefined", fn_name), + format!("Result of user-defined function {fn_name} is undefined"), source_ranges, ), None, @@ -445,7 +445,7 @@ fn update_memory_for_tags_of_geometry(result: &mut KclValue, exec_state: &mut Ex } } } - KclValue::Solid { ref mut value } => { + KclValue::Solid { value } => { for v in &value.value { if let Some(tag) = v.get_tag() { // Get the past tag and update it. @@ -555,9 +555,9 @@ fn type_err_str(expected: &Type, found: &KclValue, source_range: &SourceRange, e let found_human = found.human_friendly_type(); let found_ty = found.principal_type_string(); let found_str = if found_human == found_ty || found_human == format!("a {}", strip_backticks(&found_ty)) { - format!("a value with type {}", found_ty) + format!("a value with type {found_ty}") } else { - format!("{found_human} (with type {})", found_ty) + format!("{found_human} (with type {found_ty})") }; let mut result = format!("{expected_str}, but found {found_str}."); @@ -626,7 +626,7 @@ fn type_check_params_kw( format!( "`{label}` is not an argument of {}", fn_name - .map(|n| format!("`{}`", n)) + .map(|n| format!("`{n}`")) .unwrap_or_else(|| "this function".to_owned()), ), )); @@ -676,7 +676,7 @@ fn type_check_params_kw( format!( "The input argument of {} requires {}", fn_name - .map(|n| format!("`{}`", n)) + .map(|n| format!("`{n}`")) .unwrap_or_else(|| "this function".to_owned()), type_err_str(ty, &arg.1.value, &arg.1.source_range, exec_state), ), @@ -691,7 +691,7 @@ fn type_check_params_kw( format!( "{} expects an unlabeled first argument (`@{name}`), but it is labelled in the call", fn_name - .map(|n| format!("The function `{}`", n)) + .map(|n| format!("The function `{n}`")) .unwrap_or_else(|| "This function".to_owned()), ), )); @@ -721,7 +721,7 @@ fn assign_args_to_params_kw( )?; } None => match default { - Some(ref default_val) => { + Some(default_val) => { let value = KclValue::from_default_param(default_val.clone(), exec_state); exec_state .mut_stack() @@ -729,10 +729,7 @@ fn assign_args_to_params_kw( } None => { return Err(KclError::new_semantic(KclErrorDetails::new( - format!( - "This function requires a parameter {}, but you haven't passed it one.", - name - ), + format!("This function requires a parameter {name}, but you haven't passed it one."), source_ranges, ))); } @@ -746,7 +743,9 @@ fn assign_args_to_params_kw( let Some(unlabeled) = unlabelled else { return Err(if args.kw_args.labeled.contains_key(param_name) { KclError::new_semantic(KclErrorDetails::new( - format!("The function does declare a parameter named '{param_name}', but this parameter doesn't use a label. Try removing the `{param_name}:`"), + format!( + "The function does declare a parameter named '{param_name}', but this parameter doesn't use a label. Try removing the `{param_name}:`" + ), source_ranges, )) } else { @@ -799,7 +798,7 @@ mod test { use super::*; use crate::{ - execution::{memory::Stack, parse_execute, types::NumericType, ContextType}, + execution::{ContextType, memory::Stack, parse_execute, types::NumericType}, parsing::ast::types::{DefaultParamVal, Identifier, Parameter}, }; diff --git a/rust/kcl-lib/src/execution/geometry.rs b/rust/kcl-lib/src/execution/geometry.rs index 55faf9c10..2a091be4a 100644 --- a/rust/kcl-lib/src/execution/geometry.rs +++ b/rust/kcl-lib/src/execution/geometry.rs @@ -3,16 +3,16 @@ use std::ops::{Add, AddAssign, Mul}; use anyhow::Result; use indexmap::IndexMap; use kittycad_modeling_cmds as kcmc; -use kittycad_modeling_cmds::{each_cmd as mcmd, length_unit::LengthUnit, websocket::ModelingCmdReq, ModelingCmd}; +use kittycad_modeling_cmds::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, websocket::ModelingCmdReq}; use parse_display::{Display, FromStr}; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use crate::{ - engine::{PlaneName, DEFAULT_PLANE_INFO}, + engine::{DEFAULT_PLANE_INFO, PlaneName}, errors::{KclError, KclErrorDetails}, execution::{ - types::NumericType, ArtifactId, ExecState, ExecutorContext, Metadata, TagEngineInfo, TagIdentifier, UnitLen, + ArtifactId, ExecState, ExecutorContext, Metadata, TagEngineInfo, TagIdentifier, UnitLen, types::NumericType, }, parsing::ast::types::{Node, NodeRef, TagDeclarator, TagNode}, std::{args::TyF64, sketch::PlaneData}, @@ -472,7 +472,7 @@ impl TryFrom for PlaneInfo { PlaneData::Plane(_) => { // We will never get here since we already checked for PlaneData::Plane. return Err(KclError::new_internal(KclErrorDetails::new( - format!("PlaneData {:?} not found", value), + format!("PlaneData {value:?} not found"), Default::default(), ))); } @@ -480,7 +480,7 @@ impl TryFrom for PlaneInfo { let info = DEFAULT_PLANE_INFO.get(&name).ok_or_else(|| { KclError::new_internal(KclErrorDetails::new( - format!("Plane {} not found", name), + format!("Plane {name} not found"), Default::default(), )) })?; @@ -815,8 +815,8 @@ impl EdgeCut { pub fn set_id(&mut self, id: uuid::Uuid) { match self { - EdgeCut::Fillet { id: ref mut i, .. } => *i = id, - EdgeCut::Chamfer { id: ref mut i, .. } => *i = id, + EdgeCut::Fillet { id: i, .. } => *i = id, + EdgeCut::Chamfer { id: i, .. } => *i = id, } } @@ -829,8 +829,8 @@ impl EdgeCut { pub fn set_edge_id(&mut self, id: uuid::Uuid) { match self { - EdgeCut::Fillet { edge_id: ref mut i, .. } => *i = id, - EdgeCut::Chamfer { edge_id: ref mut i, .. } => *i = id, + EdgeCut::Fillet { edge_id: i, .. } => *i = id, + EdgeCut::Chamfer { edge_id: i, .. } => *i = id, } } diff --git a/rust/kcl-lib/src/execution/import.rs b/rust/kcl-lib/src/execution/import.rs index 9d97fe684..4422ead34 100644 --- a/rust/kcl-lib/src/execution/import.rs +++ b/rust/kcl-lib/src/execution/import.rs @@ -2,12 +2,12 @@ use std::str::FromStr; use anyhow::Result; use kcmc::{ - coord::{System, KITTYCAD}, + ImportFile, ModelingCmd, + coord::{KITTYCAD, System}, each_cmd as mcmd, format::InputFormat3d, shared::FileImportFormat, units::UnitLength, - ImportFile, ModelingCmd, }; use kittycad_modeling_cmds as kcmc; use serde::{Deserialize, Serialize}; @@ -16,8 +16,8 @@ use uuid::Uuid; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - annotations, typed_path::TypedPath, types::UnitLen, ExecState, ExecutorContext, ImportedGeometry, - ModelingCmdMeta, + ExecState, ExecutorContext, ImportedGeometry, ModelingCmdMeta, annotations, typed_path::TypedPath, + types::UnitLen, }, fs::FileSystem, parsing::ast::types::{Annotation, Node}, @@ -184,7 +184,7 @@ pub(super) fn format_from_annotations( annotations::IMPORT_LENGTH_UNIT ), vec![p.as_source_range()], - ))) + ))); } } } @@ -225,7 +225,7 @@ fn set_coords(fmt: &mut InputFormat3d, coords_str: &str, source_range: SourceRan annotations::IMPORT_COORDS ), vec![source_range], - ))) + ))); } } @@ -246,7 +246,7 @@ fn set_length_unit(fmt: &mut InputFormat3d, units_str: &str, source_range: Sourc annotations::IMPORT_LENGTH_UNIT ), vec![source_range], - ))) + ))); } } @@ -291,7 +291,9 @@ fn get_import_format_from_extension(ext: &str) -> Result { } else if ext == "glb" { FileImportFormat::Gltf } else { - anyhow::bail!("unknown source format for file extension: {ext}. Try setting the `--src-format` flag explicitly or use a valid format.") + anyhow::bail!( + "unknown source format for file extension: {ext}. Try setting the `--src-format` flag explicitly or use a valid format." + ) } } }; diff --git a/rust/kcl-lib/src/execution/import_graph.rs b/rust/kcl-lib/src/execution/import_graph.rs index 483eda8ad..9c8628557 100644 --- a/rust/kcl-lib/src/execution/import_graph.rs +++ b/rust/kcl-lib/src/execution/import_graph.rs @@ -6,12 +6,12 @@ use std::{ use anyhow::Result; use crate::{ + ExecState, ExecutorContext, KclError, ModuleId, SourceRange, errors::KclErrorDetails, execution::typed_path::TypedPath, modules::{ModulePath, ModuleRepr}, parsing::ast::types::{ImportPath, ImportStatement, Node as AstNode}, walk::{Node, Visitable}, - ExecState, ExecutorContext, KclError, ModuleId, SourceRange, }; /// Specific dependency between two modules. The 0th element of this info @@ -147,7 +147,7 @@ fn import_dependencies( ret.lock() .map_err(|err| { KclError::new_internal(KclErrorDetails::new( - format!("Failed to lock mutex: {}", err), + format!("Failed to lock mutex: {err}"), Default::default(), )) })? @@ -157,7 +157,7 @@ fn import_dependencies( ret.lock() .map_err(|err| { KclError::new_internal(KclErrorDetails::new( - format!("Failed to lock mutex: {}", err), + format!("Failed to lock mutex: {err}"), Default::default(), )) })? @@ -179,7 +179,7 @@ fn import_dependencies( let ret = ret.lock().map_err(|err| { KclError::new_internal(KclErrorDetails::new( - format!("Failed to lock mutex: {}", err), + format!("Failed to lock mutex: {err}"), Default::default(), )) })?; @@ -224,7 +224,7 @@ pub(crate) async fn import_universe( let repr = { let Some(module_info) = exec_state.get_module(module_id) else { return Err(KclError::new_internal(KclErrorDetails::new( - format!("Module {} not found", module_id), + format!("Module {module_id} not found"), vec![import_stmt.into()], ))); }; @@ -244,9 +244,7 @@ mod tests { use crate::parsing::ast::types::{ImportSelector, Program}; macro_rules! kcl { - ( $kcl:expr ) => {{ - $crate::parsing::top_level_parse($kcl).unwrap() - }}; + ( $kcl:expr_2021 ) => {{ $crate::parsing::top_level_parse($kcl).unwrap() }}; } fn into_module_info(program: AstNode) -> DependencyInfo { diff --git a/rust/kcl-lib/src/execution/kcl_value.rs b/rust/kcl-lib/src/execution/kcl_value.rs index 53456fa2d..71c2dba66 100644 --- a/rust/kcl-lib/src/execution/kcl_value.rs +++ b/rust/kcl-lib/src/execution/kcl_value.rs @@ -5,18 +5,18 @@ use schemars::JsonSchema; use serde::Serialize; use crate::{ + CompilationError, KclError, ModuleId, SourceRange, errors::KclErrorDetails, execution::{ - annotations::{SETTINGS, SETTINGS_UNIT_LENGTH}, - types::{NumericType, PrimitiveType, RuntimeType, UnitLen}, EnvironmentRef, ExecState, Face, Geometry, GeometryWithImportedGeometry, Helix, ImportedGeometry, MetaSettings, Metadata, Plane, Sketch, Solid, TagIdentifier, + annotations::{SETTINGS, SETTINGS_UNIT_LENGTH}, + types::{NumericType, PrimitiveType, RuntimeType, UnitLen}, }, parsing::ast::types::{ DefaultParamVal, FunctionExpression, KclNone, Literal, LiteralValue, Node, TagDeclarator, TagNode, }, - std::{args::TyF64, StdFnProps}, - CompilationError, KclError, ModuleId, SourceRange, + std::{StdFnProps, args::TyF64}, }; pub type KclObjectFields = HashMap; @@ -136,9 +136,9 @@ impl JsonSchema for FunctionSource { "FunctionSource".to_owned() } - fn json_schema(gen: &mut schemars::gen::SchemaGenerator) -> schemars::schema::Schema { + fn json_schema(r#gen: &mut schemars::r#gen::SchemaGenerator) -> schemars::schema::Schema { // TODO: Actually generate a reasonable schema. - gen.subschema_for::<()>() + r#gen.subschema_for::<()>() } } @@ -587,7 +587,7 @@ impl KclValue { match self { KclValue::TagIdentifier(t) => Ok(*t.clone()), _ => Err(KclError::new_semantic(KclErrorDetails::new( - format!("Not a tag identifier: {:?}", self), + format!("Not a tag identifier: {self:?}"), self.clone().into(), ))), } @@ -598,7 +598,7 @@ impl KclValue { match self { KclValue::TagDeclarator(t) => Ok((**t).clone()), _ => Err(KclError::new_semantic(KclErrorDetails::new( - format!("Not a tag declarator: {:?}", self), + format!("Not a tag declarator: {self:?}"), self.clone().into(), ))), } diff --git a/rust/kcl-lib/src/execution/memory.rs b/rust/kcl-lib/src/execution/memory.rs index 7547a15f1..a420a6922 100644 --- a/rust/kcl-lib/src/execution/memory.rs +++ b/rust/kcl-lib/src/execution/memory.rs @@ -207,8 +207,8 @@ use std::{ fmt, pin::Pin, sync::{ - atomic::{AtomicBool, AtomicUsize, Ordering}, Arc, + atomic::{AtomicBool, AtomicUsize, Ordering}, }, }; @@ -489,7 +489,7 @@ impl ProgramMemory { } Err(KclError::new_undefined_value( - KclErrorDetails::new(format!("`{}` is not defined", var), vec![]), + KclErrorDetails::new(format!("`{var}` is not defined"), vec![]), Some(var.to_owned()), )) } @@ -647,7 +647,7 @@ impl Stack { let env = self.memory.get_env(self.current_env.index()); if env.contains_key(&key) { return Err(KclError::new_value_already_defined(KclErrorDetails::new( - format!("Cannot redefine `{}`", key), + format!("Cannot redefine `{key}`"), vec![source_range], ))); } @@ -1047,7 +1047,7 @@ mod env { } /// Take all bindings from the environment. - pub(super) fn take_bindings(self: Pin<&mut Self>) -> impl Iterator { + pub(super) fn take_bindings(self: Pin<&mut Self>) -> impl Iterator + use<> { // SAFETY: caller must have unique access since self is mut. We're not moving or invalidating `self`. let bindings = std::mem::take(unsafe { self.bindings.get().as_mut().unwrap() }); bindings.into_iter() diff --git a/rust/kcl-lib/src/execution/mod.rs b/rust/kcl-lib/src/execution/mod.rs index 111a4edaf..5c6f4c209 100644 --- a/rust/kcl-lib/src/execution/mod.rs +++ b/rust/kcl-lib/src/execution/mod.rs @@ -16,10 +16,9 @@ pub(crate) use import::PreImportedGeometry; use indexmap::IndexMap; pub use kcl_value::{KclObjectFields, KclValue}; use kcmc::{ - each_cmd as mcmd, - ok_response::{output::TakeSnapshot, OkModelingCmdResponse}, + ImageFormat, ModelingCmd, each_cmd as mcmd, + ok_response::{OkModelingCmdResponse, output::TakeSnapshot}, websocket::{ModelingSessionData, OkWebSocketResponseData}, - ImageFormat, ModelingCmd, }; use kittycad_modeling_cmds::{self as kcmc, id::ModelingCmdId}; pub use memory::EnvironmentRef; @@ -31,6 +30,7 @@ pub use state::{ExecState, MetaSettings}; use uuid::Uuid; use crate::{ + CompilationError, ExecError, KclErrorWithOutputs, engine::{EngineManager, GridScaleBehavior}, errors::{KclError, KclErrorDetails}, execution::{ @@ -43,7 +43,6 @@ use crate::{ modules::{ModuleId, ModulePath, ModuleRepr}, parsing::ast::types::{Expr, ImportPath, NodeRef}, source_range::SourceRange, - CompilationError, ExecError, KclErrorWithOutputs, }; pub(crate) mod annotations; @@ -1329,7 +1328,7 @@ impl ExecutorContext { created: if deterministic_time { Some("2021-01-01T00:00:00Z".parse().map_err(|e| { KclError::new_internal(crate::errors::KclErrorDetails::new( - format!("Failed to parse date: {}", e), + format!("Failed to parse date: {e}"), vec![SourceRange::default()], )) })?) @@ -1409,7 +1408,7 @@ pub(crate) async fn parse_execute_with_project_dir( engine: Arc::new(Box::new( crate::engine::conn_mock::EngineConnection::new().await.map_err(|err| { KclError::new_internal(crate::errors::KclErrorDetails::new( - format!("Failed to create mock engine connection: {}", err), + format!("Failed to create mock engine connection: {err}"), vec![SourceRange::default()], )) })?, @@ -1446,7 +1445,7 @@ mod tests { use pretty_assertions::assert_eq; use super::*; - use crate::{errors::KclErrorDetails, execution::memory::Stack, ModuleId}; + use crate::{ModuleId, errors::KclErrorDetails, execution::memory::Stack}; /// Convenience function to get a JSON value from memory and unwrap. #[track_caller] @@ -2045,8 +2044,7 @@ notFunction = !x"; fn_err .message() .starts_with("Cannot apply unary operator ! to non-boolean value: "), - "Actual error: {:?}", - fn_err + "Actual error: {fn_err:?}" ); let code8 = " @@ -2059,8 +2057,7 @@ notTagDeclarator = !myTagDeclarator"; tag_declarator_err .message() .starts_with("Cannot apply unary operator ! to non-boolean value: a tag declarator"), - "Actual error: {:?}", - tag_declarator_err + "Actual error: {tag_declarator_err:?}" ); let code9 = " @@ -2073,8 +2070,7 @@ notTagIdentifier = !myTag"; tag_identifier_err .message() .starts_with("Cannot apply unary operator ! to non-boolean value: a tag identifier"), - "Actual error: {:?}", - tag_identifier_err + "Actual error: {tag_identifier_err:?}" ); let code10 = "notPipe = !(1 |> 2)"; @@ -2226,7 +2222,7 @@ w = f() + f() if let Err(err) = ctx.run_with_caching(old_program).await { let report = err.into_miette_report_with_outputs(code).unwrap(); let report = miette::Report::new(report); - panic!("Error executing program: {:?}", report); + panic!("Error executing program: {report:?}"); } // Get the id_generator from the first execution. diff --git a/rust/kcl-lib/src/execution/modeling.rs b/rust/kcl-lib/src/execution/modeling.rs index d93ecff13..2394c0afe 100644 --- a/rust/kcl-lib/src/execution/modeling.rs +++ b/rust/kcl-lib/src/execution/modeling.rs @@ -8,10 +8,10 @@ use uuid::Uuid; #[cfg(feature = "artifact-graph")] use crate::exec::ArtifactCommand; use crate::{ + ExecState, ExecutorContext, KclError, SourceRange, exec::{IdGenerator, KclValue}, execution::Solid, std::Args, - ExecState, ExecutorContext, KclError, SourceRange, }; /// Context and metadata needed to send a single modeling command. diff --git a/rust/kcl-lib/src/execution/state.rs b/rust/kcl-lib/src/execution/state.rs index 53614c644..d6088153e 100644 --- a/rust/kcl-lib/src/execution/state.rs +++ b/rust/kcl-lib/src/execution/state.rs @@ -9,20 +9,19 @@ use uuid::Uuid; #[cfg(feature = "artifact-graph")] use crate::execution::{Artifact, ArtifactCommand, ArtifactGraph, ArtifactId}; use crate::{ + CompilationError, EngineManager, ExecutorContext, KclErrorWithOutputs, errors::{KclError, KclErrorDetails, Severity}, exec::DefaultPlanes, execution::{ - annotations, + EnvironmentRef, ExecOutcome, ExecutorSettings, KclValue, UnitAngle, UnitLen, annotations, cad_op::Operation, id_generator::IdGenerator, memory::{ProgramMemory, Stack}, types::{self, NumericType}, - EnvironmentRef, ExecOutcome, ExecutorSettings, KclValue, UnitAngle, UnitLen, }, modules::{ModuleId, ModuleInfo, ModuleLoader, ModulePath, ModuleRepr, ModuleSource}, parsing::ast::types::{Annotation, NodeRef}, source_range::SourceRange, - CompilationError, EngineManager, ExecutorContext, KclErrorWithOutputs, }; /// State for executing a program. @@ -555,7 +554,7 @@ impl MetaSettings { annotations::SETTINGS_UNIT_ANGLE ), vec![annotation.as_source_range()], - ))) + ))); } } } diff --git a/rust/kcl-lib/src/execution/typed_path.rs b/rust/kcl-lib/src/execution/typed_path.rs index 2dabe9709..16757a1df 100644 --- a/rust/kcl-lib/src/execution/typed_path.rs +++ b/rust/kcl-lib/src/execution/typed_path.rs @@ -220,9 +220,9 @@ impl schemars::JsonSchema for TypedPath { "TypedPath".to_owned() } - fn json_schema(gen: &mut schemars::gen::SchemaGenerator) -> schemars::schema::Schema { + fn json_schema(r#gen: &mut schemars::r#gen::SchemaGenerator) -> schemars::schema::Schema { // TODO: Actually generate a reasonable schema. - gen.subschema_for::() + r#gen.subschema_for::() } } diff --git a/rust/kcl-lib/src/execution/types.rs b/rust/kcl-lib/src/execution/types.rs index 7708516a3..6de88d39b 100644 --- a/rust/kcl-lib/src/execution/types.rs +++ b/rust/kcl-lib/src/execution/types.rs @@ -5,17 +5,17 @@ use schemars::JsonSchema; use serde::{Deserialize, Serialize}; use crate::{ + CompilationError, SourceRange, execution::{ + ExecState, Plane, PlaneInfo, Point3d, kcl_value::{KclValue, TypeDef}, memory::{self}, - ExecState, Plane, PlaneInfo, Point3d, }, parsing::{ ast::types::{PrimitiveType as AstPrimitiveType, Type}, token::NumericSuffix, }, std::args::{FromKclValue, TyF64}, - CompilationError, SourceRange, }; #[derive(Debug, Clone, PartialEq)] @@ -210,7 +210,7 @@ impl RuntimeType { let ty_val = exec_state .stack() .get(&format!("{}{}", memory::TYPE_PREFIX, alias), source_range) - .map_err(|_| CompilationError::err(source_range, format!("Unknown type: {}", alias)))?; + .map_err(|_| CompilationError::err(source_range, format!("Unknown type: {alias}")))?; Ok(match ty_val { KclValue::Type { value, .. } => match value { @@ -241,7 +241,7 @@ impl RuntimeType { "a tuple with values of types ({})", tys.iter().map(Self::human_friendly_type).collect::>().join(", ") ), - RuntimeType::Object(_) => format!("an object with fields {}", self), + RuntimeType::Object(_) => format!("an object with fields {self}"), } } @@ -1529,7 +1529,7 @@ impl KclValue { #[cfg(test)] mod test { use super::*; - use crate::execution::{parse_execute, ExecTestResults}; + use crate::execution::{ExecTestResults, parse_execute}; fn values(exec_state: &mut ExecState) -> Vec { vec![ @@ -1975,14 +1975,16 @@ mod test { ]) ) ); - assert!(RuntimeType::Union(vec![ - RuntimeType::Primitive(PrimitiveType::Number(NumericType::Any)), - RuntimeType::Primitive(PrimitiveType::Boolean) - ]) - .subtype(&RuntimeType::Union(vec![ - RuntimeType::Primitive(PrimitiveType::Number(NumericType::Any)), - RuntimeType::Primitive(PrimitiveType::Boolean) - ]))); + assert!( + RuntimeType::Union(vec![ + RuntimeType::Primitive(PrimitiveType::Number(NumericType::Any)), + RuntimeType::Primitive(PrimitiveType::Boolean) + ]) + .subtype(&RuntimeType::Union(vec![ + RuntimeType::Primitive(PrimitiveType::Number(NumericType::Any)), + RuntimeType::Primitive(PrimitiveType::Boolean) + ])) + ); // Covariance let count = KclValue::Number { diff --git a/rust/kcl-lib/src/fs/local.rs b/rust/kcl-lib/src/fs/local.rs index ed1dd76ea..8f545f447 100644 --- a/rust/kcl-lib/src/fs/local.rs +++ b/rust/kcl-lib/src/fs/local.rs @@ -3,10 +3,10 @@ use anyhow::Result; use crate::{ + SourceRange, errors::{KclError, KclErrorDetails}, execution::typed_path::TypedPath, fs::FileSystem, - SourceRange, }; #[derive(Debug, Clone)] diff --git a/rust/kcl-lib/src/fs/mod.rs b/rust/kcl-lib/src/fs/mod.rs index 7bdcaed58..555d1fa1a 100644 --- a/rust/kcl-lib/src/fs/mod.rs +++ b/rust/kcl-lib/src/fs/mod.rs @@ -2,7 +2,7 @@ use anyhow::Result; -use crate::{execution::typed_path::TypedPath, SourceRange}; +use crate::{SourceRange, execution::typed_path::TypedPath}; #[cfg(not(target_arch = "wasm32"))] pub mod local; diff --git a/rust/kcl-lib/src/fs/wasm.rs b/rust/kcl-lib/src/fs/wasm.rs index 03a8c3461..12b6cebda 100644 --- a/rust/kcl-lib/src/fs/wasm.rs +++ b/rust/kcl-lib/src/fs/wasm.rs @@ -4,11 +4,11 @@ use anyhow::Result; use wasm_bindgen::prelude::wasm_bindgen; use crate::{ + SourceRange, errors::{KclError, KclErrorDetails}, execution::typed_path::TypedPath, fs::FileSystem, wasm::JsFuture, - SourceRange, }; #[wasm_bindgen(module = "/../../src/lang/std/fileSystemManager.ts")] diff --git a/rust/kcl-lib/src/lib.rs b/rust/kcl-lib/src/lib.rs index 95cdde534..7aebd7d20 100644 --- a/rust/kcl-lib/src/lib.rs +++ b/rust/kcl-lib/src/lib.rs @@ -90,10 +90,9 @@ pub use errors::{ ReportWithOutputs, }; pub use execution::{ - bust_cache, clear_mem_cache, + ExecOutcome, ExecState, ExecutorContext, ExecutorSettings, MetaSettings, Point2d, bust_cache, clear_mem_cache, typed_path::TypedPath, types::{UnitAngle, UnitLen}, - ExecOutcome, ExecState, ExecutorContext, ExecutorSettings, MetaSettings, Point2d, }; pub use lsp::{ copilot::Backend as CopilotLspBackend, @@ -101,7 +100,7 @@ pub use lsp::{ }; pub use modules::ModuleId; pub use parsing::ast::types::{FormatOptions, NodePath, Step as NodePathStep}; -pub use settings::types::{project::ProjectConfiguration, Configuration, UnitLength}; +pub use settings::types::{Configuration, UnitLength, project::ProjectConfiguration}; pub use source_range::SourceRange; #[cfg(not(target_arch = "wasm32"))] pub use unparser::{recast_dir, walk_dir}; @@ -109,12 +108,12 @@ pub use unparser::{recast_dir, walk_dir}; // Rather than make executor public and make lots of it pub(crate), just re-export into a new module. // Ideally we wouldn't export these things at all, they should only be used for testing. pub mod exec { - pub use crate::execution::{ - types::{NumericType, UnitAngle, UnitLen, UnitType}, - DefaultPlanes, IdGenerator, KclValue, PlaneType, Sketch, - }; #[cfg(feature = "artifact-graph")] pub use crate::execution::{ArtifactCommand, Operation}; + pub use crate::execution::{ + DefaultPlanes, IdGenerator, KclValue, PlaneType, Sketch, + types::{NumericType, UnitAngle, UnitLen, UnitType}, + }; } #[cfg(target_arch = "wasm32")] @@ -136,7 +135,7 @@ pub mod native_engine { } pub mod std_utils { - pub use crate::std::utils::{get_tangential_arc_to_info, is_points_ccw_wasm, TangentialArcInfoInput}; + pub use crate::std::utils::{TangentialArcInfoInput, get_tangential_arc_to_info, is_points_ccw_wasm}; } pub mod pretty { @@ -160,7 +159,7 @@ lazy_static::lazy_static! { #[cfg(feature = "cli")] let named_extensions = kittycad::types::FileImportFormat::value_variants() .iter() - .map(|x| format!("{}", x)) + .map(|x| format!("{x}")) .collect::>(); #[cfg(not(feature = "cli"))] let named_extensions = vec![]; // We don't really need this outside of the CLI. @@ -276,41 +275,25 @@ impl Program { #[inline] fn try_f64_to_usize(f: f64) -> Option { let i = f as usize; - if i as f64 == f { - Some(i) - } else { - None - } + if i as f64 == f { Some(i) } else { None } } #[inline] fn try_f64_to_u32(f: f64) -> Option { let i = f as u32; - if i as f64 == f { - Some(i) - } else { - None - } + if i as f64 == f { Some(i) } else { None } } #[inline] fn try_f64_to_u64(f: f64) -> Option { let i = f as u64; - if i as f64 == f { - Some(i) - } else { - None - } + if i as f64 == f { Some(i) } else { None } } #[inline] fn try_f64_to_i64(f: f64) -> Option { let i = f as i64; - if i as f64 == f { - Some(i) - } else { - None - } + if i as f64 == f { Some(i) } else { None } } /// Get the version of the KCL library. diff --git a/rust/kcl-lib/src/lint/checks/camel_case.rs b/rust/kcl-lib/src/lint/checks/camel_case.rs index ce73c158b..4c60e45aa 100644 --- a/rust/kcl-lib/src/lint/checks/camel_case.rs +++ b/rust/kcl-lib/src/lint/checks/camel_case.rs @@ -2,11 +2,11 @@ use anyhow::Result; use convert_case::Casing; use crate::{ + SourceRange, errors::Suggestion, - lint::rule::{def_finding, Discovered, Finding}, + lint::rule::{Discovered, Finding, def_finding}, parsing::ast::types::{Node as AstNode, ObjectProperty, Program, VariableDeclarator}, walk::Node, - SourceRange, }; def_finding!( @@ -38,12 +38,12 @@ fn lint_lower_camel_case_var(decl: &VariableDeclarator, prog: &AstNode) let recast = prog.recast(&Default::default(), 0); let suggestion = Suggestion { - title: format!("rename '{}' to '{}'", name, new_name), + title: format!("rename '{name}' to '{new_name}'"), insert: recast, source_range: prog.as_source_range(), }; findings.push(Z0001.at( - format!("found '{}'", name), + format!("found '{name}'"), SourceRange::new(ident.start, ident.end, ident.module_id), Some(suggestion.clone()), )); @@ -61,7 +61,7 @@ fn lint_lower_camel_case_property(decl: &ObjectProperty, _prog: &AstNode) -> Result) -> Res } let suggestion = Suggestion { title: "use defaultPlane instead".to_owned(), - insert: format!("{}", plane_name), + insert: format!("{plane_name}"), source_range: call_source_range, }; Ok(vec![Z0002.at( - format!( - "custom plane in startSketchOn; defaultPlane {} would work here", - plane_name - ), + format!("custom plane in startSketchOn; defaultPlane {plane_name} would work here"), call_source_range, Some(suggestion), )]) @@ -48,7 +45,7 @@ pub fn lint_should_be_default_plane(node: Node, _prog: &AstNode) -> Res #[cfg(test)] mod tests { - use super::{lint_should_be_default_plane, Z0002}; + use super::{Z0002, lint_should_be_default_plane}; use crate::lint::rule::{test_finding, test_no_finding}; test_finding!( diff --git a/rust/kcl-lib/src/lint/checks/mod.rs b/rust/kcl-lib/src/lint/checks/mod.rs index 1fa79ead7..598629eb3 100644 --- a/rust/kcl-lib/src/lint/checks/mod.rs +++ b/rust/kcl-lib/src/lint/checks/mod.rs @@ -2,6 +2,6 @@ mod camel_case; mod default_plane; mod offset_plane; -pub use camel_case::{lint_object_properties, lint_variables, Z0001}; -pub use default_plane::{lint_should_be_default_plane, Z0002}; -pub use offset_plane::{lint_should_be_offset_plane, Z0003}; +pub use camel_case::{Z0001, lint_object_properties, lint_variables}; +pub use default_plane::{Z0002, lint_should_be_default_plane}; +pub use offset_plane::{Z0003, lint_should_be_offset_plane}; diff --git a/rust/kcl-lib/src/lint/checks/offset_plane.rs b/rust/kcl-lib/src/lint/checks/offset_plane.rs index 614c862d9..ac4b257a0 100644 --- a/rust/kcl-lib/src/lint/checks/offset_plane.rs +++ b/rust/kcl-lib/src/lint/checks/offset_plane.rs @@ -1,15 +1,15 @@ use anyhow::Result; use crate::{ - engine::{PlaneName, DEFAULT_PLANE_INFO}, + SourceRange, + engine::{DEFAULT_PLANE_INFO, PlaneName}, errors::Suggestion, - execution::{types::UnitLen, PlaneInfo, Point3d}, - lint::rule::{def_finding, Discovered, Finding}, + execution::{PlaneInfo, Point3d, types::UnitLen}, + lint::rule::{Discovered, Finding, def_finding}, parsing::ast::types::{ BinaryPart, CallExpressionKw, Expr, LiteralValue, Node as AstNode, ObjectExpression, Program, UnaryOperator, }, walk::Node, - SourceRange, }; def_finding!( @@ -39,14 +39,11 @@ pub fn lint_should_be_offset_plane(node: Node, _prog: &AstNode) -> Resu } let suggestion = Suggestion { title: "use offsetPlane instead".to_owned(), - insert: format!("offsetPlane({}, offset = {})", plane_name, offset), + insert: format!("offsetPlane({plane_name}, offset = {offset})"), source_range: call_source_range, }; Ok(vec![Z0003.at( - format!( - "custom plane in startSketchOn; offsetPlane from {} would work here", - plane_name - ), + format!("custom plane in startSketchOn; offsetPlane from {plane_name} would work here"), call_source_range, Some(suggestion), )]) @@ -68,16 +65,16 @@ fn get_xyz(point: &ObjectExpression) -> Option<(f64, f64, f64)> { for property in &point.properties { let Some(value) = (match &property.value { - Expr::UnaryExpression(ref value) => { + Expr::UnaryExpression(value) => { if value.operator != UnaryOperator::Neg { continue; } - let BinaryPart::Literal(ref value) = &value.inner.argument else { + let BinaryPart::Literal(value) = &value.inner.argument else { continue; }; unlitafy(&value.inner.value).map(|v| -v) } - Expr::Literal(ref value) => unlitafy(&value.value), + Expr::Literal(value) => unlitafy(&value.value), _ => { continue; } @@ -271,7 +268,7 @@ fn normalize_plane_info(plane_info: &PlaneInfo) -> PlaneInfo { #[cfg(test)] mod tests { - use super::{lint_should_be_offset_plane, Z0003}; + use super::{Z0003, lint_should_be_offset_plane}; use crate::lint::rule::{test_finding, test_no_finding}; test_finding!( diff --git a/rust/kcl-lib/src/lint/rule.rs b/rust/kcl-lib/src/lint/rule.rs index 492bff3a3..f1f40e917 100644 --- a/rust/kcl-lib/src/lint/rule.rs +++ b/rust/kcl-lib/src/lint/rule.rs @@ -4,11 +4,11 @@ use serde::Serialize; use tower_lsp::lsp_types::{Diagnostic, DiagnosticSeverity}; use crate::{ + SourceRange, errors::Suggestion, lsp::IntoDiagnostic, parsing::ast::types::{Node as AstNode, Program}, walk::Node, - SourceRange, }; /// Check the provided AST for any found rule violations. @@ -180,7 +180,7 @@ impl Finding { } macro_rules! def_finding { - ( $code:ident, $title:expr, $description:expr ) => { + ( $code:ident, $title:expr_2021, $description:expr_2021 ) => { /// Generated Finding pub const $code: Finding = $crate::lint::rule::finding!($code, $title, $description); }; @@ -188,7 +188,7 @@ macro_rules! def_finding { pub(crate) use def_finding; macro_rules! finding { - ( $code:ident, $title:expr, $description:expr ) => { + ( $code:ident, $title:expr_2021, $description:expr_2021 ) => { $crate::lint::rule::Finding { code: stringify!($code), title: $title, @@ -205,7 +205,7 @@ pub(crate) use test::{assert_finding, assert_no_finding, test_finding, test_no_f mod test { macro_rules! assert_no_finding { - ( $check:expr, $finding:expr, $kcl:expr ) => { + ( $check:expr_2021, $finding:expr_2021, $kcl:expr_2021 ) => { let prog = $crate::Program::parse_no_errs($kcl).unwrap(); // Ensure the code still works. @@ -220,7 +220,7 @@ mod test { } macro_rules! assert_finding { - ( $check:expr, $finding:expr, $kcl:expr, $output:expr, $suggestion:expr ) => { + ( $check:expr_2021, $finding:expr_2021, $kcl:expr_2021, $output:expr_2021, $suggestion:expr_2021 ) => { let prog = $crate::Program::parse_no_errs($kcl).unwrap(); // Ensure the code still works. @@ -250,7 +250,7 @@ mod test { } macro_rules! test_finding { - ( $name:ident, $check:expr, $finding:expr, $kcl:expr, $output:expr, $suggestion:expr ) => { + ( $name:ident, $check:expr_2021, $finding:expr_2021, $kcl:expr_2021, $output:expr_2021, $suggestion:expr_2021 ) => { #[tokio::test] async fn $name() { $crate::lint::rule::assert_finding!($check, $finding, $kcl, $output, $suggestion); @@ -259,7 +259,7 @@ mod test { } macro_rules! test_no_finding { - ( $name:ident, $check:expr, $finding:expr, $kcl:expr ) => { + ( $name:ident, $check:expr_2021, $finding:expr_2021, $kcl:expr_2021 ) => { #[tokio::test] async fn $name() { $crate::lint::rule::assert_no_finding!($check, $finding, $kcl); diff --git a/rust/kcl-lib/src/lsp/backend.rs b/rust/kcl-lib/src/lsp/backend.rs index facff02de..86a2c61e4 100644 --- a/rust/kcl-lib/src/lsp/backend.rs +++ b/rust/kcl-lib/src/lsp/backend.rs @@ -90,7 +90,7 @@ where async fn do_initialized(&self, params: InitializedParams) { self.client() - .log_message(MessageType::INFO, format!("initialized: {:?}", params)) + .log_message(MessageType::INFO, format!("initialized: {params:?}")) .await; self.set_is_initialized(true).await; @@ -139,7 +139,7 @@ where self.client() .log_message( MessageType::WARNING, - format!("updating from disk `{}` failed: {:?}", project_dir, err), + format!("updating from disk `{project_dir}` failed: {err:?}"), ) .await; } @@ -148,19 +148,19 @@ where async fn do_did_change_configuration(&self, params: DidChangeConfigurationParams) { self.client() - .log_message(MessageType::INFO, format!("configuration changed: {:?}", params)) + .log_message(MessageType::INFO, format!("configuration changed: {params:?}")) .await; } async fn do_did_change_watched_files(&self, params: DidChangeWatchedFilesParams) { self.client() - .log_message(MessageType::INFO, format!("watched files changed: {:?}", params)) + .log_message(MessageType::INFO, format!("watched files changed: {params:?}")) .await; } async fn do_did_create_files(&self, params: CreateFilesParams) { self.client() - .log_message(MessageType::INFO, format!("files created: {:?}", params)) + .log_message(MessageType::INFO, format!("files created: {params:?}")) .await; // Create each file in the code map. for file in params.files { @@ -170,7 +170,7 @@ where async fn do_did_rename_files(&self, params: RenameFilesParams) { self.client() - .log_message(MessageType::INFO, format!("files renamed: {:?}", params)) + .log_message(MessageType::INFO, format!("files renamed: {params:?}")) .await; // Rename each file in the code map. for file in params.files { @@ -186,7 +186,7 @@ where async fn do_did_delete_files(&self, params: DeleteFilesParams) { self.client() - .log_message(MessageType::INFO, format!("files deleted: {:?}", params)) + .log_message(MessageType::INFO, format!("files deleted: {params:?}")) .await; // Delete each file in the map. for file in params.files { @@ -228,7 +228,7 @@ where async fn do_did_close(&self, params: DidCloseTextDocumentParams) { self.client() - .log_message(MessageType::INFO, format!("document closed: {:?}", params)) + .log_message(MessageType::INFO, format!("document closed: {params:?}")) .await; } } diff --git a/rust/kcl-lib/src/lsp/copilot/mod.rs b/rust/kcl-lib/src/lsp/copilot/mod.rs index 8f37ff51b..e98b23e9a 100644 --- a/rust/kcl-lib/src/lsp/copilot/mod.rs +++ b/rust/kcl-lib/src/lsp/copilot/mod.rs @@ -13,6 +13,7 @@ use std::{ use dashmap::DashMap; use serde::{Deserialize, Serialize}; use tower_lsp::{ + LanguageServer, jsonrpc::{Error, Result}, lsp_types::{ CreateFilesParams, DeleteFilesParams, Diagnostic, DidChangeConfigurationParams, DidChangeTextDocumentParams, @@ -22,7 +23,6 @@ use tower_lsp::{ TextDocumentSyncKind, TextDocumentSyncOptions, WorkspaceFolder, WorkspaceFoldersServerCapabilities, WorkspaceServerCapabilities, }, - LanguageServer, }; use crate::lsp::{ @@ -198,7 +198,7 @@ impl Backend { .map_err(|err| Error { code: tower_lsp::jsonrpc::ErrorCode::from(69), data: None, - message: Cow::from(format!("Failed to get completions from zoo api: {}", err)), + message: Cow::from(format!("Failed to get completions from zoo api: {err}")), })?; Ok(resp.completions) } @@ -209,7 +209,7 @@ impl Backend { let mut lock = copy.write().map_err(|err| Error { code: tower_lsp::jsonrpc::ErrorCode::from(69), data: None, - message: Cow::from(format!("Failed lock: {}", err)), + message: Cow::from(format!("Failed lock: {err}")), })?; *lock = params; Ok(Success::new(true)) @@ -254,7 +254,7 @@ impl Backend { .map_err(|err| Error { code: tower_lsp::jsonrpc::ErrorCode::from(69), data: None, - message: Cow::from(format!("Failed to get completions: {}", err)), + message: Cow::from(format!("Failed to get completions: {err}")), })?; #[cfg(not(test))] let mut completion_list = vec![]; @@ -294,7 +294,7 @@ part001 = cube(pos = [0,0], scale = 20) pub async fn accept_completion(&self, params: CopilotAcceptCompletionParams) { self.client - .log_message(MessageType::INFO, format!("Accepted completions: {:?}", params)) + .log_message(MessageType::INFO, format!("Accepted completions: {params:?}")) .await; // Get the original telemetry data. @@ -303,7 +303,7 @@ part001 = cube(pos = [0,0], scale = 20) }; self.client - .log_message(MessageType::INFO, format!("Original telemetry: {:?}", original)) + .log_message(MessageType::INFO, format!("Original telemetry: {original:?}")) .await; // TODO: Send the telemetry data to the zoo api. @@ -311,7 +311,7 @@ part001 = cube(pos = [0,0], scale = 20) pub async fn reject_completions(&self, params: CopilotRejectCompletionParams) { self.client - .log_message(MessageType::INFO, format!("Rejected completions: {:?}", params)) + .log_message(MessageType::INFO, format!("Rejected completions: {params:?}")) .await; // Get the original telemetry data. @@ -323,7 +323,7 @@ part001 = cube(pos = [0,0], scale = 20) } self.client - .log_message(MessageType::INFO, format!("Original telemetry: {:?}", originals)) + .log_message(MessageType::INFO, format!("Original telemetry: {originals:?}")) .await; // TODO: Send the telemetry data to the zoo api. diff --git a/rust/kcl-lib/src/lsp/copilot/types.rs b/rust/kcl-lib/src/lsp/copilot/types.rs index 5878bbc45..8dc4721bd 100644 --- a/rust/kcl-lib/src/lsp/copilot/types.rs +++ b/rust/kcl-lib/src/lsp/copilot/types.rs @@ -85,7 +85,7 @@ impl CopilotCompletionResponse { impl CopilotCyclingCompletion { pub fn new(text: String, line_before: String, position: CopilotPosition) -> Self { let display_text = text.clone(); - let text = format!("{}{}", line_before, text); + let text = format!("{line_before}{text}"); let end_char = text.find('\n').unwrap_or(text.len()) as u32; Self { uuid: uuid::Uuid::new_v4(), diff --git a/rust/kcl-lib/src/lsp/kcl/hover.rs b/rust/kcl-lib/src/lsp/kcl/hover.rs index f18738215..0db697c83 100644 --- a/rust/kcl-lib/src/lsp/kcl/hover.rs +++ b/rust/kcl-lib/src/lsp/kcl/hover.rs @@ -3,7 +3,7 @@ use std::collections::HashMap; use serde::{Deserialize, Serialize}; use tower_lsp::lsp_types::Range as LspRange; -use crate::{parsing::ast::types::*, SourceRange}; +use crate::{SourceRange, parsing::ast::types::*}; /// Describes information about a hover. #[derive(Debug, Clone, Deserialize, Serialize, PartialEq)] diff --git a/rust/kcl-lib/src/lsp/kcl/mod.rs b/rust/kcl-lib/src/lsp/kcl/mod.rs index 30c9ec3eb..0b455ec38 100644 --- a/rust/kcl-lib/src/lsp/kcl/mod.rs +++ b/rust/kcl-lib/src/lsp/kcl/mod.rs @@ -15,6 +15,7 @@ use dashmap::DashMap; use sha2::Digest; use tokio::sync::RwLock; use tower_lsp::{ + Client, LanguageServer, jsonrpc::Result as RpcResult, lsp_types::{ CodeAction, CodeActionKind, CodeActionOptions, CodeActionOrCommand, CodeActionParams, @@ -37,10 +38,10 @@ use tower_lsp::{ TextDocumentSyncCapability, TextDocumentSyncKind, TextDocumentSyncOptions, TextEdit, WorkDoneProgressOptions, WorkspaceEdit, WorkspaceFolder, WorkspaceFoldersServerCapabilities, WorkspaceServerCapabilities, }, - Client, LanguageServer, }; use crate::{ + ModuleId, Program, SourceRange, docs::kcl_doc::ModData, errors::LspSuggestion, exec::KclValue, @@ -51,11 +52,10 @@ use crate::{ util::IntoDiagnostic, }, parsing::{ + PIPE_OPERATOR, ast::types::{Expr, VariableKind}, token::TokenStream, - PIPE_OPERATOR, }, - ModuleId, Program, SourceRange, }; pub mod custom_notifications; @@ -290,10 +290,9 @@ impl crate::lsp::backend::Backend for Backend { }; // Get the previous tokens. - let tokens_changed = if let Some(previous_tokens) = self.token_map.get(&filename) { - *previous_tokens != tokens - } else { - true + let tokens_changed = match self.token_map.get(&filename) { + Some(previous_tokens) => *previous_tokens != tokens, + _ => true, }; let had_diagnostics = self.has_diagnostics(params.uri.as_ref()).await; @@ -424,7 +423,7 @@ impl Backend { self.client .log_message( MessageType::ERROR, - format!("token type `{:?}` not accounted for", token_type), + format!("token type `{token_type:?}` not accounted for"), ) .await; continue; @@ -436,119 +435,121 @@ impl Backend { // Calculate the token modifiers. // Get the value at the current position. - let token_modifiers_bitset = if let Some(ast) = self.ast_map.get(params.uri.as_str()) { - let token_index = Arc::new(Mutex::new(token_type_index)); - let modifier_index: Arc> = Arc::new(Mutex::new(0)); - crate::walk::walk(&ast.ast, |node: crate::walk::Node| { - let Ok(node_range): Result = (&node).try_into() else { - return Ok(true); - }; - - if !node_range.contains(source_range.start()) { - return Ok(true); - } - - let get_modifier = |modifier: Vec| -> Result { - let mut mods = modifier_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; - let Some(token_modifier_index) = self.get_semantic_token_modifier_index(modifier) else { + let token_modifiers_bitset = match self.ast_map.get(params.uri.as_str()) { + Some(ast) => { + let token_index = Arc::new(Mutex::new(token_type_index)); + let modifier_index: Arc> = Arc::new(Mutex::new(0)); + crate::walk::walk(&ast.ast, |node: crate::walk::Node| { + let Ok(node_range): Result = (&node).try_into() else { return Ok(true); }; - if *mods == 0 { - *mods = token_modifier_index; - } else { - *mods |= token_modifier_index; - } - Ok(false) - }; - match node { - crate::walk::Node::TagDeclarator(_) => { - return get_modifier(vec![ - SemanticTokenModifier::DEFINITION, - SemanticTokenModifier::STATIC, - ]); + if !node_range.contains(source_range.start()) { + return Ok(true); } - crate::walk::Node::VariableDeclarator(variable) => { - let sr: SourceRange = (&variable.id).into(); - if sr.contains(source_range.start()) { - if let Expr::FunctionExpression(_) = &variable.init { + + let get_modifier = |modifier: Vec| -> Result { + let mut mods = modifier_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; + let Some(token_modifier_index) = self.get_semantic_token_modifier_index(modifier) else { + return Ok(true); + }; + if *mods == 0 { + *mods = token_modifier_index; + } else { + *mods |= token_modifier_index; + } + Ok(false) + }; + + match node { + crate::walk::Node::TagDeclarator(_) => { + return get_modifier(vec![ + SemanticTokenModifier::DEFINITION, + SemanticTokenModifier::STATIC, + ]); + } + crate::walk::Node::VariableDeclarator(variable) => { + let sr: SourceRange = (&variable.id).into(); + if sr.contains(source_range.start()) { + if let Expr::FunctionExpression(_) = &variable.init { + let mut ti = token_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; + *ti = match self.get_semantic_token_type_index(&SemanticTokenType::FUNCTION) { + Some(index) => index, + None => token_type_index, + }; + } + + return get_modifier(vec![ + SemanticTokenModifier::DECLARATION, + SemanticTokenModifier::READONLY, + ]); + } + } + crate::walk::Node::Parameter(_) => { + let mut ti = token_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; + *ti = match self.get_semantic_token_type_index(&SemanticTokenType::PARAMETER) { + Some(index) => index, + None => token_type_index, + }; + return Ok(false); + } + crate::walk::Node::MemberExpression(member_expression) => { + let sr: SourceRange = (&member_expression.property).into(); + if sr.contains(source_range.start()) { + let mut ti = token_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; + *ti = match self.get_semantic_token_type_index(&SemanticTokenType::PROPERTY) { + Some(index) => index, + None => token_type_index, + }; + return Ok(false); + } + } + crate::walk::Node::ObjectProperty(object_property) => { + let sr: SourceRange = (&object_property.key).into(); + if sr.contains(source_range.start()) { + let mut ti = token_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; + *ti = match self.get_semantic_token_type_index(&SemanticTokenType::PROPERTY) { + Some(index) => index, + None => token_type_index, + }; + } + return get_modifier(vec![SemanticTokenModifier::DECLARATION]); + } + crate::walk::Node::CallExpressionKw(call_expr) => { + let sr: SourceRange = (&call_expr.callee).into(); + if sr.contains(source_range.start()) { let mut ti = token_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; *ti = match self.get_semantic_token_type_index(&SemanticTokenType::FUNCTION) { Some(index) => index, None => token_type_index, }; + + if self.stdlib_completions.contains_key(&call_expr.callee.name.name) { + // This is a stdlib function. + return get_modifier(vec![SemanticTokenModifier::DEFAULT_LIBRARY]); + } + + return Ok(false); } + } + _ => {} + } + Ok(true) + }) + .unwrap_or_default(); - return get_modifier(vec![ - SemanticTokenModifier::DECLARATION, - SemanticTokenModifier::READONLY, - ]); - } - } - crate::walk::Node::Parameter(_) => { - let mut ti = token_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; - *ti = match self.get_semantic_token_type_index(&SemanticTokenType::PARAMETER) { - Some(index) => index, - None => token_type_index, - }; - return Ok(false); - } - crate::walk::Node::MemberExpression(member_expression) => { - let sr: SourceRange = (&member_expression.property).into(); - if sr.contains(source_range.start()) { - let mut ti = token_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; - *ti = match self.get_semantic_token_type_index(&SemanticTokenType::PROPERTY) { - Some(index) => index, - None => token_type_index, - }; - return Ok(false); - } - } - crate::walk::Node::ObjectProperty(object_property) => { - let sr: SourceRange = (&object_property.key).into(); - if sr.contains(source_range.start()) { - let mut ti = token_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; - *ti = match self.get_semantic_token_type_index(&SemanticTokenType::PROPERTY) { - Some(index) => index, - None => token_type_index, - }; - } - return get_modifier(vec![SemanticTokenModifier::DECLARATION]); - } - crate::walk::Node::CallExpressionKw(call_expr) => { - let sr: SourceRange = (&call_expr.callee).into(); - if sr.contains(source_range.start()) { - let mut ti = token_index.lock().map_err(|_| anyhow::anyhow!("mutex"))?; - *ti = match self.get_semantic_token_type_index(&SemanticTokenType::FUNCTION) { - Some(index) => index, - None => token_type_index, - }; + let t = match token_index.lock() { + Ok(guard) => *guard, + _ => 0, + }; + token_type_index = t; - if self.stdlib_completions.contains_key(&call_expr.callee.name.name) { - // This is a stdlib function. - return get_modifier(vec![SemanticTokenModifier::DEFAULT_LIBRARY]); - } - - return Ok(false); - } - } - _ => {} + match modifier_index.lock() { + Ok(guard) => *guard, + _ => 0, } - Ok(true) - }) - .unwrap_or_default(); - - let t = if let Ok(guard) = token_index.lock() { *guard } else { 0 }; - token_type_index = t; - - let m = if let Ok(guard) = modifier_index.lock() { - *guard - } else { - 0 - }; - m - } else { - 0 + } + _ => 0, }; // We need to check if we are on the last token of the line. @@ -652,11 +653,14 @@ impl Backend { .await; } - let mut items = if let Some(items) = self.diagnostics_map.get(params.uri.as_str()) { - // TODO: Would be awesome to fix the clone here. - items.clone() - } else { - vec![] + let mut items = match self.diagnostics_map.get(params.uri.as_str()) { + Some(items) => { + // TODO: Would be awesome to fix the clone here. + items.clone() + } + _ => { + vec![] + } }; for diagnostic in diagnostics { @@ -768,7 +772,7 @@ impl Backend { // Read hash digest and consume hasher let result = hasher.finalize(); // Get the hash as a string. - let user_id_hash = format!("{:x}", result); + let user_id_hash = format!("{result:x}"); // Get the workspace folders. // The key of the workspace folder is the project name. @@ -866,7 +870,7 @@ impl Backend { impl LanguageServer for Backend { async fn initialize(&self, params: InitializeParams) -> RpcResult { self.client - .log_message(MessageType::INFO, format!("initialize: {:?}", params)) + .log_message(MessageType::INFO, format!("initialize: {params:?}")) .await; Ok(InitializeResult { @@ -1006,7 +1010,7 @@ impl LanguageServer for Backend { #[cfg(not(target_arch = "wasm32"))] if let Err(err) = self.send_telemetry().await { self.client - .log_message(MessageType::WARNING, format!("failed to send telemetry: {}", err)) + .log_message(MessageType::WARNING, format!("failed to send telemetry: {err}")) .await; } } @@ -1090,7 +1094,7 @@ impl LanguageServer for Backend { Ok(Some(LspHover { contents: HoverContents::Markup(MarkupContent { kind: MarkupKind::Markdown, - value: format!("```\n{}{}\n```\n\n{}", name, sig, docs), + value: format!("```\n{name}{sig}\n```\n\n{docs}"), }), range: Some(range), })) @@ -1118,7 +1122,7 @@ impl LanguageServer for Backend { Ok(Some(LspHover { contents: HoverContents::Markup(MarkupContent { kind: MarkupKind::Markdown, - value: format!("```\n{}\n```\n\n{}", name, docs), + value: format!("```\n{name}\n```\n\n{docs}"), }), range: Some(range), })) @@ -1153,17 +1157,17 @@ impl LanguageServer for Backend { } => Ok(Some(LspHover { contents: HoverContents::Markup(MarkupContent { kind: MarkupKind::Markdown, - value: format!("```\n{}: {}\n```", name, ty), + value: format!("```\n{name}: {ty}\n```"), }), range: Some(range), })), Hover::Variable { name, ty: None, range } => Ok(with_cached_var(&name, |value| { - let mut text: String = format!("```\n{}", name); + let mut text: String = format!("```\n{name}"); if let Some(ty) = value.principal_type() { text.push_str(&format!(": {}", ty.human_friendly_type())); } if let Some(v) = value.value_str() { - text.push_str(&format!(" = {}", v)); + text.push_str(&format!(" = {v}")); } text.push_str("\n```"); diff --git a/rust/kcl-lib/src/lsp/mod.rs b/rust/kcl-lib/src/lsp/mod.rs index d66af6a99..d480907d3 100644 --- a/rust/kcl-lib/src/lsp/mod.rs +++ b/rust/kcl-lib/src/lsp/mod.rs @@ -13,8 +13,8 @@ use tower_lsp::lsp_types::{Diagnostic, DiagnosticSeverity, DiagnosticTag}; pub use util::IntoDiagnostic; use crate::{ - errors::{Severity, Tag}, CompilationError, + errors::{Severity, Tag}, }; impl IntoDiagnostic for CompilationError { diff --git a/rust/kcl-lib/src/lsp/tests.rs b/rust/kcl-lib/src/lsp/tests.rs index 9cafad993..28277f9c4 100644 --- a/rust/kcl-lib/src/lsp/tests.rs +++ b/rust/kcl-lib/src/lsp/tests.rs @@ -2,18 +2,18 @@ use std::collections::{BTreeMap, HashMap}; use pretty_assertions::assert_eq; use tower_lsp::{ + LanguageServer, lsp_types::{ CodeActionKind, CodeActionOrCommand, Diagnostic, PrepareRenameResponse, SemanticTokenModifier, SemanticTokenType, TextEdit, WorkspaceEdit, }, - LanguageServer, }; use crate::{ + SourceRange, errors::{LspSuggestion, Suggestion}, lsp::test_util::{copilot_lsp_server, kcl_lsp_server}, parsing::ast::types::{Node, Program}, - SourceRange, }; #[track_caller] @@ -276,11 +276,7 @@ async fn test_updating_kcl_lsp_files() { assert_eq!(server.code_map.len(), 11); // Just make sure that one of the current files read from disk is accurate. assert_eq!( - server - .code_map - .get(&format!("{}/util.rs", string_path)) - .unwrap() - .clone(), + server.code_map.get(&format!("{string_path}/util.rs")).unwrap().clone(), include_str!("util.rs").as_bytes() ); } @@ -633,7 +629,7 @@ async fn test_kcl_lsp_create_zip() { } assert_eq!(files.len(), 12); - let util_path = format!("{}/util.rs", string_path).replace("file://", ""); + let util_path = format!("{string_path}/util.rs").replace("file://", ""); assert!(files.contains_key(&util_path)); assert_eq!(files.get("/test.kcl"), Some(&4)); } diff --git a/rust/kcl-lib/src/modules.rs b/rust/kcl-lib/src/modules.rs index fe3ccc904..adea2ae04 100644 --- a/rust/kcl-lib/src/modules.rs +++ b/rust/kcl-lib/src/modules.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize}; use crate::{ errors::{KclError, KclErrorDetails}, exec::KclValue, - execution::{typed_path::TypedPath, EnvironmentRef, ModuleArtifactState, PreImportedGeometry}, + execution::{EnvironmentRef, ModuleArtifactState, PreImportedGeometry, typed_path::TypedPath}, fs::{FileManager, FileSystem}, parsing::ast::types::{ImportPath, Node, Program}, source_range::SourceRange, @@ -73,13 +73,13 @@ impl ModuleLoader { } pub(crate) fn enter_module(&mut self, path: &ModulePath) { - if let ModulePath::Local { value: ref path } = path { + if let ModulePath::Local { value: path } = path { self.import_stack.push(path.clone()); } } pub(crate) fn leave_module(&mut self, path: &ModulePath) { - if let ModulePath::Local { value: ref path } = path { + if let ModulePath::Local { value: path } = path { let popped = self.import_stack.pop().unwrap(); assert_eq!(path, &popped); } diff --git a/rust/kcl-lib/src/parsing/ast/mod.rs b/rust/kcl-lib/src/parsing/ast/mod.rs index f2cbd2f8c..147004e81 100644 --- a/rust/kcl-lib/src/parsing/ast/mod.rs +++ b/rust/kcl-lib/src/parsing/ast/mod.rs @@ -2,8 +2,8 @@ pub(crate) mod digest; pub mod types; use crate::{ - parsing::ast::types::{BinaryPart, BodyItem, Expr, LiteralIdentifier}, ModuleId, + parsing::ast::types::{BinaryPart, BodyItem, Expr, LiteralIdentifier}, }; impl BodyItem { diff --git a/rust/kcl-lib/src/parsing/ast/types/mod.rs b/rust/kcl-lib/src/parsing/ast/types/mod.rs index 53cd2f62a..bd44f7181 100644 --- a/rust/kcl-lib/src/parsing/ast/types/mod.rs +++ b/rust/kcl-lib/src/parsing/ast/types/mod.rs @@ -25,15 +25,14 @@ pub use crate::parsing::ast::types::{ none::KclNone, }; use crate::{ + ModuleId, TypedPath, errors::KclError, execution::{ - annotations, + KclValue, Metadata, TagIdentifier, annotations, types::{ArrayLen, UnitAngle, UnitLen}, - KclValue, Metadata, TagIdentifier, }, - parsing::{ast::digest::Digest, token::NumericSuffix, PIPE_OPERATOR}, + parsing::{PIPE_OPERATOR, ast::digest::Digest, token::NumericSuffix}, source_range::SourceRange, - ModuleId, TypedPath, }; mod condition; @@ -72,18 +71,18 @@ impl schemars::JsonSchema for Node { T::schema_name() } - fn json_schema(gen: &mut schemars::gen::SchemaGenerator) -> schemars::schema::Schema { - let mut child = T::json_schema(gen).into_object(); + fn json_schema(r#gen: &mut schemars::r#gen::SchemaGenerator) -> schemars::schema::Schema { + let mut child = T::json_schema(r#gen).into_object(); // We want to add the start and end fields to the schema. // Ideally we would add _any_ extra fields from the Node type automatically // but this is a bit hard since this isn't a macro. - let Some(ref mut object) = &mut child.object else { + let Some(object) = &mut child.object else { // This should never happen. But it will panic at compile time of docs if it does. // Which is better than runtime. panic!("Expected object schema for {}", T::schema_name()); }; - object.properties.insert("start".to_string(), usize::json_schema(gen)); - object.properties.insert("end".to_string(), usize::json_schema(gen)); + object.properties.insert("start".to_string(), usize::json_schema(r#gen)); + object.properties.insert("end".to_string(), usize::json_schema(r#gen)); schemars::schema::Schema::Object(child.clone()) } @@ -681,7 +680,7 @@ impl Program { break; } } - BodyItem::VariableDeclaration(ref mut variable_declaration) => { + BodyItem::VariableDeclaration(variable_declaration) => { if let Some(var_old_name) = variable_declaration.rename_symbol(new_name, pos) { old_name = Some(var_old_name); break; @@ -705,18 +704,16 @@ impl Program { // Recurse over the item. let mut value = match item { BodyItem::ImportStatement(_) => None, // TODO - BodyItem::ExpressionStatement(ref mut expression_statement) => { - Some(&mut expression_statement.expression) - } - BodyItem::VariableDeclaration(ref mut variable_declaration) => { + BodyItem::ExpressionStatement(expression_statement) => Some(&mut expression_statement.expression), + BodyItem::VariableDeclaration(variable_declaration) => { variable_declaration.get_mut_expr_for_position(pos) } BodyItem::TypeDeclaration(_) => None, - BodyItem::ReturnStatement(ref mut return_statement) => Some(&mut return_statement.argument), + BodyItem::ReturnStatement(return_statement) => Some(&mut return_statement.argument), }; // Check if we have a function expression. - if let Some(Expr::FunctionExpression(ref mut function_expression)) = &mut value { + if let Some(Expr::FunctionExpression(function_expression)) = &mut value { // Check if the params to the function expression contain the position. for param in &mut function_expression.params { let param_source_range: SourceRange = (¶m.identifier).into(); @@ -764,7 +761,7 @@ impl Program { BodyItem::ExpressionStatement(_) => { continue; } - BodyItem::VariableDeclaration(ref mut variable_declaration) => { + BodyItem::VariableDeclaration(variable_declaration) => { if variable_declaration.declaration.id.name == name { variable_declaration.declaration = declarator; return; @@ -783,14 +780,14 @@ impl Program { for item in &mut self.body { match item { BodyItem::ImportStatement(_) => {} // TODO - BodyItem::ExpressionStatement(ref mut expression_statement) => expression_statement + BodyItem::ExpressionStatement(expression_statement) => expression_statement .expression .replace_value(source_range, new_value.clone()), - BodyItem::VariableDeclaration(ref mut variable_declaration) => { + BodyItem::VariableDeclaration(variable_declaration) => { variable_declaration.replace_value(source_range, new_value.clone()) } BodyItem::TypeDeclaration(_) => {} - BodyItem::ReturnStatement(ref mut return_statement) => { + BodyItem::ReturnStatement(return_statement) => { return_statement.argument.replace_value(source_range, new_value.clone()) } } @@ -1040,18 +1037,18 @@ impl Expr { } match self { - Expr::BinaryExpression(ref mut bin_exp) => bin_exp.replace_value(source_range, new_value), - Expr::ArrayExpression(ref mut array_exp) => array_exp.replace_value(source_range, new_value), - Expr::ArrayRangeExpression(ref mut array_range) => array_range.replace_value(source_range, new_value), - Expr::ObjectExpression(ref mut obj_exp) => obj_exp.replace_value(source_range, new_value), + Expr::BinaryExpression(bin_exp) => bin_exp.replace_value(source_range, new_value), + Expr::ArrayExpression(array_exp) => array_exp.replace_value(source_range, new_value), + Expr::ArrayRangeExpression(array_range) => array_range.replace_value(source_range, new_value), + Expr::ObjectExpression(obj_exp) => obj_exp.replace_value(source_range, new_value), Expr::MemberExpression(_) => {} Expr::Literal(_) => {} - Expr::FunctionExpression(ref mut func_exp) => func_exp.replace_value(source_range, new_value), - Expr::CallExpressionKw(ref mut call_exp) => call_exp.replace_value(source_range, new_value), + Expr::FunctionExpression(func_exp) => func_exp.replace_value(source_range, new_value), + Expr::CallExpressionKw(call_exp) => call_exp.replace_value(source_range, new_value), Expr::Name(_) => {} Expr::TagDeclarator(_) => {} - Expr::PipeExpression(ref mut pipe_exp) => pipe_exp.replace_value(source_range, new_value), - Expr::UnaryExpression(ref mut unary_exp) => unary_exp.replace_value(source_range, new_value), + Expr::PipeExpression(pipe_exp) => pipe_exp.replace_value(source_range, new_value), + Expr::UnaryExpression(unary_exp) => unary_exp.replace_value(source_range, new_value), Expr::IfExpression(_) => {} Expr::PipeSubstitution(_) => {} Expr::LabelledExpression(expr) => expr.expr.replace_value(source_range, new_value), @@ -1113,25 +1110,19 @@ impl Expr { fn rename_identifiers(&mut self, old_name: &str, new_name: &str) { match self { Expr::Literal(_literal) => {} - Expr::Name(ref mut identifier) => identifier.rename(old_name, new_name), - Expr::TagDeclarator(ref mut tag) => tag.rename(old_name, new_name), - Expr::BinaryExpression(ref mut binary_expression) => { - binary_expression.rename_identifiers(old_name, new_name) - } + Expr::Name(identifier) => identifier.rename(old_name, new_name), + Expr::TagDeclarator(tag) => tag.rename(old_name, new_name), + Expr::BinaryExpression(binary_expression) => binary_expression.rename_identifiers(old_name, new_name), Expr::FunctionExpression(_function_identifier) => {} - Expr::CallExpressionKw(ref mut call_expression) => call_expression.rename_identifiers(old_name, new_name), - Expr::PipeExpression(ref mut pipe_expression) => pipe_expression.rename_identifiers(old_name, new_name), + Expr::CallExpressionKw(call_expression) => call_expression.rename_identifiers(old_name, new_name), + Expr::PipeExpression(pipe_expression) => pipe_expression.rename_identifiers(old_name, new_name), Expr::PipeSubstitution(_) => {} - Expr::ArrayExpression(ref mut array_expression) => array_expression.rename_identifiers(old_name, new_name), - Expr::ArrayRangeExpression(ref mut array_range) => array_range.rename_identifiers(old_name, new_name), - Expr::ObjectExpression(ref mut object_expression) => { - object_expression.rename_identifiers(old_name, new_name) - } - Expr::MemberExpression(ref mut member_expression) => { - member_expression.rename_identifiers(old_name, new_name) - } - Expr::UnaryExpression(ref mut unary_expression) => unary_expression.rename_identifiers(old_name, new_name), - Expr::IfExpression(ref mut expr) => expr.rename_identifiers(old_name, new_name), + Expr::ArrayExpression(array_expression) => array_expression.rename_identifiers(old_name, new_name), + Expr::ArrayRangeExpression(array_range) => array_range.rename_identifiers(old_name, new_name), + Expr::ObjectExpression(object_expression) => object_expression.rename_identifiers(old_name, new_name), + Expr::MemberExpression(member_expression) => member_expression.rename_identifiers(old_name, new_name), + Expr::UnaryExpression(unary_expression) => unary_expression.rename_identifiers(old_name, new_name), + Expr::IfExpression(expr) => expr.rename_identifiers(old_name, new_name), Expr::LabelledExpression(expr) => expr.expr.rename_identifiers(old_name, new_name), Expr::AscribedExpression(expr) => expr.expr.rename_identifiers(old_name, new_name), Expr::None(_) => {} @@ -1325,15 +1316,9 @@ impl BinaryPart { match self { BinaryPart::Literal(_) => {} BinaryPart::Name(_) => {} - BinaryPart::BinaryExpression(ref mut binary_expression) => { - binary_expression.replace_value(source_range, new_value) - } - BinaryPart::CallExpressionKw(ref mut call_expression) => { - call_expression.replace_value(source_range, new_value) - } - BinaryPart::UnaryExpression(ref mut unary_expression) => { - unary_expression.replace_value(source_range, new_value) - } + BinaryPart::BinaryExpression(binary_expression) => binary_expression.replace_value(source_range, new_value), + BinaryPart::CallExpressionKw(call_expression) => call_expression.replace_value(source_range, new_value), + BinaryPart::UnaryExpression(unary_expression) => unary_expression.replace_value(source_range, new_value), BinaryPart::MemberExpression(_) => {} BinaryPart::IfExpression(e) => e.replace_value(source_range, new_value), BinaryPart::AscribedExpression(e) => e.expr.replace_value(source_range, new_value), @@ -1370,21 +1355,13 @@ impl BinaryPart { fn rename_identifiers(&mut self, old_name: &str, new_name: &str) { match self { BinaryPart::Literal(_literal) => {} - BinaryPart::Name(ref mut identifier) => identifier.rename(old_name, new_name), - BinaryPart::BinaryExpression(ref mut binary_expression) => { - binary_expression.rename_identifiers(old_name, new_name) - } - BinaryPart::CallExpressionKw(ref mut call_expression) => { - call_expression.rename_identifiers(old_name, new_name) - } - BinaryPart::UnaryExpression(ref mut unary_expression) => { - unary_expression.rename_identifiers(old_name, new_name) - } - BinaryPart::MemberExpression(ref mut member_expression) => { - member_expression.rename_identifiers(old_name, new_name) - } - BinaryPart::IfExpression(ref mut if_expression) => if_expression.rename_identifiers(old_name, new_name), - BinaryPart::AscribedExpression(ref mut e) => e.expr.rename_identifiers(old_name, new_name), + BinaryPart::Name(identifier) => identifier.rename(old_name, new_name), + BinaryPart::BinaryExpression(binary_expression) => binary_expression.rename_identifiers(old_name, new_name), + BinaryPart::CallExpressionKw(call_expression) => call_expression.rename_identifiers(old_name, new_name), + BinaryPart::UnaryExpression(unary_expression) => unary_expression.rename_identifiers(old_name, new_name), + BinaryPart::MemberExpression(member_expression) => member_expression.rename_identifiers(old_name, new_name), + BinaryPart::IfExpression(if_expression) => if_expression.rename_identifiers(old_name, new_name), + BinaryPart::AscribedExpression(e) => e.expr.rename_identifiers(old_name, new_name), } } } @@ -2824,7 +2801,7 @@ impl MemberExpression { self.object.rename_identifiers(old_name, new_name); match &mut self.property { - LiteralIdentifier::Identifier(ref mut identifier) => identifier.rename(old_name, new_name), + LiteralIdentifier::Identifier(identifier) => identifier.rename(old_name, new_name), LiteralIdentifier::Literal(_) => {} } } @@ -3312,7 +3289,7 @@ impl Type { .map(|t| t.human_friendly_type()) .collect::>() .join(" or "), - Type::Object { .. } => format!("an object with fields `{}`", self), + Type::Object { .. } => format!("an object with fields `{self}`"), } } @@ -3469,7 +3446,11 @@ pub struct RequiredParamAfterOptionalParam(pub Box); impl std::fmt::Display for RequiredParamAfterOptionalParam { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - write!(f, "KCL functions must declare any optional parameters after all the required parameters. But your required parameter {} is _after_ an optional parameter. You must move it to before the optional parameters instead.", self.0.identifier.name) + write!( + f, + "KCL functions must declare any optional parameters after all the required parameters. But your required parameter {} is _after_ an optional parameter. You must move it to before the optional parameters instead.", + self.0.identifier.name + ) } } diff --git a/rust/kcl-lib/src/parsing/math.rs b/rust/kcl-lib/src/parsing/math.rs index e069cadb8..984a4e52a 100644 --- a/rust/kcl-lib/src/parsing/math.rs +++ b/rust/kcl-lib/src/parsing/math.rs @@ -3,8 +3,8 @@ use super::CompilationError; use crate::{ - parsing::ast::types::{BinaryExpression, BinaryOperator, BinaryPart, Node}, SourceRange, + parsing::ast::types::{BinaryExpression, BinaryOperator, BinaryPart, Node}, }; /// Parses a list of tokens (in infix order, i.e. as the user typed them) @@ -127,11 +127,11 @@ impl From for BinaryExpressionToken { mod tests { use super::*; use crate::{ + ModuleId, parsing::{ ast::types::{Literal, LiteralValue}, token::NumericSuffix, }, - ModuleId, }; #[test] diff --git a/rust/kcl-lib/src/parsing/mod.rs b/rust/kcl-lib/src/parsing/mod.rs index 6445c2ac5..e2d10571d 100644 --- a/rust/kcl-lib/src/parsing/mod.rs +++ b/rust/kcl-lib/src/parsing/mod.rs @@ -1,11 +1,11 @@ use crate::{ + ModuleId, errors::{CompilationError, KclError, KclErrorDetails}, parsing::{ ast::types::{Node, Program}, token::TokenStream, }, source_range::SourceRange, - ModuleId, }; pub(crate) mod ast; @@ -18,7 +18,7 @@ pub const PIPE_OPERATOR: &str = "|>"; // `?` like behavior for `Result`s to return a ParseResult if there is an error. macro_rules! pr_try { - ($e: expr) => { + ($e: expr_2021) => { match $e { Ok(a) => a, Err(e) => return e.into(), @@ -187,7 +187,7 @@ pub fn deprecation(s: &str, kind: DeprecationKind) -> Option<&'static str> { #[cfg(test)] mod tests { macro_rules! parse_and_lex { - ($func_name:ident, $test_kcl_program:expr) => { + ($func_name:ident, $test_kcl_program:expr_2021) => { #[test] fn $func_name() { let _ = crate::parsing::top_level_parse($test_kcl_program); diff --git a/rust/kcl-lib/src/parsing/parser.rs b/rust/kcl-lib/src/parsing/parser.rs index 35e1ea908..c8b277a6b 100644 --- a/rust/kcl-lib/src/parsing/parser.rs +++ b/rust/kcl-lib/src/parsing/parser.rs @@ -14,14 +14,16 @@ use winnow::{ }; use super::{ + DeprecationKind, ast::types::{AscribedExpression, ImportPath, LabelledExpression}, token::{NumericSuffix, RESERVED_WORDS}, - DeprecationKind, }; use crate::{ + IMPORT_FILE_EXTENSIONS, SourceRange, TypedPath, errors::{CompilationError, Severity, Tag}, execution::types::ArrayLen, parsing::{ + PIPE_OPERATOR, PIPE_SUBSTITUTION_OPERATOR, ast::types::{ Annotation, ArrayExpression, ArrayRangeExpression, BinaryExpression, BinaryOperator, BinaryPart, BodyItem, BoxNode, CallExpressionKw, CommentStyle, DefaultParamVal, ElseIf, Expr, ExpressionStatement, @@ -33,9 +35,7 @@ use crate::{ }, math::BinaryExpressionToken, token::{Token, TokenSlice, TokenType}, - PIPE_OPERATOR, PIPE_SUBSTITUTION_OPERATOR, }, - SourceRange, TypedPath, IMPORT_FILE_EXTENSIONS, }; thread_local! { @@ -602,7 +602,7 @@ fn binary_operator(i: &mut TokenSlice) -> ModalResult { return Err(CompilationError::fatal( token.as_source_range(), format!("{} is not a binary operator", token.value.as_str()), - )) + )); } }; Ok(op) @@ -726,7 +726,7 @@ fn shebang(i: &mut TokenSlice) -> ModalResult> { opt(whitespace).parse_next(i)?; Ok(Node::new( - Shebang::new(format!("#!{}", value)), + Shebang::new(format!("#!{value}")), 0, tokens.last().unwrap().end, tokens.first().unwrap().module_id, @@ -1926,7 +1926,7 @@ fn validate_path_string(path_string: String, var_name: bool, path_range: SourceR return Err(ErrMode::Cut( CompilationError::fatal( path_range, - format!("Invalid import path for import from std: {}.", path_string), + format!("Invalid import path for import from std: {path_string}."), ) .into(), )); @@ -1938,7 +1938,10 @@ fn validate_path_string(path_string: String, var_name: bool, path_range: SourceR if !IMPORT_FILE_EXTENSIONS.contains(&extn.to_string_lossy().to_string()) { ParseContext::warn(CompilationError::err( path_range, - format!("unsupported import path format. KCL files can be imported from the current project, CAD files with the following formats are supported: {}", IMPORT_FILE_EXTENSIONS.join(", ")), + format!( + "unsupported import path format. KCL files can be imported from the current project, CAD files with the following formats are supported: {}", + IMPORT_FILE_EXTENSIONS.join(", ") + ), )) } ImportPath::Foreign { @@ -2210,7 +2213,7 @@ fn declaration(i: &mut TokenSlice) -> ModalResult> if matches!(val, Expr::FunctionExpression(_)) { return Err(CompilationError::fatal( SourceRange::new(start, dec_end, id.module_id), - format!("Expected a `fn` variable kind, found: `{}`", kind), + format!("Expected a `fn` variable kind, found: `{kind}`"), )); } Ok(val) @@ -3312,10 +3315,10 @@ fn fn_call_kw(i: &mut TokenSlice) -> ModalResult> { ParseContext::warn( CompilationError::err( result.as_source_range(), - format!("Calling `{}` is deprecated, prefer using `{}`.", callee_str, suggestion), + format!("Calling `{callee_str}` is deprecated, prefer using `{suggestion}`."), ) .with_suggestion( - format!("Replace `{}` with `{}`", callee_str, suggestion), + format!("Replace `{callee_str}` with `{suggestion}`"), suggestion, None, Tag::Deprecated, @@ -3333,13 +3336,13 @@ mod tests { use super::*; use crate::{ - parsing::ast::types::{BodyItem, Expr, VariableKind}, ModuleId, + parsing::ast::types::{BodyItem, Expr, VariableKind}, }; fn assert_reserved(word: &str) { // Try to use it as a variable name. - let code = format!(r#"{} = 0"#, word); + let code = format!(r#"{word} = 0"#); let result = crate::parsing::top_level_parse(code.as_str()); let err = &result.unwrap_errs().next().unwrap(); // Which token causes the error may change. In "return = 0", for @@ -5263,7 +5266,7 @@ mod snapshot_math_tests { // The macro takes a KCL program, ensures it tokenizes and parses, then compares // its parsed AST to a snapshot (kept in this repo in a file under snapshots/ dir) macro_rules! snapshot_test { - ($func_name:ident, $test_kcl_program:expr) => { + ($func_name:ident, $test_kcl_program:expr_2021) => { #[test] fn $func_name() { let module_id = crate::ModuleId::default(); @@ -5301,7 +5304,7 @@ mod snapshot_tests { // The macro takes a KCL program, ensures it tokenizes and parses, then compares // its parsed AST to a snapshot (kept in this repo in a file under snapshots/ dir) macro_rules! snapshot_test { - ($func_name:ident, $test_kcl_program:expr) => { + ($func_name:ident, $test_kcl_program:expr_2021) => { #[test] fn $func_name() { let module_id = crate::ModuleId::default(); diff --git a/rust/kcl-lib/src/parsing/token/mod.rs b/rust/kcl-lib/src/parsing/token/mod.rs index 7ccd79d93..4be1e92e9 100644 --- a/rust/kcl-lib/src/parsing/token/mod.rs +++ b/rust/kcl-lib/src/parsing/token/mod.rs @@ -16,10 +16,10 @@ use winnow::{ }; use crate::{ + CompilationError, ModuleId, errors::KclError, parsing::ast::types::{ItemVisibility, VariableKind}, source_range::SourceRange, - CompilationError, ModuleId, }; mod tokeniser; @@ -609,7 +609,7 @@ impl From, winnow::error::ContextError>> for KclError { // TODO: Add the Winnow parser context to the error. // See https://github.com/KittyCAD/modeling-app/issues/784 KclError::new_lexical(crate::errors::KclErrorDetails::new( - format!("found unknown token '{}'", bad_token), + format!("found unknown token '{bad_token}'"), vec![SourceRange::new(offset, offset + 1, module_id)], )) } diff --git a/rust/kcl-lib/src/parsing/token/tokeniser.rs b/rust/kcl-lib/src/parsing/token/tokeniser.rs index 7a2aa2321..63e7e8355 100644 --- a/rust/kcl-lib/src/parsing/token/tokeniser.rs +++ b/rust/kcl-lib/src/parsing/token/tokeniser.rs @@ -1,19 +1,19 @@ use fnv::FnvHashMap; use lazy_static::lazy_static; use winnow::{ + LocatingSlice, Stateful, ascii::{digit1, multispace1}, combinator::{alt, opt, peek, preceded, repeat}, error::{ContextError, ParseError}, prelude::*, stream::{Location, Stream}, token::{any, none_of, take_till, take_until, take_while}, - LocatingSlice, Stateful, }; use super::TokenStream; use crate::{ - parsing::token::{Token, TokenType}, ModuleId, + parsing::token::{Token, TokenType}, }; lazy_static! { diff --git a/rust/kcl-lib/src/settings/generate_settings_docs.rs b/rust/kcl-lib/src/settings/generate_settings_docs.rs index 76deb15a5..13e3bd7dd 100644 --- a/rust/kcl-lib/src/settings/generate_settings_docs.rs +++ b/rust/kcl-lib/src/settings/generate_settings_docs.rs @@ -1,9 +1,9 @@ use std::path::PathBuf; -use schemars::{gen::SchemaGenerator, JsonSchema}; -use serde_json::{json, Value}; +use schemars::{JsonSchema, r#gen::SchemaGenerator}; +use serde_json::{Value, json}; -use crate::settings::types::{project::ProjectConfiguration, Configuration}; +use crate::settings::types::{Configuration, project::ProjectConfiguration}; // Project settings example in TOML format const PROJECT_SETTINGS_EXAMPLE: &str = r#"[settings.app] @@ -60,7 +60,7 @@ fn init_handlebars() -> handlebars::Handlebars<'static> { let pretty_options = array .iter() .filter_map(|v| v.as_str()) - .map(|s| format!("`{}`", s)) + .map(|s| format!("`{s}`")) .collect::>() .join(", "); out.write(&pretty_options)?; @@ -89,17 +89,17 @@ fn init_handlebars() -> handlebars::Handlebars<'static> { Value::Null => out.write("None")?, Value::Bool(b) => out.write(&b.to_string())?, Value::Number(n) => out.write(&n.to_string())?, - Value::String(s) => out.write(&format!("`{}`", s))?, + Value::String(s) => out.write(&format!("`{s}`"))?, Value::Array(arr) => { let formatted = arr .iter() .map(|v| match v { - Value::String(s) => format!("`{}`", s), - _ => format!("{}", v), + Value::String(s) => format!("`{s}`"), + _ => format!("{v}"), }) .collect::>() .join(", "); - out.write(&format!("[{}]", formatted))?; + out.write(&format!("[{formatted}]"))?; } Value::Object(_) => out.write("(complex default)")?, } @@ -122,7 +122,7 @@ pub fn generate_settings_docs() { let hbs = init_handlebars(); // Generate project settings documentation - let mut settings = schemars::gen::SchemaSettings::default(); + let mut settings = schemars::r#gen::SchemaSettings::default(); settings.inline_subschemas = true; settings.meta_schema = None; // We don't need the meta schema for docs settings.option_nullable = false; // Important - makes Option fields show properly diff --git a/rust/kcl-lib/src/settings/types/mod.rs b/rust/kcl-lib/src/settings/types/mod.rs index f2e79619d..f284401a3 100644 --- a/rust/kcl-lib/src/settings/types/mod.rs +++ b/rust/kcl-lib/src/settings/types/mod.rs @@ -716,13 +716,15 @@ enable_ssao = false let result = color.validate(); if let Ok(r) = result { - panic!("Expected an error, but got success: {:?}", r); + panic!("Expected an error, but got success: {r:?}"); } assert!(result.is_err()); - assert!(result - .unwrap_err() - .to_string() - .contains("color: Validation error: color")); + assert!( + result + .unwrap_err() + .to_string() + .contains("color: Validation error: color") + ); let appearance = AppearanceSettings { theme: AppTheme::System, @@ -730,13 +732,15 @@ enable_ssao = false }; let result = appearance.validate(); if let Ok(r) = result { - panic!("Expected an error, but got success: {:?}", r); + panic!("Expected an error, but got success: {r:?}"); } assert!(result.is_err()); - assert!(result - .unwrap_err() - .to_string() - .contains("color: Validation error: color")); + assert!( + result + .unwrap_err() + .to_string() + .contains("color: Validation error: color") + ); } #[test] @@ -746,13 +750,15 @@ color = 1567.4"#; let result = Configuration::parse_and_validate(settings_file); if let Ok(r) = result { - panic!("Expected an error, but got success: {:?}", r); + panic!("Expected an error, but got success: {r:?}"); } assert!(result.is_err()); - assert!(result - .unwrap_err() - .to_string() - .contains("color: Validation error: color")); + assert!( + result + .unwrap_err() + .to_string() + .contains("color: Validation error: color") + ); } } diff --git a/rust/kcl-lib/src/settings/types/project.rs b/rust/kcl-lib/src/settings/types/project.rs index 60933e89b..55d50bcf2 100644 --- a/rust/kcl-lib/src/settings/types/project.rs +++ b/rust/kcl-lib/src/settings/types/project.rs @@ -7,7 +7,7 @@ use serde::{Deserialize, Serialize}; use validator::Validate; use crate::settings::types::{ - is_default, AppColor, CommandBarSettings, DefaultTrue, OnboardingStatus, TextEditorSettings, UnitLength, + AppColor, CommandBarSettings, DefaultTrue, OnboardingStatus, TextEditorSettings, UnitLength, is_default, }; /// Project specific settings for the app. @@ -203,14 +203,16 @@ color = 1567.4"#; let result = ProjectConfiguration::parse_and_validate(settings_file); if let Ok(r) = result { - panic!("Expected an error, but got success: {:?}", r); + panic!("Expected an error, but got success: {r:?}"); } assert!(result.is_err()); - assert!(result - .unwrap_err() - .to_string() - .contains("color: Validation error: color")); + assert!( + result + .unwrap_err() + .to_string() + .contains("color: Validation error: color") + ); } #[test] diff --git a/rust/kcl-lib/src/simulation_tests.rs b/rust/kcl-lib/src/simulation_tests.rs index ec336be1d..776e364ae 100644 --- a/rust/kcl-lib/src/simulation_tests.rs +++ b/rust/kcl-lib/src/simulation_tests.rs @@ -1,14 +1,14 @@ use std::{ - panic::{catch_unwind, AssertUnwindSafe}, + panic::{AssertUnwindSafe, catch_unwind}, path::{Path, PathBuf}, }; use indexmap::IndexMap; use crate::{ + ExecOutcome, ExecState, ExecutorContext, ModuleId, errors::KclError, execution::{EnvironmentRef, ModuleArtifactState}, - ExecOutcome, ExecState, ExecutorContext, ModuleId, }; #[cfg(feature = "artifact-graph")] use crate::{ @@ -241,7 +241,10 @@ async fn execute_test(test: &Test, render_to_png: bool, export_step: bool) { Ok((exec_state, ctx, env_ref, png, step)) => { let fail_path = test.output_dir.join("execution_error.snap"); if std::fs::exists(&fail_path).unwrap() { - panic!("This test case is expected to fail, but it passed. If this is intended, and the test should actually be passing now, please delete kcl-lib/{}", fail_path.to_string_lossy()) + panic!( + "This test case is expected to fail, but it passed. If this is intended, and the test should actually be passing now, please delete kcl-lib/{}", + fail_path.to_string_lossy() + ) } if render_to_png { twenty_twenty::assert_image(test.output_dir.join(RENDERED_MODEL_NAME), &png, 0.99); @@ -287,10 +290,13 @@ async fn execute_test(test: &Test, render_to_png: bool, export_step: bool) { let report = error.clone().into_miette_report_with_outputs(&input).unwrap(); let report = miette::Report::new(report); if previously_passed { - eprintln!("This test case failed, but it previously passed. If this is intended, and the test should actually be failing now, please delete kcl-lib/{} and other associated passing artifacts", ok_path.to_string_lossy()); + eprintln!( + "This test case failed, but it previously passed. If this is intended, and the test should actually be failing now, please delete kcl-lib/{} and other associated passing artifacts", + ok_path.to_string_lossy() + ); panic!("{report:?}"); } - let report = format!("{:?}", report); + let report = format!("{report:?}"); let err_result = catch_unwind(AssertUnwindSafe(|| { assert_snapshot(test, "Error from executing", || { @@ -2882,7 +2888,7 @@ mod clone_w_fillets { /// Test that KCL is executed correctly. #[tokio::test(flavor = "multi_thread")] #[ignore] // turn on when https://github.com/KittyCAD/engine/pull/3380 is merged - // There's also a test in clone.rs you need to turn too + // There's also a test in clone.rs you need to turn too async fn kcl_test_execute() { super::execute(TEST_NAME, true).await } diff --git a/rust/kcl-lib/src/simulation_tests/kcl_samples.rs b/rust/kcl-lib/src/simulation_tests/kcl_samples.rs index 7e7d2c3ba..027a5e838 100644 --- a/rust/kcl-lib/src/simulation_tests/kcl_samples.rs +++ b/rust/kcl-lib/src/simulation_tests/kcl_samples.rs @@ -1,7 +1,7 @@ //! Run all the KCL samples in the `kcl_samples` directory. use std::{ fs, - panic::{catch_unwind, AssertUnwindSafe}, + panic::{AssertUnwindSafe, catch_unwind}, path::{Path, PathBuf}, }; @@ -86,7 +86,11 @@ fn test_after_engine_ensure_kcl_samples_manifest_etc() { .into_iter() .filter(|name| !input_names.contains(name)) .collect::>(); - assert!(missing.is_empty(), "Expected input kcl-samples for the following. If these are no longer tests, delete the expected output directories for them in {}: {missing:?}", OUTPUTS_DIR.to_string_lossy()); + assert!( + missing.is_empty(), + "Expected input kcl-samples for the following. If these are no longer tests, delete the expected output directories for them in {}: {missing:?}", + OUTPUTS_DIR.to_string_lossy() + ); // We want to move the screenshot for the inputs to the public/kcl-samples // directory so that they can be used as inputs for the next run. @@ -189,7 +193,7 @@ fn kcl_samples_inputs() -> Vec { let entry_point = if main_kcl_path.exists() { main_kcl_path } else { - panic!("No main.kcl found in {:?}", sub_dir); + panic!("No main.kcl found in {sub_dir:?}"); }; tests.push(test(&dir_name_str, entry_point)); } diff --git a/rust/kcl-lib/src/std/appearance.rs b/rust/kcl-lib/src/std/appearance.rs index e47130b97..a822a9ff8 100644 --- a/rust/kcl-lib/src/std/appearance.rs +++ b/rust/kcl-lib/src/std/appearance.rs @@ -1,7 +1,7 @@ //! Standard library appearance. use anyhow::Result; -use kcmc::{each_cmd as mcmd, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd}; use kittycad_modeling_cmds::{self as kcmc, shared::Color}; use regex::Regex; use rgba_simple::Hex; @@ -10,8 +10,8 @@ use super::args::TyF64; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{ArrayLen, RuntimeType}, ExecState, KclValue, SolidOrImportedGeometry, + types::{ArrayLen, RuntimeType}, }, std::Args, }; @@ -63,7 +63,7 @@ pub async fn appearance(exec_state: &mut ExecState, args: Args) -> Result schemars::schema::Schema { - gen.subschema_for::() + fn json_schema(r#gen: &mut schemars::r#gen::SchemaGenerator) -> schemars::schema::Schema { + r#gen.subschema_for::() } } diff --git a/rust/kcl-lib/src/std/array.rs b/rust/kcl-lib/src/std/array.rs index e3de4caea..c55ffd5e4 100644 --- a/rust/kcl-lib/src/std/array.rs +++ b/rust/kcl-lib/src/std/array.rs @@ -1,15 +1,15 @@ use indexmap::IndexMap; use crate::{ + ExecutorContext, errors::{KclError, KclErrorDetails}, execution::{ + ExecState, fn_call::{Arg, Args, KwArgs}, kcl_value::{FunctionSource, KclValue}, types::RuntimeType, - ExecState, }, source_range::SourceRange, - ExecutorContext, }; /// Apply a function to each element of an array. diff --git a/rust/kcl-lib/src/std/assert.rs b/rust/kcl-lib/src/std/assert.rs index 94dcb0db7..20886e7a1 100644 --- a/rust/kcl-lib/src/std/assert.rs +++ b/rust/kcl-lib/src/std/assert.rs @@ -5,14 +5,14 @@ use anyhow::Result; use super::args::TyF64; use crate::{ errors::{KclError, KclErrorDetails}, - execution::{types::RuntimeType, ExecState, KclValue}, + execution::{ExecState, KclValue, types::RuntimeType}, std::Args, }; async fn _assert(value: bool, message: &str, args: &Args) -> Result<(), KclError> { if !value { return Err(KclError::new_type(KclErrorDetails::new( - format!("assert failed: {}", message), + format!("assert failed: {message}"), vec![args.source_range], ))); } diff --git a/rust/kcl-lib/src/std/chamfer.rs b/rust/kcl-lib/src/std/chamfer.rs index 060855519..1b1a0fac9 100644 --- a/rust/kcl-lib/src/std/chamfer.rs +++ b/rust/kcl-lib/src/std/chamfer.rs @@ -1,18 +1,18 @@ //! Standard library chamfers. use anyhow::Result; -use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::CutType, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared::CutType}; use kittycad_modeling_cmds as kcmc; use super::args::TyF64; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::RuntimeType, ChamferSurface, EdgeCut, ExecState, ExtrudeSurface, GeoMeta, KclValue, ModelingCmdMeta, - Solid, + ChamferSurface, EdgeCut, ExecState, ExtrudeSurface, GeoMeta, KclValue, ModelingCmdMeta, Solid, + types::RuntimeType, }, parsing::ast::types::TagNode, - std::{fillet::EdgeReference, Args}, + std::{Args, fillet::EdgeReference}, }; pub(crate) const DEFAULT_TOLERANCE: f64 = 0.0000001; diff --git a/rust/kcl-lib/src/std/clone.rs b/rust/kcl-lib/src/std/clone.rs index 0283bb4a7..c1727737d 100644 --- a/rust/kcl-lib/src/std/clone.rs +++ b/rust/kcl-lib/src/std/clone.rs @@ -4,10 +4,9 @@ use std::collections::HashMap; use anyhow::Result; use kcmc::{ - each_cmd as mcmd, - ok_response::{output::EntityGetAllChildUuids, OkModelingCmdResponse}, + ModelingCmd, each_cmd as mcmd, + ok_response::{OkModelingCmdResponse, output::EntityGetAllChildUuids}, websocket::OkWebSocketResponseData, - ModelingCmd, }; use kittycad_modeling_cmds::{self as kcmc}; @@ -15,11 +14,11 @@ use super::extrude::do_post_extrude; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{NumericType, PrimitiveType, RuntimeType}, ExecState, GeometryWithImportedGeometry, KclValue, ModelingCmdMeta, Sketch, Solid, + types::{NumericType, PrimitiveType, RuntimeType}, }, parsing::ast::types::TagNode, - std::{extrude::NamedCapTags, Args}, + std::{Args, extrude::NamedCapTags}, }; /// Clone a sketch or solid. @@ -91,7 +90,7 @@ async fn inner_clone( .await .map_err(|e| { KclError::new_internal(KclErrorDetails::new( - format!("failed to fix tags and references: {:?}", e), + format!("failed to fix tags and references: {e:?}"), vec![args.source_range], )) })?; @@ -320,10 +319,10 @@ clonedCube = clone(cube) assert_ne!(cube, cloned_cube); let KclValue::Sketch { value: cube } = cube else { - panic!("Expected a sketch, got: {:?}", cube); + panic!("Expected a sketch, got: {cube:?}"); }; let KclValue::Sketch { value: cloned_cube } = cloned_cube else { - panic!("Expected a sketch, got: {:?}", cloned_cube); + panic!("Expected a sketch, got: {cloned_cube:?}"); }; assert_ne!(cube.id, cloned_cube.id); @@ -369,10 +368,10 @@ clonedCube = clone(cube) assert_ne!(cube, cloned_cube); let KclValue::Solid { value: cube } = cube else { - panic!("Expected a solid, got: {:?}", cube); + panic!("Expected a solid, got: {cube:?}"); }; let KclValue::Solid { value: cloned_cube } = cloned_cube else { - panic!("Expected a solid, got: {:?}", cloned_cube); + panic!("Expected a solid, got: {cloned_cube:?}"); }; assert_ne!(cube.id, cloned_cube.id); @@ -427,10 +426,10 @@ clonedCube = clone(cube) assert_ne!(cube, cloned_cube); let KclValue::Sketch { value: cube } = cube else { - panic!("Expected a sketch, got: {:?}", cube); + panic!("Expected a sketch, got: {cube:?}"); }; let KclValue::Sketch { value: cloned_cube } = cloned_cube else { - panic!("Expected a sketch, got: {:?}", cloned_cube); + panic!("Expected a sketch, got: {cloned_cube:?}"); }; assert_ne!(cube.id, cloned_cube.id); @@ -483,10 +482,10 @@ clonedCube = clone(cube) assert_ne!(cube, cloned_cube); let KclValue::Solid { value: cube } = cube else { - panic!("Expected a solid, got: {:?}", cube); + panic!("Expected a solid, got: {cube:?}"); }; let KclValue::Solid { value: cloned_cube } = cloned_cube else { - panic!("Expected a solid, got: {:?}", cloned_cube); + panic!("Expected a solid, got: {cloned_cube:?}"); }; assert_ne!(cube.id, cloned_cube.id); @@ -555,10 +554,10 @@ clonedCube = clone(cube) assert_ne!(cube, cloned_cube); let KclValue::Solid { value: cube } = cube else { - panic!("Expected a solid, got: {:?}", cube); + panic!("Expected a solid, got: {cube:?}"); }; let KclValue::Solid { value: cloned_cube } = cloned_cube else { - panic!("Expected a solid, got: {:?}", cloned_cube); + panic!("Expected a solid, got: {cloned_cube:?}"); }; assert_ne!(cube.id, cloned_cube.id); @@ -655,10 +654,10 @@ clonedCube = clone(cube) assert_ne!(cube, cloned_cube); let KclValue::Solid { value: cube } = cube else { - panic!("Expected a solid, got: {:?}", cube); + panic!("Expected a solid, got: {cube:?}"); }; let KclValue::Solid { value: cloned_cube } = cloned_cube else { - panic!("Expected a solid, got: {:?}", cloned_cube); + panic!("Expected a solid, got: {cloned_cube:?}"); }; assert_ne!(cube.id, cloned_cube.id); diff --git a/rust/kcl-lib/src/std/csg.rs b/rust/kcl-lib/src/std/csg.rs index 9b97a6b31..016abb84b 100644 --- a/rust/kcl-lib/src/std/csg.rs +++ b/rust/kcl-lib/src/std/csg.rs @@ -1,7 +1,7 @@ //! Constructive Solid Geometry (CSG) operations. use anyhow::Result; -use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit}; use kittycad_modeling_cmds::{ self as kcmc, ok_response::OkModelingCmdResponse, @@ -9,11 +9,11 @@ use kittycad_modeling_cmds::{ websocket::OkWebSocketResponseData, }; -use super::{args::TyF64, DEFAULT_TOLERANCE_MM}; +use super::{DEFAULT_TOLERANCE_MM, args::TyF64}; use crate::{ errors::{KclError, KclErrorDetails}, - execution::{types::RuntimeType, ExecState, KclValue, ModelingCmdMeta, Solid}, - std::{patterns::GeometryTrait, Args}, + execution::{ExecState, KclValue, ModelingCmdMeta, Solid, types::RuntimeType}, + std::{Args, patterns::GeometryTrait}, }; /// Union two or more solids into a single solid. diff --git a/rust/kcl-lib/src/std/edge.rs b/rust/kcl-lib/src/std/edge.rs index 77ac591c3..48133cdd0 100644 --- a/rust/kcl-lib/src/std/edge.rs +++ b/rust/kcl-lib/src/std/edge.rs @@ -1,18 +1,18 @@ //! Edge helper functions. use anyhow::Result; -use kcmc::{each_cmd as mcmd, ok_response::OkModelingCmdResponse, websocket::OkWebSocketResponseData, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, ok_response::OkModelingCmdResponse, websocket::OkWebSocketResponseData}; use kittycad_modeling_cmds as kcmc; use uuid::Uuid; use crate::{ + SourceRange, errors::{KclError, KclErrorDetails}, execution::{ - types::{ArrayLen, RuntimeType}, ExecState, ExtrudeSurface, KclValue, ModelingCmdMeta, TagIdentifier, + types::{ArrayLen, RuntimeType}, }, - std::{sketch::FaceTag, Args}, - SourceRange, + std::{Args, sketch::FaceTag}, }; /// Get the opposite edge to the edge given. @@ -55,7 +55,7 @@ async fn inner_get_opposite_edge( } = &resp else { return Err(KclError::new_engine(KclErrorDetails::new( - format!("mcmd::Solid3dGetOppositeEdge response was not as expected: {:?}", resp), + format!("mcmd::Solid3dGetOppositeEdge response was not as expected: {resp:?}"), vec![args.source_range], ))); }; @@ -104,10 +104,7 @@ async fn inner_get_next_adjacent_edge( } = &resp else { return Err(KclError::new_engine(KclErrorDetails::new( - format!( - "mcmd::Solid3dGetNextAdjacentEdge response was not as expected: {:?}", - resp - ), + format!("mcmd::Solid3dGetNextAdjacentEdge response was not as expected: {resp:?}"), vec![args.source_range], ))); }; @@ -160,10 +157,7 @@ async fn inner_get_previous_adjacent_edge( } = &resp else { return Err(KclError::new_engine(KclErrorDetails::new( - format!( - "mcmd::Solid3dGetPrevAdjacentEdge response was not as expected: {:?}", - resp - ), + format!("mcmd::Solid3dGetPrevAdjacentEdge response was not as expected: {resp:?}"), vec![args.source_range], ))); }; @@ -259,7 +253,7 @@ async fn inner_get_common_edge( } = &resp else { return Err(KclError::new_engine(KclErrorDetails::new( - format!("mcmd::Solid3dGetCommonEdge response was not as expected: {:?}", resp), + format!("mcmd::Solid3dGetCommonEdge response was not as expected: {resp:?}"), vec![args.source_range], ))); }; diff --git a/rust/kcl-lib/src/std/extrude.rs b/rust/kcl-lib/src/std/extrude.rs index f40752f4c..204253b0a 100644 --- a/rust/kcl-lib/src/std/extrude.rs +++ b/rust/kcl-lib/src/std/extrude.rs @@ -4,13 +4,12 @@ use std::collections::HashMap; use anyhow::Result; use kcmc::{ - each_cmd as mcmd, + ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, ok_response::OkModelingCmdResponse, output::ExtrusionFaceInfo, shared::{ExtrusionFaceCapType, Opposite}, websocket::{ModelingCmdReq, OkWebSocketResponseData}, - ModelingCmd, }; use kittycad_modeling_cmds::{ self as kcmc, @@ -18,12 +17,12 @@ use kittycad_modeling_cmds::{ }; use uuid::Uuid; -use super::{args::TyF64, utils::point_to_mm, DEFAULT_TOLERANCE_MM}; +use super::{DEFAULT_TOLERANCE_MM, args::TyF64, utils::point_to_mm}; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::RuntimeType, ArtifactId, ExecState, ExtrudeSurface, GeoMeta, KclValue, ModelingCmdMeta, Path, Sketch, - SketchSurface, Solid, + ArtifactId, ExecState, ExtrudeSurface, GeoMeta, KclValue, ModelingCmdMeta, Path, Sketch, SketchSurface, Solid, + types::RuntimeType, }, parsing::ast::types::TagNode, std::Args, diff --git a/rust/kcl-lib/src/std/fillet.rs b/rust/kcl-lib/src/std/fillet.rs index b56b25504..e7d2677de 100644 --- a/rust/kcl-lib/src/std/fillet.rs +++ b/rust/kcl-lib/src/std/fillet.rs @@ -2,20 +2,20 @@ use anyhow::Result; use indexmap::IndexMap; -use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::CutType, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared::CutType}; use kittycad_modeling_cmds as kcmc; use serde::{Deserialize, Serialize}; -use super::{args::TyF64, DEFAULT_TOLERANCE_MM}; +use super::{DEFAULT_TOLERANCE_MM, args::TyF64}; use crate::{ + SourceRange, errors::{KclError, KclErrorDetails}, execution::{ - types::RuntimeType, EdgeCut, ExecState, ExtrudeSurface, FilletSurface, GeoMeta, KclValue, ModelingCmdMeta, - Solid, TagIdentifier, + EdgeCut, ExecState, ExtrudeSurface, FilletSurface, GeoMeta, KclValue, ModelingCmdMeta, Solid, TagIdentifier, + types::RuntimeType, }, parsing::ast::types::TagNode, std::Args, - SourceRange, }; /// A tag or a uuid of an edge. diff --git a/rust/kcl-lib/src/std/helix.rs b/rust/kcl-lib/src/std/helix.rs index 698b222d9..621fcefe0 100644 --- a/rust/kcl-lib/src/std/helix.rs +++ b/rust/kcl-lib/src/std/helix.rs @@ -1,17 +1,17 @@ //! Standard library helices. use anyhow::Result; -use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared::Angle}; use kittycad_modeling_cmds::{self as kcmc, shared::Point3d}; use super::args::TyF64; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{PrimitiveType, RuntimeType}, ExecState, Helix as HelixValue, KclValue, ModelingCmdMeta, Solid, + types::{PrimitiveType, RuntimeType}, }, - std::{axis_or_reference::Axis3dOrEdgeReference, Args}, + std::{Args, axis_or_reference::Axis3dOrEdgeReference}, }; /// Create a helix. diff --git a/rust/kcl-lib/src/std/loft.rs b/rust/kcl-lib/src/std/loft.rs index e21b71f2a..e30d36da6 100644 --- a/rust/kcl-lib/src/std/loft.rs +++ b/rust/kcl-lib/src/std/loft.rs @@ -3,18 +3,18 @@ use std::num::NonZeroU32; use anyhow::Result; -use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit}; use kittycad_modeling_cmds as kcmc; -use super::{args::TyF64, DEFAULT_TOLERANCE_MM}; +use super::{DEFAULT_TOLERANCE_MM, args::TyF64}; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{NumericType, RuntimeType}, ExecState, KclValue, ModelingCmdMeta, Sketch, Solid, + types::{NumericType, RuntimeType}, }, parsing::ast::types::TagNode, - std::{extrude::do_post_extrude, Args}, + std::{Args, extrude::do_post_extrude}, }; const DEFAULT_V_DEGREE: u32 = 2; diff --git a/rust/kcl-lib/src/std/math.rs b/rust/kcl-lib/src/std/math.rs index 572db8d05..f5de84ce9 100644 --- a/rust/kcl-lib/src/std/math.rs +++ b/rust/kcl-lib/src/std/math.rs @@ -3,13 +3,13 @@ use anyhow::Result; use crate::{ + CompilationError, errors::{KclError, KclErrorDetails}, execution::{ - types::{ArrayLen, NumericType, RuntimeType}, ExecState, KclValue, + types::{ArrayLen, NumericType, RuntimeType}, }, std::args::{Args, TyF64}, - CompilationError, }; /// Compute the remainder after dividing `num` by `div`. diff --git a/rust/kcl-lib/src/std/mirror.rs b/rust/kcl-lib/src/std/mirror.rs index f27e55b46..2c7acfe98 100644 --- a/rust/kcl-lib/src/std/mirror.rs +++ b/rust/kcl-lib/src/std/mirror.rs @@ -1,7 +1,7 @@ //! Standard library mirror. use anyhow::Result; -use kcmc::{each_cmd as mcmd, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd}; use kittycad_modeling_cmds::{ self as kcmc, length_unit::LengthUnit, ok_response::OkModelingCmdResponse, shared::Point3d, websocket::OkWebSocketResponseData, @@ -10,10 +10,10 @@ use kittycad_modeling_cmds::{ use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{PrimitiveType, RuntimeType}, ExecState, KclValue, Sketch, + types::{PrimitiveType, RuntimeType}, }, - std::{axis_or_reference::Axis2dOrEdgeReference, Args}, + std::{Args, axis_or_reference::Axis2dOrEdgeReference}, }; /// Mirror a sketch. @@ -84,14 +84,14 @@ async fn inner_mirror_2d( return Err(KclError::new_engine(KclErrorDetails::new( "No edges found in mirror info".to_string(), vec![args.source_range], - ))) + ))); } } Ok(()) })?; } else { return Err(KclError::new_engine(KclErrorDetails::new( - format!("EntityMirror response was not as expected: {:?}", resp), + format!("EntityMirror response was not as expected: {resp:?}"), vec![args.source_range], ))); }; @@ -127,14 +127,14 @@ async fn inner_mirror_2d( return Err(KclError::new_engine(KclErrorDetails::new( "No edges found in mirror info".to_string(), vec![args.source_range], - ))) + ))); } } Ok(()) })?; } else { return Err(KclError::new_engine(KclErrorDetails::new( - format!("EntityMirrorAcrossEdge response was not as expected: {:?}", resp), + format!("EntityMirrorAcrossEdge response was not as expected: {resp:?}"), vec![args.source_range], ))); }; diff --git a/rust/kcl-lib/src/std/mod.rs b/rust/kcl-lib/src/std/mod.rs index 482a74bda..4c124fcbf 100644 --- a/rust/kcl-lib/src/std/mod.rs +++ b/rust/kcl-lib/src/std/mod.rs @@ -31,7 +31,7 @@ pub use args::Args; use crate::{ errors::KclError, - execution::{types::PrimitiveType, ExecState, KclValue}, + execution::{ExecState, KclValue, types::PrimitiveType}, }; pub type StdFn = fn( diff --git a/rust/kcl-lib/src/std/patterns.rs b/rust/kcl-lib/src/std/patterns.rs index 813c907af..454385f83 100644 --- a/rust/kcl-lib/src/std/patterns.rs +++ b/rust/kcl-lib/src/std/patterns.rs @@ -4,8 +4,8 @@ use std::cmp::Ordering; use anyhow::Result; use kcmc::{ - each_cmd as mcmd, length_unit::LengthUnit, ok_response::OkModelingCmdResponse, shared::Transform, - websocket::OkWebSocketResponseData, ModelingCmd, + ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, ok_response::OkModelingCmdResponse, shared::Transform, + websocket::OkWebSocketResponseData, }; use kittycad_modeling_cmds::{ self as kcmc, @@ -16,19 +16,19 @@ use uuid::Uuid; use super::axis_or_reference::Axis3dOrPoint3d; use crate::{ + ExecutorContext, SourceRange, errors::{KclError, KclErrorDetails}, execution::{ + ExecState, Geometries, Geometry, KclObjectFields, KclValue, Sketch, Solid, fn_call::{Arg, Args, KwArgs}, kcl_value::FunctionSource, types::{NumericType, PrimitiveType, RuntimeType}, - ExecState, Geometries, Geometry, KclObjectFields, KclValue, Sketch, Solid, }, std::{ args::TyF64, axis_or_reference::Axis2dOrPoint2d, utils::{point_3d_to_mm, point_to_mm}, }, - ExecutorContext, SourceRange, }; const MUST_HAVE_ONE_INSTANCE: &str = "There must be at least 1 instance of your geometry"; @@ -176,7 +176,7 @@ async fn send_pattern_transform( &mock_ids } else { return Err(KclError::new_engine(KclErrorDetails::new( - format!("EntityLinearPattern response was not as expected: {:?}", resp), + format!("EntityLinearPattern response was not as expected: {resp:?}"), vec![args.source_range], ))); }; @@ -244,7 +244,7 @@ async fn make_transform( return Err(KclError::new_semantic(KclErrorDetails::new( "Transform function must return a transform object".to_string(), source_ranges.clone(), - ))) + ))); } }; @@ -970,7 +970,7 @@ async fn pattern_circular( &mock_ids } else { return Err(KclError::new_engine(KclErrorDetails::new( - format!("EntityCircularPattern response was not as expected: {:?}", resp), + format!("EntityCircularPattern response was not as expected: {resp:?}"), vec![args.source_range], ))); }; diff --git a/rust/kcl-lib/src/std/planes.rs b/rust/kcl-lib/src/std/planes.rs index ae5fe890e..59389196e 100644 --- a/rust/kcl-lib/src/std/planes.rs +++ b/rust/kcl-lib/src/std/planes.rs @@ -1,12 +1,12 @@ //! Standard library plane helpers. -use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Color, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared::Color}; use kittycad_modeling_cmds as kcmc; use super::{args::TyF64, sketch::PlaneData}; use crate::{ errors::KclError, - execution::{types::RuntimeType, ExecState, KclValue, ModelingCmdMeta, Plane, PlaneType}, + execution::{ExecState, KclValue, ModelingCmdMeta, Plane, PlaneType, types::RuntimeType}, std::Args, }; diff --git a/rust/kcl-lib/src/std/revolve.rs b/rust/kcl-lib/src/std/revolve.rs index 66c39c7a9..5f36135ba 100644 --- a/rust/kcl-lib/src/std/revolve.rs +++ b/rust/kcl-lib/src/std/revolve.rs @@ -2,22 +2,21 @@ use anyhow::Result; use kcmc::{ - each_cmd as mcmd, + ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared::{Angle, Opposite}, - ModelingCmd, }; use kittycad_modeling_cmds::{self as kcmc, shared::Point3d}; -use super::{args::TyF64, DEFAULT_TOLERANCE_MM}; +use super::{DEFAULT_TOLERANCE_MM, args::TyF64}; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{NumericType, PrimitiveType, RuntimeType}, ExecState, KclValue, ModelingCmdMeta, Sketch, Solid, + types::{NumericType, PrimitiveType, RuntimeType}, }, parsing::ast::types::TagNode, - std::{axis_or_reference::Axis2dOrEdgeReference, extrude::do_post_extrude, Args}, + std::{Args, axis_or_reference::Axis2dOrEdgeReference, extrude::do_post_extrude}, }; extern crate nalgebra_glm as glm; @@ -76,7 +75,7 @@ async fn inner_revolve( // nice and we use the other data in the docs, so we still need use the derive above for the json schema. if !(-360.0..=360.0).contains(&angle) || angle == 0.0 { return Err(KclError::new_semantic(KclErrorDetails::new( - format!("Expected angle to be between -360 and 360 and not 0, found `{}`", angle), + format!("Expected angle to be between -360 and 360 and not 0, found `{angle}`"), vec![args.source_range], ))); } @@ -89,8 +88,7 @@ async fn inner_revolve( if !(-360.0..=360.0).contains(&bidirectional_angle) || bidirectional_angle == 0.0 { return Err(KclError::new_semantic(KclErrorDetails::new( format!( - "Expected bidirectional angle to be between -360 and 360 and not 0, found `{}`", - bidirectional_angle + "Expected bidirectional angle to be between -360 and 360 and not 0, found `{bidirectional_angle}`" ), vec![args.source_range], ))); @@ -100,10 +98,7 @@ async fn inner_revolve( let ang = angle.signum() * bidirectional_angle + angle; if !(-360.0..=360.0).contains(&ang) { return Err(KclError::new_semantic(KclErrorDetails::new( - format!( - "Combined angle and bidirectional must be between -360 and 360, found '{}'", - ang - ), + format!("Combined angle and bidirectional must be between -360 and 360, found '{ang}'"), vec![args.source_range], ))); } diff --git a/rust/kcl-lib/src/std/segment.rs b/rust/kcl-lib/src/std/segment.rs index c8ba75e35..42d40bf42 100644 --- a/rust/kcl-lib/src/std/segment.rs +++ b/rust/kcl-lib/src/std/segment.rs @@ -7,10 +7,10 @@ use super::utils::untype_point; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{NumericType, PrimitiveType, RuntimeType}, ExecState, KclValue, Sketch, TagIdentifier, + types::{NumericType, PrimitiveType, RuntimeType}, }, - std::{args::TyF64, utils::between, Args}, + std::{Args, args::TyF64, utils::between}, }; /// Returns the point at the end of the given segment. @@ -25,7 +25,7 @@ fn inner_segment_end(tag: &TagIdentifier, exec_state: &mut ExecState, args: Args let line = args.get_tag_engine_info(exec_state, tag)?; let path = line.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a line segment with a path, found `{:?}`", line), + format!("Expected a line segment with a path, found `{line:?}`"), vec![args.source_range], )) })?; @@ -48,7 +48,7 @@ fn inner_segment_end_x(tag: &TagIdentifier, exec_state: &mut ExecState, args: Ar let line = args.get_tag_engine_info(exec_state, tag)?; let path = line.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a line segment with a path, found `{:?}`", line), + format!("Expected a line segment with a path, found `{line:?}`"), vec![args.source_range], )) })?; @@ -68,7 +68,7 @@ fn inner_segment_end_y(tag: &TagIdentifier, exec_state: &mut ExecState, args: Ar let line = args.get_tag_engine_info(exec_state, tag)?; let path = line.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a line segment with a path, found `{:?}`", line), + format!("Expected a line segment with a path, found `{line:?}`"), vec![args.source_range], )) })?; @@ -88,7 +88,7 @@ fn inner_segment_start(tag: &TagIdentifier, exec_state: &mut ExecState, args: Ar let line = args.get_tag_engine_info(exec_state, tag)?; let path = line.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a line segment with a path, found `{:?}`", line), + format!("Expected a line segment with a path, found `{line:?}`"), vec![args.source_range], )) })?; @@ -111,7 +111,7 @@ fn inner_segment_start_x(tag: &TagIdentifier, exec_state: &mut ExecState, args: let line = args.get_tag_engine_info(exec_state, tag)?; let path = line.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a line segment with a path, found `{:?}`", line), + format!("Expected a line segment with a path, found `{line:?}`"), vec![args.source_range], )) })?; @@ -131,7 +131,7 @@ fn inner_segment_start_y(tag: &TagIdentifier, exec_state: &mut ExecState, args: let line = args.get_tag_engine_info(exec_state, tag)?; let path = line.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a line segment with a path, found `{:?}`", line), + format!("Expected a line segment with a path, found `{line:?}`"), vec![args.source_range], )) })?; @@ -152,7 +152,7 @@ fn inner_last_segment_x(sketch: Sketch, args: Args) -> Result { .last() .ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a Sketch with at least one segment, found `{:?}`", sketch), + format!("Expected a Sketch with at least one segment, found `{sketch:?}`"), vec![args.source_range], )) })? @@ -175,7 +175,7 @@ fn inner_last_segment_y(sketch: Sketch, args: Args) -> Result { .last() .ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a Sketch with at least one segment, found `{:?}`", sketch), + format!("Expected a Sketch with at least one segment, found `{sketch:?}`"), vec![args.source_range], )) })? @@ -195,7 +195,7 @@ fn inner_segment_length(tag: &TagIdentifier, exec_state: &mut ExecState, args: A let line = args.get_tag_engine_info(exec_state, tag)?; let path = line.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a line segment with a path, found `{:?}`", line), + format!("Expected a line segment with a path, found `{line:?}`"), vec![args.source_range], )) })?; @@ -215,7 +215,7 @@ fn inner_segment_angle(tag: &TagIdentifier, exec_state: &mut ExecState, args: Ar let line = args.get_tag_engine_info(exec_state, tag)?; let path = line.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a line segment with a path, found `{:?}`", line), + format!("Expected a line segment with a path, found `{line:?}`"), vec![args.source_range], )) })?; @@ -237,7 +237,7 @@ async fn inner_tangent_to_end(tag: &TagIdentifier, exec_state: &mut ExecState, a let line = args.get_tag_engine_info(exec_state, tag)?; let path = line.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected a line segment with a path, found `{:?}`", line), + format!("Expected a line segment with a path, found `{line:?}`"), vec![args.source_range], )) })?; diff --git a/rust/kcl-lib/src/std/shapes.rs b/rust/kcl-lib/src/std/shapes.rs index 9a8004b40..74685e392 100644 --- a/rust/kcl-lib/src/std/shapes.rs +++ b/rust/kcl-lib/src/std/shapes.rs @@ -2,10 +2,9 @@ use anyhow::Result; use kcmc::{ - each_cmd as mcmd, + ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared::{Angle, Point2d as KPoint2d}, - ModelingCmd, }; use kittycad_modeling_cmds as kcmc; use kittycad_modeling_cmds::shared::PathSegment; @@ -17,17 +16,17 @@ use super::{ utils::{point_to_len_unit, point_to_mm, point_to_typed, untype_point, untyped_point_to_mm}, }; use crate::{ + SourceRange, errors::{KclError, KclErrorDetails}, execution::{ - types::{RuntimeType, UnitLen}, BasePath, ExecState, GeoMeta, KclValue, ModelingCmdMeta, Path, Sketch, SketchSurface, + types::{RuntimeType, UnitLen}, }, parsing::ast::types::TagNode, std::{ - utils::{calculate_circle_center, distance}, Args, + utils::{calculate_circle_center, distance}, }, - SourceRange, }; /// A sketch surface or a sketch. diff --git a/rust/kcl-lib/src/std/shell.rs b/rust/kcl-lib/src/std/shell.rs index eff145b58..3ad09d063 100644 --- a/rust/kcl-lib/src/std/shell.rs +++ b/rust/kcl-lib/src/std/shell.rs @@ -1,17 +1,17 @@ //! Standard library shells. use anyhow::Result; -use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit}; use kittycad_modeling_cmds as kcmc; use super::args::TyF64; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{ArrayLen, RuntimeType}, ExecState, KclValue, Solid, + types::{ArrayLen, RuntimeType}, }, - std::{sketch::FaceTag, Args}, + std::{Args, sketch::FaceTag}, }; /// Create a shell. diff --git a/rust/kcl-lib/src/std/sketch.rs b/rust/kcl-lib/src/std/sketch.rs index ab24c68c1..cd09df518 100644 --- a/rust/kcl-lib/src/std/sketch.rs +++ b/rust/kcl-lib/src/std/sketch.rs @@ -4,7 +4,7 @@ use anyhow::Result; use indexmap::IndexMap; use kcmc::shared::Point2d as KPoint2d; // Point2d is already defined in this pkg, to impl ts_rs traits. use kcmc::shared::Point3d as KPoint3d; // Point3d is already defined in this pkg, to impl ts_rs traits. -use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, websocket::ModelingCmdReq, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared::Angle, websocket::ModelingCmdReq}; use kittycad_modeling_cmds as kcmc; use kittycad_modeling_cmds::shared::PathSegment; use parse_display::{Display, FromStr}; @@ -17,17 +17,16 @@ use crate::execution::{Artifact, ArtifactId, CodeRef, StartSketchOnFace, StartSk use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{ArrayLen, NumericType, PrimitiveType, RuntimeType, UnitLen}, BasePath, ExecState, Face, GeoMeta, KclValue, ModelingCmdMeta, Path, Plane, PlaneInfo, Point2d, Sketch, SketchSurface, Solid, TagEngineInfo, TagIdentifier, + types::{ArrayLen, NumericType, PrimitiveType, RuntimeType, UnitLen}, }, parsing::ast::types::TagNode, std::{ args::{Args, TyF64}, utils::{ - arc_center_and_end, get_tangential_arc_to_info, get_x_component, get_y_component, + TangentialArcInfoInput, arc_center_and_end, get_tangential_arc_to_info, get_x_component, get_y_component, intersection_with_parallel_line, point_to_len_unit, point_to_mm, untyped_point_to_mm, - TangentialArcInfoInput, }, }, }; @@ -45,7 +44,7 @@ pub enum FaceTag { impl std::fmt::Display for FaceTag { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { - FaceTag::Tag(t) => write!(f, "{}", t), + FaceTag::Tag(t) => write!(f, "{t}"), FaceTag::StartOrEnd(StartOrEnd::Start) => write!(f, "start"), FaceTag::StartOrEnd(StartOrEnd::End) => write!(f, "end"), } @@ -62,7 +61,7 @@ impl FaceTag { must_be_planar: bool, ) -> Result { match self { - FaceTag::Tag(ref t) => args.get_adjacent_face_to_tag(exec_state, t, must_be_planar).await, + FaceTag::Tag(t) => args.get_adjacent_face_to_tag(exec_state, t, must_be_planar).await, FaceTag::StartOrEnd(StartOrEnd::Start) => solid.start_cap_id.ok_or_else(|| { KclError::new_type(KclErrorDetails::new( "Expected a start face".to_string(), @@ -737,7 +736,7 @@ pub async fn inner_angled_line_that_intersects( let intersect_path = args.get_tag_engine_info(exec_state, &intersect_tag)?; let path = intersect_path.path.clone().ok_or_else(|| { KclError::new_type(KclErrorDetails::new( - format!("Expected an intersect path with a path, found `{:?}`", intersect_path), + format!("Expected an intersect path with a path, found `{intersect_path:?}`"), vec![args.source_range], )) })?; diff --git a/rust/kcl-lib/src/std/sweep.rs b/rust/kcl-lib/src/std/sweep.rs index 3548edf90..949797de7 100644 --- a/rust/kcl-lib/src/std/sweep.rs +++ b/rust/kcl-lib/src/std/sweep.rs @@ -1,20 +1,20 @@ //! Standard library sweep. use anyhow::Result; -use kcmc::{each_cmd as mcmd, length_unit::LengthUnit, ModelingCmd}; +use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit}; use kittycad_modeling_cmds::{self as kcmc, shared::RelativeTo}; use schemars::JsonSchema; use serde::Serialize; -use super::{args::TyF64, DEFAULT_TOLERANCE_MM}; +use super::{DEFAULT_TOLERANCE_MM, args::TyF64}; use crate::{ errors::KclError, execution::{ - types::{NumericType, RuntimeType}, ExecState, Helix, KclValue, ModelingCmdMeta, Sketch, Solid, + types::{NumericType, RuntimeType}, }, parsing::ast::types::TagNode, - std::{extrude::do_post_extrude, Args}, + std::{Args, extrude::do_post_extrude}, }; /// A path to sweep along. @@ -79,7 +79,7 @@ async fn inner_sweep( return Err(KclError::new_syntax(crate::errors::KclErrorDetails::new( "If you provide relativeTo, it must either be 'sketchPlane' or 'trajectoryCurve'".to_owned(), vec![args.source_range], - ))) + ))); } }; diff --git a/rust/kcl-lib/src/std/transform.rs b/rust/kcl-lib/src/std/transform.rs index 4ce34bf53..694e84921 100644 --- a/rust/kcl-lib/src/std/transform.rs +++ b/rust/kcl-lib/src/std/transform.rs @@ -2,21 +2,20 @@ use anyhow::Result; use kcmc::{ - each_cmd as mcmd, + ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared, shared::{Point3d, Point4d}, - ModelingCmd, }; use kittycad_modeling_cmds as kcmc; use crate::{ errors::{KclError, KclErrorDetails}, execution::{ - types::{PrimitiveType, RuntimeType}, ExecState, KclValue, SolidOrSketchOrImportedGeometry, + types::{PrimitiveType, RuntimeType}, }, - std::{args::TyF64, axis_or_reference::Axis3dOrPoint3d, Args}, + std::{Args, args::TyF64, axis_or_reference::Axis3dOrPoint3d}, }; /// Scale a solid or a sketch. diff --git a/rust/kcl-lib/src/std/utils.rs b/rust/kcl-lib/src/std/utils.rs index ea81f706f..7a3f3fde3 100644 --- a/rust/kcl-lib/src/std/utils.rs +++ b/rust/kcl-lib/src/std/utils.rs @@ -88,11 +88,7 @@ pub(crate) fn delta(from_angle: Angle, to_angle: Angle) -> Angle { pub(crate) fn normalize_rad(angle: f64) -> f64 { let draft = angle % (2.0 * PI); - if draft < 0.0 { - draft + 2.0 * PI - } else { - draft - } + if draft < 0.0 { draft + 2.0 * PI } else { draft } } fn calculate_intersection_of_two_lines(line1: &[Coords2d; 2], line2_angle: f64, line2_point: Coords2d) -> Coords2d { @@ -174,8 +170,8 @@ pub(crate) fn arc_center_and_end( let end_angle = end_angle.to_radians(); let center = [ - -1.0 * (radius * libm::cos(start_angle) - from[0]), - -1.0 * (radius * libm::sin(start_angle) - from[1]), + -(radius * libm::cos(start_angle) - from[0]), + -(radius * libm::sin(start_angle) - from[1]), ]; let end = [ @@ -240,7 +236,7 @@ mod tests { use approx::assert_relative_eq; use pretty_assertions::assert_eq; - use super::{calculate_circle_center, get_x_component, get_y_component, Angle}; + use super::{Angle, calculate_circle_center, get_x_component, get_y_component}; static EACH_QUAD: [(i32, [i32; 2]); 12] = [ (-315, [1, 1]), diff --git a/rust/kcl-lib/src/test_server.rs b/rust/kcl-lib/src/test_server.rs index 3cbaa348b..13ada7abd 100644 --- a/rust/kcl-lib/src/test_server.rs +++ b/rust/kcl-lib/src/test_server.rs @@ -3,10 +3,10 @@ use std::path::PathBuf; use crate::{ + ConnectionError, ExecError, KclError, KclErrorWithOutputs, Program, engine::new_zoo_client, errors::ExecErrorWithState, execution::{EnvironmentRef, ExecState, ExecutorContext, ExecutorSettings}, - ConnectionError, ExecError, KclError, KclErrorWithOutputs, Program, }; #[derive(serde::Deserialize, serde::Serialize)] @@ -64,7 +64,7 @@ pub async fn execute_and_snapshot_ast( // Close the context to avoid any resource leaks. ctx.close().await; return Err(ExecErrorWithState::new( - ExecError::BadExport(format!("Export failed: {:?}", err)), + ExecError::BadExport(format!("Export failed: {err:?}")), exec_state.clone(), )); } @@ -184,7 +184,7 @@ pub async fn execute_and_export_step( Ok(f) => f, Err(err) => { return Err(ExecErrorWithState::new( - ExecError::BadExport(format!("Export failed: {:?}", err)), + ExecError::BadExport(format!("Export failed: {err:?}")), exec_state.clone(), )); } diff --git a/rust/kcl-lib/src/unparser.rs b/rust/kcl-lib/src/unparser.rs index 0d034b20f..352a9ec1f 100644 --- a/rust/kcl-lib/src/unparser.rs +++ b/rust/kcl-lib/src/unparser.rs @@ -1,7 +1,9 @@ use std::fmt::Write; use crate::{ + KclError, ModuleId, parsing::{ + DeprecationKind, PIPE_OPERATOR, ast::types::{ Annotation, ArrayExpression, ArrayRangeExpression, AscribedExpression, Associativity, BinaryExpression, BinaryOperator, BinaryPart, BodyItem, CallExpressionKw, CommentStyle, DefaultParamVal, Expr, FormatOptions, @@ -10,9 +12,8 @@ use crate::{ Parameter, PipeExpression, Program, TagDeclarator, TypeDeclaration, UnaryExpression, VariableDeclaration, VariableKind, }, - deprecation, DeprecationKind, PIPE_OPERATOR, + deprecation, }, - KclError, ModuleId, }; #[allow(dead_code)] @@ -110,7 +111,7 @@ impl Program { let formatted = custom_white_space_or_comment.recast(options, indentation_level); if i == 0 && !formatted.trim().is_empty() { if let NonCodeValue::BlockComment { .. } = custom_white_space_or_comment.value { - format!("\n{}", formatted) + format!("\n{formatted}") } else { formatted } @@ -127,7 +128,7 @@ impl Program { custom_white_space_or_comment }; - let _ = write!(output, "{}{}{}", start_string, recast_str, end_string); + let _ = write!(output, "{start_string}{recast_str}{end_string}"); output }) .trim() @@ -135,7 +136,7 @@ impl Program { // Insert a final new line if the user wants it. if options.insert_final_newline && !result.is_empty() { - format!("{}\n", result) + format!("{result}\n") } else { result } @@ -158,16 +159,16 @@ impl Node { NonCodeValue::InlineComment { value, style: CommentStyle::Line, - } => format!(" // {}\n", value), + } => format!(" // {value}\n"), NonCodeValue::InlineComment { value, style: CommentStyle::Block, - } => format!(" /* {} */", value), + } => format!(" /* {value} */"), NonCodeValue::BlockComment { value, style } => match style { - CommentStyle::Block => format!("{}/* {} */", indentation, value), + CommentStyle::Block => format!("{indentation}/* {value} */"), CommentStyle::Line => { if value.trim().is_empty() { - format!("{}//\n", indentation) + format!("{indentation}//\n") } else { format!("{}// {}\n", indentation, value.trim()) } @@ -176,10 +177,10 @@ impl Node { NonCodeValue::NewLineBlockComment { value, style } => { let add_start_new_line = if self.start == 0 { "" } else { "\n\n" }; match style { - CommentStyle::Block => format!("{}{}/* {} */\n", add_start_new_line, indentation, value), + CommentStyle::Block => format!("{add_start_new_line}{indentation}/* {value} */\n"), CommentStyle::Line => { if value.trim().is_empty() { - format!("{}{}//\n", add_start_new_line, indentation) + format!("{add_start_new_line}{indentation}//\n") } else { format!("{}{}// {}\n", add_start_new_line, indentation, value.trim()) } @@ -241,7 +242,7 @@ impl ImportStatement { } else { "" }; - let mut string = format!("{}{}import ", vis, indentation); + let mut string = format!("{vis}{indentation}import "); match &self.selector { ImportSelector::List { items } => { for (i, item) in items.iter().enumerate() { @@ -291,7 +292,7 @@ impl Expr { Expr::BinaryExpression(bin_exp) => bin_exp.recast(options, indentation_level, ctxt), Expr::ArrayExpression(array_exp) => array_exp.recast(options, indentation_level, ctxt), Expr::ArrayRangeExpression(range_exp) => range_exp.recast(options, indentation_level, ctxt), - Expr::ObjectExpression(ref obj_exp) => obj_exp.recast(options, indentation_level, ctxt), + Expr::ObjectExpression(obj_exp) => obj_exp.recast(options, indentation_level, ctxt), Expr::MemberExpression(mem_exp) => mem_exp.recast(options, indentation_level, ctxt), Expr::Literal(literal) => literal.recast(), Expr::FunctionExpression(func_exp) => { @@ -702,13 +703,7 @@ impl MemberExpression { impl BinaryExpression { fn recast(&self, options: &FormatOptions, _indentation_level: usize, ctxt: ExprContext) -> String { - let maybe_wrap_it = |a: String, doit: bool| -> String { - if doit { - format!("({})", a) - } else { - a - } - }; + let maybe_wrap_it = |a: String, doit: bool| -> String { if doit { format!("({a})") } else { a } }; // It would be better to always preserve the user's parentheses but since we've dropped that // info from the AST, we bracket expressions as necessary. @@ -977,7 +972,7 @@ mod tests { use pretty_assertions::assert_eq; use super::*; - use crate::{parsing::ast::types::FormatOptions, ModuleId}; + use crate::{ModuleId, parsing::ast::types::FormatOptions}; #[test] fn test_recast_annotations_without_body_items() { diff --git a/rust/kcl-lib/src/walk/ast_node.rs b/rust/kcl-lib/src/walk/ast_node.rs index 77561ab98..01d8950ce 100644 --- a/rust/kcl-lib/src/walk/ast_node.rs +++ b/rust/kcl-lib/src/walk/ast_node.rs @@ -289,9 +289,7 @@ mod tests { use super::*; macro_rules! kcl { - ( $kcl:expr ) => {{ - $crate::parsing::top_level_parse($kcl).unwrap() - }}; + ( $kcl:expr_2021 ) => {{ $crate::parsing::top_level_parse($kcl).unwrap() }}; } #[test] diff --git a/rust/kcl-lib/src/walk/ast_visitor.rs b/rust/kcl-lib/src/walk/ast_visitor.rs index 3eaa77db6..49fca9640 100644 --- a/rust/kcl-lib/src/walk/ast_visitor.rs +++ b/rust/kcl-lib/src/walk/ast_visitor.rs @@ -153,9 +153,7 @@ mod tests { use super::*; macro_rules! kcl { - ( $kcl:expr ) => {{ - $crate::parsing::top_level_parse($kcl).unwrap() - }}; + ( $kcl:expr_2021 ) => {{ $crate::parsing::top_level_parse($kcl).unwrap() }}; } #[test] diff --git a/rust/kcl-lib/src/walk/ast_walk.rs b/rust/kcl-lib/src/walk/ast_walk.rs index ab8d27d54..3e800f6fb 100644 --- a/rust/kcl-lib/src/walk/ast_walk.rs +++ b/rust/kcl-lib/src/walk/ast_walk.rs @@ -57,9 +57,7 @@ mod tests { use super::*; macro_rules! kcl { - ( $kcl:expr ) => {{ - $crate::parsing::top_level_parse($kcl).unwrap() - }}; + ( $kcl:expr_2021 ) => {{ $crate::parsing::top_level_parse($kcl).unwrap() }}; } #[test] diff --git a/rust/kcl-python-bindings/src/lib.rs b/rust/kcl-python-bindings/src/lib.rs index 95e74c9da..d52091149 100644 --- a/rust/kcl-python-bindings/src/lib.rs +++ b/rust/kcl-python-bindings/src/lib.rs @@ -19,7 +19,7 @@ fn tokio() -> &'static tokio::runtime::Runtime { fn into_miette(error: kcl_lib::KclErrorWithOutputs, code: &str) -> PyErr { let report = error.clone().into_miette_report_with_outputs(code).unwrap(); let report = miette::Report::new(report); - pyo3::exceptions::PyException::new_err(format!("{:?}", report)) + pyo3::exceptions::PyException::new_err(format!("{report:?}")) } fn into_miette_for_parse(filename: &str, input: &str, error: kcl_lib::KclError) -> PyErr { @@ -29,7 +29,7 @@ fn into_miette_for_parse(filename: &str, input: &str, error: kcl_lib::KclError) filename: filename.to_string(), }; let report = miette::Report::new(report); - pyo3::exceptions::PyException::new_err(format!("{:?}", report)) + pyo3::exceptions::PyException::new_err(format!("{report:?}")) } /// The variety of image formats snapshots may be exported to. @@ -402,8 +402,7 @@ async fn execute_and_snapshot(path: String, image_format: ImageFormat) -> PyResu } = resp else { return Err(pyo3::exceptions::PyException::new_err(format!( - "Unexpected response from engine: {:?}", - resp + "Unexpected response from engine: {resp:?}" ))); }; @@ -459,8 +458,7 @@ async fn execute_code_and_snapshot(code: String, image_format: ImageFormat) -> P } = resp else { return Err(pyo3::exceptions::PyException::new_err(format!( - "Unexpected response from engine: {:?}", - resp + "Unexpected response from engine: {resp:?}" ))); }; @@ -510,8 +508,7 @@ async fn execute_and_export(path: String, export_format: FileExportFormat) -> Py let kittycad_modeling_cmds::websocket::OkWebSocketResponseData::Export { files } = resp else { return Err(pyo3::exceptions::PyException::new_err(format!( - "Unexpected response from engine: {:?}", - resp + "Unexpected response from engine: {resp:?}" ))); }; @@ -558,8 +555,7 @@ async fn execute_code_and_export(code: String, export_format: FileExportFormat) let kittycad_modeling_cmds::websocket::OkWebSocketResponseData::Export { files } = resp else { return Err(pyo3::exceptions::PyException::new_err(format!( - "Unexpected response from engine: {:?}", - resp + "Unexpected response from engine: {resp:?}" ))); }; diff --git a/rust/kcl-to-core/src/conn_mock_core.rs b/rust/kcl-to-core/src/conn_mock_core.rs index fea1923a6..ffda43dfe 100644 --- a/rust/kcl-to-core/src/conn_mock_core.rs +++ b/rust/kcl-to-core/src/conn_mock_core.rs @@ -47,7 +47,7 @@ impl EngineConnection { fn handle_command(&self, cmd_id: &ModelingCmdId, cmd: &kcmc::ModelingCmd) -> (String, OkModelingCmdResponse) { let cpp_id = id_to_cpp(cmd_id); - let cmd_id = format!("{}", cmd_id); + let cmd_id = format!("{cmd_id}"); let mut this_response = OkModelingCmdResponse::Empty {}; let new_code = match cmd { @@ -86,7 +86,7 @@ impl EngineConnection { size, .. }) => { - let plane_id = format!("plane_{}", cpp_id); + let plane_id = format!("plane_{cpp_id}"); format!( r#" auto {plane_id} = make_shared("plane", glm::dvec3 {{ 0, 0, 0 }}); @@ -108,8 +108,8 @@ impl EngineConnection { ) } kcmc::ModelingCmd::StartPath(kcmc::StartPath { .. }) => { - let sketch_id = format!("sketch_{}", cpp_id); - let path_id = format!("path_{}", cpp_id); + let sketch_id = format!("sketch_{cpp_id}"); + let path_id = format!("path_{cpp_id}"); format!( r#" auto {sketch_id} = make_shared("sketch", glm::dvec3 {{ 0, 0, 0 }}); @@ -178,7 +178,7 @@ impl EngineConnection { ) } _ => { - format!("//{:?}", cmd) + format!("//{cmd:?}") } }, kcmc::ModelingCmd::ClosePath(kcmc::ClosePath { path_id }) => { @@ -240,9 +240,8 @@ impl EngineConnection { }) => { format!( r#" - //face info get {} {} - "#, - object_id, edge_id + //face info get {object_id} {edge_id} + "# ) } kcmc::ModelingCmd::EntityCircularPattern(kcmc::EntityCircularPattern { @@ -313,11 +312,11 @@ impl EngineConnection { // base_code.push_str(&repl_uuid_fix_code); // base_code - format!("//{:?}", cmd) + format!("//{cmd:?}") } _ => { //helps us follow along with the currently unhandled engine commands - format!("//{:?}", cmd) + format!("//{cmd:?}") } }; @@ -330,7 +329,7 @@ fn id_to_cpp(id: &ModelingCmdId) -> String { } fn uuid_to_cpp(id: &uuid::Uuid) -> String { - let str = format!("{}", id); + let str = format!("{id}"); str::replace(&str, "-", "_") } diff --git a/rust/kcl-to-core/src/tool.rs b/rust/kcl-to-core/src/tool.rs index 6706c7cb1..bf58bca38 100644 --- a/rust/kcl-to-core/src/tool.rs +++ b/rust/kcl-to-core/src/tool.rs @@ -16,5 +16,5 @@ async fn main() { let result = kcl_to_engine_core(&kcl).await.expect("kcl conversion"); - println!("{}", result); + println!("{result}"); } diff --git a/rust/rust-toolchain.toml b/rust/rust-toolchain.toml index a84e0ac6a..c4095368c 100644 --- a/rust/rust-toolchain.toml +++ b/rust/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "1.87" +channel = "1.88" components = ["clippy", "rustfmt"] From 107adc77b3155b8b1b5fc08f372e99cdfd1ae3c1 Mon Sep 17 00:00:00 2001 From: Ben Crabbe Date: Fri, 27 Jun 2025 00:38:18 +0100 Subject: [PATCH 16/34] Allow the origin of rotation to be specified (#7608) * pass axis origin to endpoint * fmt * fix lint errors * update sim tests with new transform endpoint * added missed files * revert cargo.toml * implement review requests * fmt * revert unnecessary custom origin --- .../screenshots/ball-joint-rod-end.png | Bin 85463 -> 85463 bytes .../screenshots/surgical-drill-guide.png | Bin 35674 -> 0 bytes public/kcl-samples/screenshots/teapot.png | Bin 131032 -> 0 bytes rust/Cargo.lock | 4 +- rust/Cargo.toml | 8 +- rust/kcl-lib/src/std/axis_or_reference.rs | 7 + rust/kcl-lib/src/std/transform.rs | 87 ++++++++++--- .../tests/import_async/artifact_commands.snap | 5 +- .../import_mesh_clone/artifact_commands.snap | 20 ++- .../import_transform/artifact_commands.snap | 15 ++- .../artifact_commands.snap | 5 +- .../artifact_commands.snap | 5 +- .../intersect_cubes/artifact_commands.snap | 5 +- .../ball-joint-rod-end/artifact_commands.snap | 10 +- .../ball-joint-rod-end/rendered_model.png | Bin 85463 -> 85463 bytes .../car-wheel-assembly/artifact_commands.snap | 30 ++++- .../cpu-cooler/artifact_commands.snap | 65 ++++++++-- .../artifact_commands.snap | 20 ++- .../dodecahedron/artifact_commands.snap | 120 ++++++++++++++---- .../artifact_commands.snap | 5 +- .../herringbone-gear/artifact_commands.snap | 5 +- .../artifact_commands.snap | 20 ++- .../pdu-faceplate/artifact_commands.snap | 45 +++++-- .../artifact_commands.snap | 55 ++++++-- .../prosthetic-hip/artifact_commands.snap | 70 ++++++++-- .../sash-window/artifact_commands.snap | 40 ++++-- .../kcl_samples/spool/artifact_commands.snap | 5 +- .../artifact_commands.snap | 10 +- .../t-slot-rail/artifact_commands.snap | 5 +- .../walkie-talkie/artifact_commands.snap | 50 ++++++-- .../artifact_commands.snap | 5 +- .../artifact_commands.snap | 10 +- .../artifact_commands.snap | 5 +- .../scale_after_fillet/artifact_commands.snap | 5 +- .../artifact_commands.snap | 5 +- .../tests/spheres/artifact_commands.snap | 5 +- .../artifact_commands.snap | 5 +- .../artifact_commands.snap | 5 +- .../artifact_commands.snap | 5 +- .../subtract_regression12/rendered_model.png | Bin 61104 -> 61106 bytes .../artifact_commands.snap | 5 +- .../artifact_commands.snap | 10 +- .../artifact_commands.snap | 5 +- .../tests/union_cubes/artifact_commands.snap | 5 +- .../artifact_commands.snap | 10 +- 45 files changed, 635 insertions(+), 166 deletions(-) diff --git a/public/kcl-samples/screenshots/ball-joint-rod-end.png b/public/kcl-samples/screenshots/ball-joint-rod-end.png index ba74c58b0c31cf59a5fba12e3a7c7a896910b610..6dff8f8f0acdb0675273e9d4439aec5a0f3b9237 100644 GIT binary patch literal 85463 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 diff --git a/public/kcl-samples/screenshots/surgical-drill-guide.png b/public/kcl-samples/screenshots/surgical-drill-guide.png index b75b445e29b405abcc357d03a6c6ab2bccf55c53..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 35674 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

@ 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

>g&r*BTuZ}>AKv^WotA6IQ`mb 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 WK2Llh?vjLmul{<$oMWlkfA}vnWhqSn diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 74c2be1c6..918f321c0 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -2071,9 +2071,9 @@ dependencies = [ [[package]] name = "kittycad-modeling-cmds" -version = "0.2.124" +version = "0.2.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221aa4670a7ad7dc8f1e4e0f9990bf3cff0a64417eb76493bafe5bbbc1f8350a" +checksum = "cfd09d95f8bbeb090d4d1137c9bf421eb75763f7a30e4a9e8eefa249ddf20bd3" dependencies = [ "anyhow", "chrono", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index f9ffbb0cf..c38590cc0 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -36,7 +36,7 @@ dashmap = { version = "6.1.0" } http = "1" indexmap = "2.9.0" kittycad = { version = "0.3.37", default-features = false, features = ["js", "requests"] } -kittycad-modeling-cmds = { version = "0.2.124", features = ["ts-rs", "websocket"] } +kittycad-modeling-cmds = { version = "0.2.125", features = ["ts-rs", "websocket"] } lazy_static = "1.5.0" miette = "7.6.0" pyo3 = { version = "0.24.2" } @@ -60,6 +60,6 @@ lossy_float_literal = "warn" result_large_err = "allow" # Example: how to point modeling-app at a different repo (e.g. a branch or a local clone) -#[patch.crates-io] -#kittycad-modeling-cmds = { path = "../../../modeling-api/modeling-cmds" } -#kittycad-modeling-session = { path = "../../../modeling-api/modeling-session" } +# [patch.crates-io] +# kittycad-modeling-cmds = { path = "../../modeling-api/modeling-cmds/" } +# kittycad-modeling-session = { path = "../../modeling-api/modeling-session" } diff --git a/rust/kcl-lib/src/std/axis_or_reference.rs b/rust/kcl-lib/src/std/axis_or_reference.rs index 065a02742..31194912f 100644 --- a/rust/kcl-lib/src/std/axis_or_reference.rs +++ b/rust/kcl-lib/src/std/axis_or_reference.rs @@ -58,4 +58,11 @@ impl Axis3dOrPoint3d { Axis3dOrPoint3d::Point(point) => point.clone(), } } + + pub fn axis_origin(&self) -> Option<[TyF64; 3]> { + match self { + Axis3dOrPoint3d::Axis { origin, .. } => Some(origin.clone()), + Axis3dOrPoint3d::Point(..) => None, + } + } } diff --git a/rust/kcl-lib/src/std/transform.rs b/rust/kcl-lib/src/std/transform.rs index 694e84921..c605595f3 100644 --- a/rust/kcl-lib/src/std/transform.rs +++ b/rust/kcl-lib/src/std/transform.rs @@ -5,7 +5,7 @@ use kcmc::{ ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared, - shared::{Point3d, Point4d}, + shared::{OriginType, Point3d}, }; use kittycad_modeling_cmds as kcmc; @@ -18,6 +18,16 @@ use crate::{ std::{Args, args::TyF64, axis_or_reference::Axis3dOrPoint3d}, }; +fn transform_by(property: T, set: bool, is_local: bool, origin: Option) -> shared::TransformBy { + shared::TransformBy { + property, + set, + #[expect(deprecated)] + is_local, + origin, + } +} + /// Scale a solid or a sketch. pub async fn scale(exec_state: &mut ExecState, args: Args) -> Result { let objects = args.get_unlabeled_kw_arg( @@ -70,6 +80,13 @@ async fn inner_scale( exec_state.flush_batch_for_solids((&args).into(), solids).await?; } + let is_global = global.unwrap_or(false); + let origin = if is_global { + Some(OriginType::Global) + } else { + Some(OriginType::Local) + }; + let mut objects = objects.clone(); for object_id in objects.ids(&args.ctx).await? { exec_state @@ -78,15 +95,16 @@ async fn inner_scale( ModelingCmd::from(mcmd::SetObjectTransform { object_id, transforms: vec![shared::ComponentTransform { - scale: Some(shared::TransformBy::> { - property: Point3d { + scale: Some(transform_by( + Point3d { x: x.unwrap_or(1.0), y: y.unwrap_or(1.0), z: z.unwrap_or(1.0), }, - set: false, - is_local: !global.unwrap_or(false), - }), + false, + !is_global, + origin, + )), translate: None, rotate_rpy: None, rotate_angle_axis: None, @@ -142,6 +160,13 @@ async fn inner_translate( exec_state.flush_batch_for_solids((&args).into(), solids).await?; } + let is_global = global.unwrap_or(false); + let origin = if is_global { + Some(OriginType::Global) + } else { + Some(OriginType::Local) + }; + let mut objects = objects.clone(); for object_id in objects.ids(&args.ctx).await? { exec_state @@ -150,15 +175,16 @@ async fn inner_translate( ModelingCmd::from(mcmd::SetObjectTransform { object_id, transforms: vec![shared::ComponentTransform { - translate: Some(shared::TransformBy::> { - property: shared::Point3d { + translate: Some(transform_by( + shared::Point3d { x: LengthUnit(x.as_ref().map(|t| t.to_mm()).unwrap_or_default()), y: LengthUnit(y.as_ref().map(|t| t.to_mm()).unwrap_or_default()), z: LengthUnit(z.as_ref().map(|t| t.to_mm()).unwrap_or_default()), }, - set: false, - is_local: !global.unwrap_or(false), - }), + false, + !is_global, + origin, + )), scale: None, rotate_rpy: None, rotate_angle_axis: None, @@ -193,6 +219,7 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result = args.get_kw_arg_opt("angle", &RuntimeType::degrees(), exec_state)?; let global = args.get_kw_arg_opt("global", &RuntimeType::bool(), exec_state)?; @@ -286,6 +313,7 @@ pub async fn rotate(exec_state: &mut ExecState, args: Args) -> Result, yaw: Option, axis: Option<[f64; 3]>, + origin: Option<[f64; 3]>, angle: Option, global: Option, exec_state: &mut ExecState, @@ -313,6 +342,20 @@ async fn inner_rotate( exec_state.flush_batch_for_solids((&args).into(), solids).await?; } + let origin = if let Some(origin) = origin { + Some(OriginType::Custom { + origin: shared::Point3d { + x: origin[0], + y: origin[1], + z: origin[2], + }, + }) + } else if global.unwrap_or(false) { + Some(OriginType::Global) + } else { + Some(OriginType::Local) + }; + let mut objects = objects.clone(); for object_id in objects.ids(&args.ctx).await? { if let (Some(axis), Some(angle)) = (&axis, angle) { @@ -322,16 +365,17 @@ async fn inner_rotate( ModelingCmd::from(mcmd::SetObjectTransform { object_id, transforms: vec![shared::ComponentTransform { - rotate_angle_axis: Some(shared::TransformBy::> { - property: shared::Point4d { + rotate_angle_axis: Some(transform_by( + shared::Point4d { x: axis[0], y: axis[1], z: axis[2], w: angle, }, - set: false, - is_local: !global.unwrap_or(false), - }), + false, + !global.unwrap_or(false), + origin, + )), scale: None, rotate_rpy: None, translate: None, @@ -347,15 +391,16 @@ async fn inner_rotate( ModelingCmd::from(mcmd::SetObjectTransform { object_id, transforms: vec![shared::ComponentTransform { - rotate_rpy: Some(shared::TransformBy::> { - property: shared::Point3d { + rotate_rpy: Some(transform_by( + shared::Point3d { x: roll.unwrap_or(0.0), y: pitch.unwrap_or(0.0), z: yaw.unwrap_or(0.0), }, - set: false, - is_local: !global.unwrap_or(false), - }), + false, + !global.unwrap_or(false), + origin, + )), scale: None, rotate_angle_axis: None, translate: None, diff --git a/rust/kcl-lib/tests/import_async/artifact_commands.snap b/rust/kcl-lib/tests/import_async/artifact_commands.snap index fe05bf663..e7de19561 100644 --- a/rust/kcl-lib/tests/import_async/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_async/artifact_commands.snap @@ -5571926,7 +5571926,10 @@ description: Artifact commands import_async.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/import_mesh_clone/artifact_commands.snap b/rust/kcl-lib/tests/import_mesh_clone/artifact_commands.snap index e6b12f080..9b6e57225 100644 --- a/rust/kcl-lib/tests/import_mesh_clone/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_mesh_clone/artifact_commands.snap @@ -19,7 +19,10 @@ description: Artifact commands import_mesh_clone.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -84,7 +87,10 @@ description: Artifact commands import_mesh_clone.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -149,7 +155,10 @@ description: Artifact commands import_mesh_clone.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -214,7 +223,10 @@ description: Artifact commands import_mesh_clone.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/import_transform/artifact_commands.snap b/rust/kcl-lib/tests/import_transform/artifact_commands.snap index 03ff943e5..0533d02b5 100644 --- a/rust/kcl-lib/tests/import_transform/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_transform/artifact_commands.snap @@ -5571084,7 +5571084,10 @@ description: Artifact commands import_transform.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -5571107,7 +5571110,10 @@ description: Artifact commands import_transform.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -5571134,7 +5571140,10 @@ description: Artifact commands import_transform.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } } } ] diff --git a/rust/kcl-lib/tests/import_whole_simple/artifact_commands.snap b/rust/kcl-lib/tests/import_whole_simple/artifact_commands.snap index bdd71a6a6..154df0f7f 100644 --- a/rust/kcl-lib/tests/import_whole_simple/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_whole_simple/artifact_commands.snap @@ -182,7 +182,10 @@ description: Artifact commands import_whole_simple.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/import_whole_transitive_import/artifact_commands.snap b/rust/kcl-lib/tests/import_whole_transitive_import/artifact_commands.snap index 34e17168a..0c90f04d3 100644 --- a/rust/kcl-lib/tests/import_whole_transitive_import/artifact_commands.snap +++ b/rust/kcl-lib/tests/import_whole_transitive_import/artifact_commands.snap @@ -20,7 +20,10 @@ description: Artifact commands import_whole_transitive_import.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap b/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap index aecf2cdaf..73d533c2d 100644 --- a/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap +++ b/rust/kcl-lib/tests/intersect_cubes/artifact_commands.snap @@ -393,7 +393,10 @@ description: Artifact commands intersect_cubes.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/artifact_commands.snap index a313abe15..1d0213ca5 100644 --- a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/artifact_commands.snap @@ -956,7 +956,10 @@ description: Artifact commands ball-joint-rod-end.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1211,7 +1214,10 @@ description: Artifact commands ball-joint-rod-end.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/rendered_model.png b/rust/kcl-lib/tests/kcl_samples/ball-joint-rod-end/rendered_model.png index ba74c58b0c31cf59a5fba12e3a7c7a896910b610..6dff8f8f0acdb0675273e9d4439aec5a0f3b9237 100644 GIT binary patch literal 85463 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 diff --git a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap index fe859f6cf..66d1cd994 100644 --- a/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/car-wheel-assembly/artifact_commands.snap @@ -7382,7 +7382,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7406,7 +7409,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7430,7 +7436,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7454,7 +7463,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7478,7 +7490,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7523,7 +7538,10 @@ description: Artifact commands car-wheel-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap index 6f9113f7f..062fb1684 100644 --- a/rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/cpu-cooler/artifact_commands.snap @@ -7075,7 +7075,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7139,7 +7142,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7163,7 +7169,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7267,7 +7276,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7291,7 +7303,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7315,7 +7330,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7339,7 +7357,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7363,7 +7384,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7387,7 +7411,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7411,7 +7438,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7435,7 +7465,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7459,7 +7492,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -7483,7 +7519,10 @@ description: Artifact commands cpu-cooler.kcl "z": 100.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/artifact_commands.snap index 2b9276e27..5e786017d 100644 --- a/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/curtain-wall-anchor-plate/artifact_commands.snap @@ -482,7 +482,10 @@ description: Artifact commands curtain-wall-anchor-plate.kcl "z": -1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -616,7 +619,10 @@ description: Artifact commands curtain-wall-anchor-plate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1479,7 +1485,10 @@ description: Artifact commands curtain-wall-anchor-plate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -1502,7 +1511,10 @@ description: Artifact commands curtain-wall-anchor-plate.kcl "z": 5.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap index 7f3a0667a..299031d63 100644 --- a/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/dodecahedron/artifact_commands.snap @@ -206,7 +206,10 @@ description: Artifact commands dodecahedron.kcl "z": -6604.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -231,7 +234,10 @@ description: Artifact commands dodecahedron.kcl "z": 0.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -441,7 +447,10 @@ description: Artifact commands dodecahedron.kcl "z": -6606.54 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -466,7 +475,10 @@ description: Artifact commands dodecahedron.kcl "z": 0.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -676,7 +688,10 @@ description: Artifact commands dodecahedron.kcl "z": -6609.079999999999 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -701,7 +716,10 @@ description: Artifact commands dodecahedron.kcl "z": 72.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -911,7 +929,10 @@ description: Artifact commands dodecahedron.kcl "z": -6611.62 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -936,7 +957,10 @@ description: Artifact commands dodecahedron.kcl "z": 144.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -1146,7 +1170,10 @@ description: Artifact commands dodecahedron.kcl "z": -6614.159999999999 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1171,7 +1198,10 @@ description: Artifact commands dodecahedron.kcl "z": 216.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -1381,7 +1411,10 @@ description: Artifact commands dodecahedron.kcl "z": -6616.7 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1406,7 +1439,10 @@ description: Artifact commands dodecahedron.kcl "z": 288.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -1616,7 +1652,10 @@ description: Artifact commands dodecahedron.kcl "z": -6619.24 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1641,7 +1680,10 @@ description: Artifact commands dodecahedron.kcl "z": 0.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -1851,7 +1893,10 @@ description: Artifact commands dodecahedron.kcl "z": -6621.78 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1876,7 +1921,10 @@ description: Artifact commands dodecahedron.kcl "z": 36.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -2086,7 +2134,10 @@ description: Artifact commands dodecahedron.kcl "z": -6624.32 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2111,7 +2162,10 @@ description: Artifact commands dodecahedron.kcl "z": 108.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -2321,7 +2375,10 @@ description: Artifact commands dodecahedron.kcl "z": -6626.859999999999 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2346,7 +2403,10 @@ description: Artifact commands dodecahedron.kcl "z": 180.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -2556,7 +2616,10 @@ description: Artifact commands dodecahedron.kcl "z": -6606.794 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2581,7 +2644,10 @@ description: Artifact commands dodecahedron.kcl "z": 252.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null @@ -2791,7 +2857,10 @@ description: Artifact commands dodecahedron.kcl "z": -6607.048 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2816,7 +2885,10 @@ description: Artifact commands dodecahedron.kcl "z": 324.0 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_angle_axis": null, "scale": null diff --git a/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/artifact_commands.snap index 2440021fe..c108d2874 100644 --- a/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/helical-planetary-gearset/artifact_commands.snap @@ -2743,7 +2743,10 @@ description: Artifact commands helical-planetary-gearset.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/herringbone-gear/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/herringbone-gear/artifact_commands.snap index 0900e4fef..f7c81fb4b 100644 --- a/rust/kcl-lib/tests/kcl_samples/herringbone-gear/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/herringbone-gear/artifact_commands.snap @@ -629,7 +629,10 @@ description: Artifact commands herringbone-gear.kcl "z": 8.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/artifact_commands.snap index 70f1a1e69..c0e33a485 100644 --- a/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/herringbone-planetary-gearset/artifact_commands.snap @@ -707,7 +707,10 @@ description: Artifact commands herringbone-planetary-gearset.kcl "z": 8.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1383,7 +1386,10 @@ description: Artifact commands herringbone-planetary-gearset.kcl "z": 8.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2059,7 +2065,10 @@ description: Artifact commands herringbone-planetary-gearset.kcl "z": 8.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2125,7 +2134,10 @@ description: Artifact commands herringbone-planetary-gearset.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/artifact_commands.snap index 8817e08d6..3b9c89676 100644 --- a/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/pdu-faceplate/artifact_commands.snap @@ -689,7 +689,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1088,7 +1091,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1344,7 +1350,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1589,7 +1598,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1817,7 +1829,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1913,7 +1928,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2065,7 +2083,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2873,7 +2894,10 @@ description: Artifact commands pdu-faceplate.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -3012,7 +3036,10 @@ description: Artifact commands pdu-faceplate.kcl "z": -13.335 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap index d9f72ecaa..e6f3133af 100644 --- a/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/pipe-flange-assembly/artifact_commands.snap @@ -1847,7 +1847,10 @@ description: Artifact commands pipe-flange-assembly.kcl "w": 180.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "scale": null } @@ -1869,7 +1872,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 3.8353999999999995 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1893,7 +1899,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": -2.3114 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2223,7 +2232,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 17.525999999999996 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2952,7 +2964,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 18.3388 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2977,7 +2992,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -3387,7 +3405,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": -36.064825 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -3739,7 +3760,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -3762,7 +3786,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 11.175999999999998 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -4093,7 +4120,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -4116,7 +4146,10 @@ description: Artifact commands pipe-flange-assembly.kcl "z": -15.011399999999998 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/artifact_commands.snap index 6680a3d98..eb9f89592 100644 --- a/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/prosthetic-hip/artifact_commands.snap @@ -570,7 +570,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 110.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -595,7 +598,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -794,7 +800,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 130.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -819,7 +828,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -1018,7 +1030,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 140.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1043,7 +1058,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -1242,7 +1260,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 145.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1267,7 +1288,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -1709,7 +1733,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 133.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1734,7 +1761,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -2003,7 +2033,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 133.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2028,7 +2061,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -2297,7 +2333,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 133.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -2322,7 +2361,10 @@ description: Artifact commands prosthetic-hip.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null diff --git a/rust/kcl-lib/tests/kcl_samples/sash-window/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/sash-window/artifact_commands.snap index abbaf12bf..c1d1053da 100644 --- a/rust/kcl-lib/tests/kcl_samples/sash-window/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/sash-window/artifact_commands.snap @@ -1002,7 +1002,10 @@ description: Artifact commands sash-window.kcl "z": -227.5 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1026,7 +1029,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1277,7 +1283,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1301,7 +1310,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1557,7 +1569,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1581,7 +1596,10 @@ description: Artifact commands sash-window.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -1606,7 +1624,10 @@ description: Artifact commands sash-window.kcl "z": -0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -2177,7 +2198,10 @@ description: Artifact commands sash-window.kcl "z": 227.5 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/spool/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/spool/artifact_commands.snap index 28f7d10a9..a9fd6fe93 100644 --- a/rust/kcl-lib/tests/kcl_samples/spool/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/spool/artifact_commands.snap @@ -1805,7 +1805,10 @@ description: Artifact commands spool.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/artifact_commands.snap index 0efef9762..281975a7f 100644 --- a/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/spur-reduction-gearset/artifact_commands.snap @@ -661,7 +661,10 @@ description: Artifact commands spur-reduction-gearset.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -686,7 +689,10 @@ description: Artifact commands spur-reduction-gearset.kcl "z": 3.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null diff --git a/rust/kcl-lib/tests/kcl_samples/t-slot-rail/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/t-slot-rail/artifact_commands.snap index 135a28b66..9ff69f9f8 100644 --- a/rust/kcl-lib/tests/kcl_samples/t-slot-rail/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/t-slot-rail/artifact_commands.snap @@ -502,7 +502,10 @@ description: Artifact commands t-slot-rail.kcl "z": 1.5 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } } } ] diff --git a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap index b3964fd86..47063d3bf 100644 --- a/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/walkie-talkie/artifact_commands.snap @@ -9827,7 +9827,10 @@ description: Artifact commands walkie-talkie.kcl "z": 50.8 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -9851,7 +9854,10 @@ description: Artifact commands walkie-talkie.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -9875,7 +9881,10 @@ description: Artifact commands walkie-talkie.kcl "z": 12.7 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -9899,7 +9908,10 @@ description: Artifact commands walkie-talkie.kcl "z": 50.8 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -10181,7 +10193,10 @@ description: Artifact commands walkie-talkie.kcl "z": 31.75 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -10463,7 +10478,10 @@ description: Artifact commands walkie-talkie.kcl "z": 18.541999999999998 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -10746,7 +10764,10 @@ description: Artifact commands walkie-talkie.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -10769,7 +10790,10 @@ description: Artifact commands walkie-talkie.kcl "z": 19.558 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -11052,7 +11076,10 @@ description: Artifact commands walkie-talkie.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null @@ -11075,7 +11102,10 @@ description: Artifact commands walkie-talkie.kcl "z": 6.350000000000001 }, "set": false, - "is_local": false + "is_local": false, + "origin": { + "type": "global" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/module_return_using_var/artifact_commands.snap b/rust/kcl-lib/tests/module_return_using_var/artifact_commands.snap index b61230706..d9c570edf 100644 --- a/rust/kcl-lib/tests/module_return_using_var/artifact_commands.snap +++ b/rust/kcl-lib/tests/module_return_using_var/artifact_commands.snap @@ -225,7 +225,10 @@ description: Artifact commands module_return_using_var.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap index 59779f3d0..06d92674f 100644 --- a/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap +++ b/rust/kcl-lib/tests/multiple-foreign-imports-all-render/artifact_commands.snap @@ -15925,7 +15925,10 @@ description: Artifact commands multiple-foreign-imports-all-render.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -15966,7 +15969,10 @@ description: Artifact commands multiple-foreign-imports-all-render.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap index 40c4df93c..e2e4c5477 100644 --- a/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/rotate_after_fillet/artifact_commands.snap @@ -571,7 +571,10 @@ description: Artifact commands rotate_after_fillet.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null diff --git a/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap index 5d5b61308..fe5a687ea 100644 --- a/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/scale_after_fillet/artifact_commands.snap @@ -573,7 +573,10 @@ description: Artifact commands scale_after_fillet.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } } } ] diff --git a/rust/kcl-lib/tests/sketch_on_face_union/artifact_commands.snap b/rust/kcl-lib/tests/sketch_on_face_union/artifact_commands.snap index d7df86c6c..1995764b9 100644 --- a/rust/kcl-lib/tests/sketch_on_face_union/artifact_commands.snap +++ b/rust/kcl-lib/tests/sketch_on_face_union/artifact_commands.snap @@ -1025,7 +1025,10 @@ description: Artifact commands sketch_on_face_union.kcl "w": -90.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "scale": null } diff --git a/rust/kcl-lib/tests/spheres/artifact_commands.snap b/rust/kcl-lib/tests/spheres/artifact_commands.snap index 846016f96..8ba45ec31 100644 --- a/rust/kcl-lib/tests/spheres/artifact_commands.snap +++ b/rust/kcl-lib/tests/spheres/artifact_commands.snap @@ -357,7 +357,10 @@ description: Artifact commands spheres.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap b/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap index b44d86ef1..efb0356fb 100644 --- a/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_cylinder_from_cube/artifact_commands.snap @@ -367,7 +367,10 @@ description: Artifact commands subtract_cylinder_from_cube.kcl "z": 3.14 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap b/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap index fa16e058e..d85f89e2e 100644 --- a/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_doesnt_need_brackets/artifact_commands.snap @@ -393,7 +393,10 @@ description: Artifact commands subtract_doesnt_need_brackets.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/subtract_regression03/artifact_commands.snap b/rust/kcl-lib/tests/subtract_regression03/artifact_commands.snap index bc006cfe6..196428639 100644 --- a/rust/kcl-lib/tests/subtract_regression03/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_regression03/artifact_commands.snap @@ -233,7 +233,10 @@ description: Artifact commands subtract_regression03.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } } } ] diff --git a/rust/kcl-lib/tests/subtract_regression12/rendered_model.png b/rust/kcl-lib/tests/subtract_regression12/rendered_model.png index c541dac7c7aa7f094e673795d0a99d9ce484697a..5aae217e389d3d0ffdf432404087fb0357d91ca7 100644 GIT binary patch delta 14577 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 diff --git a/rust/kcl-lib/tests/subtract_with_pattern/artifact_commands.snap b/rust/kcl-lib/tests/subtract_with_pattern/artifact_commands.snap index 890c1e7b6..fc9fed252 100644 --- a/rust/kcl-lib/tests/subtract_with_pattern/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_with_pattern/artifact_commands.snap @@ -682,7 +682,10 @@ description: Artifact commands subtract_with_pattern.kcl "w": 90.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "scale": null } diff --git a/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/artifact_commands.snap b/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/artifact_commands.snap index ce0756a21..697f9bc1a 100644 --- a/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/artifact_commands.snap +++ b/rust/kcl-lib/tests/subtract_with_pattern_cut_thru/artifact_commands.snap @@ -384,7 +384,10 @@ description: Artifact commands subtract_with_pattern_cut_thru.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -556,7 +559,10 @@ description: Artifact commands subtract_with_pattern_cut_thru.kcl "w": 90.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "scale": null } diff --git a/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap b/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap index 07a50c0cf..63b684c66 100644 --- a/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap +++ b/rust/kcl-lib/tests/translate_after_fillet/artifact_commands.snap @@ -570,7 +570,10 @@ description: Artifact commands translate_after_fillet.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/union_cubes/artifact_commands.snap b/rust/kcl-lib/tests/union_cubes/artifact_commands.snap index 1791939f3..33bb10a90 100644 --- a/rust/kcl-lib/tests/union_cubes/artifact_commands.snap +++ b/rust/kcl-lib/tests/union_cubes/artifact_commands.snap @@ -393,7 +393,10 @@ description: Artifact commands union_cubes.kcl "z": 1.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, diff --git a/rust/kcl-lib/tests/user_reported_union_2_bug/artifact_commands.snap b/rust/kcl-lib/tests/user_reported_union_2_bug/artifact_commands.snap index 61e4b6840..767192d7c 100644 --- a/rust/kcl-lib/tests/user_reported_union_2_bug/artifact_commands.snap +++ b/rust/kcl-lib/tests/user_reported_union_2_bug/artifact_commands.snap @@ -146,7 +146,10 @@ description: Artifact commands user_reported_union_2_bug.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_rpy": null, "rotate_angle_axis": null, @@ -401,7 +404,10 @@ description: Artifact commands user_reported_union_2_bug.kcl "z": 0.0 }, "set": false, - "is_local": true + "is_local": true, + "origin": { + "type": "local" + } }, "rotate_angle_axis": null, "scale": null From 0f8375cbb4ad289981a0e3da0c728b5647af3336 Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Fri, 27 Jun 2025 21:36:42 +1000 Subject: [PATCH 17/34] [BUG] offsetPlane back-side startSketchOn (#7622) offset backPlane selection bug --- ...on-all-planes-and-their-back-sides.spec.ts | 162 +++++++++++++++++- e2e/playwright/fixtures/toolbarFixture.ts | 7 + src/components/CustomIcon.tsx | 128 +++++++++++--- src/components/ModelingMachineProvider.tsx | 6 +- .../ModelingPanes/FeatureTreePane.tsx | 7 +- src/hooks/useEngineConnectionSubscriptions.ts | 50 ++++-- src/lang/modifyAst.ts | 15 +- src/machines/modelingMachine.ts | 1 + 8 files changed, 337 insertions(+), 39 deletions(-) diff --git a/e2e/playwright/can-create-sketches-on-all-planes-and-their-back-sides.spec.ts b/e2e/playwright/can-create-sketches-on-all-planes-and-their-back-sides.spec.ts index 3ec4f1332..c6953644f 100644 --- a/e2e/playwright/can-create-sketches-on-all-planes-and-their-back-sides.spec.ts +++ b/e2e/playwright/can-create-sketches-on-all-planes-and-their-back-sides.spec.ts @@ -5,6 +5,7 @@ import { uuidv4 } from '@src/lib/utils' import type { HomePageFixture } from '@e2e/playwright/fixtures/homePageFixture' import type { SceneFixture } from '@e2e/playwright/fixtures/sceneFixture' import type { ToolbarFixture } from '@e2e/playwright/fixtures/toolbarFixture' +import type { CmdBarFixture } from '@e2e/playwright/fixtures/cmdBarFixture' import { getUtils } from '@e2e/playwright/test-utils' import { expect, test } from '@e2e/playwright/zoo-test' @@ -14,13 +15,18 @@ test.describe('Can create sketches on all planes and their back sides', () => { homePage: HomePageFixture, scene: SceneFixture, toolbar: ToolbarFixture, + cmdBar: CmdBarFixture, plane: string, clickCoords: { x: number; y: number } ) => { const u = await getUtils(page) + // await page.addInitScript(() => { + // localStorage.setItem('persistCode', '@settings(defaultLengthUnit = in)') + // }) await page.setBodyDimensions({ width: 1200, height: 500 }) await homePage.goToModelingScene() + // await scene.settled(cmdBar) const XYPlanRed: [number, number, number] = [98, 50, 51] await scene.expectPixelColor(XYPlanRed, { x: 700, y: 300 }, 15) @@ -119,12 +125,166 @@ test.describe('Can create sketches on all planes and their back sides', () => { ] for (const config of planeConfigs) { - test(config.plane, async ({ page, homePage, scene, toolbar }) => { + test(config.plane, async ({ page, homePage, scene, toolbar, cmdBar }) => { await sketchOnPlaneAndBackSideTest( page, homePage, scene, toolbar, + cmdBar, + config.plane, + config.coords + ) + }) + } +}) +test.describe('Can create sketches on offset planes and their back sides', () => { + const sketchOnPlaneAndBackSideTest = async ( + page: Page, + homePage: HomePageFixture, + scene: SceneFixture, + toolbar: ToolbarFixture, + cmdbar: CmdBarFixture, + plane: string, + clickCoords: { x: number; y: number } + ) => { + const u = await getUtils(page) + await page.addInitScript(() => { + localStorage.setItem( + 'persistCode', + `@settings(defaultLengthUnit = in) +xyPlane = offsetPlane(XY, offset = 0.05) +xzPlane = offsetPlane(XZ, offset = 0.05) +yzPlane = offsetPlane(YZ, offset = 0.05) +` + ) + }) + await page.setBodyDimensions({ width: 1200, height: 500 }) + + await homePage.goToModelingScene() + // await scene.settled(cmdbar) + const XYPlanRed: [number, number, number] = [74, 74, 74] + await scene.expectPixelColor(XYPlanRed, { x: 700, y: 300 }, 15) + + await u.openDebugPanel() + + const coord = + plane === '-XY' || plane === '-YZ' || plane === 'XZ' ? -100 : 100 + const camCommand: EngineCommand = { + type: 'modeling_cmd_req', + cmd_id: uuidv4(), + cmd: { + type: 'default_camera_look_at', + center: { x: 0, y: 0, z: 0 }, + vantage: { x: coord, y: coord, z: coord }, + up: { x: 0, y: 0, z: 1 }, + }, + } + const updateCamCommand: EngineCommand = { + type: 'modeling_cmd_req', + cmd_id: uuidv4(), + cmd: { + type: 'default_camera_get_settings', + }, + } + + const prefix = plane.length === 3 ? '-' : '' + const planeName = plane + .slice(plane.length === 3 ? 1 : 0) + .toLocaleLowerCase() + + const codeLine1 = `sketch001 = startSketchOn(${prefix}${planeName}Plane)` + const codeLine2 = `profile001 = startProfile(sketch001, at = [${0.91 + (plane[0] === '-' ? 0.01 : 0)}, -${1.21 + (plane[0] === '-' ? 0.01 : 0)}])` + + await u.openDebugPanel() + + await u.clearCommandLogs() + await page.getByRole('button', { name: 'Start Sketch' }).click() + + await u.sendCustomCmd(camCommand) + await page.waitForTimeout(100) + await u.sendCustomCmd(updateCamCommand) + + await u.closeDebugPanel() + + await toolbar.openFeatureTreePane() + await toolbar.getDefaultPlaneVisibilityButton('XY').click() + await toolbar.getDefaultPlaneVisibilityButton('XZ').click() + await toolbar.getDefaultPlaneVisibilityButton('YZ').click() + await expect( + toolbar + .getDefaultPlaneVisibilityButton('YZ') + .locator('[aria-label="eye crossed out"]') + ).toBeVisible() + + await page.mouse.click(clickCoords.x, clickCoords.y) + await page.waitForTimeout(600) // wait for animation + + await toolbar.waitUntilSketchingReady() + + await expect( + page.getByRole('button', { name: 'line Line', exact: true }) + ).toBeVisible() + + await u.closeDebugPanel() + await page.mouse.click(707, 393) + + await expect(page.locator('.cm-content')).toContainText(codeLine1) + await expect(page.locator('.cm-content')).toContainText(codeLine2) + + await page + .getByRole('button', { name: 'line Line', exact: true }) + .first() + .click() + await u.openAndClearDebugPanel() + await page.getByRole('button', { name: 'Exit Sketch' }).click() + await u.expectCmdLog('[data-message-type="execution-done"]') + + await u.clearCommandLogs() + await u.removeCurrentCode() + } + + const planeConfigs = [ + { + plane: 'XY', + coords: { x: 600, y: 388 }, + description: 'red plane', + }, + { + plane: 'YZ', + coords: { x: 700, y: 250 }, + description: 'green plane', + }, + { + plane: 'XZ', + coords: { x: 684, y: 427 }, + description: 'blue plane', + }, + { + plane: '-XY', + coords: { x: 600, y: 118 }, + description: 'back of red plane', + }, + { + plane: '-YZ', + coords: { x: 700, y: 219 }, + description: 'back of green plane', + }, + { + plane: '-XZ', + coords: { x: 700, y: 80 }, + description: 'back of blue plane', + }, + ] + + for (const config of planeConfigs) { + test(config.plane, async ({ page, homePage, scene, toolbar, cmdBar }) => { + await sketchOnPlaneAndBackSideTest( + page, + homePage, + scene, + toolbar, + cmdBar, config.plane, config.coords ) diff --git a/e2e/playwright/fixtures/toolbarFixture.ts b/e2e/playwright/fixtures/toolbarFixture.ts index f1be93061..2e6267329 100644 --- a/e2e/playwright/fixtures/toolbarFixture.ts +++ b/e2e/playwright/fixtures/toolbarFixture.ts @@ -274,6 +274,13 @@ export class ToolbarFixture { .nth(operationIndex) } + getDefaultPlaneVisibilityButton(plane: 'XY' | 'XZ' | 'YZ' = 'XY') { + const index = plane === 'XZ' ? 0 : plane === 'XY' ? 1 : 2 + return this.featureTreePane + .getByTestId('feature-tree-visibility-toggle') + .nth(index) + } + /** * View source on a specific operation in the Feature Tree pane. * @param operationName The name of the operation type diff --git a/src/components/CustomIcon.tsx b/src/components/CustomIcon.tsx index b5e8f2d94..938aabd11 100644 --- a/src/components/CustomIcon.tsx +++ b/src/components/CustomIcon.tsx @@ -107,7 +107,12 @@ const CustomIconMap = { ), beaker: ( - + ), chat: ( - + ), elephant: ( - + ), eyeOpen: ( - + ), eyeCrossedOut: ( - + ), helix: ( - + ), hollow: ( - + ), loading: ( - + ), model: ( - + ), play: ( - + ), patternCircular2d: ( - + ), patternCircular3d: ( - + ), patternLinear2d: ( - + ), patternLinear3d: ( - + ), sparkles: ( - + ), infinity: ( - + ), star: ( - + { }, [props.onVisibilityChange]) return ( - g4+vM;MRrX^E)J-Qj=FQIAabnNLG>64tQ*d) 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
uI@iCA$DZ3hY| zxPlQ#V`3!~DuG9$T-dwu+NadZA4)zREPj7*OvNQd!_E=N54K7vcY{F*kiG{lC!scu z1aBOWcsqc=2tS}^U=A77=gz?f{~6Lzc4`MGI_sn!f&LGYIV8xtoc6lD_ZmIFL{CS? zaf@X6%ik!)lRD2Tv73YEh@=NrOTrms@$kDMw0GyilY{zA+11|;?#dQ7q4m;HdgFkk zK+`a4I%a3+h;Yd$;IWh)pBSp#JWkP!rS^E;cp*sD@(XwdJ8xv2+&0 zN8AZR7-NZP%*$WhD^n;txD!x(2b$3x0kC#(;r9!4S67>QZkYS~T{~YphJJChYs;+U zhVAL8;XnEL-UIl+RkGzfq?*e<&KcO{%Z8oy^A=cK$U5rQX!p+sB|r+?FUCpD1E?tm zXpiec6xG1RO68jy>>P<8k!oBhnJ}D=upAwv?kJ)tH$Xfz=7X7x7(-g|9O`@EY;{=R zguz4*<^pGjh|*D{yoT?moWMtqR?~kIeiV&*Zh501^=&`6We zlt)8HA2_YJS6qWc^n6IgPUQho{=w~`g*mivC=X4T@*fvZehWCQWU!SC1LAMr^!X-I z%?irajMiyc^~`NxT*RoZX5~6!*>_x#*e(1h2;

@ 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

>g&r*BTuZ}>AKv^WotA6IQ`mb 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 WK2Llh?vjLmul{<$oMWlkfA}vnWhqSn literal 0 HcmV?d00001 diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap index 0406a627f..07c2c5abf 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap @@ -2546,174 +2546,6 @@ description: Artifact commands multi-axis-robot.kcl "planar_normal": null } }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": 3.8099999999999996, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_adjacency_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": 3.8099999999999996, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_adjacency_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "extrude", - "target": "[uuid]", - "distance": 3.8099999999999996, - "faces": null, - "opposite": "None" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "sketch_mode_disable" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "object_bring_to_front", - "object_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_extrusion_face_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "solid3d_get_adjacency_info", - "object_id": "[uuid]", - "edge_id": "[uuid]" - } - }, - { - "cmdId": "[uuid]", - "range": [], - "command": { - "type": "enable_sketch_mode", - "entity_id": "[uuid]", - "ortho": false, - "animated": false, - "adjust_camera": false, - "planar_normal": null - } - }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md index 7d757975e..279c0f1b3 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md @@ -92,68 +92,68 @@ flowchart LR 195["Segment
[1741, 1911, 4]"] 196[Solid2d] end - subgraph path205 [Path] - 205["Path
[2247, 2400, 4]"] - 206["Segment
[2247, 2400, 4]"] - 207[Solid2d] + subgraph path202 [Path] + 202["Path
[2247, 2400, 4]"] + 203["Segment
[2247, 2400, 4]"] + 204[Solid2d] end - subgraph path214 [Path] - 214["Path
[289, 478, 5]"] - 215["Segment
[484, 570, 5]"] - 216["Segment
[576, 630, 5]"] - 217["Segment
[636, 722, 5]"] - 218["Segment
[728, 798, 5]"] - 219["Segment
[804, 811, 5]"] - 220[Solid2d] + subgraph path211 [Path] + 211["Path
[289, 478, 5]"] + 212["Segment
[484, 570, 5]"] + 213["Segment
[576, 630, 5]"] + 214["Segment
[636, 722, 5]"] + 215["Segment
[728, 798, 5]"] + 216["Segment
[804, 811, 5]"] + 217[Solid2d] end - subgraph path236 [Path] - 236["Path
[930, 1117, 5]"] - 237["Segment
[930, 1117, 5]"] - 238[Solid2d] + subgraph path233 [Path] + 233["Path
[930, 1117, 5]"] + 234["Segment
[930, 1117, 5]"] + 235[Solid2d] end - subgraph path245 [Path] - 245["Path
[1327, 1494, 5]"] - 246["Segment
[1327, 1494, 5]"] - 247[Solid2d] + subgraph path242 [Path] + 242["Path
[1327, 1494, 5]"] + 243["Segment
[1327, 1494, 5]"] + 244[Solid2d] end - subgraph path260 [Path] - 260["Path
[1898, 2140, 5]"] - 261["Segment
[1898, 2140, 5]"] - 262[Solid2d] + subgraph path257 [Path] + 257["Path
[1898, 2140, 5]"] + 258["Segment
[1898, 2140, 5]"] + 259[Solid2d] end - subgraph path269 [Path] - 269["Path
[2244, 2484, 5]"] - 270["Segment
[2244, 2484, 5]"] - 271[Solid2d] + subgraph path266 [Path] + 266["Path
[2244, 2484, 5]"] + 267["Segment
[2244, 2484, 5]"] + 268[Solid2d] end - subgraph path278 [Path] - 278["Path
[2643, 2681, 5]"] - 279["Segment
[2643, 2681, 5]"] - 280[Solid2d] + subgraph path275 [Path] + 275["Path
[2643, 2681, 5]"] + 276["Segment
[2643, 2681, 5]"] + 277[Solid2d] end - subgraph path287 [Path] - 287["Path
[2816, 2997, 5]"] - 288["Segment
[3003, 3071, 5]"] - 289["Segment
[3077, 3187, 5]"] - 290["Segment
[3193, 3261, 5]"] - 291["Segment
[3267, 3343, 5]"] - 292["Segment
[3349, 3425, 5]"] - 293["Segment
[3431, 3505, 5]"] - 294["Segment
[3511, 3567, 5]"] - 295["Segment
[3573, 3580, 5]"] - 296[Solid2d] + subgraph path284 [Path] + 284["Path
[2816, 2997, 5]"] + 285["Segment
[3003, 3071, 5]"] + 286["Segment
[3077, 3187, 5]"] + 287["Segment
[3193, 3261, 5]"] + 288["Segment
[3267, 3343, 5]"] + 289["Segment
[3349, 3425, 5]"] + 290["Segment
[3431, 3505, 5]"] + 291["Segment
[3511, 3567, 5]"] + 292["Segment
[3573, 3580, 5]"] + 293[Solid2d] end - subgraph path321 [Path] - 321["Path
[3714, 3895, 5]"] - 322["Segment
[3901, 3971, 5]"] - 323["Segment
[3977, 4092, 5]"] - 324["Segment
[4098, 4168, 5]"] - 325["Segment
[4174, 4252, 5]"] - 326["Segment
[4258, 4336, 5]"] - 327["Segment
[4342, 4418, 5]"] - 328["Segment
[4424, 4480, 5]"] - 329["Segment
[4486, 4493, 5]"] - 330[Solid2d] + subgraph path318 [Path] + 318["Path
[3714, 3895, 5]"] + 319["Segment
[3901, 3971, 5]"] + 320["Segment
[3977, 4092, 5]"] + 321["Segment
[4098, 4168, 5]"] + 322["Segment
[4174, 4252, 5]"] + 323["Segment
[4258, 4336, 5]"] + 324["Segment
[4342, 4418, 5]"] + 325["Segment
[4424, 4480, 5]"] + 326["Segment
[4486, 4493, 5]"] + 327[Solid2d] end 1["Plane
[219, 236, 1]"] 9["Sweep Extrusion
[742, 789, 1]"] @@ -332,83 +332,86 @@ flowchart LR %% face_code_ref=Missing NodePath 200["SweepEdge Opposite"] 201["SweepEdge Adjacent"] - 202["Sweep Extrusion
[2157, 2190, 4]"] - 203["Sweep Extrusion
[2157, 2190, 4]"] - 204["Sweep Extrusion
[2157, 2190, 4]"] - 208["Sweep Extrusion
[2402, 2432, 4]"] - 209[Wall] + 205["Sweep Extrusion
[2402, 2432, 4]"] + 206[Wall] %% face_code_ref=Missing NodePath - 210["Cap End"] + 207["Cap End"] + %% face_code_ref=Missing NodePath + 208["SweepEdge Opposite"] + 209["SweepEdge Adjacent"] + 210["Plane
[260, 283, 5]"] + 218["Sweep Extrusion
[825, 873, 5]"] + 219[Wall] + %% face_code_ref=Missing NodePath + 220[Wall] + %% face_code_ref=Missing NodePath + 221[Wall] %% face_code_ref=Missing NodePath - 211["SweepEdge Opposite"] - 212["SweepEdge Adjacent"] - 213["Plane
[260, 283, 5]"] - 221["Sweep Extrusion
[825, 873, 5]"] 222[Wall] %% face_code_ref=Missing NodePath - 223[Wall] + 223["Cap Start"] + 224["Cap End"] + 225["SweepEdge Opposite"] + 226["SweepEdge Adjacent"] + 227["SweepEdge Opposite"] + 228["SweepEdge Adjacent"] + 229["SweepEdge Opposite"] + 230["SweepEdge Adjacent"] + 231["SweepEdge Opposite"] + 232["SweepEdge Adjacent"] + 236["Sweep Extrusion
[1132, 1165, 5]"] + 237[Wall] %% face_code_ref=Missing NodePath - 224[Wall] + 238["Cap End"] + 239["SweepEdge Opposite"] + 240["SweepEdge Adjacent"] + 241["EdgeCut Fillet
[1171, 1233, 5]"] + 245["Sweep Extrusion
[1737, 1770, 5]"] + 246[Wall] %% face_code_ref=Missing NodePath - 225[Wall] + 247["Cap End"] %% face_code_ref=Missing NodePath - 226["Cap Start"] - 227["Cap End"] - 228["SweepEdge Opposite"] - 229["SweepEdge Adjacent"] - 230["SweepEdge Opposite"] - 231["SweepEdge Adjacent"] - 232["SweepEdge Opposite"] - 233["SweepEdge Adjacent"] - 234["SweepEdge Opposite"] - 235["SweepEdge Adjacent"] - 239["Sweep Extrusion
[1132, 1165, 5]"] - 240[Wall] - %% face_code_ref=Missing NodePath - 241["Cap End"] - 242["SweepEdge Opposite"] - 243["SweepEdge Adjacent"] - 244["EdgeCut Fillet
[1171, 1233, 5]"] - 248["Sweep Extrusion
[1737, 1770, 5]"] - 249[Wall] - %% face_code_ref=Missing NodePath - 250["Cap End"] - %% face_code_ref=Missing NodePath - 251["SweepEdge Opposite"] - 252["SweepEdge Adjacent"] + 248["SweepEdge Opposite"] + 249["SweepEdge Adjacent"] + 250["Sweep Extrusion
[1737, 1770, 5]"] + 251["Sweep Extrusion
[1737, 1770, 5]"] + 252["Sweep Extrusion
[1737, 1770, 5]"] 253["Sweep Extrusion
[1737, 1770, 5]"] 254["Sweep Extrusion
[1737, 1770, 5]"] 255["Sweep Extrusion
[1737, 1770, 5]"] 256["Sweep Extrusion
[1737, 1770, 5]"] - 257["Sweep Extrusion
[1737, 1770, 5]"] - 258["Sweep Extrusion
[1737, 1770, 5]"] - 259["Sweep Extrusion
[1737, 1770, 5]"] - 263["Sweep Extrusion
[2154, 2187, 5]"] - 264[Wall] + 260["Sweep Extrusion
[2154, 2187, 5]"] + 261[Wall] %% face_code_ref=Missing NodePath - 265["Cap Start"] + 262["Cap Start"] %% face_code_ref=Missing NodePath - 266["Cap End"] + 263["Cap End"] %% face_code_ref=Missing NodePath - 267["SweepEdge Opposite"] - 268["SweepEdge Adjacent"] - 272["Sweep Extrusion
[2499, 2532, 5]"] - 273[Wall] + 264["SweepEdge Opposite"] + 265["SweepEdge Adjacent"] + 269["Sweep Extrusion
[2499, 2532, 5]"] + 270[Wall] %% face_code_ref=Missing NodePath - 274["Cap Start"] - 275["Cap End"] + 271["Cap Start"] + 272["Cap End"] %% face_code_ref=Missing NodePath - 276["SweepEdge Opposite"] - 277["SweepEdge Adjacent"] - 281["Sweep Extrusion
[2696, 2730, 5]"] - 282[Wall] + 273["SweepEdge Opposite"] + 274["SweepEdge Adjacent"] + 278["Sweep Extrusion
[2696, 2730, 5]"] + 279[Wall] %% face_code_ref=Missing NodePath - 283["Cap Start"] - 284["Cap End"] + 280["Cap Start"] + 281["Cap End"] + %% face_code_ref=Missing NodePath + 282["SweepEdge Opposite"] + 283["SweepEdge Adjacent"] + 294["Sweep Extrusion
[3595, 3628, 5]"] + 295[Wall] + %% face_code_ref=Missing NodePath + 296[Wall] + %% face_code_ref=Missing NodePath + 297[Wall] %% face_code_ref=Missing NodePath - 285["SweepEdge Opposite"] - 286["SweepEdge Adjacent"] - 297["Sweep Extrusion
[3595, 3628, 5]"] 298[Wall] %% face_code_ref=Missing NodePath 299[Wall] @@ -417,31 +420,31 @@ flowchart LR %% face_code_ref=Missing NodePath 301[Wall] %% face_code_ref=Missing NodePath - 302[Wall] + 302["Cap Start"] %% face_code_ref=Missing NodePath - 303[Wall] + 303["Cap End"] %% face_code_ref=Missing NodePath - 304[Wall] + 304["SweepEdge Opposite"] + 305["SweepEdge Adjacent"] + 306["SweepEdge Opposite"] + 307["SweepEdge Adjacent"] + 308["SweepEdge Opposite"] + 309["SweepEdge Adjacent"] + 310["SweepEdge Opposite"] + 311["SweepEdge Adjacent"] + 312["SweepEdge Opposite"] + 313["SweepEdge Adjacent"] + 314["SweepEdge Opposite"] + 315["SweepEdge Adjacent"] + 316["SweepEdge Opposite"] + 317["SweepEdge Adjacent"] + 328["Sweep Extrusion
[4495, 4528, 5]"] + 329[Wall] %% face_code_ref=Missing NodePath - 305["Cap Start"] + 330[Wall] %% face_code_ref=Missing NodePath - 306["Cap End"] + 331[Wall] %% face_code_ref=Missing NodePath - 307["SweepEdge Opposite"] - 308["SweepEdge Adjacent"] - 309["SweepEdge Opposite"] - 310["SweepEdge Adjacent"] - 311["SweepEdge Opposite"] - 312["SweepEdge Adjacent"] - 313["SweepEdge Opposite"] - 314["SweepEdge Adjacent"] - 315["SweepEdge Opposite"] - 316["SweepEdge Adjacent"] - 317["SweepEdge Opposite"] - 318["SweepEdge Adjacent"] - 319["SweepEdge Opposite"] - 320["SweepEdge Adjacent"] - 331["Sweep Extrusion
[4495, 4528, 5]"] 332[Wall] %% face_code_ref=Missing NodePath 333[Wall] @@ -450,49 +453,43 @@ flowchart LR %% face_code_ref=Missing NodePath 335[Wall] %% face_code_ref=Missing NodePath - 336[Wall] + 336["Cap Start"] %% face_code_ref=Missing NodePath - 337[Wall] + 337["Cap End"] %% face_code_ref=Missing NodePath - 338[Wall] - %% face_code_ref=Missing NodePath - 339["Cap Start"] - %% face_code_ref=Missing NodePath - 340["Cap End"] - %% face_code_ref=Missing NodePath - 341["SweepEdge Opposite"] - 342["SweepEdge Adjacent"] - 343["SweepEdge Opposite"] - 344["SweepEdge Adjacent"] - 345["SweepEdge Opposite"] - 346["SweepEdge Adjacent"] - 347["SweepEdge Opposite"] - 348["SweepEdge Adjacent"] - 349["SweepEdge Opposite"] - 350["SweepEdge Adjacent"] - 351["SweepEdge Opposite"] - 352["SweepEdge Adjacent"] - 353["SweepEdge Opposite"] - 354["SweepEdge Adjacent"] - 355["StartSketchOnFace
[1126, 1163, 1]"] - 356["StartSketchOnFace
[1386, 1423, 1]"] - 357["StartSketchOnFace
[1560, 1597, 1]"] - 358["StartSketchOnFace
[1951, 1988, 1]"] - 359["StartSketchOnFace
[840, 877, 3]"] - 360["StartSketchOnFace
[1202, 1239, 3]"] - 361["StartSketchOnFace
[1627, 1664, 3]"] - 362["StartSketchOnFace
[777, 816, 4]"] - 363["StartSketchOnFace
[1015, 1054, 4]"] - 364["StartSketchOnFace
[1411, 1448, 4]"] - 365["StartSketchOnFace
[1698, 1735, 4]"] - 366["StartSketchOnFace
[2204, 2241, 4]"] - 367["StartSketchOnFace
[887, 924, 5]"] - 368["StartSketchOnFace
[1284, 1321, 5]"] - 369["StartSketchOnFace
[1853, 1892, 5]"] - 370["StartSketchOnFace
[2201, 2238, 5]"] - 371["StartSketchOnFace
[2598, 2637, 5]"] - 372["StartSketchOnFace
[2771, 2810, 5]"] - 373["StartSketchOnFace
[3669, 3708, 5]"] + 338["SweepEdge Opposite"] + 339["SweepEdge Adjacent"] + 340["SweepEdge Opposite"] + 341["SweepEdge Adjacent"] + 342["SweepEdge Opposite"] + 343["SweepEdge Adjacent"] + 344["SweepEdge Opposite"] + 345["SweepEdge Adjacent"] + 346["SweepEdge Opposite"] + 347["SweepEdge Adjacent"] + 348["SweepEdge Opposite"] + 349["SweepEdge Adjacent"] + 350["SweepEdge Opposite"] + 351["SweepEdge Adjacent"] + 352["StartSketchOnFace
[1126, 1163, 1]"] + 353["StartSketchOnFace
[1386, 1423, 1]"] + 354["StartSketchOnFace
[1560, 1597, 1]"] + 355["StartSketchOnFace
[1951, 1988, 1]"] + 356["StartSketchOnFace
[840, 877, 3]"] + 357["StartSketchOnFace
[1202, 1239, 3]"] + 358["StartSketchOnFace
[1627, 1664, 3]"] + 359["StartSketchOnFace
[777, 816, 4]"] + 360["StartSketchOnFace
[1015, 1054, 4]"] + 361["StartSketchOnFace
[1411, 1448, 4]"] + 362["StartSketchOnFace
[1698, 1735, 4]"] + 363["StartSketchOnFace
[2204, 2241, 4]"] + 364["StartSketchOnFace
[887, 924, 5]"] + 365["StartSketchOnFace
[1284, 1321, 5]"] + 366["StartSketchOnFace
[1853, 1892, 5]"] + 367["StartSketchOnFace
[2201, 2238, 5]"] + 368["StartSketchOnFace
[2598, 2637, 5]"] + 369["StartSketchOnFace
[2771, 2810, 5]"] + 370["StartSketchOnFace
[3669, 3708, 5]"] 1 --- 2 2 --- 3 2 --- 4 @@ -555,9 +552,9 @@ flowchart LR 46 <--x 15 15 --- 55 56 <--x 15 + 15 <--x 352 + 15 <--x 354 15 <--x 355 - 15 <--x 357 - 15 <--x 358 17 <--x 24 19 <--x 25 21 <--x 26 @@ -577,7 +574,7 @@ flowchart LR 34 <--x 33 33 --- 37 38 <--x 33 - 33 <--x 356 + 33 <--x 353 34 <--x 36 37 --- 38 37 --- 39 @@ -687,7 +684,7 @@ flowchart LR 97 <--x 90 90 --- 99 100 <--x 90 - 90 <--x 359 + 90 <--x 356 99 --- 100 99 --- 101 99 ---- 102 @@ -705,8 +702,8 @@ flowchart LR 109 <--x 104 104 --- 119 120 <--x 104 - 104 <--x 360 - 104 <--x 361 + 104 <--x 357 + 104 <--x 358 105 <--x 107 108 --- 109 108 --- 110 @@ -809,11 +806,11 @@ flowchart LR 162 <--x 151 151 --- 170 171 <--x 151 - 151 <--x 362 - 151 <--x 363 - 152 --- 205 - 206 <--x 152 - 152 <--x 366 + 151 <--x 359 + 151 <--x 360 + 152 --- 202 + 203 <--x 152 + 152 <--x 363 161 --- 162 161 --- 163 161 ---- 164 @@ -829,7 +826,7 @@ flowchart LR 167 <--x 166 166 --- 179 180 <--x 166 - 166 <--x 364 + 166 <--x 361 167 <--x 169 170 --- 171 170 --- 172 @@ -846,7 +843,7 @@ flowchart LR 176 <--x 175 175 --- 194 195 <--x 175 - 175 <--x 365 + 175 <--x 362 176 <--x 178 179 --- 180 179 --- 181 @@ -874,337 +871,337 @@ flowchart LR 198 --- 200 198 --- 201 200 <--x 199 + 202 --- 203 + 202 --- 204 + 202 ---- 205 + 203 --- 206 + 203 --- 208 + 203 --- 209 205 --- 206 205 --- 207 - 205 ---- 208 + 205 --- 208 + 205 --- 209 + 206 --- 208 206 --- 209 - 206 --- 211 - 206 --- 212 - 208 --- 209 - 208 --- 210 - 208 --- 211 - 208 --- 212 - 209 --- 211 - 209 --- 212 - 211 <--x 210 - 213 --- 214 - 214 --- 215 - 214 --- 216 - 214 --- 217 - 214 --- 218 - 214 --- 219 - 214 --- 220 - 214 ---- 221 + 208 <--x 207 + 210 --- 211 + 211 --- 212 + 211 --- 213 + 211 --- 214 + 211 --- 215 + 211 --- 216 + 211 --- 217 + 211 ---- 218 + 212 --- 219 + 212 x--> 223 + 212 --- 225 + 212 --- 226 + 213 --- 220 + 213 x--> 223 + 213 --- 227 + 213 --- 228 + 214 --- 221 + 214 x--> 223 + 214 --- 229 + 214 --- 230 215 --- 222 - 215 x--> 226 - 215 --- 228 - 215 --- 229 - 216 --- 223 - 216 x--> 226 - 216 --- 230 - 216 --- 231 - 217 --- 224 - 217 x--> 226 - 217 --- 232 - 217 --- 233 + 215 x--> 223 + 215 --- 231 + 215 --- 232 + 218 --- 219 + 218 --- 220 + 218 --- 221 + 218 --- 222 + 218 --- 223 + 218 --- 224 218 --- 225 - 218 x--> 226 - 218 --- 234 - 218 --- 235 - 221 --- 222 - 221 --- 223 - 221 --- 224 - 221 --- 225 - 221 --- 226 - 221 --- 227 - 221 --- 228 + 218 --- 226 + 218 --- 227 + 218 --- 228 + 218 --- 229 + 218 --- 230 + 218 --- 231 + 218 --- 232 + 219 --- 225 + 219 --- 226 + 232 <--x 219 + 226 <--x 220 + 220 --- 227 + 220 --- 228 + 228 <--x 221 221 --- 229 221 --- 230 - 221 --- 231 - 221 --- 232 - 221 --- 233 - 221 --- 234 - 221 --- 235 - 222 --- 228 - 222 --- 229 - 235 <--x 222 - 229 <--x 223 - 223 --- 230 - 223 --- 231 + 230 <--x 222 + 222 --- 231 + 222 --- 232 + 223 --- 257 + 223 <--x 366 + 225 <--x 224 + 227 <--x 224 + 229 <--x 224 231 <--x 224 - 224 --- 232 224 --- 233 - 233 <--x 225 - 225 --- 234 - 225 --- 235 - 226 --- 260 - 226 <--x 369 - 228 <--x 227 - 230 <--x 227 - 232 <--x 227 - 234 <--x 227 - 227 --- 236 - 237 <--x 227 - 227 --- 269 - 227 <--x 367 - 227 <--x 370 + 234 <--x 224 + 224 --- 266 + 224 <--x 364 + 224 <--x 367 + 233 --- 234 + 233 --- 235 + 233 ---- 236 + 234 --- 237 + 234 --- 239 + 234 --- 240 236 --- 237 236 --- 238 - 236 ---- 239 + 236 --- 239 + 236 --- 240 + 237 --- 239 237 --- 240 - 237 --- 242 - 237 --- 243 - 239 --- 240 - 239 --- 241 - 239 --- 242 - 239 --- 243 - 240 --- 242 - 240 --- 243 - 242 <--x 241 - 241 --- 245 - 246 <--x 241 - 241 <--x 368 - 242 <--x 244 + 239 <--x 238 + 238 --- 242 + 243 <--x 238 + 238 <--x 365 + 239 <--x 241 + 242 --- 243 + 242 --- 244 + 242 ---- 245 + 243 --- 246 + 243 --- 248 + 243 --- 249 245 --- 246 245 --- 247 - 245 ---- 248 + 245 --- 248 + 245 --- 249 + 246 --- 248 246 --- 249 - 246 --- 251 - 246 --- 252 - 248 --- 249 - 248 --- 250 - 248 --- 251 - 248 --- 252 - 249 --- 251 - 249 --- 252 - 251 <--x 250 + 248 <--x 247 + 257 --- 258 + 257 --- 259 + 257 ---- 260 + 258 --- 261 + 258 x--> 263 + 258 --- 264 + 258 --- 265 260 --- 261 260 --- 262 - 260 ---- 263 + 260 --- 263 + 260 --- 264 + 260 --- 265 261 --- 264 - 261 x--> 266 - 261 --- 267 - 261 --- 268 - 263 --- 264 - 263 --- 265 - 263 --- 266 - 263 --- 267 - 263 --- 268 - 264 --- 267 - 264 --- 268 - 267 <--x 265 + 261 --- 265 + 264 <--x 262 + 266 --- 267 + 266 --- 268 + 266 ---- 269 + 267 --- 270 + 267 x--> 272 + 267 --- 273 + 267 --- 274 269 --- 270 269 --- 271 - 269 ---- 272 + 269 --- 272 + 269 --- 273 + 269 --- 274 270 --- 273 - 270 x--> 275 - 270 --- 276 - 270 --- 277 - 272 --- 273 - 272 --- 274 - 272 --- 275 - 272 --- 276 - 272 --- 277 - 273 --- 276 - 273 --- 277 - 276 <--x 274 - 274 --- 278 - 274 <--x 371 + 270 --- 274 + 273 <--x 271 + 271 --- 275 + 271 <--x 368 + 275 --- 276 + 275 --- 277 + 275 ---- 278 + 276 --- 279 + 276 x--> 281 + 276 --- 282 + 276 --- 283 278 --- 279 278 --- 280 - 278 ---- 281 + 278 --- 281 + 278 --- 282 + 278 --- 283 279 --- 282 - 279 x--> 284 - 279 --- 285 - 279 --- 286 - 281 --- 282 - 281 --- 283 - 281 --- 284 - 281 --- 285 - 281 --- 286 - 282 --- 285 - 282 --- 286 - 285 <--x 283 - 283 --- 287 - 283 --- 321 - 283 <--x 372 - 283 <--x 373 - 287 --- 288 - 287 --- 289 - 287 --- 290 - 287 --- 291 - 287 --- 292 - 287 --- 293 - 287 --- 294 - 287 --- 295 - 287 --- 296 - 287 ---- 297 + 279 --- 283 + 282 <--x 280 + 280 --- 284 + 280 --- 318 + 280 <--x 369 + 280 <--x 370 + 284 --- 285 + 284 --- 286 + 284 --- 287 + 284 --- 288 + 284 --- 289 + 284 --- 290 + 284 --- 291 + 284 --- 292 + 284 --- 293 + 284 ---- 294 + 285 --- 295 + 285 x--> 303 + 285 --- 304 + 285 --- 305 + 286 --- 296 + 286 x--> 303 + 286 --- 306 + 286 --- 307 + 287 --- 297 + 287 x--> 303 + 287 --- 308 + 287 --- 309 288 --- 298 - 288 x--> 306 - 288 --- 307 - 288 --- 308 + 288 x--> 303 + 288 --- 310 + 288 --- 311 289 --- 299 - 289 x--> 306 - 289 --- 309 - 289 --- 310 + 289 x--> 303 + 289 --- 312 + 289 --- 313 290 --- 300 - 290 x--> 306 - 290 --- 311 - 290 --- 312 + 290 x--> 303 + 290 --- 314 + 290 --- 315 291 --- 301 - 291 x--> 306 - 291 --- 313 - 291 --- 314 - 292 --- 302 - 292 x--> 306 - 292 --- 315 - 292 --- 316 - 293 --- 303 - 293 x--> 306 - 293 --- 317 - 293 --- 318 + 291 x--> 303 + 291 --- 316 + 291 --- 317 + 294 --- 295 + 294 --- 296 + 294 --- 297 + 294 --- 298 + 294 --- 299 + 294 --- 300 + 294 --- 301 + 294 --- 302 + 294 --- 303 294 --- 304 - 294 x--> 306 - 294 --- 319 - 294 --- 320 - 297 --- 298 - 297 --- 299 - 297 --- 300 - 297 --- 301 - 297 --- 302 - 297 --- 303 - 297 --- 304 - 297 --- 305 - 297 --- 306 - 297 --- 307 + 294 --- 305 + 294 --- 306 + 294 --- 307 + 294 --- 308 + 294 --- 309 + 294 --- 310 + 294 --- 311 + 294 --- 312 + 294 --- 313 + 294 --- 314 + 294 --- 315 + 294 --- 316 + 294 --- 317 + 295 --- 304 + 295 --- 305 + 317 <--x 295 + 305 <--x 296 + 296 --- 306 + 296 --- 307 + 307 <--x 297 297 --- 308 297 --- 309 - 297 --- 310 - 297 --- 311 - 297 --- 312 - 297 --- 313 - 297 --- 314 - 297 --- 315 - 297 --- 316 - 297 --- 317 - 297 --- 318 - 297 --- 319 - 297 --- 320 - 298 --- 307 - 298 --- 308 - 320 <--x 298 - 308 <--x 299 - 299 --- 309 - 299 --- 310 - 310 <--x 300 - 300 --- 311 - 300 --- 312 - 312 <--x 301 - 301 --- 313 - 301 --- 314 + 309 <--x 298 + 298 --- 310 + 298 --- 311 + 311 <--x 299 + 299 --- 312 + 299 --- 313 + 313 <--x 300 + 300 --- 314 + 300 --- 315 + 315 <--x 301 + 301 --- 316 + 301 --- 317 + 304 <--x 302 + 306 <--x 302 + 308 <--x 302 + 310 <--x 302 + 312 <--x 302 314 <--x 302 - 302 --- 315 - 302 --- 316 - 316 <--x 303 - 303 --- 317 - 303 --- 318 - 318 <--x 304 - 304 --- 319 - 304 --- 320 - 307 <--x 305 - 309 <--x 305 - 311 <--x 305 - 313 <--x 305 - 315 <--x 305 - 317 <--x 305 - 319 <--x 305 - 321 --- 322 - 321 --- 323 - 321 --- 324 - 321 --- 325 - 321 --- 326 - 321 --- 327 - 321 --- 328 - 321 --- 329 - 321 --- 330 - 321 ---- 331 - 322 --- 338 - 322 x--> 340 - 322 --- 353 - 322 --- 354 - 323 --- 337 - 323 x--> 340 - 323 --- 351 - 323 --- 352 - 324 --- 336 - 324 x--> 340 - 324 --- 349 - 324 --- 350 - 325 --- 335 - 325 x--> 340 - 325 --- 347 - 325 --- 348 - 326 --- 334 - 326 x--> 340 - 326 --- 345 - 326 --- 346 - 327 --- 333 - 327 x--> 340 - 327 --- 343 - 327 --- 344 + 316 <--x 302 + 318 --- 319 + 318 --- 320 + 318 --- 321 + 318 --- 322 + 318 --- 323 + 318 --- 324 + 318 --- 325 + 318 --- 326 + 318 --- 327 + 318 ---- 328 + 319 --- 335 + 319 x--> 337 + 319 --- 350 + 319 --- 351 + 320 --- 334 + 320 x--> 337 + 320 --- 348 + 320 --- 349 + 321 --- 333 + 321 x--> 337 + 321 --- 346 + 321 --- 347 + 322 --- 332 + 322 x--> 337 + 322 --- 344 + 322 --- 345 + 323 --- 331 + 323 x--> 337 + 323 --- 342 + 323 --- 343 + 324 --- 330 + 324 x--> 337 + 324 --- 340 + 324 --- 341 + 325 --- 329 + 325 x--> 337 + 325 --- 338 + 325 --- 339 + 328 --- 329 + 328 --- 330 + 328 --- 331 328 --- 332 - 328 x--> 340 + 328 --- 333 + 328 --- 334 + 328 --- 335 + 328 --- 336 + 328 --- 337 + 328 --- 338 + 328 --- 339 + 328 --- 340 328 --- 341 328 --- 342 - 331 --- 332 - 331 --- 333 - 331 --- 334 - 331 --- 335 - 331 --- 336 - 331 --- 337 - 331 --- 338 - 331 --- 339 - 331 --- 340 - 331 --- 341 + 328 --- 343 + 328 --- 344 + 328 --- 345 + 328 --- 346 + 328 --- 347 + 328 --- 348 + 328 --- 349 + 328 --- 350 + 328 --- 351 + 329 --- 338 + 329 --- 339 + 341 <--x 329 + 330 --- 340 + 330 --- 341 + 343 <--x 330 331 --- 342 331 --- 343 - 331 --- 344 - 331 --- 345 - 331 --- 346 - 331 --- 347 - 331 --- 348 - 331 --- 349 - 331 --- 350 - 331 --- 351 - 331 --- 352 - 331 --- 353 - 331 --- 354 - 332 --- 341 - 332 --- 342 - 344 <--x 332 - 333 --- 343 - 333 --- 344 - 346 <--x 333 - 334 --- 345 - 334 --- 346 - 348 <--x 334 - 335 --- 347 - 335 --- 348 - 350 <--x 335 - 336 --- 349 - 336 --- 350 - 352 <--x 336 - 337 --- 351 - 337 --- 352 - 354 <--x 337 - 342 <--x 338 - 338 --- 353 - 338 --- 354 - 341 <--x 339 - 343 <--x 339 - 345 <--x 339 - 347 <--x 339 - 349 <--x 339 - 351 <--x 339 - 353 <--x 339 + 345 <--x 331 + 332 --- 344 + 332 --- 345 + 347 <--x 332 + 333 --- 346 + 333 --- 347 + 349 <--x 333 + 334 --- 348 + 334 --- 349 + 351 <--x 334 + 339 <--x 335 + 335 --- 350 + 335 --- 351 + 338 <--x 336 + 340 <--x 336 + 342 <--x 336 + 344 <--x 336 + 346 <--x 336 + 348 <--x 336 + 350 <--x 336 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap index 986372dec..adec9fa53 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap @@ -1253,33 +1253,10 @@ description: Operations executed multi-axis-robot.kcl "name": "extrude", "unlabeledArg": { "value": { - "type": "Array", - "value": [ - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - }, - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - }, - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - }, - { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } - } - ] + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } }, "sourceRange": [] }, diff --git a/rust/kcl-lib/tests/subtract_regression12/rendered_model.png b/rust/kcl-lib/tests/subtract_regression12/rendered_model.png index 5aae217e389d3d0ffdf432404087fb0357d91ca7..c541dac7c7aa7f094e673795d0a99d9ce484697a 100644 GIT binary patch delta 14583 zcmaKT3tUrIw*G;j)MqL_P>~=SrBiQq}EpMj69{30Fr~+ zR;i^ZX-nHEbjE3&(UFLZ1mqDE5MP+u76HK|1O=5>LVyJFIRCZw339;k-=72u>@-no0cqe7SD!e#X*XuHsuzrlmasi+8+S`N`)Z^?bxsB;&6ZBEykANcZ9 zp5qHMt<96G0{HKFWt8<*$~|eLC+%Hu@$u<1N& zx9*7zTO)QP;maVyzcl)FQUkNzf9PHRq5thv=ld-=>XsqIC63l?6!br@p*zzx?inh^ zs_M+8hjWMfmS=W`c=&%NbX)+#gn2ODFYmZmqh;(`lRIo;kw|*HG5ucSgCwyzDMcD> zT3=k46~i%x&(f!jF+1P#n$Tr&rZvoUy$8ilxw=uJHK&Uy>7!gJohf!a5O-*|crf#F zER9EN=s96Qfnnu~b4v1sj-oKVR{zuYTWptnY%aJ-HQJy#H~sC%zQM?B_wzF{Vgy$M zikn+nb`}0l5V8GArwzamjOzLA#2)x!=YP;~^BZ?@x#ZYk*hUT-f)ddEM-Le)`>d6e zP4DkmLNjJsP0tN0e*t}0zB0#RK3X$vX(pX1jGT`fvqf1CiYz=S{9gWSzc&r%{jKNA zTW?e>QfJ3RCyH9AMT-{2<2qbtOdIEn?6lT)!J=8OxluWiSelqaWlj@OQi!W##1jw> zs*mCHq5A!7bp8?ckyE3}jiJcG=#I{s%-Q9dt_lG^t*IK$LhJy(pq>haajUOXm|jts zBBRuK%a%~^Hd-k3&BTK^`WOdgyQj5#vo=_cK9IyhC@z^27W%43&e4yAc|Kt_@estY z)u!pQ3;f{HM}tW@G-PK#^YgOuOGyZ{$sGrCtw+}QLvh- z4mNM8;@j50d3^OHd-N`^mZmEZ4_a+!t=Lv8mOpbJkT81$w!hJS!I_6C5)U;kDtk+! zzGg~nSx5GDwX=1RZ)VQoE-FbvlyBGGU>Fv?XYzYc%Y1&QG`J9s;8fWnoTe}aV z!(~de)qos&%irQQ3W?A0p-z zG%JSJkl9R3x3B(pjWX@`3u*V16OAb+%##m4hYpqbh4*jp8Q4JWgA5U=C0ABSHbk4m zn>_rdh6RaoB#XmrArQ%*2=nClFY@^?TLi8qvKEP^Roy7RdBcF{>wZ29(n%d`ekzyT zxw*75T(a)+Y*^WMN=9<(sbp8(0<~na^4^DD>iPiY=TN=sTcJaAuAXPF*V<;NtYxYj z2q0&asVfjR3TITwd{6r9sg3NejqC~wPxY9!Ur1>lW@!!|3hv$sX70B`uGvClfEA9j zLgQbL)X@=Ce>n#%E9H9!XuYBgP+78l!e?-{U+Z`=Jn!~ z-|x8iL1sQPobRstKJxMRB@e#ZR+1k>&73(?0x)81>~K~mNIiysfD;=VZspOzRuT@9 zlYyyADXBS`&czr;$3SRPWEs(?q#8l~E0$z3&lL|VbKI)F-;!&o&{~5jjs7K#D}||M zwOTn4E7}-8R)a(}5aUNGhDsAV4?nl$K*YY zl%zdSx{H!_CQA=ln>$LIJLrXBL3H3~C`KH^6Em`~S3S%G*QrSTvd9DSxXJ}=Qtg3< zUE&;&+3@rM?~r1z8F)kc1x9}(ZEpl?s&(`dQsNc9ne>XVprb;^sxZAu9+M~c5e^Lv z5i0Px_u4CGDj%PD7htPHr_1n6EA&i@k-hwn1+@N2jD+g5w3aLvi(EDA)f**eGKEHX zCV-&|e8d)|IEY3nRL^G&d>0Z5kA9G!n^AS?k_!iPvd0y}1jyeYi@x?q`LJBIhJsDg z^*`r3K8QA{_Cs2(C409yfnR8}ky-?=^wJj0<5+OK?YhD?l~VM-sBq075sqopeW65V zJ+&a5SPs3s@ioH_aU(xawmWh5dFCRl63m~3MjwEL!@xuUT;Vi8c06ALM}+F7SZJu; zlJ=Qkq>|wdd8zS=SK$oV3;$UDYHMj?x!PLJr|7{5y0*9XWu_6|0AT}Af(b)=wUjR| zPKgC}!wY*iE-qW-XctY^%@rHx7S`WO*4E2@^$%fKmu=Wo{`gGgi|lh$0NQ{SZ-wf$ zuY35vh*cg=Xi)-8eMKk;6yf#BniM}O@ZJZr8^v^RT3Xt1sAHF8F){OLQO)lfxAUsR z_6D(W;FRbDvjPtV>;YX4BucT2P`T;w#PjvjmVo0h$Ec$<8V#@yKiaiwMfv3wR6P3Q zYfhs2a6#N%0)bK3D1~z;QI39p#)HC>4l9H&PodED5Z6$zEpQey5XoLY_PbNUC9c%k zwQHkeViMxxt6-zDu7571MfjEJoeY)jhU)&KaQc-T>Rgu4Q4tM^_!1@}>`n#l@CXa~ z@y?xjlw2+keK#>t*4e4kQB=z!fnaZZe16!rs`Fm;w3=-ll^g_Zvu?8wZ79ND&Q8(JPVH~L}pU$c5OP3gdn83zyY z^77A~eW_P@;X*C!9DbXEUw1K_I~4qx)f;#u)W35;CGZr%=GJQ9gwdux*!v3TDx{+u zFNEL7w>Re-rz#9nk$sLKFyrwN`3ii?X&dM|cSl5cWT7DRTuANdJ{E0*fKfxr1BK!BP=`!Tjdv2StO8!Bv* zRvVR;MtCkaVXc4X93ij_`Q`L@qkhwp1J>rv9*h_6_G-wwoLoA+IrqVSEYCz zS3}OjQLy<#FCU<%wb()smtASrnn0y|GYJIMYr5-8&|XL?gDjQS-ZF0BmW?y)E7(A| zRqp}rp+E^#Dr5#8coOVvs35zoA>(H*+*?FW(LJ3`Vv3@sc-ndMHep6wbee3 zcmagYxr&PV8?Xh_-$Q~wE$h8_#BZH3vo)pjge~HH76h#?fl=aps7gXiH9Mgf+GK6I za_?BC(VpB5Z+2!H?6H467}E}b0MG!H1#nFC6Ah7%ZCLe;z}6}|hNa=YpXi&k-qJ(N z8Q8j|OXb+(7*R0ab`_L;9ulOVMG_Q`m!0~{Nr`@T{?*xe2DjdF)0>Wy%^kzXo*+JK zRo!DS9K~nho3R(;#%K$ga@7C!z*JIICYMNzOJ?nlfhylL8GHjfri&qLBF#zST(8&? z7Xnqb`+g?mHa42@a=<1-1k_=&wf7-;B)^;#)SeU!z5pGJSy4{`f8E@E}&9`w}`< zv`X5uh{6CBf+Cr3miCz~`BwrM8Pplp`v?e#Q2wUh_*bu})UW9Ox-RGw(XdR^X3VC8 z7(sE0bkzUId(c%=eKV`8H}+PTBMW3dR(jJ#rcSk~6}6<4-#2w=A0u5$=~7DfumCyC+JK|%K`t#ohMV0UxT z{|8R|!t-jd`xZje3J)NOy4eFx3yo;xqc0;f>w-Fdje!bf8%rv%v#PC(6wG655ZmX5 zOZ#OhS&fnz1u93XMmIx~Q73X3ZMS{wvzW*nYB5@iFvd}~pU`umaqk!u%hs)!Ps?qf zbqtx02c_g364~0&LZ$;v*iwnRVzfgsDc?t=F8lDq4=sSFTcr0xq#r@dq8_t-urC?* z(`VQ884)mGpN7}LPURrF`2#ma!oIDnnX%0{)6i0_#Lb+DO0AcjlKA2Il?F?K%0oWI_rpbF{%z>kS8{nURk|b zr+}YZz!1NO-*0MeZu8c(dE@6z%cfu-;4Gyq(u7Xe@8qY=r&NR6RD<_qw=OJPiEdkm z@&Tl)%v^IppHnk72aL?6Yj}Iq+SY_s6#{{S9qpFb7kX$+Aur68@ zF0P@MUrpY>No+Wk3`$9;wl%uuZ(>^%OEMSutx*j*(R`KB0l!l1(tsJ<3Dg{mt z)h`qGFB?8YTMlU}`@nn;WG>42@9!q3Ujw;FR1E*aG0=>AHq-}dZ+fYWUOYn?=u0Hu zBJApZjC5OXpW|gpF>+dQ9h>}q?54R!CFM%;aHG%lj*jK1x-u=Kqttd|T)75y@8q}d zhmeBs_5Um;wsLs4=Fthwlnm|g32hsyRn9XL$+PsaN<(Z6a*k&P5lb2(dm2D+`#09a zcErU1tW2-qb~k*YQ99`XQx7p)xs7RqVyOf~7SF1hWl$Q;{GGAKw;RI*H-Gu|^66wj%rDe<2PkeQl_b1NF(yjCuziZK$qV)QqXt(C1vYnhhv?}Fii!}zSfS36Q25$Z1soT z^YIs^5?*1gjx za=NWd8CesLTlcwlJE81Y%ASEx9FQ0%3TnGa$Kmx3h%=~`LHBsv6GV%mdOI0OcSqeip7J~@ zmlTmZodN296Vx<0FCMz5MEHPqczoE38pkbLR8(|u^sGT5?8ef1E+F{uIQklY7U$5; z{*N}4)CGUu5~n(WGnUIu9n#{IYq|Tv1Owl>V>f|)mr3#dxYe6FPBX6*7uL)2285&$ z?QZ(D=KdQRH{{SydJ*5u+8=;>ki0fDyRK+Hz9a;fd=_2wbHdT z%pYs6$^23Pc|Jv$HW$qxv&ADy$uw3gWuhULXY*|I`!bixIke!RKhy7zLlrD(h^?cd z37a)U7D#SQaHl{STjcFci2bvIjV>b6Al4Jm5TW7a88*iaY^Jc7!w`vA@nBo!GLlvp zYs_2CS7hgFf0I+`OPhS&hdBp!jBdIw#lv3$gCYKSo zQ86zAsspW)!g-^kqltEBAqmWh2j#eUxJdMXb4q2MU0^P$OF$rl6h-CtN&r>tB01Zb z`VvJtW#9z`BdR_nZB@FIKp`&y1r)R|8iYMk2S3Ajf}yYA;ZRGQI}04oT$gQ^V^#JK zdz0(DlPOSM3{%S&^QDG^DTaeS0N;Rz@eK?g+xtgh;qQX7L8N-pto52n-K`7mO$epg zQcRJuz-7@{x-sF7CK`4-8m2X&&Kql3HA}vDhPw*;T?%O=oYz?((CMX*nNL`!Uh#^% z|A|*D4#bdhW#SNqB9Bo5L7^$ufzMi6bsNZl$QDp_>()&E2i6{C;*(+_u<6`QFjtzN zfsO@%j$5YWXB<(`;t|I%%DH*!ECj}<8b)eJo2b${E(O(h%PwL^b_W(hY zyaKm?)W?jYUiYevJ|q7H?G5%wAQXeW4f&V;4I@>Zm{>n4_+8s13U&w0m~R&H2S7T( zUWfYbVOa5iqvDyW^dgcSjc&}Jf9HJ5;4{ATq(SJ<($MXAIDuomdt|hVA>D{|H z$EQEycwf~_Trjf=B|Dr+pz}z}ux{Wlt$pu{hu(LQ{3Oe(fl|hJHp>cYSJAK^Tez{t zZ{4hnE`>^fRrz99!LB`fj$qUUDeKk^6}I*P(^Xa;;;5Nct~@TcgX62?c-RB|{6=7c z3OX-d28Is=7;ARap$bNr9wg$R{b87+v_UNh!x-fe9F@c(t1(*%_3Oa;@!z|_o!YZd zMj1m3(f`fh44#fO0>~Ahv7Ao83NBsz%`bQgQ9?I(PzY}n4h={s8zFq=Wsr_07N$E3 z=@6jg>)dq+r`%L&{|i6;1tMXAL=?VHKYKJypd^Tq$y3msWBY|#B372pA$amvR-!zZ zIb59KamzaeAyF~+ov5fo?j!9Y$1Z9!VF%D<&0!N_F*hFz>$ft2fXj&h>j|Jy5vc|` zLRV7DIzI#hyAU!qBAXE_pn0u;(@F<%K;NkS0i7shObIZirckSd;Q}}3ur1W8pX316 zdaC@FEfsT~RB|@ZT(CL2t!^6wnDNt0UxyD~Tu{0QtW9-$Rj@2hj&Nlc1BBEu=Fg;% zZ67=?`%CSdKh#e%5hsB(HZucfLmj2TLxtH7q-;;esoxU@ebD;G(R@rN0!-N0Tkk=t z+v0Z0eAOFrDi_hr+mL5iBc)?`;>=F&tkUyE4peXC*iJ>R1ZY3_`3+1OD#&5X?!+qR zA}P&HTNBy)AoBAw1*zYGE;l+IgK!0mp;-Bx=5GE~&M1XGN@NWjEw&@Te!jMsLiXju z7=1ctXbm%(q2E1yCNKX~aL=CzPtTEjhe<~!c6ZEViyZZcnZ}hmH;^VYEwb}H;B^&o z(0M!VhdVy9-a`?!Cfo)Ec=uh|wcBO>+t2)$O;TenEY z)J=QF$0SNF&+DO`zG_Q|?6F(V?V3VK`c|l_>;O4km`PadFm4T-A@6&CR`) z1da(T4q;W$NR~#}`bat#YE%m08q}WhpH@_O zI8_X8&}`-$U-To^u`YJo6=uy1EF}15){9S}v6hR*henS13?EaMLIEu`PP*bXtQN|2 zbuW%OArvb6nYLAINftZo!a28qXjC&^)#$Kc&N zW6O=3Da%fh?D&mxYF%*e#88_HBlT_i6I@qw)|0=ls zxhj?paNct-8>LUD^2x-L0-=NXdZ_+1lUh8S-@6w422q39_e^ypvY;p#bvi_ZwLyl8lNgfHvVwrr_dK-R*4YZ;`TLV2*7xsUeXY*s2=h z$C>JZD0(Prd(zyhlRozUqwsR*Kq3hi+Ihvabeyq_*wd@*Rgb&N`Wse;qq0+O?y}_H0`~eA(KFwUM2YI@%uC(Cg{E9q z)^iZjtbx%G`YOWCm>!0RzQxi?%2^rL=aabCd&Li(IEyn1Xk79`U_?aiv(qpcvyS0s zQo}UvO(@lmEReE^0&$8~f_G=*yK&6&R1taV0VL6~9S^gm0aZ9=+1tSQu(l@IL37iC zp296a|4qp2T9(2>SeEy8RlYpR_qGqxbr>`VJ*2OriKfgwzxdU$a}BDRa0IC0S7D~( z2k5ofz|x}+gs(yV986W1Q^70~t#ahRUQoeCHT~0P9LiUMf?6jb!zpd7gk*=iNW)%^ zGC(2EtQg0I(WwiY$=KaHbHkY$n>MVG+ExROMUQHR@)N;nLkkcGEO$WE3Yr<;c_O)= zfxDX((I(M7+%lTa)$n%y;MuD~Uq*B?-WM4C=k- zA04NFpmfB*KZ*sY(upAFId{T1GcFmHn?|k-E7CES{&gxiYv=ru$FwRittfC8@N-$) z!ufRLcX)e{)9XyTl^1ON%w1%;(r0%a!xN7 zbX1ck>_Qw5yRfn-f^Zv`4tHLB+)GTi)|Nh|PkF`B<;T#;?z&YX(<*W2oo#XUJ!38_ z7-{6zPtkqQs@0Z%sz?6W=pw0&*tdyn=#0bM{KPzj4LI1QicRYHR9u82&8@oT||b|+LyWr|$6GeGXdz(JVj_f>P;$Nce&_PT7Y@Kk?R zsTpacu%$BJ1u3u%c8hHEuQ@>D2C>J57)^(pnbo91s!>y;%V#{Pj6iwP{_Are(XFvn zm`!X#QE>Cy-+C7bUFWS6yFi&@qH{_f4;Mj`u{&;PH|8}d0n$5B>36!uk|?P``fz{0k*l9Cc&{6PK}NGV8LAYelm56MK4Ap#n`r(fhh<9k#N6ZTojoEzr_U-Qpkb7r9!se#+ z07L39tzjQ(z6*T>x&$xmIbqh4%~*1|(8PpJcqns;ErV5f$E0Ei^7A>m>O`{U+EykQ zK}qvqhvs8ghD87fNRcUNj7nX6ELu3hlr$S0Ja)Q~j%omY01BLsRKSqr7E%K==X92N z_NZ+))%!Tax_};0XP`dIxtYM!<8|(V(tK;FDjnr{2{cgoBmc<9JBDW*rV2-wY8_T2 z%EAWw#IE%;^B)rrUXRwqYtPniP;cAU1#-B622GZ}zHeRUt+jpkPcw^fHr6b!Sb$Q4 zi{&QlwQ-m&uAD?-{&V89Z@0Cz_2Q*4`%V1niEXdq;q!+6b*eB@0Yle>2GuPxv&VQv z?SzB^jpMI46F~^hbZ9Hn{Nq8vz~V6|aH#OQYGI=T3wIw8ILkrbB)1W;31p_`ShO$& zB-2H>dXrDMF|-Cg!`;x;``8zaJ*!|u@v0Nc=}|1#B9`9~*?$(9=k zGI^nOcyj@-W?se?)P94E*hxbvWhbB$FRbkt)b1Z&*a}jMvF{o|ZYRPjVBB4V zBheWs4KtQHlci3S2VWN)0JB7n+F#bPQ1DvcC*uPg=teS`_j_xN-lDFt5zX4Zav92S z?nTB2YlW4|NY|Nl9OCeX8km zC|~8nS=daX+50mhHSsfRH}ZPc>FsP-6V_@1NgYtk4YelrJC;T$5iTf0LO_x>W%OWD z4);_e*I}hnERXq?!D22m4_sa3w4T+fZ_`BY}*OQD%a^ zA2b~@-%ftIRb-Yx2?*x=9n%>{+K$Bf-|=ZFdufiHGO}YG@>eQi{Aq_)M=XgGd<`~$ zhs)EuKo}+v8j036f%SEn96fqoi@~cmLiF=J!#gHi(E+! ubIH49ZBrMxgca>~eenFTs``13S#J%hvYFw`>lFMKw&~5+3SNEZ!2bgdSx>zH delta 14577 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 Date: Fri, 27 Jun 2025 13:29:27 -0400 Subject: [PATCH 19/34] Update output to match main (#7630) --- .../multi-axis-robot/artifact_commands.snap | 168 +++ .../artifact_graph_flowchart.snap.md | 963 +++++++++--------- .../kcl_samples/multi-axis-robot/ops.snap | 31 +- 3 files changed, 678 insertions(+), 484 deletions(-) diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap index 07c2c5abf..0406a627f 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_commands.snap @@ -2546,6 +2546,174 @@ description: Artifact commands multi-axis-robot.kcl "planar_normal": null } }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 3.8099999999999996, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_adjacency_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 3.8099999999999996, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_adjacency_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 3.8099999999999996, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_adjacency_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": null + } + }, { "cmdId": "[uuid]", "range": [], diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md index 279c0f1b3..7d757975e 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/artifact_graph_flowchart.snap.md @@ -92,68 +92,68 @@ flowchart LR 195["Segment
[1741, 1911, 4]"] 196[Solid2d] end - subgraph path202 [Path] - 202["Path
[2247, 2400, 4]"] - 203["Segment
[2247, 2400, 4]"] - 204[Solid2d] + subgraph path205 [Path] + 205["Path
[2247, 2400, 4]"] + 206["Segment
[2247, 2400, 4]"] + 207[Solid2d] end - subgraph path211 [Path] - 211["Path
[289, 478, 5]"] - 212["Segment
[484, 570, 5]"] - 213["Segment
[576, 630, 5]"] - 214["Segment
[636, 722, 5]"] - 215["Segment
[728, 798, 5]"] - 216["Segment
[804, 811, 5]"] - 217[Solid2d] + subgraph path214 [Path] + 214["Path
[289, 478, 5]"] + 215["Segment
[484, 570, 5]"] + 216["Segment
[576, 630, 5]"] + 217["Segment
[636, 722, 5]"] + 218["Segment
[728, 798, 5]"] + 219["Segment
[804, 811, 5]"] + 220[Solid2d] end - subgraph path233 [Path] - 233["Path
[930, 1117, 5]"] - 234["Segment
[930, 1117, 5]"] - 235[Solid2d] + subgraph path236 [Path] + 236["Path
[930, 1117, 5]"] + 237["Segment
[930, 1117, 5]"] + 238[Solid2d] end - subgraph path242 [Path] - 242["Path
[1327, 1494, 5]"] - 243["Segment
[1327, 1494, 5]"] - 244[Solid2d] + subgraph path245 [Path] + 245["Path
[1327, 1494, 5]"] + 246["Segment
[1327, 1494, 5]"] + 247[Solid2d] end - subgraph path257 [Path] - 257["Path
[1898, 2140, 5]"] - 258["Segment
[1898, 2140, 5]"] - 259[Solid2d] + subgraph path260 [Path] + 260["Path
[1898, 2140, 5]"] + 261["Segment
[1898, 2140, 5]"] + 262[Solid2d] end - subgraph path266 [Path] - 266["Path
[2244, 2484, 5]"] - 267["Segment
[2244, 2484, 5]"] - 268[Solid2d] + subgraph path269 [Path] + 269["Path
[2244, 2484, 5]"] + 270["Segment
[2244, 2484, 5]"] + 271[Solid2d] end - subgraph path275 [Path] - 275["Path
[2643, 2681, 5]"] - 276["Segment
[2643, 2681, 5]"] - 277[Solid2d] + subgraph path278 [Path] + 278["Path
[2643, 2681, 5]"] + 279["Segment
[2643, 2681, 5]"] + 280[Solid2d] end - subgraph path284 [Path] - 284["Path
[2816, 2997, 5]"] - 285["Segment
[3003, 3071, 5]"] - 286["Segment
[3077, 3187, 5]"] - 287["Segment
[3193, 3261, 5]"] - 288["Segment
[3267, 3343, 5]"] - 289["Segment
[3349, 3425, 5]"] - 290["Segment
[3431, 3505, 5]"] - 291["Segment
[3511, 3567, 5]"] - 292["Segment
[3573, 3580, 5]"] - 293[Solid2d] + subgraph path287 [Path] + 287["Path
[2816, 2997, 5]"] + 288["Segment
[3003, 3071, 5]"] + 289["Segment
[3077, 3187, 5]"] + 290["Segment
[3193, 3261, 5]"] + 291["Segment
[3267, 3343, 5]"] + 292["Segment
[3349, 3425, 5]"] + 293["Segment
[3431, 3505, 5]"] + 294["Segment
[3511, 3567, 5]"] + 295["Segment
[3573, 3580, 5]"] + 296[Solid2d] end - subgraph path318 [Path] - 318["Path
[3714, 3895, 5]"] - 319["Segment
[3901, 3971, 5]"] - 320["Segment
[3977, 4092, 5]"] - 321["Segment
[4098, 4168, 5]"] - 322["Segment
[4174, 4252, 5]"] - 323["Segment
[4258, 4336, 5]"] - 324["Segment
[4342, 4418, 5]"] - 325["Segment
[4424, 4480, 5]"] - 326["Segment
[4486, 4493, 5]"] - 327[Solid2d] + subgraph path321 [Path] + 321["Path
[3714, 3895, 5]"] + 322["Segment
[3901, 3971, 5]"] + 323["Segment
[3977, 4092, 5]"] + 324["Segment
[4098, 4168, 5]"] + 325["Segment
[4174, 4252, 5]"] + 326["Segment
[4258, 4336, 5]"] + 327["Segment
[4342, 4418, 5]"] + 328["Segment
[4424, 4480, 5]"] + 329["Segment
[4486, 4493, 5]"] + 330[Solid2d] end 1["Plane
[219, 236, 1]"] 9["Sweep Extrusion
[742, 789, 1]"] @@ -332,86 +332,83 @@ flowchart LR %% face_code_ref=Missing NodePath 200["SweepEdge Opposite"] 201["SweepEdge Adjacent"] - 205["Sweep Extrusion
[2402, 2432, 4]"] - 206[Wall] + 202["Sweep Extrusion
[2157, 2190, 4]"] + 203["Sweep Extrusion
[2157, 2190, 4]"] + 204["Sweep Extrusion
[2157, 2190, 4]"] + 208["Sweep Extrusion
[2402, 2432, 4]"] + 209[Wall] %% face_code_ref=Missing NodePath - 207["Cap End"] - %% face_code_ref=Missing NodePath - 208["SweepEdge Opposite"] - 209["SweepEdge Adjacent"] - 210["Plane
[260, 283, 5]"] - 218["Sweep Extrusion
[825, 873, 5]"] - 219[Wall] - %% face_code_ref=Missing NodePath - 220[Wall] - %% face_code_ref=Missing NodePath - 221[Wall] + 210["Cap End"] %% face_code_ref=Missing NodePath + 211["SweepEdge Opposite"] + 212["SweepEdge Adjacent"] + 213["Plane
[260, 283, 5]"] + 221["Sweep Extrusion
[825, 873, 5]"] 222[Wall] %% face_code_ref=Missing NodePath - 223["Cap Start"] - 224["Cap End"] - 225["SweepEdge Opposite"] - 226["SweepEdge Adjacent"] - 227["SweepEdge Opposite"] - 228["SweepEdge Adjacent"] - 229["SweepEdge Opposite"] - 230["SweepEdge Adjacent"] - 231["SweepEdge Opposite"] - 232["SweepEdge Adjacent"] - 236["Sweep Extrusion
[1132, 1165, 5]"] - 237[Wall] + 223[Wall] %% face_code_ref=Missing NodePath - 238["Cap End"] - 239["SweepEdge Opposite"] - 240["SweepEdge Adjacent"] - 241["EdgeCut Fillet
[1171, 1233, 5]"] - 245["Sweep Extrusion
[1737, 1770, 5]"] - 246[Wall] + 224[Wall] %% face_code_ref=Missing NodePath - 247["Cap End"] + 225[Wall] %% face_code_ref=Missing NodePath - 248["SweepEdge Opposite"] - 249["SweepEdge Adjacent"] - 250["Sweep Extrusion
[1737, 1770, 5]"] - 251["Sweep Extrusion
[1737, 1770, 5]"] - 252["Sweep Extrusion
[1737, 1770, 5]"] + 226["Cap Start"] + 227["Cap End"] + 228["SweepEdge Opposite"] + 229["SweepEdge Adjacent"] + 230["SweepEdge Opposite"] + 231["SweepEdge Adjacent"] + 232["SweepEdge Opposite"] + 233["SweepEdge Adjacent"] + 234["SweepEdge Opposite"] + 235["SweepEdge Adjacent"] + 239["Sweep Extrusion
[1132, 1165, 5]"] + 240[Wall] + %% face_code_ref=Missing NodePath + 241["Cap End"] + 242["SweepEdge Opposite"] + 243["SweepEdge Adjacent"] + 244["EdgeCut Fillet
[1171, 1233, 5]"] + 248["Sweep Extrusion
[1737, 1770, 5]"] + 249[Wall] + %% face_code_ref=Missing NodePath + 250["Cap End"] + %% face_code_ref=Missing NodePath + 251["SweepEdge Opposite"] + 252["SweepEdge Adjacent"] 253["Sweep Extrusion
[1737, 1770, 5]"] 254["Sweep Extrusion
[1737, 1770, 5]"] 255["Sweep Extrusion
[1737, 1770, 5]"] 256["Sweep Extrusion
[1737, 1770, 5]"] - 260["Sweep Extrusion
[2154, 2187, 5]"] - 261[Wall] + 257["Sweep Extrusion
[1737, 1770, 5]"] + 258["Sweep Extrusion
[1737, 1770, 5]"] + 259["Sweep Extrusion
[1737, 1770, 5]"] + 263["Sweep Extrusion
[2154, 2187, 5]"] + 264[Wall] %% face_code_ref=Missing NodePath - 262["Cap Start"] + 265["Cap Start"] %% face_code_ref=Missing NodePath - 263["Cap End"] + 266["Cap End"] %% face_code_ref=Missing NodePath - 264["SweepEdge Opposite"] - 265["SweepEdge Adjacent"] - 269["Sweep Extrusion
[2499, 2532, 5]"] - 270[Wall] + 267["SweepEdge Opposite"] + 268["SweepEdge Adjacent"] + 272["Sweep Extrusion
[2499, 2532, 5]"] + 273[Wall] %% face_code_ref=Missing NodePath - 271["Cap Start"] - 272["Cap End"] + 274["Cap Start"] + 275["Cap End"] %% face_code_ref=Missing NodePath - 273["SweepEdge Opposite"] - 274["SweepEdge Adjacent"] - 278["Sweep Extrusion
[2696, 2730, 5]"] - 279[Wall] + 276["SweepEdge Opposite"] + 277["SweepEdge Adjacent"] + 281["Sweep Extrusion
[2696, 2730, 5]"] + 282[Wall] %% face_code_ref=Missing NodePath - 280["Cap Start"] - 281["Cap End"] - %% face_code_ref=Missing NodePath - 282["SweepEdge Opposite"] - 283["SweepEdge Adjacent"] - 294["Sweep Extrusion
[3595, 3628, 5]"] - 295[Wall] - %% face_code_ref=Missing NodePath - 296[Wall] - %% face_code_ref=Missing NodePath - 297[Wall] + 283["Cap Start"] + 284["Cap End"] %% face_code_ref=Missing NodePath + 285["SweepEdge Opposite"] + 286["SweepEdge Adjacent"] + 297["Sweep Extrusion
[3595, 3628, 5]"] 298[Wall] %% face_code_ref=Missing NodePath 299[Wall] @@ -420,31 +417,31 @@ flowchart LR %% face_code_ref=Missing NodePath 301[Wall] %% face_code_ref=Missing NodePath - 302["Cap Start"] + 302[Wall] %% face_code_ref=Missing NodePath - 303["Cap End"] + 303[Wall] %% face_code_ref=Missing NodePath - 304["SweepEdge Opposite"] - 305["SweepEdge Adjacent"] - 306["SweepEdge Opposite"] - 307["SweepEdge Adjacent"] - 308["SweepEdge Opposite"] - 309["SweepEdge Adjacent"] - 310["SweepEdge Opposite"] - 311["SweepEdge Adjacent"] - 312["SweepEdge Opposite"] - 313["SweepEdge Adjacent"] - 314["SweepEdge Opposite"] - 315["SweepEdge Adjacent"] - 316["SweepEdge Opposite"] - 317["SweepEdge Adjacent"] - 328["Sweep Extrusion
[4495, 4528, 5]"] - 329[Wall] + 304[Wall] %% face_code_ref=Missing NodePath - 330[Wall] + 305["Cap Start"] %% face_code_ref=Missing NodePath - 331[Wall] + 306["Cap End"] %% face_code_ref=Missing NodePath + 307["SweepEdge Opposite"] + 308["SweepEdge Adjacent"] + 309["SweepEdge Opposite"] + 310["SweepEdge Adjacent"] + 311["SweepEdge Opposite"] + 312["SweepEdge Adjacent"] + 313["SweepEdge Opposite"] + 314["SweepEdge Adjacent"] + 315["SweepEdge Opposite"] + 316["SweepEdge Adjacent"] + 317["SweepEdge Opposite"] + 318["SweepEdge Adjacent"] + 319["SweepEdge Opposite"] + 320["SweepEdge Adjacent"] + 331["Sweep Extrusion
[4495, 4528, 5]"] 332[Wall] %% face_code_ref=Missing NodePath 333[Wall] @@ -453,43 +450,49 @@ flowchart LR %% face_code_ref=Missing NodePath 335[Wall] %% face_code_ref=Missing NodePath - 336["Cap Start"] + 336[Wall] %% face_code_ref=Missing NodePath - 337["Cap End"] + 337[Wall] %% face_code_ref=Missing NodePath - 338["SweepEdge Opposite"] - 339["SweepEdge Adjacent"] - 340["SweepEdge Opposite"] - 341["SweepEdge Adjacent"] - 342["SweepEdge Opposite"] - 343["SweepEdge Adjacent"] - 344["SweepEdge Opposite"] - 345["SweepEdge Adjacent"] - 346["SweepEdge Opposite"] - 347["SweepEdge Adjacent"] - 348["SweepEdge Opposite"] - 349["SweepEdge Adjacent"] - 350["SweepEdge Opposite"] - 351["SweepEdge Adjacent"] - 352["StartSketchOnFace
[1126, 1163, 1]"] - 353["StartSketchOnFace
[1386, 1423, 1]"] - 354["StartSketchOnFace
[1560, 1597, 1]"] - 355["StartSketchOnFace
[1951, 1988, 1]"] - 356["StartSketchOnFace
[840, 877, 3]"] - 357["StartSketchOnFace
[1202, 1239, 3]"] - 358["StartSketchOnFace
[1627, 1664, 3]"] - 359["StartSketchOnFace
[777, 816, 4]"] - 360["StartSketchOnFace
[1015, 1054, 4]"] - 361["StartSketchOnFace
[1411, 1448, 4]"] - 362["StartSketchOnFace
[1698, 1735, 4]"] - 363["StartSketchOnFace
[2204, 2241, 4]"] - 364["StartSketchOnFace
[887, 924, 5]"] - 365["StartSketchOnFace
[1284, 1321, 5]"] - 366["StartSketchOnFace
[1853, 1892, 5]"] - 367["StartSketchOnFace
[2201, 2238, 5]"] - 368["StartSketchOnFace
[2598, 2637, 5]"] - 369["StartSketchOnFace
[2771, 2810, 5]"] - 370["StartSketchOnFace
[3669, 3708, 5]"] + 338[Wall] + %% face_code_ref=Missing NodePath + 339["Cap Start"] + %% face_code_ref=Missing NodePath + 340["Cap End"] + %% face_code_ref=Missing NodePath + 341["SweepEdge Opposite"] + 342["SweepEdge Adjacent"] + 343["SweepEdge Opposite"] + 344["SweepEdge Adjacent"] + 345["SweepEdge Opposite"] + 346["SweepEdge Adjacent"] + 347["SweepEdge Opposite"] + 348["SweepEdge Adjacent"] + 349["SweepEdge Opposite"] + 350["SweepEdge Adjacent"] + 351["SweepEdge Opposite"] + 352["SweepEdge Adjacent"] + 353["SweepEdge Opposite"] + 354["SweepEdge Adjacent"] + 355["StartSketchOnFace
[1126, 1163, 1]"] + 356["StartSketchOnFace
[1386, 1423, 1]"] + 357["StartSketchOnFace
[1560, 1597, 1]"] + 358["StartSketchOnFace
[1951, 1988, 1]"] + 359["StartSketchOnFace
[840, 877, 3]"] + 360["StartSketchOnFace
[1202, 1239, 3]"] + 361["StartSketchOnFace
[1627, 1664, 3]"] + 362["StartSketchOnFace
[777, 816, 4]"] + 363["StartSketchOnFace
[1015, 1054, 4]"] + 364["StartSketchOnFace
[1411, 1448, 4]"] + 365["StartSketchOnFace
[1698, 1735, 4]"] + 366["StartSketchOnFace
[2204, 2241, 4]"] + 367["StartSketchOnFace
[887, 924, 5]"] + 368["StartSketchOnFace
[1284, 1321, 5]"] + 369["StartSketchOnFace
[1853, 1892, 5]"] + 370["StartSketchOnFace
[2201, 2238, 5]"] + 371["StartSketchOnFace
[2598, 2637, 5]"] + 372["StartSketchOnFace
[2771, 2810, 5]"] + 373["StartSketchOnFace
[3669, 3708, 5]"] 1 --- 2 2 --- 3 2 --- 4 @@ -552,9 +555,9 @@ flowchart LR 46 <--x 15 15 --- 55 56 <--x 15 - 15 <--x 352 - 15 <--x 354 15 <--x 355 + 15 <--x 357 + 15 <--x 358 17 <--x 24 19 <--x 25 21 <--x 26 @@ -574,7 +577,7 @@ flowchart LR 34 <--x 33 33 --- 37 38 <--x 33 - 33 <--x 353 + 33 <--x 356 34 <--x 36 37 --- 38 37 --- 39 @@ -684,7 +687,7 @@ flowchart LR 97 <--x 90 90 --- 99 100 <--x 90 - 90 <--x 356 + 90 <--x 359 99 --- 100 99 --- 101 99 ---- 102 @@ -702,8 +705,8 @@ flowchart LR 109 <--x 104 104 --- 119 120 <--x 104 - 104 <--x 357 - 104 <--x 358 + 104 <--x 360 + 104 <--x 361 105 <--x 107 108 --- 109 108 --- 110 @@ -806,11 +809,11 @@ flowchart LR 162 <--x 151 151 --- 170 171 <--x 151 - 151 <--x 359 - 151 <--x 360 - 152 --- 202 - 203 <--x 152 - 152 <--x 363 + 151 <--x 362 + 151 <--x 363 + 152 --- 205 + 206 <--x 152 + 152 <--x 366 161 --- 162 161 --- 163 161 ---- 164 @@ -826,7 +829,7 @@ flowchart LR 167 <--x 166 166 --- 179 180 <--x 166 - 166 <--x 361 + 166 <--x 364 167 <--x 169 170 --- 171 170 --- 172 @@ -843,7 +846,7 @@ flowchart LR 176 <--x 175 175 --- 194 195 <--x 175 - 175 <--x 362 + 175 <--x 365 176 <--x 178 179 --- 180 179 --- 181 @@ -871,337 +874,337 @@ flowchart LR 198 --- 200 198 --- 201 200 <--x 199 - 202 --- 203 - 202 --- 204 - 202 ---- 205 - 203 --- 206 - 203 --- 208 - 203 --- 209 205 --- 206 205 --- 207 - 205 --- 208 - 205 --- 209 - 206 --- 208 + 205 ---- 208 206 --- 209 - 208 <--x 207 - 210 --- 211 - 211 --- 212 - 211 --- 213 - 211 --- 214 - 211 --- 215 - 211 --- 216 - 211 --- 217 - 211 ---- 218 - 212 --- 219 - 212 x--> 223 - 212 --- 225 - 212 --- 226 - 213 --- 220 - 213 x--> 223 - 213 --- 227 - 213 --- 228 - 214 --- 221 - 214 x--> 223 - 214 --- 229 - 214 --- 230 + 206 --- 211 + 206 --- 212 + 208 --- 209 + 208 --- 210 + 208 --- 211 + 208 --- 212 + 209 --- 211 + 209 --- 212 + 211 <--x 210 + 213 --- 214 + 214 --- 215 + 214 --- 216 + 214 --- 217 + 214 --- 218 + 214 --- 219 + 214 --- 220 + 214 ---- 221 215 --- 222 - 215 x--> 223 - 215 --- 231 - 215 --- 232 - 218 --- 219 - 218 --- 220 - 218 --- 221 - 218 --- 222 - 218 --- 223 - 218 --- 224 + 215 x--> 226 + 215 --- 228 + 215 --- 229 + 216 --- 223 + 216 x--> 226 + 216 --- 230 + 216 --- 231 + 217 --- 224 + 217 x--> 226 + 217 --- 232 + 217 --- 233 218 --- 225 - 218 --- 226 - 218 --- 227 - 218 --- 228 - 218 --- 229 - 218 --- 230 - 218 --- 231 - 218 --- 232 - 219 --- 225 - 219 --- 226 - 232 <--x 219 - 226 <--x 220 - 220 --- 227 - 220 --- 228 - 228 <--x 221 + 218 x--> 226 + 218 --- 234 + 218 --- 235 + 221 --- 222 + 221 --- 223 + 221 --- 224 + 221 --- 225 + 221 --- 226 + 221 --- 227 + 221 --- 228 221 --- 229 221 --- 230 - 230 <--x 222 - 222 --- 231 - 222 --- 232 - 223 --- 257 - 223 <--x 366 - 225 <--x 224 - 227 <--x 224 - 229 <--x 224 + 221 --- 231 + 221 --- 232 + 221 --- 233 + 221 --- 234 + 221 --- 235 + 222 --- 228 + 222 --- 229 + 235 <--x 222 + 229 <--x 223 + 223 --- 230 + 223 --- 231 231 <--x 224 + 224 --- 232 224 --- 233 - 234 <--x 224 - 224 --- 266 - 224 <--x 364 - 224 <--x 367 - 233 --- 234 - 233 --- 235 - 233 ---- 236 - 234 --- 237 - 234 --- 239 - 234 --- 240 + 233 <--x 225 + 225 --- 234 + 225 --- 235 + 226 --- 260 + 226 <--x 369 + 228 <--x 227 + 230 <--x 227 + 232 <--x 227 + 234 <--x 227 + 227 --- 236 + 237 <--x 227 + 227 --- 269 + 227 <--x 367 + 227 <--x 370 236 --- 237 236 --- 238 - 236 --- 239 - 236 --- 240 - 237 --- 239 + 236 ---- 239 237 --- 240 - 239 <--x 238 - 238 --- 242 - 243 <--x 238 - 238 <--x 365 - 239 <--x 241 - 242 --- 243 - 242 --- 244 - 242 ---- 245 - 243 --- 246 - 243 --- 248 - 243 --- 249 + 237 --- 242 + 237 --- 243 + 239 --- 240 + 239 --- 241 + 239 --- 242 + 239 --- 243 + 240 --- 242 + 240 --- 243 + 242 <--x 241 + 241 --- 245 + 246 <--x 241 + 241 <--x 368 + 242 <--x 244 245 --- 246 245 --- 247 - 245 --- 248 - 245 --- 249 - 246 --- 248 + 245 ---- 248 246 --- 249 - 248 <--x 247 - 257 --- 258 - 257 --- 259 - 257 ---- 260 - 258 --- 261 - 258 x--> 263 - 258 --- 264 - 258 --- 265 + 246 --- 251 + 246 --- 252 + 248 --- 249 + 248 --- 250 + 248 --- 251 + 248 --- 252 + 249 --- 251 + 249 --- 252 + 251 <--x 250 260 --- 261 260 --- 262 - 260 --- 263 - 260 --- 264 - 260 --- 265 + 260 ---- 263 261 --- 264 - 261 --- 265 - 264 <--x 262 - 266 --- 267 - 266 --- 268 - 266 ---- 269 - 267 --- 270 - 267 x--> 272 - 267 --- 273 - 267 --- 274 + 261 x--> 266 + 261 --- 267 + 261 --- 268 + 263 --- 264 + 263 --- 265 + 263 --- 266 + 263 --- 267 + 263 --- 268 + 264 --- 267 + 264 --- 268 + 267 <--x 265 269 --- 270 269 --- 271 - 269 --- 272 - 269 --- 273 - 269 --- 274 + 269 ---- 272 270 --- 273 - 270 --- 274 - 273 <--x 271 - 271 --- 275 - 271 <--x 368 - 275 --- 276 - 275 --- 277 - 275 ---- 278 - 276 --- 279 - 276 x--> 281 - 276 --- 282 - 276 --- 283 + 270 x--> 275 + 270 --- 276 + 270 --- 277 + 272 --- 273 + 272 --- 274 + 272 --- 275 + 272 --- 276 + 272 --- 277 + 273 --- 276 + 273 --- 277 + 276 <--x 274 + 274 --- 278 + 274 <--x 371 278 --- 279 278 --- 280 - 278 --- 281 - 278 --- 282 - 278 --- 283 + 278 ---- 281 279 --- 282 - 279 --- 283 - 282 <--x 280 - 280 --- 284 - 280 --- 318 - 280 <--x 369 - 280 <--x 370 - 284 --- 285 - 284 --- 286 - 284 --- 287 - 284 --- 288 - 284 --- 289 - 284 --- 290 - 284 --- 291 - 284 --- 292 - 284 --- 293 - 284 ---- 294 - 285 --- 295 - 285 x--> 303 - 285 --- 304 - 285 --- 305 - 286 --- 296 - 286 x--> 303 - 286 --- 306 - 286 --- 307 - 287 --- 297 - 287 x--> 303 - 287 --- 308 - 287 --- 309 + 279 x--> 284 + 279 --- 285 + 279 --- 286 + 281 --- 282 + 281 --- 283 + 281 --- 284 + 281 --- 285 + 281 --- 286 + 282 --- 285 + 282 --- 286 + 285 <--x 283 + 283 --- 287 + 283 --- 321 + 283 <--x 372 + 283 <--x 373 + 287 --- 288 + 287 --- 289 + 287 --- 290 + 287 --- 291 + 287 --- 292 + 287 --- 293 + 287 --- 294 + 287 --- 295 + 287 --- 296 + 287 ---- 297 288 --- 298 - 288 x--> 303 - 288 --- 310 - 288 --- 311 + 288 x--> 306 + 288 --- 307 + 288 --- 308 289 --- 299 - 289 x--> 303 - 289 --- 312 - 289 --- 313 + 289 x--> 306 + 289 --- 309 + 289 --- 310 290 --- 300 - 290 x--> 303 - 290 --- 314 - 290 --- 315 + 290 x--> 306 + 290 --- 311 + 290 --- 312 291 --- 301 - 291 x--> 303 - 291 --- 316 - 291 --- 317 - 294 --- 295 - 294 --- 296 - 294 --- 297 - 294 --- 298 - 294 --- 299 - 294 --- 300 - 294 --- 301 - 294 --- 302 - 294 --- 303 + 291 x--> 306 + 291 --- 313 + 291 --- 314 + 292 --- 302 + 292 x--> 306 + 292 --- 315 + 292 --- 316 + 293 --- 303 + 293 x--> 306 + 293 --- 317 + 293 --- 318 294 --- 304 - 294 --- 305 - 294 --- 306 - 294 --- 307 - 294 --- 308 - 294 --- 309 - 294 --- 310 - 294 --- 311 - 294 --- 312 - 294 --- 313 - 294 --- 314 - 294 --- 315 - 294 --- 316 - 294 --- 317 - 295 --- 304 - 295 --- 305 - 317 <--x 295 - 305 <--x 296 - 296 --- 306 - 296 --- 307 - 307 <--x 297 + 294 x--> 306 + 294 --- 319 + 294 --- 320 + 297 --- 298 + 297 --- 299 + 297 --- 300 + 297 --- 301 + 297 --- 302 + 297 --- 303 + 297 --- 304 + 297 --- 305 + 297 --- 306 + 297 --- 307 297 --- 308 297 --- 309 - 309 <--x 298 - 298 --- 310 - 298 --- 311 - 311 <--x 299 - 299 --- 312 - 299 --- 313 - 313 <--x 300 - 300 --- 314 - 300 --- 315 - 315 <--x 301 - 301 --- 316 - 301 --- 317 - 304 <--x 302 - 306 <--x 302 - 308 <--x 302 - 310 <--x 302 - 312 <--x 302 + 297 --- 310 + 297 --- 311 + 297 --- 312 + 297 --- 313 + 297 --- 314 + 297 --- 315 + 297 --- 316 + 297 --- 317 + 297 --- 318 + 297 --- 319 + 297 --- 320 + 298 --- 307 + 298 --- 308 + 320 <--x 298 + 308 <--x 299 + 299 --- 309 + 299 --- 310 + 310 <--x 300 + 300 --- 311 + 300 --- 312 + 312 <--x 301 + 301 --- 313 + 301 --- 314 314 <--x 302 - 316 <--x 302 - 318 --- 319 - 318 --- 320 - 318 --- 321 - 318 --- 322 - 318 --- 323 - 318 --- 324 - 318 --- 325 - 318 --- 326 - 318 --- 327 - 318 ---- 328 - 319 --- 335 - 319 x--> 337 - 319 --- 350 - 319 --- 351 - 320 --- 334 - 320 x--> 337 - 320 --- 348 - 320 --- 349 - 321 --- 333 - 321 x--> 337 - 321 --- 346 - 321 --- 347 - 322 --- 332 - 322 x--> 337 - 322 --- 344 - 322 --- 345 - 323 --- 331 - 323 x--> 337 - 323 --- 342 - 323 --- 343 - 324 --- 330 - 324 x--> 337 - 324 --- 340 - 324 --- 341 - 325 --- 329 - 325 x--> 337 - 325 --- 338 - 325 --- 339 - 328 --- 329 - 328 --- 330 - 328 --- 331 + 302 --- 315 + 302 --- 316 + 316 <--x 303 + 303 --- 317 + 303 --- 318 + 318 <--x 304 + 304 --- 319 + 304 --- 320 + 307 <--x 305 + 309 <--x 305 + 311 <--x 305 + 313 <--x 305 + 315 <--x 305 + 317 <--x 305 + 319 <--x 305 + 321 --- 322 + 321 --- 323 + 321 --- 324 + 321 --- 325 + 321 --- 326 + 321 --- 327 + 321 --- 328 + 321 --- 329 + 321 --- 330 + 321 ---- 331 + 322 --- 338 + 322 x--> 340 + 322 --- 353 + 322 --- 354 + 323 --- 337 + 323 x--> 340 + 323 --- 351 + 323 --- 352 + 324 --- 336 + 324 x--> 340 + 324 --- 349 + 324 --- 350 + 325 --- 335 + 325 x--> 340 + 325 --- 347 + 325 --- 348 + 326 --- 334 + 326 x--> 340 + 326 --- 345 + 326 --- 346 + 327 --- 333 + 327 x--> 340 + 327 --- 343 + 327 --- 344 328 --- 332 - 328 --- 333 - 328 --- 334 - 328 --- 335 - 328 --- 336 - 328 --- 337 - 328 --- 338 - 328 --- 339 - 328 --- 340 + 328 x--> 340 328 --- 341 328 --- 342 - 328 --- 343 - 328 --- 344 - 328 --- 345 - 328 --- 346 - 328 --- 347 - 328 --- 348 - 328 --- 349 - 328 --- 350 - 328 --- 351 - 329 --- 338 - 329 --- 339 - 341 <--x 329 - 330 --- 340 - 330 --- 341 - 343 <--x 330 + 331 --- 332 + 331 --- 333 + 331 --- 334 + 331 --- 335 + 331 --- 336 + 331 --- 337 + 331 --- 338 + 331 --- 339 + 331 --- 340 + 331 --- 341 331 --- 342 331 --- 343 - 345 <--x 331 - 332 --- 344 - 332 --- 345 - 347 <--x 332 - 333 --- 346 - 333 --- 347 - 349 <--x 333 - 334 --- 348 - 334 --- 349 - 351 <--x 334 - 339 <--x 335 - 335 --- 350 - 335 --- 351 - 338 <--x 336 - 340 <--x 336 - 342 <--x 336 - 344 <--x 336 - 346 <--x 336 - 348 <--x 336 - 350 <--x 336 + 331 --- 344 + 331 --- 345 + 331 --- 346 + 331 --- 347 + 331 --- 348 + 331 --- 349 + 331 --- 350 + 331 --- 351 + 331 --- 352 + 331 --- 353 + 331 --- 354 + 332 --- 341 + 332 --- 342 + 344 <--x 332 + 333 --- 343 + 333 --- 344 + 346 <--x 333 + 334 --- 345 + 334 --- 346 + 348 <--x 334 + 335 --- 347 + 335 --- 348 + 350 <--x 335 + 336 --- 349 + 336 --- 350 + 352 <--x 336 + 337 --- 351 + 337 --- 352 + 354 <--x 337 + 342 <--x 338 + 338 --- 353 + 338 --- 354 + 341 <--x 339 + 343 <--x 339 + 345 <--x 339 + 347 <--x 339 + 349 <--x 339 + 351 <--x 339 + 353 <--x 339 ``` diff --git a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap index adec9fa53..986372dec 100644 --- a/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap +++ b/rust/kcl-lib/tests/kcl_samples/multi-axis-robot/ops.snap @@ -1253,10 +1253,33 @@ description: Operations executed multi-axis-robot.kcl "name": "extrude", "unlabeledArg": { "value": { - "type": "Sketch", - "value": { - "artifactId": "[uuid]" - } + "type": "Array", + "value": [ + { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + } + ] }, "sourceRange": [] }, From cb3b45747c7e4c47e393e09a4d00a3ba0ed2a6ae Mon Sep 17 00:00:00 2001 From: Jess Frazelle Date: Fri, 27 Jun 2025 12:44:05 -0700 Subject: [PATCH 20/34] Change AI to ML because cringe (#7636) Change AI to ML --- src/routes/SignIn.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/SignIn.tsx b/src/routes/SignIn.tsx index 590382d51..595c16609 100644 --- a/src/routes/SignIn.tsx +++ b/src/routes/SignIn.tsx @@ -280,7 +280,7 @@ const SignIn = () => { }} className="!bg-primary !text-chalkboard-10 !border-transarent" > - AI-unlocked CAD + ML-unlocked CAD From 30000a1eac99c0ccf08f7929d3894c1b68dac402 Mon Sep 17 00:00:00 2001 From: Jace Browning Date: Sat, 28 Jun 2025 09:23:47 -0400 Subject: [PATCH 21/34] Fix the vertical alignment on the temporary workspace label (#7638) --- src/Toolbar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Toolbar.tsx b/src/Toolbar.tsx index 6be7284a9..657081eb7 100644 --- a/src/Toolbar.tsx +++ b/src/Toolbar.tsx @@ -394,7 +394,7 @@ export function Toolbar({

{isInTemporaryWorkspace && (
-
+
Temporary workspace
) diff --git a/src/routes/Home.tsx b/src/routes/Home.tsx index 234540de6..de9555ae5 100644 --- a/src/routes/Home.tsx +++ b/src/routes/Home.tsx @@ -66,6 +66,7 @@ import { defaultLocalStatusBarItems, defaultGlobalStatusBarItems, } from '@src/components/StatusBar/defaultStatusBarItems' +import { useSelector } from '@xstate/react' type ReadWriteProjectState = { value: boolean @@ -81,6 +82,8 @@ const Home = () => { const [nativeFileMenuCreated, setNativeFileMenuCreated] = useState(false) const apiToken = useToken() const networkMachineStatus = useNetworkMachineStatus() + const billingContext = useSelector(billingActor, ({ context }) => context) + const hasUnlimitedCredits = billingContext.credits === Infinity // Only create the native file menus on desktop useEffect(() => { @@ -354,11 +357,13 @@ const Home = () => {
    -
  • -
    - -
    -
  • + {!hasUnlimitedCredits && ( +
  • +
    + +
    +
  • + )}
  • Date: Mon, 30 Jun 2025 00:03:36 +1200 Subject: [PATCH 24/34] Use proper envs for Rust functions (#7623) --- rust/kcl-lib/src/execution/fn_call.rs | 2 +- rust/kcl-lib/src/execution/memory.rs | 38 ++------------------------- rust/kcl-lib/src/execution/mod.rs | 16 +++++++++++ 3 files changed, 19 insertions(+), 37 deletions(-) diff --git a/rust/kcl-lib/src/execution/fn_call.rs b/rust/kcl-lib/src/execution/fn_call.rs index 778140385..581873646 100644 --- a/rust/kcl-lib/src/execution/fn_call.rs +++ b/rust/kcl-lib/src/execution/fn_call.rs @@ -401,7 +401,7 @@ impl FunctionDefinition<'_> { impl FunctionBody<'_> { fn prep_mem(&self, exec_state: &mut ExecState) { match self { - FunctionBody::Rust(_) => exec_state.mut_stack().push_new_env_for_rust_call(), + FunctionBody::Rust(_) => exec_state.mut_stack().push_new_root_env(true), FunctionBody::Kcl(_, memory) => exec_state.mut_stack().push_new_env_for_call(*memory), } } diff --git a/rust/kcl-lib/src/execution/memory.rs b/rust/kcl-lib/src/execution/memory.rs index a420a6922..85ecb1c51 100644 --- a/rust/kcl-lib/src/execution/memory.rs +++ b/rust/kcl-lib/src/execution/memory.rs @@ -541,22 +541,6 @@ impl Stack { self.push_new_env_for_call(snapshot); } - /// Push a new stack frame on to the call stack for callees which should not read or write - /// from memory. - /// - /// This is suitable for calling standard library functions or other functions written in Rust - /// which will use 'Rust memory' rather than KCL's memory and cannot reach into the wider - /// environment. - /// - /// Trying to read or write from this environment will panic with an index out of bounds. - pub fn push_new_env_for_rust_call(&mut self) { - self.call_stack.push(self.current_env); - // Rust functions shouldn't try to set or access anything in their environment, so don't - // waste time and space on a new env. Using usize::MAX means we'll get an overflow if we - // try to access anything rather than a silent error. - self.current_env = EnvironmentRef(usize::MAX, 0); - } - /// Push a new stack frame on to the call stack with no connection to a parent environment. /// /// Suitable for executing a separate module. @@ -683,7 +667,7 @@ impl Stack { env.contains_key(var) } - /// Get a key from the first KCL (i.e., non-Rust) stack frame on the call stack. + /// Get a key from the first stack frame on the call stack. pub fn get_from_call_stack(&self, key: &str, source_range: SourceRange) -> Result<(usize, &KclValue), KclError> { if !self.current_env.skip_env() { return Ok((self.current_env.1, self.get(key, source_range)?)); @@ -695,7 +679,7 @@ impl Stack { } } - unreachable!("It can't be Rust frames all the way down"); + unreachable!("No frames on the stack?"); } /// Iterate over all keys in the current environment which satisfy the provided predicate. @@ -1217,24 +1201,6 @@ mod test { assert_get_from(mem, "c", 5, callee); } - #[test] - fn rust_env() { - let mem = &mut Stack::new_for_tests(); - mem.add("a".to_owned(), val(1), sr()).unwrap(); - mem.add("b".to_owned(), val(3), sr()).unwrap(); - let sn = mem.snapshot(); - - mem.push_new_env_for_rust_call(); - mem.push_new_env_for_call(sn); - assert_get(mem, "b", 3); - mem.add("b".to_owned(), val(4), sr()).unwrap(); - assert_get(mem, "b", 4); - - mem.pop_env(); - mem.pop_env(); - assert_get(mem, "b", 3); - } - #[test] fn deep_call_env() { let mem = &mut Stack::new_for_tests(); diff --git a/rust/kcl-lib/src/execution/mod.rs b/rust/kcl-lib/src/execution/mod.rs index 5c6f4c209..8f3647716 100644 --- a/rust/kcl-lib/src/execution/mod.rs +++ b/rust/kcl-lib/src/execution/mod.rs @@ -1920,6 +1920,22 @@ shape = layer() |> patternTransform(instances = 10, transform = transform) ); } + #[tokio::test(flavor = "multi_thread")] + async fn pass_std_to_std() { + let ast = r#"sketch001 = startSketchOn(XY) +profile001 = circle(sketch001, center = [0, 0], radius = 2) +extrude001 = extrude(profile001, length = 5) +extrudes = patternLinear3d( + extrude001, + instances = 3, + distance = 5, + axis = [1, 1, 0], +) +clone001 = map(extrudes, f = clone) +"#; + parse_execute(ast).await.unwrap(); + } + #[tokio::test(flavor = "multi_thread")] async fn test_zero_param_fn() { let ast = r#"sigmaAllow = 35000 // psi From 62d8d45a58ee9993dfe5e53aa4c9d47860eb97b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 10:07:54 -0400 Subject: [PATCH 25/34] Bump the major group across 1 directory with 4 updates (#7572) * Bump the major group across 1 directory with 4 updates Bumps the major group with 4 updates in the / directory: [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact), [runs-on/action](https://github.com/runs-on/action), [actions/create-github-app-token](https://github.com/actions/create-github-app-token) and [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv). Updates `dawidd6/action-download-artifact` from 7 to 11 - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/v7...v11) Updates `runs-on/action` from 1 to 2 - [Release notes](https://github.com/runs-on/action/releases) - [Commits](https://github.com/runs-on/action/compare/v1...v2) Updates `actions/create-github-app-token` from 1 to 2 - [Release notes](https://github.com/actions/create-github-app-token/releases) - [Commits](https://github.com/actions/create-github-app-token/compare/v1...v2) Updates `astral-sh/setup-uv` from 5 to 6 - [Release notes](https://github.com/astral-sh/setup-uv/releases) - [Commits](https://github.com/astral-sh/setup-uv/compare/v5...v6) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-version: '11' dependency-type: direct:production update-type: version-update:semver-major dependency-group: major - dependency-name: runs-on/action dependency-version: '2' dependency-type: direct:production update-type: version-update:semver-major dependency-group: major - dependency-name: actions/create-github-app-token dependency-version: '2' dependency-type: direct:production update-type: version-update:semver-major dependency-group: major - dependency-name: astral-sh/setup-uv dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: major ... Signed-off-by: dependabot[bot] * bump --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Max Ammann --- .github/workflows/build-apps.yml | 2 +- .github/workflows/cargo-test.yml | 12 ++++++------ .github/workflows/e2e-tests.yml | 6 +++--- .github/workflows/generate-website-docs.yml | 2 +- .github/workflows/kcl-python-bindings.yml | 6 +++--- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-apps.yml b/.github/workflows/build-apps.yml index 839ec313f..fc0aace03 100644 --- a/.github/workflows/build-apps.yml +++ b/.github/workflows/build-apps.yml @@ -43,7 +43,7 @@ jobs: - name: Download Wasm Cache id: download-wasm if: ${{ github.event_name == 'pull_request' && steps.filter.outputs.rust == 'false' }} - uses: dawidd6/action-download-artifact@v7 + uses: dawidd6/action-download-artifact@v11 continue-on-error: true with: github_token: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/cargo-test.yml b/.github/workflows/cargo-test.yml index 8eb8fb446..d38867655 100644 --- a/.github/workflows/cargo-test.yml +++ b/.github/workflows/cargo-test.yml @@ -25,8 +25,8 @@ jobs: - runner=8cpu-linux-x64 - extras=s3-cache steps: - - uses: runs-on/action@v1 - - uses: actions/create-github-app-token@v1 + - uses: runs-on/action@v2 + - uses: actions/create-github-app-token@v2 id: app-token with: app-id: ${{ secrets.MODELING_APP_GH_APP_ID }} @@ -149,8 +149,8 @@ jobs: partitionIndex: [1, 2, 3, 4, 5, 6] partitionTotal: [6] steps: - - uses: runs-on/action@v1 - - uses: actions/create-github-app-token@v1 + - uses: runs-on/action@v2 + - uses: actions/create-github-app-token@v2 id: app-token with: app-id: ${{ secrets.MODELING_APP_GH_APP_ID }} @@ -207,8 +207,8 @@ jobs: - runner=32cpu-linux-x64 - extras=s3-cache steps: - - uses: runs-on/action@v1 - - uses: actions/create-github-app-token@v1 + - uses: runs-on/action@v2 + - uses: actions/create-github-app-token@v2 id: app-token with: app-id: ${{ secrets.MODELING_APP_GH_APP_ID }} diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 32cee74b9..b173db5db 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -46,7 +46,7 @@ jobs: - name: Download Wasm cache id: download-wasm if: ${{ github.event_name != 'schedule' && steps.filter.outputs.rust == 'false' }} - uses: dawidd6/action-download-artifact@v7 + uses: dawidd6/action-download-artifact@v11 continue-on-error: true with: github_token: ${{secrets.GITHUB_TOKEN}} @@ -110,7 +110,7 @@ jobs: steps: - - uses: actions/create-github-app-token@v1 + - uses: actions/create-github-app-token@v2 id: app-token with: app-id: ${{ secrets.MODELING_APP_GH_APP_ID }} @@ -230,7 +230,7 @@ jobs: steps: - - uses: actions/create-github-app-token@v1 + - uses: actions/create-github-app-token@v2 id: app-token with: app-id: ${{ secrets.MODELING_APP_GH_APP_ID }} diff --git a/.github/workflows/generate-website-docs.yml b/.github/workflows/generate-website-docs.yml index d5cd67609..c3f209101 100644 --- a/.github/workflows/generate-website-docs.yml +++ b/.github/workflows/generate-website-docs.yml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/create-github-app-token@v1 + - uses: actions/create-github-app-token@v2 id: app-token with: # required diff --git a/.github/workflows/kcl-python-bindings.yml b/.github/workflows/kcl-python-bindings.yml index 2a31bb257..2cd0e9011 100644 --- a/.github/workflows/kcl-python-bindings.yml +++ b/.github/workflows/kcl-python-bindings.yml @@ -113,7 +113,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1 - uses: taiki-e/install-action@just - name: Run tests @@ -130,7 +130,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Install the latest version of uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 - name: Install codespell run: | uv venv .venv @@ -161,7 +161,7 @@ jobs: with: path: rust/kcl-python-bindings - name: Install the latest version of uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v6 - name: do uv things run: | cd rust/kcl-python-bindings From fb8b975b5eaa2650b55da149e66a12c80252b327 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 15:40:33 +0000 Subject: [PATCH 26/34] Bump esbuild from 0.25.2 to 0.25.3 in the security group across 1 directory (#6681) Bump esbuild in the security group across 1 directory Bumps the security group with 1 update in the / directory: [esbuild](https://github.com/evanw/esbuild). Updates `esbuild` from 0.25.2 to 0.25.3 - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.25.2...v0.25.3) --- updated-dependencies: - dependency-name: esbuild dependency-version: 0.25.3 dependency-type: direct:development dependency-group: security ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 1118 ++++++++++++------------- rust/kcl-language-server/package.json | 2 +- 2 files changed, 535 insertions(+), 585 deletions(-) diff --git a/package-lock.json b/package-lock.json index f6d219b48..798907d5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3652,303 +3652,285 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", + "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", + "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", + "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", + "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", + "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", + "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", + "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", + "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", + "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", "cpu": [ "arm" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", + "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", + "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", + "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", "cpu": [ "loong64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", + "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", "cpu": [ "mips64el" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", + "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", "cpu": [ "ppc64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", + "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", "cpu": [ "riscv64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", + "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", "cpu": [ "s390x" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", + "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz", - "integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", + "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" @@ -3958,31 +3940,29 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", + "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz", - "integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", + "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" @@ -3992,88 +3972,83 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", + "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", + "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", + "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", "cpu": [ "arm64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", + "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", "cpu": [ "ia32" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", + "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", "cpu": [ "x64" ], "dev": true, - "license": "MIT", "optional": true, "os": [ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -13244,42 +13219,43 @@ "optional": true }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", + "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", "dev": true, "hasInstallScript": true, - "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.25.3", + "@esbuild/android-arm": "0.25.3", + "@esbuild/android-arm64": "0.25.3", + "@esbuild/android-x64": "0.25.3", + "@esbuild/darwin-arm64": "0.25.3", + "@esbuild/darwin-x64": "0.25.3", + "@esbuild/freebsd-arm64": "0.25.3", + "@esbuild/freebsd-x64": "0.25.3", + "@esbuild/linux-arm": "0.25.3", + "@esbuild/linux-arm64": "0.25.3", + "@esbuild/linux-ia32": "0.25.3", + "@esbuild/linux-loong64": "0.25.3", + "@esbuild/linux-mips64el": "0.25.3", + "@esbuild/linux-ppc64": "0.25.3", + "@esbuild/linux-riscv64": "0.25.3", + "@esbuild/linux-s390x": "0.25.3", + "@esbuild/linux-x64": "0.25.3", + "@esbuild/netbsd-arm64": "0.25.3", + "@esbuild/netbsd-x64": "0.25.3", + "@esbuild/openbsd-arm64": "0.25.3", + "@esbuild/openbsd-x64": "0.25.3", + "@esbuild/sunos-x64": "0.25.3", + "@esbuild/win32-arm64": "0.25.3", + "@esbuild/win32-ia32": "0.25.3", + "@esbuild/win32-x64": "0.25.3" } }, "node_modules/escalade": { @@ -25297,6 +25273,412 @@ } } }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -26279,7 +26661,7 @@ "@vscode/test-electron": "^2.4.1", "@vscode/vsce": "^3.3.2", "cross-env": "^7.0.3", - "esbuild": "^0.25.2", + "esbuild": "^0.25.3", "glob": "^11.0.1", "mocha": "^11.1.0", "typescript": "^5.8.3" @@ -26288,397 +26670,6 @@ "vscode": "^1.97.0" } }, - "rust/kcl-language-server/node_modules/@esbuild/aix-ppc64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz", - "integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/android-arm": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz", - "integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/android-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz", - "integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/android-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz", - "integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/darwin-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz", - "integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/darwin-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz", - "integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz", - "integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/freebsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz", - "integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/linux-arm": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz", - "integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/linux-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz", - "integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/linux-ia32": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz", - "integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/linux-loong64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz", - "integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/linux-mips64el": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz", - "integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/linux-ppc64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz", - "integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/linux-riscv64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz", - "integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/linux-s390x": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz", - "integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/linux-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz", - "integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/netbsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz", - "integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/openbsd-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz", - "integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/sunos-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz", - "integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/win32-arm64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz", - "integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/win32-ia32": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz", - "integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "rust/kcl-language-server/node_modules/@esbuild/win32-x64": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz", - "integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, "rust/kcl-language-server/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -26689,47 +26680,6 @@ "balanced-match": "^1.0.0" } }, - "rust/kcl-language-server/node_modules/esbuild": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.2.tgz", - "integrity": "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.2", - "@esbuild/android-arm": "0.25.2", - "@esbuild/android-arm64": "0.25.2", - "@esbuild/android-x64": "0.25.2", - "@esbuild/darwin-arm64": "0.25.2", - "@esbuild/darwin-x64": "0.25.2", - "@esbuild/freebsd-arm64": "0.25.2", - "@esbuild/freebsd-x64": "0.25.2", - "@esbuild/linux-arm": "0.25.2", - "@esbuild/linux-arm64": "0.25.2", - "@esbuild/linux-ia32": "0.25.2", - "@esbuild/linux-loong64": "0.25.2", - "@esbuild/linux-mips64el": "0.25.2", - "@esbuild/linux-ppc64": "0.25.2", - "@esbuild/linux-riscv64": "0.25.2", - "@esbuild/linux-s390x": "0.25.2", - "@esbuild/linux-x64": "0.25.2", - "@esbuild/netbsd-arm64": "0.25.2", - "@esbuild/netbsd-x64": "0.25.2", - "@esbuild/openbsd-arm64": "0.25.2", - "@esbuild/openbsd-x64": "0.25.2", - "@esbuild/sunos-x64": "0.25.2", - "@esbuild/win32-arm64": "0.25.2", - "@esbuild/win32-ia32": "0.25.2", - "@esbuild/win32-x64": "0.25.2" - } - }, "rust/kcl-language-server/node_modules/glob": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.1.tgz", diff --git a/rust/kcl-language-server/package.json b/rust/kcl-language-server/package.json index 9bd17fa6f..a67c5769e 100644 --- a/rust/kcl-language-server/package.json +++ b/rust/kcl-language-server/package.json @@ -123,7 +123,7 @@ "@vscode/test-electron": "^2.4.1", "@vscode/vsce": "^3.3.2", "cross-env": "^7.0.3", - "esbuild": "^0.25.2", + "esbuild": "^0.25.3", "glob": "^11.0.1", "mocha": "^11.1.0", "typescript": "^5.8.3" From 27af2d08a3708b000d8d30ae0054d67995702232 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 12:09:43 -0400 Subject: [PATCH 27/34] Bump the patch group in /rust with 3 updates (#7575) * Bump the patch group in /rust with 3 updates Bumps the patch group in /rust with 3 updates: [toml_edit](https://github.com/toml-rs/toml), [syn](https://github.com/dtolnay/syn) and [toml](https://github.com/toml-rs/toml). Updates `toml_edit` from 0.22.26 to 0.22.27 - [Commits](https://github.com/toml-rs/toml/compare/v0.22.26...v0.22.27) Updates `syn` from 2.0.103 to 2.0.104 - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.103...2.0.104) Updates `toml` from 0.8.22 to 0.8.23 - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.22...toml-v0.8.23) --- updated-dependencies: - dependency-name: toml_edit dependency-version: 0.22.27 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch - dependency-name: syn dependency-version: 2.0.104 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch - dependency-name: toml dependency-version: 0.8.23 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: patch ... Signed-off-by: dependabot[bot] * Trigger CI --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jonathan Tran --- rust/Cargo.lock | 120 +++++++++++------------ rust/kcl-bumper/Cargo.toml | 2 +- rust/kcl-derive-docs/Cargo.toml | 2 +- rust/kcl-directory-test-macro/Cargo.toml | 2 +- rust/kcl-lib/Cargo.toml | 2 +- rust/kcl-wasm-lib/Cargo.toml | 2 +- 6 files changed, 65 insertions(+), 65 deletions(-) diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 918f321c0..57dd1c8c9 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -178,7 +178,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -189,7 +189,7 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -211,7 +211,7 @@ checksum = "e12882f59de5360c748c4cbf569a042d5fb0eb515f7bea9c1f470b47f6ffbd73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -514,7 +514,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -740,7 +740,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -751,7 +751,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -810,7 +810,7 @@ checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -831,7 +831,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -841,7 +841,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -906,7 +906,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -944,7 +944,7 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1119,7 +1119,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1223,7 +1223,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1599,7 +1599,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1829,7 +1829,7 @@ version = "0.1.83" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1839,7 +1839,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2104,7 +2104,7 @@ dependencies = [ "kittycad-modeling-cmds-macros-impl", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2115,7 +2115,7 @@ checksum = "fdb4ee23cc996aa2dca7584d410e8826e08161e1ac4335bb646d5ede33f37cb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2311,7 +2311,7 @@ checksum = "db5b29714e950dbb20d5e6f74f9dcec4edbcc1067bb7f8ed198c097b8c1a818b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2640,7 +2640,7 @@ dependencies = [ "regex", "regex-syntax 0.8.5", "structmeta", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2654,7 +2654,7 @@ dependencies = [ "regex", "regex-syntax 0.8.5", "structmeta", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2710,7 +2710,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2754,7 +2754,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2809,7 +2809,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2921,7 +2921,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2981,7 +2981,7 @@ dependencies = [ "proc-macro2", "pyo3-macros-backend", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -2994,7 +2994,7 @@ dependencies = [ "proc-macro2", "pyo3-build-config", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -3492,7 +3492,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -3556,7 +3556,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -3567,7 +3567,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -3591,14 +3591,14 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] @@ -3815,7 +3815,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -3826,7 +3826,7 @@ checksum = "152a0b65a590ff6c3da95cabe2353ee04e6167c896b28e3b14478c2636c922fc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -3848,7 +3848,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -3891,9 +3891,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.103" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -3917,7 +3917,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -3941,7 +3941,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -4050,7 +4050,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -4061,7 +4061,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -4173,7 +4173,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -4217,9 +4217,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", @@ -4238,9 +4238,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.26" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap 2.9.0", "serde", @@ -4341,7 +4341,7 @@ checksum = "84fd902d4e0b9a4b27f2f440108dc034e1758628a9b702f8ec61ad66355422fa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -4369,7 +4369,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -4449,7 +4449,7 @@ checksum = "e9d4ed7b4c18cc150a6a0a1e9ea1ecfa688791220781af6e119f9599a8502a0a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", "termcolor", ] @@ -4635,7 +4635,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -4706,7 +4706,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", "wasm-bindgen-shared", ] @@ -4742,7 +4742,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4777,7 +4777,7 @@ checksum = "17d5042cc5fa009658f9a7333ef24291b1291a25b6382dd68862a7f3b969f69b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -5067,7 +5067,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", "synstructure", ] @@ -5112,7 +5112,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -5123,7 +5123,7 @@ checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -5143,7 +5143,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", "synstructure", ] @@ -5164,7 +5164,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -5186,7 +5186,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] diff --git a/rust/kcl-bumper/Cargo.toml b/rust/kcl-bumper/Cargo.toml index 16dee4e08..397c74faa 100644 --- a/rust/kcl-bumper/Cargo.toml +++ b/rust/kcl-bumper/Cargo.toml @@ -19,7 +19,7 @@ anyhow = { workspace = true } clap = { workspace = true, features = ["derive"] } semver = "1.0.25" serde = { workspace = true } -toml_edit = "0.22.26" +toml_edit = "0.22.27" [lints] workspace = true diff --git a/rust/kcl-derive-docs/Cargo.toml b/rust/kcl-derive-docs/Cargo.toml index 9040377df..239862f2a 100644 --- a/rust/kcl-derive-docs/Cargo.toml +++ b/rust/kcl-derive-docs/Cargo.toml @@ -14,7 +14,7 @@ bench = false [dependencies] proc-macro2 = "1" quote = "1" -syn = { version = "2.0.103", features = ["full"] } +syn = { version = "2.0.104", features = ["full"] } [lints] workspace = true diff --git a/rust/kcl-directory-test-macro/Cargo.toml b/rust/kcl-directory-test-macro/Cargo.toml index 113de027a..a3216c8ca 100644 --- a/rust/kcl-directory-test-macro/Cargo.toml +++ b/rust/kcl-directory-test-macro/Cargo.toml @@ -14,7 +14,7 @@ bench = false convert_case = "0.8.0" proc-macro2 = "1" quote = "1" -syn = { version = "2.0.103", features = ["full"] } +syn = { version = "2.0.104", features = ["full"] } [lints] workspace = true diff --git a/rust/kcl-lib/Cargo.toml b/rust/kcl-lib/Cargo.toml index 4f5d24874..501afae99 100644 --- a/rust/kcl-lib/Cargo.toml +++ b/rust/kcl-lib/Cargo.toml @@ -74,7 +74,7 @@ sha2 = "0.10.9" tabled = { version = "0.20.0", optional = true } tempfile = "3.20" thiserror = "2.0.0" -toml = "0.8.22" +toml = "0.8.23" ts-rs = { version = "11.0.1", features = [ "uuid-impl", "url-impl", diff --git a/rust/kcl-wasm-lib/Cargo.toml b/rust/kcl-wasm-lib/Cargo.toml index 5db47e99a..209abefd3 100644 --- a/rust/kcl-wasm-lib/Cargo.toml +++ b/rust/kcl-wasm-lib/Cargo.toml @@ -25,7 +25,7 @@ kittycad = { workspace = true } kittycad-modeling-cmds = { workspace = true } serde_json = { workspace = true } tokio = { workspace = true, features = ["sync", "rt"] } -toml = "0.8.22" +toml = "0.8.23" tower-lsp = { workspace = true, features = ["runtime-agnostic"] } uuid = { workspace = true, features = ["v4", "js", "serde"] } wasm-bindgen = "0.2.99" From 85c721fb49ef5a18fb9e5693ce5f54362eef46c2 Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Mon, 30 Jun 2025 15:26:45 -0400 Subject: [PATCH 28/34] Add display of units for calculated KCL values (#7619) * Add display of units in UI modals with calculated KCL values * Fix command bar display to handle units * Add display of units in the command bar * Fix more cases of NaN from units * Fix to support explicit plus for exponent in scientific notation * Fix display in autocomplete * Change to parseFloat to be more resilient * Add e2e test for command bar * Change an existing test to use explicit inline units * Fix case when input string can't be parsed --- e2e/playwright/command-bar-tests.spec.ts | 42 +++++++- e2e/playwright/point-click.spec.ts | 6 +- rust/kcl-lib/src/execution/types.rs | 12 +++ rust/kcl-lib/src/fmt.rs | 95 +++++++++++++++++++ rust/kcl-lib/src/lib.rs | 2 +- rust/kcl-wasm-lib/src/wasm.rs | 31 ++++++ .../CommandBar/CommandBarHeaderFooter.tsx | 8 +- .../CommandBar/CommandBarKclInput.tsx | 26 +++-- src/lang/queryAst.test.ts | 33 ++++++- src/lang/queryAst.ts | 3 + src/lang/wasm.ts | 18 ++++ src/lib/kclHelpers.test.ts | 9 +- src/lib/kclHelpers.ts | 28 +++++- src/lib/useCalculateKclExpression.ts | 2 +- src/lib/utils.test.ts | 43 +++++++++ src/lib/utils.ts | 26 +++++ src/lib/wasm_lib_wrapper.ts | 4 + 17 files changed, 360 insertions(+), 28 deletions(-) diff --git a/e2e/playwright/command-bar-tests.spec.ts b/e2e/playwright/command-bar-tests.spec.ts index 3e4d28391..4cea2adc4 100644 --- a/e2e/playwright/command-bar-tests.spec.ts +++ b/e2e/playwright/command-bar-tests.spec.ts @@ -525,7 +525,9 @@ test.describe('Command bar tests', () => { const projectName = 'test' const beforeKclCode = `a = 5 b = a * a -c = 3 + a` +c = 3 + a +theta = 45deg +` await context.folderSetupFn(async (dir) => { const testProject = join(dir, projectName) await fsp.mkdir(testProject, { recursive: true }) @@ -615,9 +617,45 @@ c = 3 + a` stage: 'commandBarClosed', }) }) + await test.step(`Edit a parameter with explicit units via command bar`, async () => { + await cmdBar.cmdBarOpenBtn.click() + await cmdBar.chooseCommand('edit parameter') + await cmdBar + .selectOption({ + name: 'theta', + }) + .click() + await cmdBar.expectState({ + stage: 'arguments', + commandName: 'Edit parameter', + currentArgKey: 'value', + currentArgValue: '45deg', + headerArguments: { + Name: 'theta', + Value: '', + }, + highlightedHeaderArg: 'value', + }) + await cmdBar.argumentInput + .locator('[contenteditable]') + .fill('45deg + 1deg') + await cmdBar.progressCmdBar() + await cmdBar.expectState({ + stage: 'review', + commandName: 'Edit parameter', + headerArguments: { + Name: 'theta', + Value: '46deg', + }, + }) + await cmdBar.progressCmdBar() + await cmdBar.expectState({ + stage: 'commandBarClosed', + }) + }) await editor.expectEditor.toContain( - `a = 5b = a * amyParameter001 = ${newValue}c = 3 + a` + `a = 5b = a * amyParameter001 = ${newValue}c = 3 + atheta = 45deg + 1deg` ) }) diff --git a/e2e/playwright/point-click.spec.ts b/e2e/playwright/point-click.spec.ts index 780269cd6..31e4ffc0b 100644 --- a/e2e/playwright/point-click.spec.ts +++ b/e2e/playwright/point-click.spec.ts @@ -136,17 +136,17 @@ test.describe('Point-and-click tests', () => { highlightedHeaderArg: 'length', commandName: 'Extrude', }) - await page.keyboard.insertText('width - 0.001') + await page.keyboard.insertText('width - 0.001in') await cmdBar.progressCmdBar() await cmdBar.expectState({ stage: 'review', headerArguments: { - Length: '4.999', + Length: '4.999in', }, commandName: 'Extrude', }) await cmdBar.progressCmdBar() - await editor.expectEditor.toContain('extrude(length = width - 0.001)') + await editor.expectEditor.toContain('extrude(length = width - 0.001in)') }) await test.step(`Edit second extrude via feature tree`, async () => { diff --git a/rust/kcl-lib/src/execution/types.rs b/rust/kcl-lib/src/execution/types.rs index 6de88d39b..5546a6f88 100644 --- a/rust/kcl-lib/src/execution/types.rs +++ b/rust/kcl-lib/src/execution/types.rs @@ -840,6 +840,18 @@ pub enum UnitType { Angle(UnitAngle), } +impl UnitType { + pub(crate) fn to_suffix(self) -> Option { + match self { + UnitType::Count => Some("_".to_owned()), + UnitType::Length(UnitLen::Unknown) => None, + UnitType::Angle(UnitAngle::Unknown) => None, + UnitType::Length(l) => Some(l.to_string()), + UnitType::Angle(a) => Some(a.to_string()), + } + } +} + impl std::fmt::Display for UnitType { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { diff --git a/rust/kcl-lib/src/fmt.rs b/rust/kcl-lib/src/fmt.rs index a7a20fa20..2caa721f9 100644 --- a/rust/kcl-lib/src/fmt.rs +++ b/rust/kcl-lib/src/fmt.rs @@ -45,6 +45,31 @@ pub fn format_number_literal(value: f64, suffix: NumericSuffix) -> Result Result { + match ty { + NumericType::Default { .. } => Ok(value.to_string()), + // There isn't a syntactic suffix for these. For unknown, we don't want + // to ever generate the unknown suffix. We currently warn on it, and we + // may remove it in the future. + NumericType::Unknown | NumericType::Any => Err(FormatNumericTypeError::Invalid(ty)), + NumericType::Known(unit_type) => unit_type + .to_suffix() + .map(|suffix| format!("{value}{suffix}")) + .ok_or(FormatNumericTypeError::Invalid(ty)), + } +} + #[cfg(test)] mod tests { use pretty_assertions::assert_eq; @@ -134,4 +159,74 @@ mod tests { Err(FormatNumericSuffixError::Invalid(NumericSuffix::Unknown)) ); } + + #[test] + fn test_format_number_value() { + assert_eq!( + format_number_value( + 1.0, + NumericType::Default { + len: Default::default(), + angle: Default::default() + } + ), + Ok("1".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Length(UnitLen::Unknown))), + Err(FormatNumericTypeError::Invalid(NumericType::Known(UnitType::Length( + UnitLen::Unknown + )))) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Angle(UnitAngle::Unknown))), + Err(FormatNumericTypeError::Invalid(NumericType::Known(UnitType::Angle( + UnitAngle::Unknown + )))) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Count)), + Ok("1_".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Length(UnitLen::Mm))), + Ok("1mm".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Length(UnitLen::Cm))), + Ok("1cm".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Length(UnitLen::M))), + Ok("1m".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Length(UnitLen::Inches))), + Ok("1in".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Length(UnitLen::Feet))), + Ok("1ft".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Length(UnitLen::Yards))), + Ok("1yd".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Angle(UnitAngle::Degrees))), + Ok("1deg".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Known(UnitType::Angle(UnitAngle::Radians))), + Ok("1rad".to_owned()) + ); + assert_eq!( + format_number_value(1.0, NumericType::Unknown), + Err(FormatNumericTypeError::Invalid(NumericType::Unknown)) + ); + assert_eq!( + format_number_value(1.0, NumericType::Any), + Err(FormatNumericTypeError::Invalid(NumericType::Any)) + ); + } } diff --git a/rust/kcl-lib/src/lib.rs b/rust/kcl-lib/src/lib.rs index 7aebd7d20..4b11113b5 100644 --- a/rust/kcl-lib/src/lib.rs +++ b/rust/kcl-lib/src/lib.rs @@ -140,7 +140,7 @@ pub mod std_utils { pub mod pretty { pub use crate::{ - fmt::{format_number_literal, human_display_number}, + fmt::{format_number_literal, format_number_value, human_display_number}, parsing::token::NumericSuffix, }; } diff --git a/rust/kcl-wasm-lib/src/wasm.rs b/rust/kcl-wasm-lib/src/wasm.rs index c44f8c634..ae9095d05 100644 --- a/rust/kcl-wasm-lib/src/wasm.rs +++ b/rust/kcl-wasm-lib/src/wasm.rs @@ -61,6 +61,37 @@ pub fn format_number_literal(value: f64, suffix_json: &str) -> Result Result { + console_error_panic_hook::set_once(); + + // ts-rs can't handle tuple types, so it mashes all of these types together. + if let Ok(ty) = serde_json::from_str::(numeric_type_json) { + if let Ok(formatted) = kcl_lib::pretty::format_number_value(value, ty) { + return Ok(formatted); + } + } + if let Ok(unit_type) = serde_json::from_str::(numeric_type_json) { + let ty = NumericType::Known(unit_type); + if let Ok(formatted) = kcl_lib::pretty::format_number_value(value, ty) { + return Ok(formatted); + } + } + if let Ok(unit_len) = serde_json::from_str::(numeric_type_json) { + let ty = NumericType::Known(UnitType::Length(unit_len)); + if let Ok(formatted) = kcl_lib::pretty::format_number_value(value, ty) { + return Ok(formatted); + } + } + if let Ok(unit_angle) = serde_json::from_str::(numeric_type_json) { + let ty = NumericType::Known(UnitType::Angle(unit_angle)); + if let Ok(formatted) = kcl_lib::pretty::format_number_value(value, ty) { + return Ok(formatted); + } + } + Err(format!("Invalid type: {numeric_type_json}")) +} + #[wasm_bindgen] pub fn human_display_number(value: f64, ty_json: &str) -> Result { console_error_panic_hook::set_once(); diff --git a/src/components/CommandBar/CommandBarHeaderFooter.tsx b/src/components/CommandBar/CommandBarHeaderFooter.tsx index 8934aeaaa..19731edd9 100644 --- a/src/components/CommandBar/CommandBarHeaderFooter.tsx +++ b/src/components/CommandBar/CommandBarHeaderFooter.tsx @@ -12,7 +12,7 @@ import type { } from '@src/lib/commandTypes' import type { Selections } from '@src/lib/selections' import { getSelectionTypeDisplayText } from '@src/lib/selections' -import { roundOff } from '@src/lib/utils' +import { roundOffWithUnits } from '@src/lib/utils' import { commandBarActor, useCommandBarState } from '@src/lib/singletons' function CommandBarHeaderFooter({ @@ -163,10 +163,8 @@ function CommandBarHeaderFooter({ arg.inputType === 'selectionMixed' ? ( getSelectionTypeDisplayText(argValue as Selections) ) : arg.inputType === 'kcl' ? ( - roundOff( - Number( - (argValue as KclCommandValue).valueCalculated - ), + roundOffWithUnits( + (argValue as KclCommandValue).valueCalculated, 4 ) ) : arg.inputType === 'text' && diff --git a/src/components/CommandBar/CommandBarKclInput.tsx b/src/components/CommandBar/CommandBarKclInput.tsx index 257206681..113d4c814 100644 --- a/src/components/CommandBar/CommandBarKclInput.tsx +++ b/src/components/CommandBar/CommandBarKclInput.tsx @@ -21,13 +21,13 @@ import { Spinner } from '@src/components/Spinner' import { createLocalName, createVariableDeclaration } from '@src/lang/create' import { getNodeFromPath } from '@src/lang/queryAst' import type { SourceRange, VariableDeclarator } from '@src/lang/wasm' -import { isPathToNode } from '@src/lang/wasm' +import { formatNumberValue, isPathToNode } from '@src/lang/wasm' import type { CommandArgument, KclCommandValue } from '@src/lib/commandTypes' import { kclManager } from '@src/lib/singletons' import { getSystemTheme } from '@src/lib/theme' import { err } from '@src/lib/trap' import { useCalculateKclExpression } from '@src/lib/useCalculateKclExpression' -import { roundOff } from '@src/lib/utils' +import { roundOff, roundOffWithUnits } from '@src/lib/utils' import { varMentions } from '@src/lib/varCompletionExtension' import { useSettings } from '@src/lib/singletons' import { commandBarActor, useCommandBarState } from '@src/lib/singletons' @@ -128,10 +128,22 @@ function CommandBarKclInput({ sourceRange: sourceRangeForPrevVariables, }) - const varMentionData: Completion[] = prevVariables.map((v) => ({ - label: v.key, - detail: String(roundOff(Number(v.value))), - })) + const varMentionData: Completion[] = prevVariables.map((v) => { + const roundedWithUnits = (() => { + if (typeof v.value !== 'number' || !v.ty) { + return undefined + } + const numWithUnits = formatNumberValue(v.value, v.ty) + if (err(numWithUnits)) { + return undefined + } + return roundOffWithUnits(numWithUnits) + })() + return { + label: v.key, + detail: roundedWithUnits ?? String(roundOff(Number(v.value))), + } + }) const varMentionsExtension = varMentions(varMentionData) const { setContainer, view } = useCodeMirror({ @@ -282,7 +294,7 @@ function CommandBarKclInput({ ) : calcResult === 'NAN' ? ( "Can't calculate" ) : ( - roundOff(Number(calcResult), 4) + roundOffWithUnits(calcResult, 4) )} diff --git a/src/lang/queryAst.test.ts b/src/lang/queryAst.test.ts index e71d39ddc..94d570af7 100644 --- a/src/lang/queryAst.test.ts +++ b/src/lang/queryAst.test.ts @@ -63,11 +63,36 @@ variableBelowShouldNotBeIncluded = 3 execState.variables, topLevelRange(rangeStart, rangeStart) ) + const defaultTy = { + type: 'Default', + angle: { + type: 'Degrees', + }, + len: { + type: 'Mm', + }, + } expect(variables).toEqual([ - { key: 'baseThick', value: 1 }, - { key: 'armAngle', value: 60 }, - { key: 'baseThickHalf', value: 0.5 }, - { key: 'halfArmAngle', value: 30 }, + { + key: 'baseThick', + value: 1, + ty: defaultTy, + }, + { + key: 'armAngle', + value: 60, + ty: defaultTy, + }, + { + key: 'baseThickHalf', + value: 0.5, + ty: defaultTy, + }, + { + key: 'halfArmAngle', + value: 30, + ty: defaultTy, + }, // no arrExpShouldNotBeIncluded, variableBelowShouldNotBeIncluded etc ]) // there are 4 number variables and 2 non-number variables before the sketch var diff --git a/src/lang/queryAst.ts b/src/lang/queryAst.ts index d89d7b1c8..1ea158cec 100644 --- a/src/lang/queryAst.ts +++ b/src/lang/queryAst.ts @@ -55,6 +55,7 @@ import type { OpKclValue, Operation } from '@rust/kcl-lib/bindings/Operation' import { ARG_INDEX_FIELD, LABELED_ARG_FIELD } from '@src/lang/queryAstConstants' import type { KclCommandValue } from '@src/lib/commandTypes' import type { UnaryExpression } from 'typescript' +import type { NumericType } from '@rust/kcl-lib/bindings/NumericType' /** * Retrieves a node from a given path within a Program node structure, optionally stopping at a specified node type. @@ -306,6 +307,7 @@ export function traverse( export interface PrevVariable { key: string value: T + ty: NumericType | undefined } export function findAllPreviousVariablesPath( @@ -353,6 +355,7 @@ export function findAllPreviousVariablesPath( variables.push({ key: varName, value: varValue.value, + ty: varValue.type === 'Number' ? varValue.ty : undefined, }) }) diff --git a/src/lang/wasm.ts b/src/lang/wasm.ts index ebdb544b5..ee2d05f9a 100644 --- a/src/lang/wasm.ts +++ b/src/lang/wasm.ts @@ -45,6 +45,7 @@ import { default_app_settings, default_project_settings, format_number_literal, + format_number_value, get_kcl_version, get_tangential_arc_to_info, human_display_number, @@ -448,6 +449,23 @@ export function formatNumberLiteral( } } +/** + * Format a number from a KclValue such that it could be parsed as KCL. + */ +export function formatNumberValue( + value: number, + numericType: NumericType +): string | Error { + try { + return format_number_value(value, JSON.stringify(numericType)) + } catch (e) { + return new Error( + `Error formatting number value: value=${value}, numericType=${numericType}`, + { cause: e } + ) + } +} + /** * Debug display a number with suffix, for human consumption only. */ diff --git a/src/lib/kclHelpers.test.ts b/src/lib/kclHelpers.test.ts index c3b79a50e..3bcfc58eb 100644 --- a/src/lib/kclHelpers.test.ts +++ b/src/lib/kclHelpers.test.ts @@ -2,13 +2,20 @@ import type { ParseResult } from '@src/lang/wasm' import { getCalculatedKclExpressionValue } from '@src/lib/kclHelpers' describe('KCL expression calculations', () => { - it('calculates a simple expression', async () => { + it('calculates a simple expression without units', async () => { const actual = await getCalculatedKclExpressionValue('1 + 2') const coercedActual = actual as Exclude expect(coercedActual).not.toHaveProperty('errors') expect(coercedActual.valueAsString).toEqual('3') expect(coercedActual?.astNode).toBeDefined() }) + it('calculates a simple expression with units', async () => { + const actual = await getCalculatedKclExpressionValue('1deg + 30deg') + const coercedActual = actual as Exclude + expect(coercedActual).not.toHaveProperty('errors') + expect(coercedActual.valueAsString).toEqual('31deg') + expect(coercedActual?.astNode).toBeDefined() + }) it('returns NAN for an invalid expression', async () => { const actual = await getCalculatedKclExpressionValue('1 + x') const coercedActual = actual as Exclude diff --git a/src/lib/kclHelpers.ts b/src/lib/kclHelpers.ts index 284ce10d0..3244fa16a 100644 --- a/src/lib/kclHelpers.ts +++ b/src/lib/kclHelpers.ts @@ -1,5 +1,10 @@ import { executeAstMock } from '@src/lang/langHelpers' -import { type CallExpressionKw, parse, resultIsOk } from '@src/lang/wasm' +import { + type CallExpressionKw, + formatNumberValue, + parse, + resultIsOk, +} from '@src/lang/wasm' import type { KclCommandValue, KclExpression } from '@src/lib/commandTypes' import { rustContext } from '@src/lib/singletons' import { err } from '@src/lib/trap' @@ -32,12 +37,27 @@ export async function getCalculatedKclExpressionValue(value: string) { const variableDeclaratorAstNode = resultDeclaration?.type === 'VariableDeclaration' && resultDeclaration?.declaration.init - const resultRawValue = execState.variables[DUMMY_VARIABLE_NAME]?.value + const varValue = execState.variables[DUMMY_VARIABLE_NAME] + // If the value is a number, attempt to format it with units. + const resultValueWithUnits = (() => { + if (!varValue || varValue.type !== 'Number') { + return undefined + } + const formatted = formatNumberValue(varValue.value, varValue.ty) + if (err(formatted)) return undefined + return formatted + })() + // Prefer the formatted value with units. Fallback to the raw value. + const resultRawValue = varValue?.value + const valueAsString = resultValueWithUnits + ? resultValueWithUnits + : typeof resultRawValue === 'number' + ? String(resultRawValue) + : 'NAN' return { astNode: variableDeclaratorAstNode, - valueAsString: - typeof resultRawValue === 'number' ? String(resultRawValue) : 'NAN', + valueAsString, } } diff --git a/src/lib/useCalculateKclExpression.ts b/src/lib/useCalculateKclExpression.ts index 5bcbf5cf9..15184ab89 100644 --- a/src/lib/useCalculateKclExpression.ts +++ b/src/lib/useCalculateKclExpression.ts @@ -79,7 +79,7 @@ export function useCalculateKclExpression({ isValueParsable = false } const initialCalcResult: number | string = - Number.isNaN(Number(value)) || !isValueParsable ? 'NAN' : value + Number.isNaN(parseFloat(value)) || !isValueParsable ? 'NAN' : value const [calcResult, setCalcResult] = useState(initialCalcResult) const [newVariableName, _setNewVariableName] = useState('') const [isNewVariableNameUnique, setIsNewVariableNameUnique] = useState(true) diff --git a/src/lib/utils.test.ts b/src/lib/utils.test.ts index cf96a8423..a5b850f44 100644 --- a/src/lib/utils.test.ts +++ b/src/lib/utils.test.ts @@ -8,6 +8,7 @@ import { isOverlap, onDragNumberCalculation, roundOff, + roundOffWithUnits, simulateOnMouseDragMatch, } from '@src/lib/utils' @@ -43,6 +44,48 @@ describe('testing roundOff', () => { }) }) +describe('roundOffWithUnits', () => { + it('works with no units', () => { + expect(roundOffWithUnits('1.23456789')).toBe('1.23') + expect(roundOffWithUnits('1.23456789', 3)).toBe('1.235') + expect(roundOffWithUnits('1.', 3)).toBe('1') + expect(roundOffWithUnits('-1.23456789')).toBe('-1.23') + expect(roundOffWithUnits('-1.23456789', 3)).toBe('-1.235') + expect(roundOffWithUnits('-1.', 3)).toBe('-1') + }) + it('works with standard units', () => { + expect(roundOffWithUnits('1.23456789mm', 3)).toBe('1.235mm') + expect(roundOffWithUnits('1.23456789m', 3)).toBe('1.235m') + expect(roundOffWithUnits('1.23456789in', 3)).toBe('1.235in') + expect(roundOffWithUnits('1.23456789_', 3)).toBe('1.235_') + expect(roundOffWithUnits('1._', 3)).toBe('1_') + expect(roundOffWithUnits('-1.23456789mm', 3)).toBe('-1.235mm') + expect(roundOffWithUnits('-1.23456789m', 3)).toBe('-1.235m') + expect(roundOffWithUnits('-1.23456789in', 3)).toBe('-1.235in') + expect(roundOffWithUnits('-1.23456789_', 3)).toBe('-1.235_') + expect(roundOffWithUnits('-1._', 3)).toBe('-1_') + expect(roundOffWithUnits('1.23456789e3mm', 3)).toBe('1234.568mm') + expect(roundOffWithUnits('1.23456789e3m', 3)).toBe('1234.568m') + expect(roundOffWithUnits('1.23456789e3in', 3)).toBe('1234.568in') + expect(roundOffWithUnits('1.23456789e3_', 3)).toBe('1234.568_') + expect(roundOffWithUnits('1.e3_', 3)).toBe('1000_') + expect(roundOffWithUnits('1e3_', 3)).toBe('1000_') + expect(roundOffWithUnits('1.23456789e-3mm', 3)).toBe('0.001mm') + expect(roundOffWithUnits('1.23456789e-3m', 3)).toBe('0.001m') + expect(roundOffWithUnits('1.23456789e-3in', 3)).toBe('0.001in') + expect(roundOffWithUnits('1.23456789e-3_', 3)).toBe('0.001_') + expect(roundOffWithUnits('1.e-3_', 3)).toBe('0.001_') + expect(roundOffWithUnits('1e-3_', 3)).toBe('0.001_') + }) + it('works with weird units', () => { + expect(roundOffWithUnits('1.23456789_?', 3)).toBe('1.235_?') + expect(roundOffWithUnits('-1.23456789_?', 3)).toBe('-1.235_?') + }) + it('returns the original string when used with something not parsable as a number', () => { + expect(roundOffWithUnits('foo', 3)).toBe('foo') + }) +}) + describe('testing hasLeadingZero', () => { it('.1 should have no leading zero', () => { const actual = hasLeadingZero('.1') diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 49b4e59c2..2b0e1a06f 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -328,6 +328,32 @@ export function roundOff(num: number, precision: number = 2): number { return Math.round(num * x) / x } +export function roundOffWithUnits( + numWithUnits: string, + precision: number = 2 +): string { + const match = numWithUnits.match( + /^([+-]?[\d.]+(?:[eE][+-]?\d+)?)([a-zA-Z_?]+)$/ + ) + let num: string + let suffix: string + if (match) { + num = match[1] + suffix = match[2] ?? '' + } else { + // If no match, assume it's just a number with no units. + num = numWithUnits + suffix = '' + } + const parsedNum = parseFloat(num) + if (Number.isNaN(parsedNum)) { + // If parsing fails, return the original string. + return numWithUnits + } + const roundedNum = roundOff(parsedNum, precision) + return `${roundedNum}${suffix}` +} + /** * Determine if the number as a string has any precision in the decimal places * '1' -> 0 diff --git a/src/lib/wasm_lib_wrapper.ts b/src/lib/wasm_lib_wrapper.ts index 1af4c9d97..8fee6b6c9 100644 --- a/src/lib/wasm_lib_wrapper.ts +++ b/src/lib/wasm_lib_wrapper.ts @@ -13,6 +13,7 @@ import type { default_app_settings as DefaultAppSettings, default_project_settings as DefaultProjectSettings, format_number_literal as FormatNumberLiteral, + format_number_value as FormatNumberValue, human_display_number as HumanDisplayNumber, get_kcl_version as GetKclVersion, get_tangential_arc_to_info as GetTangentialArcToInfo, @@ -59,6 +60,9 @@ export const recast_wasm: typeof RecastWasm = (...args) => { export const format_number_literal: typeof FormatNumberLiteral = (...args) => { return getModule().format_number_literal(...args) } +export const format_number_value: typeof FormatNumberValue = (...args) => { + return getModule().format_number_value(...args) +} export const human_display_number: typeof HumanDisplayNumber = (...args) => { return getModule().human_display_number(...args) } From 4a080d1583fd3f920b2d4e56aa7bad241c89ec46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Jul 2025 12:01:45 -0400 Subject: [PATCH 29/34] Bump @types/node from 22.15.32 to 24.0.3 in /packages/codemirror-lsp-client in the major group (#7490) Bump @types/node in /packages/codemirror-lsp-client in the major group Bumps the major group in /packages/codemirror-lsp-client with 1 update: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node). Updates `@types/node` from 22.15.32 to 24.0.3 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-version: 24.0.3 dependency-type: direct:development update-type: version-update:semver-major dependency-group: major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pierre Jacquier --- packages/codemirror-lsp-client/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/codemirror-lsp-client/package.json b/packages/codemirror-lsp-client/package.json index 3462e18cf..7c937934e 100644 --- a/packages/codemirror-lsp-client/package.json +++ b/packages/codemirror-lsp-client/package.json @@ -29,7 +29,7 @@ "vscode-uri": "^3.1.0" }, "devDependencies": { - "@types/node": "^22.14.1", + "@types/node": "^24.0.7", "ts-node": "^10.9.2" } } From fbcbb341e24cfc779e5148466cdaf54865f0926a Mon Sep 17 00:00:00 2001 From: Adam Chalmers Date: Tue, 1 Jul 2025 12:42:12 -0500 Subject: [PATCH 30/34] KCL: Add planeOf function to stdlib (#7643) Gets the plane a face lies on, if any. Closes #7642 --- docs/kcl-std/functions/std-sketch-planeOf.md | 48 ++ docs/kcl-std/index.md | 1 + docs/kcl-std/modules/std-sketch.md | 1 + rust/justfile | 3 + rust/kcl-derive-docs/src/example_tests.rs | 1 + rust/kcl-lib/src/execution/cad_op.rs | 5 +- rust/kcl-lib/src/execution/exec_ast.rs | 8 +- rust/kcl-lib/src/execution/geometry.rs | 9 +- rust/kcl-lib/src/execution/kcl_value.rs | 36 +- rust/kcl-lib/src/execution/types.rs | 14 +- rust/kcl-lib/src/simulation_tests.rs | 21 + rust/kcl-lib/src/std/args.rs | 6 +- rust/kcl-lib/src/std/mod.rs | 4 + rust/kcl-lib/src/std/patterns.rs | 2 +- rust/kcl-lib/src/std/planes.rs | 116 ++- rust/kcl-lib/src/std/segment.rs | 8 +- rust/kcl-lib/src/std/shapes.rs | 9 +- rust/kcl-lib/src/std/sketch.rs | 4 +- rust/kcl-lib/std/sketch.kcl | 21 + ...al_test_example_fn_std-sketch-planeOf0.png | Bin 0 -> 19940 bytes .../tests/plane_of/artifact_commands.snap | 381 ++++++++++ .../plane_of/artifact_graph_flowchart.snap | 6 + .../plane_of/artifact_graph_flowchart.snap.md | 105 +++ rust/kcl-lib/tests/plane_of/ast.snap | 705 ++++++++++++++++++ rust/kcl-lib/tests/plane_of/input.kcl | 13 + rust/kcl-lib/tests/plane_of/ops.snap | 254 +++++++ .../tests/plane_of/program_memory.snap | 192 +++++ .../kcl-lib/tests/plane_of/rendered_model.png | Bin 0 -> 54480 bytes rust/kcl-lib/tests/plane_of/unparsed.snap | 16 + 29 files changed, 1945 insertions(+), 44 deletions(-) create mode 100644 docs/kcl-std/functions/std-sketch-planeOf.md create mode 100644 rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-planeOf0.png create mode 100644 rust/kcl-lib/tests/plane_of/artifact_commands.snap create mode 100644 rust/kcl-lib/tests/plane_of/artifact_graph_flowchart.snap create mode 100644 rust/kcl-lib/tests/plane_of/artifact_graph_flowchart.snap.md create mode 100644 rust/kcl-lib/tests/plane_of/ast.snap create mode 100644 rust/kcl-lib/tests/plane_of/input.kcl create mode 100644 rust/kcl-lib/tests/plane_of/ops.snap create mode 100644 rust/kcl-lib/tests/plane_of/program_memory.snap create mode 100644 rust/kcl-lib/tests/plane_of/rendered_model.png create mode 100644 rust/kcl-lib/tests/plane_of/unparsed.snap diff --git a/docs/kcl-std/functions/std-sketch-planeOf.md b/docs/kcl-std/functions/std-sketch-planeOf.md new file mode 100644 index 000000000..111a03db3 --- /dev/null +++ b/docs/kcl-std/functions/std-sketch-planeOf.md @@ -0,0 +1,48 @@ +--- +title: "planeOf" +subtitle: "Function in std::sketch" +excerpt: "Find the plane a face lies on. Returns an error if the face doesn't lie on any plane (for example, the curved face of a cylinder)" +layout: manual +--- + +Find the plane a face lies on. Returns an error if the face doesn't lie on any plane (for example, the curved face of a cylinder) + +```kcl +planeOf( + @solid: Solid, + face: TaggedFace, +): Plane +``` + + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `solid` | [`Solid`](/docs/kcl-std/types/std-types-Solid) | The solid whose face is being queried. | Yes | +| `face` | [`TaggedFace`](/docs/kcl-std/types/std-types-TaggedFace) | Find the plane which this face lies on. | Yes | + +### Returns + +[`Plane`](/docs/kcl-std/types/std-types-Plane) - An abstract plane. + + +### Examples + +```kcl +triangle = startSketchOn(XY) + |> polygon(radius = 3, numSides = 3, center = [0, 0]) + |> extrude(length = 2) + +// Find the plane of the triangle's top face. +topPlane = planeOf(triangle, face = END) + +// Create a new plane, 10 units above the triangle's top face. +startSketchOn(offsetPlane(topPlane, offset = 10)) + +``` + +![Rendered example of planeOf 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABNq0lEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuur/vBd7sRd7bZ6Pf/iHf/htrrrqqquuuuqqq676v4zKVVddddVVV1111VX/p73O67zOe3/4h3/4d128ePF2HuDEiRM3f/3Xf/37/NZv/dZ3c9VVV1111VVXXXXV/1XoQQ96EFddddVVV1111VVX/d90zTXXPPibvumbnv60pz3tD7/lW77lbXmAD/qgD/rJhz70oa/6IR/yIQ+57777buWqq6666qqrrrrqqv+LqFx11VVXXXXVVVdd9X/eiRMnbn7Hd3zHr+EBHvrQh74qV1111VVXXXXVVVf9X0flqquuuuqqq6666qr/077+67/+fT78wz/8u17u5V7unXguP/IjP/LZ9913361cddVVV1111VVXXfV/FXrQgx7EVVddddVVV1111VX/d11zzTUPfrEXe7HX5vn4rd/6re/mqquuuuqqq6666qr/y9CDHvQgrrrqqquuuuqqq6666qqrrrrqqquuuuqq/5Mox48f56qrrrrqqquuuuqq/x8+/MM//Lse/OAHvzSgs2fP3spVV1111VVXXXXVVf/XUbnqqquuuuqqq6666v+Fb/qmb3r6Nddc82Ce6UM+5EMect99993KVVddddVVV1111VX/lxFcddVVV1111VVXXfX/wjXXXPNgHuBzP/dzf5urrrrqqquuuuqqq/6vI7jqqquuuuqqq6666v+Ff/iHf/htnum+++679YM/+IMfzFVXXXXVVVddddVV/9ehBz3oQVx11VVXXXXVVVdd9f/D67zO67z3mTNnHvSjP/qjn8NVV1111VVXXXXVVf8foAc96EFcddVVV1111VVXXXXVVVddddVVV1111VX/J1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/Kv4R/WxcCe3yxu8AAAAASUVORK5CYII=) + + diff --git a/docs/kcl-std/index.md b/docs/kcl-std/index.md index 9b7cb37c8..4a31d1d64 100644 --- a/docs/kcl-std/index.md +++ b/docs/kcl-std/index.md @@ -67,6 +67,7 @@ layout: manual * [`patternCircular2d`](/docs/kcl-std/functions/std-sketch-patternCircular2d) * [`patternLinear2d`](/docs/kcl-std/functions/std-sketch-patternLinear2d) * [`patternTransform2d`](/docs/kcl-std/functions/std-sketch-patternTransform2d) + * [`planeOf`](/docs/kcl-std/functions/std-sketch-planeOf) * [`polygon`](/docs/kcl-std/functions/std-sketch-polygon) * [`profileStart`](/docs/kcl-std/functions/std-sketch-profileStart) * [`profileStartX`](/docs/kcl-std/functions/std-sketch-profileStartX) diff --git a/docs/kcl-std/modules/std-sketch.md b/docs/kcl-std/modules/std-sketch.md index b64f54467..a96536547 100644 --- a/docs/kcl-std/modules/std-sketch.md +++ b/docs/kcl-std/modules/std-sketch.md @@ -32,6 +32,7 @@ This module contains functions for creating and manipulating sketches, and makin * [`patternCircular2d`](/docs/kcl-std/functions/std-sketch-patternCircular2d) * [`patternLinear2d`](/docs/kcl-std/functions/std-sketch-patternLinear2d) * [`patternTransform2d`](/docs/kcl-std/functions/std-sketch-patternTransform2d) +* [`planeOf`](/docs/kcl-std/functions/std-sketch-planeOf) * [`polygon`](/docs/kcl-std/functions/std-sketch-polygon) * [`profileStart`](/docs/kcl-std/functions/std-sketch-profileStart) * [`profileStartX`](/docs/kcl-std/functions/std-sketch-profileStartX) diff --git a/rust/justfile b/rust/justfile index f098f05de..b85c94480 100644 --- a/rust/justfile +++ b/rust/justfile @@ -8,6 +8,9 @@ lint: # Ensure we can build without extra feature flags. cargo clippy -p kcl-lib --all-targets -- -D warnings +lint-fix: + cargo clippy --workspace --all-targets --all-features --fix + # Run the stdlib docs generation redo-kcl-stdlib-docs-no-imgs: EXPECTORATE=overwrite {{cnr}} {{kcl_lib_flags}} docs::gen_std_tests::test_generate_stdlib diff --git a/rust/kcl-derive-docs/src/example_tests.rs b/rust/kcl-derive-docs/src/example_tests.rs index 392fc3b91..27ba9fcf9 100644 --- a/rust/kcl-derive-docs/src/example_tests.rs +++ b/rust/kcl-derive-docs/src/example_tests.rs @@ -97,6 +97,7 @@ pub const TEST_NAMES: &[&str] = &[ "std-offsetPlane-2", "std-offsetPlane-3", "std-offsetPlane-4", + "std-sketch-planeOf-0", "std-sketch-circle-0", "std-sketch-circle-1", "std-sketch-patternTransform2d-0", diff --git a/rust/kcl-lib/src/execution/cad_op.rs b/rust/kcl-lib/src/execution/cad_op.rs index 6c277258b..585a50d04 100644 --- a/rust/kcl-lib/src/execution/cad_op.rs +++ b/rust/kcl-lib/src/execution/cad_op.rs @@ -226,10 +226,7 @@ impl From<&KclValue> for OpKclValue { match value { KclValue::Uuid { value, .. } => Self::Uuid { value: *value }, KclValue::Bool { value, .. } => Self::Bool { value: *value }, - KclValue::Number { value, ty, .. } => Self::Number { - value: *value, - ty: ty.clone(), - }, + KclValue::Number { value, ty, .. } => Self::Number { value: *value, ty: *ty }, KclValue::String { value, .. } => Self::String { value: value.clone() }, KclValue::Tuple { value, .. } | KclValue::HomArray { value, .. } => { let value = value.iter().map(Self::from).collect(); diff --git a/rust/kcl-lib/src/execution/exec_ast.rs b/rust/kcl-lib/src/execution/exec_ast.rs index 34639033d..9d2240e30 100644 --- a/rust/kcl-lib/src/execution/exec_ast.rs +++ b/rust/kcl-lib/src/execution/exec_ast.rs @@ -1297,7 +1297,7 @@ impl Node { Ok(KclValue::Number { value: -value, meta, - ty: ty.clone(), + ty: *ty, }) } KclValue::Plane { value } => { @@ -1329,7 +1329,7 @@ impl Node { .map(|v| match v { KclValue::Number { value, ty, meta } => Ok(KclValue::Number { value: *value * -1.0, - ty: ty.clone(), + ty: *ty, meta: meta.clone(), }), _ => Err(err()), @@ -1350,7 +1350,7 @@ impl Node { .map(|v| match v { KclValue::Number { value, ty, meta } => Ok(KclValue::Number { value: *value * -1.0, - ty: ty.clone(), + ty: *ty, meta: meta.clone(), }), _ => Err(err()), @@ -1544,7 +1544,7 @@ impl Node { .into_iter() .map(|num| KclValue::Number { value: num as f64, - ty: start_ty.clone(), + ty: start_ty, meta: meta.clone(), }) .collect(), diff --git a/rust/kcl-lib/src/execution/geometry.rs b/rust/kcl-lib/src/execution/geometry.rs index 2a091be4a..4745c6e94 100644 --- a/rust/kcl-lib/src/execution/geometry.rs +++ b/rust/kcl-lib/src/execution/geometry.rs @@ -939,6 +939,7 @@ impl From for Point3D { Self { x: p.x, y: p.y, z: p.z } } } + impl From for kittycad_modeling_cmds::shared::Point3d { fn from(p: Point3d) -> Self { Self { @@ -1004,12 +1005,12 @@ pub struct BasePath { impl BasePath { pub fn get_to(&self) -> [TyF64; 2] { let ty: NumericType = self.units.into(); - [TyF64::new(self.to[0], ty.clone()), TyF64::new(self.to[1], ty)] + [TyF64::new(self.to[0], ty), TyF64::new(self.to[1], ty)] } pub fn get_from(&self) -> [TyF64; 2] { let ty: NumericType = self.units.into(); - [TyF64::new(self.from[0], ty.clone()), TyF64::new(self.from[1], ty)] + [TyF64::new(self.from[0], ty), TyF64::new(self.from[1], ty)] } } @@ -1225,14 +1226,14 @@ impl Path { pub fn get_from(&self) -> [TyF64; 2] { let p = &self.get_base().from; let ty: NumericType = self.get_base().units.into(); - [TyF64::new(p[0], ty.clone()), TyF64::new(p[1], ty)] + [TyF64::new(p[0], ty), TyF64::new(p[1], ty)] } /// Where does this path segment end? pub fn get_to(&self) -> [TyF64; 2] { let p = &self.get_base().to; let ty: NumericType = self.get_base().units.into(); - [TyF64::new(p[0], ty.clone()), TyF64::new(p[1], ty)] + [TyF64::new(p[0], ty), TyF64::new(p[1], ty)] } /// The path segment start point and its type. diff --git a/rust/kcl-lib/src/execution/kcl_value.rs b/rust/kcl-lib/src/execution/kcl_value.rs index 71c2dba66..9f9a07451 100644 --- a/rust/kcl-lib/src/execution/kcl_value.rs +++ b/rust/kcl-lib/src/execution/kcl_value.rs @@ -415,15 +415,41 @@ impl KclValue { /// Put the point into a KCL value. pub fn from_point2d(p: [f64; 2], ty: NumericType, meta: Vec) -> Self { + let [x, y] = p; Self::Tuple { value: vec![ Self::Number { - value: p[0], + value: x, meta: meta.clone(), - ty: ty.clone(), + ty, }, Self::Number { - value: p[1], + value: y, + meta: meta.clone(), + ty, + }, + ], + meta, + } + } + + /// Put the point into a KCL value. + pub fn from_point3d(p: [f64; 3], ty: NumericType, meta: Vec) -> Self { + let [x, y, z] = p; + Self::Tuple { + value: vec![ + Self::Number { + value: x, + meta: meta.clone(), + ty, + }, + Self::Number { + value: y, + meta: meta.clone(), + ty, + }, + Self::Number { + value: z, meta: meta.clone(), ty, }, @@ -448,7 +474,7 @@ impl KclValue { pub fn as_int_with_ty(&self) -> Option<(i64, NumericType)> { match self { - KclValue::Number { value, ty, .. } => crate::try_f64_to_i64(*value).map(|i| (i, ty.clone())), + KclValue::Number { value, ty, .. } => crate::try_f64_to_i64(*value).map(|i| (i, *ty)), _ => None, } } @@ -562,7 +588,7 @@ impl KclValue { pub fn as_ty_f64(&self) -> Option { match self { - KclValue::Number { value, ty, .. } => Some(TyF64::new(*value, ty.clone())), + KclValue::Number { value, ty, .. } => Some(TyF64::new(*value, *ty)), _ => None, } } diff --git a/rust/kcl-lib/src/execution/types.rs b/rust/kcl-lib/src/execution/types.rs index 5546a6f88..6ea937ab5 100644 --- a/rust/kcl-lib/src/execution/types.rs +++ b/rust/kcl-lib/src/execution/types.rs @@ -460,7 +460,7 @@ impl fmt::Display for PrimitiveType { } } -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, ts_rs::TS, JsonSchema)] +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, ts_rs::TS, JsonSchema)] #[ts(export)] #[serde(tag = "type")] pub enum NumericType { @@ -575,7 +575,7 @@ impl NumericType { match (&ty, &i.ty) { (Any, Default { .. }) if i.n == 0.0 => {} (Any, t) => { - ty = t.clone(); + ty = *t; } (_, Unknown) | (Default { .. }, Default { .. }) => return (result, Unknown), @@ -598,7 +598,7 @@ impl NumericType { } if ty == Any && !input.is_empty() { - ty = input[0].ty.clone(); + ty = input[0].ty; } (result, ty) @@ -722,7 +722,7 @@ impl NumericType { if ty.subtype(self) { return Ok(KclValue::Number { value: *value, - ty: ty.clone(), + ty: *ty, meta: meta.clone(), }); } @@ -736,7 +736,7 @@ impl NumericType { (Any, _) => Ok(KclValue::Number { value: *value, - ty: self.clone(), + ty: *self, meta: meta.clone(), }), @@ -744,7 +744,7 @@ impl NumericType { // means accept any number rather than force the current default. (_, Default { .. }) => Ok(KclValue::Number { value: *value, - ty: ty.clone(), + ty: *ty, meta: meta.clone(), }), @@ -1491,7 +1491,7 @@ impl KclValue { pub fn principal_type(&self) -> Option { match self { KclValue::Bool { .. } => Some(RuntimeType::Primitive(PrimitiveType::Boolean)), - KclValue::Number { ty, .. } => Some(RuntimeType::Primitive(PrimitiveType::Number(ty.clone()))), + KclValue::Number { ty, .. } => Some(RuntimeType::Primitive(PrimitiveType::Number(*ty))), KclValue::String { .. } => Some(RuntimeType::Primitive(PrimitiveType::String)), KclValue::Object { value, .. } => { let properties = value diff --git a/rust/kcl-lib/src/simulation_tests.rs b/rust/kcl-lib/src/simulation_tests.rs index 776e364ae..40a507ba0 100644 --- a/rust/kcl-lib/src/simulation_tests.rs +++ b/rust/kcl-lib/src/simulation_tests.rs @@ -3632,3 +3632,24 @@ mod non_english_identifiers { super::execute(TEST_NAME, true).await } } +mod plane_of { + const TEST_NAME: &str = "plane_of"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[tokio::test(flavor = "multi_thread")] + async fn unparse() { + super::unparse(TEST_NAME).await + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, true).await + } +} diff --git a/rust/kcl-lib/src/std/args.rs b/rust/kcl-lib/src/std/args.rs index 4aaecbee3..087a6220c 100644 --- a/rust/kcl-lib/src/std/args.rs +++ b/rust/kcl-lib/src/std/args.rs @@ -340,12 +340,12 @@ impl Args { let x = KclValue::Number { value: p[0], meta: vec![meta], - ty: ty.clone(), + ty, }; let y = KclValue::Number { value: p[1], meta: vec![meta], - ty: ty.clone(), + ty, }; let ty = RuntimeType::Primitive(PrimitiveType::Number(ty)); @@ -1038,7 +1038,7 @@ impl<'a> FromKclValue<'a> for u64 { impl<'a> FromKclValue<'a> for TyF64 { fn from_kcl_val(arg: &'a KclValue) -> Option { match arg { - KclValue::Number { value, ty, .. } => Some(TyF64::new(*value, ty.clone())), + KclValue::Number { value, ty, .. } => Some(TyF64::new(*value, *ty)), _ => None, } } diff --git a/rust/kcl-lib/src/std/mod.rs b/rust/kcl-lib/src/std/mod.rs index 4c124fcbf..152cd4be1 100644 --- a/rust/kcl-lib/src/std/mod.rs +++ b/rust/kcl-lib/src/std/mod.rs @@ -256,6 +256,10 @@ pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProp |e, a| Box::pin(crate::std::shapes::circle(e, a)), StdFnProps::default("std::sketch::circle"), ), + ("sketch", "planeOf") => ( + |e, a| Box::pin(crate::std::planes::plane_of(e, a)), + StdFnProps::default("std::sketch::planeOf"), + ), ("sketch", "extrude") => ( |e, a| Box::pin(crate::std::extrude::extrude(e, a)), StdFnProps::default("std::sketch::extrude").include_in_feature_tree(), diff --git a/rust/kcl-lib/src/std/patterns.rs b/rust/kcl-lib/src/std/patterns.rs index 454385f83..b1807553b 100644 --- a/rust/kcl-lib/src/std/patterns.rs +++ b/rust/kcl-lib/src/std/patterns.rs @@ -408,7 +408,7 @@ impl GeometryTrait for Sketch { exec_state: &mut ExecState, ) -> Result<[TyF64; 3], KclError> { let [x, y] = array_to_point2d(val, source_ranges, exec_state)?; - let ty = x.ty.clone(); + let ty = x.ty; Ok([x, y, TyF64::new(0.0, ty)]) } diff --git a/rust/kcl-lib/src/std/planes.rs b/rust/kcl-lib/src/std/planes.rs index 59389196e..25fe4cce3 100644 --- a/rust/kcl-lib/src/std/planes.rs +++ b/rust/kcl-lib/src/std/planes.rs @@ -1,15 +1,123 @@ //! Standard library plane helpers. use kcmc::{ModelingCmd, each_cmd as mcmd, length_unit::LengthUnit, shared::Color}; -use kittycad_modeling_cmds as kcmc; +use kittycad_modeling_cmds::{self as kcmc, ok_response::OkModelingCmdResponse, websocket::OkWebSocketResponseData}; -use super::{args::TyF64, sketch::PlaneData}; +use super::{ + args::TyF64, + sketch::{FaceTag, PlaneData}, +}; use crate::{ - errors::KclError, - execution::{ExecState, KclValue, ModelingCmdMeta, Plane, PlaneType, types::RuntimeType}, + UnitLen, + errors::{KclError, KclErrorDetails}, + execution::{ExecState, KclValue, Metadata, ModelingCmdMeta, Plane, PlaneType, types::RuntimeType}, std::Args, }; +/// Find the plane of a given face. +pub async fn plane_of(exec_state: &mut ExecState, args: Args) -> Result { + let solid = args.get_unlabeled_kw_arg("solid", &RuntimeType::solid(), exec_state)?; + let face = args.get_kw_arg("face", &RuntimeType::tagged_face(), exec_state)?; + + inner_plane_of(solid, face, exec_state, &args) + .await + .map(Box::new) + .map(|value| KclValue::Plane { value }) +} + +async fn inner_plane_of( + solid: crate::execution::Solid, + face: FaceTag, + exec_state: &mut ExecState, + args: &Args, +) -> Result { + // Support mock execution + // Return an arbitrary (incorrect) plane and a non-fatal error. + if args.ctx.no_engine_commands().await { + let plane_id = exec_state.id_generator().next_uuid(); + exec_state.err(crate::CompilationError { + source_range: args.source_range, + message: "The engine isn't available, so returning an arbitrary incorrect plane".to_owned(), + suggestion: None, + severity: crate::errors::Severity::Error, + tag: crate::errors::Tag::None, + }); + return Ok(Plane { + artifact_id: plane_id.into(), + id: plane_id, + // Engine doesn't know about the ID we created, so set this to Uninit. + value: PlaneType::Uninit, + info: crate::execution::PlaneInfo { + origin: Default::default(), + x_axis: Default::default(), + y_axis: Default::default(), + }, + meta: vec![Metadata { + source_range: args.source_range, + }], + }); + } + + // Query the engine to learn what plane, if any, this face is on. + let face_id = face.get_face_id(&solid, exec_state, args, true).await?; + let meta = args.into(); + let cmd = ModelingCmd::FaceIsPlanar(mcmd::FaceIsPlanar { object_id: face_id }); + let plane_resp = exec_state.send_modeling_cmd(meta, cmd).await?; + let OkWebSocketResponseData::Modeling { + modeling_response: OkModelingCmdResponse::FaceIsPlanar(planar), + } = plane_resp + else { + return Err(KclError::new_semantic(KclErrorDetails::new( + format!( + "Engine returned invalid response, it should have returned FaceIsPlanar but it returned {plane_resp:#?}" + ), + vec![args.source_range], + ))); + }; + // Destructure engine's response to check if the face was on a plane. + let not_planar: Result<_, KclError> = Err(KclError::new_semantic(KclErrorDetails::new( + "The face you provided doesn't lie on any plane. It might be curved.".to_owned(), + vec![args.source_range], + ))); + let Some(x_axis) = planar.x_axis else { return not_planar }; + let Some(y_axis) = planar.y_axis else { return not_planar }; + let Some(origin) = planar.origin else { return not_planar }; + + // Engine always returns measurements in mm. + let engine_units = UnitLen::Mm; + let x_axis = crate::execution::Point3d { + x: x_axis.x, + y: x_axis.y, + z: x_axis.z, + units: engine_units, + }; + let y_axis = crate::execution::Point3d { + x: y_axis.x, + y: y_axis.y, + z: y_axis.z, + units: engine_units, + }; + let origin = crate::execution::Point3d { + x: origin.x.0, + y: origin.y.0, + z: origin.z.0, + units: engine_units, + }; + + // Engine doesn't send back an ID, so let's just make a new plane ID. + let plane_id = exec_state.id_generator().next_uuid(); + Ok(Plane { + artifact_id: plane_id.into(), + id: plane_id, + // Engine doesn't know about the ID we created, so set this to Uninit. + value: PlaneType::Uninit, + info: crate::execution::PlaneInfo { origin, x_axis, y_axis }, + meta: vec![Metadata { + source_range: args.source_range, + }], + }) +} + /// Offset a plane by a distance along its normal. pub async fn offset_plane(exec_state: &mut ExecState, args: Args) -> Result { let std_plane = args.get_unlabeled_kw_arg("plane", &RuntimeType::plane(), exec_state)?; diff --git a/rust/kcl-lib/src/std/segment.rs b/rust/kcl-lib/src/std/segment.rs index 42d40bf42..02b873c79 100644 --- a/rust/kcl-lib/src/std/segment.rs +++ b/rust/kcl-lib/src/std/segment.rs @@ -18,7 +18,7 @@ pub async fn segment_end(exec_state: &mut ExecState, args: Args) -> Result Result<[TyF64; 2], KclError> { @@ -31,7 +31,7 @@ fn inner_segment_end(tag: &TagIdentifier, exec_state: &mut ExecState, args: Args })?; let (p, ty) = path.end_point_components(); // Docs generation isn't smart enough to handle ([f64; 2], NumericType). - let point = [TyF64::new(p[0], ty.clone()), TyF64::new(p[1], ty)]; + let point = [TyF64::new(p[0], ty), TyF64::new(p[1], ty)]; Ok(point) } @@ -81,7 +81,7 @@ pub async fn segment_start(exec_state: &mut ExecState, args: Args) -> Result Result<[TyF64; 2], KclError> { @@ -94,7 +94,7 @@ fn inner_segment_start(tag: &TagIdentifier, exec_state: &mut ExecState, args: Ar })?; let (p, ty) = path.start_point_components(); // Docs generation isn't smart enough to handle ([f64; 2], NumericType). - let point = [TyF64::new(p[0], ty.clone()), TyF64::new(p[1], ty)]; + let point = [TyF64::new(p[0], ty), TyF64::new(p[1], ty)]; Ok(point) } diff --git a/rust/kcl-lib/src/std/shapes.rs b/rust/kcl-lib/src/std/shapes.rs index 74685e392..5518f228b 100644 --- a/rust/kcl-lib/src/std/shapes.rs +++ b/rust/kcl-lib/src/std/shapes.rs @@ -71,7 +71,7 @@ async fn inner_circle( let radius = get_radius(radius, diameter, args.source_range)?; let from = [center_u[0] + radius.to_length_units(units), center_u[1]]; - let from_t = [TyF64::new(from[0], ty.clone()), TyF64::new(from[1], ty)]; + let from_t = [TyF64::new(from[0], ty), TyF64::new(from[1], ty)]; let sketch = crate::std::sketch::inner_start_profile(sketch_surface, from_t, None, exec_state, args.clone()).await?; @@ -156,7 +156,7 @@ async fn inner_circle_three_point( exec_state: &mut ExecState, args: Args, ) -> Result { - let ty = p1[0].ty.clone(); + let ty = p1[0].ty; let units = ty.expect_length(); let p1 = point_to_len_unit(p1, units); @@ -172,10 +172,7 @@ async fn inner_circle_three_point( SketchOrSurface::Sketch(group) => group.on, }; - let from = [ - TyF64::new(center[0] + radius, ty.clone()), - TyF64::new(center[1], ty.clone()), - ]; + let from = [TyF64::new(center[0] + radius, ty), TyF64::new(center[1], ty)]; let sketch = crate::std::sketch::inner_start_profile(sketch_surface, from.clone(), None, exec_state, args.clone()).await?; diff --git a/rust/kcl-lib/src/std/sketch.rs b/rust/kcl-lib/src/std/sketch.rs index cd09df518..8b67c7096 100644 --- a/rust/kcl-lib/src/std/sketch.rs +++ b/rust/kcl-lib/src/std/sketch.rs @@ -599,7 +599,7 @@ async fn inner_angled_line_of_x_length( } let to = get_y_component(Angle::from_degrees(angle_degrees), length.n); - let to = [TyF64::new(to[0], length.ty.clone()), TyF64::new(to[1], length.ty)]; + let to = [TyF64::new(to[0], length.ty), TyF64::new(to[1], length.ty)]; let new_sketch = straight_line(StraightLineParams::relative(to, sketch, tag), exec_state, args).await?; @@ -666,7 +666,7 @@ async fn inner_angled_line_of_y_length( } let to = get_x_component(Angle::from_degrees(angle_degrees), length.n); - let to = [TyF64::new(to[0], length.ty.clone()), TyF64::new(to[1], length.ty)]; + let to = [TyF64::new(to[0], length.ty), TyF64::new(to[1], length.ty)]; let new_sketch = straight_line(StraightLineParams::relative(to, sketch, tag), exec_state, args).await?; diff --git a/rust/kcl-lib/std/sketch.kcl b/rust/kcl-lib/std/sketch.kcl index 9c1e59b67..864b0246e 100644 --- a/rust/kcl-lib/std/sketch.kcl +++ b/rust/kcl-lib/std/sketch.kcl @@ -1941,3 +1941,24 @@ export fn subtract2d( /// The shape(s) which should be cut out of the sketch. tool: [Sketch; 1+], ): Sketch {} + +/// Find the plane a face lies on. +/// Returns an error if the face doesn't lie on any plane (for example, the curved face of a cylinder) +///```kcl +/// triangle = startSketchOn(XY) +/// |> polygon(radius = 3, numSides = 3, center = [0, 0]) +/// |> extrude(length = 2) +/// +/// // Find the plane of the triangle's top face. +/// topPlane = planeOf(triangle, face = END) +/// +/// // Create a new plane, 10 units above the triangle's top face. +/// startSketchOn(offsetPlane(topPlane, offset = 10)) +/// ``` +@(impl = std_rust) +export fn planeOf( + /// The solid whose face is being queried. + @solid: Solid, + /// Find the plane which this face lies on. + face: TaggedFace, +): Plane {} diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-planeOf0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-planeOf0.png new file mode 100644 index 0000000000000000000000000000000000000000..df07af62749bad3358ed88ae23f17f80daead70a GIT binary patch literal 19940 zcmeHP+e?#S9G*p4f-I2`y4W%U!;3C5>7v{)6|+bxG>JSx7t%omO=p@e5*aJQi^vFR z%><2x8&Xsr+9E|ec!JOop|fb_0VkT`{B-;J)GmI%+#e9~z}UvvyYG8{`@PTiJkR@V z`ZGxhfdP90WHMP`;)%F(GTAoi>6U>V+ogy8vf=YG*=bW^TugGY-}Jk!#{Cy+x@JX< z>)wZ+#{5&4%sJm){k>hTGSr;37!F15b1fCUzEaYlJ9>4{q8g8p|9EaPw@z-n6V&=o zDXHm&gB$M_w7Vbp9@IK1Mnw1?R5&Q6B>Oy)bac`5EX~)Eq}RmMvn@VOZ}pVDmZ$kX zPH**tJel#%jdNO?r(nB-iIIxp8)NN{RwTWFHO6|wWCnO};0JiH1_5{gJit6C0R&g1 z)c^_R)d0Kast2-#sZD?fUoKG4Y`MT1VD1ON1Ko?yFsZK!31~!JT_M{M{Ex%Z4N2TF;r{aI;}g0gqQ?d z70nWfjc@y=+WSh^-ls`#FP<$@jCSgSk7zx1t!H^rCnF(z07pr&5<}FjLbf{O_GF;9K*W==Y>bWrW+}Fin zjiZSqv?RV%GEkxDBr9Lkq!;u?$;+imHQUFQ+)WOlX=aRMu*A>Oi21#wdfckHf1tZs z`HK!vuAhoxWz^qx*!Uv5e}om=&VpfLWuDNGS0Y5&(|%_eCSp}TV-@+1vc+LG=3x+> zh4_B$-HOoy^vgFM&Lc23WA%}D>=CQFP@iZdV2y8Q<}d&Nlr literal 0 HcmV?d00001 diff --git a/rust/kcl-lib/tests/plane_of/artifact_commands.snap b/rust/kcl-lib/tests/plane_of/artifact_commands.snap new file mode 100644 index 000000000..8a38a1a13 --- /dev/null +++ b/rust/kcl-lib/tests/plane_of/artifact_commands.snap @@ -0,0 +1,381 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact commands plane_of.kcl +--- +{ + "rust/kcl-lib/tests/plane_of/input.kcl": [ + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 2743.2, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -1371.5999999999995, + "y": 2375.680887661472, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -1371.6000000000013, + "y": -2375.680887661472, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 2743.2, + "y": 0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 1828.8, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_adjacency_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "face_is_planar", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 3657.6 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 100.0, + "clobber": false, + "hide": false + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "plane_set_color", + "plane_id": "[uuid]", + "color": { + "r": 0.6, + "g": 0.6, + "b": 0.6, + "a": 0.3 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_visible", + "object_id": "[uuid]", + "hidden": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 1828.8, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.00000000000011198170331403397, + "y": 1828.8, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -1828.8, + "y": 0.00000000000022396340662806795, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -0.0000000000003359451099421019, + "y": -1828.8, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 1828.8, + "y": 0.0, + "z": 0.0 + }, + "relative": false + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + } + ], + "std::appearance": [], + "std::array": [], + "std::math": [], + "std::prelude": [], + "std::sketch": [], + "std::solid": [], + "std::sweep": [], + "std::transform": [], + "std::turns": [], + "std::types": [], + "std::units": [] +} diff --git a/rust/kcl-lib/tests/plane_of/artifact_graph_flowchart.snap b/rust/kcl-lib/tests/plane_of/artifact_graph_flowchart.snap new file mode 100644 index 000000000..4d1e0089e --- /dev/null +++ b/rust/kcl-lib/tests/plane_of/artifact_graph_flowchart.snap @@ -0,0 +1,6 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact graph flowchart plane_of.kcl +extension: md +snapshot_kind: binary +--- diff --git a/rust/kcl-lib/tests/plane_of/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/plane_of/artifact_graph_flowchart.snap.md new file mode 100644 index 000000000..17cc9b7e7 --- /dev/null +++ b/rust/kcl-lib/tests/plane_of/artifact_graph_flowchart.snap.md @@ -0,0 +1,105 @@ +```mermaid +flowchart LR + subgraph path2 [Path] + 2["Path
    [64, 114, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 3["Segment
    [64, 114, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 4["Segment
    [64, 114, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 5["Segment
    [64, 114, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 6["Segment
    [64, 114, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 7[Solid2d] + end + subgraph path21 [Path] + 21["Path
    [311, 361, 0]"] + %% [ProgramBodyItem { index: 2 }, ExpressionStatementExpr, PipeBodyItem { index: 1 }] + 22["Segment
    [311, 361, 0]"] + %% [ProgramBodyItem { index: 2 }, ExpressionStatementExpr, PipeBodyItem { index: 1 }] + 23["Segment
    [311, 361, 0]"] + %% [ProgramBodyItem { index: 2 }, ExpressionStatementExpr, PipeBodyItem { index: 1 }] + 24["Segment
    [311, 361, 0]"] + %% [ProgramBodyItem { index: 2 }, ExpressionStatementExpr, PipeBodyItem { index: 1 }] + 25["Segment
    [311, 361, 0]"] + %% [ProgramBodyItem { index: 2 }, ExpressionStatementExpr, PipeBodyItem { index: 1 }] + 26["Segment
    [311, 361, 0]"] + %% [ProgramBodyItem { index: 2 }, ExpressionStatementExpr, PipeBodyItem { index: 1 }] + 27[Solid2d] + end + 1["Plane
    [41, 58, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }] + 8["Sweep Extrusion
    [120, 139, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }] + 9[Wall] + %% face_code_ref=Missing NodePath + 10[Wall] + %% face_code_ref=Missing NodePath + 11[Wall] + %% face_code_ref=Missing NodePath + 12["Cap Start"] + %% face_code_ref=Missing NodePath + 13["Cap End"] + %% face_code_ref=Missing NodePath + 14["SweepEdge Opposite"] + 15["SweepEdge Adjacent"] + 16["SweepEdge Opposite"] + 17["SweepEdge Adjacent"] + 18["SweepEdge Opposite"] + 19["SweepEdge Adjacent"] + 20["Plane
    [277, 304, 0]"] + %% [ProgramBodyItem { index: 2 }, ExpressionStatementExpr, PipeBodyItem { index: 0 }, CallKwUnlabeledArg] + 28["StartSketchOnPlane
    [263, 305, 0]"] + %% [ProgramBodyItem { index: 2 }, ExpressionStatementExpr, PipeBodyItem { index: 0 }] + 1 --- 2 + 2 --- 3 + 2 --- 4 + 2 --- 5 + 2 --- 6 + 2 --- 7 + 2 ---- 8 + 3 --- 9 + 3 x--> 12 + 3 --- 14 + 3 --- 15 + 4 --- 10 + 4 x--> 12 + 4 --- 16 + 4 --- 17 + 5 --- 11 + 5 x--> 12 + 5 --- 18 + 5 --- 19 + 8 --- 9 + 8 --- 10 + 8 --- 11 + 8 --- 12 + 8 --- 13 + 8 --- 14 + 8 --- 15 + 8 --- 16 + 8 --- 17 + 8 --- 18 + 8 --- 19 + 9 --- 14 + 9 --- 15 + 19 <--x 9 + 15 <--x 10 + 10 --- 16 + 10 --- 17 + 17 <--x 11 + 11 --- 18 + 11 --- 19 + 14 <--x 13 + 16 <--x 13 + 18 <--x 13 + 20 --- 21 + 20 <--x 28 + 21 --- 22 + 21 --- 23 + 21 --- 24 + 21 --- 25 + 21 --- 26 + 21 --- 27 +``` diff --git a/rust/kcl-lib/tests/plane_of/ast.snap b/rust/kcl-lib/tests/plane_of/ast.snap new file mode 100644 index 000000000..7db45f037 --- /dev/null +++ b/rust/kcl-lib/tests/plane_of/ast.snap @@ -0,0 +1,705 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of parsing plane_of.kcl +--- +{ + "Ok": { + "body": [ + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "tri", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "XY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "3", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 3.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "numSides", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "3", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 3.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "polygon", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "moduleId": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "2": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLineBlockComment", + "value": "Get the plane which `tri` ends on.", + "style": "line" + } + } + ] + }, + "startNodes": [] + }, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "moduleId": 0, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "moduleId": 0, + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "p0", + "start": 0, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "face", + "start": 0, + "type": "Identifier" + }, + "arg": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "END", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "planeOf", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "tri", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "moduleId": 0, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "moduleId": 0, + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "end": 0, + "expression": { + "body": [ + { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "offset", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "offsetPlane", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "p0", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "radius", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "numSides", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "4", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 4.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "center", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "polygon", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "moduleId": 0, + "preComments": [ + "", + "", + "// Offset that plane by 2, then draw a square on it." + ], + "start": 0, + "type": "ExpressionStatement", + "type": "ExpressionStatement" + } + ], + "commentStart": 0, + "end": 0, + "innerAttrs": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "settings", + "start": 0, + "type": "Identifier" + }, + "properties": [ + { + "commentStart": 0, + "end": 0, + "key": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "defaultLengthUnit", + "start": 0, + "type": "Identifier" + }, + "moduleId": 0, + "start": 0, + "type": "ObjectProperty", + "value": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "yd", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + ], + "start": 0, + "type": "Annotation" + } + ], + "moduleId": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "2": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "startNodes": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "start": 0 + } +} diff --git a/rust/kcl-lib/tests/plane_of/input.kcl b/rust/kcl-lib/tests/plane_of/input.kcl new file mode 100644 index 000000000..bca0bfa3a --- /dev/null +++ b/rust/kcl-lib/tests/plane_of/input.kcl @@ -0,0 +1,13 @@ +@settings(defaultLengthUnit = yd) + +tri = startSketchOn(XY) + |> polygon(radius = 3, numSides = 3, center = [0, 0]) + |> extrude(length = 2) + +// Get the plane which `tri` ends on. +p0 = planeOf(tri, face = END) + +// Offset that plane by 2, then draw a square on it. +startSketchOn(offsetPlane(p0, offset = 2)) + |> polygon(radius = 2, numSides = 4, center = [0, 0]) + diff --git a/rust/kcl-lib/tests/plane_of/ops.snap b/rust/kcl-lib/tests/plane_of/ops.snap new file mode 100644 index 000000000..adfad681b --- /dev/null +++ b/rust/kcl-lib/tests/plane_of/ops.snap @@ -0,0 +1,254 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Operations executed plane_of.kcl +--- +{ + "rust/kcl-lib/tests/plane_of/input.kcl": [ + { + "type": "StdLibCall", + "name": "startSketchOn", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + }, + "labeledArgs": {}, + "nodePath": { + "steps": [ + { + "type": "ProgramBodyItem", + "index": 0 + }, + { + "type": "VariableDeclarationDeclaration" + }, + { + "type": "VariableDeclarationInit" + }, + { + "type": "PipeBodyItem", + "index": 0 + } + ] + }, + "sourceRange": [] + }, + { + "type": "StdLibCall", + "name": "extrude", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + }, + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Yards" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "nodePath": { + "steps": [ + { + "type": "ProgramBodyItem", + "index": 0 + }, + { + "type": "VariableDeclarationDeclaration" + }, + { + "type": "VariableDeclarationInit" + }, + { + "type": "PipeBodyItem", + "index": 2 + } + ] + }, + "sourceRange": [] + }, + { + "type": "StdLibCall", + "name": "offsetPlane", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + }, + "labeledArgs": { + "offset": { + "value": { + "type": "Number", + "value": 2.0, + "ty": { + "type": "Default", + "len": { + "type": "Yards" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + } + }, + "nodePath": { + "steps": [ + { + "type": "ProgramBodyItem", + "index": 2 + }, + { + "type": "ExpressionStatementExpr" + }, + { + "type": "PipeBodyItem", + "index": 0 + }, + { + "type": "CallKwUnlabeledArg" + } + ] + }, + "sourceRange": [] + }, + { + "type": "StdLibCall", + "name": "startSketchOn", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + }, + "labeledArgs": {}, + "nodePath": { + "steps": [ + { + "type": "ProgramBodyItem", + "index": 2 + }, + { + "type": "ExpressionStatementExpr" + }, + { + "type": "PipeBodyItem", + "index": 0 + } + ] + }, + "sourceRange": [] + } + ], + "std::appearance": [], + "std::array": [], + "std::math": [ + { + "type": "VariableDeclaration", + "name": "PI", + "value": { + "type": "Number", + "value": 3.141592653589793, + "ty": { + "type": "Unknown" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "E", + "value": { + "type": "Number", + "value": 2.718281828459045, + "ty": { + "type": "Known", + "type": "Count" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "TAU", + "value": { + "type": "Number", + "value": 6.283185307179586, + "ty": { + "type": "Known", + "type": "Count" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + } + ], + "std::prelude": [ + { + "type": "VariableDeclaration", + "name": "START", + "value": { + "type": "String", + "value": "start" + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "END", + "value": { + "type": "String", + "value": "end" + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + } + ], + "std::sketch": [], + "std::solid": [], + "std::sweep": [], + "std::transform": [], + "std::turns": [], + "std::types": [], + "std::units": [] +} diff --git a/rust/kcl-lib/tests/plane_of/program_memory.snap b/rust/kcl-lib/tests/plane_of/program_memory.snap new file mode 100644 index 000000000..ddd84bc7c --- /dev/null +++ b/rust/kcl-lib/tests/plane_of/program_memory.snap @@ -0,0 +1,192 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Variables in memory after executing plane_of.kcl +--- +{ + "p0": { + "type": "Plane", + "value": { + "artifactId": "[uuid]", + "id": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 1828.8, + "units": { + "type": "Mm" + } + }, + "value": "Uninit", + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Mm" + } + } + } + }, + "tri": { + "type": "Solid", + "value": { + "type": "Solid", + "id": "[uuid]", + "artifactId": "[uuid]", + "value": [ + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudePlane" + }, + { + "faceId": "[uuid]", + "id": "[uuid]", + "sourceRange": [], + "tag": null, + "type": "extrudePlane" + } + ], + "sketch": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 3.0, + 0.0 + ], + "tag": null, + "to": [ + -1.4999999999999993, + 2.598076211353316 + ], + "type": "ToPoint", + "units": { + "type": "Yards" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -1.4999999999999993, + 2.598076211353316 + ], + "tag": null, + "to": [ + -1.5000000000000013, + -2.5980762113533156 + ], + "type": "ToPoint", + "units": { + "type": "Yards" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -1.5000000000000013, + -2.5980762113533156 + ], + "tag": null, + "to": [ + 3.0, + 0.0 + ], + "type": "ToPoint", + "units": { + "type": "Yards" + } + } + ], + "on": { + "artifactId": "[uuid]", + "id": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "type": "plane", + "value": "XY", + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + } + }, + "start": { + "from": [ + 3.0, + 0.0 + ], + "to": [ + 3.0, + 0.0 + ], + "units": { + "type": "Yards" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Yards" + } + }, + "height": 2.0, + "startCapId": "[uuid]", + "endCapId": "[uuid]", + "units": { + "type": "Yards" + }, + "sectional": false + } + } +} diff --git a/rust/kcl-lib/tests/plane_of/rendered_model.png b/rust/kcl-lib/tests/plane_of/rendered_model.png new file mode 100644 index 0000000000000000000000000000000000000000..441e64b83669814edc99a141d17eacbf07a2c549 GIT binary patch literal 54480 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 polygon(radius = 3, numSides = 3, center = [0, 0]) + |> extrude(length = 2) + +// Get the plane which `tri` ends on. +p0 = planeOf(tri, face = END) + +// Offset that plane by 2, then draw a square on it. +startSketchOn(offsetPlane(p0, offset = 2)) + |> polygon(radius = 2, numSides = 4, center = [0, 0]) From 7f9851ae288cc33ae47d481bc09822946daa9c8f Mon Sep 17 00:00:00 2001 From: Kevin Nadro Date: Tue, 1 Jul 2025 13:01:42 -0500 Subject: [PATCH 31/34] [Chore]: Added url-checker, updated circular-deps, documented new static analysis .txt pattern (#7442) * fix: ignoring url checker files * fix: url checker * fix: auto fmt and cleanup * fix: moving the bash scripts and known files into the scripts repo * fix: removed all url_results and made it be all in memory * fix: fixed the newline issue * fix: url checking as a step to the static analysis * fix: removed old code * chore: writing documentation on our static checker pattern * fix: updating the docs more to be clearer * fix: copy and paste without understanding requirements of ci cd dependencies? do i need all of these? * fix: updating * fix: I thought this got in? * Update CONTRIBUTING.md Co-authored-by: Jace Browning --------- Co-authored-by: Jace Browning --- .github/workflows/static-analysis.yml | 30 ++++++++++ .gitignore | 2 +- CONTRIBUTING.md | 41 ++++++++++++++ package.json | 5 +- scripts/diff-circular-deps.sh | 2 +- scripts/diff-url-checker.sh | 5 ++ .../known/circular.txt | 0 scripts/known/urls.txt | 21 +++++++ scripts/url-checker.sh | 56 +++++++++++++++++++ 9 files changed, 159 insertions(+), 3 deletions(-) create mode 100755 scripts/diff-url-checker.sh rename known-circular.txt => scripts/known/circular.txt (100%) create mode 100644 scripts/known/urls.txt create mode 100755 scripts/url-checker.sh diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 12805fd5d..bc07de134 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -120,6 +120,36 @@ jobs: - run: npm run circular-deps:diff + npm-url-checker: + runs-on: ubuntu-latest + needs: npm-build-wasm + + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' + cache: 'npm' + - run: npm install + + - name: Download all artifacts + uses: actions/download-artifact@v4 + + - name: Copy prepared wasm + run: | + ls -R prepared-wasm + cp prepared-wasm/kcl_wasm_lib_bg.wasm public + mkdir rust/kcl-wasm-lib/pkg + cp prepared-wasm/kcl_wasm_lib* rust/kcl-wasm-lib/pkg + + - name: Copy prepared ts-rs bindings + run: | + ls -R prepared-ts-rs-bindings + mkdir rust/kcl-lib/bindings + cp -r prepared-ts-rs-bindings/* rust/kcl-lib/bindings/ + + - run: npm run url-checker:diff + python-codespell: runs-on: ubuntu-22.04 steps: diff --git a/.gitignore b/.gitignore index 25e5edc45..562e471c2 100644 --- a/.gitignore +++ b/.gitignore @@ -87,4 +87,4 @@ venv .vscode-test .biome/ -.million +.million \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6427419d3..d124a1bf1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -235,6 +235,47 @@ To display logging (to the terminal or console) set `ZOO_LOG=1`. This will log s To enable memory metrics, build with `--features dhat-heap`. +## Running scripts + +There are multiple scripts under the folder path `./scripts` which can be used in various settings. + +### Pattern for a static file, npm run commands, and CI-CD checks + +If you want to implement a static checker follow this pattern. Two static checkers we have are circular dependency checks in our typescript code and url checker to see if any hard coded URL is the typescript application 404s. We have a set of known files in `./scripts/known/*.txt` which is the baseline. + +If you improve the baseline, run the overwrite command and commit the new smaller baseline. Try not to make the baseline bigger, the CI CD will complain. +These baselines are to hold us to higher standards and help implement automated testing against the repository + +#### Output result to stdout +- `npm run circular-deps` +- `npm run url-checker` + +- create a `.sh` file that will run the static checker then output the result to `stdout` + +#### Overwrite result to known .txt file on disk + +If the application needs to overwrite the known file on disk use this pattern. This known .txt file will be source controlled as the baseline + +- `npm run circular-deps:overwrite` +- `npm run url-checker:overwrite` + +#### Diff baseline and current + +These commands will write a /tmp/ file on disk and compare it to the known file in the repository. This command will also be used in the CI CD pipeline for automated checks + +- create a `diff-.sh` file that is the script to diff your tmp file to the baseline +e.g. `diff-url-checker.sh` +```bash +#!/bin/bash +set -euo pipefail + +npm run url-checker > /tmp/urls.txt +diff --ignore-blank-lines -w /tmp/urls.txt ./scripts/known/urls.txt +``` + +- `npm run circular-deps:diff` +- `npm run url-checker:diff` + ## Proposing changes Before you submit a contribution PR to this repo, please ensure that: diff --git a/package.json b/package.json index 5d56502a2..07ebc3da8 100644 --- a/package.json +++ b/package.json @@ -110,8 +110,11 @@ "remove-importmeta": "sed -i 's/import.meta.url/window.location.origin/g' \"./rust/kcl-wasm-lib/pkg/kcl_wasm_lib.js\"; sed -i '' 's/import.meta.url/window.location.origin/g' \"./rust/kcl-wasm-lib/pkg/kcl_wasm_lib.js\" || echo \"sed for both mac and linux\"", "lint-fix": "eslint --fix --ext .ts --ext .tsx src e2e packages/codemirror-lsp-client/src rust/kcl-language-server/client/src", "lint": "eslint --max-warnings 0 --ext .ts --ext .tsx src e2e packages/codemirror-lsp-client/src rust/kcl-language-server/client/src", + "url-checker":"./scripts/url-checker.sh", + "url-checker:overwrite":"npm run url-checker > scripts/known/urls.txt", + "url-checker:diff":"./scripts/diff-url-checker.sh", "circular-deps": "dpdm --no-warning --no-tree -T --skip-dynamic-imports=circular src/index.tsx", - "circular-deps:overwrite": "npm run circular-deps | sed '$d' | grep -v '^npm run' > known-circular.txt", + "circular-deps:overwrite": "npm run circular-deps | sed '$d' | grep -v '^npm run' > scripts/known/circular.txt", "circular-deps:diff": "./scripts/diff-circular-deps.sh", "circular-deps:diff:nodejs": "npm run circular-deps:diff || node ./scripts/diff.js", "files:set-version": "echo \"$(jq --arg v \"$VERSION\" '.version=$v' package.json --indent 2)\" > package.json", diff --git a/scripts/diff-circular-deps.sh b/scripts/diff-circular-deps.sh index 425b363b2..9d95765e6 100755 --- a/scripts/diff-circular-deps.sh +++ b/scripts/diff-circular-deps.sh @@ -2,4 +2,4 @@ set -euo pipefail npm run circular-deps | sed '$d' > /tmp/circular-deps.txt -diff --ignore-blank-lines -w /tmp/circular-deps.txt ./known-circular.txt +diff --ignore-blank-lines -w /tmp/circular-deps.txt ./scripts/known/circular.txt diff --git a/scripts/diff-url-checker.sh b/scripts/diff-url-checker.sh new file mode 100755 index 000000000..21b4e4fa2 --- /dev/null +++ b/scripts/diff-url-checker.sh @@ -0,0 +1,5 @@ +#!/bin/bash +set -euo pipefail + +npm run url-checker > /tmp/urls.txt +diff --ignore-blank-lines -w /tmp/urls.txt ./scripts/known/urls.txt diff --git a/known-circular.txt b/scripts/known/circular.txt similarity index 100% rename from known-circular.txt rename to scripts/known/circular.txt diff --git a/scripts/known/urls.txt b/scripts/known/urls.txt new file mode 100644 index 000000000..2b08be00e --- /dev/null +++ b/scripts/known/urls.txt @@ -0,0 +1,21 @@ + +> zoo-modeling-app@0.0.0 url-checker +> ./scripts/url-checker.sh + +URL STATUS +000 https://${BASE_URL} +301 https://discord.gg/JQEpHR7Nt2 +404 https://github.com/KittyCAD/engine/issues/3528 +404 https://github.com/KittyCAD/modeling-app/commit/${ref} +302 https://github.com/KittyCAD/modeling-app/issues/new/choose +302 https://github.com/KittyCAD/modeling-app/issues/new?template=bug_report.yml +302 https://github.com/KittyCAD/modeling-app/issues/new?title=${title}&body=${body} +404 https://github.com/KittyCAD/modeling-app/releases/tag/v${version} +521 https://placekitten.com/200/200 +302 https://reactrouter.com/en/6.16.0/routers/picking-a-router#using-v64-data-apis +302 https://stackoverflow.com/a/57390160/22753272 +302 https://stackoverflow.com/a/58436959/22753272 +303 https://text-to-cad.zoo.dev/dashboard +307 https://zoo.dev/ +308 https://zoo.dev/docs/api/ml/generate-a-cad-model-from-text +308 https://zoo.dev/docs/kcl diff --git a/scripts/url-checker.sh b/scripts/url-checker.sh new file mode 100755 index 000000000..450e86214 --- /dev/null +++ b/scripts/url-checker.sh @@ -0,0 +1,56 @@ +#!/bin/bash +set -euo pipefail +trap 'echo "$BASH_COMMAND"' ERR + +remove_after_space () { + sed 's/ .*//' +} + +remove_after_backtick () { + sed 's/`.*//' +} + +remove_after_end_paren () { + sed 's/).*//' +} + +remove_after_double_quote () { + sed 's/".*//' +} + +remove_after_gt () { + sed 's/>.*//' +} + +remove_after_comma () { + sed 's/,.*//' +} + +# Search all src/**/*.ts files +val1=$(grep -Eoh "(https)://[^']+" src/**/*.ts | remove_after_space | remove_after_backtick | remove_after_end_paren | remove_after_double_quote | remove_after_gt | remove_after_comma) + +# Search all src/**/*.tsx files +val2=$(grep -Eoh "(https)://[^']+" src/**/*.tsx | remove_after_space | remove_after_backtick | remove_after_end_paren | remove_after_double_quote | remove_after_gt | remove_after_comma) + +# Required a newline between them when combining since there is not one at the end of val1 +combined="$val1"$'\n'"$val2" + +# Merge both ts and tsx results and unique them +uniqued=$(echo "$combined" | sort | uniq) + +# All urls and status codes +all="URL\tSTATUS\n" + +# All non 200 urls and status codes +problematic="URL\tSTATUS\n" +while read line; do + # || true this curl request to bypass any failures and not have the scrip panic. + # the set -euo pipefail will cause a panic if a curl fails + status=$(curl -o /dev/null -s -w "%{http_code}\n" $line || true) + all+="$status\t$line\n" + if [[ "$status" -ne 200 ]]; then + # list status first over line because of white space formatting, less annoying for diffing + problematic+="$status\t$line\n" + fi +done < <(echo "$uniqued") +echo -e $problematic | column -t From 051bb0589e324db2403d1e96d275c08764b9582c Mon Sep 17 00:00:00 2001 From: Adam Chalmers Date: Tue, 1 Jul 2025 13:26:04 -0500 Subject: [PATCH 32/34] KCL: rectangle function (#7616) * KCL test for rectangle * Rectangle function * Rectangle helper tests * Rectangle helper * Fix clippy lints * Update docs * fmt * Fix bug * fmt * Fix doc comments * Update generated docs --------- Co-authored-by: Jonathan Tran --- .../kcl-std/functions/std-sketch-rectangle.md | 55 ++ docs/kcl-std/index.md | 1 + docs/kcl-std/modules/std-sketch.md | 1 + rust/kcl-derive-docs/src/example_tests.rs | 2 + rust/kcl-lib/src/execution/geometry.rs | 2 +- rust/kcl-lib/src/simulation_tests.rs | 42 ++ rust/kcl-lib/src/std/mod.rs | 4 + rust/kcl-lib/src/std/shapes.rs | 113 +++ rust/kcl-lib/std/sketch.kcl | 33 + ..._test_example_fn_std-sketch-rectangle0.png | Bin 0 -> 24230 bytes ..._test_example_fn_std-sketch-rectangle1.png | Bin 0 -> 24230 bytes .../kcl-lib/tests/rect/artifact_commands.snap | 163 ++++ .../tests/rect/artifact_graph_flowchart.snap | 6 + .../rect/artifact_graph_flowchart.snap.md | 27 + rust/kcl-lib/tests/rect/ast.snap | 701 ++++++++++++++++++ rust/kcl-lib/tests/rect/input.kcl | 7 + rust/kcl-lib/tests/rect/ops.snap | 128 ++++ rust/kcl-lib/tests/rect/program_memory.snap | 181 +++++ rust/kcl-lib/tests/rect/rendered_model.png | Bin 0 -> 26188 bytes rust/kcl-lib/tests/rect/unparsed.snap | 11 + .../tests/rect_helper/artifact_commands.snap | 163 ++++ .../rect_helper/artifact_graph_flowchart.snap | 6 + .../artifact_graph_flowchart.snap.md | 24 + rust/kcl-lib/tests/rect_helper/ast.snap | 233 ++++++ rust/kcl-lib/tests/rect_helper/input.kcl | 2 + rust/kcl-lib/tests/rect_helper/ops.snap | 128 ++++ .../tests/rect_helper/program_memory.snap | 144 ++++ .../tests/rect_helper/rendered_model.png | Bin 0 -> 26188 bytes rust/kcl-lib/tests/rect_helper/unparsed.snap | 6 + 29 files changed, 2182 insertions(+), 1 deletion(-) create mode 100644 docs/kcl-std/functions/std-sketch-rectangle.md create mode 100644 rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-rectangle0.png create mode 100644 rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-rectangle1.png create mode 100644 rust/kcl-lib/tests/rect/artifact_commands.snap create mode 100644 rust/kcl-lib/tests/rect/artifact_graph_flowchart.snap create mode 100644 rust/kcl-lib/tests/rect/artifact_graph_flowchart.snap.md create mode 100644 rust/kcl-lib/tests/rect/ast.snap create mode 100644 rust/kcl-lib/tests/rect/input.kcl create mode 100644 rust/kcl-lib/tests/rect/ops.snap create mode 100644 rust/kcl-lib/tests/rect/program_memory.snap create mode 100644 rust/kcl-lib/tests/rect/rendered_model.png create mode 100644 rust/kcl-lib/tests/rect/unparsed.snap create mode 100644 rust/kcl-lib/tests/rect_helper/artifact_commands.snap create mode 100644 rust/kcl-lib/tests/rect_helper/artifact_graph_flowchart.snap create mode 100644 rust/kcl-lib/tests/rect_helper/artifact_graph_flowchart.snap.md create mode 100644 rust/kcl-lib/tests/rect_helper/ast.snap create mode 100644 rust/kcl-lib/tests/rect_helper/input.kcl create mode 100644 rust/kcl-lib/tests/rect_helper/ops.snap create mode 100644 rust/kcl-lib/tests/rect_helper/program_memory.snap create mode 100644 rust/kcl-lib/tests/rect_helper/rendered_model.png create mode 100644 rust/kcl-lib/tests/rect_helper/unparsed.snap diff --git a/docs/kcl-std/functions/std-sketch-rectangle.md b/docs/kcl-std/functions/std-sketch-rectangle.md new file mode 100644 index 000000000..5654a837b --- /dev/null +++ b/docs/kcl-std/functions/std-sketch-rectangle.md @@ -0,0 +1,55 @@ +--- +title: "rectangle" +subtitle: "Function in std::sketch" +excerpt: "Sketch a rectangle." +layout: manual +--- + +Sketch a rectangle. + +```kcl +rectangle( + @sketchOrSurface: Sketch | Plane | Face, + width: number(Length), + height: number(Length), + center?: Point2d, + corner?: Point2d, +): Sketch +``` + + + +### Arguments + +| Name | Type | Description | Required | +|----------|------|-------------|----------| +| `sketchOrSurface` | [`Sketch`](/docs/kcl-std/types/std-types-Sketch) or [`Plane`](/docs/kcl-std/types/std-types-Plane) or [`Face`](/docs/kcl-std/types/std-types-Face) | Sketch to extend, or plane or surface to sketch on. | Yes | +| `width` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | Rectangle's width along X axis. | Yes | +| `height` | [`number(Length)`](/docs/kcl-std/types/std-types-number) | Rectangle's height along Y axis. | Yes | +| `center` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The center of the rectangle. Incompatible with `corner`. | No | +| `corner` | [`Point2d`](/docs/kcl-std/types/std-types-Point2d) | The corner of the rectangle. Incompatible with `center`. This will be the corner which is most negative on both X and Y axes. | No | + +### Returns + +[`Sketch`](/docs/kcl-std/types/std-types-Sketch) - A sketch is a collection of paths. + + +### Examples + +```kcl +exampleSketch = startSketchOn(-XZ) + |> rectangle(center = [0, 0], width = 10, height = 5) + +``` + +![Rendered example of rectangle 0](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABebUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqmf5pm/6pqdz1VVXXXXVVVdd9X+YJNk2DyBJts0DSJJt8wCSZNs8gCTZNg8gSbbNA0iSbfMAkmTbPIAk2TYPIEm2zQNIkm3zAJJk2wAf8iEf8hCuuuqqq64CoHLVVVddddVln/u5n/tbr/u6r/tgrrrqqquuuuqqq676X++bvumbnv4hH/IhD+Gqq6666ioqV1111VVXPct6vWZ7e5urrrrqqquuuuqqq/73GoaBq6666qqrnoXKVVddddVVV1111VVXXXXVVVf9H7K/v88//MM//DZXXXXVVVcBEFx11VVXXXXZ3//93//2wcEBV1111VVXXXXVVVf97zYMA/fdd9+tXHXVVVddBUBw1VVXXXXVZf/wD//wO3fffTdXXXXVVVddddVVV/3vNgwDZ8+efQZXXXXVVVcBULnqqquuuuqqq6666qqrrrrqqv9D9vf3+Yd/+Iff5qqrrrrqKgAqV1111VVXXXb27Nlbueqqq6666qqrrrrqf71hGLjqqquuuupZCK666qqrrrrsvvvuu/W+++67dRgGrrrqqquuuuqqq6763+2+++67lauuuuqqqwAIrrrqqquuepazZ8/eul6vueqqq6666qqrrrrqf6fz58/zW7/1W9/NVVddddVV9yO46qqrrrrqWe67775bDw4OuOqqq6666qqrrrrqqquuuuqq/yMIrrrqqquuepb77rvv1rvvvpurrrrqqquuuuqqq/53Ojg44B/+4R9+h6uuuuqqq+5H5aqrrrrqqmf5h3/4h9/hqquuuuqqq6666qqrrrrqqqv+76By1VVXXXXVs5w9e/ZWrrrqqquuuuqqq676X2t/f59/+Id/+G2uuuqqq666H5Wrrrrqqque5b777ruVq6666qqrrrrqqqv+1xqGgfvuu+9Wrrrqqquuuh/BVVddddVVz+Ef/uEffnt/f5+rrrrqqquuuuqqq/53OTg44B/+4R9+m6uuuuqqqx6IylVXXXXVVVddddVVV1111VVX/R+wXq+57777buWqq6666qoHIrjqqquuuuo5/P3f//1vP/nJT+aqq6666qqrrrrqqv9dhmHgvvvuu5WrrrrqqqseiMpVV1111VXP4R/+4R9+h6uuuuqqq6666qqr/tcZhoGzZ88+g6uuuuqqqx6IylVXXXXVVc/h7Nmzt3LVVVddddVVV1111f86+/v7/MM//MNvc9VVV1111QNRueqqq6666qqrrrrqqquuuuqq/wOGYeC+++67lauuuuqqqx6I4Kqrrrrqqudw33333XrffffdOgwDV1111VVXXXXVVVf97zAMA1ddddVVVz1fBFddddVVVz2Ps2fP3rper7nqqquuuuqqq6666n+H/f19fuu3fut7uOqqq6666rkRXHXVVVdd9Tz+/u///rcPDg646qqrrrrqqquuuuqqq6666qr/5Qiuuuqqq656HmfPnn3G3XffzVVXXXXVVVddddVV/zscHBzwD//wD7/NVVddddVVz43KVVddddVVz+O+++67lauuuuqqq6666qqr/tdYr9ecPXv2Vq666qqrrnpuVK666qqrrnoeZ8+evZWrrrrqqquuuuqqq/7XGIaB++6771auuuqqq656bgRXXXXVVVc9j/vuu+9WgGEYuOqqq6666qqrrrrqf75hGLjvvvtu5aqrrrrqqudGcNVVV1111fP1D//wD7+9Xq+56qqrrrrqqquuuup/tv39ff7hH/7ht7nqqquuuur5oXLVVVddddXzdd999906DANXXXXVVVddddVVV/3PNgwD9913361cddVVV131/BBcddVVV131fN133323PuMZz+Cqq6666qqrrrrqqv/ZDg4OuO+++27lqquuuuqq54fKVVddddVVz9c//MM//A5XXXXVVVddddVVV/2vcPbs2Wdw1VVXXXXV80Plqquuuuqq5+vs2bO3ctVVV1111VVXXXXV/3j7+/v8wz/8w29z1VVXXXXV80Plqquuuuqqq6666qqrrrrqqqv+FxuGgfvuu+9Wrrrqqquuen4Irrrqqquuer7uu+++W//hH/7ht/f397nqqquuuuqqq6666n+mYRi47777buWqq6666qoXhMpVV1111VVXXXXVVVddddVVV/0vtb+/zz/8wz/8NlddddVVV70gBFddddVVV71Af//3f//bBwcHXHXVVVddddVVV131P9MwDNx33323ctVVV1111QtCcNVVV1111Qv0D//wD79z9913c9VVV1111VVXXXXV/0zDMHD27NlncNVVV1111QtC5aqrrrrqqquuuuqqq6666qqr/pfa39/nH/7hH36bq6666qqrXhAqV1111VVXvUBnz569lauuuuqqq6666qqr/scahoGrrrrqqqteKIKrrrrqqqteoPvuu+/W++6779ZhGLjqqquuuuqqq6666n+m++6771auuuqqq656QQiuuuqqq656oc6ePXvrer3mqquuuuqqq6666qr/Wc6fP89v/dZvfTdXXXXVVVe9MARXXXXVVVe9UPfdd9+tBwcHXHXVVVddddVVV1111VVXXXXV/0IEV1111VVXvVD33XffrXfffTdXXXXVVVddddVVV/3PcnBwwD/8wz/8DlddddVVV70wVK666qqrrnqh/uEf/uF3uOqqq6666qqrrrrqqquuuuqq/52oXHXVVVdd9UKdPXv2Vq666qqrrrrqqquu+h9nf3+ff/iHf/htrrrqqquuemGoXHXVVVdd9ULdd999t3LVVVddddVVV1111f84wzBw33333cpVV1111VUvDMFVV1111VX/on/4h3/47f39fa666qqrrrrqqquu+p/h4OCAf/iHf/htrrrqqquu+pdQueqqq6666qqrrrrqqquuuuqq/2XW6zX33XffrVx11VVXXfUvIbjqqquuuupf9Pd///e//eQnP5mrrrrqqquuuuqqq/5nGIaB++6771auuuqqq676l1C56qqrrrrqX/QP//APv8NVV1111VVXXXXVVf9jDMPA2bNnn8FVV1111VX/EipXXXXVVVf9i86ePXsrV1111VVXXXXVVVf9j7G/v88//MM//DZXXXXVVVf9S6hcddVVV1111VVXXXXVVVddddX/MsMwcN99993KVVddddVV/xKCq6666qqr/kX33Xffrffdd9+twzBw1VVXXXXVVVddddV/r2EYuOqqq6666kVGcNVVV1111Yvk7Nmzt67Xa6666qqrrrrqqquu+u+1v7/Pb/3Wb30PV1111VVXvSgIrrrqqquuepH8/d///W8fHBxw1VVXXXXVVVddddVVV1111VX/ixBcddVVV131Ijl79uwz7r77bq666qqrrrrqqquu+u91cHDAP/zDP/w2V1111VVXvSioXHXVVVdd9SK57777buWqq6666qqrrrrqqv926/Was2fP3spVV1111VUvCipXXXXVVVe9SM6ePXsrV1111VVXXXXVVVf9txuGgfvuu+9WrrrqqquuelEQXHXVVVdd9SK57777bgUYhoGrrrrqqquuuuqqq/77DMPAfffddytXXXXVVVe9KAiuuuqqq656kf3DP/zDb6/Xa6666qqrrrrqqquu+u+xv7/PP/zDP/w2V1111VVXvaioXHXVVVdd9SK77777bh2Ggauuuuqqq6666qqr/nsMw8B99913K1ddddVVV72oCK666qqrrnqR3Xfffbc+4xnP4Kqrrrrqqquuuuqq/x4HBwfcd999t3LVVVddddWLispVV1111VUvsn/4h3/4Ha666qqrrrrqqquu+m919uzZZ3DVVVddddWLispVV1111VUvsrNnz97KVVddddVVV1111VX/bfb39/mHf/iH3+aqq6666qoXFZWrrrrqqquuuuqqq6666qqrrvpfYhgG7rvvvlu56qqrrrrqRUVw1VVXXXXVi+y+++679R/+4R9+e39/n6uuuuqqq6666qqr/msNw8B99913K1ddddVVV/1rULnqqquuuuqqq6666qqrrrrqqv8F9vf3+Yd/+Iff5qqrrrrqqn8Ngquuuuqqq/5V/v7v//63Dw4OuOqqq6666qqrrrrqv9YwDNx33323ctVVV1111b8GwVVXXXXVVf8q//AP//A7d999N1ddddVVV1111VVX/dcahoGzZ88+g6uuuuqqq/41qFx11VVXXXXVVVddddVVV1111f8C+/v7/MM//MNvc9VVV1111b8Glauuuuqqq/5Vzp49eytXXXXVVVddddVVV/2XG4aBq6666qqr/tUIrrrqqquu+le57777br3vvvtuHYaBq6666qqrrrrqqqv+a9133323ctVVV1111b8GwVVXXXXVVf9qZ8+evXW9XnPVVVddddVVV1111X+N8+fP81u/9VvfzVVXXXXVVf9aBFddddVVV/2r3XfffbceHBxw1VVXXXXVVVddddVVV1111VX/wxFcddVVV131r3bffffdevfdd3PVVVddddVVV1111X+Ng4MD/uEf/uF3uOqqq6666l+LylVXXXXVVf9q//AP//A7XHXVVVddddVVV1111VVXXXXV/3xUrrrqqquu+lc7e/bsrVx11VVXXXXVVVdd9V9mf3+ff/iHf/htrrrqqquu+teictVVV1111b/afffddytXXXXVVVddddVVV/2XGYaB++6771auuuqqq6761yK46qqrrrrq3+Qf/uEffnt/f5+rrrrqqquuuuqqq/5zHRwc8A//8A+/zVVXXXXVVf8WVK666qqrrrrqqquuuuqqq6666n+w9XrNfffddytXXXXVVVf9WxBcddVVV131b/L3f//3v/3kJz+Zq6666qqrrrrqqqv+cw3DwH333XcrV1111VVX/VtQueqqq6666t/kH/7hH36Hq6666qqrrrrqqqv+0w3DwNmzZ5/BVVddddVV/xZUrrrqqquu+jc5e/bsrVx11VVXXXXVVVdd9Z9uf3+ff/iHf/htrrrqqquu+regctVVV1111VVXXXXVVVddddVV/4MNw8B99913K1ddddVVV/1bEFx11VVXXfVvct99991633333ToMA1ddddVVV1111VVX/ecYhoGrrrrqqqv+XQiuuuqqq676Nzt79uyt6/Waq6666qqrrrrqqqv+c+zv7/Nbv/Vb38NVV1111VX/VgRXXXXVVVf9m/393//9bx8cHHDVVVddddVVV1111VVXXXXVVf9DEVx11VVXXfVvdvbs2WfcfffdXHXVVVddddVVV131n+Pg4IB/+Id/+G2uuuqqq676t6Jy1VVXXXXVv9l99913K1ddddVVV1111VVX/adZr9ecPXv2Vq666qqrrvq3onLVVVddddW/2dmzZ2/lqquuuuqqq6666qr/NMMwcN99993KVVddddVV/1YEV1111VVX/Zvdd999twIMw8BVV1111VVXXXXVVf/xhmHgvvvuu5Wrrrrqqqv+rQiuuuqqq676d/mHf/iH316v11x11VVXXXXVVVdd9R9rf3+ff/iHf/htrrrqqquu+vegctVVV1111b/Lfffdd+swDFx11VVXXXXVVVdd9R9rGAbuu+++W7nqqquuuurfg+Cqq6666qp/l/vuu+/WZzzjGVx11VVXXXXVVVdd9R/r4OCA++6771auuuqqq67696By1VVXXXXVv8s//MM//A5XXXXVVVddddVVV/2nOHv27DO46qqrrrrq34PKVVddddVV/y5nz569lauuuuqqq6666qqr/sPt7+/zD//wD7/NVVddddVV/x5Urrrqqquuuuqqq6666qqrrrrqf6BhGLjvvvtu5aqrrrrqqn8Pgquuuuqqq/5d7rvvvlv/4R/+4bf39/e56qqrrrrqqquuuuo/xjAM3Hfffbdy1VVXXXXVvxeVq6666qqrrrrqqquuuuqqq676H2Z/f59/+Id/+G2uuuqqq6769yK46qqrrrrq3+3v//7vf/vg4ICrrrrqqquuuuqqq/5jDMPAfffddytXXXXVVVf9exFcddVVV1317/YP//APv3P33Xdz1VVXXXXVVVddddV/jGEYOHv27DO46qqrrrrq34vKVVddddVVV1111VVXXXXVVVf9D7O/v88//MM//DZXXXXVVVf9e1G56qqrrrrq3+3s2bO3ctVVV1111VVXXXXVf5hhGLjqqquuuuo/BMFVV1111VX/bvfdd9+t9913363DMHDVVVddddVVV1111X+M++6771auuuqqq6769yK46qqrrrrqP8TZs2dvXa/XXHXVVVddddVVV13173P+/Hl+67d+67u56qqrrrrqPwLBVVddddVV/yHuu+++Ww8ODrjqqquuuuqqq6666qqrrrrqqv9BCK666qqrrvoPcd9999169913c9VVV1111VVXXXXVv8/BwQH/8A//8DtcddVVV131H4HKVVddddVV/yH+4R/+4Xe46qqrrrrqqquuuuqqq6666qr/WahcddVVV131H+Ls2bO3ctVVV1111VVXXXXVv9v+/j7/8A//8NtcddVVV131H4HKVVddddVV/yHuu+++W7nqqquuuuqqq6666t9tGAbuu+++W7nqqquuuuo/AsFVV1111VX/Yf7hH/7ht/f397nqqquuuuqqq6666t/m4OCAf/iHf/htrrrqqquu+o9C5aqrrrrqqquuuuqqq6666qqr/odYr9fcd999t3LVVVddddV/FIKrrrrqqqv+w/z93//9bz/5yU/mqquuuuqqq6666qp/m2EYuO+++27lqquuuuqq/yhUrrrqqquu+g/zD//wD7/DVVddddVVV1111VX/ZsMwcPbs2Wdw1VVXXXXVfxQqV1111VVX/Yc5e/bsrVx11VVXXXXVVVdd9W+2v7/PP/zDP/w2V1111VVX/UehctVVV1111VVXXXXVVVddddVV/0MMw8B99913K1ddddVVV/1HIbjqqquuuuo/zH333Xfrfffdd+swDFx11VVXXXXVVVdd9a8zDANXXXXVVVf9hyO46qqrrrrqP9TZs2dvXa/XXHXVVVddddVVV131r7O/v89v/dZvfQ9XXXXVVVf9RyK46qqrrrrqP9Tf//3f//bBwQFXXXXVVVddddVVV1111VVXXfU/AMFVV1111VX/oc6ePfuMu+++m6uuuuqqq6666qqr/nUODg74h3/4h9/mqquuuuqq/0hUrrrqqquu+g9133333cpVV1111VVXXXXVVf9q6/Was2fP3spVV1111VX/kahcddVVV131H+rs2bO3ctVVV1111VVXXXXVv9owDNx33323ctVVV1111X8kgquuuuqqq/5D3XfffbcCDMPAVVddddVVV1111VUvumEYuO+++27lqquuuuqq/0gEV1111VVX/Yf7h3/4h99er9dcddVVV1111VVXXfWi2d/f5x/+4R9+m6uuuuqqq/6jUbnqqquuuuo/3H333XfrMAxcddVVV1111VVXXfWiGYaB++6771auuuqqq676j0Zw1VVXXXXVf7j77rvv1mc84xlcddVVV1111VVXXfWiOTg44L777ruVq6666qqr/qNRueqqq6666j/cP/zDP/wOV1111VVXXXXVVVf9q5w9e/YZXHXVVVdd9R+NylVXXXXVVf/hzp49eytXXXXVVVddddVVV73I9vf3+Yd/+Iff5qqrrrrqqv9oVK666qqrrrrqqquuuuqqq6666r/ZMAzcd999t3LVVVddddV/NIKrrrrqqqv+w9133323/sM//MNv7+/vc9VVV1111VVXXXXVCzcMA/fdd9+tXHXVVVdd9Z+BylVXXXXVVVddddVVV1111VVX/Tfa39/nH/7hH36bq6666qqr/jMQXHXVVVdd9Z/i7//+73/74OCAq6666qqrrrrqqqteuGEYuO+++27lqquuuuqq/wwEV1111VVX/af4h3/4h9+5++67ueqqq6666qqrrrrqhRuGgbNnzz6Dq6666qqr/jNQueqqq6666qqrrrrqqquuuuqq/0b7+/v8wz/8w29z1VVXXXXVfwYqV1111VVX/ac4e/bsrVx11VVXXXXVVVdd9S8ahoGrrrrqqqv+0xBcddVVV131n+K+++679b777rt1GAauuuqqq6666qqrrnrh7rvvvlu56qqrrrrqPwPBVVddddVV/2nOnj1763q95qqrrrrqqquuuuqq5+/8+fP81m/91ndz1VVXXXXVfxaCq6666qqr/tPcd999tx4cHHDVVVddddVVV1111VVXXXXVVf9NCK666qqrrvpPc99999169913c9VVV1111VVXXXXV83dwcMA//MM//A5XXXXVVVf9Z6Fy1VVXXXXVf5p/+Id/+B2uuuqqq6666qqrrrrqqquuuuq/D5Wrrrrqqqv+05w9e/ZWrrrqqquuuuqqq656gfb39/mHf/iH3+aqq6666qr/LFSuuuqqq676T3PffffdylVXXXXVVVddddVVL9AwDNx33323ctVVV1111X8Wgquuuuqqq/5T/cM//MNv7+/vc9VVV1111VVXXXXVczo4OOAf/uEffpurrrrqqqv+M1G56qqrrrrqqquuuuqqq6666qr/Buv1mvvuu+9Wrrrqqquu+s9EcNVVV1111X+qv//7v//tJz/5yVx11VVXXXXVVVdd9ZyGYeC+++67lauuuuqqq/4zUbnqqquuuuo/1T/8wz/8DlddddVVV1111VVXPY9hGDh79uwzuOqqq6666j8Tlauuuuqqq/5TnT179lauuuqqq6666qqrrnoe+/v7/MM//MNvc9VVV1111X8mKlddddVVV1111VVXXXXVVVdd9d9gGAbuu+++W7nqqquuuuo/E8FVV1111VX/qe67775b77vvvlv39/e56qqrrrrqqquuuuqKYRi46qqrrrrqvwTBVVddddVV/+nOnj17K1ddddVVV1111VVXPcv+/j6/9Vu/9T1cddVVV131n43gqquuuuqq/3R///d//9sHBwdcddVVV1111VVXXXXVVVddddV/MYKrrrrqqqv+0509e/YZd999N1ddddVVV1111VVXXXFwcMA//MM//DZXXXXVVVf9Z6Ny1VVXXXXVf7r77rvvVq666qqrrrrqqquuepb9/X3Onj17K1ddddVVV/1no3LVVVddddV/urNnz97KVVddddVVV1111VXP4b777ruVq6666qqr/rMRXHXVVVdd9Z/uvvvuuxVgGAauuuqqq6666qqrroJhGLjvvvtu5aqrrrrqqv9sBFddddVVV/2X+Id/+IffXq/XXHXVVVddddVVV/1/t7+/zz/8wz/8NlddddVVV/1XoHLVVVddddV/ifvuu+/WYRi46qqrrrrqqquu+v9uGAbuu+++W7nqqquuuuq/AsFVV1111VX/Je67775bn/GMZ3DVVVddddVVV131/93BwQH33XffrVx11VVXXfVfgcpVV1111VX/Jf7hH/7hd7jqqquuuuqqq6666rKzZ88+g6uuuuqqq/4rULnqqquuuuq/xNmzZ2/lqquuuuqqq6666ir29/f5h3/4h9/mqquuuuqq/wpUrrrqqquuuuqqq6666qqrrrrqv9AwDNx33323ctVVV1111X8Fgquuuuqqq/5L3Hfffbf+wz/8w2/v7+9z1VVXXXXVVVdd9f/VMAzcd999t3LVVVddddV/FSpXXXXVVVddddVVV1111VVXXfVfZH9/n3/4h3/4ba666qqrrvqvQnDVVVddddV/mb//+7//7YODA6666qqrrrrqqqv+vxqGgfvuu+9Wrrrqqquu+q9CcNVVV1111X+Zf/iHf/idu+++m6uuuuqqq6666qr/r4Zh4OzZs8/gqquuuuqq/ypUrrrqqquuuuqqq6666qqrrrrqv8j+/j7/8A//8NtcddVVV131X4XKVVddddVV/2XOnj17K1ddddVVV1111VX/jw3DwFVXXXXVVf+lCK666qqrrvovc999991633333ToMA1ddddVVV1111VX/X9133323ctVVV1111X8Vgquuuuqqq/5LnT179tb1es1VV1111VVXXXXV/zfnz5/nt37rt76bq6666qqr/isRXHXVVVdd9V/qvvvuu/Xg4ICrrrrqqquuuuqqq6666qqrrvovQHDVVVddddV/qfvuu+/Wu+++m6uuuuqqq6666qr/bw4ODviHf/iH3+Gqq6666qr/SlSuuuqqq676L/UP//APv8NVV1111VVXXXXVVVddddVVV/3XoHLVVVddddV/qbNnz97KVVddddVVV1111f9D+/v7/MM//MNvc9VVV1111X8lKlddddVVV/2Xuu+++27lqquuuuqqq6666v+hYRi47777buWqq6666qr/SgRXXXXVVVf9l/uHf/iH397f3+eqq6666qqrrrrq/4uDgwP+4R/+4be56qqrrrrqvxqVq6666qqrrrrqqquuuuqqq676T7Zer7nvvvtu5aqrrrrqqv9qBFddddVVV/2X+/u///vffvKTn8xVV1111VVXXXXV/xfDMHDffffdylVXXXXVVf/VqFx11VVXXfVf7h/+4R9+h6uuuuqqq6666qr/R4Zh4OzZs8/gqquuuuqq/2pUrrrqqquu+i939uzZW7nqqquuuuqqq676f2R/f59/+Id/+G2uuuqqq676r0blqquuuuqqq6666qqrrrrqqqv+kw3DwH333XcrV1111VVX/VcjuOqqq6666r/cfffdd+t999136/7+PlddddVVV1111VX/1w3DwFVXXXXVVf9tCK666qqrrvpvcfbs2Vu56qqrrrrqqquu+n9gf3+f3/qt3/oerrrqqquu+u9AcNVVV1111X+Lv//7v//tg4MDrrrqqquuuuqqq6666qqrrrrqPxHBVVddddVV/y3Onj37jLvvvpurrrrqqquuuuqq/+sODg74h3/4h9/mqquuuuqq/w5Urrrqqquu+m9x33333cpVV1111VVXXXXV/wP7+/ucPXv2Vq666qqrrvrvQOWqq6666qr/FmfPnr2Vq6666qqrrrrqqv8n7rvvvlu56qqrrrrqvwPBVVddddVV/y3uu+++WwGGYeCqq6666qqrrrrq/7JhGLjvvvtu5aqrrrrqqv8OBFddddVVV/23+Yd/+IffXq/XXHXVVVddddVVV/1ftb+/zz/8wz/8NlddddVVV/13oXLVVVddddV/m/vuu+/WYRi46qqrrrrqqquu+r9qGAbuu+++W7nqqquuuuq/C8FVV1111VX/be67775bn/GMZ3DVVVddddVVV131f9XBwQH33XffrVx11VVXXfXfhcpVV1111VX/bf7hH/7hd7jqqquuuuqqq676P+7s2bPP4Kqrrrrqqv8uVK666qqrrvpvc/bs2Vu56qqrrrrqqquu+j9sf3+ff/iHf/htrrrqqquu+u9C5aqrrrrqqquuuuqqq6666qqr/pMMw8B99913K1ddddVVV/13Ibjqqquuuuq/zX333XfrP/zDP/z2/v4+V1111VVXXXXVVf/XDMPAfffddytXXXXVVVf9d6Jy1VVXXXXVVVddddVVV1111VX/Cfb39/mHf/iH3+aqq6666qr/TgRXXXXVVVf9t/r7v//73z44OOCqq6666qqrrrrq/5phGLjvvvtu5aqrrrrqqv9OBFddddVVV/23+od/+Iffufvuu7nqqquuuuqqq676v2YYBs6ePfsMrrrqqquu+u9E5aqrrrrqqquuuuqqq6666qqr/hPs7+/zD//wD7/NVVddddVV/52oXHXVVVdd9d/q7Nmzt3LVVVddddVVV131f9AwDFx11VVXXfXfjuCqq6666qr/Vvfdd9+t9913363DMHDVVVddddVVV131f8199913K1ddddVVV/13Irjqqquuuuq/3dmzZ29dr9dcddVVV1111VVX/V9x/vx5fuu3fuu7ueqqq6666r8bwVVXXXXVVf/t/v7v//63Dw4OuOqqq6666qqrrrrqqquuuuqq/2AEV1111VVX/Y9w9913c9VVV1111VVXXfV/xcHBAf/wD//wO1x11VVXXfXfjcpVV1111VX/7f7hH/7hd7jqqquuuuqqq6666qqrrrrqqv94VK666qqrrvpvd/bs2Vu56qqrrrrqqquu+j9kf3+ff/iHf/htrrrqqquu+u9G5aqrrrrqqv929913361cddVVV1111VVX/R8yDAP33XffrVx11VVXXfXfjeCqq6666qr/Ef7hH/7ht/f397nqqquuuuqqq6763+7g4IB/+Id/+G2uuuqqq676n4DKVVddddVVV1111VVXXXXVVVf9B1qv19x33323ctVVV1111f8EBFddddVVV/2P8Pd///e//eQnP5mrrrrqqquuuuqq/+2GYeC+++67lauuuuqqq/4noHLVVVddddX/CP/wD//wO1x11VVXXXXVVVf9HzAMA2fPnn0GV1111VVX/U9A5aqrrrrqqv8Rzp49eytXXXXVVVddddVV/wfs7+/zD//wD7/NVVddddVV/xNQueqqq6666qqrrrrqqquuuuqq/0DDMHDffffdylVXXXXVVf8TEFx11VVXXfU/wn333Xfrfffdd+v+/j5XXXXVVVddddVV/1sNw8BVV1111VX/oxBcddVVV131P8bZs2dv5aqrrrrqqquuuup/sf39fX7rt37re7jqqquuuup/CoKrrrrqqqv+x/j7v//73z44OOCqq6666qqrrrrqqquuuuqqq/6DEFx11VVXXfU/xtmzZ59x9913c9VVV1111VVXXfW/1cHBAf/wD//w21x11VVXXfU/BZWrrrrqqqv+x7jvvvtu5aqrrrrqqquuuup/sf39fc6ePXsrV1111VVX/U9B5aqrrrrqqv8xzp49eytXXXXVVVddddVV/8vdd999t3LVVVddddX/FARXXXXVVVf9j3HffffdCjAMA1ddddVVV1111VX/Gw3DwH333XcrV1111VVX/U9BcNVVV1111f8o//AP//Db6/Waq6666qqrrrrqqv9t9vf3+Yd/+Iff5qqrrrrqqv9JqFx11VVXXfU/yn333XfrMAxcddVVV1111VVX/W8zDAP33XffrVx11VVXXfU/CcFVV1111VX/o9x33323PuMZz+Cqq6666qqrrrrqf5uDgwP+4R/+4Xe46qqrrrrqfxIqV1111VVX/Y/yD//wD7/DVVddddVVV1111VVXXXXVVVf9x6By1VVXXXXV/yhnz569lauuuuqqq6666qr/hfb39/mHf/iH3+aqq6666qr/SahcddVVV1111VVXXXXVVVddddV/gGEYuO+++27lqquuuuqq/0kIrrrqqquu+h/lvvvuu/Uf/uEffnt/f5+rrrrqqquuuuqq/y2GYeC+++67lauuuuqqq/6noXLVVVddddVVV1111VVXXXXVVf9O+/v7/MM//MNvc9VVV1111f80BFddddVVV/2P8/d///e/fXBwwFVXXXXVVVddddX/FsMwcN99993KVVddddVV/9MQXHXVVVdd9T/OP/zDP/zO3XffzVVXXXXVVVddddX/FsMwcPbs2Wdw1VVXXXXV/zRUrrrqqquuuuqqq6666qqrrrrq32l/f59/+Id/+G2uuuqqq676n4bKVVddddVV/+OcPXv2Vq666qqrrrrqqqv+FxmGgauuuuqqq/5HIrjqqquuuup/nPvuu+/W++6779ZhGLjqqquuuuqqq6763+K+++67lauuuuqqq/6nIbjqqquuuup/pLNnz966Xq+56qqrrrrqqquu+p/u/Pnz/NZv/dZ3c9VVV1111f9EBFddddVVV/2P9Pd///e/fXBwwFVXXXXVVVddddVVV1111VVX/TsQXHXVVVdd9T/W3XffzVVXXXXVVVddddX/dAcHB/zDP/zD73DVVVddddX/RFSuuuqqq676H+kf/uEffoerrrrqqquuuuqqq6666qqrrvr3oXLVVVddddX/SGfPnr2Vq6666qqrrrrqqv8F9vf3+Yd/+Iff5qqrrrrqqv+JqFx11VVXXfU/0n333XcrV1111VVXXXXVVf8LDMPAfffddytXXXXVVVf9T0Rw1VVXXXXV/1j/8A//8Nv7+/tcddVVV1111VVX/U91cHDAP/zDP/w2V1111VVX/U9F5aqrrrrqqquuuuqqq6666qqr/o3W6zX33XffrVx11VVXXfU/FcFVV1111VX/Y/393//9bz/5yU/mqquuuuqqq6666n+qYRi47777buWqq6666qr/qahcddVVV131P9Y//MM//A5XXXXVVVddddVV/4MNw8DZs2efwVVXXXXVVf9TUbnqqquuuup/rLNnz97KVVddddVVV1111f9g+/v7/MM//MNvc9VVV1111f9UVK666qqrrrrqqquuuuqqq6666t9oGAbuu+++W7nqqquuuup/KoKrrrrqqqv+x7rvvvtuve+++27d39/nqquuuuqqq6666n+aYRi46qqrrrrqfzyCq6666qqr/kc7e/bsrVx11VVXXXXVVVf9D7S/v89v/dZvfQ9XXXXVVVf9T0Zw1VVXXXXV/2h///d//9sHBwdcddVVV1111VVXXXXVVVddddW/AcFVV1111VX/o509e/YZd999N1ddddVVV1111VX/0xwcHPAP//APv81VV1111VX/k1G56qqrrrrqf7T77rvvVq666qqrrrrqqqv+B9rf3+fs2bO3ctVVV1111f9kVK666qqrrvof7ezZs7dy1VVXXXXVVVdd9T/UfffddytXXXXVVVf9T0Zw1VVXXXXV/2j33XffrQDDMHDVVVddddVVV131P8kwDNx33323ctVVV1111f9kBFddddVVV/2P9w//8A+/vV6vueqqq6666qqrrvqfYn9/n3/4h3/4ba666qqrrvqfjspVV1111VX/49133323DsPAVVddddVVV1111f8UwzBw33333cpVV1111VX/0xFcddVVV131P95999136zOe8Qyuuuqqq6666qqr/qc4ODjgH/7hH36Hq6666qqr/qejctVVV1111f94//AP//A7XHXVVVddddVVV1111VVXXXXVvx6Vq6666qqr/sc7e/bsrVx11VVXXXXVVVf9D7K/v88//MM//DZXXXXVVVf9T0flqquuuuqqq6666qqrrrrqqqv+lYZh4L777ruVq6666qqr/qcjuOqqq6666n+8++6779Z/+Id/+O39/X2uuuqqq6666qqr/rsNw8B99913K1ddddVVV/1vQOWqq6666qqrrrrqqquuuuqqq/4V9vf3+Yd/+Iff5qqrrrrqqv8NCK666qqrrvpf4e///u9/++DggKuuuuqqq6666qr/bsMwcN99993KVVddddVV/xsQXHXVVVdd9b/CP/zDP/zO3XffzVVXXXXVVVddddV/t2EYOHv27DO46qqrrrrqfwMqV1111VVXXXXVVVddddVVV131r7C/v88//MM//DZXXXXVVVf9b0Dlqquuuuqq/xXOnj17K1ddddVVV1111VX/AwzDwFVXXXXVVf9rEFx11VVXXfW/wn333Xfrfffdd+swDFx11VVXXXXVVVf9d7vvvvtu5aqrrrrqqv8NCK666qqrrvpf4+zZs7eu12uuuuqqq6666qqr/rucP3+e3/qt3/purrrqqquu+t+C4Kqrrrrqqv81/v7v//63Dw4OuOqqq6666qqrrrrqqquuuuqqFxHBVVddddVV/6vcfffdXHXVVVddddVVV/13ecYznsE//MM//A5XXXXVVVf9b0Hlqquuuuqq/zV++7d/+3vOnj37jA//8A//Lq666qqrrrrqqqv+G/zIj/zIZ//Wb/3Wd3PVVVddddX/FuhBD3oQV1111VVXXXXVVVddddVVV1111VVXXXXV/0lUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V/GPl+emO0MXBNcAAAAASUVORK5CYII=) + +```kcl +exampleSketch = startSketchOn(-XZ) + |> rectangle(corner = [0, 0], width = 10, height = 5) + +``` + +![Rendered example of rectangle 1](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAYAAADPfd1WAABebUlEQVR4Ae3AA6AkWZbG8f937o3IzKdyS2Oubdu2bdu2bdu2bWmMnpZKr54yMyLu+Xa3anqmhztr1a8+6EEP4qqrrrrqqquuuuqqq6666qqrrrrqqquu+j+JylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqmf5pm/6pqdz1VVXXXXVVVdd9X+YJNk2DyBJts0DSJJt8wCSZNs8gCTZNg8gSbbNA0iSbfMAkmTbPIAk2TYPIEm2zQNIkm3zAJJk2wAf8iEf8hCuuuqqq64CoHLVVVddddVln/u5n/tbr/u6r/tgrrrqqquuuuqqq676X++bvumbnv4hH/IhD+Gqq6666ioqV1111VVXPct6vWZ7e5urrrrqqquuuuqqq/73GoaBq6666qqrnoXKVVddddVVV1111VVXXXXVVVf9H7K/v88//MM//DZXXXXVVVcBEFx11VVXXXXZ3//93//2wcEBV1111VVXXXXVVVf97zYMA/fdd9+tXHXVVVddBUBw1VVXXXXVZf/wD//wO3fffTdXXXXVVVddddVVV/3vNgwDZ8+efQZXXXXVVVcBULnqqquuuuqqq6666qqrrrrqqv9D9vf3+Yd/+Iff5qqrrrrqKgAqV1111VVXXXb27Nlbueqqq6666qqrrrrqf71hGLjqqquuuupZCK666qqrrrrsvvvuu/W+++67dRgGrrrqqquuuuqqq6763+2+++67lauuuuqqqwAIrrrqqquuepazZ8/eul6vueqqq6666qqrrrrqf6fz58/zW7/1W9/NVVddddVV9yO46qqrrrrqWe67775bDw4OuOqqq6666qqrrrrqqquuuuqq/yMIrrrqqquuepb77rvv1rvvvpurrrrqqquuuuqqq/53Ojg44B/+4R9+h6uuuuqqq+5H5aqrrrrqqmf5h3/4h9/hqquuuuqqq6666qqrrrrqqqv+76By1VVXXXXVs5w9e/ZWrrrqqquuuuqqq676X2t/f59/+Id/+G2uuuqqq666H5Wrrrrqqque5b777ruVq6666qqrrrrqqqv+1xqGgfvuu+9Wrrrqqquuuh/BVVddddVVz+Ef/uEffnt/f5+rrrrqqquuuuqqq/53OTg44B/+4R9+m6uuuuqqqx6IylVXXXXVVVddddVVV1111VVX/R+wXq+57777buWqq6666qoHIrjqqquuuuo5/P3f//1vP/nJT+aqq6666qqrrrrqqv9dhmHgvvvuu5WrrrrqqqseiMpVV1111VXP4R/+4R9+h6uuuuqqq6666qqr/tcZhoGzZ88+g6uuuuqqqx6IylVXXXXVVc/h7Nmzt3LVVVddddVVV1111f86+/v7/MM//MNvc9VVV1111QNRueqqq6666qqrrrrqqquuuuqq/wOGYeC+++67lauuuuqqqx6I4Kqrrrrqqudw33333XrffffdOgwDV1111VVXXXXVVVf97zAMA1ddddVVVz1fBFddddVVVz2Ps2fP3rper7nqqquuuuqqq6666n+H/f19fuu3fut7uOqqq6666rkRXHXVVVdd9Tz+/u///rcPDg646qqrrrrqqquuuuqqq6666qr/5Qiuuuqqq656HmfPnn3G3XffzVVXXXXVVVddddVV/zscHBzwD//wD7/NVVddddVVz43KVVddddVVz+O+++67lauuuuqqq6666qqr/tdYr9ecPXv2Vq666qqrrnpuVK666qqrrnoeZ8+evZWrrrrqqquuuuqqq/7XGIaB++6771auuuqqq656bgRXXXXVVVc9j/vuu+9WgGEYuOqqq6666qqrrrrqf75hGLjvvvtu5aqrrrrqqudGcNVVV1111fP1D//wD7+9Xq+56qqrrrrqqquuuup/tv39ff7hH/7ht7nqqquuuur5oXLVVVddddXzdd999906DANXXXXVVVddddVVV/3PNgwD9913361cddVVV131/BBcddVVV131fN133323PuMZz+Cqq6666qqrrrrqqv/ZDg4OuO+++27lqquuuuqq54fKVVddddVVz9c//MM//A5XXXXVVVddddVVV/2vcPbs2Wdw1VVXXXXV80Plqquuuuqq5+vs2bO3ctVVV1111VVXXXXV/3j7+/v8wz/8w29z1VVXXXXV80Plqquuuuqqq6666qqrrrrqqqv+FxuGgfvuu+9Wrrrqqquuen4Irrrqqquuer7uu+++W//hH/7ht/f397nqqquuuuqqq6666n+mYRi47777buWqq6666qoXhMpVV1111VVXXXXVVVddddVVV/0vtb+/zz/8wz/8NlddddVVV70gBFddddVVV71Af//3f//bBwcHXHXVVVddddVVV131P9MwDNx33323ctVVV1111QtCcNVVV1111Qv0D//wD79z9913c9VVV1111VVXXXXV/0zDMHD27NlncNVVV1111QtC5aqrrrrqqquuuuqqq6666qqr/pfa39/nH/7hH36bq6666qqrXhAqV1111VVXvUBnz569lauuuuqqq6666qqr/scahoGrrrrqqqteKIKrrrrqqqteoPvuu+/W++6779ZhGLjqqquuuuqqq6666n+m++6771auuuqqq656QQiuuuqqq656oc6ePXvrer3mqquuuuqqq6666qr/Wc6fP89v/dZvfTdXXXXVVVe9MARXXXXVVVe9UPfdd9+tBwcHXHXVVVddddVVV1111VVXXXXV/0IEV1111VVXvVD33XffrXfffTdXXXXVVVddddVVV/3PcnBwwD/8wz/8DlddddVVV70wVK666qqrrnqh/uEf/uF3uOqqq6666qqrrrrqqquuuuqq/52oXHXVVVdd9UKdPXv2Vq666qqrrrrqqquu+h9nf3+ff/iHf/htrrrqqquuemGoXHXVVVdd9ULdd999t3LVVVddddVVV1111f84wzBw33333cpVV1111VUvDMFVV1111VX/on/4h3/47f39fa666qqrrrrqqquu+p/h4OCAf/iHf/htrrrqqquu+pdQueqqq6666qqrrrrqqquuuuqq/2XW6zX33XffrVx11VVXXfUvIbjqqquuuupf9Pd///e//eQnP5mrrrrqqquuuuqqq/5nGIaB++6771auuuqqq676l1C56qqrrrrqX/QP//APv8NVV1111VVXXXXVVf9jDMPA2bNnn8FVV1111VX/EipXXXXVVVf9i86ePXsrV1111VVXXXXVVVf9j7G/v88//MM//DZXXXXVVVf9S6hcddVVV1111VVXXXXVVVddddX/MsMwcN99993KVVddddVV/xKCq6666qqr/kX33Xffrffdd9+twzBw1VVXXXXVVVddddV/r2EYuOqqq6666kVGcNVVV1111Yvk7Nmzt67Xa6666qqrrrrqqquu+u+1v7/Pb/3Wb30PV1111VVXvSgIrrrqqquuepH8/d///W8fHBxw1VVXXXXVVVddddVVV1111VX/ixBcddVVV131Ijl79uwz7r77bq666qqrrrrqqquu+u91cHDAP/zDP/w2V1111VVXvSioXHXVVVdd9SK57777buWqq6666qqrrrrqqv926/Was2fP3spVV1111VUvCipXXXXVVVe9SM6ePXsrV1111VVXXXXVVVf9txuGgfvuu+9WrrrqqquuelEQXHXVVVdd9SK57777bgUYhoGrrrrqqquuuuqqq/77DMPAfffddytXXXXVVVe9KAiuuuqqq656kf3DP/zDb6/Xa6666qqrrrrqqquu+u+xv7/PP/zDP/w2V1111VVXvaioXHXVVVdd9SK77777bh2Ggauuuuqqq6666qqr/nsMw8B99913K1ddddVVV72oCK666qqrrnqR3Xfffbc+4xnP4Kqrrrrqqquuuuqq/x4HBwfcd999t3LVVVddddWLispVV1111VUvsn/4h3/4Ha666qqrrrrqqquu+m919uzZZ3DVVVddddWLispVV1111VUvsrNnz97KVVddddVVV1111VX/bfb39/mHf/iH3+aqq6666qoXFZWrrrrqqquuuuqqq6666qqrrvpfYhgG7rvvvlu56qqrrrrqRUVw1VVXXXXVi+y+++679R/+4R9+e39/n6uuuuqqq6666qqr/msNw8B99913K1ddddVVV/1rULnqqquuuuqqq6666qqrrrrqqv8F9vf3+Yd/+Iff5qqrrrrqqn8Ngquuuuqqq/5V/v7v//63Dw4OuOqqq6666qqrrrrqv9YwDNx33323ctVVV1111b8GwVVXXXXVVf8q//AP//A7d999N1ddddVVV1111VVX/dcahoGzZ88+g6uuuuqqq/41qFx11VVXXXXVVVddddVVV1111f8C+/v7/MM//MNvc9VVV1111b8Glauuuuqqq/5Vzp49eytXXXXVVVddddVVV/2XG4aBq6666qqr/tUIrrrqqquu+le57777br3vvvtuHYaBq6666qqrrrrqqqv+a9133323ctVVV1111b8GwVVXXXXVVf9qZ8+evXW9XnPVVVddddVVV1111X+N8+fP81u/9VvfzVVXXXXVVf9aBFddddVVV/2r3XfffbceHBxw1VVXXXXVVVddddVVV1111VX/wxFcddVVV131r3bffffdevfdd3PVVVddddVVV1111X+Ng4MD/uEf/uF3uOqqq6666l+LylVXXXXVVf9q//AP//A7XHXVVVddddVVV1111VVXXXXV/3xUrrrqqquu+lc7e/bsrVx11VVXXXXVVVdd9V9mf3+ff/iHf/htrrrqqquu+teictVVV1111b/afffddytXXXXVVVddddVVV/2XGYaB++6771auuuqqq6761yK46qqrrrrq3+Qf/uEffnt/f5+rrrrqqquuuuqqq/5zHRwc8A//8A+/zVVXXXXVVf8WVK666qqrrrrqqquuuuqqq6666n+w9XrNfffddytXXXXVVVf9WxBcddVVV131b/L3f//3v/3kJz+Zq6666qqrrrrqqqv+cw3DwH333XcrV1111VVX/VtQueqqq6666t/kH/7hH36Hq6666qqrrrrqqqv+0w3DwNmzZ5/BVVddddVV/xZUrrrqqquu+jc5e/bsrVx11VVXXXXVVVdd9Z9uf3+ff/iHf/htrrrqqquu+regctVVV1111VVXXXXVVVddddVV/4MNw8B99913K1ddddVVV/1bEFx11VVXXfVvct99991633333ToMA1ddddVVV1111VVX/ecYhoGrrrrqqqv+XQiuuuqqq676Nzt79uyt6/Waq6666qqrrrrqqqv+c+zv7/Nbv/Vb38NVV1111VX/VgRXXXXVVVf9m/393//9bx8cHHDVVVddddVVV1111VVXXXXVVf9DEVx11VVXXfVvdvbs2WfcfffdXHXVVVddddVVV131n+Pg4IB/+Id/+G2uuuqqq676t6Jy1VVXXXXVv9l99913K1ddddVVV1111VVX/adZr9ecPXv2Vq666qqrrvq3onLVVVddddW/2dmzZ2/lqquuuuqqq6666qr/NMMwcN99993KVVddddVV/1YEV1111VVX/Zvdd999twIMw8BVV1111VVXXXXVVf/xhmHgvvvuu5Wrrrrqqqv+rQiuuuqqq676d/mHf/iH316v11x11VVXXXXVVVdd9R9rf3+ff/iHf/htrrrqqquu+vegctVVV1111b/Lfffdd+swDFx11VVXXXXVVVdd9R9rGAbuu+++W7nqqquuuurfg+Cqq6666qp/l/vuu+/WZzzjGVx11VVXXXXVVVdd9R/r4OCA++6771auuuqqq67696By1VVXXXXVv8s//MM//A5XXXXVVVddddVVV/2nOHv27DO46qqrrrrq34PKVVddddVV/y5nz569lauuuuqqq6666qqr/sPt7+/zD//wD7/NVVddddVV/x5Urrrqqquuuuqqq6666qqrrrrqf6BhGLjvvvtu5aqrrrrqqn8Pgquuuuqqq/5d7rvvvlv/4R/+4bf39/e56qqrrrrqqquuuuo/xjAM3Hfffbdy1VVXXXXVvxeVq6666qqrrrrqqquuuuqqq676H2Z/f59/+Id/+G2uuuqqq6769yK46qqrrrrq3+3v//7vf/vg4ICrrrrqqquuuuqqq/5jDMPAfffddytXXXXVVVf9exFcddVVV1317/YP//APv3P33Xdz1VVXXXXVVVddddV/jGEYOHv27DO46qqrrrrq34vKVVddddVVV1111VVXXXXVVVf9D7O/v88//MM//DZXXXXVVVf9e1G56qqrrrrq3+3s2bO3ctVVV1111VVXXXXVf5hhGLjqqquuuuo/BMFVV1111VX/bvfdd9+t9913363DMHDVVVddddVVV1111X+M++6771auuuqqq6769yK46qqrrrrqP8TZs2dvXa/XXHXVVVddddVVV13173P+/Hl+67d+67u56qqrrrrqPwLBVVddddVV/yHuu+++Ww8ODrjqqquuuuqqq6666qqrrrrqqv9BCK666qqrrvoPcd9999169913c9VVV1111VVXXXXVv8/BwQH/8A//8DtcddVVV131H4HKVVddddVV/yH+4R/+4Xe46qqrrrrqqquuuuqqq6666qr/WahcddVVV131H+Ls2bO3ctVVV1111VVXXXXVv9v+/j7/8A//8NtcddVVV131H4HKVVddddVV/yHuu+++W7nqqquuuuqqq6666t9tGAbuu+++W7nqqquuuuo/AsFVV1111VX/Yf7hH/7ht/f397nqqquuuuqqq6666t/m4OCAf/iHf/htrrrqqquu+o9C5aqrrrrqqquuuuqqq6666qqr/odYr9fcd999t3LVVVddddV/FIKrrrrqqqv+w/z93//9bz/5yU/mqquuuuqqq6666qp/m2EYuO+++27lqquuuuqq/yhUrrrqqquu+g/zD//wD7/DVVddddVVV1111VX/ZsMwcPbs2Wdw1VVXXXXVfxQqV1111VVX/Yc5e/bsrVx11VVXXXXVVVdd9W+2v7/PP/zDP/w2V1111VVX/UehctVVV1111VVXXXXVVVddddVV/0MMw8B99913K1ddddVVV/1HIbjqqquuuuo/zH333Xfrfffdd+swDFx11VVXXXXVVVdd9a8zDANXXXXVVVf9hyO46qqrrrrqP9TZs2dvXa/XXHXVVVddddVVV131r7O/v89v/dZvfQ9XXXXVVVf9RyK46qqrrrrqP9Tf//3f//bBwQFXXXXVVVddddVVV1111VVXXfU/AMFVV1111VX/oc6ePfuMu+++m6uuuuqqq6666qqr/nUODg74h3/4h9/mqquuuuqq/0hUrrrqqquu+g9133333cpVV1111VVXXXXVVf9q6/Was2fP3spVV1111VX/kahcddVVV131H+rs2bO3ctVVV1111VVXXXXVv9owDNx33323ctVVV1111X8kgquuuuqqq/5D3XfffbcCDMPAVVddddVVV1111VUvumEYuO+++27lqquuuuqq/0gEV1111VVX/Yf7h3/4h99er9dcddVVV1111VVXXfWi2d/f5x/+4R9+m6uuuuqqq/6jUbnqqquuuuo/3H333XfrMAxcddVVV1111VVXXfWiGYaB++6771auuuqqq676j0Zw1VVXXXXVf7j77rvv1mc84xlcddVVV1111VVXXfWiOTg44L777ruVq6666qqr/qNRueqqq6666j/cP/zDP/wOV1111VVXXXXVVVf9q5w9e/YZXHXVVVdd9R+NylVXXXXVVf/hzp49eytXXXXVVVddddVVV73I9vf3+Yd/+Iff5qqrrrrqqv9oVK666qqrrrrqqquuuuqqq6666r/ZMAzcd999t3LVVVddddV/NIKrrrrqqqv+w9133323/sM//MNv7+/vc9VVV1111VVXXXXVCzcMA/fdd9+tXHXVVVdd9Z+BylVXXXXVVVddddVVV1111VVX/Tfa39/nH/7hH36bq6666qqr/jMQXHXVVVdd9Z/i7//+73/74OCAq6666qqrrrrqqqteuGEYuO+++27lqquuuuqq/wwEV1111VVX/af4h3/4h9+5++67ueqqq6666qqrrrrqhRuGgbNnzz6Dq6666qqr/jNQueqqq6666qqrrrrqqquuuuqq/0b7+/v8wz/8w29z1VVXXXXVfwYqV1111VVX/ac4e/bsrVx11VVXXXXVVVdd9S8ahoGrrrrqqqv+0xBcddVVV131n+K+++679b777rt1GAauuuqqq6666qqrrnrh7rvvvlu56qqrrrrqPwPBVVddddVV/2nOnj1763q95qqrrrrqqquuuuqq5+/8+fP81m/91ndz1VVXXXXVfxaCq6666qqr/tPcd999tx4cHHDVVVddddVVV1111VVXXXXVVf9NCK666qqrrvpPc99999169913c9VVV1111VVXXXXV83dwcMA//MM//A5XXXXVVVf9Z6Fy1VVXXXXVf5p/+Id/+B2uuuqqq6666qqrrrrqqquuuuq/D5Wrrrrqqqv+05w9e/ZWrrrqqquuuuqqq656gfb39/mHf/iH3+aqq6666qr/LFSuuuqqq676T3PffffdylVXXXXVVVddddVVL9AwDNx33323ctVVV1111X8Wgquuuuqqq/5T/cM//MNv7+/vc9VVV1111VVXXXXVczo4OOAf/uEffpurrrrqqqv+M1G56qqrrrrqqquuuuqqq6666qr/Buv1mvvuu+9Wrrrqqquu+s9EcNVVV1111X+qv//7v//tJz/5yVx11VVXXXXVVVdd9ZyGYeC+++67lauuuuqqq/4zUbnqqquuuuo/1T/8wz/8DlddddVVV1111VVXPY9hGDh79uwzuOqqq6666j8Tlauuuuqqq/5TnT179lauuuqqq6666qqrrnoe+/v7/MM//MNvc9VVV1111X8mKlddddVVV1111VVXXXXVVVdd9d9gGAbuu+++W7nqqquuuuo/E8FVV1111VX/qe67775b77vvvlv39/e56qqrrrrqqquuuuqKYRi46qqrrrrqvwTBVVddddVV/+nOnj17K1ddddVVV1111VVXPcv+/j6/9Vu/9T1cddVVV131n43gqquuuuqq/3R///d//9sHBwdcddVVV1111VVXXXXVVVddddV/MYKrrrrqqqv+0509e/YZd999N1ddddVVV1111VVXXXFwcMA//MM//DZXXXXVVVf9Z6Ny1VVXXXXVf7r77rvvVq666qqrrrrqqquuepb9/X3Onj17K1ddddVVV/1no3LVVVddddV/urNnz97KVVddddVVV1111VXP4b777ruVq6666qqr/rMRXHXVVVdd9Z/uvvvuuxVgGAauuuqqq6666qqrroJhGLjvvvtu5aqrrrrqqv9sBFddddVVV/2X+Id/+IffXq/XXHXVVVddddVVV/1/t7+/zz/8wz/8NlddddVVV/1XoHLVVVddddV/ifvuu+/WYRi46qqrrrrqqquu+v9uGAbuu+++W7nqqquuuuq/AsFVV1111VX/Je67775bn/GMZ3DVVVddddVVV131/93BwQH33XffrVx11VVXXfVfgcpVV1111VX/Jf7hH/7hd7jqqquuuuqqq6666rKzZ88+g6uuuuqqq/4rULnqqquuuuq/xNmzZ2/lqquuuuqqq6666ir29/f5h3/4h9/mqquuuuqq/wpUrrrqqquuuuqqq6666qqrrrrqv9AwDNx33323ctVVV1111X8Fgquuuuqqq/5L3Hfffbf+wz/8w2/v7+9z1VVXXXXVVVdd9f/VMAzcd999t3LVVVddddV/FSpXXXXVVVddddVVV1111VVXXfVfZH9/n3/4h3/4ba666qqrrvqvQnDVVVddddV/mb//+7//7YODA6666qqrrrrqqqv+vxqGgfvuu+9Wrrrqqquu+q9CcNVVV1111X+Zf/iHf/idu+++m6uuuuqqq6666qr/r4Zh4OzZs8/gqquuuuqq/ypUrrrqqquuuuqqq6666qqrrrrqv8j+/j7/8A//8NtcddVVV131X4XKVVddddVV/2XOnj17K1ddddVVV1111VX/jw3DwFVXXXXVVf+lCK666qqrrvovc999991633333ToMA1ddddVVV1111VX/X9133323ctVVV1111X8Vgquuuuqqq/5LnT179tb1es1VV1111VVXXXXV/zfnz5/nt37rt76bq6666qqr/isRXHXVVVdd9V/qvvvuu/Xg4ICrrrrqqquuuuqqq6666qqrrvovQHDVVVddddV/qfvuu+/Wu+++m6uuuuqqq6666qr/bw4ODviHf/iH3+Gqq6666qr/SlSuuuqqq676L/UP//APv8NVV1111VVXXXXVVVddddVVV/3XoHLVVVddddV/qbNnz97KVVddddVVV1111f9D+/v7/MM//MNvc9VVV1111X8lKlddddVVV/2Xuu+++27lqquuuuqqq6666v+hYRi47777buWqq6666qr/SgRXXXXVVVf9l/uHf/iH397f3+eqq6666qqrrrrq/4uDgwP+4R/+4be56qqrrrrqvxqVq6666qqrrrrqqquuuuqqq676T7Zer7nvvvtu5aqrrrrqqv9qBFddddVVV/2X+/u///vffvKTn8xVV1111VVXXXXV/xfDMHDffffdylVXXXXVVf/VqFx11VVXXfVf7h/+4R9+h6uuuuqqq6666qr/R4Zh4OzZs8/gqquuuuqq/2pUrrrqqquu+i939uzZW7nqqquuuuqqq676f2R/f59/+Id/+G2uuuqqq676r0blqquuuuqqq6666qqrrrrqqqv+kw3DwH333XcrV1111VVX/VcjuOqqq6666r/cfffdd+t999136/7+PlddddVVV1111VX/1w3DwFVXXXXVVf9tCK666qqrrvpvcfbs2Vu56qqrrrrqqquu+n9gf3+f3/qt3/oerrrqqquu+u9AcNVVV1111X+Lv//7v//tg4MDrrrqqquuuuqqq6666qqrrrrqPxHBVVddddVV/y3Onj37jLvvvpurrrrqqquuuuqq/+sODg74h3/4h9/mqquuuuqq/w5Urrrqqquu+m9x33333cpVV1111VVXXXXV/wP7+/ucPXv2Vq666qqrrvrvQOWqq6666qr/FmfPnr2Vq6666qqrrrrqqv8n7rvvvlu56qqrrrrqvwPBVVddddVV/y3uu+++WwGGYeCqq6666qqrrrrq/7JhGLjvvvtu5aqrrrrqqv8OBFddddVVV/23+Yd/+IffXq/XXHXVVVddddVVV/1ftb+/zz/8wz/8NlddddVVV/13oXLVVVddddV/m/vuu+/WYRi46qqrrrrqqquu+r9qGAbuu+++W7nqqquuuuq/C8FVV1111VX/be67775bn/GMZ3DVVVddddVVV131f9XBwQH33XffrVx11VVXXfXfhcpVV1111VX/bf7hH/7hd7jqqquuuuqqq676P+7s2bPP4Kqrrrrqqv8uVK666qqrrvpvc/bs2Vu56qqrrrrqqquu+j9sf3+ff/iHf/htrrrqqquu+u9C5aqrrrrqqquuuuqqq6666qqr/pMMw8B99913K1ddddVVV/13Ibjqqquuuuq/zX333XfrP/zDP/z2/v4+V1111VVXXXXVVf/XDMPAfffddytXXXXVVVf9d6Jy1VVXXXXVVVddddVVV1111VX/Cfb39/mHf/iH3+aqq6666qr/TgRXXXXVVVf9t/r7v//73z44OOCqq6666qqrrrrq/5phGLjvvvtu5aqrrrrqqv9OBFddddVVV/23+od/+Iffufvuu7nqqquuuuqqq676v2YYBs6ePfsMrrrqqquu+u9E5aqrrrrqqquuuuqqq6666qqr/hPs7+/zD//wD7/NVVddddVV/52oXHXVVVdd9d/q7Nmzt3LVVVddddVVV131f9AwDFx11VVXXfXfjuCqq6666qr/Vvfdd9+t9913363DMHDVVVddddVVV131f8199913K1ddddVVV/13Irjqqquuuuq/3dmzZ29dr9dcddVVV1111VVX/V9x/vx5fuu3fuu7ueqqq6666r8bwVVXXXXVVf/t/v7v//63Dw4OuOqqq6666qqrrrrqqquuuuqq/2AEV1111VVX/Y9w9913c9VVV1111VVXXfV/xcHBAf/wD//wO1x11VVXXfXfjcpVV1111VX/7f7hH/7hd7jqqquuuuqqq6666qqrrrrqqv94VK666qqrrvpvd/bs2Vu56qqrrrrqqquu+j9kf3+ff/iHf/htrrrqqquu+u9G5aqrrrrqqv929913361cddVVV1111VVX/R8yDAP33XffrVx11VVXXfXfjeCqq6666qr/Ef7hH/7ht/f397nqqquuuuqqq6763+7g4IB/+Id/+G2uuuqqq676n4DKVVddddVVV1111VVXXXXVVVf9B1qv19x33323ctVVV1111f8EBFddddVVV/2P8Pd///e//eQnP5mrrrrqqquuuuqq/+2GYeC+++67lauuuuqqq/4noHLVVVddddX/CP/wD//wO1x11VVXXXXVVVf9HzAMA2fPnn0GV1111VVX/U9A5aqrrrrqqv8Rzp49eytXXXXVVVddddVV/wfs7+/zD//wD7/NVVddddVV/xNQueqqq6666qqrrrrqqquuuuqq/0DDMHDffffdylVXXXXVVf8TEFx11VVXXfU/wn333Xfrfffdd+v+/j5XXXXVVVddddVV/1sNw8BVV1111VX/oxBcddVVV131P8bZs2dv5aqrrrrqqquuuup/sf39fX7rt37re7jqqquuuup/CoKrrrrqqqv+x/j7v//73z44OOCqq6666qqrrrrqqquuuuqqq/6DEFx11VVXXfU/xtmzZ59x9913c9VVV1111VVXXfW/1cHBAf/wD//w21x11VVXXfU/BZWrrrrqqqv+x7jvvvtu5aqrrrrqqquuuup/sf39fc6ePXsrV1111VVX/U9B5aqrrrrqqv8xzp49eytXXXXVVVddddVV/8vdd999t3LVVVddddX/FARXXXXVVVf9j3HffffdCjAMA1ddddVVV1111VX/Gw3DwH333XcrV1111VVX/U9BcNVVV1111f8o//AP//Db6/Waq6666qqrrrrqqv9t9vf3+Yd/+Iff5qqrrrrqqv9JqFx11VVXXfU/yn333XfrMAxcddVVV1111VVX/W8zDAP33XffrVx11VVXXfU/CcFVV1111VX/o9x33323PuMZz+Cqq6666qqrrrrqf5uDgwP+4R/+4Xe46qqrrrrqfxIqV1111VVX/Y/yD//wD7/DVVddddVVV1111VVXXXXVVVf9x6By1VVXXXXV/yhnz569lauuuuqqq6666qr/hfb39/mHf/iH3+aqq6666qr/SahcddVVV1111VVXXXXVVVddddV/gGEYuO+++27lqquuuuqq/0kIrrrqqquu+h/lvvvuu/Uf/uEffnt/f5+rrrrqqquuuuqq/y2GYeC+++67lauuuuqqq/6noXLVVVddddVVV1111VVXXXXVVf9O+/v7/MM//MNvc9VVV1111f80BFddddVVV/2P8/d///e/fXBwwFVXXXXVVVddddX/FsMwcN99993KVVddddVV/9MQXHXVVVdd9T/OP/zDP/zO3XffzVVXXXXVVVddddX/FsMwcPbs2Wdw1VVXXXXV/zRUrrrqqquuuuqqq6666qqrrrrq32l/f59/+Id/+G2uuuqqq676n4bKVVddddVV/+OcPXv2Vq666qqrrrrqqqv+FxmGgauuuuqqq/5HIrjqqquuuup/nPvuu+/W++6779ZhGLjqqquuuuqqq6763+K+++67lauuuuqqq/6nIbjqqquuuup/pLNnz966Xq+56qqrrrrqqquu+p/u/Pnz/NZv/dZ3c9VVV1111f9EBFddddVVV/2P9Pd///e/fXBwwFVXXXXVVVddddVVV1111VVX/TsQXHXVVVdd9T/W3XffzVVXXXXVVVddddX/dAcHB/zDP/zD73DVVVddddX/RFSuuuqqq676H+kf/uEffoerrrrqqquuuuqqq6666qqrrvr3oXLVVVddddX/SGfPnr2Vq6666qqrrrrqqv8F9vf3+Yd/+Iff5qqrrrrqqv+JqFx11VVXXfU/0n333XcrV1111VVXXXXVVf8LDMPAfffddytXXXXVVVf9T0Rw1VVXXXXV/1j/8A//8Nv7+/tcddVVV1111VVX/U91cHDAP/zDP/w2V1111VVX/U9F5aqrrrrqqquuuuqqq6666qqr/o3W6zX33XffrVx11VVXXfU/FcFVV1111VX/Y/393//9bz/5yU/mqquuuuqqq6666n+qYRi47777buWqq6666qr/qahcddVVV131P9Y//MM//A5XXXXVVVddddVV/4MNw8DZs2efwVVXXXXVVf9TUbnqqquuuup/rLNnz97KVVddddVVV1111f9g+/v7/MM//MNvc9VVV1111f9UVK666qqrrrrqqquuuuqqq6666t9oGAbuu+++W7nqqquuuup/KoKrrrrqqqv+x7rvvvtuve+++27d39/nqquuuuqqq6666n+aYRi46qqrrrrqfzyCq6666qqr/kc7e/bsrVx11VVXXXXVVVf9D7S/v89v/dZvfQ9XXXXVVVf9T0Zw1VVXXXXV/2h///d//9sHBwdcddVVV1111VVXXXXVVVddddW/AcFVV1111VX/o509e/YZd999N1ddddVVV1111VX/0xwcHPAP//APv81VV1111VX/k1G56qqrrrrqf7T77rvvVq666qqrrrrqqqv+B9rf3+fs2bO3ctVVV1111f9kVK666qqrrvof7ezZs7dy1VVXXXXVVVdd9T/UfffddytXXXXVVVf9T0Zw1VVXXXXV/2j33XffrQDDMHDVVVddddVVV131P8kwDNx33323ctVVV1111f9kBFddddVVV/2P9w//8A+/vV6vueqqq6666qqrrvqfYn9/n3/4h3/4ba666qqrrvqfjspVV1111VX/49133323DsPAVVddddVVV1111f8UwzBw33333cpVV1111VX/0xFcddVVV131P95999136zOe8Qyuuuqqq6666qqr/qc4ODjgH/7hH36Hq6666qqr/qejctVVV1111f94//AP//A7XHXVVVddddVVV1111VVXXXXVvx6Vq6666qqr/sc7e/bsrVx11VVXXXXVVVf9D7K/v88//MM//DZXXXXVVVf9T0flqquuuuqqq6666qqrrrrqqqv+lYZh4L777ruVq6666qqr/qcjuOqqq6666n+8++6779Z/+Id/+O39/X2uuuqqq6666qqr/rsNw8B99913K1ddddVVV/1vQOWqq6666qqrrrrqqquuuuqqq/4V9vf3+Yd/+Iff5qqrrrrqqv8NCK666qqrrvpf4e///u9/++DggKuuuuqqq6666qr/bsMwcN99993KVVddddVV/xsQXHXVVVdd9b/CP/zDP/zO3XffzVVXXXXVVVddddV/t2EYOHv27DO46qqrrrrqfwMqV1111VVXXXXVVVddddVVV131r7C/v88//MM//DZXXXXVVVf9b0Dlqquuuuqq/xXOnj17K1ddddVVV1111VX/AwzDwFVXXXXVVf9rEFx11VVXXfW/wn333Xfrfffdd+swDFx11VVXXXXVVVf9d7vvvvtu5aqrrrrqqv8NCK666qqrrvpf4+zZs7eu12uuuuqqq6666qqr/rucP3+e3/qt3/purrrqqquu+t+C4Kqrrrrqqv81/v7v//63Dw4OuOqqq6666qqrrrrqqquuuuqqFxHBVVddddVV/6vcfffdXHXVVVddddVVV/13ecYznsE//MM//A5XXXXVVVf9b0Hlqquuuuqq/zV++7d/+3vOnj37jA//8A//Lq666qqrrrrqqqv+G/zIj/zIZ//Wb/3Wd3PVVVddddX/FuhBD3oQV1111VVXXXXVVVddddVVV1111VVXXXXV/0lUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V1G56qqrrrrqqquuuuqqq6666qqrrrrqqqv+r6Jy1VVXXXXVVVddddVVV1111VVXXXXVVVf9X0Xlqquuuuqqq6666qqrrrrqqquuuuqqq676v4rKVVddddVVV1111VVXXXXVVVddddVVV131fxWVq6666qqrrrrqqquuuuqqq6666qqrrrrq/yoqV1111VVXXXXVVVddddVVV1111VVXXXXV/1VUrrrqqquuuuqqq6666qqrrrrqqquuuuqq/6uoXHXVVVddddVVV1111VVXXXXVVVddddVV/1dRueqqq6666qqrrrrqqquuuuqqq6666qqr/q+ictVVV1111VVXXXXVVVddddVVV1111VVX/V9F5aqrrrrqqquuuuqqq6666qqrrrrqqquu+r+KylVXXXXVVVddddVVV1111VVXXXXVVVdd9X8Vlauuuuqqq6666qqrrrrqqquuuuqqq6666v8qKlddddVVV1111VVXXXXVVVddddVVV1111f9VVK666qqrrrrqqquuuuqqq6666qqrrrrqqv+rqFx11VVXXXXVVVddddVVV1111VVXXXXVVf9XUbnqqquuuuqqq6666qqrrrrqqquuuuqqq/6vonLVVVddddVVV1111VVXXXXVVVddddVVV/1fReWqq6666qqrrrrqqquuuuqqq6666qqrrvq/ispVV1111VVXXXXVVVddddVVV1111VVXXfV/FZWrrrrqqquuuuqqq6666qqrrrrqqquuuur/KipXXXXVVVddddVVV1111VVXXXXVVVddddX/VVSuuuqqq6666qqrrrrqqquuuuqqq6666qr/q6hcddVVV1111VVXXXXVVVddddVVV1111VX/V/GPl+emO0MXBNcAAAAASUVORK5CYII=) + + diff --git a/docs/kcl-std/index.md b/docs/kcl-std/index.md index 4a31d1d64..7a0c8f7e5 100644 --- a/docs/kcl-std/index.md +++ b/docs/kcl-std/index.md @@ -72,6 +72,7 @@ layout: manual * [`profileStart`](/docs/kcl-std/functions/std-sketch-profileStart) * [`profileStartX`](/docs/kcl-std/functions/std-sketch-profileStartX) * [`profileStartY`](/docs/kcl-std/functions/std-sketch-profileStartY) + * [`rectangle`](/docs/kcl-std/functions/std-sketch-rectangle) * [`revolve`](/docs/kcl-std/functions/std-sketch-revolve) * [`segAng`](/docs/kcl-std/functions/std-sketch-segAng) * [`segEnd`](/docs/kcl-std/functions/std-sketch-segEnd) diff --git a/docs/kcl-std/modules/std-sketch.md b/docs/kcl-std/modules/std-sketch.md index a96536547..d9cf7079e 100644 --- a/docs/kcl-std/modules/std-sketch.md +++ b/docs/kcl-std/modules/std-sketch.md @@ -37,6 +37,7 @@ This module contains functions for creating and manipulating sketches, and makin * [`profileStart`](/docs/kcl-std/functions/std-sketch-profileStart) * [`profileStartX`](/docs/kcl-std/functions/std-sketch-profileStartX) * [`profileStartY`](/docs/kcl-std/functions/std-sketch-profileStartY) +* [`rectangle`](/docs/kcl-std/functions/std-sketch-rectangle) * [`revolve`](/docs/kcl-std/functions/std-sketch-revolve) * [`segAng`](/docs/kcl-std/functions/std-sketch-segAng) * [`segEnd`](/docs/kcl-std/functions/std-sketch-segEnd) diff --git a/rust/kcl-derive-docs/src/example_tests.rs b/rust/kcl-derive-docs/src/example_tests.rs index 27ba9fcf9..94a64f9f6 100644 --- a/rust/kcl-derive-docs/src/example_tests.rs +++ b/rust/kcl-derive-docs/src/example_tests.rs @@ -100,6 +100,8 @@ pub const TEST_NAMES: &[&str] = &[ "std-sketch-planeOf-0", "std-sketch-circle-0", "std-sketch-circle-1", + "std-sketch-rectangle-0", + "std-sketch-rectangle-1", "std-sketch-patternTransform2d-0", "std-sketch-revolve-0", "std-sketch-revolve-1", diff --git a/rust/kcl-lib/src/execution/geometry.rs b/rust/kcl-lib/src/execution/geometry.rs index 4745c6e94..658da8bf2 100644 --- a/rust/kcl-lib/src/execution/geometry.rs +++ b/rust/kcl-lib/src/execution/geometry.rs @@ -1031,7 +1031,7 @@ pub struct GeoMeta { #[ts(export)] #[serde(tag = "type")] pub enum Path { - /// A path that goes to a point. + /// A straight line which ends at the given point. ToPoint { #[serde(flatten)] base: BasePath, diff --git a/rust/kcl-lib/src/simulation_tests.rs b/rust/kcl-lib/src/simulation_tests.rs index 40a507ba0..d49079e1b 100644 --- a/rust/kcl-lib/src/simulation_tests.rs +++ b/rust/kcl-lib/src/simulation_tests.rs @@ -3632,6 +3632,48 @@ mod non_english_identifiers { super::execute(TEST_NAME, true).await } } +mod rect { + const TEST_NAME: &str = "rect"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[tokio::test(flavor = "multi_thread")] + async fn unparse() { + super::unparse(TEST_NAME).await + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, true).await + } +} +mod rect_helper { + const TEST_NAME: &str = "rect_helper"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[tokio::test(flavor = "multi_thread")] + async fn unparse() { + super::unparse(TEST_NAME).await + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, true).await + } +} mod plane_of { const TEST_NAME: &str = "plane_of"; diff --git a/rust/kcl-lib/src/std/mod.rs b/rust/kcl-lib/src/std/mod.rs index 152cd4be1..ab34ce0f9 100644 --- a/rust/kcl-lib/src/std/mod.rs +++ b/rust/kcl-lib/src/std/mod.rs @@ -256,6 +256,10 @@ pub(crate) fn std_fn(path: &str, fn_name: &str) -> (crate::std::StdFn, StdFnProp |e, a| Box::pin(crate::std::shapes::circle(e, a)), StdFnProps::default("std::sketch::circle"), ), + ("sketch", "rectangle") => ( + |e, a| Box::pin(crate::std::shapes::rectangle(e, a)), + StdFnProps::default("std::sketch::rectangle"), + ), ("sketch", "planeOf") => ( |e, a| Box::pin(crate::std::planes::plane_of(e, a)), StdFnProps::default("std::sketch::planeOf"), diff --git a/rust/kcl-lib/src/std/shapes.rs b/rust/kcl-lib/src/std/shapes.rs index 5518f228b..7c3379c4d 100644 --- a/rust/kcl-lib/src/std/shapes.rs +++ b/rust/kcl-lib/src/std/shapes.rs @@ -38,6 +38,119 @@ pub enum SketchOrSurface { Sketch(Box), } +/// Sketch a rectangle. +pub async fn rectangle(exec_state: &mut ExecState, args: Args) -> Result { + let sketch_or_surface = + args.get_unlabeled_kw_arg("sketchOrSurface", &RuntimeType::sketch_or_surface(), exec_state)?; + let center = args.get_kw_arg_opt("center", &RuntimeType::point2d(), exec_state)?; + let corner = args.get_kw_arg_opt("corner", &RuntimeType::point2d(), exec_state)?; + let width: TyF64 = args.get_kw_arg("width", &RuntimeType::length(), exec_state)?; + let height: TyF64 = args.get_kw_arg("height", &RuntimeType::length(), exec_state)?; + + inner_rectangle(sketch_or_surface, center, corner, width, height, exec_state, args) + .await + .map(Box::new) + .map(|value| KclValue::Sketch { value }) +} + +async fn inner_rectangle( + sketch_or_surface: SketchOrSurface, + center: Option<[TyF64; 2]>, + corner: Option<[TyF64; 2]>, + width: TyF64, + height: TyF64, + exec_state: &mut ExecState, + args: Args, +) -> Result { + let sketch_surface = match sketch_or_surface { + SketchOrSurface::SketchSurface(surface) => surface, + SketchOrSurface::Sketch(s) => s.on, + }; + + // Find the corner in the negative quadrant + let (ty, corner) = match (center, corner) { + (Some(center), None) => ( + center[0].ty, + [center[0].n - width.n / 2.0, center[1].n - height.n / 2.0], + ), + (None, Some(corner)) => (corner[0].ty, [corner[0].n, corner[1].n]), + (None, None) => { + return Err(KclError::new_semantic(KclErrorDetails::new( + "You must supply either `corner` or `center` arguments, but not both".to_string(), + vec![args.source_range], + ))); + } + (Some(_), Some(_)) => { + return Err(KclError::new_semantic(KclErrorDetails::new( + "You must supply either `corner` or `center` arguments, but not both".to_string(), + vec![args.source_range], + ))); + } + }; + let units = ty.expect_length(); + let corner_t = [TyF64::new(corner[0], ty), TyF64::new(corner[1], ty)]; + + // Start the sketch then draw the 4 lines. + let sketch = + crate::std::sketch::inner_start_profile(sketch_surface, corner_t, None, exec_state, args.clone()).await?; + let sketch_id = sketch.id; + let deltas = [[width.n, 0.0], [0.0, height.n], [-width.n, 0.0], [0.0, -height.n]]; + let ids = [ + exec_state.next_uuid(), + exec_state.next_uuid(), + exec_state.next_uuid(), + exec_state.next_uuid(), + ]; + for (id, delta) in ids.iter().copied().zip(deltas) { + exec_state + .batch_modeling_cmd( + ModelingCmdMeta::from_args_id(&args, id), + ModelingCmd::from(mcmd::ExtendPath { + path: sketch.id.into(), + segment: PathSegment::Line { + end: KPoint2d::from(untyped_point_to_mm(delta, units)) + .with_z(0.0) + .map(LengthUnit), + relative: true, + }, + }), + ) + .await?; + } + exec_state + .batch_modeling_cmd( + ModelingCmdMeta::from_args_id(&args, sketch_id), + ModelingCmd::from(mcmd::ClosePath { path_id: sketch.id }), + ) + .await?; + + // Update the sketch in KCL memory. + let mut new_sketch = sketch.clone(); + fn add(a: [f64; 2], b: [f64; 2]) -> [f64; 2] { + [a[0] + b[0], a[1] + b[1]] + } + let a = (corner, add(corner, deltas[0])); + let b = (a.1, add(a.1, deltas[1])); + let c = (b.1, add(b.1, deltas[2])); + let d = (c.1, add(c.1, deltas[3])); + for (id, (from, to)) in ids.into_iter().zip([a, b, c, d]) { + let current_path = Path::ToPoint { + base: BasePath { + from, + to, + tag: None, + units, + geo_meta: GeoMeta { + id, + metadata: args.source_range.into(), + }, + }, + }; + new_sketch.paths.push(current_path); + } + Ok(new_sketch) +} + /// Sketch a circle. pub async fn circle(exec_state: &mut ExecState, args: Args) -> Result { let sketch_or_surface = diff --git a/rust/kcl-lib/std/sketch.kcl b/rust/kcl-lib/std/sketch.kcl index 864b0246e..396581dd1 100644 --- a/rust/kcl-lib/std/sketch.kcl +++ b/rust/kcl-lib/std/sketch.kcl @@ -234,6 +234,39 @@ export fn startProfile( tag?: TagDecl, ): Sketch {} +/// Sketch a rectangle. +/// +/// ``` +/// exampleSketch = startSketchOn(-XZ) +/// |> rectangle(center = [0, 0], width = 10, height = 5) +// |> extrude(length = 2) +/// ``` +/// +/// ``` +/// exampleSketch = startSketchOn(-XZ) +/// |> rectangle(corner = [0, 0], width = 10, height = 5) +// |> extrude(length = 2) +/// ``` +@(impl = std_rust) +export fn rectangle( + /// Sketch to extend, or plane or surface to sketch on. + @sketchOrSurface: Sketch | Plane | Face, + /// Rectangle's width along X axis. + width: number(Length), + /// Rectangle's height along Y axis. + height: number(Length), + /// The center of the rectangle. + /// Incompatible with `corner`. + @(snippetArray = ["0", "0"]) + center?: Point2d, + /// The corner of the rectangle. + /// Incompatible with `center`. + /// This will be the corner which is most negative on + /// both X and Y axes. + @(snippetArray = ["0", "0"]) + corner?: Point2d, +): Sketch {} + /// Construct a 2-dimensional circle, of the specified radius, centered at /// the provided (x, y) origin point. /// diff --git a/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-rectangle0.png b/rust/kcl-lib/tests/outputs/serial_test_example_fn_std-sketch-rectangle0.png new file mode 100644 index 0000000000000000000000000000000000000000..be2d109a13abb97a3c9e0e49ad5d279ff0340031 GIT binary patch literal 24230 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[27, 54, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 3["Segment
    [60, 103, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }] + 4["Segment
    [109, 155, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }] + 5["Segment
    [161, 211, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }] + 6["Segment
    [217, 273, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }] + 7["Segment
    [279, 286, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }] + 8[Solid2d] + end + 1["Plane
    [4, 21, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }] + 1 --- 2 + 2 --- 3 + 2 --- 4 + 2 --- 5 + 2 --- 6 + 2 --- 7 + 2 --- 8 +``` diff --git a/rust/kcl-lib/tests/rect/ast.snap b/rust/kcl-lib/tests/rect/ast.snap new file mode 100644 index 000000000..42dc11681 --- /dev/null +++ b/rust/kcl-lib/tests/rect/ast.snap @@ -0,0 +1,701 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of parsing rect.kcl +--- +{ + "Ok": { + "body": [ + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "x", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "XY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "at", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "argument": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + { + "argument": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + ], + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "startProfile", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "3", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 3.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "tag", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "a" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "angledLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "left": { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "segAng", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "a", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "moduleId": 0, + "operator": "+", + "right": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "90", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 90.0, + "suffix": "None" + } + }, + "start": 0, + "type": "BinaryExpression", + "type": "BinaryExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "angledLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "angle", + "start": 0, + "type": "Identifier" + }, + "arg": { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "segAng", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "a", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "argument": { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "segLen", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "a", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "angledLine", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "endAbsolute", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "profileStartX", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + }, + { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "profileStartY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "PipeSubstitution", + "type": "PipeSubstitution" + } + } + ], + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "line", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "close", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "moduleId": 0, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "moduleId": 0, + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + } + ], + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0 + } +} diff --git a/rust/kcl-lib/tests/rect/input.kcl b/rust/kcl-lib/tests/rect/input.kcl new file mode 100644 index 000000000..2ed70845f --- /dev/null +++ b/rust/kcl-lib/tests/rect/input.kcl @@ -0,0 +1,7 @@ +x = startSketchOn(XY) + |> startProfile(at = [-2, -1]) + |> angledLine(angle = 0, length = 3, tag = $a) + |> angledLine(angle = segAng(a) + 90, length = 2) + |> angledLine(angle = segAng(a), length = -segLen(a)) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() diff --git a/rust/kcl-lib/tests/rect/ops.snap b/rust/kcl-lib/tests/rect/ops.snap new file mode 100644 index 000000000..cf120d1ec --- /dev/null +++ b/rust/kcl-lib/tests/rect/ops.snap @@ -0,0 +1,128 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Operations executed rect.kcl +--- +{ + "rust/kcl-lib/tests/rect/input.kcl": [ + { + "type": "StdLibCall", + "name": "startSketchOn", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + }, + "labeledArgs": {}, + "nodePath": { + "steps": [ + { + "type": "ProgramBodyItem", + "index": 0 + }, + { + "type": "VariableDeclarationDeclaration" + }, + { + "type": "VariableDeclarationInit" + }, + { + "type": "PipeBodyItem", + "index": 0 + } + ] + }, + "sourceRange": [] + } + ], + "std::appearance": [], + "std::array": [], + "std::math": [ + { + "type": "VariableDeclaration", + "name": "PI", + "value": { + "type": "Number", + "value": 3.141592653589793, + "ty": { + "type": "Unknown" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "E", + "value": { + "type": "Number", + "value": 2.718281828459045, + "ty": { + "type": "Known", + "type": "Count" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "TAU", + "value": { + "type": "Number", + "value": 6.283185307179586, + "ty": { + "type": "Known", + "type": "Count" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + } + ], + "std::prelude": [ + { + "type": "VariableDeclaration", + "name": "START", + "value": { + "type": "String", + "value": "start" + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "END", + "value": { + "type": "String", + "value": "end" + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + } + ], + "std::sketch": [], + "std::solid": [], + "std::sweep": [], + "std::transform": [], + "std::turns": [], + "std::types": [], + "std::units": [] +} diff --git a/rust/kcl-lib/tests/rect/program_memory.snap b/rust/kcl-lib/tests/rect/program_memory.snap new file mode 100644 index 000000000..a93bc3091 --- /dev/null +++ b/rust/kcl-lib/tests/rect/program_memory.snap @@ -0,0 +1,181 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Variables in memory after executing rect.kcl +--- +{ + "a": { + "type": "TagIdentifier", + "type": "TagIdentifier", + "value": "a" + }, + "x": { + "type": "Sketch", + "value": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -2.0, + -1.0 + ], + "tag": { + "commentStart": 100, + "end": 102, + "moduleId": 0, + "start": 100, + "type": "TagDeclarator", + "value": "a" + }, + "to": [ + 1.0, + -1.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 1.0, + -1.0 + ], + "tag": null, + "to": [ + 1.0000000000000002, + 1.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 1.0000000000000002, + 1.0 + ], + "tag": null, + "to": [ + -1.9999999999999998, + 1.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -1.9999999999999998, + 1.0 + ], + "tag": null, + "to": [ + -2.0, + -1.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -2.0, + -1.0 + ], + "tag": null, + "to": [ + -2.0, + -1.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + } + ], + "on": { + "artifactId": "[uuid]", + "id": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "type": "plane", + "value": "XY", + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + } + }, + "start": { + "from": [ + -2.0, + -1.0 + ], + "to": [ + -2.0, + -1.0 + ], + "units": { + "type": "Mm" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "tags": { + "a": { + "type": "TagIdentifier", + "value": "a" + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Mm" + } + } + } +} diff --git a/rust/kcl-lib/tests/rect/rendered_model.png b/rust/kcl-lib/tests/rect/rendered_model.png new file mode 100644 index 0000000000000000000000000000000000000000..d67607ac6eaef8868f0be390c30cf63f2600fbaf GIT binary patch literal 26188 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 literal 0 HcmV?d00001 diff --git a/rust/kcl-lib/tests/rect/unparsed.snap b/rust/kcl-lib/tests/rect/unparsed.snap new file mode 100644 index 000000000..99637e205 --- /dev/null +++ b/rust/kcl-lib/tests/rect/unparsed.snap @@ -0,0 +1,11 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of unparsing rect.kcl +--- +x = startSketchOn(XY) + |> startProfile(at = [-2, -1]) + |> angledLine(angle = 0, length = 3, tag = $a) + |> angledLine(angle = segAng(a) + 90, length = 2) + |> angledLine(angle = segAng(a), length = -segLen(a)) + |> line(endAbsolute = [profileStartX(%), profileStartY(%)]) + |> close() diff --git a/rust/kcl-lib/tests/rect_helper/artifact_commands.snap b/rust/kcl-lib/tests/rect_helper/artifact_commands.snap new file mode 100644 index 000000000..3071652d6 --- /dev/null +++ b/rust/kcl-lib/tests/rect_helper/artifact_commands.snap @@ -0,0 +1,163 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact commands rect_helper.kcl +--- +{ + "rust/kcl-lib/tests/rect_helper/input.kcl": [ + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": -2.0, + "y": -1.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 3.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": 2.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -3.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 0.0, + "y": -2.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + } + ], + "std::appearance": [], + "std::array": [], + "std::math": [], + "std::prelude": [], + "std::sketch": [], + "std::solid": [], + "std::sweep": [], + "std::transform": [], + "std::turns": [], + "std::types": [], + "std::units": [] +} diff --git a/rust/kcl-lib/tests/rect_helper/artifact_graph_flowchart.snap b/rust/kcl-lib/tests/rect_helper/artifact_graph_flowchart.snap new file mode 100644 index 000000000..fa21abca9 --- /dev/null +++ b/rust/kcl-lib/tests/rect_helper/artifact_graph_flowchart.snap @@ -0,0 +1,6 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact graph flowchart rect_helper.kcl +extension: md +snapshot_kind: binary +--- diff --git a/rust/kcl-lib/tests/rect_helper/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/rect_helper/artifact_graph_flowchart.snap.md new file mode 100644 index 000000000..a082bd808 --- /dev/null +++ b/rust/kcl-lib/tests/rect_helper/artifact_graph_flowchart.snap.md @@ -0,0 +1,24 @@ +```mermaid +flowchart LR + subgraph path2 [Path] + 2["Path
    [25, 76, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 3["Segment
    [25, 76, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 4["Segment
    [25, 76, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 5["Segment
    [25, 76, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 6["Segment
    [25, 76, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }] + 7[Solid2d] + end + 1["Plane
    [4, 21, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }] + 1 --- 2 + 2 --- 3 + 2 --- 4 + 2 --- 5 + 2 --- 6 + 2 --- 7 +``` diff --git a/rust/kcl-lib/tests/rect_helper/ast.snap b/rust/kcl-lib/tests/rect_helper/ast.snap new file mode 100644 index 000000000..9c157979f --- /dev/null +++ b/rust/kcl-lib/tests/rect_helper/ast.snap @@ -0,0 +1,233 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of parsing rect_helper.kcl +--- +{ + "Ok": { + "body": [ + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "x", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": [ + { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "XY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "width", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "3", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 3.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "height", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "corner", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "argument": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "2", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 2.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + { + "argument": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "1", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 1.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + ], + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "rectangle", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "moduleId": 0, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "moduleId": 0, + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + } + ], + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0 + } +} diff --git a/rust/kcl-lib/tests/rect_helper/input.kcl b/rust/kcl-lib/tests/rect_helper/input.kcl new file mode 100644 index 000000000..3e041e728 --- /dev/null +++ b/rust/kcl-lib/tests/rect_helper/input.kcl @@ -0,0 +1,2 @@ +x = startSketchOn(XY) +|> rectangle(width = 3, height = 2, corner = [-2, -1]) diff --git a/rust/kcl-lib/tests/rect_helper/ops.snap b/rust/kcl-lib/tests/rect_helper/ops.snap new file mode 100644 index 000000000..a34c67bb0 --- /dev/null +++ b/rust/kcl-lib/tests/rect_helper/ops.snap @@ -0,0 +1,128 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Operations executed rect_helper.kcl +--- +{ + "rust/kcl-lib/tests/rect_helper/input.kcl": [ + { + "type": "StdLibCall", + "name": "startSketchOn", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + }, + "labeledArgs": {}, + "nodePath": { + "steps": [ + { + "type": "ProgramBodyItem", + "index": 0 + }, + { + "type": "VariableDeclarationDeclaration" + }, + { + "type": "VariableDeclarationInit" + }, + { + "type": "PipeBodyItem", + "index": 0 + } + ] + }, + "sourceRange": [] + } + ], + "std::appearance": [], + "std::array": [], + "std::math": [ + { + "type": "VariableDeclaration", + "name": "PI", + "value": { + "type": "Number", + "value": 3.141592653589793, + "ty": { + "type": "Unknown" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "E", + "value": { + "type": "Number", + "value": 2.718281828459045, + "ty": { + "type": "Known", + "type": "Count" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "TAU", + "value": { + "type": "Number", + "value": 6.283185307179586, + "ty": { + "type": "Known", + "type": "Count" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + } + ], + "std::prelude": [ + { + "type": "VariableDeclaration", + "name": "START", + "value": { + "type": "String", + "value": "start" + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "END", + "value": { + "type": "String", + "value": "end" + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + } + ], + "std::sketch": [], + "std::solid": [], + "std::sweep": [], + "std::transform": [], + "std::turns": [], + "std::types": [], + "std::units": [] +} diff --git a/rust/kcl-lib/tests/rect_helper/program_memory.snap b/rust/kcl-lib/tests/rect_helper/program_memory.snap new file mode 100644 index 000000000..d2fd3a45a --- /dev/null +++ b/rust/kcl-lib/tests/rect_helper/program_memory.snap @@ -0,0 +1,144 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Variables in memory after executing rect_helper.kcl +--- +{ + "x": { + "type": "Sketch", + "value": { + "type": "Sketch", + "id": "[uuid]", + "paths": [ + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -2.0, + -1.0 + ], + "tag": null, + "to": [ + 1.0, + -1.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 1.0, + -1.0 + ], + "tag": null, + "to": [ + 1.0, + 1.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + 1.0, + 1.0 + ], + "tag": null, + "to": [ + -2.0, + 1.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + }, + { + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + }, + "from": [ + -2.0, + 1.0 + ], + "tag": null, + "to": [ + -2.0, + -1.0 + ], + "type": "ToPoint", + "units": { + "type": "Mm" + } + } + ], + "on": { + "artifactId": "[uuid]", + "id": "[uuid]", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Mm" + } + }, + "type": "plane", + "value": "XY", + "xAxis": { + "x": 1.0, + "y": 0.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + }, + "yAxis": { + "x": 0.0, + "y": 1.0, + "z": 0.0, + "units": { + "type": "Unknown" + } + } + }, + "start": { + "from": [ + -2.0, + -1.0 + ], + "to": [ + -2.0, + -1.0 + ], + "units": { + "type": "Mm" + }, + "tag": null, + "__geoMeta": { + "id": "[uuid]", + "sourceRange": [] + } + }, + "artifactId": "[uuid]", + "originalId": "[uuid]", + "units": { + "type": "Mm" + } + } + } +} diff --git a/rust/kcl-lib/tests/rect_helper/rendered_model.png b/rust/kcl-lib/tests/rect_helper/rendered_model.png new file mode 100644 index 0000000000000000000000000000000000000000..d67607ac6eaef8868f0be390c30cf63f2600fbaf GIT binary patch literal 26188 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 literal 0 HcmV?d00001 diff --git a/rust/kcl-lib/tests/rect_helper/unparsed.snap b/rust/kcl-lib/tests/rect_helper/unparsed.snap new file mode 100644 index 000000000..f8376774d --- /dev/null +++ b/rust/kcl-lib/tests/rect_helper/unparsed.snap @@ -0,0 +1,6 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of unparsing rect_helper.kcl +--- +x = startSketchOn(XY) + |> rectangle(width = 3, height = 2, corner = [-2, -1]) From 6ddbb7a31df05f2624e53db67014eac8f43dfc74 Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Tue, 1 Jul 2025 14:37:01 -0400 Subject: [PATCH 33/34] Fix unknown property error message on sketches and solids (#7632) * Fix unknown property error message on sketches and solids * Add suggestion for common case * Move test code in file to avoid conflict --- rust/kcl-lib/src/execution/exec_ast.rs | 16 + rust/kcl-lib/src/simulation_tests.rs | 21 + .../artifact_commands.snap | 206 +++++ .../artifact_graph_flowchart.snap | 6 + .../artifact_graph_flowchart.snap.md | 78 ++ .../ast.snap | 780 ++++++++++++++++++ .../execution_error.snap | 15 + .../input.kcl | 14 + .../ops.snap | 233 ++++++ .../unparsed.snap | 17 + 10 files changed, 1386 insertions(+) create mode 100644 rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_commands.snap create mode 100644 rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_graph_flowchart.snap create mode 100644 rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_graph_flowchart.snap.md create mode 100644 rust/kcl-lib/tests/property_access_not_found_on_solid/ast.snap create mode 100644 rust/kcl-lib/tests/property_access_not_found_on_solid/execution_error.snap create mode 100644 rust/kcl-lib/tests/property_access_not_found_on_solid/input.kcl create mode 100644 rust/kcl-lib/tests/property_access_not_found_on_solid/ops.snap create mode 100644 rust/kcl-lib/tests/property_access_not_found_on_solid/unparsed.snap diff --git a/rust/kcl-lib/src/execution/exec_ast.rs b/rust/kcl-lib/src/execution/exec_ast.rs index 9d2240e30..d8752495e 100644 --- a/rust/kcl-lib/src/execution/exec_ast.rs +++ b/rust/kcl-lib/src/execution/exec_ast.rs @@ -1046,6 +1046,16 @@ impl Node { (KclValue::Solid { value }, Property::String(prop), false) if prop == "sketch" => Ok(KclValue::Sketch { value: Box::new(value.sketch), }), + (geometry @ KclValue::Solid { .. }, Property::String(prop), false) if prop == "tags" => { + // This is a common mistake. + Err(KclError::new_semantic(KclErrorDetails::new( + format!( + "Property `{prop}` not found on {}. You can get a solid's tags through its sketch, as in, `exampleSolid.sketch.tags`.", + geometry.human_friendly_type() + ), + vec![self.clone().into()], + ))) + } (KclValue::Sketch { value: sk }, Property::String(prop), false) if prop == "tags" => Ok(KclValue::Object { meta: vec![Metadata { source_range: SourceRange::from(self.clone()), @@ -1056,6 +1066,12 @@ impl Node { .map(|(k, tag)| (k.to_owned(), KclValue::TagIdentifier(Box::new(tag.to_owned())))) .collect(), }), + (geometry @ (KclValue::Sketch { .. } | KclValue::Solid { .. }), Property::String(property), false) => { + Err(KclError::new_semantic(KclErrorDetails::new( + format!("Property `{property}` not found on {}", geometry.human_friendly_type()), + vec![self.clone().into()], + ))) + } (being_indexed, _, _) => Err(KclError::new_semantic(KclErrorDetails::new( format!( "Only arrays can be indexed, but you're trying to index {}", diff --git a/rust/kcl-lib/src/simulation_tests.rs b/rust/kcl-lib/src/simulation_tests.rs index d49079e1b..86440c84f 100644 --- a/rust/kcl-lib/src/simulation_tests.rs +++ b/rust/kcl-lib/src/simulation_tests.rs @@ -887,6 +887,27 @@ mod invalid_index_fractional { super::execute(TEST_NAME, false).await } } +mod property_access_not_found_on_solid { + const TEST_NAME: &str = "property_access_not_found_on_solid"; + + /// Test parsing KCL. + #[test] + fn parse() { + super::parse(TEST_NAME) + } + + /// Test that parsing and unparsing KCL produces the original KCL input. + #[tokio::test(flavor = "multi_thread")] + async fn unparse() { + super::unparse(TEST_NAME).await + } + + /// Test that KCL is executed correctly. + #[tokio::test(flavor = "multi_thread")] + async fn kcl_test_execute() { + super::execute(TEST_NAME, true).await + } +} mod invalid_member_object { const TEST_NAME: &str = "invalid_member_object"; diff --git a/rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_commands.snap b/rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_commands.snap new file mode 100644 index 000000000..4c6e3b052 --- /dev/null +++ b/rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_commands.snap @@ -0,0 +1,206 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact commands property_access_not_found_on_solid.kcl +--- +{ + "rust/kcl-lib/tests/property_access_not_found_on_solid/input.kcl": [ + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "make_plane", + "origin": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "x_axis": { + "x": 1.0, + "y": 0.0, + "z": 0.0 + }, + "y_axis": { + "x": 0.0, + "y": 1.0, + "z": 0.0 + }, + "size": 60.0, + "clobber": false, + "hide": true + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "start_path" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "move_path_pen", + "path": "[uuid]", + "to": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": 10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": -20.0, + "y": 0.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extend_path", + "path": "[uuid]", + "segment": { + "type": "line", + "end": { + "x": 10.0, + "y": -10.0, + "z": 0.0 + }, + "relative": true + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "close_path", + "path_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "enable_sketch_mode", + "entity_id": "[uuid]", + "ortho": false, + "animated": false, + "adjust_camera": false, + "planar_normal": { + "x": 0.0, + "y": 0.0, + "z": 1.0 + } + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "extrude", + "target": "[uuid]", + "distance": 5.0, + "faces": null, + "opposite": "None" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "sketch_mode_disable" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "object_bring_to_front", + "object_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_extrusion_face_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + }, + { + "cmdId": "[uuid]", + "range": [], + "command": { + "type": "solid3d_get_adjacency_info", + "object_id": "[uuid]", + "edge_id": "[uuid]" + } + } + ], + "std::appearance": [], + "std::array": [], + "std::math": [], + "std::prelude": [], + "std::sketch": [], + "std::solid": [], + "std::sweep": [], + "std::transform": [], + "std::turns": [], + "std::types": [], + "std::units": [] +} diff --git a/rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_graph_flowchart.snap b/rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_graph_flowchart.snap new file mode 100644 index 000000000..5a6d20b91 --- /dev/null +++ b/rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_graph_flowchart.snap @@ -0,0 +1,6 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Artifact graph flowchart property_access_not_found_on_solid.kcl +extension: md +snapshot_kind: binary +--- diff --git a/rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_graph_flowchart.snap.md b/rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_graph_flowchart.snap.md new file mode 100644 index 000000000..4a45dfcec --- /dev/null +++ b/rust/kcl-lib/tests/property_access_not_found_on_solid/artifact_graph_flowchart.snap.md @@ -0,0 +1,78 @@ +```mermaid +flowchart LR + subgraph path2 [Path] + 2["Path
    [52, 77, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, ReturnStatementArg, PipeBodyItem { index: 1 }] + 3["Segment
    [85, 119, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, ReturnStatementArg, PipeBodyItem { index: 2 }] + 4["Segment
    [127, 147, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, ReturnStatementArg, PipeBodyItem { index: 3 }] + 5["Segment
    [155, 176, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, ReturnStatementArg, PipeBodyItem { index: 4 }] + 6["Segment
    [184, 191, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, ReturnStatementArg, PipeBodyItem { index: 5 }] + 7[Solid2d] + end + 1["Plane
    [27, 44, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, ReturnStatementArg, PipeBodyItem { index: 0 }] + 8["Sweep Extrusion
    [199, 235, 0]"] + %% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, FunctionExpressionBody, FunctionExpressionBodyItem { index: 0 }, ReturnStatementArg, PipeBodyItem { index: 6 }] + 9[Wall] + %% face_code_ref=Missing NodePath + 10[Wall] + %% face_code_ref=Missing NodePath + 11[Wall] + %% face_code_ref=Missing NodePath + 12["Cap Start"] + %% face_code_ref=Missing NodePath + 13["Cap End"] + %% face_code_ref=Missing NodePath + 14["SweepEdge Opposite"] + 15["SweepEdge Adjacent"] + 16["SweepEdge Opposite"] + 17["SweepEdge Adjacent"] + 18["SweepEdge Opposite"] + 19["SweepEdge Adjacent"] + 1 --- 2 + 2 --- 3 + 2 --- 4 + 2 --- 5 + 2 --- 6 + 2 --- 7 + 2 ---- 8 + 3 --- 9 + 3 x--> 12 + 3 --- 14 + 3 --- 15 + 4 --- 10 + 4 x--> 12 + 4 --- 16 + 4 --- 17 + 5 --- 11 + 5 x--> 12 + 5 --- 18 + 5 --- 19 + 8 --- 9 + 8 --- 10 + 8 --- 11 + 8 --- 12 + 8 --- 13 + 8 --- 14 + 8 --- 15 + 8 --- 16 + 8 --- 17 + 8 --- 18 + 8 --- 19 + 9 --- 14 + 9 --- 15 + 19 <--x 9 + 15 <--x 10 + 10 --- 16 + 10 --- 17 + 17 <--x 11 + 11 --- 18 + 11 --- 19 + 14 <--x 13 + 16 <--x 13 + 18 <--x 13 +``` diff --git a/rust/kcl-lib/tests/property_access_not_found_on_solid/ast.snap b/rust/kcl-lib/tests/property_access_not_found_on_solid/ast.snap new file mode 100644 index 000000000..26dbee524 --- /dev/null +++ b/rust/kcl-lib/tests/property_access_not_found_on_solid/ast.snap @@ -0,0 +1,780 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of parsing property_access_not_found_on_solid.kcl +--- +{ + "Ok": { + "body": [ + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "myFunction", + "start": 0, + "type": "Identifier" + }, + "init": { + "body": { + "body": [ + { + "argument": { + "body": [ + { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "XY", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "at", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "startProfile", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "end", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "10", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 10.0, + "suffix": "None" + } + }, + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "10", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 10.0, + "suffix": "None" + } + } + ], + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "tag", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "seg01" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "line", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "end", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "argument": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "20", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 20.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + }, + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "0", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 0.0, + "suffix": "None" + } + } + ], + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "line", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "end", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "elements": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "10", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 10.0, + "suffix": "None" + } + }, + { + "argument": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "10", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 10.0, + "suffix": "None" + } + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "operator": "-", + "start": 0, + "type": "UnaryExpression", + "type": "UnaryExpression" + } + ], + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ArrayExpression", + "type": "ArrayExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "line", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "close", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "length", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "raw": "5", + "start": 0, + "type": "Literal", + "type": "Literal", + "value": { + "value": 5.0, + "suffix": "None" + } + } + }, + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "tagEnd", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "TagDeclarator", + "type": "TagDeclarator", + "value": "end01" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "extrude", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + } + ], + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "PipeExpression", + "type": "PipeExpression" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "ReturnStatement", + "type": "ReturnStatement" + } + ], + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0 + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "params": [], + "start": 0, + "type": "FunctionExpression", + "type": "FunctionExpression" + }, + "moduleId": 0, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "fn", + "moduleId": 0, + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "myShape", + "start": 0, + "type": "Identifier" + }, + "init": { + "arguments": [], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "myFunction", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": null + }, + "moduleId": 0, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "moduleId": 0, + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + }, + { + "commentStart": 0, + "declaration": { + "commentStart": 0, + "end": 0, + "id": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "sketch001", + "start": 0, + "type": "Identifier" + }, + "init": { + "arguments": [ + { + "type": "LabeledArg", + "label": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "face", + "start": 0, + "type": "Identifier" + }, + "arg": { + "commentStart": 0, + "computed": false, + "end": 0, + "moduleId": 0, + "object": { + "commentStart": 0, + "computed": false, + "end": 0, + "moduleId": 0, + "object": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "myShape", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + }, + "property": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "tags", + "start": 0, + "type": "Identifier", + "type": "Identifier" + }, + "start": 0, + "type": "MemberExpression", + "type": "MemberExpression" + }, + "property": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "seg01", + "start": 0, + "type": "Identifier", + "type": "Identifier" + }, + "start": 0, + "type": "MemberExpression", + "type": "MemberExpression" + } + } + ], + "callee": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "startSketchOn", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name" + }, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "CallExpressionKw", + "type": "CallExpressionKw", + "unlabeled": { + "abs_path": false, + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "name": "myShape", + "start": 0, + "type": "Identifier" + }, + "path": [], + "start": 0, + "type": "Name", + "type": "Name" + } + }, + "moduleId": 0, + "start": 0, + "type": "VariableDeclarator" + }, + "end": 0, + "kind": "const", + "moduleId": 0, + "start": 0, + "type": "VariableDeclaration", + "type": "VariableDeclaration" + } + ], + "commentStart": 0, + "end": 0, + "moduleId": 0, + "nonCodeMeta": { + "nonCodeNodes": { + "0": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ], + "1": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ], + "2": [ + { + "commentStart": 0, + "end": 0, + "moduleId": 0, + "start": 0, + "type": "NonCodeNode", + "value": { + "type": "newLine" + } + } + ] + }, + "startNodes": [] + }, + "start": 0 + } +} diff --git a/rust/kcl-lib/tests/property_access_not_found_on_solid/execution_error.snap b/rust/kcl-lib/tests/property_access_not_found_on_solid/execution_error.snap new file mode 100644 index 000000000..2dd58ad6d --- /dev/null +++ b/rust/kcl-lib/tests/property_access_not_found_on_solid/execution_error.snap @@ -0,0 +1,15 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Error from executing property_access_not_found_on_solid.kcl +--- +KCL Semantic error + + × semantic: Property `tags` not found on a solid. You can get a solid's tags + │ through its sketch, as in, `exampleSolid.sketch.tags`. + ╭─[13:43] + 12 │ + 13 │ sketch001 = startSketchOn(myShape, face = myShape.tags.seg01) + · ──────┬───── + · ╰── tests/property_access_not_found_on_solid/input.kcl + 14 │ + ╰──── diff --git a/rust/kcl-lib/tests/property_access_not_found_on_solid/input.kcl b/rust/kcl-lib/tests/property_access_not_found_on_solid/input.kcl new file mode 100644 index 000000000..35b1d360c --- /dev/null +++ b/rust/kcl-lib/tests/property_access_not_found_on_solid/input.kcl @@ -0,0 +1,14 @@ +fn myFunction() { + return startSketchOn(XY) + |> startProfile(at = [0, 0]) + |> line(end = [10, 10], tag = $seg01) + |> line(end = [-20, 0]) + |> line(end = [10, -10]) + |> close() + |> extrude(length = 5, tagEnd = $end01) +} + +myShape = myFunction() + +sketch001 = startSketchOn(myShape, face = myShape.tags.seg01) + diff --git a/rust/kcl-lib/tests/property_access_not_found_on_solid/ops.snap b/rust/kcl-lib/tests/property_access_not_found_on_solid/ops.snap new file mode 100644 index 000000000..693b13f70 --- /dev/null +++ b/rust/kcl-lib/tests/property_access_not_found_on_solid/ops.snap @@ -0,0 +1,233 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Operations executed property_access_not_found_on_solid.kcl +--- +{ + "rust/kcl-lib/tests/property_access_not_found_on_solid/input.kcl": [ + { + "type": "GroupBegin", + "group": { + "type": "FunctionCall", + "name": "myFunction", + "functionSourceRange": [], + "unlabeledArg": null, + "labeledArgs": {} + }, + "nodePath": { + "steps": [ + { + "type": "ProgramBodyItem", + "index": 1 + }, + { + "type": "VariableDeclarationDeclaration" + }, + { + "type": "VariableDeclarationInit" + } + ] + }, + "sourceRange": [] + }, + { + "type": "StdLibCall", + "name": "startSketchOn", + "unlabeledArg": { + "value": { + "type": "Plane", + "artifact_id": "[uuid]" + }, + "sourceRange": [] + }, + "labeledArgs": {}, + "nodePath": { + "steps": [ + { + "type": "ProgramBodyItem", + "index": 0 + }, + { + "type": "VariableDeclarationDeclaration" + }, + { + "type": "VariableDeclarationInit" + }, + { + "type": "FunctionExpressionBody" + }, + { + "type": "FunctionExpressionBodyItem", + "index": 0 + }, + { + "type": "ReturnStatementArg" + }, + { + "type": "PipeBodyItem", + "index": 0 + } + ] + }, + "sourceRange": [] + }, + { + "type": "StdLibCall", + "name": "extrude", + "unlabeledArg": { + "value": { + "type": "Sketch", + "value": { + "artifactId": "[uuid]" + } + }, + "sourceRange": [] + }, + "labeledArgs": { + "length": { + "value": { + "type": "Number", + "value": 5.0, + "ty": { + "type": "Default", + "len": { + "type": "Mm" + }, + "angle": { + "type": "Degrees" + } + } + }, + "sourceRange": [] + }, + "tagEnd": { + "value": { + "type": "TagDeclarator", + "name": "end01" + }, + "sourceRange": [] + } + }, + "nodePath": { + "steps": [ + { + "type": "ProgramBodyItem", + "index": 0 + }, + { + "type": "VariableDeclarationDeclaration" + }, + { + "type": "VariableDeclarationInit" + }, + { + "type": "FunctionExpressionBody" + }, + { + "type": "FunctionExpressionBodyItem", + "index": 0 + }, + { + "type": "ReturnStatementArg" + }, + { + "type": "PipeBodyItem", + "index": 6 + } + ] + }, + "sourceRange": [] + }, + { + "type": "GroupEnd" + } + ], + "std::appearance": [], + "std::array": [], + "std::math": [ + { + "type": "VariableDeclaration", + "name": "PI", + "value": { + "type": "Number", + "value": 3.141592653589793, + "ty": { + "type": "Unknown" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "E", + "value": { + "type": "Number", + "value": 2.718281828459045, + "ty": { + "type": "Known", + "type": "Count" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "TAU", + "value": { + "type": "Number", + "value": 6.283185307179586, + "ty": { + "type": "Known", + "type": "Count" + } + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + } + ], + "std::prelude": [ + { + "type": "VariableDeclaration", + "name": "START", + "value": { + "type": "String", + "value": "start" + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + }, + { + "type": "VariableDeclaration", + "name": "END", + "value": { + "type": "String", + "value": "end" + }, + "visibility": "export", + "nodePath": { + "steps": [] + }, + "sourceRange": [] + } + ], + "std::sketch": [], + "std::solid": [], + "std::sweep": [], + "std::transform": [], + "std::turns": [], + "std::types": [], + "std::units": [] +} diff --git a/rust/kcl-lib/tests/property_access_not_found_on_solid/unparsed.snap b/rust/kcl-lib/tests/property_access_not_found_on_solid/unparsed.snap new file mode 100644 index 000000000..106565aac --- /dev/null +++ b/rust/kcl-lib/tests/property_access_not_found_on_solid/unparsed.snap @@ -0,0 +1,17 @@ +--- +source: kcl-lib/src/simulation_tests.rs +description: Result of unparsing property_access_not_found_on_solid.kcl +--- +fn myFunction() { + return startSketchOn(XY) + |> startProfile(at = [0, 0]) + |> line(end = [10, 10], tag = $seg01) + |> line(end = [-20, 0]) + |> line(end = [10, -10]) + |> close() + |> extrude(length = 5, tagEnd = $end01) +} + +myShape = myFunction() + +sketch001 = startSketchOn(myShape, face = myShape.tags.seg01) From a85a534d6b464eb838f61e4db12303bbffac3850 Mon Sep 17 00:00:00 2001 From: Jonathan Tran Date: Tue, 1 Jul 2025 15:15:35 -0400 Subject: [PATCH 34/34] Release KCL 84 (#7653) --- rust/Cargo.lock | 20 ++++++++++---------- rust/kcl-bumper/Cargo.toml | 2 +- rust/kcl-derive-docs/Cargo.toml | 2 +- rust/kcl-directory-test-macro/Cargo.toml | 2 +- rust/kcl-language-server-release/Cargo.toml | 2 +- rust/kcl-language-server/Cargo.toml | 2 +- rust/kcl-lib/Cargo.toml | 2 +- rust/kcl-python-bindings/Cargo.toml | 2 +- rust/kcl-test-server/Cargo.toml | 2 +- rust/kcl-to-core/Cargo.toml | 2 +- rust/kcl-wasm-lib/Cargo.toml | 2 +- 11 files changed, 20 insertions(+), 20 deletions(-) diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 57dd1c8c9..c5c58240f 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -1814,7 +1814,7 @@ dependencies = [ [[package]] name = "kcl-bumper" -version = "0.1.83" +version = "0.1.84" dependencies = [ "anyhow", "clap", @@ -1825,7 +1825,7 @@ dependencies = [ [[package]] name = "kcl-derive-docs" -version = "0.1.83" +version = "0.1.84" dependencies = [ "proc-macro2", "quote", @@ -1834,7 +1834,7 @@ dependencies = [ [[package]] name = "kcl-directory-test-macro" -version = "0.1.83" +version = "0.1.84" dependencies = [ "convert_case", "proc-macro2", @@ -1844,7 +1844,7 @@ dependencies = [ [[package]] name = "kcl-language-server" -version = "0.2.83" +version = "0.2.84" dependencies = [ "anyhow", "clap", @@ -1865,7 +1865,7 @@ dependencies = [ [[package]] name = "kcl-language-server-release" -version = "0.1.83" +version = "0.1.84" dependencies = [ "anyhow", "clap", @@ -1885,7 +1885,7 @@ dependencies = [ [[package]] name = "kcl-lib" -version = "0.2.83" +version = "0.2.84" dependencies = [ "anyhow", "approx 0.5.1", @@ -1962,7 +1962,7 @@ dependencies = [ [[package]] name = "kcl-python-bindings" -version = "0.3.83" +version = "0.3.84" dependencies = [ "anyhow", "kcl-lib", @@ -1977,7 +1977,7 @@ dependencies = [ [[package]] name = "kcl-test-server" -version = "0.1.83" +version = "0.1.84" dependencies = [ "anyhow", "hyper 0.14.32", @@ -1990,7 +1990,7 @@ dependencies = [ [[package]] name = "kcl-to-core" -version = "0.1.83" +version = "0.1.84" dependencies = [ "anyhow", "async-trait", @@ -2004,7 +2004,7 @@ dependencies = [ [[package]] name = "kcl-wasm-lib" -version = "0.1.83" +version = "0.1.84" dependencies = [ "anyhow", "bson", diff --git a/rust/kcl-bumper/Cargo.toml b/rust/kcl-bumper/Cargo.toml index 397c74faa..db2c82531 100644 --- a/rust/kcl-bumper/Cargo.toml +++ b/rust/kcl-bumper/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-bumper" -version = "0.1.83" +version = "0.1.84" edition = "2021" repository = "https://github.com/KittyCAD/modeling-api" rust-version = "1.76" diff --git a/rust/kcl-derive-docs/Cargo.toml b/rust/kcl-derive-docs/Cargo.toml index 239862f2a..4e5b29f16 100644 --- a/rust/kcl-derive-docs/Cargo.toml +++ b/rust/kcl-derive-docs/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-derive-docs" description = "A tool for generating documentation from Rust derive macros" -version = "0.1.83" +version = "0.1.84" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/rust/kcl-directory-test-macro/Cargo.toml b/rust/kcl-directory-test-macro/Cargo.toml index a3216c8ca..860fcb1b1 100644 --- a/rust/kcl-directory-test-macro/Cargo.toml +++ b/rust/kcl-directory-test-macro/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-directory-test-macro" description = "A tool for generating tests from a directory of kcl files" -version = "0.1.83" +version = "0.1.84" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/rust/kcl-language-server-release/Cargo.toml b/rust/kcl-language-server-release/Cargo.toml index f7d51e4e1..801060edc 100644 --- a/rust/kcl-language-server-release/Cargo.toml +++ b/rust/kcl-language-server-release/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-language-server-release" -version = "0.1.83" +version = "0.1.84" edition = "2021" authors = ["KittyCAD Inc "] publish = false diff --git a/rust/kcl-language-server/Cargo.toml b/rust/kcl-language-server/Cargo.toml index 5b529de7a..88ee106ea 100644 --- a/rust/kcl-language-server/Cargo.toml +++ b/rust/kcl-language-server/Cargo.toml @@ -2,7 +2,7 @@ name = "kcl-language-server" description = "A language server for KCL." authors = ["KittyCAD Inc "] -version = "0.2.83" +version = "0.2.84" edition = "2021" license = "MIT" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html diff --git a/rust/kcl-lib/Cargo.toml b/rust/kcl-lib/Cargo.toml index 501afae99..ee0b2cacc 100644 --- a/rust/kcl-lib/Cargo.toml +++ b/rust/kcl-lib/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-lib" description = "KittyCAD Language implementation and tools" -version = "0.2.83" +version = "0.2.84" edition = "2024" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/rust/kcl-python-bindings/Cargo.toml b/rust/kcl-python-bindings/Cargo.toml index 8d6cde759..a7184becf 100644 --- a/rust/kcl-python-bindings/Cargo.toml +++ b/rust/kcl-python-bindings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-python-bindings" -version = "0.3.83" +version = "0.3.84" edition = "2021" repository = "https://github.com/kittycad/modeling-app" exclude = ["tests/*", "files/*", "venv/*"] diff --git a/rust/kcl-test-server/Cargo.toml b/rust/kcl-test-server/Cargo.toml index 5a16659f0..bb8505841 100644 --- a/rust/kcl-test-server/Cargo.toml +++ b/rust/kcl-test-server/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-test-server" description = "A test server for KCL" -version = "0.1.83" +version = "0.1.84" edition = "2021" license = "MIT" diff --git a/rust/kcl-to-core/Cargo.toml b/rust/kcl-to-core/Cargo.toml index 8f73372a7..c5a89ff86 100644 --- a/rust/kcl-to-core/Cargo.toml +++ b/rust/kcl-to-core/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "kcl-to-core" description = "Utility methods to convert kcl to engine core executable tests" -version = "0.1.83" +version = "0.1.84" edition = "2021" license = "MIT" repository = "https://github.com/KittyCAD/modeling-app" diff --git a/rust/kcl-wasm-lib/Cargo.toml b/rust/kcl-wasm-lib/Cargo.toml index 209abefd3..a4c80d98d 100644 --- a/rust/kcl-wasm-lib/Cargo.toml +++ b/rust/kcl-wasm-lib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "kcl-wasm-lib" -version = "0.1.83" +version = "0.1.84" edition = "2021" repository = "https://github.com/KittyCAD/modeling-app" rust-version = "1.83"